Report Information
Version: 11.0
Author: Copyright © 2004 Business Objects
Comments: This report demonstrates the usage of Crystal's Custom Functions feature.
The report also utilizes Rich Text Format interpretation.
Subject: Custom Functions
Keywords: custom functions, parameters
Printer: No Printer
Main Body
Data Sources
Source: Connection #1
Database DLL: crdb_odbc.dll
Database Type: ODBC (RDO)
Server: Xtreme Sample Database 11.5
Properties: QE_LogonProperties
DSN: Xtreme Sample Database 11.5
UseDSNProperties: False
QE_SQLDB: True
SSO Enabled: False
Report Parameters
Parameter: Customers
Data Type: String
Description: Choose a Customer:
List Type: Dynamic
Dynamic Field: Customer.Customer Name
Default Values: Wheel to Wheel
Westerly Sports
Tables
Table: Customer
Connection: Connection #1
Used Columns: {Customer.Customer ID} : Number
{Customer.Customer Name} : String[82]
Table: Orders
Connection: Connection #1
Used Columns: {Orders.Order ID} : Number
{Orders.Order Amount} : Number
{Orders.Customer ID} : Number
{Orders.Order Date} : DateTime
{Orders.Required Date} : DateTime
{Orders.Ship Date} : DateTime
Table Links
Joins: Customer INNER JOIN Orders ON Customer.[Customer ID] = Orders.[Customer ID]
Record Selection Formulas
Formula: {Customer.Customer Name} in {?Customers}
and
{Orders.Order Date}>= date(2004,01,01)
and
{Orders.Order Date}<= date(2004,12,31)
Record Sorting
Sort By: @Group 1 -- Ascending Order Group #1
Customer.Customer Name -- Ascending Order Group #2
Orders.Order ID -- Ascending Order
Custom Functions
Function: cdStringParamDisplay
Code: Function cdStringParamDisplay (param () As String Range, title As String)
dim paramcount as number
dim increment as number
dim outputd as string
dim outputr as string
paramcount = count(param)
Do While paramcount > increment
increment = increment + 1
if maximum(param (increment)) <> minimum(param (increment)) _
then outputr = outputr + minimum(param (increment)) + " to " + maximum( param (increment)) + "\par " _
else outputd = outputd + minimum( param (increment)) + "\par " _
Loop
cdStringParamDisplay = "{\rtf1\ansi\ansicpg1252\deff0\deflang1033" + _
"{\fonttbl{\f0\fswiss\fprq2\fcharset0 Arial;}{\f1\fswiss\fcharset0 Arial;}}" + _
"{\colortbl ;\red0\green0\blue128;\red191\green165\blue125;}" + _
"\viewkind4\uc1\pard\cf1\b\f0\fs22 " + title + "\cf0\b0\f1\fs16\par" + _
"\par" + _
"\ul\b\fs16 Distinct Entries\ulnone\par" + _
"\cf2 " + _
"\par " + _
outputd + _
"\par " + _
"\cf0 " + _
"\ul\b Range Entries\ulnone\par " + _
"\par " + _
"\cf2 " + _
outputr + _
"}"
End Function
Function: cdDateTimeDiff
Code: Function (datetimevar startdate, datetimevar enddate)
if enddate - startdate > 0 then
(
numbervar ds:= (date(enddate) - date(startdate))*86400;
numbervar hs:= (hour(enddate) - hour(startdate))*3600;
numbervar ms:= (minute(enddate) - minute(startdate))*60;
numbervar ss:= second(enddate) - second(startdate);
numbervar ts:= ds+hs+ms+ss;
ds:= truncate(ts/86400);
hs:= truncate((remainder(ts,86400))/3600);
ms:= truncate((remainder(ts,3600))/60);
ss:= truncate(remainder(ts,60));
stringvar dsd;
stringvar hsd;
stringvar msd;
stringvar ssd;
if ds < 10 then dsd:= "0" + totext(ds,0,"") else dsd:= totext(ds,0,"");
if hs < 10 then hsd:= "0" + totext(hs,0,"") else hsd:= totext(hs,0,"");
if ms < 10 then msd:= "0" + totext(ms,0,"") else msd:= totext(ms,0,"");
if ss < 10 then ssd:= "0" + totext(ss,0,"") else ssd:= totext(ss,0,"");
stringvar display:= " " + dsd + ":" + hsd + ":" + msd + ":" + ssd;
)
else
(
numbervar ds:= (date(startdate) - date(enddate))*86400;
numbervar hs:= (hour(startdate) - hour(enddate))*3600;
numbervar ms:= (minute(startdate) - minute(enddate))*60;
numbervar ss:= second(startdate) - second(enddate);
numbervar ts:= ds+hs+ms+ss;
ds:= truncate(ts/86400);
hs:= truncate((remainder(ts,86400))/3600);
ms:= truncate((remainder(ts,3600))/60);
ss:= truncate(remainder(ts,60));
stringvar dsd;
stringvar hsd;
stringvar msd;
stringvar ssd;
if ds < 10 then dsd:= "0" + totext(ds,0,"") else dsd:= totext(ds,0,"");
if hs < 10 then hsd:= "0" + totext(hs,0,"") else hsd:= totext(hs,0,"");
if ms < 10 then msd:= "0" + totext(ms,0,"") else msd:= totext(ms,0,"");
if ss < 10 then ssd:= "0" + totext(ss,0,"") else ssd:= totext(ss,0,"");
stringvar display:= "-" + dsd + ":" + hsd + ":" + msd + ":" + ssd;
);
display;
Function: cdCurrencyScalerChoice
Code: Function (currencyvar currencyfield, stringvar scaler, numbervar decimals)
if scaler = "K" then totext(currencyfield/1000,decimals) + "K" else
if scaler = "M" then totext(currencyfield/1000000,decimals) + "M"
Formula Fields
Field: Parameter Values Display
Formula: cdStringParamDisplay ({?Customers}, "Customers Entered via Parameter:")
Field: Order Date
Formula: // a formula is used to create this DateTime field as the Xtreme sample data contains only 12:00:00 as a time
datetimevar orderdate:=
date({Orders.Order Date}) +
time((Int(Rnd*24)), (Int(Rnd*59)), (Int(Rnd*59)))
Field: Required Date
Formula: // a formula is used to create this DateTime field as the Xtreme sample data contains only 12:00:00 as a time
datetimevar requireddate:=
date({Orders.Required Date}) +
time((Int(Rnd*24)), 0, 0);
if requireddate <= {@Order Date} then datetime(date({@Order Date}) + 2, time(12,00,00)) else requireddate
Field: Received Date
Formula: // a formula is used to create this DateTime field as the Xtreme sample data contains only 12:00:00 as a time
datetimevar receiveddate:=
date(dateadd("d", Int(1.1/Rnd), {Orders.Ship Date})) +
time((Int(Rnd*24)), (Int(Rnd*59)), 0);
if receiveddate <= {@Order Date} then {@Order Date} + 4 else receiveddate
Field: Efficiency
Formula: cdDateTimeDiff ({@Required Date},{@Received Date})
Field: On-Time Orders
Formula: if {@Required Date} - {@Received Date} >= 0
then {Orders.Order Amount}
Field: Late Orders
Formula: if {@Required Date} - {@Received Date} < 0
then {Orders.Order Amount}
Field: On-Time Orders Grand Total
Formula: if sum({@On-Time Orders}) > 100000
then cdCurrencyScalerChoice (sum({@On-Time Orders}), "M", 2)
else cdCurrencyScalerChoice (sum({@On-Time Orders}), "K", 1)
Field: Late Orders Grand Total
Formula: if {@Late Orders} > 10000
then cdCurrencyScalerChoice (sum({@Late Orders}), "K", 0)
else cdCurrencyScalerChoice (sum({@Late Orders}), "K", 2)
Field: Late Orders Running Total
Formula: whileprintingrecords;
if {@Required Date} - {@Received Date} < 0
then stringvar lateorders:= lateorders + totext({Orders.Order ID},0,"") + "^";
lateorders
Field: Late or On Time
Formula: if {@Required Date} - {@Received Date} >= 0
then "On Time" else "Late"
Field: Group 1
Formula: whilereadingrecords;
"Report Details"
Field: Report Details
Formula: "Double-click here to see a detailed report."
Unused Formula Fields
Field: Xtreme Address
Formula: "2001 Meridian Way, Vancouver, BC, Canada V6G 3G6"
Field: Xtreme phone/fax
Formula: "Phone: (604) 681-3435 Fax: (604) 681-2934"
Summary Fields
Field: Efficiency
Formula: Maximum ({@Efficiency}, {Customer.Customer Name})
Running Totals
Running Total: LateOrdersCount
Field: LateOrdersCount
Type: LateOrdersCount
Evaluate: LateOrdersCount
Evaluate Condition: LateOrdersCount
Reset: LateOrdersCount
Reset Condition: LateOrdersCount
Running Total: OnTimeOrdersCount
Field: OnTimeOrdersCount
Type: OnTimeOrdersCount
Evaluate: OnTimeOrdersCount
Evaluate Condition: OnTimeOrdersCount
Reset: OnTimeOrdersCount
Reset Condition: OnTimeOrdersCount
Report Header
Section: Section a
Conditional Formulas
Condition: EnableSuppress
Formula: DrillDownGroupLevel <> 0
Fields
Field: ParameterValuesDisplay1
Data Source: {@Parameter Values Display}
Data Type: String
Pictures
Picture: RO_Xtreme_Logo
Size: 279x111
Hyperlink: http://www.businessobjects.com
Charts
Chart: Graph3
Chart Type: Gauge
Show value(s): Count (Orders.Order ID, @Late or On Time)
Evaluate On: @Late or On Time
Page Header
Section: Section a
Conditional Formulas
Condition: EnableSuppress
Formula: DrillDownGroupLevel = 0
Text Fields
Text Field: Text6
Text: Efficiency measured in (Days:Hours:Minutes: Seconds)
Suppression Formula: Pagenumber = TotalPageCount
Text Field: Text9
Text: Order Processing Efficiency
Tool Tip Formula: "This report demonstrates the usage of Custom Functions."
Pictures
Picture: Picture2
Size: 279x111
Hyperlink: http://www.businessobjects.com
Tool Tip Formula: "http://www.crystaldecisions.com"
Groups
Group: Group #1
Grouped By: {@Group 1}
Group Header
Section: Section a
Conditional Formulas
Condition: EnableSuppress
Formula: DrillDownGroupLevel > 0
Fields
Field: Field2
Data Source: {@Report Details}
Data Type: String
Tool Tip Formula: "Double-click here to see a detailed report."
Text Fields
Text Field: Text4
Text: Order Processing Efficiency
Tool Tip Formula: "This report demonstrates the usage of Custom Functions."
Group: Group #2
Grouped By: {Customer.Customer Name}
Group Header
Section: Section a
Fields
Field: Field1
Data Source: GroupName ({Customer.Customer Name})
Data Type: String
Headings
Heading: Text11
Text: Efficiency
Heading: Text10
Text: Received Date
Heading: Text8
Text: Required Date
Heading: Text7
Text: Order Date
Heading: Text1
Text: Order ID
Group Footer
Section: Section a
Fields
Field: Field8
Data Source: Maximum ({@Efficiency}, {Customer.Customer Name})
Data Type: String
Detail
Section: Section a
Conditional Formulas
Condition: EnableSuppress
Formula: DrillDownGroupLevel = 0
Fields
Field: Field3
Data Source: {Orders.Order ID}
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: (5555555)
Field: Field11
Data Source: {@Order Date}
Data Type: DateTime
Format: Date and Time
Order: Date Time
Date Type: System Default
DateTime Format: DD/MM/YYYY h:mm:ss
Field: Field12
Data Source: {@Required Date}
Data Type: DateTime
Format: Date and Time
Order: Date Time
Date Type: System Default
DateTime Format: DD/MM/YYYY h:mm:ss
Field: Field13
Data Source: {@Received Date}
Data Type: DateTime
Format: Date and Time
Order: Date Time
Date Type: System Default
DateTime Format: DD/MM/YYYY h:mm:ss
Field: Field14
Data Source: {@Efficiency}
Data Type: String
Tool Tip Formula: "This custom function displays a DateTime Difference formula in the format DD:HH:MM:SS."
Text Fields
Text Field: Text2
Text: LATE
Suppression Formula: {@Required Date} - {@Received Date} > 0
Section: Section b
Fields
Field: Field4
Data Source: {@On-Time Orders}
Data Type: Number
Format: Number
Currency Type: Floating
Currency Symbol: $
Currency Position: Leading Outside Negative $-123
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: $-5,555,555.
Field: Field5
Data Source: {@Late Orders}
Data Type: Number
Format: Number
Currency Type: Floating
Currency Symbol: $
Currency Position: Leading Outside Negative $-123
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: $-5,555,555.
Field: Field16
Data Source: {@Late Orders Running Total}
Data Type: String
Page Footer
Section: Section a
Fields
Field: Field6
Data Source: PageNumber
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5,555,555
Text Fields
Text Field: Text15
Text: Business Objects Technical Support Site
Hyperlink: http://support.businessobjects.com
Text Field: Text16
Text: Copyright 2004 Business Objects Software Limited. All rights reserved. Business Objects, the Business Objects logo, Crystal Reports, Crystal Enterprise, Crystal Analysis, WebIntelligence, RapidMarts, and BusinessQuery are trademarks or registered trademarks of Business Objects and its affiliates in the United States and/or other countries. Other trademarks are the property of their respective owners. Business Objects owns the following U.S. patents, which may cover products that are offered and sold by Business Objects: 5,555,403, 6,247,008 B1, 6,578,027 B2, 6,490,593 and 6,289,352.
Text Field: Text17
Text: Feedback on Samples by E-mail
Hyperlink: mailto:crfeedback@businessobjects.com
Pictures
Picture: Picture3
Size: 150x40
Hyperlink: http://www.businessobjects.com
Lines
Line: Line1
Ends in Section: Section9
Line Type: Single
Line Thickness: 10
Report Footer
Conditional Formulas
Condition: EnableSuppress
Formula: DrillDownGroupLevel > 0
Section: Section a
Text Fields
Text Field: Text12
Text: Summary Information
Text Field: Text3
Text: Total $ Amount of On-Time Orders: {@On-Time Orders Grand Total}
Text Field: Text5
Text: Total $ Amount of Late Orders: {@Late Orders Grand Total}
Text Field: Text13
Text: Number of Late Orders: {#LateOrdersCount}
Text Field: Text14
Text: Number of On-Time Orders: {#OnTimeOrdersCount}
SubReports
SubReport: Late Orders by Supplier.rpt
Links: {@Late Orders Running Total} => {?Pm-@Late Orders Running Total}
SubReport: Late Orders by Shipper.rpt
Links: {@Late Orders Running Total} => {?Pm-@Late Orders Running Total}
SubReport: Late Orders by Product Type.rpt
Links: {@Late Orders Running Total} => {?Pm-@Late Orders Running Total}
Charts
Chart: Graph1
Chart Type: Pie
Show value(s): Sum of (Orders.Order Amount, @Late or On Time)
Evaluate On: @Late or On Time
Section: Section b
Charts
Chart: Graph2
Chart Type: Bar
Show value(s): Count (Orders.Order ID, @Late or On Time)
Evaluate On: Orders.Ship Date
@Late or On Time
Subreport: Late Orders by Product Type.rpt
Data Sources
Source: Connection #1
Database DLL: crdb_odbc.dll
Database Type: ODBC (RDO)
Server: Xtreme Sample Database 11.5
Properties: QE_LogonProperties
DSN: Xtreme Sample Database 11.5
UseDSNProperties: False
QE_SQLDB: True
SSO Enabled: False
Report Parameters
Parameter: Group By
Data Type: String
Description: How do you want to analyze the report? (Please enter in grouping order.)
List Type: Static
List Values: By Product Type
By Region Product Is From
By Supplier
By Shipping Co.
By Area Shipped To
Default Values: By Product Type
By Region Product Is From
By Supplier
By Shipping Co.
By Area Shipped To
Parameter: Pm-@Late Orders Running Total
Data Type: String
Description: Pm-@Late Orders Running Total
List Type: Static
Tables
Table: Customer
Connection: Connection #1
Used Columns: {Customer.Customer ID} : Number
Table: Orders
Connection: Connection #1
Used Columns: {Orders.Order ID} : Number
{Orders.Customer ID} : Number
Table: Orders Detail
Connection: Connection #1
Report Alias: Orders_Detail
Used Columns: {Orders_Detail.Order ID} : Number
Table: Product
Connection: Connection #1
Used Columns: {Product.Product ID} : Number
{Product.Product Type ID} : Number
{Product.Product Class} : String[102]
{Product.Supplier ID} : Number
Table: Product Type
Connection: Connection #1
Report Alias: Product_Type
Used Columns: {Product_Type.Product Type Name} : String[102]
Table: Supplier
Connection: Connection #1
Used Columns: {Supplier.Supplier ID} : Number
Table Links
Joins: Customer INNER JOIN Orders ON Customer.[Customer ID] = Orders.[Customer ID]
Orders INNER JOIN [Orders Detail] Orders_Detail ON Orders.[Order ID] = Orders_Detail.[Order ID]
[Orders Detail] Orders_Detail INNER JOIN Product ON Orders_Detail.[Product ID] = Product.[Product ID]
Product INNER JOIN [Product Type] Product_Type ON Product.[Product Type ID] = Product_Type.[Product Type ID]
Product INNER JOIN Supplier ON Product.[Supplier ID] = Supplier.[Supplier ID]
Record Selection Formulas
Formula: instr({?Pm-@Late Orders Running Total}, "^" + totext({Orders_Detail.Order ID},0,"") + "^") > 0
Record Sorting
Sort By: Count (Orders_Detail.Order ID, @Group 1) -- Descending Order
Orders_Detail.Order ID -- Ascending Order
Formula Fields
Field: Group 1
Formula: {@Product}
Field: Product
Formula: {Product.Product Class} + ", " + {Product_Type.Product Type Name}
Summary Fields
Field: Order ID
Formula: Count ({Orders_Detail.Order ID}, {@Group 1})
Report Header
Section: Section a
Text Fields
Text Field: Text4
Text: Count of Late Orders
by Product Type
Groups
Group: Group #1
Grouped By: {@Group 1}
Group Header
Section: Section a
Fields
Field: Field9
Data Source: GroupName ({@Group 1})
Data Type: String
Field: Field1
Data Source: Count ({Orders_Detail.Order ID}, {@Group 1})
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5555555
Detail
Section: Section a
Fields
Field: Field3
Data Source: {Orders_Detail.Order ID}
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5,555,555
Field: Field4
Data Source: {@Product}
Data Type: String
Subreport: Late Orders by Shipper.rpt
Data Sources
Source: Connection #1
Database DLL: crdb_odbc.dll
Database Type: ODBC (RDO)
Server: Xtreme Sample Database 11.5
Properties: QE_LogonProperties
DSN: Xtreme Sample Database 11.5
UseDSNProperties: False
QE_SQLDB: True
SSO Enabled: False
Report Parameters
Parameter: Group By
Data Type: String
Description: How do you want to analyze the report? (Please enter in grouping order.)
List Type: Static
List Values: By Product Type
By Region Product Is From
By Supplier
By Shipping Co.
By Area Shipped To
Default Values: By Product Type
By Region Product Is From
By Supplier
By Shipping Co.
By Area Shipped To
Parameter: Pm-@Late Orders Running Total
Data Type: String
Description: Pm-@Late Orders Running Total
List Type: Static
Tables
Table: Customer
Connection: Connection #1
Used Columns: {Customer.Customer ID} : Number
Table: Orders
Connection: Connection #1
Used Columns: {Orders.Order ID} : Number
{Orders.Customer ID} : Number
{Orders.Ship Via} : String[42]
Table: Orders Detail
Connection: Connection #1
Report Alias: Orders_Detail
Used Columns: {Orders_Detail.Order ID} : Number
Table: Product
Connection: Connection #1
Used Columns: {Product.Product ID} : Number
{Product.Product Type ID} : Number
{Product.Supplier ID} : Number
Table: Product Type
Connection: Connection #1
Report Alias: Product_Type
Table: Supplier
Connection: Connection #1
Used Columns: {Supplier.Supplier ID} : Number
Table Links
Joins: Customer INNER JOIN Orders ON Customer.[Customer ID] = Orders.[Customer ID]
Orders INNER JOIN [Orders Detail] Orders_Detail ON Orders.[Order ID] = Orders_Detail.[Order ID]
[Orders Detail] Orders_Detail INNER JOIN Product ON Orders_Detail.[Product ID] = Product.[Product ID]
Product INNER JOIN [Product Type] Product_Type ON Product.[Product Type ID] = Product_Type.[Product Type ID]
Product INNER JOIN Supplier ON Product.[Supplier ID] = Supplier.[Supplier ID]
Record Selection Formulas
Formula: instr({?Pm-@Late Orders Running Total}, "^" + totext({Orders_Detail.Order ID},0,"") + "^") > 0
Record Sorting
Sort By: Count (Orders_Detail.Order ID, @Group 1) -- Descending Order
Orders_Detail.Order ID -- Ascending Order
Formula Fields
Field: Group 1
Formula: {Orders.Ship Via}
Summary Fields
Field: Order ID
Formula: Count ({Orders_Detail.Order ID}, {@Group 1})
Report Header
Section: Section a
Text Fields
Text Field: Text4
Text: Count of Late Orders
by Shipper
Groups
Group: Group #1
Grouped By: {@Group 1}
Group Header
Section: Section a
Fields
Field: Field9
Data Source: GroupName ({@Group 1})
Data Type: String
Field: Field1
Data Source: Count ({Orders_Detail.Order ID}, {@Group 1})
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5,555,555
Detail
Section: Section a
Fields
Field: Field3
Data Source: {Orders_Detail.Order ID}
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5,555,555
Subreport: Late Orders by Supplier.rpt
Data Sources
Source: Connection #1
Database DLL: crdb_odbc.dll
Database Type: ODBC (RDO)
Server: Xtreme Sample Database 11.5
Properties: QE_LogonProperties
DSN: Xtreme Sample Database 11.5
UseDSNProperties: False
QE_SQLDB: True
SSO Enabled: False
Report Parameters
Parameter: Group By
Data Type: String
Description: How do you want to analyze the report? (Please enter in grouping order.)
List Type: Static
List Values: By Product Type
By Region Product Is From
By Supplier
By Shipping Co.
By Area Shipped To
Default Values: By Product Type
By Region Product Is From
By Supplier
By Shipping Co.
By Area Shipped To
Parameter: Pm-@Late Orders Running Total
Data Type: String
Description: Pm-@Late Orders Running Total
List Type: Static
Tables
Table: Customer
Connection: Connection #1
Used Columns: {Customer.Customer ID} : Number
Table: Orders
Connection: Connection #1
Used Columns: {Orders.Order ID} : Number
{Orders.Customer ID} : Number
Table: Orders Detail
Connection: Connection #1
Report Alias: Orders_Detail
Used Columns: {Orders_Detail.Order ID} : Number
Table: Product
Connection: Connection #1
Used Columns: {Product.Product ID} : Number
{Product.Product Type ID} : Number
{Product.Supplier ID} : Number
Table: Product Type
Connection: Connection #1
Report Alias: Product_Type
Table: Supplier
Connection: Connection #1
Used Columns: {Supplier.Supplier ID} : Number
{Supplier.Supplier Name} : String[102]
Table Links
Joins: Customer INNER JOIN Orders ON Customer.[Customer ID] = Orders.[Customer ID]
Orders INNER JOIN [Orders Detail] Orders_Detail ON Orders.[Order ID] = Orders_Detail.[Order ID]
[Orders Detail] Orders_Detail INNER JOIN Product ON Orders_Detail.[Product ID] = Product.[Product ID]
Product INNER JOIN [Product Type] Product_Type ON Product.[Product Type ID] = Product_Type.[Product Type ID]
Product INNER JOIN Supplier ON Product.[Supplier ID] = Supplier.[Supplier ID]
Record Selection Formulas
Formula: instr({?Pm-@Late Orders Running Total}, "^" + totext({Orders_Detail.Order ID},0,"") + "^") > 0
Record Sorting
Sort By: Count (Orders_Detail.Order ID, @Group 1) -- Descending Order
Orders_Detail.Order ID -- Ascending Order
Formula Fields
Field: Group 1
Formula: {Supplier.Supplier Name}
Summary Fields
Field: Order ID
Formula: Count ({Orders_Detail.Order ID}, {@Group 1})
Report Header
Section: Section a
Text Fields
Text Field: Text4
Text: Count of Late Orders
by Supplier
Groups
Group: Group #1
Grouped By: {@Group 1}
Group Header
Section: Section a
Fields
Field: Field9
Data Source: GroupName ({@Group 1})
Data Type: String
Field: Field1
Data Source: Count ({Orders_Detail.Order ID}, {@Group 1})
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5,555,555
Detail
Section: Section a
Fields
Field: Field3
Data Source: {Orders_Detail.Order ID}
Data Type: Number
Format: Number
Currency Symbol: None
Suppress if Zero: False
Leading Zero: True
Reverse Sign: False
Number Style: -5,555,555