QAD Enterprise Edition Training Guides > Reporting Framework > Progress Data Source Program > Exercise Steps
  PPT
Exercise Steps
Define Report Definition for HelloWorldReport.p
(The following is based on QAD training environments.)
Get an example program (such as HelloWorldReport.p), and copy it to
Z:\qadapps\qea\qadui\
In the training environment, proxy report source directory is:
Z:\qadapps\qea\qadui\com\qad\shell\report\reports
Where Z: is mapped to \\qaddemo\dr01
In the QAD .NET UI, launch the Progress Editor (mgedit)
Enter:
compile /dr01/qadapps/qea/qadui/HelloWorldReport.p save into /dr01/qadapps/qea/qadui/com/qad/shell/report/reports.
...and run it (F1).
Now use Report Resource Maintenance to define the report code for the proxy data source, identifying the source as HelloWorldReport.p
Finally, use Report Resource Designer to generate a simple report.
Example Code: HelloWorldReport.p
/* HelloWorldReport.p - OPERATIONS BY WORK ORDER REPORT */
/* Copyright 1986-2012 QAD Inc., Carpinteria, CA, USA. */
/* All rights reserved worldwide. This is an unpublished work. */
/* */
/* Simple example report datasource program. */
/* */
/* $Id: HelloWorldReport.p 12860 2008-10-06 02:07:55Z czs $ */
/*-Revision end---------------------------------------------------------------*/
 
{mfdeclre.i}
{gplabel.i}
 
{com/qad/shell/report/ReportConstants.i}
{com/qad/shell/report/dsReportRequest.i}
 
/*============================================================================*/
/* ********************** Report Table Definition *************************** */
/*============================================================================*/
 
/* This temp table name is arbitrary, but the dataset it belongs to should be */
/* named dsReportResults. */
/* Any temp tables in the dsReportResults dataset will be returned to the */
/* report client at runtime. */
 
define temp-table ttHelloWorld
field count as integer
field hello as character
.
 
define dataset dsReportResults
for ttHelloWorld
.
 
/*============================================================================*/
/* **************************** Main routine ****************************** */
/*============================================================================*/
 
define input parameter runReport as logical.
define input parameter reportHandle as handle.
define input parameter dataset for dsReportRequest.
define output parameter dataset-handle phReportResults.
 
{com/qad/shell/report/reporting.i}
 
define variable bufferName as character no-undo.
 
empty temp-table ttHelloWorld no-error.
 
for first ttReportRequest no-lock:
 
/* Get the meta data about the fields */
run FillMetaData.
 
if runReport then do:
run RunReport
(output dataset-handle phReportResults).
end.
end.
 
 
/*============================================================================*/
/* **************************** Procedures ****************************** */
/*============================================================================*/
 
/* Meta Data */
 
/* This section defines metadata attributes for the fields which controls */
/* their behavior as search fields and sets other properties. */
/* The helper procedure which is invoked to set the metadata has the */
/* following input parameters: */
/* PROCEDURE CreateField: */
/* define input parameter bufferName as character. */
/* define input parameter fieldName as character. */
/* define input parameter fieldLabel as character. */
/* define input parameter dataType as character. */
/* define input parameter fieldFormat as character. */
/* define input parameter lookupName as character. */
/* define input parameter isSearchField as logical. */
/* define input parameter isReadOnlySearch as logical. */
/* define input parameter isVisible as logical. */
/* define input parameter isSingleEntry as logical. */
/* define input parameter isOperatorChangeable as logical. */
/* define input parameter isRequiredCondition as logical. */
/* define input parameter isEditable as logical. */
/* define input parameter defaultValue as character. */
/* define input parameter defaultOperator as character. */
/* define input parameter defaultValueType as character. */
/* define input parameter defaultValue2 as character. */
/* define input parameter defaultValueType2 as character. */
 
procedure FillMetaData:
 
bufferName = "ttHelloWorld".
run CreateBufferHeader in reportHandle
(bufferName, "Hello World").
 
run CreateField in reportHandle
(bufferName,
"count",
"Count",
"integer",
"9999",
"",
false,
false,
true,
false,
false,
false,
false,
"",
"Equals",
"Constant",
"",
"Constant"
).
 
run CreateField in reportHandle
(bufferName,
"hello",
"Hello",
"character",
"x(40)",
"",
false,
false,
true,
false,
false,
false,
false,
"",
"Equals",
"Constant",
"",
"Constant"
).
 
end procedure.
 
 
procedure RunReport:
 
define output parameter dataset-handle phReportResults.
 
/* This is the section where the output report dataset gets populated */
 
define variable cnt as integer initial 1 no-undo.
 
do while cnt <= 10:
create ttHelloWorld.
assign
ttHelloWorld.count = cnt
ttHelloWorld.hello = "Hello world !"
.
 
cnt = cnt + 1.
end.
 
phReportResults = dataset dsReportResults:handle.
end procedure.