TIPTOP二次开发结构.docx
《TIPTOP二次开发结构.docx》由会员分享,可在线阅读,更多相关《TIPTOP二次开发结构.docx(14页珍藏版)》请在冰豆网上搜索。
TIPTOP二次开发结构
2012-3-1TIPTOP报表程式结构
TIPTOP报表程式结构
(1)变量声明部分
(2)Main
(3)_tm函数
(4)报表输出函数(相当show)
1)变量声明部分
databaseds
globals变量名#全局变量定义
define变量名record
endrecord#记录集变量定义
define变量名recordlike表#记录集变量定义
define变量名like表.字段#局部变量定义
2)Main
赋值初始变量
cl_user#检查用户是否存在
cl_setup#程式预设检查
cl_used#记录程式使用时间
定义g_sql的水晶报表的结构,作用于xml转换
格式如下:
生成temp表
LETl_table=cl_prt_temptable('报表程式名',g_sql)clipped
Call_tm函数#输入打印条件inputprintcondition
Call报表输入函数#调用报表输出函数readdataandcreateout-file
cl_used#记录程式使用时间
3)_tm函数
局变量定义
openwindow路径#打开界面路径
cl_ui_init#初始化变量值
initializetm.*tonull#给所有tm.*的变量赋空值
WHILETRUE#循环执行菜单显示
CONSTRUCTBYNAME变量名ON查询条件字段,...
BEFORECONSTRUCT
cl_qbe_init#QBE查询条件初始化
ONACTION菜单项#具体菜单名
ONIDLE#闲置时间设置
INPUTBYNAME变量名WITHOUTDEFAULTS
BEFOREINPUT
cl_qbe_display_condition()
AFTERFILED
4)报表输出函数
定义屏幕变量sr记录集
格式如下:
definesrrecord
...
endrecord
cl_del_data(l_table)#清空临时表记录集
LETg_sql="insertinto",g_cr_db_str,CLIPPED,l_tableCLIPPED,"VALUES(...)"
PREPAREINSERT_PREPFROMg_sql#插入临时表l_table的记录
LETl_sql="..."#show记录数据的SQLA语句
PREPARE变量名FROMl_sql#预编译SQL语句
DECLARE游标变量名CURSORFOR预编译SQL变量名
FOREACH游标变量名INTOsr.*#循环读取记录到屏幕变量
...
EXECUTEinsert_prepUSINGsr.*
ENDFOREACH
LETg_sql="SELECT*FROM",g_cr_db_strCLIPPED,l_tableCLIPPED#生成水晶报表记录集
LETg_str="..."#给水晶报表中的26个参数传值,切记要对应变量
CALLcl_prt_cs3('报表程式名','报表程式名',g_sql,g_str)
2009-09-11TIPTOP单头单档程式结构
定义变量
Main函数
_cs函数
_menu菜单函数
_a函数
_i函数
_q函数
_fetch函数
_show函数
_u函数
_x函数
_r函数
_copy函数
_out函数
_chkym检查日期函数
1)定义变量
定义数据库路径
databaseds
定义全局变量文件路径
globals"..."
定义记录集变量
Define变量名Recordlike表
2)Main函数
OPTIONS#改变系统预设值
FORMLINE#窗口开始的位置
MESSAGELINE#信息提示的位置
PROMPTLINE#提示信息的位置
cl_user#检查用户帐号
cl_setup#检查程式设置路径
cl_used#记录程式使用时间
定义水晶报表结构
..."
cl_prt_temptable()#创建临时表记录水晶报表记录集
插入记录
LETg_sql="INSERTINTOds_report",l_table,CLIPPED...
OPENWINDOW#打开窗口
cl_ui_init()#设定程式初始化
CALL_menu#打开菜单
CLOSEWINDOW#关闭窗口
cl_used
3)_cs函数
CLEARFORM#清除屏幕
CONSTRUCTBYNAME变量名ON字段变量名,...#取屏幕变量条件
BEFORECONSTRUCT
cl_qbe_init()
ONACTION...
ONIDLE...
cl_on_idle()
CONTINUECONSTRUCT
ENDCONSTRUCT
定义查询SQL语句
定义游标记录集
4)_menu菜单函数
BEFOREMENU
cl_navigator_setting()#上下记录数据移动
ONACTION...
ONIDLE...
cl_on_idle
CONTINUEMENU
ENDMENU
5)_a函数
CLEARFORM#清除屏幕
cl_opmsg#定义程式操作类型
WHILETRUE
CALL_i#调用_i函数插入记录
INSERTINTO表VALUES(屏幕变量名.*)#插入记录数据
EXITWHILE
ENDWHILE
6)_i函数
DISPLAYBYNAME字段变量名,...
INPUTBYNAME字段变量名,...WITHOUTDEFAUTLS
BEFOREINPUT
AFTERFIELD...
ONACTION...
ONIDLE...
cl_on_idle()
CONTINUEINPUT
ENDINPUT
7)_q函数
cl_navigator_setting()#上下记录数据移动
cl_opmsg#定义程式操作类型
CALL_cs#调用查询函数
定义游标记录集
CALL_fetch#
8)_fetch函数
PROMPT...
ONIDLE...
cl_on_idle
ONACTION...
ENDPROMPT
cl_navigator_setting#上下笔记录移动
SELECT*INTO屏幕变量名.*FROM表#读取记录数据给屏幕变量
CALL_show#调用显示函数显示当前记录
9)_show函数
DISPLAYBYNAME字段变量,...
10)_u函数
cl_opmsg#定义程式操作类型
BEGINWORK#打开工作区
CALL_show#显示记录
WHILETRUE
CALL_i("u")#栏位修改
UPDATE表#更新记录数据
EXITWHILE
ENDWHILE
COMMITWORK#提交数据
11)_x函数
BEGINWORK#打开工作区
定义游标记录集
CALL_show#显示记录
cl_exp#询问是否设置无效
UPDATE表#更新记录
COMMITWORK#提交数据
12)_r函数
BEGINWORK#打开工作区
定义游标记录集
CALL_show#显示记录
cl_delete#询问是否要删除记录
DELETEFROM表#删除记录
COMMITWORK#提交数据
13)_copy函数#复制函数
INPUT字段变量名,...FROM字段变量名,...
AFTERFIELD...
ONACTION...
ONIDLE...
cl_on_idle
CONTINUEINPUT
ENDINPUT
DROPTABLE临时表#删除临时表
INTOTEMP临时表#插入临时表
UPDATE表...#更新临时表的关键资料字段
INSERTINTO表SELECT*FROM临时表#将临时表中的记录插入到正式表中...
CALL_show#显示记录
14)_out函数#报表输出函数
cl_del_data#清空临时表中的记录
cl_wait#等待显示
定义游标记录集
FOREACH游标变量名INTO屏幕变量名.*#循环读取记录到屏幕变量...
EXECUTE插入预编译SQL变量USING屏幕变量名.*
ENDFOREACH
CLOSE游标记录集
CALLcl_prt_cs3#
2009-09-09TIPTOP单身单档录入程式结构
定义变量
MAIN函数
_menu菜单函数
_q函数
_b函数
_b_askkey函数
_b_fill函数
_bp函数
_set_entry函数
_set_no_entry函数
1)定义变量
定义数据库路径
databaseds
定义全局变量路径
globals"..."
定义动态数组变量
Define动态变量名ARRAYOFRECORD...
ENDRECORD
2)MAIN函数
OPTIONS#改变系统预设值
FORMLINE#窗口开始的位置
MESSAGELINE#讯息显示的位置
PROMPTLINE#提示讯息的位置
cl_user#检查用户帐号
cl_setup#检查程式路径
cl_used#记录程式使用时间
OPENWIHDOW#打开窗口
cl_ui_init#程式设定初始化
CALL_menu#打开菜单
CLOSEWINDOW#关闭窗口
cl_used#记录程式使用时间
3)_menu菜单函数
WHILETRUE
CASEg_action_choice
..
ENDCASE
ENDWHILE
4)_q函数
_askkey#调用_askkey函数,不明白为何这样做?
?
?
5)_b函数
cl_opmsg#定义程式操作类型
cl_detail_input_auth("...")#检查单身是否有insert或是delete权限
INPUTARRAY变量名WITHOUTDEFAULTSFROM屏幕变量名.*
ATTRIBUTE(COUNT=变量名,MAXCOUNT=变量名,UNBUFFERED,
INSERTROW=单身变量,DELETEROW=单身变量,APPENDROW=单身变量)
BEFOREINPUT
fgl_set_arr_curr()#此函数找不到不知何作用
BEFOREROW
BEGINWORK#工作区定义
BEFOREINSERT
AFTERINSERT
INSERINTO...VALUES...#插入记录
COMMITWORK#提交数据
AFTERFIELD...
NEXTFIELD...
BEFOREDELETE
DELETEFROM...#删除记录
COMMITWORK#提交数据
ONROWCHANGE
UPDATE...#更新数据
COMMITWORK