cara lain jika jumlah kolomnya tidak pasti yg saya pernah buat seperti ini ( kalo nggak salah, soalnya source-nya dah ndak ada )
tabel gaji
nama c(30), gaji n(9,2), pot1 n(9,2), pot2, ..... pot 20 ( pot1 misal bri, pot2 misal bni dst)
nah setiap orang punya jenis potongan berbeda
misal :
a punya potongan pot1,pot5,pot11 dst
b punya potongan pot1 sd pot10
c punya potongan pot11 sd pot20
d punya potongan pot1 sd pot 20 dst ...
pada waktu cetak struk gaji struknya beda2:
nama a
gaji 25.000.000
pot1 1.000.000
pot5 500.000
pot11 3.000.000
nama b
gaji 20.000.000
pot1 100.000
pot2 150.000
pot3 200.000
pot4 250.000
pot5 300.000
pot6 350.000
pot7 400.000
pot8 450.000
pot9 500.000
pot10 550.000
dst
saya trik begini
************************************************ biar rapi hasilnya ****************
CREATE CURSOR cheader(fieldname c(5))
sele gaji
go top
dimension ctitle(fcount())
for i = 1 to fcount()
insert into cheader values(field(i))
endfor
sele cheader
go top
n=1
scan
ctitle(n)=cheader.fieldname+" : "
n=n+1
endscan
****************************************************
create cursor curstruk ( detail m(4))
sele gaji
go top
scan
ctek=''
for i = 1 to fcount()
if i=1 && gaji.field(1) charakter
ctek=ctek+ctitle(i)+evaluate(field(i))
else
if eval(field(i))<>0
ctek=ctek+chr(13)+ctitle(i)+transform(eval(field(i)),'@l 999.999.999,99')
endif
endif
endfor
insert into curstruk values(ctek)
endscan
tinggal buat report dengan dengan detail band field curstruk.detail, property fieldnya Strecth with overflow
logika saya dulu spt ini maaf kalo ada salah, yang ini belum diuji.
kalo mau maksa reportnya tetap spt ;
gaji pot1 pot5 pot11
25.000.000 1.000.000 500.000 3.000.000
kalo jumlah kolomnya tidak pasti banyaknya, sy belum tahu karena bukankah juga harus dipertimbangkan ukuran kertasnya juga.
tapi kalo pasti cuma 7 kolom sperti contoh anda bisa pakai print when