2022年GENERO语法知识总结 .pdf

上传人:C****o 文档编号:35806103 上传时间:2022-08-23 格式:PDF 页数:13 大小:204.79KB
返回 下载 相关 举报
2022年GENERO语法知识总结 .pdf_第1页
第1页 / 共13页
2022年GENERO语法知识总结 .pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《2022年GENERO语法知识总结 .pdf》由会员分享,可在线阅读,更多相关《2022年GENERO语法知识总结 .pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、GENERO 語法知識總結一. 文件組成結構原始程序編譯後的程序可執行程MODULE 程序文件*.4gl *.42m *.42r FORM文件 *.per *.42f 其他各式二. 命名規則組成部份詳細內容程序命名規則S_XXXXXXXX : 一般子程序存于 $top/sub CL_XXXXXXXX : 共享子程序存于 $top/lib Q_XXXXXXXX : 查詣子程序存于 $top/qry 函數命名規則XXXX_yy : 程序代碼簡稱 _函數功能名如: i010_a 為 i010 作業的新增函數數i010_tmp 函數名字變量命名規則G_xxxxxx : 全局變量L_xxxxxx : 區

2、域性變量P_xxxxxx : 傳遞變量S_xxxxxx : 屏幕變量文件命名規則文件名稱 (TABLE NAME) : xxx_file 數據庫字段名稱 (FIELD NAME) : xxx99 99 代表流水號上面兩項內容需于 p_zta中注冊後 , 方可使用存于 UNIX的外部名稱 (SCH FILE) : c_xxx.sch 三. Program的組成 : MODULE + FORM 1. MODULE 組成部份詳細內容Database Database dbname # 編譯時參考的 schema數據庫 , 炅是實際數據庫GLOBALS Globals “ ./config/top.g

3、lobal ” #全部程序共用的全局變量Ddfine var_Nmae DATATYPE #定義變量Constant cons_anme datatype #定義常量MAIN MAIN . . END MAIN FUNCTION FUNCTION funName() . 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 13 页 - - - - - - - - - END FUNCTION REPORT REPORT Rep_Name(sr) FORMAT

4、 PAGE HEADER BEFORE GROUP ON EVERY ROW AFTER GROUP . END REPORT 2. Form SCKEMA Schema ds # 表示設計畫面時所參考的數據庫, 默認為 FORMONLY 表示與數據庫無關 : 為了與舊版本兼容SCHEMA 可以用 DATABASE 指令代替 . Action default 不使用 , 用其他方式設定 (參考 TIPTOP GP 技術手冊 )必須緊接在SCHEMA 下面做Action Defaults Action add(text=” Append” ,accelerator=control-v) Acti

5、on del(text=” delete” ,accelerator=shift-F2) Action zoom(text=” Zoom” ,comment=” Open zoom window” ) Action quit(text=quit ” ,accelerator=Shift-F5,image= ” quit”END 第二種處理方式 : 在程序 act.4gl 中去呼叫 CALL ui_interface.loadActionDefaults( “ act” ) 傳得參數是 act.4ad 檔名, 附檔名可不寫,則產生的結果也可能在per 檔編輯 (ACTION DEFAULTS的結

6、果一樣編寫下面的 xml 文檔“ ACT.4ad ” MAIN #呼叫並載入默認ACTION 項CALL ui.interface.loadActionDefaults( “ act” ) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 13 页 - - - - - - - - - MENU “”ON ACTION add CALL act_a() ON ACTION del ON ACTION zoom . ON ACTION quit . Exit

7、program END MENU TOPMENU 不使用, 用其他設定 (參考 TIPTOP GP 技術手冊 ) TOPMENU MenuName GROUP form(TEXT=” Form” ) COMMAND help(TEXT= ” Form” ,IMAGE= ” quest” ) COMMAND quit(TEXT= ” quit” ) END GROUP Edit(TEXT=” Exit” ) COMMAND accecpt(Text= ” validate” image=” ok” ,tag=” accrpMenu” ) COMMAND Cancel(tEXT= ” Cancel

8、” , image=” cancel” ) SEPATATOR COMMAND editCut . END END -TOPMENU LAYOUT LAYOIUT #不能與 SCREEN 同時出現VBOX GROUP #顯示組合框FOLDER #FOLDER 下面只能用 PAGE, PAGE 下面可以有 FORDER-PAGE PAGE PageName(text=” main” ) GRID Employee no azb1 Name gen02 Deartment no gen03gen02 END -GRID END -PAGE PAGE PageName(text= ”main”)名师

9、归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 13 页 - - - - - - - - - GRID Employee no azb1 Name gen02 Deartment no gen03gen02 END -GRID END -PAGE END -FOLDER END GROUP END VBOX END LAYOUT Table 屏幕畫面顯示的字段所對應的表格名稱ATTRIBUTES 定義屏幕畫面上字段的名稱及顯示特性, 所有的 SCREEN 與

10、 LAYOUT 里要定義的字段 Tag在這裡都要做進一步的定義ATTRIBUTES END INSTRUCTIONS 定義屏幕記錄語法: SCREEN RECORD record-name (field-list) 例子:SCREEN RECORD s_aaa(aaa.*)屏幕記錄是個完整的表格SCREEN RECOED s_employee(emp_po,emp_age) 定義屏幕數組語法:SCREEN RECORD array_namesize field-list 例子:SCREEN RECORD s_aaa3 (foo1,foo02,foo03) INSTRUCTIONS SCREEN

11、 RECORD s_employee(emp_no,emp_age) END 四. 基礎語法1. 變量及表達式變量的類型及定義DATABASE ds GLOBALS DEFINE g_employee CHAR(10) #全局变量END GLOBALS DEFINE g_tty CHAR(32) #模块变量MAIN 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 13 页 - - - - - - - - - DEFINE answer CHAR(1) #

12、局部变量,直接定义DEFINE p_employee_no LIKE employee_file.employee_no #对应数据库字段定义END MAIN FUNCTION ins_employee() DEFINE flag CHAR(1), change SMALLINT END FUNCTION 數據類型型态名称说明默认值CHAR 固定字符Null VARCHAR 动态字符Null STRING 动态定义大小的字符串储存空间Null DATE 日期1899-12-31 DATETIME 日期时间Null INTEGER 4 BYTE 整数Zero SMALLINT 2 BYTE 整数

13、Zero FLOAT 8 BYTE 单精度浮点数Zero SMALLFLOAT 4 BYTE 双精度浮点数Zero DEC(p,s) 高精度数值 -precision 为所有数字个数 (不含小数点),scale 为小数点的位数,不可大于precision 的位数Null MONEY 同 DECIMAL ,但会在数值前面加上货币符号Null BYTE 大量二进制数据 (图片) Null TEXT 大量字符数据Null 變量的集合(RECORDS) MAIN DEFINE rec RECORD id INTEGER, name VARCHAR(100), birth DATE END RECORD

14、 #集合的定义LET rec.id = 50 #集合变量元素的赋值LET rec.name = Scott LET rec.birth = TODAY DISPLAY rec.* END MAIN 初始化一组变量 INITIALIZE DATABASE ds MAIN DEFINE cr RECORD LIKE customer.* INITIALIZE cr.cust_name TO NULL 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 13 页

15、- - - - - - - - - INITIALIZE cr.* LIKE customer.* END MAIN 表達式字符串表达式达式意义, 字符串连结| 字符串连结,但连结值有一个是NULL , 结果就会是NULL start,end 从字符串中取出子字符串(开始到结束)USING 针对数值或日期设定其打印的格式CLIPPED 消除尾部空白SPACES 输出空白字符串USING數值* 空白的地方以 *置换空白的地方以 0 置换不会对输出的数字作任何影响, 通常用于限制字符串输出时的最大长度将数字改为向左靠,指定逗号出现的位置指定小数点出现的位置当输出的数字小于零时,加上一个负号当输出的

16、数字大于零,加上一个正号当输出的数字小于零,加上一个负号数值出现一个钱字号( 当输出的数字小于零时,加上一个左括号) 当输出的数字小于零时,加上一个右括号USING日期dd 以二位数字表示日期ddd 以三位英文简写表示星MON,TUE, mm 以二位数字表示月份01,02,12 mmm 以三位英文简写表示月JUN ,FE B,DEC yy 以二位数字表示年度95 yyyy 以四位数字表示年度1995 using yyyy 2. 程序流程控制CALL CALL function ( parameter ,. ) # 呼叫执行函式 RETURNING variable ,. #返回指定变量的值动态

17、查询的回传值如果有多组则:let g_qryparam.default1= g_azb.azb01 let g_qryparam.default2= g_azb.azb02 let g_qryparam.default1= g_azb.azb03 returning g_azb.azb01 returning g_qryparam.multiret 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 13 页 - - - - - - - - - let g_

18、qryparam.multiret_index = 1 RETURN RETURN value, . 在 FUNCTION 中使用 , 用于返回一組變量的值CASE 语法一、CASE expression-1 WHEN expression-2 statement | EXIT CASE . OTHERWISE statement | EXIT CASE . END CASE 语法二、CASE WHEN boolean-expression # statement | EXIT CASE . OTHERWISE statement | EXIT CASE . . END CASE FOR FO

19、R counter = start TO finish STEP value statement . END FOR IF IF condition THEN Statement . ELSE Statement . END IF SLEEP SLEEP seconds #程序暂停几秒WHILE WHILE b-expression #条件不成立,跳出循环Statement . 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 13 页 - - - - -

20、 - - - - END WHILE CONTINUE CONTINUE FOR | FOREACH | MENU | CONSTRUCT | INPUT | WHILE #重新执行上面的指令EXIT EXIT CASE | FOR | MENU | CONSTRUCT | FOREACH | REPORT | DISPLAY | INPUT | WHILE #离开上面的程序结构3. WINDOWS與 FORM OPEN WINDOWS OPEN WINDOW identifier AT line, column WITH FORM form-file | height ROWS, width

21、 COLUMNS #Form_file 为编译过产生的文件, *.42f(扩展名可不写 ) ATTRIBUTES ( window-attributes ) CLEAR CLEAR field-list # 清除指定字段变量的内容CLEAR FORM #清除指定表单所有变量的内容CLSOE WINDOWS CLOSE WINDOW WindowName #关闭窗口CURRENT WINDOWS CURRENT WINDOW IS identifier #指定当前的活动窗口名:identifier OPEN FORM OPEN FORM form- name FROM “file -name ”

22、 form_name是程序中定义的画面名称, FILE-NAME 是编译产生的表单文件名DISPLAY FORM DISPLAY FORM form-name #要现有 OPEN ,才能有 DISPLAY CLOSE FORM CLOSE FORM form-name #释放资源4.菜單MENU MENU title ATTRIBUTE ( control-attributes ) BEFORE MENU #以下为菜单载入前的设置COMMAND option comment #MENU功能名称及快捷键定义并显示 HELP help-number COMMAND KEY ( key-name )

23、 #MENU 功能快捷键并不显示在菜单option comment HELP help-number COMMAND KEY ( key-name ) ON ACTION action-name #执行指令ON IDLE idle-seconds #空闲时间END MENU 5. INPUT 和 DISPLAY INPUT語法语法一、字顶名称和变量名称可以不同名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 13 页 - - - - - - - - - I

24、NPUT variable | record.* ,. WITHOUT DEFAULTS FROM field-list 语法二、INPUT BY NAME variable | record.* ,. WITHOUT DEFAULTS #默认字段显示值均为空,要显示原值必须加这上面这行命令INPUT BY NAME p_employee.no #变量名称和字段名称必须相同INPUT結構INPUT variable-list FROM field-list BEFORE INPUT #输入前AFTER INPUT #完成所有输入时BEFORE FIELD field-list #进入某栏位输入

25、前AFTER FIELD field-list #完成某栏位输入时ON CHANGE field-list #字段值在修改时ON IDLE idle-seconds #输入空闲多少时间时ON ACTION action-name # 设置特定功能NEXT FIELD field_name #将游标移到下一字段上EXIT INPUT #跳出 INPUT 的叙述END INPUT DISPLAY 語法语法 1: #变量名只要对应 PER档里定义的名称即可DISPLAY expression ,. TO field-list ,. ATTRIBUTES ( display-attribute ,.

26、) 语法 2: #变量名要与真实的字段相同DISPLAY BY NAME variable | record.* ,. ATTRIBUTES ( display-attribute ,.) 6.游標Scrolling cursor 通常运用在查询程序,可以随机抓取数据。EX:1. DECLARE cursor_name SCROLL CURSOR FOR sql statement 2. DECLARE cursor_name SCROLL CURSOR WITH HOLD FOR sql statement Non-scrolling cursor 通常运用在报表程序,抓取数据的方式是依序(

27、seguential)的方式。EX : DECLARE cursor_name CURSOR FOR sql statement Locking cursor 通常运用在 Update 程序,做数据 Lock 的动作。EX: DECLARE cursor_name CURSOR 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 13 页 - - - - - - - - - FOR sql statement FOR UPDATE Construct 他可以

28、让使用者在画面上下查询资料的条件(也就是做QBE 的动作 ) 语法 1:CONSTRUCT BY NAME char_variable ON column_list 语法 2:CONSTRUCT char_variable ON column_list FROM field_list 说明: char_variable 为 程序变量 (通常定义成字符串变量 ) column_list 为 table 中的字段field_list 为 SCREEN 上的字段。PREPARE 将此段程序转成可执行的叙述PREPARE statement-name FROM char_variable 说明:sta

29、tement-name 是 PREPARE 的一个变量,事先不用定义。char_variable是组合的 SELECT 叙述在做 PREPARE 叙述之前必须先组好 SELECT 的叙述。OPEN OPEN cursor_name CLOSE CLOSE cursor_name FETCH FETCH 语法:必须先 OPEN CURSOR ,最后必须 CLOSE CURSOR FETCH 可以与 WHILE一起用,FETCH cursor_name INTO program_variable FOREACH FOREACH 语法: (只能用于non_scrolling cursor)只能用于循

30、环,自动开启和关闭CURSOR FOREACH emp_cs INTO p_employee.* Statement CONTINUE FOREACH , EXIT FOREACH , END FOREACH 7.數組數組的定義固定数组( Static Array )定义ARRAY intconst ,intconst ,intconst OF datatype 动态数组( Dynamic Array )定义DYNAMIC ARRAY WITH DIMENSION rank OF datatype 變組的事件getLength( ) RETURNING INTEGER:回传单层数组的长度cle

31、ar:将动态数组( Dynamic Array)中,所有记录移除。将固定数组(Static Array ) 中, 所有纪录值清为 NULL 。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 13 页 - - - - - - - - - appendElement():在动态数组( Dynamic Array )后面加上一笔新的记录。这个对象在固定数组( Static Array )中无效。insertElement( INTEGER ) :在指定位置新

32、增记录,并将指定位置后之数据往下移。动态数组( Dynamic Array )的笔数加 1。deleteElement( INTEGER ) :移除指定位置记录,并将指定位置后之数据往上移。动态数组( Dynamic Array )的笔数减 1。DISPLAY ARRAY 目的:将程序数组的值显示在画面上语法:DISPLAY ARRAY record-array TO screen-array.* INOUT ARRAY 目的: Input Array 可以让使用者透过Screen Record 输入资料语法:INPUT ARRAY array WITHOUT DEFAULTS FROM sc

33、reen-array.* HELP help-number ATTRIBUTE ( display-attribute | control-attribute ,. ) 五. 報表與除錯指令1. 報表命令START REPORT 语法: START REPORT rep_name TO SCREEN |FILE filename | PRINTER 说明:(1)这个指令是在驱动REPORT DRIVER。(2)TO SCREEN:为系统 DEFAULT 可不写。(3)TO FILE filenme :将 REPORT 的结果送到一个档案中 (这个文件名由程序人员自订 )。(4)TO PRINT

34、ER:将 REPORT 结果送到打印机 (系统打印机 )。(5)若(2)、(3)都不写,则系统会将结果自动送到屏幕。OUTPUT TO REPORT 语法:OUTPUT TO REPORT rep_name(expr_list) 说明:(1)该功能类似 CALL function 时,并且顺便传递参数,将数据送到 REPORT FUNCTION 中。FINISH REPORT 语法:FINISH REPORT rep_name 说明:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - -

35、- - - 第 11 页,共 13 页 - - - - - - - - - (1)这个指令是结束报表的指令。REPORT FUNCTION REPORT report_name(expr_list) DEFINE define_statement OUTPUT output_statement # 定义报表的边界及长度ORDER BY sort_list FORMAT control_block statement : END REPORT ORDER BY 语法: ORDER EXTERNAL(external 外部的) BY variable-list 说明: (1)ORDER BY 区间

36、,主要是作排序字段用,以逗号分开,摆在最前面的字段为主键,同时只能用所接收的参数内的字段来排序。(2)ORDER BY 会先将数据排序过并存在暂存盘中,配合BEFORE GROUP OF 或 AFTER GROUP OF 区段排序后再由暂存档印出。(3)ORDER EXTERNAL BY 表是输入数据排序过后不存在暂存盘中。FORMAT 部份FIRST PAGE HEADER :报表第一页的表头控制段。PAGE HEADER :报表每一页的表头控制段。BEFORE GROUP OF :在控制区段设定在一组数据的开始之前所必须执行的叙述。ON EVERY ROW :指定每一笔记录的输出格式。AF

37、TER GROUP OF :在控制区段设定一组数据之后必须执行的叙述。PAGE TRAILER(trailer) :每一页报尾的控制段。ON LAST ROW :所有数据印完后要做的动作,例如”总计”。FORMAT 指令1. PRINT 将讯息或数据印出来。ex:PRINT “员工编号:”, employee_no 2.SKIP 打印时要跳几行或几页。ex:SKIP 2 LINES 两行SKIP TO TOP OF PAGE页3.NEED 语法: NEED integer_value LINES 在打印前,先确定是否有足够的剩余行数,可供接下来打印,如果不够将先跳页后,再继续往下印。打印時可用

38、的1.CLIPPED 将字符串后面的空白清掉。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 13 页 - - - - - - - - - 表達式2.USING 针对数值定其打印的格式。3.COLUMN 指定输出的行位置。4.LINENO 取得目前打印行的列号值。5.PAGENO 取得目前的页数。6.SPACES 传回空白。7.TIME 传回系统时间,格式 : ”hh:mm:ss” 8.TODAY 传回系统今天的日期。9.LENGTH(expr) ex

39、pr 为一字符串变量, 其会传回 expr 的长度。群組函數GROUP SUM(expression) :GROUP 区块中,数值的加总。GROUP COUNT(*) :GROUP 区块中,资料的总数。GROUP MIN(expression) :GROUP 区块中,取得数值的最小值。GROUP MAX(expression) :GROUP 区块中,取得数值的最大值。GROUP AVG(expression) :GROUP 区块中,取得数值的平均值。GROUP PERCENT(*) :GROUP 区块中,资料的百分比。2. DEBUGGER 的使用程序的執行一般執行程的命令為fglrun 程序

40、名稱以除錯模式執行程序的命令為fglrun d 程序名稱除錯模式的常用指俴break 设定断点break test01_a b run 执行程序run ru step 逐步执行程序step 10 s continue 执行到下一个断点continue co list 列出程序代码 line list l print 显示变量值print g_sql p quit 结束 Debugger 环境 quit q delete 删除断点delete 1 d help 查看指令内容help list h 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 13 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁