One of the nice features of the VPE classes offered by StarZen Technologies is the ability to use the same report object for both desktop as well as WebAPP reporting
For a desktop application the report is contained in an report view based on the cszVpeReportView class whereas in WebAPP you simply use the cszVpeReportWebView class
Then in both places you can run the report. In a desktop application the report can be either shown as a preview in a popup window or in an embedded preview window inside your view or it can save to a number of different file formats including a VPE format, PDF, HTML and even DOCX.
In the WebAPP the document is created and then sent to the client as a PDF document that can then be shown either in a popup, another tab or embedded in the same tab.
Her is an example showing the result of the customer sample report
and here is what the code for the report looks like
Object oColumnReport is a cszVpeColumnReport_V2
Set Main_File to CUST.file_number
Set ordering to 1
Procedure OnConstrain
String sCustFrom sCustTo
WebGet psValue of oFromCustomerCustomerNumber to sCustFrom
WebGet psValue of oToCustomerCustomerNumber to sCustTo
Constrain CUST.NUM ge sCustFrom
If (trim(sCustTo)<>"") Constrain CUST.nUm ge sCustTo
End_Procedure
// Column Definitions
Object oIDColumn is a cszVpeReportColumn
Set psCaption to "ID"
Set piWidth to 8
Function ColumnValue Returns String
Function_Return (trim(CUST.NUM))
End_Function
End_Object
Object oNameColumn is a cszVpeReportColumn
Set psCaption to "Name"
Set piWidth to 20
Function ColumnValue Returns String
Function_Return (trim(CUST.NAME))
End_Function
End_Object
Object oAddressColumn is a cszVpeReportColumn
Set psCaption to "Address"
Set piWidth to 20
Function ColumnValue Returns String
Function_Return (trim(CUST.ADDRESS1))
End_Function
End_Object
Object oCityColumn is a cszVpeReportColumn
Set psCaption to "City"
Set piWidth to 12
Function ColumnValue Returns String
Function_Return (trim(CUST.CITY))
End_Function
End_Object
Object oBalanceColumn is a cszVpeReportColumn
Set psCaption to "Balance"
Set piWidth to 18
Set piTextAlignment to VPE_ALIGN_RIGHT
Set pbTotal to True
Set pnTotalFormat to 8.2
Set pbTotalThousandsFormatting to True
Function ColumnValue Returns String
Function_Return (szFormatToDecimalsEx(cust.balance,10.2,True))
End_Function
End_Object
Object oPageHeader is a cszVpePageHeaderSection
Set psPageTitle to "StarZen Technologies, Inc"
Set psPageSubtitle to "Column Report Sample V2"
Set piSectionHeight to 150
End_Object
Object oPageTitle is a cszVpePageTitleSection
Set piSectionHeight to 50
End_Object
Object oBody is a cszVpeBodySection
Set piSectionHeight to 50
Set pbOverrideFormatting to True
End_Object
Object oTotal is a cszVpeTotalSection
Set piSectionHeight to 100
End_Object
Object oPageFooter is a cszVpePageFooterSection
Set piSectionHeight to 200
End_Object
End_Object // oColumnReport
