04.04.01.tiptop:基础知识篇(4gl 程序分层: 独立程序)

本文详细介绍了在IT项目中,如何在4GL编程中使用全局变量(global)、子程序引用以及子子程序的创建,包括数据库操作、主程序与子程序的交互,以及使用SSH编译进行代码转换。重点展示了cxmq381程序中的菜单设计和功能实现。
摘要由CSDN通过智能技术生成

本页目录:

  • 1、引用global
  • 2、引用子程序

注意:个人习惯是cxmq381主程序、scxmq381子程序:画面函数、scxmq381_sup子程序:数据操作函数,子程序:global全局变量

  • 案例: source/02.04.04

引用global

  • global文件定义全局变量
DATABASE ds

GLOBALS
   DEFINE g_curs_index          LIKE type_file.num10
   DEFINE g_row_count           LIKE type_file.num10
END GLOBALS
  • 4gl引用global
# 头部引用相对路径
GLOBALS "xxx/xxx.global"

引用子程序

  • 1、主程序引用 cxmq381.4gl
DATABASE ds
GLOBALS "../../config/top.global"

MAIN
  DEFINE p_row,p_col     LIKE type_file.num5

  LET p_row  = ARG_VAL(1)
  LET p_col  = ARG_VAL(2)

  OPTIONS
      FORM LINE     FIRST + 2,
      MESSAGE LINE  LAST,
      PROMPT LINE   LAST,
      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("CXM")) THEN
    EXIT PROGRAM
  END IF

  # 打開窗口
  CALL  cl_used(g_prog,g_time,1) RETURNING g_time 
  LET p_row = 5 LET p_col = 10
  OPEN WINDOW q381_w AT p_row,p_col WITH FORM "cxm/42f/cxmq381"
    ATTRIBUTE (STYLE = g_win_style CLIPPED)
    CALL cl_ui_init()  
    DROP TABLE cxmq381_tmp
    CALL q381_menu()
  CLOSE WINDOW q381_w
  CALL  cl_used(g_prog,g_time,2) RETURNING g_time

END MAIN

ssh 编译:r.c2 cxmq381

  • 2、子子程序创建函数 scxmq381.4gl
DATABASE ds
GLOBALS "../../config/top.global"
GLOBALS "cxmq381.global"

# Pattern name...: q381_menu()
# Descriptions...:画面的ToolBar的设置函数
FUNCTION q381_menu()
  CREATE TEMP TABLE cxmq381_tmp(
      img01         VARCHAR(40),
      img02         VARCHAR(10),
      img09         VARCHAR(4),
      img10         DECIMAL(15,3),
      oea904        VARCHAR(8),
      t             DECIMAL(15,3))

    # ToolBar的設置
    MENU ""
        BEFORE MENU
          CALL cl_navigator_setting(g_curs_index, g_row_count)
          LET tm.wc="1=1"
          DISPLAY "1111111111111"
        ON ACTION modify
          CALL q381_i()
        ON IDLE g_idle_seconds 
          CALL cl_on_idle() 
          CONTINUE MENU
        ON ACTION locale
          CALL cl_dynamic_locale()
          CALL cl_show_fld_cont()
        ON ACTION qbe_select
          CALL cl_qbe_select()
        ON ACTION help
          CALL cl_show_help()
        ON ACTION about
          CALL cl_about()
        ON ACTION controlg
          CALL cl_cmdask() 
        ON ACTION exit
          LET INT_FLAG = FALSE
          EXIT MENU
        ON ACTION close
          LET INT_FLAG=FALSE
          EXIT MENU
    END MENU
END FUNCTION

ssh 编译:r.c2 scxmq381

  • 3、p_link 连接
    在这里插入图片描述
r.l2 scxmq381
  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DKLi1717

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值