现在的位置: 首页 > 综合 > 正文

2009-09-10 TIPTOP报表程式结构

2014年01月28日 ⁄ 综合 ⁄ 共 2018字 ⁄ 字号 评论关闭

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)                                    #生成水晶报表显示

 

 

 

 

 

 

抱歉!评论已关闭.