Some people have asked me to forward to them an example. I am putting the example here for all to see. I hope it can sassist in overcoming some of the reporting hassles! This is a hand coded multiple detail report, using ABC’s print previewer. Note the Module level include – do not put it at procedural level. This reports first on Customer file, then on OtherCustomer file.
MEMBER('roadshow.clw') ! This is a MEMBER
module
MAP
INCLUDE('ROADS010.INC'),ONCE !Local module prodecure declarations
END
Include('ABREPORT.INC') !********MODULE LEVEL INCLUDE**********************
HandCodedReport PROCEDURE ! Declare Procedure
LocalPreviewQueue PreviewQueue
Previewer PrintPreviewClass
Report
REPORT,AT(1000,1271,6000,7729),PRE(RPT),FONT('Arial',10,,),PREVIEW(LocalPreviewQueue),THOUS
HEADER,AT(1000,1000,6000,281)
STRING('Customer List'),AT(52,52,5906,208),USE(?String1),TRN,CENTER
END
Detail DETAIL,AT(,,,271)
STRING(@s100),AT(31,21),USE(CUS:CustomerName),TRN
END
detail2 DETAIL,AT(,,,333)
STRING(@s40),AT(73,83,2448,208),USE(Cus2:CustomerName),TRN
END
END
CODE
Relate:Customers.Open
Open(Report)
Previewer.Init(LocalPreviewQueue)
Previewer.Maximize = True
Previewer.ZoomIndex = PageWidth
Previewer.AllowUserZoom = True
Previewer.UserPercentile = 120
Previewer.SetZoomPercentile(120)
Report{Prop:Text} = 'Currently Printing Hand Coded Report'
Set(Customers)
Loop
Next(Customers)
If Error() then
Break
End
Print(RPT:Detail) !don't forget the reports' prefix when using the print verb
End
Set(OtherCustomers)
Loop
Next(OtherCustomers)
If Error() then
Break
End
Print(RPT:Detail2)
End
EndPage(Report) !do not forget this
Report{Prop:FlushPreview} = Previewer.Display()
Close(Report)
Relate:Customers.Close