ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / WLanguage functions / Standard functions / Print functions
  • Principle for printing a report
  • Report with lower and upper bounds
  • Executing a query and a report based on this query
  • Print destination
  • Passing parameters
  • Printing a component report
  • Nested reports
WINDEV
WindowsLinuxJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac Catalyst
Others
Stored procedures
Prints a report created with the report editor.
Warning: Depending on the report data source, the WLanguage code required to print report is different. For more details and examples, see:
Linux The reports are available in PDF format in Linux. For more details, see Printing in Linux.
With Reports & Queries, you can print a report via one of the following options:
  • by printing directly ().
  • by opening the report test window ().
Therefore, no programming is required to print the report.
In order for the reports created in Reports & Queries to be directly printed from a WINDEV application, this feature must be implemented by the provider of WINDEV application.
The provider can for example include a window allowing the end user to:
  • select a report created in Reports & Queries.
  • run this report.
// Impression simple sur imprimante
iPrintReport(ETAT_Facture)
WINDEVReports and QueriesUser code (UMC)
// Impression dans le visualisateur de rapports (aperçu)
iDestination(iViewer)
iPrintReport(ETAT_Facture)
WEBDEV - Server code
// Pas de possibilité d'aperçu en WEB
// Création puis affichage d'un fichier
// =====================================
// Création d'un nom de fichier unique
MonFichierUnique is string = fRepDonnées() + "\" + DateSys() + HeureSys() + ".pdf"
// Destination de l'état: Impression de l'état dans un fichier PDF
iDestination(iGenericPDF, MonFichierUnique)
// Impression de l'état basé sur le champ Table "TABLE_TableClient"
iPrintReport(ETAT_TableClient)
// Affichage de l'état au format PDF
FileDisplay(MonFichierUnique, "application/pdf")
// Suppression du fichier
fDelete(MonFichierUnique)
Syntax
<Result> = iPrintReport(<Report> [, <Parameter 1> [... [, <Parameter N>]]])
<Result>: Type of result returned by the report (optional)
Value returned by printing the report. This value is returned:
  • by the RETURN keyword used in the report closing code.
  • by ReturnedValue used before closing the report.
<Report>: Name of the report or string
Report to be printed:
  • Name of the report, defined in the report editor.
  • Physical name of the report (including its path) if the compiled code is included in the report.
WEBDEV - Server code This parameter can only correspond to the report name defined in the report editor. You cannot use the physical name of the report.
<Parameter 1>: Optional parameters (the type corresponds to the parameter type)
Optional parameter expected by the report. This parameter is defined in the opening code of the report. This parameter can be the name of a view, the name of a memory area, etc.
Caution: If the report includes values with bounds, the first two parameters must correspond to the lower and upper bounds.
<Parameter N>: Optional parameters (the type corresponds to the parameter type)
Optional parameter expected by the report. This parameter is defined in the opening code of the report. This parameter can be the name of a view, the name of a memory area, etc.
Caution: If the report includes values with bounds, the first two parameters must correspond to the lower and upper bounds.
Remarks

Principle for printing a report

The iPrintReport function reads the report data source (data files, query, Table control, etc.).. iPrintReport prints the Body block for each record. The other blocks are printed when necessary:
  • The Start of document block will be printed at the beginning of the document.
  • The End of document block will be printed at the end of the document.
  • The Page header block will be printed at the top of each page.
  • The Page footer block will be printed at the bottom of each page.
  • In the event of a break, the break body block will be outlined by the break top and break bottomblocks.

Report with lower and upper bounds

If the lower and upper bounds were specified when the report was created in the report editor, the first two parameters passed to the report via iPrintReport must correspond to the lower bound and to the upper bound, respectively.
Example: a report was created on Customer file. This report browses the file on the "CustomerNum" key item. This report was defined as being bounded, with specified minimum and maximum bounds ("Data" tab in the report description window.
The following code is used to print the report for customers 2 to 5:
iDestination(iViewer)
iPrintReport(ETAT_Clients_Prospects, "2", "5")

Executing a query and a report based on this query

When printing a report based on a query, if the query has already been executed, it is not executed again. To re-execute the query (to add records, for example), simply use HExecuteQuery or iInitReportQuery.

Print destination

You can set the print destination of the report using iDestination.
WINDEV iDestination with the iViewer constant is used to display the printout in a report viewer. The user can then choose the print mode (PDF, printer, etc.).. To find out whether the print job was started from the report viewer, use iDocumentPrinted.
WINDEVWEBDEV - Server codeAndroidiPhone/iPadUser code (UMC)Ajax

Passing parameters

The parameters specified by iPrintReport correspond to the parameters defined in the report opening code via the following syntax:
PROCEDURE <NomEtat> (<NomParam1>, <NomParam2> = "<ValeurParDéfaut>", ...
<NomParamN> = "<ValeurParDéfaut>")
Reminder: Some parameters passed to an Procedure may be optional. When declaring the procedure, the optional parameters must be described in last position (on the right), with a default value preceded by the "=" sign. For more details, see Procedure parameters.
If the report is based on a query, iInitReportQuery must be used to pass the query parameters before printing the report.

Printing a component report

To print a component report, use the name of component report (the component being included in the project). For example:
iPrintReport(EtatDuComposant)
If a conflict occurs with a project element, the element name must be prefixed by the component name. For example:
iPrintReport(MonComposant.Etat)
To use the report name in a variable, specify the component name. For example:
sEtat is string = "MonComposant.MonEtat"
iPrintReport(sEtat)

Nested reports

You can call iPrintReport within the same report. For more details, see the help about the Nested reports.
Business / UI classification: Neutral code
Component: wd300etat.dll
Minimum version required
  • Version 9
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 09/19/2024

Send a report | Local help