4gl

DATABASE ds
 
GLOBALS "../../config/top.global"
 
DEFINE g_curs_index           LIKE type_file.num10
DEFINE g_row_count           LIKE type_file.num10
DEFINE g_imas                    INTEGER
DEFINE g_ima                      INTEGER
DEFINE g_sure                     STRING
DEFINE g_ima121                INTEGER
DEFINE g_ima122                INTEGER
DEFINE g_ima123                INTEGER
 
MAIN
   OPTIONS
        INPUT NO WRAP
   DEFER INTERRUPT
   IF (NOT cl_user()) THEN
      EXIT PROGRAM
   END IF
   WHENEVER ERROR CALL cl_err_msg_log
   IF (NOT cl_setup("AZZ")) THEN
      EXIT PROGRAM
   END IF
   CALL cl_used(g_prog,g_time,1) RETURNING g_time
   OPEN WINDOW p_zz_w WITH FORM "azz/42f/p_test" ATTRIBUTE(STYLE=g_win_style CLIPPED)
   CALL cl_ui_init()
   LET g_action_choice = ""
   DISPLAY base.Application.getProgramName() TO name
   INITIALIZE g_imas TO NULL
   LET g_sure="N"
   CALL test_menu()
   CLOSE WINDOW p_zz_w
      CALL  cl_used(g_prog,g_time,2) RETURNING g_time #No:MOD-580088  HCN 20050818  #No.FUN-6A0096
END MAIN
 
FUNCTION test_count()
  WHILE TRUE
     INITIALIZE g_ima121 TO NULL
     INITIALIZE g_ima122 TO NULL
     INITIALIZE g_ima123 TO NULL
     CLEAR FORM
     MESSAGE ''
     DISPLAY g_sure TO s123
     INPUT  g_ima121,g_ima122 FROM ima121,ima122
         LET g_ima123=g_ima121+g_ima122
         LET g_ima=g_ima123
     IF INT_FLAG THEN
               MESSAGE "crash!!"
               LET INT_FLAG = 0
               EXIT WHILE
     END IF
     LET g_imas=g_ima
     DISPLAY g_ima121 TO ima121
     DISPLAY g_ima122 TO ima122
     DISPLAY g_ima123 TO ima123
     IF g_ima123 IS NULL THEN
            CONTINUE WHILE
     ELSE
            MESSAGE "count successfully!!" ATTRIBUTE (YELLOW)
     END IF
   EXIT WHILE
  END WHILE
END FUNCTION
 
FUNCTION test_menu()
  MENU ""
        BEFORE MENU
           CALL cl_navigator_setting(g_curs_index, g_row_count)
        ON ACTION insert
            LET g_action_choice="insert"
                 CALL test_count()
        ON ACTION query
            LET g_action_choice="query"
        ON ACTION sure
           CALL test_sure()
        ON ACTION modify
            LET g_action_choice="modify"
            IF g_sure MATCHES "[Y]" THEN
                MESSAGE "can't not change"
            ELSE
                 CALL test_sq()
            END IF
        ON ACTION invalid
            LET g_action_choice="invalid"
        ON ACTION exit
            LET g_action_choice = "exit"
            EXIT MENU
        ON ACTION controlg
            CALL cl_cmdask()
        ON ACTION locale
            CALL cl_dynamic_locale()
          CALL cl_show_fld_cont()                   #No:FUN-550037 hmf
        ON IDLE g_idle_seconds
           CALL cl_on_idle()
           CONTINUE MENU
      ON ACTION about         #MOD-4C0121
         CALL cl_about()      #MOD-4C0121
        COMMAND KEY(INTERRUPT)
             LET INT_FLAG=FALSE         #MOD-570244    mars
           LET g_action_choice = "exit"
           EXIT MENU
         ON ACTION related_document    #No:MOD-470515
           LET g_action_choice="related_document"            
    END MENU
END FUNCTION
 
FUNCTION test_sq()
     MESSAGE ''
     LET g_imas=0
     IF g_ima MATCHES "[0]" OR g_ima IS NULL THEN
          MESSAGE "!g_ima123=0"
     ELSE
           LET g_ima121=g_ima
           LET g_ima122=g_ima
           LET g_imas=g_ima121*g_ima122
           DISPLAY g_ima121 TO ima121
           DISPLAY g_ima122 TO ima122
        DISPLAY g_imas TO ima123
        LET g_ima=g_imas
     END IF
END FUNCTION
 
FUNCTION test_sure()
  IF g_sure="N" THEN
    IF g_imas IS NULL OR g_imas MATCHES "[0]" THEN
        MESSAGE "g_imas is null !!"
    ELSE
        LET g_sure="Y"
      DISPLAY g_sure TO s123
      MESSAGE ''
    END IF
  ELSE
      MESSAGE "Have been identified!"
  END IF
END FUNCTION

4fd

<?xml version="1.0" encoding="UTF-8" ?>
<Form CHECKSUM="-1" browserStatus="true" database_name="ds" fourSTFile="" gstVersion="11401" height="25" lstrtext="false" lstrtoallcomment="false" lstrtoallitem="false" lstrtoalltext="false" lstrtoalltitle="false" name="p_test" posX="0" posY="0" spacing="normal" text="p_test" width="91">
<Grid fontPitch="default" height="16" hidden="--------" hrecindex="-1" lstrcomment="false" name="gr16" posX="1" posY="1" width="74">
<Text height="1" hrecindex="-1" name="text38" posX="16" posY="1" text="這是手寫的第一個簡單的不能再簡單的,簡單的甚至都不叫做4gl的4gl" width="34"/>
<Text height="1" name="text40" posX="25" posY="3" text="下面將實現一個簡單的計算器功能" width="15"/>
<FormField colName="ima121" fieldtype="FORM_ONLY" name="ima121" sqlDBName="formonly" sqlTabName="formonly">
<Edit autoNext="--------" case="NONE" century="R" color="black" colorCondition="black" data_type="INTEGER" fontPitch="default" formfieldname="formfield0" height="1" hidden="--------" invisible="--------" justify="none" lstrcomment="false" name="ima121" noEntry="--------" notNull="--------" posX="26" posY="5" required="--------" reverse="--------" scroll="--------" sizePolicy="initial" tabIndex="1" verify="--------" width="8"/>
</FormField>
<FormField colName="ima122" fieldtype="FORM_ONLY" name="ima122" sqlDBName="formonly" sqlTabName="formonly">
<Edit autoNext="--------" case="NONE" century="R" color="black" colorCondition="black" data_type="INTEGER" fontPitch="default" formfieldname="formfield1" height="1" hidden="--------" invisible="--------" justify="none" lstrcomment="false" name="ima122" noEntry="--------" notNull="--------" posX="26" posY="7" required="--------" reverse="--------" scroll="--------" sizePolicy="initial" tabIndex="2" verify="--------" width="8"/>
</FormField>
<Text height="1" name="text26" posX="9" posY="5" text="num1" width="4"/>
<Text height="1" name="text27" posX="9" posY="7" text="num2" width="4"/>
<FormField colName="name" fieldtype="FORM_ONLY" name="name" sqlTabName="formonly">
<Edit autoNext="--------" case="NONE" century="R" color="black" colorCondition="black" data_type="VARCHAR" fontPitch="default" formfieldname="formfield0" height="1" hidden="--------" invisible="--------" justify="none" lstrcomment="false" name="name" noEntry="--------" notNull="--------" posX="5" posY="3" required="--------" reverse="--------" scroll="--------" sizePolicy="initial" tabIndex="5" verify="--------" width="17"/>
</FormField>
<Label color="black" colorCondition="black" flag_text_changed="TRUE" fontPitch="default" height="1" hidden="--------" justify="none" lstrcomment="false" lstrtext="false" name="lb15_1" posX="9" posY="11" sizePolicy="initial" text="確認碼" width="6"/>
<FormField colName="s123" fieldtype="FORM_ONLY" name="s123" sqlDBName="formonly" sqlTabName="formonly">
<Edit autoNext="--------" case="NONE" century="R" color="black" colorCondition="black" data_type="INTEGER" fontPitch="default" formfieldname="formfield2" height="1" hidden="--------" invisible="--------" justify="none" lstrcomment="false" name="s123" noEntry="--------" notNull="--------" posX="26" posY="11" required="--------" reverse="--------" scroll="--------" sizePolicy="initial" tabIndex="4" verify="--------" width="8"/>
</FormField>
<FormField colName="ima123" fieldtype="FORM_ONLY" hrecindex="-1" name="ima123" sqlDBName="formonly" sqlTabName="formonly">
<Edit autoNext="--------" case="NONE" century="R" color="black" colorCondition="black" data_type="INTEGER" fontPitch="default" formfieldname="formfield0" height="1" hidden="--------" invisible="--------" justify="none" lstrcomment="false" name="ima123" noEntry="--------" notNull="--------" posX="26" posY="9" required="--------" reverse="--------" scroll="--------" sizePolicy="initial" tabIndex="3" verify="--------" width="18"/>
</FormField>
<Text height="1" name="text5" posX="9" posY="9" text="num3" width="4"/>
</Grid>
</Form>

文章来源: 放牛娃blog | 个人技术小站

尝试写一写4gl与4fd的更多相关文章

  1. 不管你以后写不写JS,都应该学会这种思考方式

    昨天在网上看到了一篇文章说程序员写不过35这种说法,但事实上,确实并不能每个人都像我一样,在写JS中找到乐趣,就乐意写这东西直到50岁眼瞎为止. 那肯定有人要问,也许我不仅写JS写不到35,可能我连3 ...

  2. 开发(ASP.NET程序)把写代码写至最有面向对象味道

    前几天,搬房子时又拿起<重构----改善既有代码的设计>这本书来随便翻来看下,重构Refactoring在开发时,是时常也经常会使用得到. 她确实教我们怎样把写程序写简洁,清楚 好明白,好 ...

  3. Swift 函数调用到底写不写参数名

    最近真正开始学 Swift,在调用函数的时候遇到一个问题:到底写不写函数名? 我们来看两个个例子: // 1 func test(a: Int, b: Int) ->Int { return a ...

  4. 回写盘写速度被限速为10M左右

    问题现像如下图所示: 用hd-speed等测试虚拟盘速度都能达到90M/s左右,但复制文件到虚拟盘速度最高只有10M/s 原因:由于客户机开机加载这个随机驱动和随机进程后,会对磁盘启动进程等有扫描检查 ...

  5. CS代码代写, 程序代写, java代写, python代写, c/c++代写,csdaixie,daixie,作业代写,代写

    互联网一线工程师程序代写 微信联系 当天完成特色: 互联网一线工程师 24-48小时完成.用心代写/辅导/帮助客户CS作业. 客户反馈与评价 服务质量:保证honor code,代码原创.参考课程sl ...

  6. Kotlin尝试之一:写代码前的准备

    Kotlin是一种静态类型的编程语言,可在Java虚拟机上运行,也可以编译为JavaScript源代码. 其主要发展来自位于俄罗斯圣彼得堡的JetBrains程序员团队. 虽然语法与Java不兼容,但 ...

  7. 用CIL写程序:写个函数做加法

    前言: 上一篇文章小匹夫为CIL正名的篇幅比较多,反而忽略了写那篇文章初衷--即通过写CIL代码来熟悉它,了解它.那么既然有上一篇文章做基础(炮灰),想必各位对CIL的存在也就释然了,兴许也燃起了一点 ...

  8. 写js写傻了,明天研究一下异步

    在html某元素上绑定一个click事件,该事件是一个执行事件很长的函数,比如执行几十亿或几百亿次加法,那么在这个函数执行的过程中,其他元素绑定的事件,是如何触发的呢,异步触发还是同步,触发时是怎么执 ...

  9. PHP_Bibel阅读学习(一)——看书看经典,写文写代码

    基础快速再看一下,然后每天有新的好玩的看. 这本书,反正好评不少,就是`PHP和MySQL Web开发`,机械工业出版社,澳洲人写的,红皮,有兴趣的可以看一下. 第一篇 使用PHP 一.入门 5分钟翻 ...

随机推荐

  1. Python read和write方法

    Python read和write方法: read(): 从文件中读取字符串 注:Python 字符串可以是二进制数据,而不仅仅是文字. 语法: 文件对象.read([count]) count:打开 ...

  2. shell动态向sql传参

    一直在想有什么好方法可以实现,用shell动态给sql传参,自己写了一个简单,有什么好方法,欢迎留言补充,下面代码纯手打,可能有疏忽之处,请大佬批评指正指正. 实现方法如下: 1.新建一个文件02.t ...

  3. python基础day7_购物车实例

    print("欢迎光临") money = input("请输入您的金额:") shopping_car ={} li = [{"name" ...

  4. PHP md5_file() 函数

    实例 计算文本文件 "test.txt" 的 MD5 散列: <?php高佣联盟 www.cgewang.com$filename = "test.txt" ...

  5. x86架构: 硬件启动过程分析(附引导启动代码)

    用户按下开机键,几秒的时间,都经历了啥? 1.cpu各个寄存器赋初始值,cs.base=0xffff0000, eip=0xfff0,其他寄存器都是0,这时cs:ip得到的物理地址:0xfffffff ...

  6. Jmeter TCP协议性能测试

    最近有在做tcp协议性能测试,总结一下遇到的坑吧. 首先呢,我这边用的是16进制的报文: (1)TCPClient classname:org.apache.jmeter.protocol.tcp.s ...

  7. 精通python网络爬虫PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书

    点击获取书籍提取码:yc9w

  8. 通过源码分析Java开源任务调度框架Quartz的主要流程

    通过源码分析Java开源任务调度框架Quartz的主要流程 从使用效果.调用链路跟踪.E-R图.循环调度逻辑几个方面分析Quartz. github项目地址: https://github.com/t ...

  9. 蓝奏云数值验证码识别,python调用虹鱼图灵识别插件,超高正确率

    识别验证码一直是本人想要做的事情,一直在接触按键精灵,了解到有一个虹鱼图灵识别插件专门做验证码和图像识别,原理就是图片处理和制作字库识别,制作字库我一直觉得很麻烦,工程量太大.不管怎样,它能用能达到我 ...

  10. PHP基础之查找

    前言 之前的文章介绍了PHP的运算符.流程控制.函数.排序等.有兴趣可以去看看. PHP入门之类型与运算符 PHP入门之流程控制 PHP入门之函数 PHP入门之数组 PHP基础之排序 下面简单介绍一下 ...