>Thanks Hilmar
>
>I see your class , and i like .
... and for the variable details you mentioned, you could place conditional statements in methods .Detail() (which is executed once for each record), and in methods .PageHeader() (printed at the top of each page) or .GroupHeader() (printed every time a group expression changes, and also at the top of each page).
For instance:
if This.nReportType = 1
This.PrintLine(expr1, expr2, str(expr3, 6, 2))
else
This.PrintLine(expr4, dtoc(expr5), iif(expr6, "Sim", "Nao"))
endif
or, if it is completely "chaotic" (user-defined), loop through the available fields and adjust the data type programmatically. The class will automatically convert different data types to character, but I strongly recommend doing the conversion yourself, to avoid surprises (for instance, the automatic conversion uses str(Value, 10, 0)).
Difference in opinions hath cost many millions of lives: for instance, whether flesh be bread, or bread be flesh; whether whistling be a vice or a virtue; whether it be better to kiss a post, or throw it into the fire... (from Gulliver's Travels)