This is a quick and dirty solution: Informix 4GL supports printing global arrays within a report. This example also has no error checking whatsoever, i.e. non-numeric checks, overrunning array boundaries, etc.
Let me know if you have any questions or comments.
Regards,
Ed
globals
define
tot_arr array[3,5] of record
value char(3)
end record
end globals
main
define xtot smallint,
ytot smallint,
avalue, y, x smallint
# build an array, notice the char-to-numeric conversion
let tot_arr[1,1].value ="A"
let tot_arr[1,2].value ="7"
let tot_arr[1,3].value = 8
let tot_arr[1,4].value = 9
let tot_arr[2,1].value ="B"
let tot_arr[2,2].value ="10"
let tot_arr[2,3].value = 11
let tot_arr[2,4].value = 12
let tot_arr[3,1].value ="C"
let tot_arr[3,2].value ="13"
let tot_arr[3,3].value = 14
let tot_arr[3,4].value = 15
# how many elements
let xtot = 3
let ytot = 5
# total the last column
for x = 1 to xtot
let avalue=0
for y = 2 to (ytot-1)
let avalue = avalue + tot_arr[x,y].value
if y = (ytot-1)
then
let tot_arr[x,ytot].value = avalue
end if
end for
end for
start report report1 to "./tmp.rep"
output to report report1(xtot, ytot)
finish report report1
end main
report report1(xtot, ytot)
define xtot, ytot, x, y smallint
on every row
for x = 1 to xtot
for y = 1 to ytot
if(y mod 5) = 0
then
print tot_arr[x,y].value # need a CR
else
print tot_arr[x,y].value; # no CR
end if
end for
end for
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.