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转换格式如下:g_sql=字段.表.字段,.生成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 #循环执
3、行菜单显示CONSTRUCT 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 i
4、nto ,g_cr_db_str,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_
5、cr_db_str CLIPPED,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 变量名 Reco
6、rd like 表2)Main函数OPTIONS #改变系统预设值FORM LINE #窗口开始的位置MESSAGE LINE #信息提示的位置PROMPT LINE #提示信息的位置cl_user #检查用户帐号cl_setup #检查程式设置路径cl_used #记录程式使用时间定义水晶报表结构LET g_sql=字段.表.字段,.cl_prt_temptable() #创建临时表记录水晶报表记录集插入记录LET g_sql=INSERT INTO ds_report ,l_table,CLIPPED .OPEN WINDOW #打开窗口cl_ui_init() #设定程式初始化CALL
7、_menu #打开菜单CLOSE WINDOW #关闭窗口cl_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 CO
8、NTINUE MENUEND MENU5)_a函数CLEAR FORM #清除屏幕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函数c
9、l_navigator_setting() #上下记录数据移动cl_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
10、WORK #打开工作区CALL _show #显示记录WHILE 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 #提交
11、数据13)_copy函数 #复制函数INPUT 字段变量名,. 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 #等待显示定义游标记录
12、集FOREACH 游标变量名 INTO 屏幕变量名.* # 循环读取记录到屏幕变量.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 . E
13、ND RECORD2)MAIN函数OPTIONS #改变系统预设值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
14、#调用_askkey函数,不明白为何这样做?5)_b函数cl_opmsg #定义程式操作类型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
15、 #工作区定义BEFORE INSERTAFTER INSERT INSER INTO . VALUES . #插入记录 COMMIT WORK #提交数据AFTER FIELD . NEXT FIELD .BEFORE DELETE DELETE FROM . #删除记录 COMMIT WORK #提交数据ON ROW CHANGE UPDATE . #更新数据 COMMIT WORK #提交数据AFTER ROW COMMIT WORK #提交数据ON ACTION .ON IDLE . cl_on_idle CONTINUE INPUTEND INPUTCOMMIT WORK6)_ask
16、key函数CLEAR FORM #清除窗口 .CONSTRUCT 变量名 ON 字段变量,. FROM 字段变量,.ON ACTION .ON IDLE . cl_on_idle CONTINUE CONSTRUCTEND CONSTRUCTCALL _b_fill填充函数7)_b_fill 填充函数LET g_sql=. #定义SQL语句PREPARE 变量名 FROM g_sql #预编译SQL语句DECLEAR 游标变量名 CURSOR FOR 预编译变量名FOREACH 游标变量名 INTO 动态数组变量名.* .END FOREACH8)_bp函数cl_set_act_setting
17、 #显示确定与退出按钮提示DISPLAY ARRAY 动态数组变量名 TO 屏幕变量名.* ATTRIBUTE(COUNT=记录数变量名)BEFORE ROW cl_show_fld_cont #定义p_per档特殊格式栏位ON ACTION .EXIT DISPLAYAFTER DISPLAY CONTINUE DISPLAYEND DISPLAY9)_set_entry与_set_no_entry函数cl_set_comp_entry() #设置栏位是否可以输入2009-09-09 TIPTOP查询式报表程式结构定义变量Main函数_cs函数_menu函数_q函数_b_fill函数_bp函
18、数1)定义变量定义数据库路径database ds定义全局变量文件路径globals .定义动态数组Define 数组变量名 DYNAMIC ARRAY OF RECORD . END RECORD2)MAIN函数OPTIONS #改变系统预设置值FORM LINE #窗口开始位置MESSAGE LINE #讯息显示的位置PROMPT LINE #提示讯息的位置cl_suer #用户帐号的检查cl_setup #程式路径检查cl_used #程式使用时间记录OPEN WINDOW #窗口打开cl_ui_init #程式设定初始化CALL _menu #菜单显示CLOSE WINDOW #关闭窗
19、口cl_used #记录程式使用时间3)_cs QBE查询函数CLEAR FORM #清空窗口.INITIALIZE tm.* TO NULL #清空条件变量值INPUT BY NAME 变量名 WITHOUT DEFAULTSON ACTION .ON IDLE . cl_on_idle() CONTINUE INPUT.END INPUTCONSTRUCT 变量名 ON 字段变量名,. FROM 字段变量名,. BEFORE CONSTRUCT cl_qbe_init()ON ACTION .ON IDLE . cl_on_idle() CONTINUE CONSTRUCTEND CONS
20、TRUCTLET g_tw=. #查询条件变量值组合4)_menu菜单函数WHILE TRUE_bp(G) #调用_bp函数CASE g_action_choice.END CASEEND WHILE5)_q函数cl_navigator_setting() #上下笔记录移动数据cl_opmsg #定义操作程式类型CALL _cs #调用查询函数CALL _b_fill #调用填充记录函数6)_b_fill填充函数LET g_sql=. #查询SQL语句PREPARE 变量名 FROM g_sql #预编译SQL语句DECLEAR 游标变量名 CURSOR FOR 预编译变量名FOREACH 游
21、标变量名 INTO 动态数组变量名.*.END FOREACH7)_bp函数cl_set_act_setting(accept,cancle,FALSE) #显示确定与退出按钮DISPLAY ARRAY 动态数组变量名 TO 动态数组变量名.* ATTRIBUTE(COUNT=记录变量名,UNBEFFERED) BEFORE DISPLAY cl_navigator_setting() #上下笔记录数据移动cl_show_fld_cont() #設定p_per內有特殊格式設定的欄位ON ACTION .EXIT DISPLAYON IDLE . cl_on_idle() CONTINUE DISPLAYAFTER FILED CONTINUE DISPLAYcl_set_head_visible(,AUTO) #显示/隐藏单头元件END DISPLAY
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2