TIPTOP 报表程式结构
(1)变量声明部分
(2)Main
(3)_tm函数
(4)报表输出函数(相当show)
1)变量声明部分
database ds
globals 变量名 #全局变量定义
define 变量名 record
...
end record #记录集变量定义
define 变量名 record like 表 #记录集变量定义
define 变量名 like 表.字段 #局部变量定义
2)Main
赋值初始变量
cl_user #检查用户是否存在
cl_setup #程式预设检查
cl_used #记录程式使用时间
定义g_sql的水晶报表的结构,作用于xml转换
格式如下:
g_sql="字段.表.字段,..."
生成temp表
LET l_table =cl_prt_temptable('报表程式名',g_sql) clipped
Call _tm函数 #输入打印条件 input print condition
Call 报表输入函数 #调用报表输出函数 read data and create out-file
cl_used #记录程式使用时间
3)_tm函数
局变量定义
open window 路径 #打开界面路径
cl_ui_init #初始化变量值
initialize tm.* to null #给所有tm.*的变量赋空值
WHILE TRUE #循环执行菜单显示
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 FILED
4)报表输出函数
定义屏幕变量sr记录集
格式如下:
define sr record
...
end record
cl_del_data(l_table) #清空临时表记录集
LET g_sql="insert into ",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 FOREACH
LET g_sql=" SELECT * FROM ",g_cr_db_str CLIPPED,l_table CLIPPED #生成水晶报表记录集
LET g_str="..." #给水晶报表中的26个参数传值,切记要对应变量
CALL cl_prt_cs3('报表程式名','报表程式名',g_sql,g_str) #生成水晶报表显示