Professional Documents
Culture Documents
Factelligence Report Designer
Factelligence Report Designer
Factelligence Report Designer
Report Designer
Revision D
Last Revision: 3/6/08
Copyright
2008 Invensys Systems, Inc. All Rights Reserved.
All rights reserved. No part of this documentation shall be reproduced, stored in a
retrieval system, or transmitted by any means, electronic, mechanical,
photocopying, recording, or otherwise, without the prior written permission of
Invensys Systems, Inc. No copyright or patent liability is assumed with respect to
the use of the information contained herein. Although every precaution has been
taken in the preparation of this documentation, the publisher and the author
assume no responsibility for errors or omissions. Neither is any liability assumed
for damages resulting from the use of the information contained herein.
The information in this documentation is subject to change without notice and does
not represent a commitment on the part of Invensys Systems, Inc. The software
described in this documentation is furnished under a license or nondisclosure
agreement. This software may be used or copied only in accordance with the terms
of these agreements.
Trademarks
All terms mentioned in this documentation that are known to be trademarks or
service marks have been appropriately capitalized. Invensys Systems, Inc. cannot
attest to the accuracy of this information. Use of a term in this documentation
should not be regarded as affecting the validity of any trademark or service mark.
Alarm Logger, ActiveFactory, ArchestrA, Avantis, DBDump, DBLoad, DT Analyst,
Factelligence, FactoryFocus, FactoryOffice, FactorySuite, FactorySuite A2, InBatch,
InControl, IndustrialRAD, IndustrialSQL Server, InTouch, MaintenanceSuite,
MuniSuite, QI Analyst, SCADAlarm, SCADASuite, SuiteLink, SuiteVoyager,
WindowMaker, WindowViewer, Wonderware, Wonderware Factelligence, and
Wonderware Logger are trademarks of Invensys plc, its subsidiaries and affiliates.
All other brands may be trademarks of their respective owners.
Contents
Chapter 2 Overview............................................ 7
Chapter 3 Report Design ...................................... 9
Chapter 4 Reporting Mechanism........................... 13
Report Designer.................................................................13
Manager .............................................................................14
Configuration.....................................................................15
Contents
Chapter 1
Introduction
Aim
This guide will teach you the basics involved in the creation
and configuration of custom reports to run in the
Factelligence MES system, specifically in the Manager
browser reporting and analysis module.
Content
It will cover the reporting mechanism and features of the
Report Designer.
A number of tutorial exercises will help familiarize you with
the functionality and provide the necessary skills to create
powerful custom reports.
Assumptions
The material in this course assumes that you know very little
about Factelligence Report Designer and have not used the
product before, but that you are familiar with the Microsoft
Windows operating system and database concepts.
Chapter 1 Introduction
Reference Material
You are encouraged to review the documentation and/or
attend the training course on Factelligence Manager.
Chapter 2
Overview
Labor Usage
Traceability
Genealogy
Certification
Specifications
Cost
Data Log
Inventory
Audit Trail
Lean Manufacturing
Chapter 2 Overview
The user has many options when creating custom reports for
their specific Factelligence application. These include:
1
Chapter 4
Report Design
10
From the menu select File -> Open and select the report
layout file
Factelligence\Manager\Reports\System\Production\P
roductionByPeriod.rpx. The designer will appear as in
Figure 1 above.
11
12
13
Chapter 3
Reporting Mechanism
Report Designer
All report layouts are created with an ADO data object. This
object is configured with the required connection string and
SQL query to gather the data directly from the Factelligence
database. When the report is previewed in Report Designer
the designer runs it as a standalone report. The query
configured in the report is run directly against the database
(bypassing the Factelligence middleware), the retrieved
dataset is applied to the report file for grouping and
formatting, and the result displayed in the viewer.
14
Manager
Manager uses a feature within the Active Reports framework
that allows you to pass a recordset to a report layout at
runtime. The recordset must include the same fields and
sort order as defined by the query configured in the reports
ADO object, but can be constrained and filtered prior to being
applied to the report.
As a multi-client browser application, Manager makes use
another feature called the Active Reports WebCache Server.
When a report is requested by a Manager client, the
Factelligence Web Server processes the SQL query required
by the report, modified with user selected time period and
filters, via the Factelligence middleware, applies the
resultant recordset to the report, and runs the report. The
resultant formatted report complete with data is cached and
then streamed to the clients browser for viewing via the
viewer object.
Why do we do it this way?
Firstly, the reporting workload of data gathering and report
processing is now handled by the Web Server rather than the
client. The client requires nothing more than the viewer to
view the resultant report. This fits well with the
Factelligence Manager architecture of n-tier and zero client
install.
Secondly, the development effort in creating queries and
report layouts is leveraged by this structure. A single report
file created based on a given query can be used with any
combination of data selection constraints and filters without
alteration. The different record sets are simply generated
and applied to the same report file.
Correspondingly, a number of different report files that
display the data in different formats can be created based on
a common query.
Configuration
15
Configuration
The trick with this approach is that Factelligence must be
able to regenerate, complete with constraints and filters, the
same SQL query that the report was designed with and run
this via the middleware to create the data required.
So, when a user creates a report layout for running in
Manager they must also configure, test and store in the
database the query required by the report, and configure the
relationship between the report and the query.
16
17
Chapter 5
Report Preview
18
Click the icon in the top right corner of the Fields list
(bottom left panel of Designer). If the connection string
and query is valid then a list of the fields returned by the
query will be displayed in the list. If there is an error, a
message will be displayed.
19
Chapter 6
Report Configuration
20
Important The tab will list all currently configured reports in the
Factelligence database. Altering or deleting these will affect the
way these reports operate. Ensure you are aware of all the
ramifications before making changes.
21
22
Select the Set button for Sort Fields. The dialog box is
fairly straightforward. It presents a list of fields in the
query for you to use as the sort criteria for the report.
23
24
25
Chapter 7
Queries
26
Chapter 7 Queries
Important The tab will list all currently configured queries in the
Factelligence database. These will be used by existing reports,
status screens or SCC export functions. Altering these queries will
affect the way these features operate. Ensure you are aware of
all the ramifications before making changes.
Query Parameters
Parameters may be included in your SQL query or stored
procedure. Those parameters which are then configured to be
available for a given report will be made available for you to
set when running the report in Manager.
Manager provides screens with controls such as calendars,
tree views and text boxes to allow you to enter runtime
parameters. As these screens are hard coded then there are
only a limited number of parameters available to you to
include in a query. These are:
Start Time
End Time
Entity
Item
User
Work Order
Shift
Custom
Query Parameters
27
Date TimeNULL
End_Time
Date TimeNULL
Entity
String ListNULL
Item
String ListNULL
User
String ListNULL
Work Order
String ListNULL
Shift
String ListNULL
Custom
CustomNULL
Date Time
(<table>.<field> >= @Start_Time OR
@Start_Time IS NULL)
String List
(<table>.<field> IN @Entity)
Custom
(@Custom)
28
Chapter 7 Queries
Query Parameters
29
30
Chapter 7 Queries
31
Chapter 8
Tutorial Exercise
This exercise will walk you through all the steps involved in
producing a report for use in the Factelligence application.
The report chosen for the exercise is the OEE By Shift Trend
system report included with the Factelligence application.
This report was chosen as it includes all of the common
report design concepts used in the Factelligence reports suite
and those that will most commonly be used in the creation of
custom reports.
Topics covered include:
Grouping of data
32
Overview
The creation of a report can be broken down into a number of
phases:
Specification
It is important to prepare a desired specification for the
report with as much detail as possible re the layout, data
content and how the user is to interact with the report.
The design of the report often is dependent on how the data
needs to be displayed so it is a good idea to have as much of
this done up front as possible.
The report we wish to prepare is described in the spec sheet
OEE By Shift Trend Report located in Appendix A. This spec
sheet is a good template to use in the preparation of report
requirements. Have a look at what is included here.
Tip Start with a basic description and a sketch of the layout of
the report. As the phases of report creation are completed update
the document.
33
34
35
36
37
38
39
Changing Properties
Click on the report title label. In the property toolbox change
the Caption to reflect the title of your new report.
40
Important The bitmap must be sized correctly for the report and
the SizeMode property must be set to Clip. Using the
SizeMode = Stretch or Zoom properties to resize a bitmap will
cause the report to resize the graphic each time the report is
rendered and can increase report processing time by a factor of
10+.
Using the File -> Save option in the designer menu, save
the report file to its new location eg:
\Factelligence\Manager\Reports\Custom\MyOEEReport.
rpx
41
42
Grouping
Now it is time to start adding data fields and groups to the
report.
Our primary grouping is to be by Entity. Select the
ghGroup section (this is the group header) and in the
property toolbox set:
Name:
ghEntity
Data Field:
ent_id Causes a new group header to
be displayed each
time this field changes.
KeepTogether: TrueEnsures the section is not split
over a page
boundary.
Select the gfGroup section (this is the group footer) and in
the property toolbox set:
Name:
gfEntity
KeepTogether: True
Note A certain standard for naming of objects as been employed
here but this is entirely a user preference.
43
txtEntName
Set this object at the top of the section and make it cover the
entire width of the section.
Tip The mouse can be used to size and move objects in the usual
manner. For fine adjustments use SHIFT + ARROW KEYS for sizing
and CTRL + ARROW KEYS for movement.
Increase the height of the section using the mouse or set its
property:
Height:
615
44
Formatting
Now that we have achieved the first stage of the data
processing we will do some formatting.
Firstly, this report will start a new page for each new entity
so the ghEntity section is the logical place to have the column
headers etc.
In the Page Header, delete the blue rectangle and cut and
paste the column header labels into the ghEntity section.
Tip Hold the CTRL key down to select multiple objects. Use
CTRL+X and CTRL+V to cut and paste in the usual manner.
Normal
BackColor:
R,G,B = 128,174,200
Font:
Bold
45
% Perf% Qual
Width:
1134
1134 1134
Space them across the width of the report and use the
formatting toolbar to set the text alignment to Centered.
Adjust the properties of the sections as follows:
PageHeader
Height: 1300
ghEntity
Detail
NewPage: After
46
ghShift
DataField:
shift_start
KeepTogether: True
Height:
900
Name:
gfShift
KeepTogether: True
Height:
txtShiftStart
OutputFormat: d-mmm-yyyy
Width:
2041
Name:
txtShiftID
Left:
2098
Width:
567
Name:
txtShiftDesc
Left:
2778
Width:
2041
47
Scripting calculations
Wonderware Factelligence Report Designer
48
(qty_good + qty_reject)
Quality =
qty_good
----------------------------qty_good + qty_reject
In our report we wish to do these calculations on a per shift
basis. Easy enough for the Utilization and the Quality as
they are simple summations of existing fields. Not so easy for
the Performance. What would be nice is for there to be a
performance field for each record in the table that we could
then sum in the report over whatever grouping we chose (in
this case by shift).
Mathematics tells us that all we need do is create a weighted
performance field based on runtime and then if we sum the
weighted performance over any timeframe as follows.
If
PW1 = P1 * RT1
runtime
PW2 = P2 * RT2
Then
Ptotal = (PW1 + PW2) / (RT1 + RT2)
We could include a new calculated field in the query for
weighted performance however we will do it in the report for
two reasons. Firstly to demonstrate the concept of virtual
49
50
Summation Objects
We will now add a number of invisible summation objects to
calculate the values needed for the OEE KPIs. Note that
summation objects are more efficient than using script.
Close the Scripting Editor. In the Object Toolbar select the
TextBox icon and use the mouse to create a textbox in the
lower part of the ghShift section. The size of the textbox is
not important as it will be invisible. Set the properties as
follows:
Name:
txtShiftRT
Datafield:
runtime
SummaryGroup:ghShift
SummaryType: SubTotal
Text:
RT
This object will now sum the runtime field values and reset
itself at each change of shift.
51
txtShiftDT
Datafield:
downtime
SummaryGroup:ghShift
SummaryType: SubTotal
Text:
DT
Name:
txtShiftGood
Datafield:
qty_good
SummaryGroup:ghShift
SummaryType: SubTotal
Text:
Good
Name:
txtShiftReject
Datafield:
qty_reject
SummaryGroup:ghShift
SummaryType: SubTotal
Text:
Reject
Name:
txtShiftWeightedPerf
Datafield:
weighted_perf
SummaryGroup:ghShift
SummaryType: SubTotal
Text:
Perf
52
Scripting Calculations
We now have the summations of the fields we need to
calculate our OEE KPIs on a per shift basis. Let us add the
objects to display the data and the required scripting
calculations.
53
txtShiftUtil
Alignment:
Right
OutputFormat: #,##0.0
Text:
Util
Left:
4876
Width:
850
Name:
txtShiftPerf
Alignment:
Right
OutputFormat: #,##0.0
Text:
Perf
Left:
6066
Width:
850
Name:
txtShiftQual
Alignment:
Right
OutputFormat: #,##0.0
Text:
Qual
Left:
7257
Width:
850
Name:
txtShiftOEE
Alignment:
Right
OutputFormat: #,##0.0
Font:
Bold
Text:
OEE
Left:
8447
Width:
850
54
55
rpt.txtShiftPerf.DataValue *
rpt.txtShiftQual.DataValue / 10000
End Sub
56
chtOEE
57
58
Line
Backdrop
FrameStyle = Single Line
Title
Location
Visible = On
Text
Font
Arial Bold 12
Legend
Location
Visible = On
Font
Arial Bold 10
Font
Arial Bold 10
Axis Labels
DisplayAutomatic Rotation = Off
LayoutAlignment = Left
Orientation = Vertical
FontArial Regular 10
59
MarkersShow Markers = On
Style = Filled Circle
Size = 4pt
60
to the chart once the report has finished processing the data.
This effectively requires the declaration and use of global
variables (ie: variables that can span all sections).
Unfortunately, global variables cannot be defined inside the
reports scripting environment, however Active Reports
provides a mechanism whereby the report processing engine
can access an external object for use within the reports
scripting. To this effect Factelligence provides a class
containing a number of variant arrays that can be used by
any report. These arrays are referenced by the Web Server
when running the report and appear as global variables to
the report script. The user need only know how to reference
these arrays in the script and nothing more. These arrays
should cater for any foreseeable charting or other
requirements.
Now an important point.
When the Preview tab is selected the report that is in the
Design tab runs directly against the database using the
query in the ADO object to generate the recordset for the
report. It does not access the Factelligence middleware or the
Web Server so therefore the global variable arrays are not
available to any reports previewed in the Report Designer
application.
Important If you are designing a report using the global variables
then you can only test that part of the scripting by using the
Manager application.
61
My OEE Report
Manager
File Path:
C:\Factelligence\Manager\Reports\Custom\MyOEERe
port.rpx
(or whatever path is relevant to your
report)
Data Query:
From the dropdown list of queries
select the OEE Reports query.
Filter:
In the Filter list select Start_Time,
End_Time, Entity, Shift. These are the parameters that
we wish the user to select at runtime.
Sort Fields:
Open the Sort Fields dialog by
clicking the Set button and select the sort order for the
data to suit the report ie: ent_id, shift_start DESC
Save the configuration.
62
Tip Leave Manager open. Each time you make a change to the
report in Report Designer simply save the report and then reselect
the View button in Manager to test this latest report file with
the same parameters.
We will use the last DataArray to store the Shift string, and
KPI values. The DataIndex keeps track of the number of
groups we end up with and maintains a pointer into the
array.
First we need to populate the array.
Select the ghShift section and open the Scripting Editor. Add
the following script to the end of the OnBeforePrint
subroutine:
Dim i
Dim dDate
'Store the date, shift and % OEE to an array for
graphing later
'The array and index are provided as global
variables via an external
class
'
DataArray3(10000,10,10)
use array #3
'
DataIndex(10)
use index #0
i = objReport.DataIndex(0)
dDate = FormatDateTime(rpt.txtShiftStart.Text)
objReport.DataArray3(i,0,0) = Day(dDate) &
MonthName(Month(dDate),True) &
Right(Year(dDate),2) 'ddMmmYY
objReport.DataArray3(i,1,0) =
rpt.txtShiftID.DataValue
'Shift ID
objReport.DataArray3(i,2,0) =
rpt.txtShiftUtil.DataValue 'Utilization
objReport.DataArray3(i,3,0) =
rpt.txtShiftPerf.DataValue 'Performance
objReport.DataArray3(i,4,0) =
rpt.txtShiftQual.DataValue 'Quality
objReport.DataArray3(i,5,0) =
rpt.txtShiftOEE.DataValue
'OEE
objReport.DataIndex(0) = i + 1
63
We now have the data in the array and next we need to add
script to extract this data into the chart.
Select the gfEntity section and open the Scripting Editor.
Add the following script:
Sub OnBeforePrint
Dim i, iSamples
'Process data to chart for display
'First determine how many data entries there are
(X axis)
iSamples = 0
Do While Not
IsEmpty(objReport.DataArray3(iSamples,0,0))
iSamples = iSamples + 1
Loop
'Now setup the chart
With rpt.Sections("gfEntity").Controls("chtOEE")
'Set the chart title to reflect the entity
name
.Title = rpt.txtEntName.Text & " OEE Trend
Chart"
'Process the array into the graph data grid
.RandomFill = False
'Redimension the data grid to reflect correct
number of rows
.RowCount = iSamples
.ColumnCount = 4
'Add the data
For i = 0 to iSamples - 1
.Row = i + 1
'Create string of shift and date for the
X axis label
.RowLabel = objReport.DataArray3(i,1,0)
& " " &
objReport.DataArray3(i,0,0)
.Column = 1
'Utilization
.Data = objReport.DataArray3(i,2,0)
.Column = 2
'Performance
.Data = objReport.DataArray3(i,3,0)
.Column = 3
'Quality
.Data = objReport.DataArray3(i,4,0)
.Column = 4
'OEE
.Data = objReport.DataArray3(i,5,0)
Next
End With
'Clear the data array ready for the next chart
If iSamples > 0 Then
iSamples = 0
Do While Not
IsEmpty(objReport.DataArray3(iSamples,0,0))
objReport.DataArray3(iSamples,0,0) = Empty
objReport.DataArray3(iSamples,1,0) = Empty
objReport.DataArray3(iSamples,2,0) = Empty
objReport.DataArray3(iSamples,3,0) = Empty
objReport.DataArray3(iSamples,4,0) = Empty
objReport.DataArray3(iSamples,5,0) = Empty
iSamples = iSamples + 1
64
Loop
objReport.DataIndex(0) = 0
End If
End Sub
For each entity this will add a node to a TOC tree that will
display with the report. The entry will have a root node of
Chart and then a branch named after the entity.
The syntax for adding nodes is:
65
66
67
Chapter 9
Scripting and Charts
General
VB Script is available for use within the report to provide for
more complex data manipulation than is available using the
standard properties of text field objects and section grouping.
Script is associated with each defined section within the
report and will run as each section is processed.
During processing, a report will:
68
Adding Script
When in the Report Designer and following the creation of
the basic report (grouping, text fields, etc) you can select the
View Script icon in the menu bar.
The script window that opens is very similar to a standard
VB script window. You select the Object (report section)
and then scripts within the appropriate Event within that
section.
Tip It is always good practice to reuse code that you know works
well. Use the scripting editor to cut and paste code from like
reports.
69
Virtual Fields
Used to create calculated fields in the records of the recordset
as they are read by the report.
Object : ActiveReports Document
This section contains events for the report as a whole.
Event : OnDataInitialize
This is triggered before the recordset is processed and in
this case is used to define virtual fields that are created
as the data is processed. This allows us to add extra
calculated fields to each record for later display or
grouping.
Here we see the following code:
'Create the virtual fields
rpt.Fields.Add "run_time"
rpt.Fields.Add "down_time"
rpt.Fields.Add "stop_time"
rpt.Fields.Add "total_time"
Event : OnFetchData
This is triggered as each record in the recordset is
processed and in this case is used to set the values of the
virtual fields that were defined.
Here we see the following code:
'As data is read, populate the virtual fields
'Generate runtime field
If rpt.Fields("runtime").Value Then
rpt.Fields("run_time").Value =
rpt.Fields("duration").Value
rpt.Fields("stop_time").Value = "0"
rpt.Fields("down_time").Value = "0"
Else
rpt.Fields("run_time").Value = "0"
'Generate downtime field
If rpt.Fields("downtime").Value Then
rpt.Fields("down_time").Value =
rpt.Fields("duration").Value
rpt.Fields("stop_time").Value = "0"
Else
rpt.Fields("down_time").Value = "0"
'Generate stoptime field
rpt.Fields("stop_time").Value =
rpt.Fields("duration").Value
End If
End If
'Generate totaltime field
rpt.Fields("total_time").Value =
rpt.Fields("duration").Value
70
Calculated Fields
Calculating values prior to display using textboxes.
Object : ghTotal
This script executes for the Total group header section.
This section will appear once at the start of the report.
Event : OnBeforePrint
This event fires when all data objects in the section have
been populated and section formatting is complete before
the section is finalized for printing.
The script here creates the report totals for display.
Here we see the following code:
'Calculate the % Utilization
If rpt.txtTotRT.DataValue + rpt.txtTotDT.DataValue
<> 0 Then
rpt.txtUtil.DataValue =
rpt.txtTotRT.DataValue / _
(rpt.txtTotRT.DataValue +
rpt.txtTotDT.DataValue)
Else
rpt.txtUtil.DataValue = 0
End If
71
Formatting Fields
Changing the format and / or visibility of data based on
calculated values.
Object : ghStateCode
This script executes for the StateCode group header
section. This section will appear once for each unique
state code that exists in the recordset.
Event : OnBeforePrint
The script in this event is used to format values for
display
Here we see the following code:
'Convert times in seconds to hh:mm:ss format
rpt.txtStateRuntime.Text =
FormatTime(rpt.txtStateRuntime.DataValue)
'Do not display zero values
If rpt.txtStateRuntime.DataValue = 0 Then
rpt.txtStateRuntime.Text = ""
End If
Simple Charting
The chart object used in the reports was chosen based on
ease of use. It is the First Impressions chart (by Tidestone
Technologies). The user is free to use any charting ActiveX
control in the reports.
To insert the chart control, or any other ActiveX control,
simply click on the ActiveX Control icon on the toolbar on the
left side of the designer, select the control from the list, and
then drag a box in the appropriate report section.
72
73
74
End With
75
76
77
objReport.DataArray1(intIndex,2,0) =
rpt.txtReasGrpFreq.DataValue
objReport.DataIndex(0) = intIndex + 1
In the code above we are using the first array and storing
the reason group description, duration and freq values.
The duration and freq values are summed for the group
by text field objects. The index keeps track of the number
of groups we end up with and maintains a pointer into
the array.
A similar process occurs in the ghReas section for
reason related data. There we use the second data array
and index.
78
.Data = objReport.DataArray1(i,1,0)
/ 60
'Duration in minutes
intNumGrps = intNumGrps + 1
End If
Next
'If less than 10 groups then delete unused
bargraphs
If intNumGrps < 10 Then
.DataGrid.DeleteRows intNumGrps + 1, 10 intNumGrps
End If
End With
79
Appendix A
Report Spec Sheet
80
Configuration
Report Category:OEE
Report Name:
81
,tpm_stat.shift_id
,shift.shift_desc
,tpm_stat.item_id
,item.item_desc
,item.units
,tpm_stat.qty_good
,tpm_stat.qty_reject
,tpm_stat.std_prod_rate
,tpm_stat.runtime
,tpm_stat.downtime
,tpm_stat.idletime
FROM tpm_stat tpm_stat with (nolock)
INNER JOIN ent ent with (nolock) ON tpm_stat.ent_id =
ent.ent_id
LEFT OUTER JOIN wo wo with (nolock) ON
tpm_stat.wo_id = wo.wo_id
LEFT OUTER JOIN job job with (nolock) ON
tpm_stat.wo_id = job.wo_id AND tpm_stat.oper_id =
job.oper_id AND tpm_stat.seq_no = job.seq_no
INNER JOIN shift shift with (nolock) ON
tpm_stat.shift_id = shift.shift_id
LEFT OUTER JOIN item item with (nolock) ON
tpm_stat.item_id = item.item_id
WHERE (tpm_stat.shift_start >= @Start_Time OR
@Start_Time IS NULL) AND
(tpm_stat.shift_start < @End_Time OR @End_Time IS
NULL) AND
(tpm_stat.ent_id IN @Entity) AND
(tpm_stat.item_id IN @Item) AND
(tpm_stat.wo_id IN @Work_Order) AND
(tpm_stat.shift_id IN @Shift) AND
(@Custom)
Parameters:Start_Time(Datetime)
End_Time(Datetime)
Entity(String List)
Item(String List)
WorkOrder(String List)
Industrial Application Server Users Guide
82
Shift(String List)
Custom(Custom)
83
Index
Adding Script 68
Aim 5, 10, 18, 21, 27
Assumptions 5
General 67
C
Charting and Testing Using Manager 56
Adding a Table of Contents 64
Chart Data and Formatting 56
Scripting Data to a Chart Using Global
Arrays 62
Configuration 15
Content 5
Custom Filter 21
D
Data Query 21
H
How to Use this Guide 5
I
Introduction 5
M
Manager 14
Method 10, 18, 21, 27
O
Overview 32
P
Previewing Reports with Charts 78
Filter 21
Queries 25
Query and Data Design 33
Query Parameters 26
Reference Material 6
Report Configuration 19
Report Design and Data Validation 36
Wonderware Factelligence Report Designer
84
Index
S
Scripting and Charts 67
Simple Report with Chart 68
Calculated Fields 70
Displaying the Date 74
Displaying the Filter Information and
Custom Parameters 74
Simple Charting 71
Virtual Fields 69
Sort Fields 21
Specification 32
T
Tutorial Exercise 31