Report Page 1 of X
Posted in 1996
After I responded to the post regarding Page 1 of X, I had
deja vu and found this demo that I think I posted in 1994.
Here it is again.
This is a technique for controlling 4gl reports. In order to
get Page 1 of X, you would need to generate approriate control
values that are sent to the report and fix the "order by" such
that the report records that are sent "LAST" are processed "FIRST"
by the report.
Hope this is useful.
database patern
main
define
masterid integer,
groupid integer,
lineid integer,
colid integer,
str char(5),
wstr char(50)
create temp table rpttest (masterid integer,
groupid integer,
lineid integer,
colid integer,
str char(5))
insert into rpttest values (100,1,1,1 ,"A")
insert into rpttest values (100,1,1,20,"B")
insert into rpttest values (100,1,1,40,"C")
insert into rpttest values (100,1,1,60,"D")
insert into rpttest values (100,2,1,1 ,"E")
insert into rpttest values (100,2,1,20,"F")
insert into rpttest values (100,2,1,40,"G")
insert into rpttest values (100,2,1,60,"H")
insert into rpttest values (100,3,1,1 ,"I")
insert into rpttest values (100,3,1,20,"J")
insert into rpttest values (100,3,1,40,"K")
insert into rpttest values (100,3,1,60,"L")
insert into rpttest values (101,1,1,1 ,"a")
insert into rpttest values (101,1,1,20,"b")
insert into rpttest values (101,1,1,40,"c")
insert into rpttest values (101,1,1,60,"d")
insert into rpttest values (101,2,1,1 ,"e")
insert into rpttest values (101,2,1,20,"f")
insert into rpttest values (101,2,1,40,"g")
insert into rpttest values (101,2,1,60,"h")
start report rpt to pipe "lp -onff -dlaser4"
declare rptcur cursor for
select * from rpttest
foreach rptcur into masterid, groupid, lineid, colid, str
let wstr = str clipped, "-",
masterid using "<<&", "-",
groupid using "<<&", "-",
lineid using "<<&", "-",
colid using "<<&"
output to report rpt (masterid, groupid, lineid, colid, wstr)
end foreach
finish report rpt
end main
report rpt (masterid, groupid, lineid, colid, str)
define
masterid, groupid, lineid, colid int,
str char(50)
output
top margin 0
bottom margin 0
left margin 0
right margin 100
order by masterid, groupid, lineid, colid
format
page header
print column 25, "Test Report"
after group of masterid
print "---master---"
skip 1 line
after group of groupid
skip 1 line
# print "---group---"
after group of lineid
print ":"
on every row
print column colid, str clipped;
end report
--
Michael J. Kuhn Computer Systems Consultant phone:410-254-7060
Email: mkuhn@csd.clark.net, csd@clark.net
mkuhn@rhlab.com
c/o Baltimore Rh Typing Laboratory, Inc. phone:410-225-9595