昨日测试了根据不同判断条件写入多个lis文件的sqr代码
http://space.itpub.net/9240380/viewspace-713575
今天在此基础上,测试了如下几个功能点:
1,过程之间(指:begin-procedure)传递参数及变量;
2,多个过程变量是否可以命名相同的变量
3,begin-procedure节alter-report指定特有的begin-heading
上述代码如下:
#define addtlsetup
#include 'Rptstub.lib'
#include '{libpath}tkit_batchstartup.inc'
#include '{libpath}tkit_rptheader.inc'
#include '{libpath}tkit_queappl.inc'
#include '{libpath}tkit_vars_opts.inc'
#include '{libpath}tkit_Sqrfunc.inc'
begin-setup
Declare-layout batch-land
rientation=landscape
left-margin=0
top-margin=0
max-lines=60
max-columns=180
end-declare
end-setup
!20111220 newly added 无数据使用报表头
begin-heading 5 name=nodataheading
print 'a列' (1,11)
print 'b列' (1,20)
print '─' (+1,2,84) fill
end-heading
!主过程调用其它子过程
begin-procedure osi-main
begin-select
count(*) &a_1_rowcount
from osibank.zxytestsqr z where z.a=1
end-select
begin-select
count(*) &a_2_rowcount
from osibank.zxytestsqr z where z.a=2
end-select
if &a_1_rowcount>0
do query_a_1
else
!20111220 newly added 无数据启用指定报表头,且使用另外的lis文件
alter-report heading=nodataheading
let $out='无数据表头'||'.LIS'
new-report $out
print '查询不到数据' (+1,0) center
!print #b2 (+1,0) center !在主过程调用子过程产生的变量,用于测试,如写为#b2,结果为0.0,试下#_b2如何
end-if
if &a_2_rowcount>0
do query_a_2(#b2)
print #b2 (+1,20) center
else
!20111220 newly added
end-if
end-procedure
!查询a=1
begin-procedure query_a_1
let $count='变量1' ! 此过程的变量$count
let $out1='查询1'||$count||'.LIS'
new-report $out1
begin-select
position (+1)
a &a1
move &a1 to #a1
print #a1 (,20,10) edit 9
b &b1
move &am