Ciao a tutti,
Ho un problema con PdfWriter.
Allora, all'inizio mi ero costruito il report usando il comando "ME.Cell" per inserire i campi in ogni riga, ecco una parte di codice:
IF MyRS.Available = TRUE THEN
FOR EACH MyRS
ME.Cell(10, 5, MyRS!quantita, TRUE, 0, "L", FALSE)
ME.Cell(32, 5, MyRS!codice, TRUE, "L", FALSE)
ME.Cell(108, 5, MyRS!descrizione, TRUE, "L", FALSE)
ME.Cell(20, 5, MyRS!prezzo, TRUE, 0, "R", FALSE)
ME.Ln()
NEXT
ENDIF
Praticamente con queste 4 Cell crea una riga con i 4 campi interessati. Tutto ok, solo che la lunghezza del campo descrizione può essere più lungo dello spazio destinato. Allora per il campo descrizione ho provato a usare multicell.
Il campo con multicell si ingrandisce in altezza e quindi il testo va a capo. Succede però questo: se prima con Cell ogni campo si "appoggiava" a dx del campo precedente fino al comando ME.Ln() (creando la riga ordinata) con multicell il campo successivo va a caporiga. Quindi avevo risolto così: ad ogni cella e multicella davo le coordinate con SetXY, ecco una parte di codice:
IF MyRS.Available = TRUE THEN
FOR EACH MyRS
mag_y = 0 ' rimetto sempre la maggiorazione y a 0
IF ME.GetStringWidth(MyRS!descrizione) > 100 THEN
mag_y = 5 ' maggioro la maggiorazione y di 1 riga (5 è la mia altezza riga)
ENDIF
IF ME.GetStringWidth(MyRS!descrizione) > 200 THEN
mag_y = 10 ' maggioro la maggiorazione y di 2 righe (5 è la mia altezza riga)
ENDIF
ME.SetXY(10, pos_y)
ME.Cell(10, 5, MyRS!quantita, TRUE, 0, "L", FALSE)
ME.SetXY(20, pos_y)
ME.Cell(32, 5, MyRS!codice, TRUE, "L", FALSE)
ME.SetXY(52, pos_y)
ME.MultiCell(108, 5, MyRS!descrizione, TRUE, "L", FALSE)
ME.SetXY(160, pos_y)
ME.Cell(20, 5, MyRS!prezzo, TRUE, 0, "R", FALSE)
ME.Ln()
pos_y = (ME.GetY() + mag_y)
NEXT
ENDIF
..spostando le coordinate anche di una riga o 2 a seconda della lunghezza del testo descrizione, ricavato con il comando GetStringWidth.
E funzionava all meraviglia...finchè non ho fatto un report con più di una pagina.
Praticamente la prima pagina la fà correttamente, poi incasina tutto.
Fà questo, ad esempio ho un report di un'intera pagina più una riga. Non crea 2 pagine ma 5. La prima è corretta, la seconda (che dovrebbe esserci solo 1 riga) ho solo il campo quantità, la terza il campo codice, la quarta il campo descizione, la quinta il campo prezzo.
Spero di essere riuscito a spiegarmi bene..
Come potrei risolvere questo problema?
Ciao grazie