Dear Shridhar,
thank you for your screenshot. This is really a complex invoice.
I work with define to get user friendly names to pass data to EASYREPORT.
See also:
viewtopic.php?f=3&t=34911&p=207588&hilit=easyreport+define#p207588
For printareas
#define ER_AR_Rechnungskopf_v01 1
#define ER_AR_Invoice_v03 3
#define ER_AR_Schatten_v05 5
#define ER_AR_Linie_v04 4
#define ER_AR_Linievertikal_v06 6
#define ER_AR_Rahmen_v07 7
TPreview():lListViewHide := .T.
EASYREPORT oVRD NAME ".\xVrd2\invoice.vrd" PREVIEW lPreview TO cDruckerName;
PRINTDIALOG IIF( lPreview, .F., .F. ) MODAL
PRINTAREA ER_AR_Rechnungskopf_v01 OF oVrd
PRINTAREA ER_AR_Schatten_v05 OF oVRD
For items I use an array. This is easier to maintain.
local aID_Strings := {}
local aID := {}
local aStrings := {}
aID_Strings := {;
{ "RGBetrag", 101, ALLTRIM(transform( nRechnungsBetrag , "999,999.99")) }, ;
{ "Teilzahlung", 102, cTeilzhg }, ;
{ "Anzahlung", 103, cAnZHG }, ;
{ "Total", 104, ALLTRIM(transform( nRechnungsBetrag-nTeilZhgSumme-(nAnZhgSumme) ,"999,999.99")) }, ;
{ "Kurtaxe", 601, cKurtaxe} }
AEval( aID_Strings, { |a| AADD( aID, a[2] ), AADD( aStrings, a[3] ) } )
PRINTAREA 19 OF oVrd ;
ITEMIDS aID;
ITEMVALUES aStrings