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

本文详细介绍了TIPTOP报表程序的结构,包括变量声明、Main函数、_tm函数和报表输出函数。在Main中,初始化变量并生成temp表,通过_call TM函数接收输入条件,再调用报表输出函数生成输出文件。_tm函数负责打开界面和处理用户输入。报表输出函数则用于清空临时表,插入数据,并生成水晶报表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值