ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / Editors / Report editor / Data sources
  • Overview
  • Characteristics of a report based on a Looper control
  • Creating a report based on a Looper control from the window editor
  • Creating a report automatically and a button used to print the report
  • Characteristics of the report based on a Looper control
  • Creating a report based on a Looper control from the report editor
  • Creating a report based on a Looper control from the report editor
  • Printing a report based on a Looper control
  • Printing a report based on a Looper control
  • WINDEV example
  • WEBDEV example
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Report based on a Looper control
Overview
A report based on a Looper control is used to directly print the information displayed in the control (based on a data file or populated programmatically):
  • in a window or page of the application. This window or page must be displayed when printing the report.
  • in an internal window or an internal page. The window (or the page) that displays the internal window (or the internal page) must be displayed.
Reports & Queries cannot be used to create reports based on a Looper control. However, you can customize the reports based on a Looper control created in the standard report editor (color, fonts, size, etc.).
A report based on a Looper control can contain:
  • all the rows displayed in the Looper control.
  • the rows selected by the user (for multi-selection Looper controls where the rows are selected with the Ctrl key). This option is not available in WEBDEV.
Characteristics of a report based on a Looper control
If the report is based on a Looper control:
  • Each row found in the Looper control corresponds to a record.
  • Each attribute of the Looper control corresponds to a Static control (even the attributes that do not correspond to a value).
For a table report, the order in which the columns are displayed in the report corresponds by default to the order of attributes in the window being edited.
A report based on a Looper control can be created:
  • from the window editor. The created report corresponds to a table report.
  • from the report editor. The report creation wizards starts, allowing you to choose the type of report to create (table, form, etc.).
Once the report based on the Looper control has been created, you can:
  • change the data source of the report ("Data" tab in the report description).
  • add or delete Static controls linked to the Looper control associated with the report.
Caution: A report based on a Looper control cannot be tested from the report editor because the window or the page containing the Looper control must be open. To test a report based on a Looper control, you must:
  • create (if necessary) a button in the window or in the page of Looper control. This button can be used to print the report with the data from the Looper control (iPrintReport).
    Case of internal windows: If the Looper control is found in an internal window, the button should be created in the internal window (and not in the host window).
  • run the test of the window containing the Looper control then run the report test (via the button).
    Case of internal windows: the test must be run from the window that is hosting the internal window.
Creating a report based on a Looper control from the window editor
WINDEV The window editor allows you to automatically create a report based on the data from a Looper control and a button to print the report. No programming is required.
Remark : The window editor can only be used to create a table report. To create another type of report, use the report editor.
WINDEV

Creating a report automatically and a button used to print the report

To automatically create a report and a button used to print the report:
  1. Open the window containing the Looper control on which the report will be based.
  2. Select the Looper control.
  3. On the "Creation" tab, in the "Data" group, click "Looper" and select "Report based on a Looper".
  4. The mouse cursor changes and the button shape appears under the cursor. Click in your window to create and position the button. This button is used print the report based on a Looper control.
  5. A table report based on the selected Looper control is automatically created in the report editor. For more details, see Characteristics of created report.
  6. Confirm that the created report must be added into the current project.
  7. Save the created report and the window containing the Looper control.
WINDEV

Characteristics of the report based on a Looper control

By default:
  • the created report is a Table report. For more details, see The different types of reports.
  • the created report is named "Report_<CaptionLooperControl>".
  • the created report contains:
    • a table containing as many columns as the number of attributes found in the Looper control (even if these attributes display no value).
      By default, the width of columns in this table corresponds to the width of controls associated with the attributes.
      If the table does not occupy the entire report width, the table columns are proportionally enlarged in order for the table to reach its maximum size.
    • a Static control displaying the caption of Looper control.
    • four preset controls used to display today's date, the number of the current page, the total number of pages in the report and the total number of lines printed in the report.
  • the skin template of created report corresponds to the skin template of current project.
  • the report prints all rows found in the Looper control.
All these characteristics can be modified in the report editor.
Creating a report based on a Looper control from the report editor
The report editor allows you to create any type of report based on a Looper control (table, form, etc.).
Once the report is created, the print must be programmed in WLanguage. For more details, see Printing a report based on a Looper control.

Creating a report based on a Looper control from the report editor

To create a report based on a Looper control from the report editor:
  1. Click New in the quick access buttons.
    • The new element window appears: click "Report" then "Report". }
    • The report creation wizard starts.
  2. Choose the layout of your report (table, form, label, ...). For more details, see The different types of reports.
  3. Select (if necessary) the report template to use. A report template is used to comply with a specific page layout. For more details on report templates, see Report templates.
  4. Select the data source of the report ("From a Table or Looper control").
  5. Select the Looper control on which the report will be based. Only the Table and Looper controls in the windows or pages of the current project will appear.
  6. WINDEV To print:
    • all the rows displayed in the Looper control: select "All control rows".
    • the rows selected by the user: select "The rows selected in the control".
      Remark: This option can be modified programmatically with the SelectionOnly property.
  7. For each attribute of the Looper control displayed in the report:
    • specify whether the column must be printed or not via the checkmark.
    • type the corresponding caption. This caption will be displayed:
      • before the control. For example:
        Caption before the control
      • in the column header (for the Table reports). For example:
        Caption in the columns

        This caption can be modified in the report editor.
    • select the block where the control associated with the attribute of the Looper control will be printed. The positions of different controls can be modified in the report editor. For more details on the different blocks and their position in a report, see Report blocks.
  8. Modify (if necessary) the display order of controls in the report with the arrow buttons found on the right of table.
  9. If the Looper control associated with the report contains at least one numeric item, calculations can be performed on these items. Specify the calculation performed for each item (sum, average, ...). Two types of calculations are available:
    • general calculation: a Calculated control will be created in the End of document block.
    • calculation on break: a Calculated control will be created in the Break footer block. In the calculations on break, the calculation result is reinitialized after each break. To perform a calculation on break, a break must be found in the report currently created.
  10. Depending on the type of report currently created, indicate the specific options.
    Type of reportSpecific options
    Report based on a formForm image, printing the form image, ...
    Options presented in detail in Report based on a form
    Label reportFormat of labels, number of identical copies, ...
    Options presented in detail in Label report
  11. Specify the format of sheet on which the report will be printed. The report is printed in A4 format by default.
    Remark: By default, the report controls are displayed in a single column. To create a multi-column report, simply specify the desired number of columns in the "Format" tab of the report description window.
  12. Select the skin template of the report if necessary.
  13. Type the name and title of the report (name of ".WDE" file corresponding to the report). This name will be used to identify the report in your programs.
    WINDEV You can also specify whether the report can be modified by the end user in "Reports & Queries".
  14. Validate the report creation.
  15. The report editor automatically proposes to change the report format if the following conditions are fulfilled:
    • the report currently created includes a table.
    • the report format does not allow to display all table columns.
  16. Specify (if necessary) the mode for reducing the report size:
    • Print the report on several pages. In this case, the end user will have to group the pages. For more details, see Multi-page print.
    • Use the landscape mode.
    • Reduce the report size. Caution: according to the reduction percentage, the printed report may become unreadable.
  17. The report currently created is displayed in the report editor.
Printing a report based on a Looper control

Printing a report based on a Looper control

A report based on a Looper control must be printed from the window containing the Looper control whose data will be printed. If the button was not created automatically, you must:
  1. Create a button in the window (or page) containing the Looper control.
  2. Set the report print destination with iDestination (PDF file, HTML, etc.).
    For more details, see Print modes of a report.
  3. Specify the name of the report to print with iPrintReport.
Remarks:
  • If additional parameters must be passed to the report, these parameters must be specified in iPrintReport, after the name of the report to print. For more details, see Report with parameters.
  • WINDEV If the window that contains the source Looper control is opened multiple times (non-modal opening by OpenChild), the full name of the control to print must be passed as parameter to the report. For example:
    // The FullName property will contain the name of the window
    // that must be opened with an alias
    // to distinguish between each window
    iPrintReport(RPT_LOOP_Customer, LOOP_Customer.FullName)

    // Opening code of the report:
    PROCEDURE RPT_LOOP_Customer(sNameSourceLOOP)
    MyReport.SourceName = NameSourceLOOP
  • WINDEV The SelectionOnly property is used to get and change the records that will be printed in the report: print all records or the selected records only.
In Reports & Queries, you can print a report:
  • by starting a print job (Print icon).
  • by testing the report (Report Go).
Therefore, no programming is required to print the report.
WINDEV

WINDEV example

The information to print is in the Looper control named "LOOP_Customer" found in the "WIN_Customer" window.
The report to print is named "RPT_LOOPCustomer" and it is printed when clicking the "BTN_Print" button.
In this example, the click code of "BTN_Print" button is as follows:
// Open report viewer
iDestination(iViewer)
// Print the report based on the "LOOP_Customer" control
iPrintReport(RPT_LOOPCustomer)
WEBDEV - Server code

WEBDEV example

The information to print is in the Looper control named "LOOP_Customer" found in the "PAGE_Customer" page.
The report to print is named "RPT_LOOPCustomer" and it is displayed in a PDF file when clicking the "BTN_Print" button.
In this example, the click code of "BTN_Print" button is as follows:
// Generates a unique file name
UniqueFileName is string = fWebDir() + "\" + "RPT_Customer_" + DateSys() + TimeSys() + ".pdf"
// Configures the print destination
iDestination(iPDF, UniqueFileName)
// Prints the report based on the "LOOP_Customer" control
iPrintReport(RPT_LOOPCustomer)
// Displays the report in PDF format
FileDisplay(UniqueFileName, "application/pdf")
// Deletes the file
fDelete(UniqueFileName)
Minimum version required
  • Version 22
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 06/30/2023

Send a report | Local help