Per fare 3 tipi di report, io farei 3 classi, le puoi clonare e cambiare solo la griglia.
Se nella griglia avrai dati che ci stanno nello spazio che imposti (cioè senza andare a capo) puoi usare semplicemente Me.Cell
Ecco l'esempio per 8 colonne:
FOR EACH MyRS ' MyRS = recordeset
ME.Cell(10, 5, MyRS!val1, TRUE, 0, "C", FALSE)
ME.Cell(21, 5, MyRS!val2, TRUE, 0, "C", FALSE)
ME.Cell(22, 5, MyRS!val3, TRUE, 0, "C", FALSE)
ME.Cell(23, 5, MyRS!val4, TRUE, 0, "C", FALSE)
ME.Cell(24, 5, MyRS!val5, TRUE, 0, "C", FALSE)
ME.Cell(25, 5, MyRS!val6, TRUE, 0, "C", FALSE)
ME.Cell(26, 5, MyRS!val7, TRUE, 0, "C", FALSE)
ME.Cell(27, 5, MyRS!val8, TRUE, 0, "C", FALSE)
ME.Ln()
NEXT
Se hai dati che non ci stanno nella cella, quindi devi andare a capo, devi usare Multiriga
(Attenzione questa funzione non è presente nel PdfWriter che trovi nella sezione download, ma dagli esempi che erano stati fatti quì http://www.gambas-it.org/smf/index.php?action=dlattach;topic=1056.0;attach=630. Inoltre nella prossima versione che MD9327 metterà a disposizione cambierà nome)Ecco come fare con Multiriga:
FOR EACH MyRS ' MyRS = recordeset
ME.MultiRiga(10, 5, MyRS!val1, FALSE, "L", FALSE)
ME.MultiRiga(21, 5, MyRS!val2, FALSE, "L", FALSE)
ME.MultiRiga(22, 5, MyRS!val3, FALSE, "L", FALSE)
ME.MultiRiga(23, 5, MyRS!val4, FALSE, "L", FALSE)
ME.MultiRiga(24, 5, MyRS!val5, FALSE, "L", FALSE)
ME.MultiRiga(25, 5, MyRS!val6, FALSE, "L", FALSE)
ME.MultiRiga(26, 5, MyRS!val7, FALSE, "L", FALSE)
ME.MultiRiga(27, 5, MyRS!val8, FALSE, "L", FALSE)
ME.MultiRect(10, 21, 21, 23, 24, 25, 26, 27, 0, 0 ,0) ' questo serve per disegnare la griglia, i valori sono gli stessi che hai utilizzato per il valore x di multiriga
ME.Lnm() ' attenzione usare questo solo per multiriga
NEXT
Per una colonna soltanto puoi usare "multicell" (và anche a capo)
FOR EACH MyRS ' MyRS = recordeset
ME.multicell(120, 6, MyRS!val1, TRUE, "L", FALSE)
ME.Ln()
NEXT