




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、GENERO BDL 2.31 (三)鼎捷软件 TOP GP 华东事业部学习对象及目标必修:必修:系统工程师、服务人员、研发人员、系统工程师、服务人员、研发人员、MIS人员人员学习对象学习对象学习目标学习目标1. 了解了解ARRAY应用;应用;2. 掌握掌握REPORT的撰写;的撰写;3. 清楚清楚DEBUGGER的用法。的用法。课程大纲1ARRAY应用应用2REPORT3DEBUGGERARRAY 应用1ARRAY应用应用2REPORT3DEBUGGERARRAY固定数组(固定数组(Static Array)定义)定义ARRAY intconst ,intconst ,intconst OF
2、 datatype动态数组(动态数组(Dynamic Array)定义)定义DYNAMIC ARRAY WITH DIMENSION rank OF datatypeARRAY MAIN DEFINE g_desc ARRAY3 OF CHAR(14) DEFINE g_x ARRAY10 OF RECORD a CHAR(10), b CHAR(10), c CHAR(10) END RECORD END MAINEX:固定数组(固定数组(Static Array)ARRAYEX:动态数组(动态数组(Dynamic Array) DEFINE g_i DYNAMIC ARRAY OF INT
3、EGER DEFINE a DYNAMIC ARRAY WITH DIMENSION 2 OF INTEGEROR DEFINE g_x DYNAMIC ARRAY OF RECORD a CHAR(10), b CHAR(10), c CHAR(10) END RECORD一维数组一维数组 DEFINE b DYNAMIC ARRAY WITH DIMENSION 3 OF INTEGER二维数组二维数组三维数组三维数组OBJECT METHODS对象名称对象名称说说 明明getLength( )RETURNING INTEGER回传一维数组的长度回传一维数组的长度clear()将动态数组(
4、将动态数组(Dynamic Array)中,所有记录移除。)中,所有记录移除。将固定数组(将固定数组(Static Array)中,所有纪录值清为)中,所有纪录值清为NULL。appendElement()在动态数组(在动态数组(Dynamic Array)后面加上一笔新的记录。这)后面加上一笔新的记录。这个对象在固定数组(个对象在固定数组(Static Array)中无效。)中无效。insertElement( INTEGER )在指定位置新增记录,并将指定位置后之资料往下移。在指定位置新增记录,并将指定位置后之资料往下移。动态数组(动态数组(Dynamic Array)的笔数加)的笔数加1
5、。OBJECT METHODS - getlength()对象名称对象名称说说 明明getLength( )RETURNING INTEGER回传一维数组的长度回传一维数组的长度clear()将动态数组(将动态数组(Dynamic Array)中,所有记录移除。)中,所有记录移除。将固定数组(将固定数组(Static Array)中,所有纪录值清为)中,所有纪录值清为NULL。appendElement()在动态数组(在动态数组(Dynamic Array)后面加上一笔新的记录。这)后面加上一笔新的记录。这个对象在固定数组(个对象在固定数组(Static Array)中无效。)中无效。inse
6、rtElement( INTEGER )在指定位置新增记录,并将指定位置后之资料往下移。在指定位置新增记录,并将指定位置后之资料往下移。动态数组(动态数组(Dynamic Array)的笔数加)的笔数加1。OBJECT METHODS - getlength() MAIN DEFINE a DYNAMIC ARRAY OF INTEGER LET a5000 = 12456 DISPLAY a.getLength() END MAIN SHOW:5000举例举例OBJECT METHODS - clear()对象名称对象名称说说 明明getLength( )RETURNING INTEGER回
7、传一维数组的长度回传一维数组的长度clear()将动态数组(将动态数组(Dynamic Array)中,所有记录移除。)中,所有记录移除。将固定数组(将固定数组(Static Array)中,所有纪录值清为)中,所有纪录值清为NULL。appendElement()在动态数组(在动态数组(Dynamic Array)后面加上一笔新的记录。这)后面加上一笔新的记录。这个对象在固定数组(个对象在固定数组(Static Array)中无效。)中无效。insertElement( INTEGER )在指定位置新增记录,并将指定位置后之资料往下移。在指定位置新增记录,并将指定位置后之资料往下移。动态数组
8、(动态数组(Dynamic Array)的笔数加)的笔数加1。OBJECT METHODS - clear() MAIN DEFINE a DYNAMIC ARRAY OF INTEGER LET a10 = 11 DISPLAY Before Clear :,a.getLength() CALL a.clear() DISPLAY After Clear :,a.getLength() END MAIN SHOW: Before Clear : 10 After Clear : 0举例举例OBJECT METHODS - appendElement()对象名称对象名称说说 明明getLeng
9、th( )RETURNING INTEGER回传一维数组的长度回传一维数组的长度clear()将动态数组(将动态数组(Dynamic Array)中,所有记录移除。)中,所有记录移除。将固定数组(将固定数组(Static Array)中,所有纪录值清为)中,所有纪录值清为NULL。appendElement()在动态数组(在动态数组(Dynamic Array)后面加上一笔新的记录。这)后面加上一笔新的记录。这个对象在固定数组(个对象在固定数组(Static Array)中无效。)中无效。insertElement( INTEGER )在指定位置新增记录,并将指定位置后之资料往下移。在指定位置
10、新增记录,并将指定位置后之资料往下移。动态数组(动态数组(Dynamic Array)的笔数加)的笔数加1。OBJECT METHODS - appendElement() MAIN DEFINE a DYNAMIC ARRAY OF INTEGER LET a10 = 10 CALL a.appendElement() LET aa.getLength() = a.getLength() DISPLAY a.getLength() DISPLAY a10 DISPLAY a11 END MAIN SHOW: 11 10 11举例举例OBJECT METHODS- insertElement(
11、)对象名称对象名称说说 明明getLength( )RETURNING INTEGER回传一维数组的长度回传一维数组的长度clear()将动态数组(将动态数组(Dynamic Array)中,所有记录移除。)中,所有记录移除。将固定数组(将固定数组(Static Array)中,所有纪录值清为)中,所有纪录值清为NULL。appendElement()在动态数组(在动态数组(Dynamic Array)后面加上一笔新的记录。这)后面加上一笔新的记录。这个对象在固定数组(个对象在固定数组(Static Array)中无效。)中无效。insertElement( INTEGER )在指定位置新增记
12、录,并将指定位置后之资料往下移。在指定位置新增记录,并将指定位置后之资料往下移。动态数组(动态数组(Dynamic Array)的笔数加)的笔数加1。OBJECT METHODS- insertElement() MAIN DEFINE a DYNAMIC ARRAY OF INTEGER LET a10 = 11 CALL a.insertElement(10) LET a10 = 10 DISPLAY a.getLength() DISPLAY a10 DISPLAY a11 END MAIN SHOW: 11 10 11举例举例DISPLAY ARRAY举例举例举例举例 DISPLAY
13、ARRAY arr TO srec.* DISPLAY ARRAY record-array TO screen-array.* HELP help-number ATTRIBUTE ( ,. )DISPLAY ARRAYEXIT DISPLAYCONTINUE DISPLAYACCEPT DISPLAYDISPLAY ARRAY架构架构:BEFORE DISPLAYAFTER DISPLAYBEFORE ROWAFTER ROWON IDLE idle-secondsON ACTION action-nameON FILL BUFFEREND DISPLAYINPUT ARRAY语法语法举例
14、举例 INPUT ARRAY custarr WITHOUT DEFAULTS FROM sr_cust.*INPUT ARRAY array WITHOUT DEFAULTS FROM screen-array.* HELP help-number ATTRIBUTE ( ,. )BEFORE INPUTAFTER INPUTBEFORE ROWAFTER ROWBEFORE FIELD field-listAFTER FIELD field-listON CHANGE field-listON ROW CHANGEON IDLE idle-secondsON ACTION action-n
15、ameBEFORE INSERT AFTER INSERTBEFORE DELETEAFTER DELETEEND INPUT INPUT ARRAYACCEPT INPUTCONTINUE INPUTEXIT INPUTNEXT FIELDCURRENT | NEXT |PREVIOUS | field-nameCANCEL INSERTCANCEL INSERTCANCEL DELETE架构架构ATTRIBUTES 控制属性属性名称属性名称说明说明APPEND ROW =bool 定义用户可否在最后一行新增资料定义用户可否在最后一行新增资料COUNT = row-count 定义当前数组的
16、总行数定义当前数组的总行数DELETE ROW =bool 定义用户可否删除资料定义用户可否删除资料INSERT ROW =bool 定义用户可否新增资料定义用户可否新增资料MAXCOUNT = row-count 定义数组最大资料行数定义数组最大资料行数UNBUFFERED =bool 定义数组即时显示资料定义数组即时显示资料WITHOUT DEFAULTS =bool 保留原先资料,不清为保留原先资料,不清为NULLCANCEL = bool 定义定义”CANCLE”功能可否使用功能可否使用ACCEPT = bool 定义定义”ACCEPT”功能可否使用功能可否使用控制段运行顺序用户动作用
17、户动作控制段运行顺序控制段运行顺序进入数组进入数组BEFORE INPUTBEFORE ROWBEFORE FIELD移动至其它行移动至其它行AFTER FIELD (for field A in the current row)AFTER INSERT (if a new row was inserted or new row was appended)ON ROW CHANGE (if values have changed in current row)AFTER ROW (for the current)BEFORE ROW (the new row)BEFORE FIELD (for
18、 field B in the new row)移动至同行中的移动至同行中的不同字段不同字段ON CHANGE (for field A, if value has changed)AFTER FIELD (for field A)BEFORE FIELD (for field B)控制段运行顺序用户动作用户动作控制段运行顺序控制段运行顺序删除一删除一行行BEFORE DELETE (the row to be deleted)AFTER DELETE (the deleted row)AFTER ROW (the deleted row)BEFORE ROW (the new current
19、 row)BEFORE FIELD新增一行新增一行(插在两行中)(插在两行中)AFTER FIELDAFTER INSERT (if a new row was created)ON ROW CHANGE (if values have changed)AFTER ROW (the previous row)BEFORE INSERTBEFORE FIELD新增一行新增一行(进入最后一行)(进入最后一行)AFTER FIELDAFTER INSERT (if a new row was created)ON ROW CHANGE (if values have changed)AFTER RO
20、W (the previous row)BEFORE ROW (the new current row)BEFORE INSERTBEFORE FIELD控制段运行顺序用户动作用户动作控制段运行顺序控制段运行顺序按下确定按下确定ON CHANGEAFTER FIELDAFTER INSERT (if a new row was created)ON ROW CHANGE (if values have changed)AFTER ROWAFTER INPUT按下取消按下取消AFTER ROWAFTER INPUTREPORT1ARRAY应用应用2REPORT3DEBUGGERREPORT 的三
21、个主要指令 START REPORT report_name TO SCREEN | FILE filename | PRINTER OUTPUT TO REPORT report_name(variable_list) FINISH REPORT report_nameReport 的三个的三个主要主要指令指令REPORT 的三个主要指令MAIN DEFINE p_employee RECORD LIKE employee.* DECLARE emp1_curs CURSOR FOR SELECT * FROM emplyee START REPORT employee_report FOR
22、EACH emp1_curs INTO p_emplyee.* OUTPUT TO REPORT employee_report(p_employee.*) END FOREACH FINISH REPORT employee_reportEND MAINREPORT employee_report(r_employee) DEFINE r_employee RECORD LIKE employee.* FORMAT ON EVERY ROWEND REPORT范例范例REPORT FUNCTION 的组成REPORT report_name(expr_list) DEFINE define_
23、statement OUTPUT output_statement ORDER BY sort_list FORMAT control_block statement : :END REPORTOUTPUT SECTIONOUTPUT TOP MARGIN 0 LEFT MARGIN 0 BOTTOM MARGIN 5 PAGE LENGTH 6661566报表结果报表结果ORDER SECTION语法语法ORDER EXTERNAL BY variable-list说明说明ORDER BY 区间,区间,主要是作排序字段用主要是作排序字段用,以逗号分开,以逗号分开。ORDER EXTERNAL
24、 BY表表示示录入资料录入资料排序后不存在暂存档排序后不存在暂存档中。中。ORDER BY 会先将资料会先将资料排序过并存在暂存档排序过并存在暂存档中中,配合,配合BEFORE GROUP OF 或或 AFTER GROUP OF区段排序后再由暂存档印出区段排序后再由暂存档印出。最前面的字段为主最前面的字段为主KEY,同时只能用,同时只能用所接收参数内的字段所接收参数内的字段来排序。来排序。ORDER SECTIONREPORT i252_rep(sr) DEFINE sr RECORD pmw01 LIKE pmw_file.pmw01, pmw03 LIKE pmw_file.pmw03,
25、 . pmx02 LIKE pmx_file.pmx02, pmx08 LIKE pmx_file.pmx08, . END RECORD OUTPUT. ORDER BY sr.pmw01,sr.pmx02 . BEFORE GROUP OF sr.pmw01 . AFTER GROUP OF sr.pmw01 .END REPORT 范例范例ORDER SECTION料号料号数量数量A0110A02100C1050A0120A0150A02200料号料号数量数量A01 10A0120A0150A02100A02 200C10 50Order by 料号料号FORMAT SECTION FI
26、RST PAGE HEADER PAGE HEADER BEFORE GROUP OF ON EVERY ROW AFTER GROUP OF ON LAST ROW PAGE TRAILER主要主要CONTROL BLOCKSBEFORE GROUT OF 料号原程序代码原程序代码ON EVERY ROW PRINT 料号料号, 规格规格, 数量数量, 金额金额BEFORE GROUT OF 料号料号料号规格规格数量数量金额金额A01HDD 2.51030,000A01HDD 2.52060,000A01HDD 2.550150,000A02HDD 3.5100200,000A02HDD 3
27、.5200400,000C10Mouse5025,000BEFORE GROUP OF 料号BEFORE GROUP OF 料号料号PRINT 料号料号, 规格规格 ;ON EVERY ROWPRINT 数量数量, 金额金额BEFORE GROUP OF 料号料号料号规格规格数量数量金额金额A01HDD 2.51030,0002060,00050150,000A02HDD 3.5100200,000200400,000C10Mouse5025,000AFTER GROUP OF 料号料号料号规格规格数量数量金额金额A01HDD 2.51030,0002060,00050150,000A02HD
28、D 3.5100200,000200400,000C10Mouse5025,000AFTER GROUP OF 料号BEFORE GROUP OF 料号料号 PRINT 料号料号, 规格规格;ON EVERY ROW PRINT 数量数量, 金额金额AFTER GROUP OF 料号料号 PRINT “小计小计”, GROUP SUM(数量数量), GROUP SUM(金额金额)AFTER GROUP OF 料号料号料号规格规格数量数量金额金额A01HDD 2.51030,0002060,00050150,000小计小计80240,000A02HDD 3.5100200,000200400,0
29、00其它报表指令表达式表达式举例举例PRINT ”员工编号:员工编号:”, ,employee_no结果印出结果印出 员工编号员工编号 : : 2000 PRINT说明说明: :制作报表时印出资料的指令。制作报表时印出资料的指令。其它报表指令表达式表达式举例举例 SKIP 2 LINES 跳两行跳两行 SKIP TO TOP OF PAGE 跳页跳页 SKIP说明说明: :制作报表时跳行或跳页的叙述。制作报表时跳行或跳页的叙述。其它报表指令表达式表达式举例举例 LET a=“鼎鼎 ” LET b=“捷捷 ” PRINT a CLIPPED,b CLIPPED 结果印出结果印出 鼎捷鼎捷 CLI
30、PPED说明说明: :将字符串后面的空白将字符串后面的空白去掉。去掉。其它报表指令表达式表达式说明说明 COLUMN指定输出的指定输出的列列位置位置 PAGENO取得当前打印页的页号值取得当前打印页的页号值 SPACES传回一串空白传回一串空白其它报表指令举例举例 LET money = 1000 PRINT 这是第这是第,PAGENO, 页页 PRINT COLUMN 10, money USING #&.& PRINT 9 SPACES, money USING # 结果印出结果印出这是第这是第 X 页页 -1000.00 -1000USING (设置格式)符号符号说说 明
31、明#不会对输出的字符作任何影响不会对输出的字符作任何影响, 通常用于限制字符串输出时的最大长度通常用于限制字符串输出时的最大长度将数字改为向左靠将数字改为向左靠&以以 0 置换空格符置换空格符,在指定位置以逗号显示在指定位置以逗号显示-当输出的数字小于零,会在其前面以负号显示当输出的数字小于零,会在其前面以负号显示+当输出的数字大于零,会在其前面以正号显示当输出的数字大于零,会在其前面以正号显示当输出的数字小于零,会在其前面以负号显示当输出的数字小于零,会在其前面以负号显示$在指定位置以钱字号显示在指定位置以钱字号显示USING 示范12,34512345012,345.00$12,3
32、45+12345-12,345-12,345值值 = 12345USING #,#USING USING &#,#.&USING $#,#USING +值值 = -12345USING -,-USING +,+内建函数函函 数数说说 明明GROUP PERCENT(*)GROUP区块中,资料的百分比区块中,资料的百分比GROUP COUNT(*)GROUP区块中,资料的总数区块中,资料的总数GROUP AVG(expr)GROUP区块中,取得数值的平均值区块中,取得数值的平均值GROUP MAX(expr)GROUP区块中,取得数值的最大值区块中,取得数值的最大值GROUP M
33、IN(expr)GROUP区块中,取得数值的最小值区块中,取得数值的最小值GROUP SUM(expr)GROUP区块中,数值的加总区块中,数值的加总DEBUGGER1ARRAY应用应用2REPORT3DEBUGGERDEBUGGER语法语法举例举例 $FGLRUN d test $FGLRUN d 程序名称程序名称.42rDEBUGGER 指令指令指令说明说明示范示范缩写缩写Break设置断点设置断点break test01_abRun运行程序运行程序runruStep逐步运行程序逐步运行程序step 10sContinue运行到下一个断点运行到下一个断点continuecoList列出程序
34、代码列出程序代码linelistlPrint显示变量值显示变量值print g_sqlpQuit结束结束Debugger环境环境quitqDelete删除断点删除断点delete 1dHelp查看指令内容查看指令内容help listhDEBUGGER 举例Debugger范例范例DEBUGGER 举例-help举例举例 (fgldb) help #查看所有指令查看所有指令 或或 (fgldb) help list (指令名称指令名称) #查看查看具体具体指令指令help 缩写:缩写:h (fgldb) help list List specified function or line DEB
35、UGGER 举例-helpbreak - Set breakpoint at specified line or function tbreak - Set a temporary breakpoint backtrace - Print backtrace of all stack frames bt - Print backtrace of all stack frames continue - Continue program being debugged call - Call a function in the program clear - Clear breakpoint at
36、specified line or function. delete - Delete some breakpoints or auto-display expressions define - Define a new command name. display - Print value of expression EXP each time the program stops disable - Disable some breakpoints down - Select and print FUNCTION called by this one enable - Enable some
37、 breakpoints echo - Print a constant string file - Use FILE as program to be debugged finish - Execute until selected stack frame returns frame - Select and print a stack framehelp - Print list of commands. info - Generic command for showing things about the program being debugged. ignore - Set igno
38、re-count of breakpoint number N to COUNT. list - List specified function or line next - Step program, proceeding through subroutine calls. (fgldb) help DEBUGGER 举例-run举例举例 (fgldb) run #运行程序运行程序 run 缩写:缩写:r(fgldb) run Breakpoint 1, main() at apm_apmi252.4gl:139 139 IF (NOT cl_user() THEN (fgldb) cont
39、inue Continuing. DEBUGGER 举例-quit举例举例 (fgldb) quit #离开程序离开程序 quit 缩写:缩写:q$FGLRUN -d apmi252.42r (fgldb) quit DEBUGGER 举例-break举例举例 (fgldb) break 10 # #设中断行数设中断行数 (fgldb) break function_name break 缩写:缩写:b(fgldb) break 139Breakpoint 1 at 0 x00000000: file apm_apmi252.4gl, line 139 (fgldb) break i252_b Breakpoint 2 at 0 x00000000: file apm_apmi252.4gl, line 1479DEBUGGER 举例-print举例举例 (fgldb) print l_str #显示显示变变量值量值 (fgldb) print status (fgl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 骨科病房护理要点与实践
- 牵引术护理要点
- 生产管理:运作战略管理
- 2025届广东汕尾甲子镇瀛江学校八年级数学第二学期期末联考模拟试题含解析
- 血液臭氧治疗
- 重症护理核心理念与实务
- 手写护理文书标准化管理
- 高一新生住宿管理规范与实施策略
- 与法律有关的职业考试题及答案
- 经典诵读活动总结模版
- 2023年智慧树知到《大学生安全文化》答案全
- 个性化旅游定制服务设计与运营策略制定
- 《CMOS反相器的设计》课件
- 《中学生入学协议书》
- 机械制图-形成性任务4-国开(ZJ)-参考资料
- 头晕课件完整版本
- 中华人民共和国学前教育法
- 2024年5月26日河南省事业单位联考《职业能力测试》试题
- 酒店安全生产培训教育
- 土建质量员课件
- 食品安全科普知识竞赛试题及答案(50题)
评论
0/150
提交评论