1、TIPTOP二次开发结构2012-3-1 TIPTOP报表程式结构TIPTOP 报表程式结构(1)变量声明部分(2)Main(3)_tm函数(4)报表输出函数(相当show)1)变量声明部分database dsglobals 变量名 #全局变量定义define 变量名 record end record #记录集变量定义define 变量名 record like 表 #记录集变量定义define 变量名 like 表.字段 #局部变量定义2)Main 赋值初始变量cl_user #检查用户是否存在cl_setup #程式预设检查cl_used #记录程式使用时间定义g_sql的水晶报表的结
2、构,作用于xml转换格式如下:生成temp表LET l_table =cl_prt_temptable(报表程式名,g_sql) clippedCall _tm函数 #输入打印条件 input print conditionCall 报表输入函数 #调用报表输出函数 read data and create out-filecl_used #记录程式使用时间3)_tm函数局变量定义open window 路径 #打开界面路径cl_ui_init #初始化变量值initialize tm.* to null #给所有tm.*的变量赋空值WHILE TRUE #循环执行菜单显示CONSTRUCT
3、BY NAME 变量名 ON 查询条件字段,. BEFORE CONSTRUCT cl_qbe_init #QBE查询条件初始化ON ACTION 菜单项 #具体菜单名ON IDLE #闲置时间设置INPUT BY NAME 变量名 WITHOUT DEFAULTS BEFORE INPUT cl_qbe_display_condition()AFTER FILED4)报表输出函数定义屏幕变量sr记录集格式如下:define sr record . end recordcl_del_data(l_table) #清空临时表记录集LET g_sql=insert into ,g_cr_db_st
4、r,CLIPPED,l_table CLIPPED, VALUES(.)PREPARE INSERT_PREP FROM g_sql #插入临时表l_table的记录LET l_sql=. #show 记录数据的SQLA语句PREPARE 变量名 FROM l_sql #预编译SQL语句DECLARE 游标变量名 CURSOR FOR 预编译SQL变量名FOREACH 游标变量名 INTO sr.* #循环读取记录到屏幕变量 .EXECUTE insert_prep USING sr.*END FOREACHLET g_sql= SELECT * FROM ,g_cr_db_str CLIPP
5、ED,l_table CLIPPED #生成水晶报表记录集LET g_str=. #给水晶报表中的26个参数传值,切记要对应变量CALL cl_prt_cs3(报表程式名,报表程式名,g_sql,g_str) 2009-09-11 TIPTOP单头单档程式结构定义变量Main函数_cs函数 _menu菜单函数_a函数_i函数_q函数_fetch函数_show函数_u函数_x函数_r函数_copy函数_out函数_chkym检查日期函数1)定义变量定义数据库路径database ds 定义全局变量文件路径globals .定义记录集变量Define 变量名 Record like 表2)Main
6、函数OPTIONS #改变系统预设值FORM LINE #窗口开始的位置MESSAGE LINE #信息提示的位置PROMPT LINE #提示信息的位置cl_user #检查用户帐号cl_setup #检查程式设置路径cl_used #记录程式使用时间定义水晶报表结构,.cl_prt_temptable() #创建临时表记录水晶报表记录集插入记录LET g_sql=INSERT INTO ds_report ,l_table,CLIPPED .OPEN WINDOW #打开窗口cl_ui_init() #设定程式初始化CALL _menu #打开菜单CLOSE WINDOW #关闭窗口cl_
7、used3)_cs函数CLEAR FORM #清除屏幕CONSTRUCT BY NAME 变量名 ON 字段变量名,. #取屏幕变量条件BEFORE CONSTRUCT cl_qbe_init()ON ACTION .ON IDLE . cl_on_idle() CONTINUE CONSTRUCTEND CONSTRUCT定义查询SQL语句定义游标记录集4)_menu菜单函数BEFORE MENU cl_navigator_setting() #上下记录数据移动ON ACTION .ON IDLE . cl_on_idle CONTINUE MENUEND MENU5)_a函数CLEAR F
8、ORM #清除屏幕cl_opmsg #定义程式操作类型WHILE TRUECALL _i #调用_i函数插入记录INSERT INTO 表 VALUES(屏幕变量名.*) #插入记录数据EXIT WHILEEND WHILE6)_i函数DISPLAY BY NAME 字段变量名,.INPUT BY NAME 字段变量名,. WITHOUT DEFAUTLSBEFORE INPUTAFTER FIELD .ON ACTION .ON IDLE . cl_on_idle() CONTINUE INPUTEND INPUT7)_q函数cl_navigator_setting() #上下记录数据移动c
9、l_opmsg #定义程式操作类型CALL _cs #调用查询函数定义游标记录集CALL _fetch #8)_fetch函数PROMPT .ON IDLE . cl_on_idleON ACTION .END PROMPTcl_navigator_setting #上下笔记录移动SELECT * INTO 屏幕变量名.* FROM 表 #读取记录数据给屏幕变量CALL _show #调用显示函数显示当前记录9)_show函数DISPLAY BY NAME 字段变量,.10)_u函数cl_opmsg #定义程式操作类型BEGIN WORK #打开工作区CALL _show #显示记录WHILE
10、 TRUECALL _i(u) #栏位修改UPDATE 表 #更新记录数据EXIT WHILEEND WHILECOMMIT WORK #提交数据11)_x函数BEGIN WORK #打开工作区定义游标记录集CALL _show #显示记录cl_exp #询问是否设置无效UPDATE 表 #更新记录COMMIT WORK #提交数据12)_r函数BEGIN WORK #打开工作区定义游标记录集CALL _show #显示记录cl_delete #询问是否要删除记录DELETE FROM 表 #删除记录COMMIT WORK #提交数据13)_copy函数 #复制函数INPUT 字段变量名,.
11、FROM 字段变量名,.AFTER FIELD .ON ACTION .ON IDLE . cl_on_idle CONTINUE INPUTEND INPUTDROP TABLE 临时表 #删除临时表INTO TEMP 临时表 #插入临时表UPDATE 表 . #更新临时表的关键资料字段INSERT INTO 表 SELECT * FROM 临时表 #将临时表中的记录插入到正式表中.CALL _show #显示记录14)_out函数 #报表输出函数cl_del_data #清空临时表中的记录cl_wait #等待显示定义游标记录集FOREACH 游标变量名 INTO 屏幕变量名.* # 循环
12、读取记录到屏幕变量.EXECUTE 插入预编译SQL变量 USING 屏幕变量名.*END FOREACHCLOSE 游标记录集CALL cl_prt_cs3 #2009-09-09 TIPTOP单身单档录入程式结构定义变量MAIN函数_menu菜单函数_q函数_b函数_b_askkey函数_b_fill函数_bp函数_set_entry函数_set_no_entry函数1)定义变量定义数据库路径database ds定义全局变量路径globals .定义动态数组变量Define 动态变量名 ARRAY OF RECORD . END RECORD2)MAIN函数OPTIONS #改变系统预设
13、值FORM LINE #窗口开始的位置MESSAGE LINE #讯息显示的位置PROMPT LINE #提示讯息的位置cl_user #检查用户帐号cl_setup #检查程式路径cl_used #记录程式使用时间OPEN WIHDOW #打开窗口cl_ui_init #程式设定初始化CALL _menu #打开菜单CLOSE WINDOW #关闭窗口cl_used #记录程式使用时间3)_menu菜单函数WHILE TRUECASE g_action_choice.END CASEEND WHILE4)_q函数_askkey #调用_askkey函数,不明白为何这样做?5)_b函数cl_o
14、pmsg #定义程式操作类型cl_detail_input_auth(.) #检查单身是否有insert或是delete权限INPUT ARRAY 变量名 WITHOUT DEFAULTS FROM 屏幕变量名.* ATTRIBUTE(COUNT=变量名,MAXCOUNT=变量名,UNBUFFERED, INSERT ROW =单身变量,DELETE ROW =单身变量,APPEND ROW=单身变量)BEFORE INPUT fgl_set_arr_curr() #此函数找不到不知何作用BEFORE ROW BEGIN WORK #工作区定义BEFORE INSERTAFTER INSERT INSER INTO . VALUES . #插入记录 COMMIT WORK #提交数据AFTER FIELD . NEXT FIELD .BEFORE DELETE DELETE FROM . #删除记录 COMMIT WORK #提交数据ON ROW CHANGE UPDATE . #更新数据 COMMIT WORK
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1