Use the example code that was generated by  the Report Data Wizard.
About this taskYou can create a report application using the generated BDL file,
or the file can be incorporated as part of a larger application. We recommend that you use a
different BDL file to contain the additional code that is required, rather than making changes in
the generated file. This allows you to re-execute the Report Data Wizard without risking the loss of
your changes.
- 
Create the Report Data Definition file.
- 
Create the rdd file that is used to populate the Data View of the Report
Design Document, by executing this from the command line:
fglcomp --build-rdd <generated_file>.4gl 
 
 
- 
Add the resulting <sourcefile>.rdd file to your application files.
 
 - 
Design the report.
Specify the rdd file on the Data View page. When your design is complete,
save the report definition file (4rp) as part of your application. See Designing a Report for additional
information about the design process.
 
 - 
Add additional BDL Code to the program.
- 
To configure the report, call the mandatory report API functions, which identify the report
definition file and create the XML handler for the report:
 
- 
To connect to the Database, add a 
CONNECT TO or DATABASE
statement to the program.
 
- 
Call the 
run_<databasename>_to_handler function (in the
file generated by the Report Data Wizard) to execute the report.
 
 - 
                Add error handling to the generated wizard code.  It is recommended that you
                    call 
fgl_report_getErrorStatus() after every call to
                        START REPORT, OUTPUT TO REPORT, and
                        FINISH REPORT. For example:
                
                    START REPORT officestore_report TO XML HANDLER handler 
    IF fgl_report_getErrorStatus() THEN           
          DISPLAY "FGL: STOPPING REPORT, msg=\"",fgl_report_getErrorString(),"\""
    END IF 
FOREACH cur INTO data.*
   OUTPUT TO REPORT officestore_report(data.*)
      IF fgl_report_getErrorStatus() THEN           
            DISPLAY "FGL: STOPPING REPORT, msg=\"",fgl_report_getErrorString(),"\""
            EXIT FOREACH
      END IF 
END FOREACH
FINISH REPORT officestore_report
    IF fgl_report_getErrorStatus() THEN 
          DISPLAY "FGL: STOPPING REPORT, msg=\"",fgl_report_getErrorString(),"\""
    END IF
                 
             
Example MAIN function
This simple function illustrates the addition of BDL code:
 MAIN
   DEFINE handler om.SaxDocumentHandler -- report handler
   DATABASE officestore --connect to the database
      --call the mandatory functions that configure the report
   IF fgl_report_loadCurrentSettings("myreport.4rp") THEN -- if file loaded OK
     LET handler = fgl_report_commitCurrentSettings()     -- commit the 
                                                          -- file settings
   ELSE
     EXIT PROGRAM
   END IF
      -- run the report by calling the report driver contained in your 
        -- generated function
   IF handler IS NOT NULL THEN  
     CALL run_officestore_to_handler(handler)   
   END IF
  END MAIN