CitectSCADA Process Analyst PDF
CitectSCADA Process Analyst PDF
10
November 2008
Legal Notice
DISCLAIMER
Citect Pty Ltd makes no representations or warranties with respect to this manual and, to the maximum extent
permitted by law, expressly limits its liability for breach of any warranty that may be implied to the replacement of this manual with another. Further, Citect Pty Ltd reserves the right to revise this publication at any
time without incurring an obligation to notify any person of the revision.
COPYRIGHT
Copyright 2008 Citect Pty Ltd All rights reserved.
TRADEMARKS
Citect Pty Ltd has made every effort to supply trademark information about company names, products and
services mentioned in this manual.
Citect, CitectHMI, and CitectSCADA are registered trademarks of Citect Pty. Ltd.
IBM, IBM PC and IBM PC AT are registered trademarks of International Business Machines Corporation.
MS-DOS, Windows, Windows NT, Microsoft, and Excel are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.
DigiBoard, PC/Xi and Com/Xi are trademarks of Digi International Inc.
Novell, Netware and Netware Lite are are either registered trademarks or trademarks of Novell, Inc. in the
United States and other countries..
dBASE is a trademark of dataBased Intelligence, Inc.
All other brands and products referenced in this document are acknowledged to be the trademarks or registered trademarks of their respective holders.
GENERAL NOTICE
Some product names used in this manual are used for identification purposes only and may be trademarks of
their respective companies.
Contents
Legal Notice.....................................................................................2
Contents
Contents
Contents
IObjectViewItems._NewEnum [Property][Get]........................103
IObjectViewItems.Count [Property][Get].................................103
IObjectViewItems.Item [Property][Get] ...................................104
IObjectViewPenItem Interface ............................................................105
IObjectViewPenItem.BlockColor [Property][Get] ....................105
IObjectViewPenItem.Checked [Property][Get/Set] .................106
IObjectViewPenItem.Selected [Property][Get]........................107
IPane Interface....................................................................................108
IPane.BackgroundColor [Property][Get/Set]...........................108
IPane.Collection [Property][Get] .............................................109
IPane.Delete [Method]............................................................109
IPane.FixedHeight [Property][Get/Set] ...................................110
IPane.Height [Property][Get/Set] ............................................111
IPane.Name [Property][Get/Set].............................................112
IPane.Pens [Property][Get].....................................................113
IPanes Interface..................................................................................114
IPanes._NewEnum [Property][Get] ........................................114
IPanes.Count [Property][Get] .................................................114
IPanes.Create [Method]..........................................................115
IPanes.Item [Property][Get] ....................................................116
IPanes.ItemByName [Property][Get] ......................................117
IPanes.RemoveAll [Method] ...................................................117
IPen Interface......................................................................................118
IPen.AddSample.....................................................................119
IPen.AxisBackgroundColor [Property][Get/Set]......................121
IPen.BlockRepaint [Property][Get/Set] ...................................121
IPen.Clear [Method]................................................................122
IPen.Collection [Property][Get] ...............................................123
IPen.DataPoint [Property][Get/Set].........................................123
IPen.DataServer [Property][Get/Set] ......................................124
IPen.Delete [Method]..............................................................125
IPen.GetDefaultSpan [Method]...............................................126
IPen.GetHorizontalAxisTimeSpan [Method] ...........................127
IPen.GetInformation [Method] ................................................129
IPen.GetStatistic [Method]......................................................130
IPen.GetVerticalAxisSpan [Method] .......................................131
IPen.GoToNow [Method] ........................................................132
IPen.Height [Property][Get/Set] ..............................................133
IPen.HorizontalAxisColor [Property][Get/Set].........................133
IPen.HorizontalAxisResize [Property][Get/Set] ......................134
IPen.HorizontalAxisScroll [Property][Get/Set] ........................135
IPen.HorizontalAxisWidth [Property][Get/Set] ........................136
IPen.HorizontalGridlinesColor [Property][Get/Set] .................137
IPen.HorizontalGridlinesStyle [Property][Get/Set] ..................138
IPen.HorizontalGridlinesWidth [Property][Get/Set].................139
IPen.HorizontalMinorGridlinesColor [Property][Get/Set] ........139
IPen.HorizontalMinorGridlinesStyle [Property][Get/Set] .........140
IPen.HorizontalScrollBy [Method]...........................................141
IPen.HorizontalZoom [Method]...............................................142
IPen.IsDeleted [Property][Get]................................................143
IPen.IsSelected [Property][Get] ..............................................144
6
Contents
IPen.LocalTime [Property][Get/Set]........................................144
IPen.Name [Property][Get/Set]...............................................145
IPen.PointsVisible [Property][Get/Set]....................................146
IPen.PutHorizontalAxisTimeSpan [Method] ...........................147
IPen.PutVerticalAxisSpan [Method]........................................148
IPen.RefreshData [Method] ....................................................149
IPen.RequestMode [Property][Get/Set] ..................................150
IPen.ResetToDefaultSpan [Method].......................................151
IPen.Select [Method] ..............................................................151
IPen.SetDefaultSpan [Method] ...............................................152
IPen.SetQualityCompactionPointType [Method] ....................153
IPen.SetQualityLineStyle [Method].........................................154
IPen.SetVerticalAxisLabelValue [Method] ..............................155
IPen.Stacked [Property][Get/Set] ...........................................156
IPen.TrendCursorLabelFillColor [Property][Get/Set] ..............157
IPen.TrendCursorLabelLineColor [Property][Get/Set] ............158
IPen.TrendCursorLabelTextColor [Property][Get/Set]............158
IPen.VerticalAxisAutoscale [Property][Get/Set]......................159
IPen.VerticalAxisColor [Property][Get/Set] .............................160
IPen.VerticalAxisLabelType [Property][Get/Set].....................161
IPen.VerticalAxisResize [Property][Get/Set]...........................162
IPen.VerticalAxisScroll [Property][Get/Set].............................163
IPen.VerticalAxisWidth [Property][Get/Set] ............................164
IPen.VerticalGridlinesColor [Property][Get/Set]......................165
IPen.VerticalGridlinesStyle [Property][Get/Set] ......................166
IPen.VerticalGridlinesWidth [Property][Get/Set] .....................166
IPen.VerticalMinorGridlinesColor [Property][Get/Set].............167
IPen.VerticalMinorGridlinesStyle [Property][Get/Set] .............168
IPen.VerticalScrollBy [Method] ...............................................169
IPen.VerticalZoom [Method] ...................................................170
IPen.Visible [Property][Get/Set]..............................................171
IPens Interface....................................................................................171
IPens._NewEnum [Property][Get] ..........................................172
IPens.Count [Property][Get] ...................................................172
IPens.Create [Method]............................................................173
IPens.Item [Property][Get] ......................................................174
IPens.ItemByName [Property][Get] ........................................175
IPens.Pane[Property][Get]......................................................175
IPens.RemoveAll [Method] .....................................................176
IProcessAnalyst Interface ...................................................................177
IProcessAnalyst.BlockUpdates [Method]................................178
IProcessAnalyst.UnBlockUpdates [Method] ...........................178
IProcessAnalyst.CopyToClipboard [Method]..........................179
IProcessAnalyst.CopyToFile [Method] ...................................180
IProcessAnalyst.FreezeEvent [Method] .................................181
IProcessAnalyst.LoadFromFile [Method]................................182
IProcessAnalyst.PrintAll [Method] ..........................................183
IProcessAnalyst.SaveToFile [Method]....................................183
IProcessAnalyst.ShowProperties [Method] ............................184
IProcessAnalyst.SubscribeForPropertyChange [Method] ......185
IProcessAnalyst.SynchroniseToNow [Method].......................186
7
Contents
IProcessAnalyst.UnsubscribePropertyChange [Method]........187
IProcessAnalyst.AdminPrivilegeLevel [Property] [Get]...........188
IProcessAnalyst.AutoScroll [Property][Get/Set]......................189
IProcessAnalyst.BackgroundColor [Property][Get/Set] ..........190
IProcessAnalyst.CommandSystem [Property][Get]................191
IProcessAnalyst.ContextMenu [Property][Get/Set].................192
IProcessAnalyst.Cursors [Property][Get]................................192
IProcessAnalyst.DataRequestRate [Property][Get/Set] .........193
IProcessAnalyst.DisplayRefreshRate [Property][Get/Set] ......194
IProcessAnalyst.Language [Property] [Get/Set] .....................195
IProcessAnalyst.LastSelectedPen [Property][Get] .................196
IProcessAnalyst.LockedPens [Property][Get/Set] ..................197
IProcessAnalyst.NumberofSamples[Property][Get/Set] .........198
IProcessAnalyst.ObjectView [Property][Get] ..........................199
IProcessAnalyst.Panes [Property][Get] ..................................200
IProcessAnalyst.PrimaryPath [Property][Get/Set] ..................200
IProcessAnalyst.SecondaryPath [Property][Get/Set] .............201
IProcessAnalyst.Toolbars [Property][Get] ..............................202
IProcessAnalyst.WritePrivilegeLevel [Property][Get]..............203
IProcessAnalyst.ZoomMode [Property][Get/Set]....................204
IToolbar Interface................................................................................205
IToolbar.Buttons [Property][Get].............................................205
IToolbar.Visible [Property][Get/Set] ........................................206
IToolbars Interface ..............................................................................207
IToolbars.Item [Property][Get] ................................................207
IToolbars._NewEnum [Property][Get].....................................208
IToolbars.Count [Property][Get]..............................................208
IToolbarButton Interface .....................................................................209
IToolbarButton.CommandId [Property][Get] ...........................209
IToolbarButtons Interface....................................................................210
IToolbarButtons._NewEnum [Property][Get] ..........................210
IToolbarButtons.Add [Method]................................................210
IToolbarButtons.Count [Property][Get] ...................................211
IToolbarButtons.Item [Property][Get]......................................212
IToolbarButtons.Remove [Method].........................................212
IToolbarButtons.RemoveAll [Method].....................................213
ITrendCursor Interface........................................................................214
ITrendCursor.Collection [Property][Get] .................................214
ITrendCursor.Color [Property][Get/Set] ..................................215
ITrendCursor.Delete [Method] ................................................216
ITrendCursor.GetValue [Method] ...........................................217
ITrendCursor.LabelsLocked [Property][Get/Set] ....................218
ITrendCursor.Name [Property][Get/Set] .................................218
ITrendCursor.PenLabelHeight [Property][Get/Set] .................219
ITrendCursor.PenLabelVisible [Property][Get/Set].................220
ITrendCursor.PenLabelWidth [Property][Get/Set] ..................221
ITrendCursor.PenLabelX [Property][Get/Set] .........................222
ITrendCursor.PenLabelY [Property][Get/Set] .........................223
ITrendCursor.Position [Property][Get/Set]..............................224
ITrendCursor.Visible [Property][Get/Set] ................................225
ITrendCursor.Width [Property][Get/Set] .................................226
8
Contents
Contents
Contents
Navigation Commands........................................................................294
Export Commands ..............................................................................295
Interface Commands...........................................................................295
General Commands............................................................................296
Glossary.......................................................................................297
Index.............................................................................................315
11
Contents
12
14
After inserting the Process Analyst into a page, you can resize it into position. To view the
configuration pages for the Process Analyst, double-click the Process Analyst control. For
details on configuring the design time properties for the Process Analyst, see Configuring
Process Analyst Design Time Properties.
See Also
Persistence
Tag Association
You can create an association between a property of an ActiveX object and a variable tag.
To create an association between a property of an ActiveX object and a variable tag:
Double-click the ActiveX object. The Properties dialog box appears.
Click the Tag Association tab.
Select a property from the Properties list.
Click the Wizard | Insert Tag button.
Select a tag from the list and click OK.
See Also
"ActiveX Object Properties" in CitectSCADA User Guide
"Understanding Object Types" in CitectSCADA User Guide
The Process Analyst has nine privilege levels. Privilege level zero (0) indicates there is no
security and any user can perform the function. Levels 1-8 map directly to the eight (8) privilege levels of security provided by CitectSCADA. The Process Analyst, by default, assumes the area of the page that it is situated on; this can be changed in the Graphics Builder.
So if an operator has area access for the page and has privilege level 1, and the function they
want to use is level 2, the function will be unavailable. If the operator had level 2, the function would then become available. The Process Analyst also supports the CitectSCADA Hierarchical Privilege security option.
Security can be applied to the following features:
Administration; for details, see Administration privilege.
Commands; for details, see Command privilege.
Saving Process Analyst views (write privilege); for details, see Write privilege.
Administration privilege
The Process Analyst also uses an Administration privilege level to disable engineer-oriented features at run time. For example, the ability to add new custom commands and so on
are all disabled if the Operator does not meet the required privilege level. The Administration privilege level should never be zero on a running system as this would expose properties to an Operator, which could adversely affect the performance of the client and/or
server (for example, Number Of Samples property).
The features that are disabled when an operator does not meet the Administration privilege level include:
Add Pen context menu in Property dialog box.
New/Edit/Delete command (includes changing the privilege of commands).
New/Delete Column.
Data Refresh Rate property.
Display Refresh Rate property.
Number Of Samples property.
Server Paths tab.
Server field on Connection tab.
Tag field on Connection tab.
To modify the Administration privilege level, see Configuring Chart-wide Properties.
Command privilege
The Process Analyst allows a privilege level to be assigned to each command (standard or
custom command). If an Operator does not have the required privilege level to use that
command, the associated toolbar button is disabled and cannot be executed.
See Also
Editing Existing Custom Commands
Write privilege
The Process Analyst uses a concept of "write" privilege level to control whether an operator
can save Process Analyst views to a location other than "My documents". These views can
then be loaded into the Process Analyst later by any Operator. The write privilege is set at
design time on the Server Paths property page located on the root Process Analyst node in
the Property pages dialog box. If the write privilege level is set to zero (0), any operator can
16
save to any location. If the write privilege is any other level, the Operator must have that
privilege level to be able to save an Analyst view to a location other than "My Documents".
See Also
Configuring server paths | Working with Views | Process Analyst View Synchronization
Multi-language Support
The Process Analyst supports the CitectSCADA multilanguage ability of changing the user
interface language dynamically at run time. If the language is changed in CitectSCADA,
the Process Analyst will change its language to match.
The process of configuring the Process Analyst for multiple languages is different from that
of CitectSCADA. This section describes how to localize the Process Analyst user interface
and get it to work with CitectSCADA.
LanguagePath.<dbf>=<ProcessAnalystLanguage>
where <dbf> is the name of a specific CitectSCADA language translation database, and
<ProcessAnalystLanguage> is the language code of the resources.dll file that has the equivalent translations.
For example,
[ProcessAnalyst]
LanguagePath.French=fr
LanguagePath.Chinese=zh-CN
LanguagePath.German=de
The last step is to verify each of your machines contains the necessary language fonts. Windows XP and Windows 2000 both provide facilities to add the necessary languages to your
machine via the Regional and Language Options dialog box, accessible from the Control
Panel. This step is essential if you want to use Asian languages on an English operating system. See Creating your own Process Analyst resource.dll for details on adding languages
to your system.
With the .ini file now configured, languages installed, and the Resource.dll files in place
when the SetLanguage Cicode function is called, CitectSCADA and the Process Analyst will
automatically change into the selected language.
Note: To create your own resources.dll file, you'll need to use Microsoft Developer
Studio 6 or an equivalent tool.
Setup for localization on Windows XP
You must have Administrator privileges to perform the following setup.
Open Control Panel and double-click Regional and Language Options.
Click the Languages tab.
If localizing for East Asian languages, select the Install files for East Asian languages
check box, then click OK.
Once the languages are installed, click the Languages tab in the Regional and Language
Options dialog box.
Click Details in the Text services and input languages section to display the Text Services and Input Languages dialog box.
In the Installed services section, verify that the language you want to localize with is
listed. If not, add it.
1. To add a language, click Add to display the Add Input Language dialog box.
2. Select the language you want from the Input language menu and click OK. (You
might need your original Windows Installer CD.)
3. You might need to restart your system before the language is available. If not, click
Apply and then OK to close the Text Services and Input Languages dialog box and
return to the main window under the Languages tab. If you need to restart your system, return to the Regional and Language Options dialog box after logging back into
Windows. Be sure to login as an Administrator.
Click the Advanced tab in the Regional and Language Options dialog box.
Select the language you want from the menu in the Language for Non-Unicode Programs section.
Click Apply and then OK (you may need to restart your system).
19
Verify that your language is listed in the Installed input locals list.
Click back to the General tab.
Click Set default to display the Select System Locale dialog box.
From this list, select the language that you want to localize to and click OK. This step is
essential if you are using Asian characters on an English system. (This may require a
system restart.)
Note: When you are finished localizing, you should switch this option back to its original
setting.
Changing the input language
When your system has been configured to use multiple languages, you will find a new icon
in the system tray displayed as "EN" or similar.
To change input language:
Click EN to display the input language option menu.
20
Select the language you want to use (to work correctly with Visual Studio, this should
match the language you selected in Step 8 of the Windows XP setup and Step 7 of the
Windows 2000 setup). This might display a language-specific IME editor, which allows
you to select characters to use in your translations.
Localizing the Process Analyst resource dll
Once you have set up your system to cope with multiple languages, you can begin localizing. Do the following:
Open Microsoft Visual Studio 6.
Choose File | Open.
Browse to the location of the Process Analysts Resources.dll file. By default it is located
at C:\Program Files\Common Files\Citect\.
Verify that the Files of type menu has Executable Files (.exe;.dll;*.ocx) selected.
Verify that the Open as menu has Resources selected.
Select Resources.dll and click Open.
Save the file under a new name. For example, if you are localizing for Japanese, use
Resources_ja-JP.dll. See Understanding the Process Analyst resources for naming conventions.
21
Before changing any string, you must change the language code for each dialog box and
the string table by doing the following:
1. Expand the String Table folder in the tree.
2. Right-click the String Table entry.
3. Choose Properties from the right-click (context) menu (see below).
4. From the Language menu, select the language that you are localizing for.
5. Click Close in the top-right corner of the dialog.
6. Repeat these steps for each of the dialogs inside the Dialog folder.
Once the language code has been set for all dialogs and the string table, you are ready to
begin changing the text.
Localizing dialog boxes
To localize a dialog box, do the following:
Expand the Dialogs folder in the tree.
Double-click a dialog to edit.
Select an item of text and right-click to display the properties for that item.
Enter your replacement text into the Caption field.
Click the Close button in the top-right corner of the dialog box.
You should note the following:
Controls can be repositioned or resized if necessary to fit your replacement text.
Never resize a dialog box. The size of a dialog box is set to an optimum size so that it
integrates into Graphics Builder correctly.
Dialogs 3028 and 3050 do not require translation.
Localizing the String Table
To localize the string table, do the following:
Expand the String Table folder in the tree.
Double-click the String Table entry. This will display a table showing you all the strings
of the Process Analyst.
Double-click an entry to display the Properties dialog box.
Type in the replacement text in the Caption box.
Click the Close button in the top-right corner of the dialog box.
Note: When translating strings, if a string contains "%s", "%x", "%d" and so on, do not remove or replace those symbols as they are important to the Process Analyst.
Persistence
Persistence refers to saving the state (properties, pens, and so on) of the Process Analyst to
disk. CitectSCADA and the Process Analyst provide the following methods of persistence:
Saving as part of a CitectSCADA Graphics Builder page (design time)
Save View toolbar button on the Process Analyst (run time)
SaveToFile automation method on the Process Analyst (run time)
Saving between CitectSCADA page transitions (run time)
most importantly, the security of the Process Analyst since these will become the default
settings of the Process Analyst when your page is displayed at run time.
When a page containing the Process Analyst is saved in the Graphics Builder all the properties you configured on the Process Analyst will be stored within the Graphics Builder
page.
Note: When defining new custom toolbar buttons, any icon you assign will be copied and
also stored within the Graphics Builder page. This allows your custom toolbar buttons to
work on any machine.
23
In the Persistence area, select the Persist ActiveX data between page transitions check
box, and then click Apply.
Backing up Projects
When you save views to the Local storage location, the Process Analyst will create a *.pav
file in an Analyst Views subfolder under your project directory. If your project contains Analyst views, you should verify that the Save sub-directories option is selected in Citect Explorer before backing up your project.
24
The dialog shows the unique, system-generated ID for the new command. If necessary,
enter a new ID for the command. This ID can be used in Cicode to determine which
command has been triggered or to find a specific command in the CitectSCADA system.
Enter the Tooltip text for the new command. You are limited to 64 characters. Tooltip
text appears when the mouse pointer is over the toolbar command.
Click Browse and navigate to the icon to represent the new command. The icon image
appears on the toolbar command button.
To define how the command behaves, choose a button style from the Button style menu:
1. Push Button - click the Enabled check box to set the default appearance of the button
when the button is enabled or disabled.
2. Toggle Button - click Enabled or Pressed to specify the "on" appearance.
25
See Also
Editing Existing Custom Commands
If required. click Browse to navigate to a new icon to use for the command.
If required, edit the Tooltip text. The maximum length for Tooltip text is 64 characters.
If required, choose a new button style from the Button style menu.
See Also
Adding New Commands
26
Enter a Name ID for the column. The value is used to reference the column in code.
Specify a Width.
Enter the Text to use for the column in the Object View display.
To delete an Object View column:
Select the column you want to delete and click Delete.
To edit an Object View column:
Select the column you want to edit, and then click Edit. The Edit Column dialog box appears.
Modify the information as required, and then click OK.
See Also
Configuring the Object View
Mode
Privilege
27
Load
Normal client
Both**
Load
Web client
Both**
Save
Normal client
Privileged
Save
Normal client
Unprivileged
Save
Normal client
Both**
* Refers to the Look in menu on SaveView and Load View dialog boxes.
** Means both privileged and un-privileged.
When setting up file-servers to store Process Analyst views, verify that each client machine
has privileges enabling it the desired read/write access to those locations.
See Also
Configuring server paths | Working with Views | Write privilege
28
tem()
Custom Commands
Custom commands are defined in the Process Analyst, but must be implemented in Cicode.
You define commands by using the ICommandSystem- > Create method, or by using the
New button on the Toolbar property page.
To implement the command, you must respond to the event CommandExecuted (and optionally UpdateCommand). Both of these events notify you of the ID of the command which needs
to be handled.
CommandExecuted
When an operator presses the toolbar button representing your command, it will trigger
this event. This is your opportunity to execute the desired functionality of the command.
This will not be triggered if the logged-in user fails to meet the required privilege level. Be
aware that this is an asynchronous operation.
UpdateCommand
When the Process Analyst requires the Enable state or pressed states of its toolbar buttons
to be refreshed, this event will be triggered. This will not be triggered if the logged-in user
fails to meet the required privilege level. Note that this is asynchronous operation.
The state of all commands (custom and pre-defined) will be saved to disk whenever the
Process Analyst configuration is saved.
29
See Also
Persistence
Icons
For custom commands, the user can specify their own custom icons by pointing to a file on
their hard drive. As these files may be deleted or moved over time, the Process Analyst
makes an instant copy of the icon into memory when the command is added. This removes
any dependence on the original icon file. When the Process Analyst configuration is saved,
the icon data is also saved.
30
Execution Results
Each property and method listed in the automation model will return one of the following
results upon execution. The exact meaning is described in the Execution Result section for
each property or method.
Execution Result
Cicode
VBA
C++
InvalidArgument
274
E_INVALIARG
GeneralFailure
356
2147500037
E_FAIL
PathNotFound
356
76
STG_E_PATHNOTFOUN
D
Success
S_OK
Errors are captured differently in Cicode and VBA. The following code examples show
how to trap and handle errors in VBA and Cicode.
[VBA]
Sub VBATest(myObject As Object)
On Error Goto errHandler
myObject.<function>
Exit Sub
errHandler:
Print Err.Number, Err.Description
Resume Next
End Sub
31
[Cicode]
FUNCTION Test1(OBJECT hObject)
ErrSet(1); // Enable User error checking (disabled HW alarm)
IF ObjectIsValid(hObject) THEN
_ObjectCallMethod(hObject, "<function>");
error = IsError();
errorMessage = IntToStr(error)
IF (error <> 0) THEN
Message("An error occured", errorMessage, 0);
END
END
ErrSet(0); // Enable hardware alarm reporting of errors
END
Enumerations
AlarmType [Enumeration]
AxisLabelType [Enumeration]
ErrorNotifyCode [Enumeration]
FileLocation [Enumeration]
HatchStyle [Enumeration]
LineStyle [Enumeration]
LineType [Enumeration]
PenNameMode [Enumeration]
PenType [Enumeration]
PointType [Enumeration]
QualityCompactionType [Enumeration]
QualityType [Enumeration]
RequestMode [Enumeration]
ToolbarButtonType [Enumeration]
AlarmType [Enumeration]
Specifies the visual representation for an alarm pen.
Defined As
[VBA] Integer
[Cicode] INT
[C++] AlarmType
Members
32
Member Name
Description
Value
AlarmType_Digital
AlarmType_Analog
AlarmType_Advanced
AlarmType_TimeStamped
AlarmType_MultiDigital
AlarmType_ArgyleAnalog
AlarmType_TimeStampedDigita
l
AlarmType_TimeStampedAnalo
g
See Also
IAlarmPen.AlarmType [Property][Get/Set]
AxisLabelType [Enumeration]
Specifies how the labels are drawn on the vertical axis.
Defined As
[VBA] Integer
[Cicode] INT
[C++] AxisLabelType
Members
Member Name
Description
Value
AxisLabelType_NONE
AxisLabelType_DOUBLE
AxisLabelType_INTEGER
AxisLabelType_PERCENT
Displays as "%"
AxisLabelType_AMPS
Displays as "A"
AxisLabelType_DEGREES
Displays as "deg"
AxisLabelType_FEET
Displays as "ft"
AxisLabelType_FEETPERMIN
Displays as "ft/min"
AxisLabelType_FEETPERSEC
Displays as "ft/s"
AxisLabelType_GALLONS
Displays as "gal"
AxisLabelType_GALLONSPERHR
Displays as "gal/h"
10
AxisLabelType_GALLONSPERMIN
Displays as "gal/min"
11
AxisLabelType_GALLONSPERSEC
Displays as "gal/s"
12
AxisLabelType_HERTZ
Displays as "Hz"
13
AxisLabelType_KILOGRAMS
Displays as "kg"
14
AxisLabelType_KILOGRAMSPERH
R
Displays as "kg/h"
15
AxisLabelType_KILOGRAMSPERM
IN
Displays as "kg/min"
16
AxisLabelType_KILOGRAMSPERS
EC
Displays as "kg/s"
17
AxisLabelType_KILOMETRESPER
HR
Displays as "kg/h"
18
AxisLabelType_KILOPASCALS
Displays as "kPa"
19
AxisLabelType_KILOWATTS
Displays as "kW"
20
AxisLabelType_LITRES
Displays as "l"
21
AxisLabelType_LITRESPERHR
Displays as "l/h"
22
33
AxisLabelType_LITRESPERMIN
Displays as "l/min"
23
AxisLabelType_LITRESPERSEC
Displays as "l/s"
24
AxisLabelType_METRES
Displays as "m"
25
AxisLabelType_METRESPERMIN
Displays as "m/min"
26
AxisLabelType_METRESPERSEC
Displays as "m/s"
27
AxisLabelType_REVS
Displays as "Rev"
28
AxisLabelType_REVSPERHR
Displays as "Rev/h"
29
AxisLabelType_REVSPERMIN
Displays as "RPM"
30
AxisLabelType_TONNES
Displays as "t"
31
AxisLabelType_TONNESPERHR
Displays as "t/h"
32
AxisLabelType_VOLTS
Displays as "V"
33
AxisLabelType_WATTS
Displays as "W"
34
AxisLabelType_LOOKUP
35
ErrorNotifyCode [Enumeration]
Defines known errors that can occur during operation.
Defined As
[VBA] Integer
[Cicode] INT
[C++] ErrorNotifyCode
Members
34
Member Name
Description
Value
ErrorNotifyCode_None
No error.
ErrorNotifyCode_InvalidTag
ErrorNotifyCode_CtapiConnecti
onOffline
ErrorNotifyCode_Unknown
ErrorNotifyCode_NoServer
ErrorNotifyCode_InvalidArgume
nt
ErrorNotifyCode_OutOfMemory
ErrorNotifyCode_BadVersion
ErrorNotifyCode_NoPrivilege
See Also
Error [Event]
FileLocation [Enumeration]
Specifies the location to save and write Process Analyst views to.
Defined As
[VBA] Integer
[Cicode] INT
[C++] FileLocation
Members
Member Name
Description
Value
FileLocation_Local
FileLocation_Server
FileLocation_User
See Also
IProcessAnalyst.LoadFromFile [Method], IProcessAnalyst.SaveToFile [Method]
HatchStyle [Enumeration]
Defines the filling style for Alarm pens.
Defined As
[VBA] Integer
[Cicode] INT
[C++] HatchStyle
Members
Member Name
Description
Value
HatchStyle_None
No pattern
HatchStyle_Horizontal
HatchStyle_Vertical
HatchStyle_ForwardDiagonal
HatchStyle_BackwardDiagonal
HatchStyle_Cross
Cross pattern
HatchStyle_DiagonalCross
See Also
IAlarmPen.SetHatchStyle [Method], IAlarmPen.GetHatchStyle [Method]
LineStyle [Enumeration]
Defines the drawing style for a line.
Defined As
35
[VBA] Integer
[Cicode] INT
[C++] LineStyle
Values
Member Name
Description
Value
LineStyle_SOLID
LineStyle_DASH
LineStyle_DOT
LineStyle_DASHDOT
LineStyle_DASHDOTDOT
LineStyle_NONE
Draws no line
LineType [Enumeration]
Defines the visual representation of the lines between samples of an analog pen.
Defined As
[VBA] Integer
[Cicode] INT
[C++] LineType
Members
Member Name
Description
Value
LineType_STRA
IGHT
LineType_STEP
PED
The line drawn will maintain the value of the previous sample. When the samples differ, a vertical
line will be drawn to the new sample value.
See Also
IAnalogPen.LineInterpolation [Property][Get/Set]
PenNameMode [Enumeration]
Defines how the pen name will be generated. It is used in conjunction with the IPens.Create
method.
Defined As
[VBA] Integer
[Cicode] INT
[C++] PenNameMode
Members
36
Member Name
Description
Value
PenNameMode_Com
ment
The comment field obtained from the CitectSCADA trend/alarm tag will be used as
the pen name.
PenNameMode_Tag
PenNameMode_Custo
m
See Also
IPens.Create [Method], IPen.DataPoint [Property][Get/Set], IPen.Name [Property][Get/
Set]
PenType [Enumeration]
Defines the plotting style of a Process Analyst pen.
Defined As
[VBA] Integer
[Cicode] INT
[C++] PenType
Members
Member Name
Description
Value
PenType_ANALOG
4097
PenType_DIGITAL
4098
PenType_ALARM
4099
See Also
IPens.Create [Method]
PointType [Enumeration]
Defines the visual cue applied to samples of a pen.
Defined As
[VBA] Integer
[Cicode] INT
[C++] PointType
Members
Member Name
Description
Value
PointType_NONE
No marker
PointType_RECT
A rectangular marker
PointType_CIRCLE
A circular marker
PointType_PLUS
A plus marker
PointType_CROSS
A cross marker
PointType_TRIANGLE
A triangular marker
PointType_ELLIPSE
A elliptical marker
See Also
IPen.SetQualityCompactionPointType [Method]
37
QualityCompactionType [Enumeration]
Specifies the different types of presentation used for a sample.
Defined As
[VBA] Integer
[Cicode] INT
[C++] QualityCompactionType
Members
Member Name
Description
Value
QualityCompactionType_Single
QualityCompactionType_Multiple
QualityCompactionType_Interpolate
d
See Also
IPen.SetQualityCompactionPointType [Method]
QualityType [Enumeration]
Defines the known quality states of data.
Defined As
[VBA] Integer
[Cicode] INT
[C++] QualityType
Members
Member Name
Description
Value
QualityType_Good
QualityType_NA
QualityType_Gated
Remarks
An alarm pens "disabled" state is treated as QualityType_Gated.
See Also
IPen.SetQualityLineStyle [Method]
RequestMode [Enumeration]
Defines the data acquisition method for a pen.
Defined As
[VBA] Integer
[Cicode] INT
[C++] RequestMode
38
Members
Member Name
Description
Value
RequestMode_Aver
age
RequestMode_Mini
mum
The value will be the minimum value out of all the individual samples within the multiple sample. The timestamp
will be the average of all the individual samples.
RequestMode_Maxi
mum
The value will be the maximum value out of all the individual samples within the multiple sample. The timestamp
will be the average of all the individual samples.
RequestMode_Newe
st
The value will the latest arrived value out of all the individual samples within the multiple sample. The timestamp
will be the average of all the individual samples.
See Also
IPen.RequestMode [Property][Get/Set]
ToolbarButtonType [Enumeration]
Defines the type of a toolbar button.
Defined As
[VBA] Integer
[Cicode] INT
[C++] ToolbarButtonType
Members
Member Name
Description
Value
ToolbarButtonType_Push
ToolbarButtonType_Toggle
ToolbarButtonType_Separator
See Also
ICommandSystem.Create [Method], ICommand.ButtonType [Property][Get]
Events
CommandExecuted [Event]
CursorMoved [Event]
Error [Event]
HorizontalAxisChanged [Event]
MouseClick [Event]
MouseDoubleClick [Event]
OVColumnAdded [Event]
OVColumnRemoved [Event]
OVItemAdded [Event]
OVItemChecked [Event]
OVItemRemoved[Event]
OVItemSelected [Event]
PenCreated [Event]
39
PenDeleted [Event]
PenRenamed [Event]
PenSelectionChanged [Event]
PropertyChanged [Event]
UpdateCommand [Event]
VerticalAxisChanged [Event]
CommandExecuted [Event]
This event is raised when a command is executed.
Defined As
[VBA] CommandExecuted(commandId As String)
[Cicode] CommandExecuted (OBJECT processAnalyst, STRING commandId)
[C++] CommandExecuted (BSTR commandId)
Parameters
commandId
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Remarks
Each toolbar button is associated with a command so when they are pressed this event will
be raised with the unique identifier of that command. You can then use that identifier to
determine which command was executed.
By using this event you can implement your own custom commands.
See Also
UpdateCommand [Event], ICommandSystem.Execute [Method]
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_CommandExecuted(commandId As String)
End Sub
[Cicode]
FUNCTION myPage_AN35_CommandExecuted(OBJECT processAnalyst, STRING commandId)
END
CursorMoved [Event]
This event is raised whenever the cursor position changes.
Defined As
[VBA] CursorMoved(cursor As Object, position As Integer)
40
Parameters
cursor
[in]
position
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only).
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_CursorMoved(pen As Object, position As Integer)
End Sub
[Cicode]
FUNCTION myPage_AN35_CursorMoved(OBJECT processAnalyst, OBJECT cursor, INT position)
END
Error [Event]
This event is raised whenever an error is generated from the Process Analyst.
Defined As
[VBA] Error(errorCode As Integer, errorMessage As String)
[Cicode] Error(OBJECT processAnalyst, INT errorCode, STRING errorMessage)
[C++] Error(ErrorNotifyCode errorCode, BSTR errorMessage)
Parameters
errorCode
[in]
errorMessage
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
See Also
ErrorNotifyCode [Enumeration]
41
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_Error(errorCode As Integer, errorMessage As String)
End Sub
[Cicode]
FUNCTION myPage_AN35_Error(OBJECT processAnalyst, INT errorCode, STRING errorMessage)
END
HorizontalAxisChanged [Event]
This event is raised when the date/time axis position or scale of a pen is changed.
Defined As
[VBA] HorizontalAxisChanged(pen As Object)
[Cicode] HorizontalAxisChanged(OBJECT processAnalyst, OBJECT pen)
[C++] HorizontalAxisChanged(IPen* pen)
Parameters
pen
[in]
Refers to the pen that has changed. This will be invalid if pens are locked.
processAnalyst
[in]
Indicates the Process Analyst object that raised the event (Cicode only).
Remarks
When the LockedPens property is True, this event is fired only once with the pen parameter
marked as invalid.
See Also
IProcessAnalyst.LockedPens [Property][Get/Set], VerticalAxisChanged [Event]
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as AN35_E.
[VBA]
Sub AN35_E_HorizontalAxisChanged (pen As Object)
End Sub
42
[Cicode]
FUNCTION AN35_E_HorizontalAxisChanged (OBJECT processAnalyst, OBJECT pen)
END
MouseClick [Event]
This event is raised whenever a single mouse click occurs on the graphical chart area of the
Process Analyst.
Defined As
[VBA] MouseClick(pen As Object, button As Integer)
[Cicode] MouseClick(OBJECT processAnalyst, OBJECT pen, INT button)
[C++] MouseClick(IPen* pen, int button)
Parameters
pen
Indicates which pen the click occurred on. This object will be invalid if no pen was
clicked.
[in]
button
[in]
processAnalyst
[in]
Indicates the Process Analyst object that raised the event (Cicode only).
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_MouseClick(pen As Object, button As Integer)
End Sub
[Cicode]
FUNCTION myPage_AN35_MouseClick(OBJECT processAnalyst, OBJECT pen, INT button)
END
MouseDoubleClick [Event]
This event is raised whenever a mouse double-click occurs on the graphical chart area of
the Process Analyst.
Defined As
[VBA] MouseDoubleClick(pen As Object, button As Integer)
43
Parameters
pen
[in] Indicates which pen the double-click occurred on. This object will be invalid if no pen
was double-clicked.
button
[in]
processAnalyst
[in]
Indicates the Process Analyst object that raised the event (Cicode only).
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_MouseDoubleClick(pen As Object, button As Integer)
End Sub
[Cicode]
FUNCTION myPage_AN35_MouseDoubleClick(OBJECT processAnalyst, OBJECT pen, INT button)
END
OVColumnAdded [Event]
This event is raised whenever a column is added to the ObjectView.
Defined As
[VBA] OVColumnAdded(name As String)
[Cicode] OVColumnAdded(OBJECT processAnalyst, STRING name)
[C++] OVColumnAdded(BSTR name)
Parameters
item
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
44
[VBA]
Sub myPage_AN35_OVColumnAdded(name As String)
End Sub
[Cicode]
FUNCTION myPage_AN35_OVColumnAdded(OBJECT processAnalyst, STRING name)
END
OVColumnRemoved [Event]
This event is raised whenever a column is removed to the ObjectView.
Defined As
[VBA] OVColumnRemoved(name As String)
[Cicode] OVColumnRemoved(OBJECT processAnalyst, STRING name)
[C++] OVColumnRemoved(BSTR name)
Parameters
item
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_OVColumnRemoved(name As String)
End Sub
[Cicode]
FUNCTION myPage_AN35_OVColumnRemoved(OBJECT processAnalyst, STRING name)
END
OVItemAdded [Event]
This event is raised whenever an item is added to the ObjectView.
Defined As
[VBA] OVItemAdded(item As Object)
45
Parameters
item
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_OVItemAdded(item As Object)
End Sub
[Cicode]
FUNCTION myPage_AN35_OVItemAdded(OBJECT processAnalyst, OBJECT item)
END
OVItemChecked [Event]
This event is raised whenever an item is checked in the ObjectView.
Defined As
[VBA] OVItemChecked(item As Object)
[Cicode] OVItemChecked(OBJECT processAnalyst, OBJECT item)
[C++] OVItemChecked(IObjectViewItem* item)
Parameters
item
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_OVItemChecked(item As Object)
End Sub
46
[Cicode]
FUNCTION myPage_AN35_OVItemChecked(OBJECT processAnalyst, OBJECT item)
END
OVItemRemoved [Event]
This event is raised whenever an item is added to the ObjectView.
Defined As
[VBA] OVItemRemoved(item As Object)
[Cicode] OVItemRemoved(OBJECT processAnalyst, OBJECT item)
[C++] OVItemRemoved(IObjectViewItem* item)
Parameters
item
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_OVItemRemoved(item As Object)
End Sub
[Cicode]
FUNCTION myPage_AN35_OVItemRemoved(OBJECT processAnalyst, OBJECT item)
END
OVItemSelected [Event]
This event is raised whenever an item is selected in the ObjectView.
Defined As
[VBA] OVItemSelected(item As Object)
[Cicode] OVItemSelected(OBJECT processAnalyst, OBJECT item)
[C++] OVItemSelected(IObjectViewItem* item)
Parameters
47
item
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_OVItemSelected(item As Object)
End Sub
[Cicode]
FUNCTION myPage_AN35_OVItemSelected(OBJECT processAnalyst, OBJECT item)
END
PenCreated [Event]
This event is raised whenever a pen is either created via the automation model, or added
through the Add Pen dialog at run time.
Defined As
[VBA] PenCreated(pen As Object)
[Cicode] PenCreated(OBJECT processAnalyst, OBJECT pen)
[C++] PenCreated(IPen* pen)
Parameters
pen
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only).
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_PenCreated(pen As Object)
End Sub
48
[Cicode]
FUNCTION myPage_AN35_PenCreated(OBJECT processAnalyst, OBJECT pen)
END
PenDeleted [Event]
This event is raised whenever a pen is deleted either by automation or via the interface.
Defined As
[VBA] PenDeleted(penName As String)
[Cicode] PenDeleted(OBJECT processAnalyst, STRING penName)
[C++] PenDeleted(BSTR penName)
Parameters
penName
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35
[VBA]
Sub myPage_AN35_PenDeleted(penName As String)
End Sub
[Cicode]
FUNCTION myPage_AN35_PenDeleted(OBJECT processAnalyst, STRING penName)
END
PenRenamed [Event]
This event is raised whenever a pen is renamed via automation or through the user interface.
Defined As
[VBA] PenRenamed(pen As Object)
[Cicode] PenRenamed(OBJECT processAnalyst, OBJECT pen)
[C++] PenRenamed(IPen* pen)
Parameters
pen
49
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only).
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_PenRenamed(pen As Object)
End Sub
[Cicode]
FUNCTION myPage_AN35_PenRenamed(OBJECT processAnalyst, OBJECT pen)
END
PenSelectionChanged [Event]
This event is raised whenever the selection changes in the Process Analyst.
Defined As
[VBA] PenSelectionChanged (pen As Object)
[Cicode] PenSelectionChanged (OBJECT processAnalyst, OBJECT pen)
[C++] PenSelectionChanged (IPen* pen)
Parameters
pen
Refers to the pen that now has primary selection. This maybe invalid if the last pen
was deleted from the view.
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Remarks
Selection can change via user interaction (such as clicking on pens, deleting/adding pens)
and automation.
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_PenSelectionChanged(pen As Object)
End Sub
50
[Cicode]
FUNCTION myPage_AN35_PenSelectionChanged(OBJECT processAnalyst, OBJECT pen)
END
PropertyChanged [Event]
This event is raised whenever a property that has been subscribed to has changed.
Defined As
[VBA] PropertyChanged(interfaceName As String, propertyName As String)
[Cicode] PropertyChanged (OBJECT processAnalyst, STRING interfaceName, STRING
propertyName)
[C++] PropertyChanged (BSTR interfaceName, BSTR propertyName)
Parameters
interfaceName
[in]
Indicates which interface the property which has changed belongs to.
propertyName
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Remarks
For this event to be raised you must subscribe to one or more properties.
See Also
IProcessAnalyst.SubscribeForPropertyChange [Method], IProcessAnalyst.UnsubscribePropertyChange [Method]
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_PropertyChanged(interfaceName As String, propertyName As String)
End Sub
[Cicode]
FUNCTION myPage_AN35_PropertyChanged(OBJECT processAnalyst, STRING interfaceName,
STRING propertyName)
END
51
UpdateCommand [Event]
This event is raised whenever the Process Analyst needs to refresh the state of its toolbars.
Defined As
[VBA] UpdateCommand(commandId As String)
[Cicode] UpdateCommand(OBJECT processAnalyst, STRING commandId)
[C++] UpdateCommand(BSTR commandId)
Parameters
commandId
[in]
processAnalyst
[in]
Indicates the Process Analyst object which raised the event. (Cicode only)
Remarks
This event is only raised for custom commands. You should use this event as an opportunity to update the enable and/or the pressed state of the toolbar button associated with the
command.
This event will be raised frequently so you should limit the amount of code executed in response to this event.
An Update will be triggered in at least the following scenarios:
Selection changes
Command execution
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_UpdateCommand(commandId As Integer)
End Sub
[Cicode]
FUNCTION myPage_AN35_UpdateCommand(OBJECT processAnalyst, INT commandId)
END
VerticalAxisChanged [Event]
This event is raised whenever the vertical axis position or scale of a pen is changed.
Defined As
[VBA] VerticalAxisChanged(pen As Object)
[Cicode] VerticalAxisChanged(OBJECT processAnalyst, OBJECT pen)
[C++] VerticalAxisChanged(IPen* pen)
52
Parameters
pen
[in]
processAnalyst
[in] Indicates the Process Analyst object which raised the event. (Cicode only)
See Also
HorizontalAxisChanged [Event]
Calling Syntax
Assumes you have a Process Analyst on a page with an event class defined as
myPage_AN35.
[VBA]
Sub myPage_AN35_VerticalAxisChanged (pen As Object)
End Sub
[Cicode]
FUNCTION myPage_AN35_VerticalAxisChanged (OBJECT processAnalyst, OBJECT pen)
END
Interfaces
IAlarmPen Interface
IAnalogPen Interface
ICommand Interface
ICommandSystem Interface
ICursors Interface
IDigitalPen Interface
IObjectView Interface
IObjectViewColumn Interface
IObjectViewColumns Interface
IObjectViewItem Interface
IObjectViewItems Interface
IObjectViewPenItem Interface
IPane Interface
IPanes Interface
IPen Interface
IPens Interface
IProcessAnalyst Interface
IToolbar Interface
IToolbars Interface
IToolbarButton Interface
IToolbarButtons Interface
ITrendCursor Interface
53
IAlarmPen Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IAlarmPen
Methods (6)
IAlarmPen.GetFillColor [Method]
IAlarmPen.SetFillColor [Method]
IAlarmPen.GetHatchColor [Method]
IAlarmPen.SetHatchColor [Method]
IAlarmPen.GetHatchStyle [Method]
IAlarmPen.SetHatchStyle [Method]
Properties (3)
IAlarmPen.LineColor [Property][Get/Set]
IAlarmPen.LineWidth [Property][Get/Set]
IAlarmPen.AlarmType [Property][Get/Set]
IAlarmPen.AlarmType [Property][Get/Set]
Gets or Sets the display type of this alarm pen.
Defined As
[VBA] Long AlarmType
[Cicode] INT AlarmType
[C++] AlarmType AlarmType
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
This AlarmType also dictates the number of alarm states, and their descriptions.
See Also
IAlarmPen.AlarmType [Property][Get/Set]
Calling Syntax
This example assumes there is a valid alarm pen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim alarmType As Long
Getting Property value
alarmType = alarmPen.AlarmType
Setting Property value to Analog
alarmPen.AlarmType = 1
End Sub
54
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
// Getting property value
INT eAlarmType = _ObjectGetProperty(hAlarmPen, "AlarmType");
// Setting property to Analog
_ObjectSetProperty(hAlarmPen, "AlarmType", 1);
END
IAlarmPen.GetFillColor [Method]
Gets the color used to fill the pen for the specified state.
Defined As
[VBA] GetFillColor(state as Long) as Long
[Cicode] INT GetFillColor(INT state)
[C++] HRESULT GetFillColor(int state, OLE_COLOR* color)
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Parameters
state
[in]
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
Calling Syntax
This example assumes there is a valid AlarmPen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim fillColor As Long
fillColor = alarmPen.GetFillColor(0)
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
INT nFillColor = _ObjectCallMethod(hAlarmPen, "GetFillColor" , 0);
END
55
IAlarmPen.GetHatchColor [Method]
Gets the color used to draw the outline and hatching for the specified state.
Defined As
[VBA] GetHatchColor(state as Long) as Long
[Cicode] INT GetHatchColor(INT state)
[C++] HRESULT GetHatchColor(int state, OLE_COLOR* color)
Execution Result
If the function succeeds, the return value will be Success. If the state is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Parameters
state
[in]
Remarks
The color value can be calculated using the following formula:
color = (65536 * Blue) + (256 * Green) + (Red)
where red, green, and blue are 0-255.
Calling Syntax
This example assumes there is a valid AlarmPen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim hatchColor As Long
hatchColor = alarmPen.GetHatchColor(0)
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
INT nHatchColor = _ObjectCallMethod(hAlarmPen, "GetHatchColor" , 0);
END
IAlarmPen.GetHatchStyle [Method]
Gets the hatch style used when drawing the boxes for the specified state.
56
Defined As
[VBA] GetHatchStyle(state as Long) as Long
[Cicode] INT GetHatchStyle(INT state)
[C++] HRESULT GetHatchStyle(int state, HatchStyle* color)
Parameters
state
[in]
The state for which you would like to retrieve a hatch style (0 to 8).
Execution Result
If the function succeeds the return value will be Success. If the state is out of range then the
return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
See Also
IAlarmPen.GetHatchStyle [Method]
Calling Syntax
This example assumes there is a valid AlarmPen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim hatchStyle As Long
hatchStyle = alarmPen.GetHatchStyle(0)
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
INT nHatchStyle = _ObjectCallMethod(hAlarmPen, "GetHatchStyle", 0);
END
IAlarmPen.LineColor [Property][Get/Set]
Gets or Sets the color that will be used to draw the pen line.
Defined As
[VBA] Long LineColor
[Cicode] INT LineColor
[C++] OLE_COLOR LineColor
Execution Result
57
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted the return value will
be GeneralFailure.
Remarks
The color value can be calculated using the following formula:
color = (65536 * Blue) + (256 * Green) + (Red)
where red, green, and blue are 0-255.
Calling Syntax
This example assumes there is a valid alarm pen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim lineColor As Long
Getting Property value
lineColor = alarmPen.LineColor
Setting Property to red
alarmPen.LineColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
// Getting property value
INT nLineColor = _ObjectGetProperty(hAlarmPen, "LineColor");
// Setting property to red
_ObjectSetProperty(hAlarmPen, "LineColor", 255);
END
IAlarmPen.LineWidth [Property][Get/Set]
Gets or sets the width in pixels of the pen line when it is drawn.
Defined As
[VBA] Long LineWidth
[Cicode] INT LineWidth
[C++] int LineWidth
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted the return value will
be GeneralFailure.
Limits
Minimum = 0
Maximum = 8
58
Calling Syntax
This example assumes there is a valid alarm pen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim lineWidth As Long
Getting Property value
lineWidth = alarmPen.LineWidth
Setting Property value
alarmPen.LineWidth = 5
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
// Getting property value
INT nLineWidth = _ObjectGetProperty(hAlarmPen, "LineWidth");
// Setting property value
_ObjectSetProperty(hAlarmPen, "LineWidth", 5);
END
IAlarmPen.SetFillColor [Method]
Sets the color used to fill the pen for the specified state.
Defined As
[VBA] SetFillColor(state as Long, color as Long)
[Cicode] INT SetFillColor(INT state, INT color)
[C++] HRESULT SetFillColor(int state, OLE_COLOR color)
Parameters
state
[in]
The state for which you would like to assign a fill color (0 to 8).
color
[in]
The fill color that you would like used to for this specific state.
Execution Result
If the function succeeds, the return value will be Success. If the state is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Remarks
The color value can be calculated using the following formula:
color = (65536 * Blue) + (256 * Green) + (Red)
where red, green, and blue are 0-255.
59
Calling Syntax
This example assumes there is a valid AlarmPen object to be passed into the example methods.
[VBA]
Sub Example(alarmPen As Object)
Dim fillColor As Long
Setting FillColor to Red
alarmPen.SetFillColor(0, 255)
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
// Setting FillColor to Red
_ObjectCallMethod(hAlarmPen, "SetFillColor" ,0, 255);
END
IAlarmPen.SetHatchColor [Method]
Sets the color used to draw the outline and hatching for the specified state.
Defined As
[VBA] SetHatchColor(state as Long, color as Long)
[Cicode] INT SetHatchColor (INT state, INT color)
[C++] HRESULT SetHatchColor (int state, OLE_COLOR color)
Parameters
state
[in]
The state for which you would like to assign a hatch color (0 to 8).
color
[in]
The color that you would like to be used for a specified states hatch.
Execution Result
If the function succeeds the return value will be Success. If the state is out of range then the
return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.
Remarks
The color value can be calculated using the following formula:
color = (65536 * Blue) + (256 * Green) + (Red)
where red, green, and blue are 0-255.
Calling Syntax
This example assumes there is a valid AlarmPen object to be passed into the example methods.
60
[VBA]
Sub Example(alarmPen As Object)
Dim hatchColor As Long
Setting HatchColor to Red
alarmPen.SetHatchColor(0, 255)
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
// Setting HatchColor to Red
_ObjectCallMethod(hAlarmPen, "SetHatchColor",0, 255);
END
IAlarmPen.SetHatchStyle [Method]
Sets the hatch style used for drawing the specified state.
Defined As
[VBA] SetHatchStyle(state as Long, HatchStyle as Long)
[Cicode] INT SetHatchStyle (INT state, INT hatchStyle)
[C++] HRESULT SetHatchStyle (int state, HatchStyle hatchStyle)
Parameters
state
[in]
The state for which you would like to assign a hatch style.
hatchStyle
[in]
The hatch style that will be used for the specified state.
Execution Result
If the function succeeds the return value will be Success. If the state is out of range then the
return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
See Also
IAlarmPen.GetHatchStyle [Method]
Calling Syntax
This example assumes there is a valid AlarmPen object to be passed into the example methods.
61
[VBA]
Sub Example(alarmPen As Object)
Setting HatchStyle
alarmPen.SetHatchStyle(0, 1)
End Sub
[Cicode]
FUNCTION Example(OBJECT hAlarmPen)
// Setting HatchStyle
_ObjectCallMethod(hAlarmPen, "SetHatchStyle" ,0, 1);
END
IAnalogPen Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IAnalogPen
Methods (0)
Properties (3)
See Also
IAnalogPen.LineColor [Property][Get/Set]
IAnalogPen.LineInterpolation [Property][Get/Set]
IAnalogPen.LineWidth [Property][Get/Set]
IAnalogPen.LineColor [Property][Get/Set]
Gets or Sets the color that will be used to draw the pen line.
Defined As
[VBA] Long LineColor
[Cicode] INT LineColor
[C++] OLE_COLOR LineColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
The color value can be calculated using the following formula:
color = (65536 * blue) + (256 * green) + (red)
where red, green, and blue are 0-255.
62
Calling Syntax
This example assumes there is a valid AnalogPen object to be passed into the example
methods.
[VBA]
Sub Example(analogPen As Object)
Dim lineColor As Long
Getting Property value
lineColor = analogPen.LineColor
Setting Property to red
analogPen.LineColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hAnalogPen)
// Getting property value
INT nLineColor = _ObjectGetProperty(hAnalogPen, "LineColor");
// Setting property to red
_ObjectSetProperty(hAnalogPen, "LineColor", 255);
END
IAnalogPen.LineInterpolation [Property][Get/Set]
Gets or sets the drawing style used for drawing the connecting lines between points for this
analog pen.
Defined As
[VBA] Long LineInterpolation
[Cicode] INT LineInterpolation
[C++] LineType LineInterpolation
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted the return value will
be GeneralFailure.
Remarks
The LineInterpolation mode dictates how the two points of a line are joined when drawn.
If Stepped, there will be two lines joining each point, one horizontal and one vertical. If
Straight, only one line is used to directly connect the two points.
See Also
LineType [Enumeration]
Calling Syntax
This example assumes there is a valid Analog Pen object to be passed into the example
methods.
63
[VBA]
Sub Example(analogPen As Object)
Dim lineInterpolation As Long
Getting Property value
lineInterpolation = analogPen.LineInterpolation
Setting Property value
analogPen.LineInterpolation = 1
End Sub
[Cicode]
FUNCTION Example(OBJECT hAnalogPen)
// Getting property value
INT nInterpolation = _ObjectGetProperty(hAnalogPen, "LineInterpolation");
// Setting property value
_ObjectSetProperty(hAnalogPen, "LineInterpolation", 1);
END
IAnalogPen.LineWidth [Property][Get/Set]
Gets or sets the width in pixels of the pen line when it is drawn.
Defined As
[VBA] Long LineWidth
[Cicode] INT LineWidth
[C++] int LineWidth
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
Minimum = 0
Maximum = 8
Calling Syntax
This example assumes there is a valid Analog Pen object to be passed into the example
methods.
[VBA]
Sub Example(analogPen As Object)
Dim lineWidth As Long
Getting Property value
lineWidth = analogPen.LineWidth
Setting Property value
analogPen.LineWidth = 5
End Sub
64
[Cicode]
FUNCTION Example(OBJECT hAnalogPen)
// Getting property value
INT nLineWidth = _ObjectGetProperty(hAnalogPen, "LineWidth");
// Setting property value
_ObjectSetProperty(hAnalogPen, "LineWidth", 5);
END
ICommand Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] ICommand
Methods (0)
Properties (6)
ICommand.CommandId [Property][Get]
ICommand.ButtonType [Property][Get]
ICommand.Enabled [Property][Get/Set]
ICommand.Pressed [Property][Get/Set]
ICommand.Tooltip [Property][Get]
ICommand.Privilege [Property][Get]
ICommand.Tooltip [Property][Get]
Gets this commands Tooltip text.
Defined As
[VBA] String Tooltip
[Cicode] STRING Tooltip
[C++] VARIANT_BOOL Tooltip
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is invalid, the return value will be InvalidArgument. If the command has been deleted, the return value will be GeneralFailure.
Remarks
This returns the text that is displayed in a tooltip window when the mouse pointer hovers
over the commands button.
Calling Syntax
This example assumes there is a valid Command object as retrieved from a Process Analysts CommandSystem. (for example, VBA: ProcessAnalyst.CommandSystem.Item(1))
65
[VBA]
Sub Example(Command As Object)
Dim tooltip As String
Getting Property value
tooltip = Command.Tooltip
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommand)
// Getting property value
STRING sTooltip = _ObjectGetProperty(hCommand, "Tooltip");
END
ICommand.ButtonType [Property][Get]
Gets this commands button type.
Defined As
[VBA] Long ButtonType
[Cicode] INT ButtonType
[C++] ToolbarButtonType ButtonType
Execution Results
If the property get succeeds, the return value will be Success. If the return value is invalid,
the return value will be InvalidArgument. If the command has been deleted, the return value will be GeneralFailure.
Remarks
The return value meaning is as follows:
ToolbarButtonType_Push = 0
ToolbarButtonType_Toggle = 1
ToolbarButtonType_Separator = 2
Calling Syntax
This example assumes there is a valid Command object as retrieved from a Process Analysts CommandSystem. (for example, VBA: ProcessAnalyst.CommandSystem.Item(1))
[VBA]
Sub Example(Command As Object)
Dim buttonType As Long
Getting Property value
buttonType = Command.ButtonType
End Sub
66
[Cicode]
FUNCTION Example(OBJECT hCommand)
// Getting property value
INT nButtonType = _ObjectGetProperty(hCommand, "ButtonType");
END
ICommand.CommandId [Property][Get]
Gets the CommandId of this command.
Defined As
[VBA] String CommandId
[Cicode] STRING hCommandId
[C++] BSTR CommandId
Calling Syntax
This example assumes there is a valid Command object as retrieved from a Process Analysts CommandSystem (for example, VBA: ProcessAnalyst.CommandSystem.Item(1)).
[VBA]
Sub Example(Command As Object)
Dim commandId As String
Getting Property value
commandId = Command.CommandId
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommand)
// Getting property value
STRING nCommandId = _ObjectGetProperty(hCommand,"CommandID");
END
ICommand.Enabled [Property][Get/Set]
Gets this commands enabled state.
Defined As
[VBA] Boolean Enabled
[Cicode] INT Enabled
[C++] VARIANT_BOOL Enabled
Execution Result
If the property get succeeds, the return value will be Success. If the return value is invalid,
the return value will be InvalidArgument.
Limits
67
Remarks
The setting of this property is only valid for custom commands.
Calling Syntax
This example assumes there is a valid Command object as retrieved from a Process Analysts CommandSystem. (for example, VBA: ProcessAnalyst.CommandSystem.Item(1))
[VBA]
Sub Example(Command As Object)
Dim enabled As Boolean
Getting Property value
enabled = Command.Enabled
Setting Property value
Command.Enabled = True
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommand)
// Getting property value
INT nEnabled = _ObjectGetProperty(hCommand, "Enabled");
// Setting property value
_ObjectSetProperty(hCommand, "Enabled", -1);
END
ICommand.Pressed [Property][Get/Set]
Gets and Sets this commands Pressed state.
Defined As
[VBA] Boolean Pressed
[Cicode] INT Pressed
[C++] VARIANT_BOOL Pressed
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Limits
True (-1): Pressed
False (0): UnPressed
Remarks
This is only useful for toggle buttons, indicating whether or not the button is in a pressed
down state. The setting of this property is only valid for custom commands.
Calling Syntax
68
This example assumes there is a valid Command object as retrieved from a Process Analysts CommandSystem. (for example, VBA: ProcessAnalyst.CommandSystem.Item(1))
[VBA]
Sub Example(Command As Object)
Dim pressed As Boolean
Getting Property value
pressed = Command.Pressed
Setting Property value
Command.Pressed = True
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommand)
// Getting property value
INT nPressed = _ObjectGetProperty(hCommand, "Pressed");
// Setting property value
_ObjectSetProperty(hCommand, "Pressed", -1);
END
ICommand.Privilege [Property][Get]
Gets the privilege required to gain access to this command.
Defined As
[VBA] Integer Privilege
[Cicode] INT Privilege
[C++] int Privilege
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is invalid, the return value will be InvalidArgument. If the command has been deleted, the return value will be GeneralFailure.
Remarks
This is the required privilege level of the currently logged in CitectSCADA user to enable
the state of this command, and hence allow access through the user interface. If the currently logged in CitectSCADA user doesnt have this privilege, any buttons tied to this command will be disabled.
Calling Syntax
This example assumes there is a valid Command object as retrieved from a Process Analysts CommandSystem. (for example, VBA: ProcessAnalyst.CommandSystem.Item(1))
[VBA]
Sub Example(Command As Object)
Dim privilege As Integer
Getting Property value
69
privilege = Command.Privilege
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommand)
// Getting property value
INT nPrivilege = _ObjectGetProperty(hCommand, "Privilege");
END
ICommandSystem Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] ICommandSystem
Methods (3)
ICommandSystem.Create [Method]
ICommandSystem.Execute [Method]
ICommandSystem.Remove [Method]
Properties (4)
ICommandSystem.Count [Property][Get]
ICommandSystem.Item [Property][Get]
ICommandSystem._NewEnum [Property][Get]
ICommandSystem.ItemById [Property][Get]
ICommandSystem._NewEnum [Property][Get]
This allows "For... Each... Next" integration in VB.
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem). This property is not applicable to Cicode.
[VBA]
Sub Example(CommandSystem As Object)
Dim command As Object
Dim count Object
Using Property
For Each command In CommandSystem
count = count + 1
Next command
End Sub
70
ICommandSystem.Count [Property][Get]
Gets the number of commands in the command system.
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Execution Result
If the property get succeeds, the return value will be Success.
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem).
[VBA]
Function Example(CommandSystem As Object)
Dim count As Long
Getting Property value
count = CommandSystem.Count
End Function
[Cicode]
FUNCTION Example(OBJECT hCommandSystem)
// Getting property value
INT nCount = _ObjectGetProperty(hCommandSystem, "Count");
END
ICommandSystem.Create [Method]
Creates a new Command object that is added to the CommandSystem.
Defined As
[VBA] object Create (commandID As String, buttonType As Integer, tooltip As String,
iconPath As String, privilege As Integer)
[Cicode] OBJECT Create (STRING commandID, INT buttonType, STRING tooltip,
STRING iconPath, INT Pprivilege)
[C++] HRESULT Create (BSTR commandID, ToolbarButtonType ButtonType, BSTR
tooltip, BSTR iconPath, int privilege, ICommand** Val)
Parameters
commandID
[in]
buttonType
71
[in]
tooltip
[in]
iconPath
[in]
The path to an icon file that will be used as this commands picture.
privilege
A privilege value required by the CitectSCADA user to gain access to this command
(0-8).
[in]
Execution Result
If the method succeeds, the return value is Success. If an argument is invalid or out of
range, the return value is InvalidArgument. If the command was not created, the return
value is GeneralFailure.
Remarks
The commandID cannot begin with the prefix "Citect_".
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem).
[VBA]
Sub Example(CommandSystem As Object)
Dim command As Object
Set command = CommandSystem.Create(CommandIO, "Some tooltip text", "c:\someicon.ico", 5)
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommandSystem)
OBJECT hCommand = _ObjectCallMethod(hCommandSystem, "Create", CommandIO, "Some tooltip text", "c:\someicon.ico", 5);
END
ICommandSystem.Execute [Method]
Executes the specified commands action.
Defined As
[VBA] Execute (commandId As String)
[Cicode] Execute (STRING commandId)
[C++] HRESULT Execute(BSTR commandId)
72
Parameters
commandId
[in]
Execution Result
If this method succeeds, the retun value will be Success. If the command is invalid, the return value will be InvalidArgument.
Remarks
If the current Operator does not have the correct privilege, the command will not execute.
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem).
[VBA]
Sub Example(CommandSystem As Object)
CommandSystem.Execute(Citect_Command_AddPen)
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommandSystem)
_ObjectCallMethod(hCommandSystem, "Execute", Citect_Command_AddPen);
END
ICommandSystem.Item [Property][Get]
Gets the Command at a supplied index location in this collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, ICommand* Item)
Parameters
index
[in] Indicates the index location of the command to return from this collection. (One based)
Execution Result
If the property get succeeds, the return value will be Success. If the index is out of range,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem).
73
[VBA]
Sub Example(CommandSystem As Object)
Dim command As Object
Getting Property value
Set command = CommandSystem.Item(1)
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommandSystem)
// Getting property value
OBJECT hCommand = _ObjectCallMethod(hCommandSystem, "get_Item", 1);
END
ICommandSystem.ItemById [Property][Get]
Gets the Command at a supplied index location in this collection.
Defined As
[VBA] Object Command
[Cicode] OBJECT hCommand
[C++] ICommand* Command
Parameters
commandId
[in]
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem).
[VBA]
Sub Example(CommandSystem As Object)
Dim command As Object
Getting Property value
Set command = CommandSystem.ItemById(Citect_Command_AddPen)
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommandSystem)
// Getting property value
OBJECT hCommand = _ObjectCallMethod (hCommandSystem," get_ItemById",
Citect_Command_AddPen);
END
74
ICommandSystem.Remove [Method]
Removes the specified command.
Defined As
[VBA] Remove (commandId As String)
[Cicode] Remove (STRING CommandId)
[C++] HRESULT Remove(BSTR CommandId)
Parameters
commandId
[in]
Calling Syntax
This example assumes there is a valid CommandSystem object as retrieved from a Process
Analyst. (for example, VBA: ProcessAnalyst.CommandSystem).
[VBA]
Sub Example(CommandSystem As Object)
CommandSystem.Remove("MyCommand1")
End Sub
[Cicode]
FUNCTION Example(OBJECT hCommandSystem)
_ObjectCallMethod(hCommandSystem, "Remove", "MyCommand1");
END
ICursors Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] ICursors
Methods
ICursors.Create [Method]
ICursors.RemoveAll [Method]
Properties
ICursors.Item [Property][Get]
ICursors._NewEnum [Property][Get]
ICursors.Count [Property][Get]
ICursors.ItemByName [Property][Get]
75
ICursors._NewEnum [Property][Get]
Retrieves an enumerator for the cursors collection.
Defined As
[VBA] Object _NewEnum()
[C++] HRESULT get__NewEnum(LPUNKNOWN *pVal)
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the collection is deleted, the return value will
be GeneralFailure.
Remarks
Provided for the implementation of For Each...Next loops in Citect VBA (See Calling Syntax, below). This property cannot be used in Cicode.
Calling Syntax
This example assumes you have a valid reference to the cursors collection and that there
are cursors in the collection.
[VBA]
Sub Example(cursors As Object)
Dim cursor As Object
Dim count As Integer = 0
For Each cursor In cursors
Set count = count + 1
Next
End Sub
ICursors.Count [Property][Get]
Returns the number of cursors in the collection.
Defined As
[VBA] Integer Count()
[Cicode] INT Count()
[C++] HRESULT get_Count (long *pCount)
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the collection is deleted the return value
will be GeneralFailure.
Remarks
This property may be used in conjunction with the Item property to iterate through the collection in Cicode.
Calling Syntax
This example assumes you have a valid reference to the cursors collection.
76
[VBA]
Sub Example(cursors As Object)
Dim cursorCount As Integer
cursorCount = cursors.Count
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursors)
INT cursorCount;
cursorCount = _ObjectGetProperty(hCursors, "Count");
END
ICursors.Create [Method]
Creates a new TrendCursor at the given location.
Defined As
[VBA] Object Create(name As String, position As Integer)
[Cicode] OBJECT Create(STRING name, INT position)
[C++] HRESULT Create(BSTR name, int position, ITrendCursor** ppTrendCursor)
Parameters
name
[in]
The desired unique name of the new cursor. This must be between 1 and 250 charac-
ters.
position
[in] The initial position of the new cursor. This value is given as the number of pixels from
77
[Cicode]
FUNCTION Example(OBJECT hCursors)
OBJECT hNewCursor = _ObjectCallMethod(hCursors, "Create", "Cursor1", 100);
END
ICursors.Item [Property][Get]
Retrieves the Cursor from the collection at the specified index.
Defined As
[VBA] Object Item(index As Integer)
[Cicode] OBJECT get_Item(INT index)
[C++] HRESULT get_Item (long index, ITrendCursor **cursor)
Parameters
index
[in]
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
If the index is out of range, the return value will be InvalidArgument. If the collection is
deleted, the return value will be GeneralFailure.
Remarks
The index for the collection is 1 based. The valid range for this parameter is between 1 and
the total number of cursors.
Calling Syntax
This example assumes you have a valid reference to the cursors collection and that there
are two items in the collection.
[VBA]
Sub
Dim
Set
End
Example(hCursors As Object)
hSecondCursor As Object
hSecondCursor = hCursors.Item(2)
Sub
[Cicode]
Sub Example(OBJECT hCursors)
OBJECT hSecondCursor = _ObjectCallMethod(hCursors, "get_Item", 2);
END
78
ICursors.ItemByName [Property][Get]
Retrieves the Cursor at the specified index.
Defined As
[VBA] Object ItemByName(name As String)
[Cicode] OBJECT get_ItemByName(STRING name)
[C++] HRESULT get_ItemByName (BSTR name, ITrendCursor **cursor)
Parameters
name
[in]
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the cursor is not found, the return value will
be InvalidArgument.
If the collection is deleted, the return value will be GeneralFailure.
Calling Syntax
This example assumes you have a valid reference to the cursors collection, and that there is
a cursor in the collection named "MyCursor".
[VBA]
Sub
Dim
Set
End
Example(cursors As Object)
cursor As Object
cursor = cursors.ItemByName("MyCursor")
Sub
[Cicode]
FUNCTION Example(OBJECT hCursors)
OBJECT hCursor = _ObjectCallMethod(hCursors, "get_ItemByName", "MyCursor");
END
ICursors.RemoveAll [Method]
Removes all cursors from the collection.
Defined As
[VBA] RemoveAll()
[Cicode] RemoveAll()
[C++] HRESULT RemoveAll()
Execution Result
79
If the function succeeds the return value will be Success. If an unexpected error occurs, the
return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid Cursors object to be passed into the example methods.
[VBA]
Sub Example(cursors As Object)
cursors.RemoveAll
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursors)
_ObjectCallMethod(hCursors, "RemoveAll");
End Sub
IDigitalPen Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IDigitalPen
Methods (0)
Properties (4)
IDigitalPen.FillColor [Property][Get/Set]
IDigitalPen.LineColor [Property][Get/Set]
IDigitalPen.LineWidth [Property][Get/Set]
IDigitalPen.Fill [Property][Get/Set]
IDigitalPen.Fill [Property][Get/Set]
Gets or sets whether the pen fill is displayed.
Defined As
[VBA] Boolean Fill
[Cicode] INT Fill
[C++] VARIANT_BOOL Fill
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted the return value will
be GeneralFailure.
Remarks
80
If the pen is filled, the area under the pen line will be filled with the color specified by the
FillColor property.
See Also
IDigitalPen.FillColor [Property][Get/Set]
Limits
True (-1): = Fill is displayed
False (0): = Fill is hidden
Calling Syntax
This example assumes there is a valid digital pen object to be passed into the example methods.
[VBA]
Sub Example(digitalPen As Object)
Dim fill As Boolean
Getting Property value
fill = digitalPen.Fill
Setting Property value
digitalPen.Fill = True
End Sub
[Cicode]
FUNCTION Example(OBJECT hDigitalPen)
// Getting property value
INT nFill = _ObjectGetProperty(hDigitalPen, "Fill");
// Setting property value
_ObjectSetProperty(hDigitalPen, "Fill", -1);
END
IDigitalPen.FillColor [Property][Get/Set]
Gets or Sets the color that will be used to fill the area under the line when the value is 1.
Defined As
[VBA] Long FillColor
[Cicode] INT FillColor
[C++] OLE_COLOR FillColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
The color value can be calculated using the following formula:
color = (65536 * blue) + (256 * green) + (red)
81
where red, green, and blue are 0-255. The area under the line is filled with this color if the
value of the Fill property is True (-1).
See Also
IDigitalPen.Fill [Property][Get/Set]
Calling Syntax
This example assumes there is a valid DigitalPen object to be passed into the example methods.
[VBA]
Sub Example(digitalPen As Object)
Dim fillColor As Long
Getting Property value
fillColor = digitalPen.FillColor
Setting Property to red
digitalPen.FillColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hDigitalPen)
// Getting property value
INT nFillColor = _ObjectGetProperty(hDigitalPen, "FillColor");
// Setting property to red
_ObjectSetProperty(hDigitalPen, "FillColor", 255);
END
IDigitalPen.LineColor [Property][Get/Set]
Gets or Sets the color that will be used to draw the pen line.
Defined As
[VBA] Long LineColor
[Cicode] INT LineColor
[C++] OLE_COLOR LineColor
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted the return value will
be GeneralFailure.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
Calling Syntax
This example assumes there is a valid DigitalPen object to be passed into the example methods.
82
[VBA]
Sub Example(digitalPen As Object)
Dim lineColor As Long
Getting Property value
lineColor = DigitalPen.LineColor
Setting Property to red
digitalPen.LineColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hDigitalPen)
// Getting property value
INT nLineColor = _ObjectGetProperty(hDigitalPen, "LineColor");
// Setting property to red
_ObjectSetProperty(hDigitalPen, "LineColor", 255);
END
IDigitalPen.LineWidth [Property][Get/Set]
Gets or sets the width in pixels of the pen line when it is drawn.
Defined As
[VBA] Long LineWidth
[Cicode] INT LineWidth
[C++] int LineWidth
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted the return value will
be GeneralFailure.
Limits
Minimum = 0
Maximum = 8
Calling Syntax
This example assumes there is a valid Digital Pen object to be passed into the example
methods.
[VBA]
Sub Example(digitalPen As Object)
Dim lineWidth As Long
Getting Property value
lineWidth = digitalPen.LineWidth
Setting Property value
digitalPen.LineWidth = 5
End Sub
83
[Cicode]
FUNCTION Example(OBJECT hDigitalPen)
// Getting property value
INT nLineWidth = _ObjectGetProperty(hDigitalPen, "LineWidth");
// Setting property value
_ObjectSetProperty(hDigitalPen, "LineWidth", 5);
END
IObjectView Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IObjectView
Methods (0)
Properties (7)
IObjectView.Visible [Property][Get/Set]
IObjectView.Height [Property][Get/Set]
IObjectView.BackgroundColor [Property][Get/Set]
IObjectView.ForeColor [Property][Get/Set]
IObjectView.Columns [Property][Get]
IObjectView.Items [Property][Get]
IObjectView.SelectedItem [Property][Get]
IObjectView.BackgroundColor [Property][Get/Set]
Gets or Sets the background color of the ObjectView. This number is treated as an
OLE_COLOR inside the Process Analyst.
Defined As
[VBA] Long BackgroundColor
[Cicode] INT BackgroundColor
[C++] OLE_COLOR BackgroundColor
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
Calling Syntax
This example assumes that there is an IObjectView object being passed in as a parameter.
84
[VBA]
Sub Example(objectView As Object)
Dim backgroundColor As Long
Getting Property value
backgroundColor = objectView.BackgroundColor
Setting Property value to red
objectView.BackgroundColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
// Getting property value
INT nBackgroundColor =
_ObjectGetProperty(hObjectView,"BackgroundColor");
// Setting Property to Red
_ObjectSetProperty(hObjectView, "BackgroundColor", 255);
END
IObjectView.Columns [Property][Get]
Gets the automation object representing the collection of columns currently visible in the
ObjectView.
Defined As
[VBA] Object Columns
[Cicode] OBJECT Columns
[C++] IObjectViewColumns* Columns
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes that there is an IObjectView object being passed in as a parameter.
[VBA]
Sub Example(objectView As Object)
Dim columns As Object
Getting Property value
Set columns = objectView.Columns
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
// Getting property value
OBJECT hColumns = _ObjectGetProperty(hObjectView, "Columns");
END
85
IObjectView.ForeColor [Property][Get/Set]
Gets or Sets the Fore color (text and color box outlines) of the ObjectView. This number is
treated as an OLE_COLOR inside the Process Analyst.
Defined As
[VBA] Long ForeColor
[Cicode] INT ForeColor
[C++] OLE_COLOR ForeColor
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
Calling Syntax
This example assumes that there is an IObjectView object being passed in as a parameter.
[VBA]
Sub Example(objectView As Object)
Dim foreColor As Long
Getting Property value
foreColor = objectView.ForeColor
Setting Property value to red
objectView.ForeColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
INT nForeColor = 0;
// Getting property value
nForeColor = _ObjectGetProperty(hObjectView, "ForeColor");
// Setting Property to red
_ObjectSetProperty(hObjectView, "ForeColor", 255);
END
IObjectView.Height [Property][Get/Set]
Gets or Sets the height in pixels of the Object View window.
Defined As
[VBA] Long Height
86
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. A height value less than 0 will be InvalidArgument.
Limits
Height must be 0 or greater.
Remarks
As the ObjectView and chart both share the same window, by enlarging the ObjectView,
you make the Chart smaller and vice versa.
Calling Syntax
This example assumes that there is an IObjectView object being passed in as a parameter.
[VBA]
Sub Example(objectView As Object)
Dim height As Long
Getting Property value
height = objectView.Height
Setting Property value
objectView.Height = 25
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
INT nHeight = 0;
// Getting property value
nHeight = _ObjectGetProperty(hObjectView, "Height");
// Setting Property to false
_ObjectSetProperty(hObjectView, "Height", 25);
END
IObjectView.Items [Property][Get]
Gets the automation object representing the collection of items at the root of the ObjectView
tree.
Defined As
[VBA] Object Items
[Cicode] OBJECT Items
[C++] IObjectViewItems* Items
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
87
Remarks
The method will provide a list of all the pane items in tree. Each pane item has an Items
property which allows access to the pen items listed under it.
Calling Syntax
This example assumes that there is an IObjectView object being passed in as a parameter.
[VBA]
Sub Example(objectView As Object)
Dim items As Object
Getting Property value
Set items = objectView.Items
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
// Getting property value
OBJECT hItems = _ObjectGetProperty(hObjectView, "Items");
END
IObjectView.SelectedItem [Property][Get]
Gets the current primary selection in the ObjectView. This is the pen item that was last selected.
Defined As
[VBA] Object SelectedItem
[Cicode] OBJECT SelectedItem
[C++] IObjectViewItem* SelectedItem
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes that there is an IObjectView object being passed in as a parameter.
[VBA]
Sub Example(objectView As Object)
Dim selectedItem As Object
Getting Property value
Set selectedItem = objectView.SelectedItem
End Sub
88
[Cicode]
FUNCTION Example(OBJECT hObjectView)
// Getting property value
OBJECT hSelectedItem = _ObjectGetProperty(hObjectView, "SelectedItem");
END
IObjectView.Visible [Property][Get/Set]
Gets or Sets the visibility of the Object View window.
Defined As
[VBA] Boolean Visible
[Cicode] INT Visible
[C++] VARIANT_BOOL Visible
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Limits
True (-1): Visible
False (0): Hidden
Remarks
By hiding the ObjectView, the chart gains the real estate previously held by it, and likewise
the chart loses real estate when the ObjectView gets shown.
Calling Syntax
Assume that there is an IObjectView object being passed in as a parameter.
[VBA]
Sub Example(objectView As Object)
Dim visible As Boolean
Getting Property value
visible = objectView.Visible
Setting Property value
objectView.Visible = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
INT bVisible = 0
// Getting property value
bVisible = _ObjectGetProperty(hObjectView, "Visible");
// Setting Property to false
_ObjectSetProperty(hObjectView, "Visible", 0);
END
89
IObjectViewColumn Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IObjectViewColumn
Methods (0)
Properties (3)
IObjectViewColumn.Name [Property][Get]
IObjectViewColumn.Text [Property][Get]
IObjectViewColumn.Width [Property][Get/Set]
IObjectViewColumn.Name [Property][Get]
Retrieves the unique identifier of this column.
Defined As
[VBA] String Name
[Cicode] STRING Name
[C++] BSTR Name
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid column as retrieved from an ObjectView. (for example, VBA: objectView.Columns.Item(1)).
[VBA]
Sub Example(objectViewColumn As Object)
Dim name As String
Getting Property value
name = objectViewColumn.Name
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectViewColumn)
// Getting property value
STRING name = _ObjectGetProperty(hObjectViewColumn, "Name");
END
90
IObjectViewColumn.Text [Property][Get]
Gets the Text that is being displayed for this columns header.
Defined As
[VBA] String Text
[Cicode] STRING Text
[C++] BSTR Text
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid column as retrieved from an ObjectView. (for example, VBA: objectView.Columns.Item(1)).
[VBA]
Sub Example(objectViewColumn As Object)
Dim text As String
Getting Property value
text = objectViewColumn.Text
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectViewColumn)
// Getting property value
STRING text = _ObjectGetProperty(hObjectViewColumn, "Text");
END
IObjectViewColumn.Width [Property][Get/Set]
Gets or Sets the width in pixels of this column.
Defined As
[VBA] Long Width
[Cicode] INT Width
[C++] int Width
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the width is out of range, the result will be InvalidArgument.
Limits
A valid width is 0-1000.
Calling Syntax
91
This example assumes there is a valid column as retrieved from an ObjectView. (for example, VBA: objectView.Columns.Item(1)).
[VBA]
Sub Example(objectViewColumn As Object)
Dim width As Long
Getting Property value
width = objectViewColumn.Width
Setting Property value
objectViewColumn.Width = 150
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectViewColumn)
// Getting property value
INT width = _ObjectGetProperty(hObjectViewColumn, "Width");
_ObjectSetProperty(hObjectViewColumn, "Width", 150);
END
IObjectViewColumns Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IObjectViewColumns
Methods (4)
IObjectViewColumns.Add [Method]
IObjectViewColumns.Hide [Method]
IObjectViewColumns.Remove [Method]
IObjectViewColumns.Show [Method]
Properties (4)
IObjectViewColumns.Count [Property][Get]
IObjectViewColumns.Item [Property][Get]
IObjectViewColumns.ItemByName [Property][Get]
IObjectViewColumns._NewEnum [Property][Get]
IObjectViewColumns._NewEnum [Property][Get]
This allows "For... Each... Next" integration in VB.
Calling Syntax
This example assumes there is a valid Columns collection as retrieved from an ObjectView.
(for example, VBA: objectView.Columns). This property is not applicable in Cicode.
92
[VBA]
Sub Example(Columns As Object)
Dim column As Object
Dim count Object
Using Property
For Each column In Columns
count = count + 1
Next column
End Sub
IObjectViewColumns.Add [Method]
Adds a visible custom column to the ObjectView.
Defined As
[VBA] Add(name As String, DisplayText As String, Width As Long)
[Cicode] Add(STRING name, STRING DisplayText, INT Width)
[C++] HRESULT Add (BSTR name, BSTR text, int width)
Parameters
name
[in]
text
[in]
width
[in]
Execution Result
If the method succeeds, the return value will be Success. If an argument is out of range, the
return value will be InvalidArgument. If the column cannot be added, the return value is
GeneralFailure.
See Also
OVColumnAdded [Event]
Calling Syntax
This example assumes there is a valid Columns collection as retrieved from an ObjectView.
(for example, VBA: objectView.Columns).
[VBA]
Sub Example(Columns As Object)
Columns.Add "NameID", "New Column", 120;
End Sub
93
[Cicode]
FUNCTION Example(OBJECT hColumns)
_ObjectCallMethod(hColumns, "Add", "NameID", "New Column", 120);
END
IObjectViewColumns.Count [Property][Get]
Gets the number of Columns in this columns collection.
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid Columns collection as retrieved from an ObjectView.
(for example, VBA: ObjectView.Columns).
[VBA]
Function Example(Columns As Object)
Dim count As Long
Getting Property value
count = Columns.Count
End Function
[Cicode]
FUNCTION Example(OBJECT hColumns)
// Getting property value
INT nCount = _ObjectGetProperty(hColumns, "Count");
END
IObjectViewColumns.Hide [Method]
Makes the specified column hidden within the Object View.
Defined As
[VBA] Hide(columnName As String)
[Cicode] Hide(STRING columnName)
[C++] HRESULT Hide(BSTR columnName)
Parameters
94
columnName
[in]
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the field cannot be set, GeneralFailure is returned.
See Also
IObjectViewColumns.Show [Method]
Calling Syntax
This example assumes there is a columns Collection from an ObjectView. (for example,
VBA: objectView.Columns).
[VBA]
Sub Example(columns As Object)
columns.Hide "Error"
End Sub
[Cicode]
FUNCTION Example(OBJECT hColumns)
_ObjectCallMethod(hColumns, "Hide", "Error");
END
IObjectViewColumns.Item [Property][Get]
Gets the ObjectViewItem at a supplied index location in this collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, IObjectViewColumn* Item)
Parameters
index
[in]
Indicates the index location of the column to return from this collection. (One based)
Calling Syntax
This example assumes there is a valid Columns collection as retrieved from an ObjectView
(for example, VBA: objectView.Columns).
[VBA]
Sub Example(Columns As Object)
Dim column As Object
Getting Property value
Set column = Columns.Item(1)
End Sub
95
[Cicode]
FUNCTION Example(OBJECT hColumns)
// Getting property value
OBJECT hColumn = _ObjectCallMethod(hColumns, "get_Item", 1);
END
IObjectViewColumns.ItemByName [Property][Get]
Returns a reference to the column object with the given name from this columns collection.
Defined As
[VBA] ItemByName(columnName As String) as Object
[Cicode] OBJECT ItemByName(STRING columnName)
[C++] ItemByName(STRING columnName, IObjectViewColumn* Item)
Parameters
columnName
[in]
Indicates the unique name of the column item to return from this collection.
Execution Results
If the method succeeds, the return value will be Success. If the column cannot be found, the
return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid Columns collection object to be passed into the example methods.
[VBA]
Sub Example(columns As Object)
Dim column As Object
Getting Property value
Set column = columns.ItemByName("Duration")
End Sub
[Cicode]
FUNCTION Example(OBJECT hColumns)
// Getting property value
OBJECT hColumn = _ObjectCallMethod(hColumns, "get_ItemByName", "Duration");
END
IObjectViewColumns.Remove [Method]
Removes the specified custom column from the Object View columns.
Defined As
96
Parameters
columnName
[in] Indicates the unique name of the column to remove from this collection.
Execution Results
If the method succeeds, the return value will be Success. If the column cannot be found, the
return value will be InvalidArgument.
Remarks
Only user created custom columns can be removed.
Calling Syntax
This example assumes there is a valid Columns collection object to be passed into the example methods.
[VBA]
Sub Example(columns As Object)
Dim column As Object
Getting Property value
Set column = columns.Remove("MyCustomColumn")
End Sub
[Cicode]
FUNCTION Example(OBJECT hColumns)
// Getting property value
OBJECT hColumn = _ObjectCallMethod(hColumns, "get_ItemByName", "MyCustomColumn");
END
IObjectViewColumns.Show [Method]
Makes the specified column visible within the Object View.
Defined As
[VBA] Show(columnName As String)
[Cicode] Show(STRING columnName)
[C++] HRESULT Show(BSTR columnName)
Parameters
columnName
[in]
The string ID uniquely identifying the column you want to make visible
Execution Result
97
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the field cannot be set, then GeneralFailure is
returned.
See Also
IObjectViewColumns.Hide [Method]
Calling Syntax
This example assumes there is a columns Collection from an ObjectView. (for example,
VBA: objectView.Columns).
[VBA]
Sub Example(columns As Object)
columns.Show "Error"
End Sub
[Cicode]
FUNCTION Example(OBJECT hColumns)
_ObjectCallMethod(hColumns, "Show", "Error");
END
IObjectViewItem Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IObjectViewItem
Methods (2)
IObjectViewItem.GetField [Method]
IObjectViewItem.PutField [Method]
Properties (3)
IObjectViewItem.Expanded [Property][Get/Set]
IObjectViewItem.Tag [Property][Get/Set]
IObjectViewItem.Items [Property][Get]
IObjectViewItem.Expanded [Property][Get/Set]
Gets or Sets the expanded state of an item in the ObjectView. This change is reflected immediately in the visualization of the ObjectView.
Defined As
[VBA] Boolean Expanded
[Cicode] INT Expanded
[C++] VARIANT_BOOL Expanded
98
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Limits
True (-1): Expanded
False (0): Collapsed
Calling Syntax
This example assumes there is a valid Item as retrieved from an Items Collection from an
ObjectView. (for example, VBA: objectView.Items.Item(1)).
[VBA]
Sub Example(objectViewItem As Object)
Dim expanded As Boolean
Getting Property value
expanded = objectViewItem.Expanded
Setting Property value
objectViewItem.Expanded = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectViewItem)
// Getting property value
INT nExpanded = _ObjectGetProperty(hObjectViewItem, "Expanded");
// Setting Property
_ObjectSetProperty(hObjectViewItem, "Expanded", 0);
END
IObjectViewItem.GetField [Method]
Returns the string value of a displayed field for a specified column on this item.
The IObjectViewItem interface is hierarchical to two levels - pane and then pen. The result
of the GetField method will depend on what type of item it is called on. To access the fields
for a pen, for example, you have to first get the items collection for the pane item, then get
the pen item.
Defined As
[VBA] GetField(ColumnName As String) as String
[Cicode] STRING GetField (STRING ColumnName)
[C++] HRESULT GetField (BSTR ColumnName, BSTR *Val)
Parameters
ColumnName
[in] The string ID uniquely identifying the column whose field value is being queried for.
Execution Result
99
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the ColumnName does not exist, InvalidArgument will be returned.
Calling Syntax
This example gets the Scale property of the first pen in the first pane. It assumes there is a
valid Item as retrieved from an Items Collection from an ObjectView. (for example, VBA:
objectView.Items.Item(1))
[VBA]
Sub Example()
Dim paneItem As Object
Dim penItem As Object
Dim fieldValue As String
Set paneItem = Test_CPA.ObjectView.Items.Item(1) 'Get the first pane of the ObjectView
Set penItem = paneItem.Items.Item(1) 'Get the first pen from the first pane
penItem.GetField "Scale", fieldValue 'Get the value of the scale field
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
OBJECT hPaneItems = _ObjectGetProperty(hObjectView, "Items");
OBJECT hPaneItem = _ObjectCallMethod(hPaneItems, "get_Item", 1); // Get the first
pane of the ObjectView
OBJECT hPenItems = _ObjectGetProperty(hPaneItem, "Items"); // Get the collection of
pens from the first pane
OBJECT hPenItem = _ObjectCallMethod(hPenItems, "get_Item", 1); // Get the first Pen
item
STRING sValue;
_ObjectCallMethod(hPenItem, "GetField", "Scale", sValue); // Get the value of the
scale field
END
IObjectViewItem.Items [Property][Get]
Gets the automation object representing the collection of child items under this item.
Defined As
[VBA] Object Items
[Cicode] OBJECT Items
[C++] IObjectViewItems* Items
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Remarks
Pane nodes are currently the only nodes that can have children.
100
Calling Syntax
This example assumes there is a valid item as retrieved from an ObjectView. (for example,
VBA: objectView.Items.Item(1). This will be a pane).
[VBA]
Sub Example(objectViewItem As Object)
Dim items As Object
Getting Property value
Set items = objectViewItem.Items
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectViewItem)
// Getting property value
OBJECT hItems = _ObjectGetProperty(hObjectViewItem, "Items");
END
IObjectViewItem.PutField [Method]
Sets the display string in a fields cell for a specified column on this item.
The IObjectViewItem interface is hierarchical to two levels - pane and then pen. The scope
of the PutField method will depend on what type of item it is called on. To set fields for a
pen, for example, you have to first get the items collection for the pane item, then get the
pen item.
Defined As
[VBA] PutField(columnName As String, fieldValue as String)
[Cicode] PutField (STRING columnName, STRING fieldValue)
[C++] HRESULT PutField (BSTR columnName, BSTR fieldValue)
Parameters
columnName
[in]
The string ID uniquely identifying the column whose field value is being set.
fieldValue
[in] The string you would like to be displayed in the field for this column/pen intersection.
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the field cannot be set, then GeneralFailure is
returned.
Calling Syntax
This example writes the value "someValue" to the CustomColumn field of the first pen in
the first pane. It assumes there is a valid Item as retrieved from an Items Collection from an
ObjectView. (for example, VBA: objectView.Items.Item(1)).
101
[VBA]
Sub Example()
Dim paneItem As Object
Dim penItem As Object
Set paneItem = Test_CPA.ObjectView.Items.Item(1) 'Get the first pane of the ObjectView
Set penItem = paneItem.Items.Item(1) 'Get the first pen from the first pane
penItem.PutField "CustomColumn", "someValue" set the value of the CustomColumn
field
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectView)
OBJECT hPaneItems = _ObjectGetProperty(hObjectView, "Items");
OBJECT hPaneItem = _ObjectCallMethod(hPaneItems, "get_Item", 1); // Get the first
pane of the ObjectView
OBJECT hPenItems = _ObjectGetProperty(hPaneItem, "Items"); // Get the collection of
pens from the first pane
OBJECT hPenItem = _ObjectCallMethod(hPenItems, "get_Item", 1); // Get the first Pen
item
_ObjectCallMethod(hPenItem, "PutField", "CustomColumn", "someValue"); // Set the
value of the CustomColumn field
END
IObjectViewItem.Tag [Property][Get/Set]
Gets or Sets a user specified piece of data to associate with this Item.
Defined As
[VBA] <Any Type> Tag
[Cicode] <Any Type> Tag
[C++] VARIANT Tag
Remarks
The user can associate any variant of data with a pen. This is handy for associating some
custom data with a pen item, and then having direct access to it whenever any events with
a pen item target occur.
Calling Syntax
This example assumes there is a valid Item as retrieved from an Items Collection from an
ObjectView. (for example, VBA: objectView.Items.Item(1)).
[VBA]
Sub Example(objectViewItem As Object)
Dim tag As Variant
Getting Property value
tag = objectViewItem.Tag
Setting Property value to red
objectViewItem.Tag = tag
End Sub
102
[Cicode]
FUNCTION Example(OBJECT hObjectViewItem)
// Getting property value
INT nTag = _ObjectGetProperty(hObjectViewItem, "Tag");
// Setting Property to red
_ObjectSetProperty(hObjectView, "Tag", nTag);
END
IObjectViewItems Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IObjectViewItems
Methods (0)
Properties (3)
IObjectViewItems.Count [Property][Get]
IObjectViewItems.Item [Property][Get]
IObjectViewItems._NewEnum [Property][Get]
IObjectViewItems._NewEnum [Property][Get]
This allows For.. Each.. Next integration in VB.
Calling Syntax
This example assumes there is a valid Items collection as retrieved from an ObjectView. (for
example, VBA: objectView.Items). This property is not applicable to Cicode.
[VBA]
Sub Example(Items As Object)
Dim item As Object
Dim count Object
Using Property
For Each item In Items
count = count + 1
Next Item
End Sub
IObjectViewItems.Count [Property][Get]
Gets the number of child items under this item.
103
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid Items collection as retrieved from an ObjectView. (for
example, VBA: objectView.Items)
[VBA]
Sub Example(Items As Object)
Dim count As Long
Getting Property value
count = Items.Count
End Sub
[Cicode]
FUNCTION Example(OBJECT hItems)
// Getting property value
INT nCount = _ObjectGetProperty(hItems, "Count");
END
IObjectViewItems.Item [Property][Get]
Gets the ObjectViewItem at a supplied index location in this collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, IObjectViewItem* Item)
Parameters
index
[in] Indicates the index location of the child item to return from this collection. (One based)
Calling Syntax
This example assumes there is a valid Items collection as retrieved from an ObjectView. (for
example, VBA: objectView.Items).
[VBA]
Sub Example(Items As Object)
Dim item As Object
Getting Property value
104
[Cicode]
FUNCTION Example(OBJECT hItems)
// Getting property value
OBJECT hItem = _ObjectCallMethod(hItems, "get_Item", 1);
END
IObjectViewPenItem Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IObjectViewPenItem
Methods (0)
Properties (3)
IObjectViewPenItem.BlockColor [Property][Get])
IObjectViewPenItem.Checked [Property][Get/Set]
IObjectViewPenItem.Selected [Property][Get]
IObjectViewPenItem.BlockColor [Property][Get]
Gets the color representing this item in the ObjectView.
Defined As
[VBA] Long BlockColor
[Cicode] INT BlockColor
[C++] OLE_COLOR BlockColor
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red) where red, green, and blue are 0-255.
Calling Syntax
This example assumes there is a valid pen item as retrieved from an ObjectView. (for example, VBA: ObjectView.Items.Item(1).Items.Item(1) This will be a pen).
[VBA]
Sub Example(objectViewPenItem As Object)
Dim blockColor As Long
105
[Cicode]
FUNCTION Example(OBJECT hObjectViewPenItem)
// Getting property value
INT blockColor = _ObjectGetProperty(hObjectViewItem, "BlockColor");
END
IObjectViewPenItem.Checked [Property][Get/Set]
Gets or Sets whether or not this pen item is checked.
Defined As
[VBA] Boolean Checked
[Cicode] INT Checked
[C++] VARIANT_BOOL Checked
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Limits
True (-1): Checked
False (0): Unchecked
Remarks
This reflects the pens visibility property directly, and any sets to this property will reflect
immediately in the update of the Process Analyst display.
See Also
OVItemChecked [Event]
Calling Syntax
This example assumes there is a valid pen item as retrieved from an ObjectView. (for example, VBA: objectView.Items.Item(1).Items.Item(1) This will be a pen).
[VBA]
Sub Example(objectViewPenItem As Object)
Dim checked As Boolean
Getting Property value
checked = objectViewPenItem.Checked
Setting Property value
objectViewPenItem.Checked = False
End Sub
106
[Cicode]
FUNCTION Example(OBJECT hObjectViewPenItem)
// Getting property value
INT checked = _ObjectGetProperty(hObjectViewItem, "Checked");
// Setting property value
_ObjectSetProperty(hObjectViewItem, "Checked", 0);
END
IObjectViewPenItem.Selected [Property][Get]
Gets whether or not this pen is the selected pen in its pane.
Defined As
[VBA] Boolean Selected
[Cicode] INT Selected
[C++] VARIANT_BOOL Selected
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Limits
True (-1): Selected
False (0): Unselected
Remarks
Each Pane has one selected pen. It is visually emphasized by a vertical gradient fill.
Calling Syntax
This example assumes there is a valid pen item as retrieved from an ObjectView. (for example, VBA: objectView.Items.Item(1).Items.Item(1) This will be a pen).
[VBA]
Sub Example(objectViewPenItem As Object)
Dim selected As Boolean
Getting Property value
selected = objectViewPenItem.Selected
End Sub
[Cicode]
FUNCTION Example(OBJECT hObjectViewPenItem)
// Getting property value
INT selected = _ObjectGetProperty(hObjectViewItem, "Selected");
END
107
IPane Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IPanes
Methods (1)
IPane.Delete [Method]
Properties (6)
IPane.Height [Property][Get/Set]
IPane.Collection [Property][Get]
IPane.Name [Property][Get/Set]
IPane.BackgroundColor [Property][Get/Set]
IPane.FixedHeight [Property][Get/Set]
IPane.Pens [Property][Get]
IPane.BackgroundColor [Property][Get/Set]
Gets or Sets the color of this Pane.
Defined As
[VBA] Long BackgroundColor
[Cicode] INT BackgroundColor
[C++] OLE_COLOR BackgroundColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the pane is deleted, the
return value will be GeneralFailure.
Remarks
The color value can be calculated using the following formula: color = (65536 * Blue) + (256
* Green) + (Red). Where red, green and blue are 0-255.
Calling Syntax
This example assumes there is a valid Pane object to be passed into the example methods.
[VBA]
Sub Example(Pane As Object)
Dim backgroundColor As Long
Getting Property value
backgroundColor = Pane.BackgroundColor
Setting Property value to red
Pane.BackgroundColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPane)
// Getting property value
108
IPane.Collection [Property][Get]
Returns a reference to the Panes collection that this Pane belongs to.
Defined As
[VBA] Object Collection
[Cicode] OBJECT Collection
[C++] IPanes* Collection
Execution Result
If the property get succeeds the return value will be Success. If the pane is deleted the return value will be GeneralFailure.
See Also
IPanes Interface
Calling Syntax
This example assumes there is a valid Pane object to be passed into the example methods.
[VBA]
Sub Example(pane As Object)
Dim panes As Object
Getting Property value
Set panes = pane.Collection
End Sub
[Cicode]
FUNCTION Example(OBJECT hPane)
// Getting property value
OBJECT hPanes = _ObjectGetProperty(hPane, "Collection");
END
IPane.Delete [Method]
Removes this Pane from the collection and the display.
Defined As
[VBA] Delete()
[Cicode] Delete()
[C++] HRESULT Delete()
109
Execution Result
If the method succeeds, the return value will be Success. If the pane is already deleted, the
return value will be GeneralFailure.
Remarks
Any pen associated with the pane will also be deleted.
Calling Syntax
This example assumes there is a valid Pane object to be passed into the example methods.
[VBA]
Sub Panes(Pane As Object)
Pane.Delete()
End Sub
[Cicode]
FUNCTION Example(OBJECT hPane)
_ObjectCallMethod(hPane, "Delete");
END
IPane.FixedHeight [Property][Get/Set]
Gets or Sets whether this pane has a fixed height.
Defined As
[VBA] Boolean FixedHeight
[Cicode] INT FixedHeight
[C++] VARIANT_BOOL FixedHeight
Execution Result
If the property get/set succeeds, the return value will be Success. If the pane is deleted, the
return value will be GeneralFailure.
Limits
True (-1): Height is fixed
False (0): Height is variable
Remarks
When this property is true, the panes Height reflects the pixel value size as gotten from the
Panes Height property. If the FixedHeight property is false, the Height property value is
used as a ratio of the available Variable' real estate (all the left over room in the Process Analyst after Fixed Height panes have been added) which is shared out between all
the Variable Height panes.
See Also
IPane.Height [Property][Get/Set]
Calling Syntax
110
This example assumes there is a valid Pane object to be passed into the example methods.
[VBA]
Sub Example(pane As Object)
Dim fixedHeight As Boolean
Getting Property value
fixedHeight = pane.FixedHeight
Setting Property value
pane.FixedHeight = True
End Sub
[Cicode]
FUNCTION Example(OBJECT hPane)
// Getting property value
INT bFixedHeight = _ObjectGetProperty(hPane, "FixedHeight");
// Setting property value
_ObjectSetProperty(hPane, "FixedHeight", -1);
END
IPane.Height [Property][Get/Set]
Gets or Sets the height of this pane.
Defined As
[VBA] Long Height
[Cicode] INT Height
[C++] int Height
Execution Result
If the property get/set succeeds, the return value will be Success. If the height is out of range
(16-1000), the return value will be InvalidArgument. If the pane is deleted, the return value
will be GeneralFailure.
Remarks
This property affects the visible height of the Pane in two different ways based on the Boolean value of the FixedHeight property. If the FixedHeight property is True, the Pane takes
on a pixel height equivalent to the Height property value. All pens inside the Pane are adjusted to fit. If the FixedHeight property is False, the Height property value is used as a ratio of the available Variable' real estate (all the left over room in the Process Analyst
after Fixed Height panes have been added) which is shared out between all the Variable
Height panes.
See Also
IPane.FixedHeight [Property][Get/Set]
Calling Syntax
This example assumes there is a valid Pane object to be passed into the example methods.
111
[VBA]
Sub Example(Pane As Object)
Dim height As Long
Getting Property value
height = Pane.Height
Setting Property value
Pane.Height = 250
End Sub
[Cicode]
FUNCTION Example(OBJECT hPane)
// Getting property value
INT nHeight = _ObjectGetProperty(hPane, "Height");
// Setting property value
_ObjectSetProperty(hPane, "Height", 250);
END
IPane.Name [Property][Get/Set]
Gets or Sets the name of this pane.
Defined As
[VBA] String Name
[Cicode] STRING Name
[C++] BSTR Name
Execution Result
If the property get/set succeeds, the return value will be Success. If a pane of the same name
exists, the return value will be InvalidArgument. If the panes collection is deleted, the return value will be GeneralFailure.
Limits
Name must be between 1-250 characters.
Remarks
Pane names must be unique.
Calling Syntax
This example assumes there is a valid Pane object to be passed into the example methods.
[VBA]
Sub Example(pane As Object)
Dim name As String
Getting Property value
name = pane.Name
Setting Property value
pane.Name = "Alarms"
End Sub
112
[Cicode]
FUNCTION Example(OBJECT hPane)
// Getting property value
STRING sName = _ObjectGetProperty(hPane, "Name");
// Setting property value
_ObjectSetProperty(hPane, "Name", "Alarms");
END
IPane.Pens [Property][Get]
Gets a reference to the pens collection object containing the pens for this pane.
Defined As
[VBA] Object Pens
[Cicode] OBJECT Pens
[C++] IPens* Pens
Execution Result
If the property get succeeds the return value will be Success. If the pane is deleted the return value will be GeneralFailure.
See Also
IPens Interface
Calling Syntax
This example assumes there is a valid Pane object to be passed into the example methods.
[VBA]
Sub Example(pane As Object)
Dim pens As Object
Getting Property value
Set pens = pane.Pens
End Sub
[Cicode]
FUNCTION Example(OBJECT hPane)
// Getting property value
OBJECT hPens = _ObjectGetProperty(hPane, "Pens");
END
113
IPanes Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IPanes
Methods (2)
IPanes.Create [Method]
IPanes.RemoveAll [Method]
Properties (4)
IPanes.Count [Property][Get]
IPanes.Item [Property][Get]
IPanes._NewEnum [Property][Get]
IPanes.ItemByName [Property][Get]
IPanes._NewEnum [Property][Get]
This allows For.. Each.. Next integration in VB.
Calling Syntax
This example assumes there is a valid Panes collection object to be passed into the example
methods. This property is not applicable to Cicode.
[VBA]
Sub Example(Panes As Object)
Dim pane As Object
Dim count As Long
Using Property
For Each pane In Panes
count = count + 1
Next pane
End Sub
IPanes.Count [Property][Get]
Gets the number of Panes in this collection.
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Execution Result
If the property get succeeds, the return value will be Success. If the panes collection is deleted, the return value will be GeneralFailure.
Calling Syntax
114
This example assumes there is a valid Panes collection object to be passed into the example
methods.
[VBA]
Sub Example(Panes As Object)
Dim count As Long
Getting Property value
count = Panes.Count
End Sub
[Cicode]
FUNCTION Example(OBJECT hPanes)
// Getting property value
INT nCount = _ObjectGetProperty(hPanes, "Count");
END
IPanes.Create [Method]
Adds a pane to this collection and returns a reference to it.
Defined As
[VBA] Create(name as String) as Object
[Cicode] OBJECT Create (STRING name)
[C++] HRESULT Create(BSTR name, IPane** pane)
Parameters
name
[in]
Execution Result
If the method succeeds, the return value will be Success. If a pane of the same name exists,
the return value will be InvalidArgument. If the panes collection is deleted, the return value will be GeneralFailure.
Remarks
When this method succeeds it will return a reference to the new IPane object.
See Also
IPanes Interface
Calling Syntax
This example assumes there is a valid Panes collection object to be passed into the example
methods.
[VBA]
Sub Example(Panes As Object)
Dim pane As Object
115
[Cicode]
FUNCTION Example(OBJECT hPanes)
OBJECT hPane = _ObjectCallMethod(hPanes, "Create", "Alarm Pane");
END
IPanes.Item [Property][Get]
Gets the Pane at the given index in this Pane collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, IPane* Item)
Parameters
index
[in]
Indicates the location of the Pane item to return from this collection. (One based)
Execution Result
If the property get succeeds the return value will be Success. If the index is out of range then
the return value will be InvalidArgument. If the panes collection is deleted the return value
will be GeneralFailure.
See Also
IPane Interface
Calling Syntax
This example assumes there is a valid Panes collection object to be passed into the example
methods.
[VBA]
Sub Example(Panes As Object)
Dim pane As Object
Getting Property value
Set pane = Panes.Item(1)
End Sub
[Cicode]
FUNCTION Example(OBJECT hPanes)
// Getting property value
OBJECT hPane = _ObjectCallMethod(hPanes, "get_Item", 1);
END
116
IPanes.ItemByName [Property][Get]
Returns a reference to the pane object with the given name from this Panes collection.
Defined As
[VBA] ByName(name As String) as Object
[Cicode] OBJECT ByName(STRING name)
[C++] ByName(STRING name, IPane* Item)
Parameters
name
[in]
Indicates the name of the Pane item to return from this collection.
Execution Result
If the property get succeeds, the return value will be Success. If the pane cannot be found,
the return value will be InvalidArgument. If the panes collection is deleted, the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid Panes collection object to be passed into the example
methods.
[VBA]
Sub Example(Panes As Object)
Dim pane As Object
Getting Property value
Set pane = Panes.ItemByName("Alarm Pane")
End Sub
[Cicode]
FUNCTION Example(OBJECT hPanes)
// Getting property value
OBJECT hPane = _ObjectCallMethod(hPanes, "get_ItemByName", "Alarm Pane");
END
IPanes.RemoveAll [Method]
Removes all Panes from this Pane collection.
Defined As
[VBA] RemoveAll()
[Cicode] RemoveAll()
[C++] HRESULT RemoveAll()
117
Execution Result
If the method succeeds, the return value will be Success. If the panes collection is deleted,
the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid Panes collection object to be passed into the example
methods.
[VBA]
Sub Panes(Buttons As Object)
Panes.RemoveAll()
End Sub
[Cicode]
FUNCTION Example(OBJECT hPanes)
_ObjectCallMethod(hPanes, "RemoveAll");
END
IPen Interface
Methods
IPen.AddSample
IPen.Clear [Method]
IPen.Delete [Method]
IPen.GetDefaultSpan [Method]
IPen.GetHorizontalAxisTimeSpan [Method]
IPen.GetInformation [Method]
IPen.GetStatistic [Method]
IPen.GetVerticalAxisSpan [Method]
IPen.GoToNow [Method]
IPen.HorizontalScrollBy [Method]
IPen.HorizontalZoom [Method]
IPen.PutHorizontalAxisTimeSpan [Method]
IPen.PutVerticalAxisSpan [Method]
IPen.RefreshData [Method]
IPen.ResetToDefaultSpan [Method]
IPen.Select [Method]
IPen.SetDefaultSpan [Method]
IPen.SetQualityCompactionPointType [Method]
IPen.SetQualityLineStyle [Method]
IPen.SetVerticalAxisLabelValue [Method]
IPen.VerticalScrollBy [Method]
IPen.VerticalZoom [Method]
Properties
118
IPen.AxisBackgroundColor [Property][Get/Set]
IPen.BlockRepaint [Property][Get/Set]
IPen.Collection [Property][Get]
IPen.DataPoint [Property][Get/Set]
IPen.DataServer [Property][Get/Set]
IPen.Height [Property][Get/Set]
IPen.HorizontalAxisColor [Property][Get/Set]
IPen.HorizontalAxisResize [Property][Get/Set]
IPen.HorizontalAxisScroll [Property][Get/Set]
IPen.HorizontalAxisWidth [Property][Get/Set]
IPen.HorizontalGridlinesColor [Property][Get/Set]
IPen.HorizontalGridlinesStyle [Property][Get/Set]
IPen.HorizontalGridlinesWidth [Property][Get/Set]
IPen.HorizontalMinorGridlinesColor [Property][Get/Set]
IPen.HorizontalMinorGridlinesStyle [Property][Get/Set]
IPen.IsDeleted [Property][Get]
IPen.IsSelected [Property][Get]
IPen.LocalTime [Property][Get/Set]
IPen.Name [Property][Get/Set]
IPen.PointsVisible [Property][Get/Set]
IPen.RequestMode [Property][Get/Set]
IPen.Stacked [Property][Get/Set]
IPen.TrendCursorLabelFillColor [Property][Get/Set]
IPen.TrendCursorLabelLineColor [Property][Get/Set]
IPen.TrendCursorLabelTextColor [Property][Get/Set]
IPen.VerticalAxisAutoscale [Property][Get/Set]
IPen.VerticalAxisColor [Property][Get/Set]
IPen.VerticalAxisLabelType [Property][Get/Set]
IPen.VerticalAxisResize [Property][Get/Set]
IPen.VerticalAxisScroll [Property][Get/Set]
IPen.VerticalAxisWidth [Property][Get/Set]
IPen.VerticalGridlinesColor [Property][Get/Set]
IPen.VerticalGridlinesStyle [Property][Get/Set]
IPen.VerticalGridlinesWidth [Property][Get/Set]
IPen.VerticalMinorGridlinesColor [Property][Get/Set]
IPen.VerticalMinorGridlinesStyle [Property][Get/Set]
IPen.Visible [Property][Get/Set]
IPen.AddSample
Adds a temporary sample to a pen.
Defined As
[VBA] AddSample(value As Double, timeStamp as Date, milli as Integer, qualityType
as Integer, compactionType as Integer)
[Cicode] AddSample(REAL value, DATE timeStamp, INT milli, INT qualityType, INT
compactionType)
[C++] HRESULT AddSample(double value, DATE timeStamp, short milli, QualityType
qualityType, QualityCompactionType compactionType)
Parameters
119
value
[in]
timeStamp
[in]
milli
[in]
qualityType
[in]
compactionType
[in]
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If an argument is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other
unexpected error occurs, the return value will be GeneralFailure.
Remarks
This function has limited use as the samples added are stored in a temporary cache; they
can be cleared anytime by time span changes, data refresh calls, or automation.
You can only add samples to analog or digital pens.
See Also
QualityType [Enumeration], QualityCompactionType [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim timeStamp As Date
timestamp = Now
pen.AddSample 75.0, timeStamp, 100, 0, 0
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT iCitectTime;
REAL rOleTime;
iCitectTime = TimeCurrent(); // Returns seconds since 1970
rOleTime = TimeToOleDate(iCitectTime, 1); // Convert to OLE UTC time
_ObjectCallMethod(hPen, "AddSample", 75.0, timeStamp, 100, 0, 0);
END
120
IPen.AxisBackgroundColor [Property][Get/Set]
Gets or sets the background color of the axis of this pen.
Defined As
[VBA] Long BackgroundColor
[Cicode] INT BackgroundColor
[C++] OLE_COLOR BackgroundColor
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
The background is the area underneath the axis lines and values.
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim backgroundColor As Long
Getting Property value
backgroundColor = pen.AxisBackgroundColor
Setting Property value to Red
pen.AxisBackgroundColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT backgroundColor;
// Getting current property value
backgroundColor = _ObjectGetProperty(hPen, "AxisBackgroundColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "AxisBackgroundColor", PackedRGB(255, 0, 0));
END
IPen.BlockRepaint [Property][Get/Set]
Use this property to halt or continue any drawing updates to this pen.
Defined As
[VBA] Boolean BlockRepaint
[Cicode] INT BlockRepaint
[C++] VARIANT_BOOL BlockRepaint
121
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
This property is useful if you are modifying several properties at once as it will help reduce
flicker and the amount of processing required. Simply set the property to True (-1), change
as many properties as you want, and then set the property to False (0).
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim blockRepaint As Boolean
Getting Property value
blockRepaint = pen.BlockRepaint
Setting Property value
pen.BlockRepaint = True
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bBlockRepaint;
// Getting current property value
bBlockRepaint = _ObjectGetProperty(hPen, "BlockRepaint");
// Setting Property
_ObjectSetProperty(hPen, "BlockRepaint", -1);
END
IPen.Clear [Method]
Clears all samples belonging to this pen from the internal cache. (Note: This does not remove logged samples from the server)
Defined As
[VBA] Clear()
[Cicode] Clear()
[C++] HRESULT Clear()
Execution Result
If the function succeeds the return value will be Success. If the pen is deleted then the return
value will be GeneralFailure.
Calling Syntax
Assumes you have passed a valid pen object into the function.
122
[VBA]
Sub Example(pen As Object)
pen.Clear
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "Clear");
END
IPen.Collection [Property][Get]
Returns a reference to the Pens collection object that this pen belongs to.
Defined As
[VBA] Object Collection
[Cicode] OBJECT Collection
[C++] IPen* Collection
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the pen is deleted, the return value will be
GeneralFailure.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim pens As Object
Getting Property value
Set pens = pen.Collection
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
OBJECT pens;
// Getting current property value
pens = _ObjectGetProperty(hPen, "Collection");
END
IPen.DataPoint [Property][Get/Set]
Get or Set the trend/alarm tag which this pen is bound to.
123
Defined As
[VBA] String DataPoint
[Cicode] STRING DataPoint
[C++] BSTR DataPoint
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the tag is greater than 79 characters, the
return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Remarks
This property works in conjunction with the DataServer property. This property can be
changed during the lifetime of the pen. Changing the DataPoint property will result in the
data cache being cleared and a new data request issued. A request for the tags information
will also be issued.
See Also
IPen.DataServer [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim tag As String
Getting Property value
tag = pen.DataPoint
Setting Property value
pen.DataPoint = "LOOP_1_PV"
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
STRING tag;
// Getting current property value
tag = _ObjectGetProperty(hPen, "DataPoint");
// Setting Property
_ObjectSetProperty(hPen, "DataPoint", "LOOP_1_PV");
END
IPen.DataServer [Property][Get/Set]
Get or Set the server that this pen is bound to.
Defined As
[VBA] String DataServer
[Cicode] STRING DataServer
124
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the server connection cannot be found,
the return value will be InvalidArgument. If the pen is deleted, the return value will be
GeneralFailure.
Remarks
This property currently only supports two options, "localhost" and "" (empty string), which
indicates an unbound connection. Local host means the pen will use the local CitectSCADA
client to source data from the CitectSCADA Trends/Alarm Servers.
This property works in conjunction with the DataPoint property. This property can be
changed during the lifetime of the pen.
See Also
IPen.DataPoint [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim server As String
Getting Property value
server = pen.DataServer
Setting Property value
pen.DataPoint = "localhost"
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
STRING server;
// Getting current property value
server = _ObjectGetProperty(hPen, "DataServer");
// Setting Property
_ObjectSetProperty(hPen, "DataServer", "localhost");
END
IPen.Delete [Method]
Deletes the pen from the Process Analyst.
Defined As
[VBA] Delete()
[Cicode] Delete()
[C++] HRESULT Delete()
125
Execution Result
If the function succeeds, the return value will be Success. If the pen is already deleted, the
return value will be GeneralFailure.
Remarks
Calling this method will mark the pen for deletion, meaning any further calls to methods
or properties on the pen will result in a GeneralFailure error. The pen will be removed from
the display immediately after making this call.
See Also
IPen.IsDeleted [Property][Get]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
pen.Delete
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "Delete");
END
IPen.GetDefaultSpan [Method]
Returns the default time span for this pen as a series of time components.
Defined As
[VBA] GetDefaultSpan(weeks As Integer, days As Integer, hours As Integer, minutes As
Integer, seconds As Integer, milliseconds As Integer)
[Cicode] GetDefaultSpan (INT weeks, INT days, DATE hours, INT minutes, INT seconds, INT milliseconds)
[C++] HRESULT GetDefaultSpan (short* weeks, short* days, short* hours, short* minutes, short* seconds, short* milliseconds)
Parameters
weeks
[out]
days
[out]
hours
[out]
126
minutes
[out]
seconds
[out]
milliseconds
[out]
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.
See Also
IPen.SetDefaultSpan [Method], IPen.ResetToDefaultSpan [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim weeks As Integer
Dim days As Integer
Dim hours As Integer
Dim minutes As Integer
Dim seconds As Integer
Dim milliseconds As Integer
pen.GetDefaultSpan weeks, days, hours, minutes, seconds, milliseconds
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT weeks;
INT days;
INT hours;
INT minutes;
INT seconds;
INT milliseconds;
_ObjectCallMethod(hPen, "GetDefaultSpan", weeks, days, hours, minutes, seconds, milliseconds);
END
IPen.GetHorizontalAxisTimeSpan [Method]
Returns the start and end time of this pen in local or UTC time format.
Defined As
127
Parameters
startTime
[out] This will contain the beginning date and time without milliseconds of the time span.
startMs
[out]
endTime
[out]
This will contain the end date and time without milliseconds.of the time span.
endMs
[out]
localTime
Indicates whether the times returned are in local time or UTC. True = -1, False (0) =
UTC.
[in]
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.
See Also
IPen.PutHorizontalAxisTimeSpan [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim startDate As Date
Dim endDate As Date
Dim startMs As Integer
Dim endMs As Integer
pen.GetHorizontalAxisTimeSpan startDate, startMs, endDate, endMs, True
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
REAL startDate;
REAL endDate;
INT startMs;
INT endMs;
_ObjectCallMethod(hPen, "GetHorizontalAxisTimeSpan", startDate, startMs, endDate,
128
endMs, -1);
END
IPen.GetInformation [Method]
Returns information associated with this pen.
Defined As
[VBA] GetInformation(name As String) As String
[Cicode] STRING GetInformation(STRING name)
[C++] HRESULT GetDefaultSpan (BSTR name, BSTR* value)
Parameters
name
[in] Specify the pen information attribute you want to get the value for. See Remarks below
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If the attribute does not exist, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other
unexpected error occurs, the return value will be GeneralFailure.
Information Attributes
Attribute
Returns
Applies to
Alarm Area
Alarm
Alarm Category
Alarm
Alarm Desc
Alarm
Alarm Name
Alarm
Alarm Type
Alarm
Comment
All
Duration
All
End Time
All
Analog, Digital
Engineering Units
Analog, Digital
Analog, Digital
Error
All
Full Scale
Analog,
Name
All
Analog, Digital
Analog, Digital
Sample Period
Analog, Digital
Start Time
All
129
Tag
All
Trend Type
Analog, Digital
Zero Scale
Analog
Scale
Analog, Digital
Engineering Scale
Analog, Digita
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim duration As String
duration = pen.GetInformation "Duration"
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
STRING duration;
duration = _ObjectCallMethod(hPen, "GetInformation", "Duration");
END
IPen.GetStatistic [Method]
Returns the result of a specified Process Analyst statistical operation.
Defined As
[VBA] GetStatistic(name As String, value As String)
[Cicode] GetStatistic(STRING name, STRING value)
[C++] HRESULT GetStatistic(BSTR name, BSTR* value)
Parameters
name
[in] Specify the statistic attribute you want to get the value for. See Remarks below for sup-
ported attributes.
value
[out]
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If the attribute does not exist, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other
unexpected error occurs, the return value will be GeneralFailure.
130
Information Attributes
Attribute
Returns
Applies to
Average
Analog, Digital
Maximum
Analog
Minimum
Analog
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim average As String
pen.GetStatistic "Average", average
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
STRING average;
_ObjectCallMethod(hPen, "GetStastic", "Average", average);
END
IPen.GetVerticalAxisSpan [Method]
Returns the current span of the pens' vertical axis.
Defined As
[VBA] GetVerticalAxisSpan(startValue As Double, endValue As Double)
[Cicode] GetVerticalAxisSpan (REAL startValue, REAL endValue)
[C++] HRESULT GetVerticalAxisSpan (double* startValue, double* endValue)
Parameters
startValue
[out]
endValue
[out]
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure. If any other unexpected error occurs, the return value will be GeneralFailure.
See Also
IPen.PutVerticalAxisSpan [Method]
Calling Syntax
131
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim startValue As Double
Dim endValue As Double
pen.GetVerticalAxisSpan startValue, endValue
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
REAL startValue;
REAL endValue;
_ObjectCallMethod(hPen, "GetVerticalAxisSpan", startValue, endValue);
END
IPen.GoToNow [Method]
Synchronizes the end time of the pens span with your computers current local time. The
start time will also be moved to maintain the pens current time span.
Defined As
[VBA] GoToNow()
[Cicode] GoToNow()
[C++] HRESULT GoToNow()
Execution Result
If the function succeeds, the return value will be Success. If the pen is deleted, the return
value will be GeneralFailure.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
pen.GoToNow
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "GoToNow");
END
132
IPen.Height [Property][Get/Set]
Get or Set the physical height in pixels that the pen will allocate for itself when displayed
in Stacked mode.
Defined As
[VBA] Integer Height
[Cicode] INT Height
[C++] double Height
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If height set is out of range (16 - 1000), the
return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Remarks
This property is ignored when the pen is not in Stacked mode.
See Also
IPen.Stacked [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim height As Boolean
Getting Property value
height = pen.Height
Setting Property value
pen.Height = 75
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT height;
// Getting current property value
height = _ObjectGetProperty(hPen, "Height");
// Setting Property
_ObjectSetProperty(hPen, "Height", 75);
END
IPen.HorizontalAxisColor [Property][Get/Set]
Gets or sets the color used to draw the line, labels, and interval markers of the horizontal
axis of this pen.
Defined As
[VBA] Long HorizontalAxisColor
[Cicode] INT HorizontalAxisColor
[C++] OLE_COLOR HorizontalAxisColor
133
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula:
(65536 * Blue) + (256 * Green) + (Red)
where Red, Green, and Blue are 0-255.
See Also
IPen.VerticalAxisColor [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.HorizontalAxisColor
Setting Property value to Red
pen.HorizontalAxisColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "HorizontalAxisColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "HorizontalAxisColor", PackedRGB(255, 0, 0));
END
IPen.HorizontalAxisResize [Property][Get/Set]
Gets or sets whether this pen allows the operator to interactively scale the horizontal axis
using the mouse.
Defined As
[VBA] Boolean HorizontalAxisResize
[Cicode] INT HorizontalAxisResize
[C++] VARIANT_BOOL HorizontalAxisResize
Execution Result
134
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
True (-1): Axis can be resized
False (0): Axis cannot be resized
See Also
IPen.VerticalAxisResize [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim resize As Boolean
Getting Property value
resize = pen.HorizontalAxisResize
Setting Property value
pen.HorizontalAxisResize = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bResize;
// Getting current property value
bResize = _ObjectGetProperty(hPen, "HorizontalAxisResize");
// Setting Property
_ObjectSetProperty(hPen, "HorizontalAxisResize",0);
END
IPen.HorizontalAxisScroll [Property][Get/Set]
Gets or sets whether this pen allows the operator to interactively scroll the horizontal axis
using the mouse.
Defined As
[VBA] Boolean HorizontalAxisScroll
[Cicode] INT HorizontalAxisScroll
[C++] VARIANT_BOOL HorizontalAxisScroll
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Limits
True (-1): Axis can be scrolled
135
See Also
IPen.VerticalAxisScroll [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim scroll As Boolean
Getting Property value
scroll = pen.HorizontalAxisScroll
Setting Property value
pen.HorizontalAxisScroll = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bScroll;
// Getting current property value
bScroll = _ObjectGetProperty(hPen, "HorizontalAxisScroll");
// Setting Property
_ObjectSetProperty(hPen, "HorizontalAxisScroll", 0);
END
IPen.HorizontalAxisWidth [Property][Get/Set]
Gets or sets the width of the horizontal axis line and the associated interval markers.
Defined As
[VBA] Integer HorizontalAxisWidth
[Cicode] INT HorizontalAxisWidth
[C++] short HorizontalAxisWidth
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
A valid width is 0-8 pixels.
See Also
IPen.VerticalAxisWidth [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
136
[VBA]
Sub Example(pen As Object)
Dim width As Integer
Getting Property value
width = pen.HorizontalAxisWidth
Setting Property value
pen.HorizontalAxisWidth = 3
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT width;
// Getting current property value
width = _ObjectGetProperty(hPen, "HorizontalAxisWidth");
// Setting Property
_ObjectSetProperty(hPen, "HorizontalAxisWidth", 3);
END
IPen.HorizontalGridlinesColor [Property][Get/Set]
Gets or sets the color used to draw the major horizontal gridlines.
Defined As
[VBA] Long HorizontalGridlinesColor
[Cicode] INT HorizontalGridlinesColor
[C++] OLE_COLOR HorizontalGridlinesColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
A valid width is 0-8 pixels.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255
See Also
IPen.HorizontalMinorGridlinesColor [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
137
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "HorizontalGridlinesColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "HorizontalGridlinesColor", PackedRGB(255, 0, 0));
END
IPen.HorizontalGridlinesStyle [Property][Get/Set]
Gets or sets the line style used to draw the major horizontal gridlines.
Defined As
[VBA] Long HorizontalGridlinesStyle
[Cicode] INT HorizontalGridlinesStyle
[C++] LineStyle HorizontalGridlinesStyle
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the style is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
See Also
IPen.HorizontalMinorGridlinesColor [Property][Get/Set], LineStyle [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim style As Long
Getting Property value
style = pen.HorizontalGridlinesStyle
Setting Property value to Dot
pen.HorizontalGridlinesColor = 2
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT style;
// Getting current property value
138
IPen.HorizontalGridlinesWidth [Property][Get/Set]
Gets or sets the line width used when drawing the major horizontal gridlines.
Defined As
[VBA] Integer HorizontalGridlinesWidth
[Cicode] INT HorizontalGridlinesWidth
[C++] short HorizontalGridlinesWidth
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the width is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim width As Integer
Getting Property value
width = pen.HorizontalGridlinesWidth
Setting Property value
pen.HorizontalGridlinesWidth = 3
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT width;
// Getting current property value
width = _ObjectGetProperty(hPen, "HorizontalGridlinesWidth");
// Setting Property t
_ObjectSetProperty(hPen, "HorizontalGridlinesWidth", 3);
END
IPen.HorizontalMinorGridlinesColor [Property][Get/Set]
Gets or sets the color used to draw the minor horizontal gridlines.
Defined As
[VBA] Long HorizontalMinorGridlinesColor
[Cicode] INT HorizontalMinorGridlinesColor
139
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula:
(65536 * Blue) + (256 * Green) + (Red)
where Red, Green, and Blue are 0-255.
See Also
IPen.HorizontalGridlinesColor [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.HorizontalMinorGridlinesColor
Setting Property value to Red
pen.HorizontalMinorGridlinesColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "HorizontalMinorGridlinesColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "HorizontalMinorGridlinesColor", PackedRGB(255, 0, 0));
END
IPen.HorizontalMinorGridlinesStyle [Property][Get/Set]
Gets or sets the line style used to draw the minor horizontal gridlines.
Defined As
[VBA] Long HorizontalMinorGridlinesStyle
[Cicode] INT HorizontalMinorGridlinesStyle
[C++] LineStyle HorizontalMinorGridlinesStyle
Execution Result
140
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the style is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
See Also
IPen.HorizontalGridlinesStyle [Property][Get/Set], LineStyle [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim style As Long
Getting Property value
style = pen.HorizontalMinorGridlinesStyle
Setting Property value to Dot
pen.HorizontalMinorGridlinesColor = 2
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT style;
// Getting current property value
style = _ObjectGetProperty(hPen, "HorizontalMinorGridlinesStyle");
// Setting Property to Dot
_ObjectSetProperty(hPen, "HorizontalMinorGridlinesStyle", 2);
END
IPen.HorizontalScrollBy [Method]
Scrolls the horizontal axis by the specified factor.
Defined As
[VBA] HorizontalScrollBy(factor As Double)
[Cicode] HorizontalScrollBy(REAL factor)
[C++] HRESULT HorizontalScrollBy(double factor)
Parameters
factor
Controls the direction and amount the axis will be scrolled. A negative value will
move the axis back in time; a positive value will move the axis forward in time. The value
is a percentage representing the current viewable span. So if the pen span is 1 hour, and
you specify a factor of 0.5, you will move the time span 30 minutes into the future.
[in]
Execution Result
If the function succeeds, the return value will be Success. If the argument is bad, the return
value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
141
See Also
IPen.VerticalScrollBy [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Move the pen span back one complete span into history
pen.HorizontalScrollBy -1.0
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
// Move the pen span back one complete span into history
_ObjectCallMethod(hPen, "HorizontalScrollby", -1.0);
END
IPen.HorizontalZoom [Method]
Zooms centrally into the time span by the given factor.
Defined As
[VBA] HorizontalZoom(factor As Double)
[Cicode] HorizontalZoom(REAL factor)
[C++] HRESULT HorizontalZoom(double factor)
Parameters
factor
Controls the direction and amount the axis will be zoomed. Acceptable zoom values
are 0 to 1 (Zoom out) and > 1 (zoom in).
[in]
Execution Result
If the function succeeds the return value will be Success. If the argument is bad then the
return value will be InvalidArgument. If the argument is out of range then the return value
will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.
See Also
IPen.VerticalZoom [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Zoom out 50%
pen.HorizontalZoom 0.5
142
[Cicode]
FUNCTION Example(OBJECT hPen)
// Zoom out 50%
_ObjectCallMethod(hPen, "HorizontalZoom", 0.5);
// Undo the Zoom
_ObjectCallMethod(hPen, "HorizontalZoom", 2.0);
END
IPen.IsDeleted [Property][Get]
Returns whether this pen has been marked for deletion. That is, whether someone has
called the Delete method on it or deleted it from the display.
Defined As
[VBA] Boolean IsDeleted
[Cicode] INT IsDeleted
[C++] VARIANT_BOOL IsDeleted
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
See Also
IPen.Delete [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim deleted As Boolean
deleted = pen.IsDeleted
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bDeleted;
bDeleted = _ObjectGetProperty(hPen, "IsDeleted");
END
143
IPen.IsSelected [Property][Get]
Returns whether this pen has been selected in the Process Analyst.
Defined As
[VBA] Boolean IsSelected
[Cicode] INT IsSelected
[C++] VARIANT_BOOL IsSelected
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
See Also
IPen.Select [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim selected As Boolean
selected = pen.IsSelected
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bSelected;
bSelected = _ObjectGetProperty(hPen, "IsSelected");
END
IPen.LocalTime [Property][Get/Set]
Get or Set whether the axis will display time in the computers current local format or in
UTC (Universal Time Coordinate).
Defined As
[VBA] Boolean LocalTime
[Cicode] INT LocalTime
[C++] VARIANT_BOOL LocalTime
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
True (-1): Local format
False (0): UTC format
144
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim localTime As Boolean
Getting Property value
localTime = pen.LocalTime
Display time in UTC
pen.LocalTime = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bLocalTime;
// Getting current property value
bLocalTime = _ObjectGetProperty(hPen, "LocalTime");
// Display time in UTC
_ObjectSetProperty(hPen, "LocalTime", 0);
END
IPen.Name [Property][Get/Set]
Get or Set the name of this pen.
Defined As
[VBA] String Name
[Cicode] STRING Name
[C++] BSTR Name
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the length of the name is wrong then the
return value will be InvalidArgument. If the pen is deleted then the return value will be
GeneralFailure.
Remarks
The Process Analyst will use this name extensively throughout the user interface to reference this pen.
The name of the pen does not have to be unique, but it must be between 1 and 250 character
long.
Calling Syntax
Assumes you have passed a valid pen object into the function.
145
[VBA]
Sub Example(pen As Object)
Dim name As String
Getting Property value
name = pen.Name
Setting property value
pen.Name = "NicePen"
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
STRING name;
// Getting current property value
name = _ObjectGetProperty(hPen, "Name");
// Setting property value
_ObjectSetProperty(hPen, "Name", "NicePen");
END
IPen.PointsVisible [Property][Get/Set]
Gets or Sets whether the sample points are displayed or hidden on the pen.
Defined As
[VBA] Boolean PointsVisible
[Cicode] INT PointsVisible
[C++] VARIANT_BOOL PointsVisible
Execution Results
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
True(-1): Points are visible
False(0): Points are hidden
Remarks
By default this property is False, meaning that any point type you have set using the SetQualityCompactionPointType function will be hidden.
See Also
IPen.SetQualityCompactionPointType [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim visible As Boolean
146
[Cicode]
FUNCTION Example(OBJECT hPen)
INT visible;
// Getting current property value
visible = _ObjectGetProperty(hPen, "PointsVisible");
// Setting Property value
_ObjectSetProperty(hPen, "PointsVisible", -1);
END
IPen.PutHorizontalAxisTimeSpan [Method]
Sets the start and end time of this pen.
Defined As
[VBA] PutHorizontalAxisTimeSpan(startTime As Date, startMs as Integer, endTime as
Date, endMs as Integer)
[Cicode] PutHorizontalAxisTimeSpan (REAL startTime, INT startMs, REAL endTime,
INT endMs)
[C++] HRESULT PutHorizontalAxisTimeSpan (DATE* startTime, short* startMs,
DATE* endTime, short* endMs)
Parameters
startTime
Indicates the beginning date and time without milliseconds of the time span in UTC
format.
[in]
startMs
[in]
endTime
[in] Indicates the end date and time without milliseconds of the time span in UTC format.
endMs
[in]
Execution Result
If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If an argument is out of range then the return value
will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.
If any other unexpected error occurs the return value will be GeneralFailure.
Remarks
147
The Process Analyst only supports setting its axis in UTC (Universal Co-ordinated Time)
format. This means you must convert from local to UTC format yourself to make the axis
display correctly in local time. Cicode provides several functions to do these conversions.
Limits
The horizontal axis has an upper limit of 1/1/2100 12:00:00.000 and a lower limit of 1/1/1900
12:00:00.000. The minimum span is 100 milliseconds. The maximum span is 200 years.
See Also
IPen.GetHorizontalAxisTimeSpan [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim startDate As Date
Dim endDate As Date
Dim startMs As Integer
Dim endMs As Integer
startDate = CDate("16/6/2004 11:30:00")
endDate = CDate("16/6/2004 12:29:00")
startMs = 0
endMs = 0
pen.PutHorizontalAxisTimeSpan startDate, startMs, endDate, endMs
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
REAL startDate;
REAL endDate;
startDate = StrToDate("16/6/04") + StrToTime("9:30:00");
endDate = StrToDate("16/6/04") + StrToTime("10:29:00");
startDate = TimeToOLEDate(startDate, 0); // Convert to UTC
endDate = TimeToOLEDate(endDate, 0); // Convert to UTC
_ObjectcallMethod(hPen, "PutHorizontalAxisTimeSpan", startDate, 0, endDate, 0);
END
IPen.PutVerticalAxisSpan [Method]
Sets the current position and span of the pens' vertical axis.
Defined As
[VBA] GetVerticalAxisSpan(startValue As Double, endValue As Double)
[Cicode] GetVerticalAxisSpan (REAL startValue, REAL endValue)
[C++] HRESULT GetVerticalAxisSpan (double* startValue, double* endValue)
Parameters
startValue
148
[in]
endValue
[in]
Execution Result
If the function succeeds, the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If an argument is out of range, or the span is out of range,
the return value will be InvalidArgument. If the pen is deleted, the return value will be
GeneralFailure.
Limits
The vertical axis has a upper limit of 1+e10 and a lower limit of 1-e10. However, the maximum span supported is 1+e10. The minimum span is 0.00001.
See Also
IPen.GetVerticalAxisSpan [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
pen.PutVerticalAxisSpan 200.5, 300.34
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "PutVerticalAxisSpan", 200.5, 300.34);
END
IPen.RefreshData [Method]
Clears all samples belonging to this pen from the internal cache and then issues a new request for data.
Defined As
[VBA] RefreshData()
[Cicode] RefreshData ()
[C++] HRESULT RefreshData ()
Execution Result
If the function succeeds the return value will be Success. If the pen is deleted then the return
value will be GeneralFailure.
Calling Syntax
Assumes you have passed a valid pen object into the function.
149
[VBA]
Sub Example(pen As Object)
pen.RefreshData
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "RefreshData");
END
IPen.RequestMode [Property][Get/Set]
Get or Set how multiple samples will be calculated on the server.
Defined As
[VBA] Integer RequestMode
[Cicode] INT RequestMode
[C++] RequestMode RequestMode
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the mode is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Remarks
When the pen makes a request for data and samples need to be compacted, it will use this
mode to determine how the compaction will occur.
Changing this mode will clear the data cache and issue a new request for data.
See Also
RequestMode [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim requestMode As Integer
Getting Property value
requestMode = pen.RequestMode
Setting mode to minimum
pen.RequestMode = 1
End Sub
150
[Cicode]
FUNCTION Example(OBJECT hPen)
INT requestMode;
// Getting current property value
requestMode = _ObjectGetProperty(hPen, "RequestMode");
// Setting mode to minimum
_ObjectSetProperty(hPen, "RequestMode", 1);
END
IPen.ResetToDefaultSpan [Method]
Resets the span of this pen to its default span.
Defined As
[VBA] ResetToDefaultSpan()
[Cicode] ResetToDefaultSpan()
[C++] HRESULT ResetToDefaultSpan()
Execution Result
If the function succeeds, the return value will be Success. If the pen is deleted, the return
value will be GeneralFailure.
Remarks
The default span of all pens is 10 minutes. This can be modified by using IPen.SetDefaultSpan.
See Also
IPen.GetDefaultSpan [Method], IPen.SetDefaultSpan [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
pen.ResetToDefaultSpan
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "ResetToDefaultSpan");
END
IPen.Select [Method]
Makes this pen the primary selected pen.
151
Defined As
[VBA] Select()
[Cicode] Select()
[C++] HRESULT Select()
Execution Result
If the function succeeds, the return value will be Success. If the pen is deleted, the return
value will be GeneralFailure.
Remarks
Calling this method will also trigger PenSelectionChanged [Event].
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
pen.Select
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
_ObjectCallMethod(hPen, "Select");
END
IPen.SetDefaultSpan [Method]
Sets the default time span for this pen.
Defined As
[VBA] SetDefaultSpan(weeks As Integer, days As Integer, hours As Integer, minutes As
Integer, seconds As Integer, milliseconds As Integer)
[Cicode] SetDefaultSpan (INT weeks, INT days, DATE hours, INT minutes, INT seconds, INT milliseconds)
[C++] HRESULT SetDefaultSpan (short weeks, short days, short hours, short minutes,
short seconds, short milliseconds)
Parameters
weeks
[in]
days
[in]
hours
[in]
minutes
152
[in]
seconds
[in]
milliseconds
[in]
Execution Result
If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.
See Also
IPen.GetDefaultSpan [Method], IPen.ResetToDefaultSpan [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Set span to 2 hours and 30 minutes
pen.GetDefaultSpan 0, 0, 2, 30, 0, 0
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
// Set span to 2 hours and 30 minutes
_ObjectCallMethod(hPen, "SetDefaultSpan", 0, 0, 2, 30, 0, 0);
END
IPen.SetQualityCompactionPointType [Method]
Use this function to indicate what visual cue to display for single and multiple samples.
Defined As
[VBA] SetQualityCompactionPointType(compactionType As Integer, pointType As Integer)
[Cicode] SetQualityCompactionPointType(INT compactionType, INT pointType)
[C++] HRESULT SetQualityCompactionPointType(QualityCompactionType compactionType, PointType pointType)
Parameters
compactionType
[in]
Indicates which sample compaction type you want to set the visual cue for.
pointType
[in]
Indicates which visual cue to use for the selected compaction type.
153
Execution Result
If the function succeeds the return value will be Success. If an argument is bad, the return
value will be InvalidArgument. If an argument is out of range, the return value will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
See Also
QualityCompactionType [Enumeration], PointType [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Set single samples to lsook like triangles
pen.SetQualityCompactionPointType 0, 5
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
// Set single samples to look like triangles
_ObjectCallMethod(hPen, "SetQualityCompactionPointType", 0, 5);
END
IPen.SetQualityLineStyle [Method]
This function can be used to change the type of line drawn for each of the quality states defined by the Process Analyst for this Pen only.
Defined As
[VBA] SetQualityLineStyle(qualityType As Integer, lineStyle As Integer)
[Cicode] SetQualityLineStyle(INT qualityType, INT lineStyle)
[C++] HRESULT SetQualityLineStyle(QualityType qualityType, LineStyle lineStyle)
Parameters
qualityType
[in]
Indicates which quality type you want to set the visual cue for.
lineStyle
[in]
Indicates which line style visual cue to use for the selected quality type.
Execution Result
If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If an argument is out of range then the return value
will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.
Remarks
154
When a sample is added to the display, its quality value indicates how the line drawn from
that sample to the next one will be displayed.
See Also
QualityType [Enumeration], LineStyle [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Set all lines drawn after NA samples to be drawn as dash_dot
pen.SetQualityLineStyle 1, 3
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
// Set all lines drawn after NA samples to be drawn as dash_dot
_ObjectCallMethod(hPen, "SetQualityLineStyle", 1, 3);
END
IPen.SetVerticalAxisLabelValue [Method]
This function can be used to display custom text for a particular value on the Vertical Axis.
Defined As
[VBA] SetVerticalAxisLabelValue(value As Double, label As String)
[Cicode] SetVerticalAxisLabelValue(REAL value, STRING label)
[C++] HRESULT SetVerticalAxisLabelValue(double value, BSTR label)
Parameters
value
[in]
label
[in]
Indicates the text that will be displayed instead of the specified value.
Execution Result
If the function succeeds the return value will be Success. If an argument is bad then the return value will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.
Calling Syntax
Assumes you have passed a valid pen object into the function.
155
[VBA]
Sub Example(pen As Object)
Change the vertical axis to display High High instead of 95
pen.SetVerticalAxisLabelValue 95, "High High"
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
// Change the vertical axis to display High High instead of 95
_ObjectCallMethod(hPen, "SetVerticalAxisLabelValue", 95, "High High");
END
IPen.Stacked [Property][Get/Set]
Get or Set whether the pen is visually displayed stacked or overlaid.
Defined As
[VBA] Boolean Stacked
[Cicode] INT Stacked
[C++] VARIANT_BOOL Stacked
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
True (-1): Stacked
False (0): Overlaid
Remarks
When stacked, pens will be drawn under each other; when overlaid, the pens will be drawn
over the top of each other.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim stacked As Boolean
Getting Property value
stacked = pen.Stacked
Setting Property value
pen.Stacked = True
End Sub
156
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bStacked;
// Getting current property value
bStacked = _ObjectGetProperty(hPen, "Stacked");
// Setting property value
_ObjectSetProperty(hPen, "Stacked", -1);
END
IPen.TrendCursorLabelFillColor [Property][Get/Set]
Gets or sets the fill color used for any cursor label associated with this pen.
Defined As
[VBA] Long TrendCursorLabelFillColor
[Cicode] INT TrendCursorLabelFillColor
[C++] OLE_COLOR TrendCursorLabelFillColor
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.TrendCursorLabelFillColor
Setting Property value to Red
pen.TrendCursorLabelFillColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "TrendCursorLabelFillColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "TrendCursorLabelFillColor", PackedRGB(255, 0, 0));
END
157
IPen.TrendCursorLabelLineColor [Property][Get/Set]
Gets or sets the border color used for any cursor label associated with this pen.
Defined As
[VBA] Long TrendCursorLabelLineColor
[Cicode] INT TrendCursorLabelLineColor
[C++] OLE_COLOR TrendCursorLabelLineColor
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.TrendCursorLabelLineColor
Setting Property value to Red
pen.TrendCursorLabelLineColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "TrendCursorLabelLineColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "TrendCursorLabelLineColor", PackedRGB(255, 0, 0));
END
IPen.TrendCursorLabelTextColor [Property][Get/Set]
Gets or sets the text color used for any cursor label associated with this pen.
Defined As
[VBA] Long TrendCursorLabelTextColor
[Cicode] INT TrendCursorLabelTextColor
[C++] OLE_COLOR TrendCursorLabelTextColor
158
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.TrendCursorLabelTextColor
Setting Property value to Red
pen.TrendCursorLabelTextColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "TrendCursorLabelTextColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "TrendCursorLabelTextColor", PackedRGB(255, 0, 0));
END
IPen.VerticalAxisAutoscale [Property][Get/Set]
Gets or sets whether the vertical axis will automatically calculate its physical limits based
on the sample values within its internal cache.
Defined As
[VBA] Boolean VerticalAxisAutoscale
[Cicode] INT VerticalAxisAutoscale
[C++] VARIANT_BOOL VerticalAxisAutoscale
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
Setting this property will turn off interactive Scrolling (IPen.HorizontalAxisScroll) and
Scaling (IPen.HorizontalAxisResize).
159
Limits
True (-1): Autoscale enabled
False (0): Autoscale disabled
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim autoScale As Long
Getting Property value
autoScale = pen.VerticalAxisAutoscale
Setting Property value
pen.VerticalAxisAutoscale = True
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT autoScale;
// Getting current property value
autoScale = _ObjectGetProperty(hPen, "VerticalAxisAutoscale");
// Setting Property
_ObjectSetProperty(hPen, "VerticalAxisAutoscale", -1);
END
IPen.VerticalAxisColor [Property][Get/Set]
Gets or sets the color used to draw the line, labels and interval markers of the vertical axis
of this pen.
Defined As
[VBA] Long VerticalAxisColor
[Cicode] INT VerticalAxisColor
[C++] OLE_COLOR VerticalAxisColor
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.
See Also
IPen.HorizontalAxisColor [Property][Get/Set]
Calling Syntax
160
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.VerticalAxisColor
Setting Property value to Red
pen.VerticalAxisColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "VerticalAxisColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "VerticalAxisColor", PackedRGB(255, 0, 0));
END
IPen.VerticalAxisLabelType [Property][Get/Set]
Gets or sets a unit type which can be applied to the axis labels. This allows numbers on the
axis to display with their unit. For example, setting the unit to "kg" will display "10 Kg" on
the axis.
Defined As
[VBA] Integer VerticalAxisLabelType
[Cicode] INT VerticalAxisLabelType
[C++] AxisLabelType VerticalAxisLabelType
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the pen is deleted then the return value
will be GeneralFailure.
Remarks
Label Types are fixed and cannot be added to.
See Also
AxisLabelType [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim labelType As Integer
161
[Cicode]
FUNCTION Example(OBJECT hPen)
INT labelType;
// Getting current property value
labelType = _ObjectGetProperty(hPen, "VerticalAxisLabelType");
// Setting Property to Percent
_ObjectSetProperty(hPen, "VerticalAxisLabelType", 3);
END
IPen.VerticalAxisResize [Property][Get/Set]
Gets or sets whether this pen allows the operator to interactively scale the vertical axis by
using the mouse.
Defined As
[VBA] Boolean VerticalAxisResize
[Cicode] INT VerticalAxisResize
[C++] VARIANT_BOOL VerticalAxisResize
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
True (-1): Enable resize
False (0): Disable resize
Remarks
This only applies to analog pens.
See Also
IPen.HorizontalAxisResize [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim resize As Boolean
Getting Property value
resize = pen.VerticalAxisResize
Setting Property value
pen.VerticalAxisResize = False
162
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bResize;
// Getting current property value
bResize = _ObjectGetProperty(hPen, "VerticalAxisResize");
// Setting Property
_ObjectSetProperty(hPen, "VerticalAxisResize",0);
END
IPen.VerticalAxisScroll [Property][Get/Set]
Gets or sets whether this pen allows the operator to interactively scroll the vertical axis by
using the mouse.
Defined As
[VBA] Boolean VerticalAxisScroll
[Cicode] INT VerticalAxisScroll
[C++] VARIANT_BOOL VerticalAxisScroll
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
True (-1): Enable scrolling
False (0): Disable scrolling
Remarks
This only applies to analog pens.
See Also
IPen.HorizontalAxisScroll [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim scroll As Boolean
Getting Property value
scroll = pen.VerticalAxisScroll
Setting Property value
pen.VerticalAxisScroll = False
End Sub
163
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bScroll;
// Getting current property value
bScroll = _ObjectGetProperty(hPen, "VerticalAxisScroll");
// Setting Property
_ObjectSetProperty(hPen, "VerticalAxisScroll", 0);
END
IPen.VerticalAxisWidth [Property][Get/Set]
Gets or sets the width of the vertical axis line and the associated interval markers.
Defined As
[VBA] Integer VerticalAxisWidth
[Cicode] INT VerticalAxisWidth
[C++] short VerticalAxisWidth
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Limits
A valid width is 0-8 pixels.
Remarks
This only applies to analog pens.
See Also
IPen.HorizontalAxisWidth [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim width As Integer
Getting Property value
width = pen.VerticalAxisWidth
Setting Property value
pen.VerticalAxisWidth = 3
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT width;
// Getting current property value
164
IPen.VerticalGridlinesColor [Property][Get/Set]
Gets or sets the color used to draw the major vertical gridlines.
Defined As
[VBA] Long VerticalGridlinesColor
[Cicode] INT VerticalGridlinesColor
[C++] OLE_COLOR VerticalGridlinesColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.
See Also
IPen.VerticalMinorGridlinesColor [Property][Get/Set]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.VerticalGridlinesColor
Setting Property value to Red
pen.VerticalGridlinesColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "VerticalGridlinesColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "VerticalGridlinesColor", PackedRGB(255, 0, 0));
END
165
IPen.VerticalGridlinesStyle [Property][Get/Set]
Gets or sets the line style used to draw the major vertical gridlines.
Defined As
[VBA] Long VerticalGridlinesColor
[Cicode] INT VerticalGridlinesColor
[C++] LineStyle VerticalGridlinesColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the style is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
See Also
IPen.VerticalMinorGridlinesStyle [Property][Get/Set], LineStyle [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim style As Long
Getting Property value
style = pen.VerticalGridlinesColor
Setting Property value to Dot
pen.VerticalGridlinesColor = 2
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT style;
// Getting current property value
style = _ObjectGetProperty(hPen, "VerticalGridlinesStyle");
// Setting Property to Dot
_ObjectSetProperty(hPen, "VerticalGridlinesStyle", 2);
END
IPen.VerticalGridlinesWidth [Property][Get/Set]
Gets or sets the line width used when drawing the major vertical gridlines.
Defined As
[VBA] Integer VerticalGridlinesWidth
[Cicode] INT VerticalGridlinesWidth
[C++] short VerticalGridlinesWidth
Execution Result
166
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the width is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
Limits
A valid width is 0-8 pixels.
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim width As Integer
Getting Property value
width = pen.VerticalGridlinesWidth
Setting Property value
pen.VerticalGridlinesWidth = 3
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT width;
// Getting current property value
width = _ObjectGetProperty(hPen, "VerticalGridlinesWidth");
// Setting Property t
_ObjectSetProperty(hPen, "VerticalGridlinesWidth", 3);
END
IPen.VerticalMinorGridlinesColor [Property][Get/Set]
Gets or sets the color used to draw the minor vertical gridlines.
Defined As
[VBA] Long VerticalMinorGridlinesColor
[Cicode] INT VerticalMinorGridlinesColor
[C++] OLE_COLOR VerticalMinorGridlinesColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the pen is deleted, the return value will
be GeneralFailure.
Remarks
To calculate the integer value required for a color apply the following formula (65536 *
Blue) + (256 * Green) + (Red). Where Red, Green and Blue are 0-255.
See Also
IPen.VerticalGridlinesColor [Property][Get/Set]
167
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim color As Long
Getting Property value
color = pen.VerticalMinorGridlinesColor
Setting Property value to Red
pen.VerticalMinorGridlinesColor = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT color;
// Getting current property value
color = _ObjectGetProperty(hPen, "VerticalMinorGridlinesColor");
// Setting Property to Red
_ObjectSetProperty(hPen, "VerticalMinorGridlinesColor", PackedRGB(255, 0, 0));
END
IPen.VerticalMinorGridlinesStyle [Property][Get/Set]
Gets or sets the line style used to draw the minor vertical gridlines.
Defined As
[VBA] Long VerticalMinorGridlinesStyle
[Cicode] INT VerticalMinorGridlinesStyle
[C++] LineStyle VerticalMinorGridlinesStyle
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the style is out of range, the return value
will be InvalidArgument. If the pen is deleted, the return value will be GeneralFailure.
See Also
IPen.VerticalGridlinesStyle [Property][Get/Set], LineStyle [Enumeration]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim style As Long
Getting Property value
style = pen.VerticalMinorGridlinesStyle
Setting Property value to Dot
pen.VerticalMinorGridlinesColor = 2
End Sub
168
[Cicode]
FUNCTION Example(OBJECT hPen)
INT style;
// Getting current property value
style = _ObjectGetProperty(hPen, "VerticalMinorGridlinesStyle");
// Setting Property to Dot
_ObjectSetProperty(hPen, "VerticalMinorGridlinesStyle", 2);
END
IPen.VerticalScrollBy [Method]
Scrolls the vertical axis by the specified factor.
Defined As
[VBA] VerticalScrollBy(factor As Double)
[Cicode] VerticalScrollBy(REAL factor)
[C++] HRESULT VerticalScrollBy(double factor)
Parameters
factor
Controls the direction and amount the axis will be scrolled. A negative value will
move the axis in the negative direction. A positive value will move the axis forward in the
positive direction. The value is a percentage representing the current viewable span. So if
the pen span is 100 units (10 to 110), and you specify a factor of 0.5 then you will move the
span 50 units (60 to 160).
[in]
Execution Result
If the function succeeds the return value will be Success. If the argument is bad then the
return value will be InvalidArgument. If the pen is deleted then the return value will be
GeneralFailure.
See Also
IPen.HorizontalScrollBy [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Move the pen span forward one complete span
pen.VerticalScrollBy 1.0
End Sub
169
[Cicode]
FUNCTION Example(OBJECT hPen)
// Move the pen span forward one complete span
_ObjectCallMethod(hPen, "VerticalScrollby", 1.0);
END
IPen.VerticalZoom [Method]
Zooms centrally into the time span by the given factor on the vertical axis
Defined As
[VBA] VerticalZoom(factor As Double)
[Cicode] VerticalZoom (REAL factor)
[C++] HRESULT VerticalZoom (double factor)
Parameters
factor
Controls the direction and amount the axis will be zoomed. Acceptable zoom values
are 0 to 1 (Zoom out) and > 1 (zoom in).
[in]
Execution Result
If the function succeeds the return value will be Success. If the argument is bad then the
return value will be InvalidArgument. If the argument is out of range then the return value
will be InvalidArgument. If the pen is deleted then the return value will be GeneralFailure.
See Also
IPen.HorizontalZoom [Method]
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Zoom out 50%
pen.VerticalZoom 0.5
Undo the Zoom
pen.VerticalZoom 1.5
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
// Zoom out 50%
_ObjectCallMethod(hPen, "VerticalZoom", 0.5);
// Undo the Zoom
_ObjectCallMethod(hPen, "VerticalZoom", 2.0);
END
170
IPen.Visible [Property][Get/Set]
Get or set whether this pen will be visually shown (True) or hidden (False) to the operator.
Defined As
[VBA] Boolean Visible
[Cicode] INT Visible
[C++] VARIANT_BOOL Visible
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument. If the pen is deleted, the return value will be
GeneralFailure.
Limits
True (-1): Visible
False (0): Hidden
Calling Syntax
Assumes you have passed a valid pen object into the function.
[VBA]
Sub Example(pen As Object)
Dim visible As Boolean
Get the property value
visible = pen.Visible
Set the property value
pen.Visible = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hPen)
INT bVisible;
// Get the property value
bVisible = _ObjectGetProperty(hPen, "Visible", 0.5);
// Set the property value
_ObjectSetProperty(hPen, "Visible", 0);
END
IPens Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IPens
Methods (2)
171
IPens.Create [Method]
IPens.RemoveAll [Method]
Properties (5)
IPens.Count [Property][Get]
IPens.Item [Property][Get]
IPens._NewEnum [Property][Get]
IPens.ItemByName [Property][Get]
IPens.Pane[Property][Get]
IPens._NewEnum [Property][Get]
This allows For.. Each.. Next integration in VB.
Calling Syntax
This example assumes there is a valid Pens collection object to be passed into the example
methods. This property is not applicable to Cicode.
[VBA]
Sub Example(Pens As Object)
Dim pen As Object
Dim count As Long
Using Property
For Each pen In Pens
count = count + 1
Next pen
End Sub
IPens.Count [Property][Get]
Gets the number of Pens in this collection.
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Execution Result
If the property get succeeds, the return value will be Success. If the pens collection is deleted, the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid Pens collection object to be passed into the example
methods.
[VBA]
Sub Example(Pens As Object)
Dim count As Long
Getting Property value
172
count = Pens.Count
End Sub
[Cicode]
FUNCTION Example(OBJECT hPens)
// Getting property value
INT nCount = _ObjectGetProperty(hPens, "Count");
END
IPens.Create [Method]
Creates a new pen and adds it to this collection.
Defined As
[VBA] Create(penType As Integer, nameMode As Integer) as Object
[Cicode] OBJECT Create (INT penType, INT nameMode)
[C++] HRESULT Create(PenType penType, PenNameMode penNameMode, IPen**
pen)
Parameters
penType
[in] Indicates the type of pen that will be created. See PenType Enumeration for the types
of pen that can be created.
penNameMode
[in] Indicates how the name will be obtained for this pen. The Process Analyst provides
options of PenNameMode_Comment, PenNameMode_Tag, and PenNameMode_Custom.
Specifying PenNameMode_Comment will mean that the Process Analyst names the pen
from the Comment field of the trend/alarm tag associated with the IPen.DataPoint property. Specifying PenNameMode_Tag will mean that the Process Analyst will name the pen
as the value of the IPen.DataPoint property. Specifying PenNameMode_Custom causes the
Process Analyst to provide a default name and leave setting the name to you via the IPen.Name property.
Execution Results
If the method succeeds the return value will be Success. If the pens collection is deleted, the
return value will be GeneralFailure.
Remarks
If this method succeeds, a new Pen of the specified type is created and appended to the
pens collection.
See Also
IPen Interface, PenType [Enumeration], PenNameMode [Enumeration]
Calling Syntax
173
This example assumes there is a valid Pens collection object to be passed in to the example
methods.
[VBA]
Sub
Dim
Set
End
Example(pens As Object)
pen As Object
pen = pens.Create(4097, 1)
Sub
[Cicode]
FUNCTION Example(OBJECT hPens)
OBJECT hPen = _ObjectCallMethod(hPens, "Create" , 4097, 1);
END
IPens.Item [Property][Get]
Gets the Pen at the given index from this pens collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, IPen* Item)
Parameters
index
[in]
Indicates the index of the pen item to return from this collection. (One based)
Execution Result
If the property get succeeds, the return value will be Success. If the index is out of range,
the return value will be InvalidArgument. If the pens collection is deleted, the return value
will be GeneralFailure.
Calling Syntax
This example assumes there is a valid Pens collection object to be passed into the example
methods.
[VBA]
Sub Example(pens As Object)
Dim pen As Object
Getting Property value
Set pen = pens.Item(1)
End Sub
174
[Cicode]
FUNCTION Example(OBJECT hPens)
// Getting property value
OBJECT hPen = _ObjectCallMethod(hPens, "get_Item", 1);
END
IPens.ItemByName [Property][Get]
Gets the Pen of the given name from this Pens collection.
Defined As
[VBA] ItemByName(name As String) as Object
[Cicode] OBJECT ItemByName(STRING name)
[C++] ItemByName(STRING name, IPen* Item)
Parameters
name
[in]
Indicates the name of the Pen item to return from this collection.
Execution Result
If the property get succeeds, the return value will be Success. If the pen does not exist, the
return value will be InvalidArgument. If the pens collection is deleted, the return value will
be GeneralFailure.
Calling Syntax
This example assumes there is a valid Pens collection object to be passed into the example
methods.
[VBA]
Sub Example(Pens As Object)
Dim pen As Object
Getting Property value
Set pen = Pens.ItemByName("CPU Usage")
End Sub
[Cicode]
FUNCTION Example(OBJECT hPens)
// Getting property value
OBJECT hPen = _ObjectCallMethod(hPens, "get_ItemByName", "CPU Usage");
END
IPens.Pane[Property][Get]
Gets the Pane that this Pens collection belongs to.
175
Defined As
[VBA] Object Pane
[Cicode] OBJECT Pane
[C++] HRESULT Pane(IPane** Pane)
Execution Result
If the property get succeeds the return value will be Success. If the pens collection is deleted
the return value will be GeneralFailure.
Remarks
Each Pens collection belongs to a Pane.
Calling Syntax
This example assumes there is a valid Pens collection object to be passed into the example
methods.
[VBA]
Sub Example(pens As Object)
Dim pane As Object
Getting Property value
Set pane = pens.Pane
End Sub
[Cicode]
FUNCTION Example(OBJECT hPens)
// Getting property value
OBJECT hPane = _ObjectGetProperty(hPens, "Pane");
END
IPens.RemoveAll [Method]
Removes all Pens from the Pens collection.
Defined As
[VBA] RemoveAll()
[Cicode] RemoveAll()
[C++] HRESULT RemoveAll()
Execution Result
If the property get/set succeeds the return value will be Success. If the pens collection is deleted the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid Pens collection object to be passed into the example
methods.
176
[VBA]
Sub Panes(pens As Object)
pens.RemoveAll()
End Sub
[Cicode]
FUNCTION Example(OBJECT hPens)
_ObjectCallMethod(hPens, "RemoveAll");
END
IProcessAnalyst Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IProcessAnalyst
Methods
IProcessAnalyst.BlockUpdates [Method]
IProcessAnalyst.UnBlockUpdates [Method]
IProcessAnalyst.CopyToClipboard [Method]
IProcessAnalyst.CopyToFile [Method]
IProcessAnalyst.FreezeEvent [Method]
IProcessAnalyst.LoadFromFile [Method]
IProcessAnalyst.PrintAll [Method]
IProcessAnalyst.SaveToFile [Method]
IProcessAnalyst.ShowProperties [Method]
IProcessAnalyst.SubscribeForPropertyChange [Method]
IProcessAnalyst.SynchroniseToNow [Method]
IProcessAnalyst.UnsubscribePropertyChange [Method]
Properties
IProcessAnalyst.AdminPrivilegeLevel [Property] [Get]
IProcessAnalyst.AutoScroll [Property][Get/Set]
IProcessAnalyst.BackgroundColor [Property][Get/Set]
IProcessAnalyst.CommandSystem [Property][Get]
IProcessAnalyst.ContextMenu [Property][Get/Set]
IProcessAnalyst.Cursors [Property][Get]
IProcessAnalyst.DataRequestRate [Property][Get/Set]
IProcessAnalyst.DisplayRefreshRate [Property][Get/Set]
IProcessAnalyst.Language [Property] [Get/Set]
IProcessAnalyst.LastSelectedPen [Property][Get]
IProcessAnalyst.LockedPens [Property][Get/Set]
IProcessAnalyst.NumberofSamples[Property][Get/Set]
IProcessAnalyst.ObjectView [Property][Get]
IProcessAnalyst.Panes [Property][Get]
177
IProcessAnalyst.PrimaryPath [Property][Get/Set]
IProcessAnalyst.SecondaryPath [Property][Get/Set]
IProcessAnalyst.Toolbars [Property][Get]
IProcessAnalyst.WritePrivilegeLevel [Property][Get]
IProcessAnalyst.ZoomMode [Property][Get/Set]
IProcessAnalyst.BlockUpdates [Method]
Blocks certain aspects of the Process Analysts redrawing and data updating.
Defined As
[VBA] BlockUpdates()
[Cicode] BlockUpdates()
[C++] HRESULT BlockUpdates()
Remarks
This method blocks three redraw systems: redraw for the chart, the Object View, and
the toolbars.
Data updates are also blocked.
The current data requests are all cancelled.
The Process Analyst has a built-in counter to store how many times the block and unblock have been called, so that only the final UnBlockUpdates call actually unblocks the
above mentioned data updates and redraw systems.
See Also
IProcessAnalyst.UnBlockUpdates [Method]
Execution Result
If the function suceeds, the return value will be Success. If the function fails, the return value will be general failure.
Calling Syntax
This example assumes there is a valid Process Analyst object to be passed into the example
methods.
[VBA]
Sub Example(ProcessAnalyst As Object)
ProcessAnalyst.BlockUpdates()
End Sub
[Cicode]
FUNCTION Example(OBJECT hProcessAnalyst)
_ObjectCallMethod(hProcessAnalyst, "BlockUpdates");
END
IProcessAnalyst.UnBlockUpdates [Method]
Unblocks certain aspects of the Process Analysts redrawing and data updating.
Defined As
[VBA] UnblockUpdates()
[Cicode] UnblockUpdates()
178
Remarks
This method unblocks three redraw systems: redraw for the chart, the Object View, and
the toolbars.
Data updates are also unblocked.
The Process Analyst has a built-in counter to store how many times the block and unblock have been called, so that only the final UnBlockUpdates call actually unblocks the
above mentioned data updates and redraw systems.
See Also
IProcessAnalyst.BlockUpdates [Method]
Execution Result
If the function suceeds, the return value will be Success. If the function fails, the return value will be general failure. If other BlockUpdates are in effect, a Success will be returned also
(for those C++ users, S_FALSE will be returned in this case).
Calling Syntax
This example assumes there is a valid Process Analyst object to be passed into the example
methods.
[VBA]
Sub Example(ProcessAnalyst As Object)
ProcessAnalyst.UnblockUpdates()
End Sub
[Cicode]
FUNCTION Example(OBJECT hProcessAnalyst)
_ObjectCallMethod(hProcessAnalyst, "UnblockUpdates");
END
IProcessAnalyst.CopyToClipboard [Method]
Copies the data in the current viewable range for all visible pens to the clipboard.
Defined As
[VBA] CopyToClipboard()
[Cicode] CopyToClipboard()
[C++] HRESULT CopyToClipboard()
Remarks
The timestamp of each sample will be in local time defined by your computer. The start and
end sample maybe generated for each pen to indicate the exported range of the data.
Execution Result
If the function succeeds the return value will be Success. If the function fails the return value will be GeneralFailure.
See Also
IProcessAnalyst.CopyToFile [Method]
179
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.CopyToClipboard
End Sub
[Cicode]
Sub Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "CopyToClipboard");
End Sub
IProcessAnalyst.CopyToFile [Method]
Saves the data in the current viewable range for all visible pens to the specified file.
Defined As
[VBA] CopyToFile(filename As String)
[Cicode] CopyToFile(STRING filename)
[C++] HRESULT CopyToClipBoard(BSTR filename)
Parameters
filename
[in]
Indicates the name and path of the file that the data will be exported to.
Execution Result
If the function succeeds the return value will be Success. If the function fails the return value will be GeneralFailure.
Remarks
The timestamp of each sample will be in local time defined by your computer. The start and
end sample maybe generated for each pen to indicate the exported range of the data.
See Also
IProcessAnalyst.CopyToClipboard [Method]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.CopyToFile "test.xls"
End Sub
180
[Cicode]
Sub Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "CopyToFile", "test.xls");
End Sub
IProcessAnalyst.FreezeEvent [Method]
Enables or disables a specified event from triggering.
Defined As
[VBA] FreezeEvent(eventName As String, freeze As Boolean)
[Cicode] FreezeEvent(STRING eventName, INT freeze)
[C++] HRESULT FreezeEvent(BSTR columnName, VARIANT_BOOL freeze)
Parameters
eventName
[in]
Specifies the event that you want to cease receiving notifications for.
freeze
Indicates whether to enable or disable the event. True(-1) enable the event. False(0)
disable the event.
[in]
Execution Result
If the method succeeds, the return value will be Success. If the method fails, the return value will be GeneralFailure. If eventName is bad or does not exist, the return value will be
InvalidArgument.
Remarks
All events exposed by the Process Analyst can be enabled or disabled. This method is particularly useful to prevent recursive behavior of functions that generate the same event that
you are trying to handle.
Calling Syntax
This example assumes there is a valid Process Analyst object to be passed into the example
methods.
[VBA]
Sub Example(analyst As Object)
analyst.FreezeEvent "HorizontalAxisChanged" True
End Sub
[Cicode]
FUNCTION Example(OBJECT hAnalyst)
_ObjectCallMethod(hAnalyst, "FreezeEvent","HorizontalAxisChanged", -1);
END
181
IProcessAnalyst.LoadFromFile [Method]
Loads a specified view into the Process Analyst.
Defined As
[VBA] LoadFromFile(filename As String, fileLocation As Integer)
[Cicode] LoadFromFile(STRING filename, INT fileLocation)
[C++] HRESULT LoadFromFile(BSTR filename, FileLocation fileLocation)
Parameters
filename
[in] Indicates a relative path and filename of the view to load into the Process Analyst. See
Remarks, below.
fileLocation
[in]
Execution Result
If the function succeeds the return value will be Success. If the filename is invalid the return
value will be InvalidArgument. If the path indicated by fileLocation is invalid or offline
then the return value will be PathNotFound. If any other problem occurs then the return
value will be GeneralFailure.
Remarks
This method will replace the current view with the one in the specified file.
Absolute paths are not required for the filename as the method has been designed to load
the specified file from your project directory(FileLocation_Local), my documents folder
(FileLocation_User) or from the primary/secondary paths (FileLocation_Server).
When a file is loaded it will be synchronized with the other locations to verify each location
has the file which is the latest. If the file you are loading is older then one which exists in
another location it will be replaced. Synchronization will not occur when loaded from a
Web-client.
See Also
FileLocation [Enumeration], IProcessAnalyst.PrimaryPath [Property][Get/Set], IProcessAnalyst.SecondaryPath [Property][Get/Set]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Load the view from the server
myPage_AN35.LoadFromFile "Analyst Views\Test1.pav", 1
End Sub
182
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "LoadFromFile","AnalystViews\Test1.pav", 1);
END
IProcessAnalyst.PrintAll [Method]
Displays the Print configuration dialog.
Defined As
[VBA] PrintAll
[Cicode] PrintAll()
[C++] HRESULT PrintAll()
Execution Result
If the function succeeds the return value will be Success. If an unexpected error occurs then
return value will be GeneralFailure.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.PrintAll
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "PrintAll");
END
IProcessAnalyst.SaveToFile [Method]
Saves the current view using the specified name to the specified location.
Defined As
[VBA] SaveToFile(filename As String, fileLocation As Integer)
[Cicode] SaveToFile(STRING filename, INT fileLocation)
[C++] HRESULT SaveToFile(BSTR filename, FileLocation fileLocation)
Parameters
filename
183
Indicates a relative path and filename which will be used during the saving of the
view. See Remarks.
[in]
fileLocation
[in]
Execution Result
If the function succeeds the return value will be Success. If the filename is invalid the return
value will be InvalidArgument. If the path indicated by fileLocation is invalid or offline
then the return value will be PathNotFound. If any other problem occurs, the return value
will be GeneralFailure.
Remarks
On a client where the current user matches the WritePrivilegeLevel only the
FileLocation_Server and FileLocation_User options will succeed. Saving using the
FileLocation_Server option will save to the locations indicated by PrimaryPath and SecondaryPath properties and into the Project directory.
On a client where the current user does not match the WritePrivilegeLevel only the
FileLocation_User will succeed.
On a webclient the FileLocation_User is the only option which will succeed.
See Also
FileLocation [Enumeration], IProcessAnalyst.PrimaryPath [Property][Get/Set], IProcessAnalyst.SecondaryPath [Property][Get/Set], IProcessAnalyst.WritePrivilegeLevel [Property][Get]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Save the view to the server and project
myPage_AN35.SaveToFile "Analyst Views\Test1.pav", 1
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
Save the view to the server and project
_ObjectCallMethod(hProcessAnalyst, "SaveToFile", "Analyst Views\Test1.pav", 1);
END
IProcessAnalyst.ShowProperties [Method]
Displays the Process Analysts property configuration dialog.
184
Define As
[VBA] ShowProperties
[Cicode] ShowProperties()
[C++] HRESULT ShowProperties ()
Execution Result
If the function succeeds the return value will be Success. If an unexpected error occurs then
the return value will be GeneralFailure.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.ShowProperties
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "ShowProperties");
END
IProcessAnalyst.SubscribeForPropertyChange [Method]
Use this method to receive notifications of when a particular property changes. Notifications will be sent via the PropertyChanged event.
Defined As
[VBA] SubscribeForPropertyChange(interfaceName As String, propertyName As
String)
[Cicode] SubscribeForPropertyChange(STRING interfaceName, STRING propertyName)
[C++] HRESULT SubscribeForPropertyChange(BSTR interfaceName, BSTR propertyName)
Parameters
interfaceName
Specify the name of the interface that the property you want notifications for is defined on.
[in]
propertyName
[in]
This is the name of the property you want to receive notifications for.
Execution Result
185
If the function succeeds, the return value will be Success. If the interfaceName or propertyName is a bad string, the return value will be InvalidArgument. If any other problem occurs, the return value will be GeneralFailure.
Remarks
The following set of properties are supported:
Interface name
Property Name
IProcessAnalyst
AutoScroll
IProcessAnalyst
BackgroundColor
IProcessAnalyst
ContextMenu
IProcessAnalyst
LockedPens
IProcessAnalyst
DisplayRefreshRate
IProcessAnalyst
DataRequestRate
IProcessAnalyst
ZoomMode
See Also
IProcessAnalyst.UnsubscribePropertyChange [Method], PropertyChanged [Event]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.SubscribeForPropertyChange "IProcessAnalyst", "ZoomMode"
End Sub
[Cicode]
Sub Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst,"SubscribeForPropertyChange", "IProcessAnalyst",
"ZoomMode");
End Sub
IProcessAnalyst.SynchroniseToNow [Method]
Synchronizes all pens such that the date/time reflects "Now."
Defined As
[VBA] SynchroniseToNow
[Cicode] SynchroniseToNow()
[C++] HRESULT SynchroniseToNow()
Execution Result
If the function succeeds, the return value will be Success. If any other problem occurs, the
return value will be GeneralFailure.
186
Remarks
The current span for each pen will be maintained. Now' is defined as the current time
on the client machine.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.SynchroniseToNow
End Sub
[Cicode]
Sub Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "SynchroniseToNow");
End Sub
IProcessAnalyst.UnsubscribePropertyChange [Method]
Use this method to cancel notifications of when the specified property changes. Notifications will cease to be sent via the PropertyChanged event.
Defined As
[VBA] UnsubscribePropertyChange(interfaceName As String, propertyName As
String)
[Cicode] UnsubscribePropertyChange(STRING interfaceName, STRING propertyName)
[C++] HRESULT UnsubscribePropertyChange(BSTR interfaceName, BSTR propertyName)
Parameters
interfaceName
[in] Name of the interface that the property you want to remove notifications for is defined
on.
propertyName
[in]
Execution Result
If the function succeeds, the return value will be Success. If the interfaceName or propertyName is a bad string, the return value will be InvalidArgument. If any other problem occurs, the return value will be GeneralFailure.
See Also
IProcessAnalyst.SubscribeForPropertyChange [Method], PropertyChanged [Event]
187
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
myPage_AN35.UnsubscribePropertyChange "IProcessAnalyst","ZoomMode"
End Sub
[Cicode]
Sub Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
_ObjectCallMethod(hProcessAnalyst, "UnsubscribePropertyChange","IProcessAnalyst",
"ZoomMode");
End Sub
188
[VBA]
Sub Example()
Dim privilege As Boolean
Getting Property value
privilege = myPage_AN35.AdminPrivilegeLevel
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT privilege;
// Getting current property value
privilege = _ObjectGetProperty(hProcessAnalyst,"AdminPrivilegeLevel");
END
IProcessAnalyst.AutoScroll [Property][Get/Set]
Gets or Sets the automatic scrolling of all pens as time passes.
Defined As
[VBA] Boolean AutoScroll
[Cicode] INT AutoScroll
[C++] VARIANT_BOOL AutoScroll
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
This function does not synchronize the pens to now. The display will be updated according
to the value of the DisplayRefreshRate property.
Limits
True (-1): Autoscroll is On
False (0): Autoscroll is Off
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim autoScroll As Boolean
Getting Property value
autoScroll = myPage_AN35.AutoScroll
Setting Property value
myPage_AN35.AutoScroll = True
End Sub
189
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT autoScroll;
// Getting current property value
autoScroll = _ObjectGetProperty(hProcessAnalyst, "AutoScroll");
// Setting Property to true
_ObjectSetProperty(hProcessAnalyst, "AutoScroll", -1);
END
IProcessAnalyst.BackgroundColor [Property][Get/Set]
Gets or sets the background color for the Process Analyst.
Defined As
[VBA] Long BackgroundColor
[Cicode] INT BackgroundColor
[C++] OLECOLOR BackgroundColor
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
The background is the area under the panes. To calculate the integer value required for a
color, apply the following formula:
(65536 * Blue) + (256 * Green) + (Red)
where Red, Green, and Blue are 0-255.
Limits
True (-1): Context menu is enabled
False (0): Context menu is disabled
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim backgroundColor As Long
Getting Property value
backgroundColor = myPage_AN35.BackgroundColor
Setting Property value to Red
myPage_AN35.BackgroundColor = 255
End Sub
190
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT backgroundColor;
// Getting current property value
backgroundColor = _ObjectGetProperty(hProcessAnalyst,"BackgroundColor");
// Setting Property to Red
_ObjectSetProperty(hProcessAnalyst, "BackgroundColor", 255);
END
IProcessAnalyst.CommandSystem [Property][Get]
Gets a reference to the Process Analysts Command System object. With this object you can
execute commands, query command information, and create your own custom commands.
Defined As
[VBA] Object CommandSystem
[Cicode] OBJECT CommandSystem
[C++] ICommandSystem* CommandSystem
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim commandSystem As Object
Retrieve command system
Set commandSystem = myPage_AN35.CommandSystem
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT hCommandSystem;
// Retrieve command system
hCommandSystem = _ObjectGetProperty(hProcessAnalyst, "CommandSystem");
END
191
IProcessAnalyst.ContextMenu [Property][Get/Set]
Enables or disables the context menu which is displayed at Run-time when an operator
clicks the right mouse button on the graphical display.
Defines As
[VBA] Boolean ContextMenu
[Cicode] INT ContextMenu
[C++] VARIANT_BOOL ContextMenu
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim contextMenu As Boolean
Getting Property value
contextMenu = myPage_AN35.ContextMenu
Disable the context menu
myPage_AN35.ContextMenu = False
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT contextMenu;
// Getting current property value
contextMenu =_ObjectGetProperty(hProcessAnalyst,"ContextMenu");
// Disable the context menu
_ObjectSetProperty(hProcessAnalyst, "ContextMenu", 0);
END
IProcessAnalyst.Cursors [Property][Get]
Gets a reference to the Process Analysts cursors collection. With this object you can create
new, and browse existing cursors.
Defined As
[VBA] Object Cursors
[Cicode] OBJECT Cursors
[C++] ICursors* Cursors
Execution Result
192
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim cursors As Object
Retrieve cursors collection
Set cursors = myPage_AN35.Cursors
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT hCursors;
// Retrieve cursor collection
hCursors = _ObjectGetProperty(hProcessAnalyst, "Cursors");
END
IProcessAnalyst.DataRequestRate [Property][Get/Set]
Indicates how often (in milliseconds) the Process Analyst Control will request data from
the Trends Server(s). Internally the Process Analyst will choose the most optimum request
rate for data, but this property can be used to slow the request down further.
Defined As
[VBA] Integer DataRequestRate
[Cicode] INT DataReqestRate
[C++] short DataRequestRate
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Remarks
This property is useful for controlling the load on a Trends Server. The higher the figure
the less load will be put on the Trends Server(s).
Limits
Minimum = 10 milliseconds
Maximum = 60000 milliseconds (1 minute)
Default = 1000 milliseconds (1 second)
Calling Syntax
193
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim requestRate As Integer
Retrieve request rate
requestRate = myPage_AN35.DataRequestRate
Set request rate
myPage_AN35.DataRequestRate = 2000
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT requestRate;
// Retrieve property value
requestRate = _ObjectGetProperty(hProcessAnalyst, "DataRequestRate");
// Set property value to 2 seconds
_ObjectSetProperty(hProcessAnalyst, "DataRequestRate", 2000);
END
IProcessAnalyst.DisplayRefreshRate [Property][Get/Set]
Indicates how fast the Process Analyst Control display is updated in milliseconds. The default is an update of 1 second, which provides optimum client performance and visual
feedback.
Defined As
[VBA] Integer DisplayRefreshRate
[Cicode] INT DisplayRefreshRate
[C++] short DisplayRefreshRate
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
This property is useful for controlling the performance of a client (CPU usage).
Limits
Minimum = 10 milliseconds (most machines will not be fast enough to keep up).
Maximum = 60000 milliseconds (1 minute).
Default = 1000 milliseconds (1 second).
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
194
[VBA]
Sub Example()
Dim requestRate As Integer
Retrieve request rate
requestRate = myPage_AN35.DisplayRefreshRate
Set request rate
myPage_AN35.DisplayRefreshRate = 2000
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT requestRate;
// Retrieve request rate
requestRate = _ObjectGetProperty(hProcessAnalyst, "DisplayRefreshRate");
// Set request rate
_ObjectSetProperty(hProcessAnalyst, "DisplayRefreshRate", 2000);
END
195
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim language As String
Retrieve current language
language = myPage_AN35.Language
Set language to Japanese
myPage_AN35.Language = "ja-JP"
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
STRING language;
// Retrieve current language
language = _ObjectGetProperty(hProcessAnalyst, "Language");
// Set language to Japanese
_ObjectSetProperty(hProcessAnalyst, "Language", "ja-JP");
END
IProcessAnalyst.LastSelectedPen [Property][Get]
Retrieves the last selected pen on the Process Analyst.
Defined As
[VBA] Object LastSelectedPen
[Cicode] OBJECT LastSelectedPen
[C++] IPen* LastSelectedPen
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Remarks
The last selected pen is also referred to as the "primary" selection. If there are no pens in the
view, an invalid object will be returned.
Limits
A reference to the primary selected pen.
Invalid object when there are no pens on the display.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
196
[VBA]
Sub Example()
Dim selectedPen As Object
Retrieve primary selection
Set selectedPen = myPage_AN35.LastSelectedPen
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT selectedPen;
// Retrieve primary selection
selectedPen = _ObjectGetProperty(hProcessAnalyst, "LastSelectedPen");
END
IProcessAnalyst.LockedPens [Property][Get/Set]
Determines whether all the pens across all panes in the Process Analyst control are locked
together.
Defined As
[VBA] Boolean LockedPens
[Cicode] INT LockedPens
[C++] VARIANT_BOOL LockedPens
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Remarks
While this property is enabled, any operation applied to the selected pen is applied to all
pens. When the property is disabled, the pens will lose the lock logic, and any interaction
technique will apply to the individual pen with selection focus.
If this property is disabled and then enabled, all pens assume the same scale, timespan, and
end time position as the selected pen.
Limits
True (-1): Pens are locked.
False (0): Pens are unlocked.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim locked As Boolean
Get current locked status
197
locked = myPage_AN35.LockedPens
Turn off locked Pens
myPage_AN35.LockedPens = False
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT lockedPens;
// Get current locked status
lockedPens = _ObjectGetProperty(hProcessAnalyst, "LockedPens");
// Turn off locked Pens
_ObjectSetProperty(hProcessAnalyst, "LockedPens", 0);
END
IProcessAnalyst.NumberofSamples[Property][Get/Set]
Specifies the date/time axis span of each pen in number of samples. More or less detail for
each pen can be displayed by increasing or decreasing the value of this property respectively.
Note: The value entered into the Number of Samples box in the Process Analyst Properties
dialog box is closely tied to the display resolution. The default setting is ideal for screen resolutions from 1024x768 to 1280x1024. The association between Number of Samples and the
display resolution occurs because for each sample shown on screen the Process Analyst attempts to leave a small gap to allow for sample markers. Because the Process Analyst
shows samples when they occur, it requires less data than a traditional trend client. Retrieving data is expensive and the more data you retrieve the more time the request takes. It is
recommended that this parameter not exceed 500.
Defined As
[VBA] Integer NumberofSamples
[Cicode] INT NumberofSamples
[C++] short NumberofSamples
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
This property is useful for controlling the performance of a client. (CPU usage).
By dividing a pens time span by the value of this property, you can calculate the current
display period of the pen. The Process Analyst will only display a maximum of one sample
per display period. See Data Compaction for details.
Limits
Minimum = 10
Maximum = 5000
Default = 300
198
See Also
Exporting Pen Data
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim numOfSamples As Integer
Retrieve number of samples
numOfSamples = myPage_AN35.NumberOfSamples
Set request rate
myPage_AN35.NumberOfSamples = numOfSamples
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT numOfSamples;
// Retrieve number of samples
numOfSamples = _ObjectGetProperty(hProcessAnalyst, "NumberOfSamples");
// Set request rate
_ObjectSetProperty(hProcessAnalyst, "NumberOfSamples", 500);
END
IProcessAnalyst.ObjectView [Property][Get]
Gets a reference to the ObjectView object. With this object you can manipulate the look of
the ObjectView.
Defined As
[VBA] Object ObjectView
[Cicode] OBJECT ObjectView
[C++] IObjectView* ObjectView
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim objectView As Object
Retrieve the objectview
Set objectView = myPage_AN35.ObjectView
End Sub
199
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT objectView;
// Retrieve the objectview
objectView = _ObjectGetProperty(hProcessAnalyst, "ObjectView");
END
IProcessAnalyst.Panes [Property][Get]
Gets a reference to the Panes collection. With this object you can create new, and browse
existing panes.
Defined As
[VBA] Object Panes
[Cicode] OBJECT Panes
[C++] IPanes* Panes
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim panes As Object
Retrieve the panes collection
Set panes = myPage_AN35.Panes
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT panes;
// Retrieve the panes collection
panes = _ObjectGetProperty(hProcessAnalyst, "Panes");
END
IProcessAnalyst.PrimaryPath [Property][Get/Set]
Specifies the primary location for saving and loading Process Analyst views.
Defined As
200
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
The primary and secondary path properties together provide a file redundancy option for
large systems that need to store Process Analyst Views in a shared location. Whenever a
load operation occurs from either of these locations, the loaded file will be synchronized
with each location, such that the latest version of the file appears in both locations.
See Also
IProcessAnalyst.SecondaryPath [Property][Get/Set], IProcessAnalyst.LoadFromFile
[Method], IProcessAnalyst.SaveToFile [Method]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim path As String
Retrieve the path
path = myPage_AN35.PrimaryPath
Set the path
myPage_AN35.PrimaryPath = "\\computer1\PA Views"
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
STRING path;
// Retrieve the path
path = _ObjectGetProperty(hProcessAnalyst, "PrimaryPath");
// Set the path
_ObjectSetProperty(hProcessAnalyst, "PrimaryPath", "\\computer1\PA Views");
END
IProcessAnalyst.SecondaryPath [Property][Get/Set]
Specifies the secondary location for saving and loading Process Analyst views.
Defined As
[VBA] String SecondaryPath
[Cicode] STRING SecondaryPath
[C++] BSTR SecondaryPath
201
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
The secondary and primary path properties together provide a file redundancy option for
large systems that need to store Process Analyst Views in a shared location. Whenever a
load operation occurs from either of these locations, the loaded file will be synchronized
with each location, such that the latest version of the file appears in both locations.
See Also
IProcessAnalyst.LoadFromFile [Method], IProcessAnalyst.PrimaryPath [Property][Get/
Set], IProcessAnalyst.SaveToFile [Method]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim path As String
Retrieve the path
path = myPage_AN35.PrimaryPath
Set the path
myPage_AN35.SecondaryPath = "\\computer1\PA Views"
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
STRING path;
// Retrieve the path
path = _ObjectGetProperty(hProcessAnalyst, "SecondaryPath");
// Set the path
_ObjectSetProperty(hProcessAnalyst, "SecondaryPath", "\\computer1\PA Views");
END
IProcessAnalyst.Toolbars [Property][Get]
Gets a reference to the Toolbars collection. With this object you can browse and modify existing toolbars.
Defined As
[VBA] Object Toolbars
[Cicode] OBJECT Toolbars
[C++] IToolbars* Toolbars
Execution Result
202
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim toolbars As Object
Retrieve the toolbars collection
Set toolbars = myPage_AN35.Toolbars
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
OBJECT toolbars;
// Retrieve the toolbars collection
toolbars = _ObjectGetProperty(hProcessAnalyst, "Toolbars");
END
IProcessAnalyst.WritePrivilegeLevel [Property][Get]
Returns the privilege level required to save Process Analyst views to the Primary and Secondary paths.
Defined As
[VBA] Integer WritePrivilegeLevel
[Cicode] INT WritePrivilegeLevel
[C++] short WritePrivilegeLevel
Execution Result
If the property get succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument.
Remarks
The privilege cannot be set via automation. It must be set in the property pages at design
time (for example, in Graphics Builder).
See Also
IProcessAnalyst.SaveToFile [Method], IProcessAnalyst.PrimaryPath [Property][Get/Set],
IProcessAnalyst.SecondaryPath [Property][Get/Set]
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
203
[VBA]
Sub Example()
Dim privilege As Integer
Retrieve the privilege
privilege = myPage_AN35.WritePrivilegeLevel
End Sub
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INTEGER privilege;
// Retrieve the privilege
privilege = _ObjectGetProperty(hProcessAnalyst, "WritePrivilegeLevel");
END
IProcessAnalyst.ZoomMode [Property][Get/Set]
Enables or disables the box zooming mode for the Process Analyst.
Defined As
[VBA] Boolean ZoomMode
[Cicode] INT ZoomMode
[C++] VARIANT_BOOL ZoomMode
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument.
Remarks
Setting this mode will verify only box zooming operations can occur; all other operations
such as interactive scrolling and scaling will cease.
Limits
True (-1): Enable zoom mode.
False (0): Disable zoom mode.
Calling Syntax
Assumes you have a page called "myPage" and the Process Analyst has been named
"AN35".
[VBA]
Sub Example()
Dim zoomMode As Boolean
Retrieve the mode
zoomMode = myPage_AN35.ZoomMode
Set the path
myPage_AN35.ZoomMode = True
End Sub
204
[Cicode]
FUNCTION Example()
OBJECT hProcessAnalyst = ObjectByName("AN35");
INT zoomMode;
// Retrieve the zoomMode
zoomMode = _ObjectGetProperty(hProcessAnalyst, "ZoomMode");
// Set the zoomMode
_ObjectSetProperty(hProcessAnalyst, "ZoomMode", -1);
END
IToolbar Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IToolbar
Methods (0)
Properties (2)
IToolbar.Visible [Property][Get/Set]
IToolbar.Buttons [Property][Get]
IToolbar.Buttons [Property][Get]
Gets this Toolbars collection of Buttons.
Defined As
[VBA] Object Buttons
[Cicode] OBJECT Buttons
[C++] IToolbarButtons* Buttons
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid Toolbar object as retrieved from a Process Analysts
Toolbars collection. (for example, VBA: ProcessAnalyst.Toolbars.Item(1))
[VBA]
Sub Example(Toolbar As Object)
Dim buttons As Object
Getting Property value
Set buttons = Command.Buttons
End Sub
205
[Cicode]
FUNCTION Example(OBJECT hToolbar)
// Getting property value
OBJECT hButtons = _ObjectGetProperty(hToolbar, "Buttons");
END
IToolbar.Visible [Property][Get/Set]
Gets and Sets this Toolbars Visible state.
Defined As
[VBA] Boolean Visible
[Cicode] INT Visible
[C++] VARIANT_BOOL Visible
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Limits
True (-1): Visible
False (0): Invisible
Remarks
If the toolbar is not visible, all buttons tied to it will not appear. Only the main toolbar can
be hidden. Setting the new toolbar to invisible will result in a GeneralFailure.
Calling Syntax
This example assumes there is a valid Toolbar object as retrieved from a Process Analysts
Toolbars collection. (for example, VBA: ProcessAnalyst.Toolbars.Item(1))
[VBA]
Sub Example(Toolbar As Object)
Dim visible As Boolean
Getting Property value
visible = Command.Visible
Setting Property value
Command.Visible = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hToolbar)
// Getting property value
INT nVisible = _ObjectGetProperty(hToolbar, "Visible");
// Setting property value
_ObjectSetProperty(hToolbar, "Visible", 0);
206
END
IToolbars Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IToolbar
Methods (0)
Properties (3)
IToolbars.Count [Property][Get]
IToolbars.Item [Property][Get]
IToolbars._NewEnum [Property][Get]
IToolbars.Item [Property][Get]
Gets the Toolbar at a supplied index location in this collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, IToolbar* Item)
Parameters
index
[in] Indicates the index location of the child item to return from this collection. (One based)
207
[Cicode]
FUNCTION Example(OBJECT hToolbars)
// Getting property value
OBJECT hToolbar = _ObjectCallMethod(hToolbars, "get_Item", 1);
END
IToolbars._NewEnum [Property][Get]
This allows For.. Each.. Next integration in VB.
Calling Syntax
This example assumes there is a valid Toolbars collection as retrieved from an ObjectView
(for example, VBA: objectView.Toolbars). This property is not applicable to Cicode.
[VBA]
Sub Example(Toolbars As Object)
Dim toolbar As Object
Dim count Object
Using Property
For Each toolbar In Toolbars
count = count + 1
Next toolbar
End Sub
IToolbars.Count [Property][Get]
Gets the number of Toolbars in this collection.
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Execution Result
If the property get succeeds, the return value will be Success. If the return variable is bad,
the return value will be InvalidArgument.
Calling Syntax
This example assumes there is a valid Toolbars collection as retrieved from an ObjectView.
(for example, VBA: objectView.Toolbars).
[VBA]
Sub Example(Toolbars As Object)
Dim count As Long
Getting Property value
count = Toolbars.Count
End Sub
208
[Cicode]
FUNCTION Example(OBJECT hToolbars)
// Getting property value
INT nCount
= _ObjectGetProperty(hToolbars, "Count");
END
IToolbarButton Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IToolbar
Methods (0)
Properties (1)
IToolbarButton.CommandId [Property][Get]
IToolbarButton.CommandId [Property][Get]
Gets the ID of the associated command for this button.
Defined As
[VBA] String CommandId
[Cicode] STRING CommandId
[C++] BSTR CommandId
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (for example, VBA: objectView.Toolbars.Item(1).Buttons).
[VBA]
Sub Example(Buttons As Object)
Dim commandId As String
Getting Property value
commandId = Buttons.CommandId
End Sub
[Cicode]
FUNCTION Example(OBJECT hButtons)
// Getting property value
STRING nCommandId = _ObjectGetProperty(hButtons, "CommandId");
END
209
IToolbarButtons Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] IToolbar
Methods (3)
IToolbarButtons.Add [Method]
IToolbarButtons.Remove [Method]
IToolbarButtons.RemoveAll [Method]
Properties (3)
IToolbarButtons.Count [Property][Get]
IToolbarButtons.Item [Property][Get]
IToolbarButtons._NewEnum [Property][Get]
IToolbarButtons._NewEnum [Property][Get]
This allows For.. Each.. Next integration in VB.
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (for example, VBA: objectView.Toolbars.Item(1).Buttons). This property is not applicable to Cicode.
[VBA]
Sub Example(Buttons As Object)
Dim button As Object
Dim count Object
Using Property
For Each button In Buttons
count = count + 1
Next button
End Sub
IToolbarButtons.Add [Method]
Adds a toolbar button linked to the command identified by the supplied Command Id to
this Toolbar.
Defined As
[VBA] Add(CommandId as String)
[Cicode] Add (STRING CommandId)
[C++] HRESULT Add (BSTR CommandId)
Parameters
210
CommandId
[in]
The Command ID of a command to link to the new button that is being added.
Execution Result
If this method succeeds, the return value will be Success. If the command ID is invalid, the
return value will be InvalidArgument.
Remarks
If this method succeeds, the ID supplied will be linked to the new button that is added. The
Commands properties will be applied to that button. (its icon, tooltip, security) If this button is pressed, the CommandExecuted event will raise with this Command ID.
See Also
CommandExecuted [Event]
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (for example, VBA: objectView.Toolbars.Item(1).Buttons).
[VBA]
Sub Example(Buttons As Object)
Buttons.Add("Citect_Command_Help")
End Sub
[Cicode]
FUNCTION Example(OBJECT hButtons)
_ObjectCallMethod(hButtons, "Add", "Citect_Command_Help");
END
IToolbarButtons.Count [Property][Get]
Gets the number of Buttons in this collection.
Defined As
[VBA] Long Count
[Cicode] INT Count
[C++] int Count
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. (for example, VBA: objectView.Toolbars.Item(1).Buttons).
[VBA]
Sub Example(Buttons As Object)
Dim count As Long
Getting Property value
count = Buttons.Count
End Sub
211
[Cicode]
FUNCTION Example(OBJECT hButtons)
// Getting property value
INT nCount = _ObjectGetProperty(hButtons, "Count");
END
IToolbarButtons.Item [Property][Get]
Gets the button at a supplied index location in this collection.
Defined As
[VBA] Item(index As Long) as Object
[Cicode] OBJECT Item(INT index)
[C++] Item(int index, IToolbarButton* Item)
Parameters
index
[in]
Indicates the index location of the button to return from this collection. (One based)
Execution Results
If the property get succeeds, the return value will be success. If the index is out of range,
the return value will be InvalidArgument. If the method fails, the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (for example, VBA: objectView.Toolbars.Item(1).Buttons).
[VBA]
Sub Example(Buttons As Object)
Dim toolbar As Object
Getting Property value
Set toolbar = Buttons.Item(1)
End Sub
[Cicode]
FUNCTION Example(OBJECT hButtons)
// Getting property value
OBJECT hToolbar = _ObjectCallMethod(hButtons, "get_Item", 1);
END
IToolbarButtons.Remove [Method]
Removes a button from this toolbar at the supplied index.
212
Defined As
[VBA] Remove(Index as Integer)
[Cicode] Remove (INT Index)
[C++] HRESULT Remove (int Index)
Parameters
Index
[in]
Execution Results
If the method succeeds, the return value will be Success. If the index is out of range, the return value will be InvalidRange. If the method fails, the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. (for example, VBA: objectView.Toolbars.Item(1).Buttons).
[VBA]
Sub Example(Buttons As Object)
Buttons.Remove(1)
End Sub
[Cicode]
FUNCTION Example(OBJECT hButtons)
_ObjectCallMethod(hButtons, "Remove", 1);
END
IToolbarButtons.RemoveAll [Method]
Removes all buttons from this Toolbar.
Defined As
[VBA] RemoveAll()
[Cicode] RemoveAll()
[C++] HRESULT RemoveAll()
Execution Results
If this method succeeds, the return value will be Success. If this method fails, the return value will be GeneralFailure.
Calling Syntax
This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. (for example, VBA: objectView.Toolbars.Item(1).Buttons)
213
[VBA]
Sub Example(Buttons As Object)
Buttons.RemoveAll()
End Sub
[Cicode]
FUNCTION Example(OBJECT hButtons)
_ObjectCallMethod(hButtons, "RemoveAll");
END
ITrendCursor Interface
Defined As
[VBA] Object
[Cicode] OBJECT
[C++] ITrendCursor
Methods
ITrendCursor.GetValue [Method]
ITrendCursor.Delete [Method]
Properties
ITrendCursor.Color [Property][Get/Set]
ITrendCursor.Width [Property][Get/Set]
ITrendCursor.Position [Property][Get/Set]
ITrendCursor.Visible [Property][Get/Set]
ITrendCursor.Collection [Property][Get]
ITrendCursor.Name [Property][Get/Set]
ITrendCursor.PenLabelVisible [Property][Get/Set]
ITrendCursor.PenLabelWidth [Property][Get/Set]
ITrendCursor.PenLabelHeight [Property][Get/Set]
ITrendCursor.PenLabelX [Property][Get/Set]
ITrendCursor.PenLabelY [Property][Get/Set]
ITrendCursor.LabelsLocked [Property][Get/Set]
ITrendCursor.Collection [Property][Get]
Obtain a reference to the ICursors collection that contains the cursor.
Defined As
[VBA] Object Collection
[Cicode] OBJECT Collection
[C++] HRESULT Collection(ICursors **cursor)
Execution Result
214
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will
be GeneralFailure.
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim cursors As Object
Getting Property collection
Set cursors = cursor.Collection
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
OBJECT hCursors;
// Getting collection
hCursors = _ObjectGetProperty(hCursor, "Collection");
END
ITrendCursor.Color [Property][Get/Set]
Gets or Sets the line color of the cursor.
Defined As
[VBA] Long Color
[Cicode] INT Color
[C++] OLE_COLOR Color
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the cursor is deleted the return value will
be GeneralFailure.
Remarks
The Cicode function PackedRGB can be used to convert an RGB color specification to the
OLE_COLOR type used by the Process Analyst.
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim trendCursorColor As Long
Getting Property value
trendCursorColor = cursor.Color
Setting Property value (to red)
215
cursor.Color = 255
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
INT trendCursorColor;
// Getting current property value
trendCursorColor = _ObjectGetProperty(hCursor, "Color");
// Setting Property to blue
_ObjectSetProperty(hCursor, "Color", PackedRGB(0, 0, 255));
END
ITrendCursor.Delete [Method]
Deletes the cursor.
Defined As
[VBA] Delete()
[Cicode] Delete()
[C++] HRESULT Delete()
Execution Result
If the function succeeds, the return value will be Success. If the cursor is deleted, the return
value will be GeneralFailure.
Remarks
This method will remove the cursor from the Process Analyst. Any current references to
the cursor will continue to be valid; however, operations on them will result in failure.
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
cursor.Delete
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
_ObjectCallMethod(hCursor, "Delete");
END
216
ITrendCursor.GetValue [Method]
Gets the value at the cursor for the given pen.
Defined As
[VBA] GetValue(pen As Object, asLocal As Boolean, time As Date, milli As Integer, value As String)
[Cicode] GetValue(OBJECT pen, INT asLocal, REAL time, INT milli, STRING value)
[C++] HRESULT Create GetValue(IPen* pen, VARIANT_BOOL asLocal, DATE *time,
short *milli, BSTR *value)
Parameters
pen
[in]
asLocal
[in]
Set to True (-1) if returned time is required in Local form (False (0) for UTC).
time
[out] The time represented by the cursor position. This is accurate to one second and must
value
[out] The value of the trend for the given pen at the returned time.
Execution Result
If the function succeeds, the return value will be Success. If one of the return variables are
bad, then the return value will be InvalidArgument. If the cursor is deleted, the return value will be GeneralFailure.
Calling Syntax
This example assumes you have a valid reference to a cursor and a pen.
[VBA]
Sub Example(cursor As Object, pen As Object)
Dim asLocal As Boolean
Dim cursorTime As Date
Dim milli As Integer
Dim cursorValue As String
asLocal = 0
cursor.GetValue pen, asLocal, cursorTime, milli, cursorValue
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor, OBJECT hPen)
INT asLocal = 0;
REAL time;
INT milli;
STRING value;
217
ITrendCursor.LabelsLocked [Property][Get/Set]
Get or Set whether the cursor label positions are locked.
Defined As
[VBA] Boolean LabelsLocked
[Cicode] INT LabelsLocked
[C++] VARIANT_BOOL LabelsLocked
Limits
True (-1): Labels are locked
False (0): Labels are unlocked
Remarks
If labels are locked, they will not move when the cursor position is changed.
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim labelsLocked As Boolean
Getting Property value
labelsLocked = cursor.LabelsLocked
Setting Property value (False)
cursor.LabelsLocked = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
INT labelsLocked;
// Getting current property value
labelsLocked = _ObjectGetProperty(hCursor, "LabelsLocked");
// Setting Property to False (0)
_ObjectSetProperty(hCursor, "LabelsLocked", 0);
END
ITrendCursor.Name [Property][Get/Set]
Get or Set the Name of the cursor.
Defined As
[VBA] String Name
[Cicode] STRING Name
218
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the name is 0 characters or greater than
250, the return value will be InvalidArgument.
If the cursor is deleted, the return value will be GeneralFailure.
Remarks
When setting the name property, remember that cursor names must be unique. Setting the
Name property will fail if a cursor with that name already exists.
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim name As String
Getting Property value
name = cursor.Name
Setting Property value
cursor.Name = "NewCursor"
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
STRING name;
// Getting current property value
name = _ObjectGetProperty(hCursor, "Name");
// Setting Property
_ObjectSetProperty(hCursor, "Name", "NewCursor");
END
ITrendCursor.PenLabelHeight [Property][Get/Set]
Get or Set the label height of the specified pen on this cursor.
Defined As
[VBA] Double PenLabelHeight(pen As Object)
[Cicode] REAL PenLabelHeight (OBJECT pen)
[C++] HRESULT PenLabelHeight (IPen* pen, double labelHeight)
Parameters
pen
[in]
Execution Result
219
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the cursor is deleted the return value will
be GeneralFailure.
Remarks
The value of height is represented in pixels.
See Also
ITrendCursor.PenLabelWidth [Property][Get/Set], ITrendCursor.PenLabelX [Property][Get/Set], ITrendCursor.PenLabelY [Property][Get/Set]
Calling Syntax
This example assumes you have a valid reference to a cursor and a pen.
[VBA]
Sub Example(cursor As Object, pen As Object)
Dim labelHeight As Double
Getting Property value
labelHeight = cursor.PenLabelHeight(pen)
Setting Property value (100)
cursor.PenLabelHeight (pen) = 100
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor, OBJECT hPen)
REAL labelHeight;
// Getting current property value
labelHeight = _ObjectCallMethod(hCursor , "get_PenLabelHeight", hPen);
// Setting Property to 100
_ObjectCallMethod(hCursor , "put_PenLabelHeight", hPen, 100);
END
ITrendCursor.PenLabelVisible [Property][Get/Set]
Get or Set the label visibility of the specified pen on this cursor.
Defined As
[VBA] Boolean PenLabelVisible(pen As Object)
[Cicode] INT PenLabelVisible(OBJECT pen)
[C++] HRESULT PenLabelVisible(IPen* pen, VARIANT_BOOL labelVisible)
Parameters
pen
[in]
Execution Result
220
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will
be GeneralFailure.
Limits
True (-1): Label is visible.
False (0): Label is hidden.
Remarks
Setting the visibility of the cursor using the Visible property will override the pen label visibility. For example, if a particular label is hidden using PenLabelVisible, this label will be
shown again if Visible is set to True (-1).
See Also
ITrendCursor.Visible [Property][Get/Set]
Calling Syntax
This example assumes you have a valid reference to a cursor and a pen.
[VBA]
Sub Example(cursor As Object, pen As Object)
Dim labelVisible As Boolean
Getting Property value
labelVisible = cursor.PenLabelVisible(pen)
Setting Property value (False)
cursor.PenLabelVisible(pen) = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor, OBJECT hPen)
INT labelVisible;
// Getting current property value
labelVisible = _ObjectCallMethod(hCursor, "get_PenLabelVisible", hPen);
// Setting Property to FALSE
_ObjectCallMethod(hCursor , "put_PenLabelVisible", hPen, 0);
END
ITrendCursor.PenLabelWidth [Property][Get/Set]
Get or Set the label width of the specified pen on this cursor.
Defined As
[VBA] Double PenLabelWidth(pen As Object)
[Cicode] REAL PenLabelWidth (OBJECT pen)
[C++] HRESULT PenLabelWidth (IPen* pen, double labelWidth)
Parameters
pen
[in]
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the cursor is deleted the return value will
be GeneralFailure.
Remarks
The value of width is represented in pixels.
See Also
ITrendCursor.PenLabelHeight [Property][Get/Set], ITrendCursor.PenLabelX [Property][Get/Set], ITrendCursor.PenLabelY [Property][Get/Set]
Calling Syntax
This example assumes you have a valid reference to a cursor and a pen.
[VBA]
Sub Example(cursor As Object, pen As Object)
Dim labelWidth As Double
Getting Property value
labelWidth = cursor.PenLabelWidth(pen)
Setting Property value (100)
cursor.PenLabelWidth(pen) = 100
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor, OBJECT hPen)
REAL labelWidth;
// Getting current property value
labelWidth = _ObjectCallMethod(hCursor , "get_PenLabelWidth", hPen);
// Setting Property to 100
_ObjectCallMethod(hCursor , "put_PenLabelWidth", hPen, 100);
END
ITrendCursor.PenLabelX [Property][Get/Set]
Get or Set the labels X-Axis position of the specified pen on this cursor.
Defined As
[VBA] Double PenLabelX(pen As Object)
[Cicode] REAL PenLabelX (OBJECT pen)
[C++] HRESULT PenLabelX (IPen* pen, double labelX)
Parameters
pen
[in]
Execution Result
222
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the cursor is deleted the return value will
be GeneralFailure.
Remarks
The label position is represented in pixels.
See Also
ITrendCursor.PenLabelWidth [Property][Get/Set], ITrendCursor.PenLabelHeight [Property][Get/Set], ITrendCursor.PenLabelY [Property][Get/Set]
Calling Syntax
This example assumes you have a valid reference to a cursor and a pen.
[VBA]
Sub Example(cursor As Object, pen As Object)
Dim labelX As Double
Getting Property value
labelX = cursor.PenLabelX(pen)
Setting Property value (100)
cursor.PenLabelX(pen) = 100
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor, OBJECT hPen)
REAL labelX;
// Getting current property value
labelX = _ObjectCallMethod(hCursor , "get_PenLabelX", hPen);
// Setting Property to 100
_ObjectCallMethod(hCursor , "put_PenLabelX", hPen, 100);
END
ITrendCursor.PenLabelY [Property][Get/Set]
Get or Set the labels Y-Axis position of the specified pen on this cursor.
Defined As
[VBA] Double PenLabelY(pen As Object)
[Cicode] REAL PenLabelY (OBJECT pen)
[C++] HRESULT PenLabelY (IPen* pIPen, double labelY)
Remarks
The label position is represented in pixels
Syntax
ITrendCursor.PenLabelWidth [Property][Get/Set], ITrendCursor.PenLabelHeight [Property][Get/Set], ITrendCursor.PenLabelX [Property][Get/Set]
Calling Syntax
223
This example assumes you have a valid reference to a cursor and a pen.
[VBA]
Sub Example(cursor As Object, pen As Object)
Dim labelY As Double
Getting Property value
labelY = cursor.PenLabelY(pen)
Setting Property value (100)
cursor.PenLabelY(pen) = 100
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor, OBJECT hPen)
REAL labelY;
// Getting current property value
labelY = _ObjectCallMethod(hCursor , "get_PenLabelY", hPen);
// Setting Property to 100
_ObjectCallMethod(hCursor , "put_PenLabelY", hPen, 100);
END
ITrendCursor.Position [Property][Get/Set]
Get or Set the cursors physical position in the Process Analyst.
Defined As
[VBA] Long Position
[Cicode] INT Position
[C++] int Position
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will
be GeneralFailure.
Remarks
The cursor position is measured as the number of pixels from the left of the Process Analyst
graph.
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim position As Integer
Getting Property value
position = cursor.Position
Setting Property value
cursor.Position = 300
End Sub
224
[Cicode]
FUNCTION Example(OBJECT hCursor)
INT position;
// Getting current property value
position = _ObjectGetProperty(hCursor, "Position");
// Setting Property to (300)
_ObjectSetProperty(hCursor, "Position", 300);
END
ITrendCursor.Visible [Property][Get/Set]
Get or Set whether the cursor is visible.
Defined As
[VBA] Boolean Visible
[Cicode] INT Visible
[C++] VARIANT_BOOL Visible
Execution Result
If the property get/set succeeds, the return value will be Success. If the return variable is
bad, the return value will be InvalidArgument. If the cursor is deleted, the return value will
be GeneralFailure.
Remarks
This property controls the visibility of the cursor. The visibility is also applied to all labels
associated with the cursor.
See Also
ITrendCursor.PenLabelVisible [Property][Get/Set]
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim visibility As Boolean
Getting Property value
visibility = cursor.Visible
Setting Property value (False)
cursor.Visible = False
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
INT visibility;
// Getting current property value
225
ITrendCursor.Width [Property][Get/Set]
Gets or Sets the line width of the cursor.
Defined As
[VBA] Long Width
[Cicode] INT Width
[C++] int Width
Execution Result
If the property get/set succeeds the return value will be Success. If the return variable is bad
then the return value will be InvalidArgument. If the cursor is deleted the return value will
be GeneralFailure.
Limits
Minimum (0)
Maximum (8)
Calling Syntax
This example assumes you have a valid reference to a cursor.
[VBA]
Sub Example(cursor As Object)
Dim lineWidth As Long
Getting Property value
lineWidth = cursor.Width
Setting Property value
cursor.Width = 5
End Sub
[Cicode]
FUNCTION Example(OBJECT hCursor)
INT lineWidth;
// Getting current property value
lineWidth = _ObjectGetProperty(hCursor, "Width");
// Setting Property to 5
_ObjectSetProperty(hCursor, "Width", 5);
END
226
Handling an Event
The Process Analyst contains many events that are triggered when certain actions occur.
See Events.
To handle an event you must provide a handler for the event by prepending your Process
Analysts event class name with the event name you want to handle and an underscore.
The example below shows how to define a handler for the "MouseClick" event with an
event class defined as "CPA_E".
[VBA]
Sub CPA_E_MouseClick(pen As Object, button As Integer)
End Sub
[Cicode]
FUNCTION CPA_E_MouseClick(OBJECT hPA, OBJECT hPen, INT button)
END
The following example uses the MouseClick event to cancel the box zoom operation when
the right mouse button is clicked.
Note: When referring to an ActiveX object in VBA, you need to prepend it with the page
name and an underscore. In the example below, the page name is called "test". The object
name is "CPA" and the event class name is "CPA_E".
227
[VBA]
Sub CPA_MouseClick(pen As Object, button As Integer)
Dim bZoomMode As Boolean
If (button = 1) Then
bZoomMode = test_CPA.ZoomMode
If (bZoomMode = True) Then
test_CPA.ZoomMode = False
End If
End If
End Sub
[Cicode]
FUNCTION CPA_E_MouseClick(OBJECT hPA, OBJECT hPen, INT button)
INT bZoomMode = 0;
IF (button = 1) THEN
bZoomMode = _ObjectGetProperty(hPA, "ZoomMode")
IF (bZoomMode = -1) THEN
_ObjectSetProperty(hPA, "ZoomMode", 0)
END
END
END
Enumerating collections
The Process Analyst contains many "collections" such as Panes, Pens, Cursors, Commands,
and so on. This example shows you how to enumerate through the buttons on the navigation toolbar.
[VBA]
Sub EnumerateToolbarButtons()
Dim navBar As Object
Dim iButton As Integer
Dim button As Object
Dim nButtons As Integer
The Navigation toolbar is the 2nd toolbar in the collection
Set navBar = test_CPA.Toolbars.Item(2)
If IsNull(navBar) = False Then
nButtons = navBar.Buttons.Count
For iButton = 1 To nButtons
Set button = navBar.Buttons(iButton)
Next iButton
End If
End Sub
[Cicode]
FUNCTION EnumerateToolbarButtons()
OBJECT hPA = ObjectByName("CPA");
OBJECT hToolbars = _ObjectGetProperty(hPA, "Toolbars");
// The Navigation toolbar is the 2nd toolbar in the collection
OBJECT hNavBar = _ObjectCallMethod(hToolbars, "get_Item", 2);
OBJECT hButtons;
OBJECT hButton;
INT nButtons;
INT iButton;
228
IF (ObjectIsValid(hNavBar)) THEN
hButtons = _ObjectGetProperty(hNavBar, "Buttons");
nButtons = _ObjectGetProperty(hButtons, "Count");
FOR iButton = 1 TO nButtons DO
hButton = _ObjectCallMethod(hButtons, "get_Item", iButton);
END
END
END
Note: Many collections have an ItemById property that allows you to get the item you want
without having to enumerate through the collection to find the item you want.
229
[Cicode]
FUNCTION CPA_E_CommandExecuted(OBJECT hPA, STRING commandId)
SELECT CASE commandId
CASE "SelectedPen"
OnSelectedPen(hPA);
END SELECT
END
FUNCTION OnSelectedPen(OBJECT hPA)
OBJECT hPen;
STRING sName;
STRING sMessage;
IF ObjectIsValid(hPA) THEN
hPen = _ObjectGetProperty(hPA, "LastSelectedPen");
IF ObjectIsValid(hPen) THEN
sName = _ObjectGetProperty(hPen, "Name");
END
sMessage = "The name of the selected pen is:^n" + sName;
Message("Citect", sMessage, 48);
END
END
230
[Cicode]
FUNCTION CPA_E_UpdateCommand(OBJECT hPA, STRING commandId)
SELECT CASE commandId
CASE "PaneLock"
OnUpdatePaneLock(hPA);
CASE "SelectedPen"
OnUpdateSelectedPen(hPA);
END SELECT
END
FUNCTION OnUpdateSelectedPen(OBJECT hPA)
OBJECT hPen = _ObjectGetProperty(hPA, "LastSelectedPen");
OBJECT hCommandSystem = _ObjectGetProperty(hPA,"CommandSystem");
OBJECT hCommand = _ObjectCallMethod(hCommandSystem,"get_ItemById", "SelectedPen");
INT iError = 0;
ErrSet(1);
_ObjectGetProperty(hPen, "Name");
iError = IsError();
IF (iError <> 0) THEN
_ObjectSetProperty(hCommand, "Enabled", 0);
ELSE
_ObjectSetProperty(hCommand, "Enabled", -1);
END
ErrSet(0);
END
See Also
UpdateCommand [Event]
231
will be executed. Note also that, for efficiency, the BlockUpdates and UnblockUpdates functions are used to limit the number of updates made to the Object View.
Event Handlers
Once you have a function that implements your custom column, you need to know when
to update that column. The most common method of doing this is to implement event handlers for particular Process Analyst events. The example below uses the PenCreated event
and the HorizontalAxisChanged event. These events will verify that the column values will
be updated when pens are added to the display and when the time span changes.
See Also
IObjectViewItem.PutField [Method], IProcessAnalyst.BlockUpdates [Method], IProcessAnalyst.UnBlockUpdates [Method], PenCreated [Event], HorizontalAxisChanged
[Event]
[VBA]
Sub UpdateMyColumn()
Dim iPaneItem As Integer
Dim iPane As Integer
Dim nPanes As Integer
Dim nSamples As Integer
Dim penItem As Object
Dim paneItem As Object
nSamples = test_CPA.NumberOfSamples
iPaneItem = 0
nPanes = test_CPA.Panes.Count
For iPane = 1 To nPanes
Dim pane As Object
Set pane = test_CPA.Panes.Item(iPane)
If IsNUll(pane) = False Then
Dim pen As Object
Dim iPen As Integer
Dim iPenItem As Integer
Dim nPens As Integer
iPaneItem = iPaneItem + 1
Set paneItem = test_CPA.ObjectView.Items.Item(iPaneItem)
test_CPA.BlockUpdates
iPenItem = 0
nPens = pane.Pens.Count
For iPen = 1 To nPens
Set pen = pane.pens.Item(iPen)
If IsNUll(pen) = False Then
Dim dDiff As Double
Dim sText As string
Dim
Dim
Dim
Dim
232
dtStart As Date
dtEnd As Date
dtStartMs As Integer
dtEndMs As Integer
iPenItem = iPenItem + 1
pen.GetHorizontalAxisTimeSpan dtStart, dtStartMs, dtEnd, dtEndMs, False
dDiff = ((CDbl(dtEnd) - CDbl(dtStart)) / nSamples) * 86400
If (dDiff >= 0.001) Then
sText = CStr(Format(dDiff, "#0.000")) + " seconds"
Else
sText = "0.001 seconds"
End If
Set penItem = paneItem.Items.Item(iPenItem)
If IsNUll(penItem) = False Then
penItem.Putfield "DisplayPeriod", sText
End If
End If
Next
test_CPA.UnblockUpdates
End If
Next
End Sub
Sub CPA_E_HorizontalAxisChanged(hPen As Object)
UpdateMyColumn
End Sub
Sub CPA_E_PenCreated(hPen As Object)
UpdateMyColumn
End Sub
[Cicode]
FUNCTION UpdateMyColumn()
OBJECT hPA = ObjectByName("CPA");
OBJECT hPanes = _ObjectGetProperty(hPA, "Panes");
OBJECT hPane;
OBJECT hPens;
OBJECT hPen;
OBJECT hObjectView = _ObjectGetProperty(hPA, "ObjectView");
OBJECT hPaneItems = _OBJECTGetProperty(hObjectView, "Items");
OBJECT hPaneItem;
OBJECT hPenItems;
OBJECT hPenItem;
INT
INT
INT
INT
INT
INT
INT
REAL dDiff;
REAL dtStart;
REAL dtEnd;
INT dtStartMs;
INT dtEndMs;
STRING sText;
FOR iPane = 1 TO nPanes DO
233
234
236
The Process Analyst control interface typically consists of the following components:
Main toolbar: Contains commands for performing general operations in the Process Analyst, such as opening views, printing reports, and so on. You can configure this toolbar
to contain different items.
Pens: A Process Analyst pen represents your trend and/or alarm data. The Process Analyst supports three types of pen: analog pen, digital pen, and alarm pen. Each pen has
its own graphical representation. You can configure most pen properties during run
time.
Panes: Panes are used to group pens visually in the Process Analyst and are stacked vertically on the Process Analyst display. Every pen belongs to a single pane. You can configure chart panes.
Chart background (not shown): The panes are drawn over the chart background. Depending on the layout of the pens, the background may be partially visible. You can
configure the chart background.
Date/time axis: Located at the top of a pane, the date/time (horizontal) axis displays the
date or time (or both) of the data for the primary selected pen within a pane. You can
configure the axis.
Vertical axis: Analog pens have a vertical axis on the left-hand side of the pane to indicate data values. You can configure this axis.
Cursor: A cursor allows an Operator to determine value at a given point in time by dragging the cursor line to the point required. You can configure the cursor.
Cursor labels: Display the value where the cursor intersects the trend value line.
237
238
Description
Load View. Loads a saved view from file. For details, see Loading a view.
Save View. Saves a view to file. For details, see Saving a view.
Print. Displays the standard Windows Print dialog box for printing trend reports. For details, see Printing and Exporting.
Copy to Clipboard. Copies visible pens to the Windows Clipboard. For details, see Copying data to the Clipboard.
Export to File. Exports visible pens to an Excel-compatible file. For details,
see Copying data to file.
Add Pen. Displays the Add New Pen(s) dialog box for adding a pen. For details, see Adding Pens.
Remove Pen. Deletes the currently selected pen from the trend display. For
details, see Deleting Pens.
Lock/Unlock Pens. Toggles the locking of pens. For details, see Locking/
Unlocking Pens.
Show/Hide Points. Toggles the display of points representing where sample data was recorded in the archive. For details, see Pens: An Overview.
Show/Hide Cursors. Toggles the display of cursors. For details, see Using
Cursors.
Show/Hide Cursor Labels. Toggles the display of cursor labels. For details,
see Using Cursor Labels.
Toggle Object View. Toggles the display of the Object View. For details, see
Using the Object View.
Properties. Displays the Properties dialog box for configuring the Process
Analyst control. For details, see Configuring the Process Analyst.
Help. Displays the Process Analyst online Help.
See Also
Using the Navigation Toolbar | Operator Command Reference
239
240
Data Compaction
Data compaction is the visual grouping of multiple data points into a single data point when
the data in the archive is too dense to be displayed as individual data points for the selected
time span.
Data is compacted by grouping raw samples together to form a multiple sample. Sample
compaction is indicated on the graph by using different sample markers. For example, in
the illustration below, the two sample markers that appear as squares actually represent
multiple raw samples. However, because the data points in this view are too dense to display as individual points, the multiple samples appear as one data point.
The following illustration zooms in on the second multiple sample, and shows that what
appeared to be a single raw sample actually consists of several raw samples:
The Process Analyst uses the following default point styles for single and multiple samples:
Sample compaction
Point type
Single
Ellipse
Multiple
Rectangle
Interpolated
Interpolated samples
Normally samples are only single or multiple. But there is a specific situation in which an
interpolated sample is used to correct a graph that only occurs with event trends.
The frequency of the data stored in an event trend can vary dramatically; for example,
where several samples are within one display period, followed by no samples for a long
241
time. A multiple sample will be drawn with a value calculated from the samples within the
period. But the value after that period will be whatever the last sample in the period was.
So an interpolated sample is added at the start of the next display period to correct the
graph.
See Also
Interpolation
Request modes
Because the Process Analyst Control makes requests for a range of data using a display period, CitectSCADA needs to perform calculations on data if it becomes too dense in order
to calculate the value of a multiple sample. The Process Analyst provides the following options for this calculation:
Average - The value will be an average of all the individual samples within the multiple
sample, as will the timestamp. This is the default calculation method.
Maximum: The value will be the maximum value out of all the individual samples within the multiple sample. The timestamp will be that of the individual sample that was the
maximum. The timestamp will be the average of all the individual samples within the
multiple sample.
Minimum: The value will be the minimum value out of all the individual samples within the multiple sample. The timestamp will be that of the individual sample that was the
minimum. The timestamp will be the average of all the individual samples within the
multiple sample.
Newest: The value will the latest arrived value out of all the individual samples within
the multiple sample. The timestamp will be that of the individual sample that was the
newest. The timestamp will be the average of all the individual samples within the multiple sample.
Data Quality
Process Analyst pens use the same quality system as CitectSCADA trend and alarm data.
There are four data quality states:
Good - Samples were recorded in the trend archive as good.
NA - When CitectSCADA is unable to obtain a sample or the data retrieved was invalid,
an N/A sample will be recorded in the trend archive.
Gated/Disabled - For trends, when the trigger of a trend is off, a value of "Gated" is recorded in the trend archive. For alarms, this data quality state indicates that the alarm
has been disabled.
The Process Analyst uses the following default line styles to indicate data quality:
242
Quality
Line style
Good
Solid
NA
None
Gated
Dot
Description
This example shows several single samples. The third sample has a quality of N/A, indicated by the break in the trend
line.
Here the quality of the third sample is gated, indicated by
the broken line connecting these samples.
With multiple samples, the quality of the last sample in the group determines how
the line is drawn. Consider the following examples:
This example shows that the third sample is actually a multiple sample. The quality of the third (multiple) sample and
the next sample is N/A, again indicated by the break in the
trend line.
Here the quality of the third multiple sample is gated, again
indicated by the broken line connecting the samples.
The line style indicating the data quality is configurable during run time and design time;
for details, see Configuring pen quality.
The date/time axis displays time using the current locale format specified in your computer
date/time settings. If the millisecond component is required, it is appended to the end in
the format "<xxx>ms." Since the local time zone is determined from the current computer
settings, these settings must be configured accurately.
The date/time axis can also display data using the universal time coordinate (UTC) format.
You can switch between local or UTC time as you like (see Configuring pen axes). If the current time is 10.00 p.m. UTC, in the Sydney (GMT+10) time-zone, local time will be 8.00p.m.
The date/time axis is divided into major and minor time intervals, which change dynamically depending upon the time span. In the illustration above, the major intervals are 1
minute apart, and the minor are 5 seconds apart.
Note the following:
When the axis time span is 1 minute or less, the format of the axis labels includes milliseconds and the date is removed.
When the axis time span is 1 week or above, the time is removed and only the date is
displayed.
By default, the date/time axis displays a time span of 10 minutes; the major intervals represent 5 minutes, and the minor intervals 30 seconds.
243
The position of the Now indicator is refreshed according to the value specified in the Display Refresh Date text box in the Process Analyst Control Properties dialog box.
Note: If you have used the CitectSCADA trend page feature, note the following: In CitectSCADA the right-hand side of the screen always represents Now (when looking at realtime data). In the Process Analyst control, "Now" is represented only by the Now indicator,
which may be located anywhere on the trend display, even off screen, since it is possible to
scroll into the future, or back into the past.
You can scroll and scale the date/time time axis to interact with your Process Analyst pens;
for details, see Interacting with the Process Analyst. You can also configure the date/time
axis to suit your preferences; for details, see Configuring pen axes.
244
In this example, there are two panes, each of which has a differently scaled vertical axis.
You can scroll and scale the vertical axis; for details, see Scrolling the Chart and Scaling the
Chart. You can also configure the appearance of the vertical axis; for details, see Configuring pen axes.
Gridlines
The Process Analyst pens use gridlines as a visual guide to help an Operator determine the
value of trends. Major gridlines are solid lines; minor gridlines are broken lines. Analog
pens have vertical and horizontal gridlines; alarm and digital pens only have vertical gridlines. The display of gridlines changes dynamically according to the selected time span.
You can configure vertical gridlines at run time for all pen types; you can configure horizontal gridlines for analog pens. For details, see Configuring pen gridlines.
Pen Layout
You can are display pens in the Process Analyst by stacking or overlaying.
In stacked mode, a user-specified amount of vertical real-estate is allocated to the pen,
and with this, stacked pens are laid out under each other on the pane, starting from the
top of the pane under the date/time axis, like this:
Here, three pens (one analog and two digital) are stacked under each other. Stacking applies to all types of pens.
In unstacked mode, pens are drawn on top of each other. The order in which the pens
were added to the pane governs the drawing order: the last pen added is the topmost
pen drawn. When a pen is selected, it is brought to the front of any other pens displayed
245
Here, two analog pens are overlaid. You can also overlay digital and alarm pens.
You can have any mix of stacked and unstacked pens on a pane.
Pen Types
The Process Analyst control supports three types of pen: analog pens, digital pens, and
alarm pens. Analog and digital pens are associated with trend tags; alarm pens are associated with alarm tags.
Analog pens
The Process Analyst control typically uses analog pens to represent nonbinary data. Only
analog pens have a value (vertical) axis, which the data is plotted against, as shown here:
Interpolation
Analog pens have two types of interpolation that allow you to specify how to connect data
samples on a trend line: straight and stepped:
Straight - a line is drawn directly between the points like this:
246
Stepped - the lines drawn always maintain the value of the previous sample until a sample with a different value arrives, in which case a vertical line is drawn:
The Process Analyst allows analog pens to be configured at run time and design time. For
details, see Configuring Pens.
See Also
Interpolated samples
Digital pens
The Process Analyst control typically uses digital pens to represent binary data. Values on
the pen are clamped to a range of 0 to 1. Any value equal to or greater than 0.5 is clamped
to 1; all other values are clamped to 0. A fill color is used to indicate where the data is 1, as
shown here:
By default, the layout of digital pens is stacked. For details, see Pen Layout.
The Process Analyst allows the appearance of digital pens to be configured during run time
and design time. You can configure the trend line color, width, and fill color. For details,
see Configuring pen appearance.
Alarm pens
The Process Analyst uses alarm pens to graphically display the history of a CitectSCADA
alarm over time. The Process Analyst supports seven different types of alarm pens.
The alarms on/off transition state changes and acknowledgements are all represented
graphically in the alarm pen display. To achieve this, the alarm pen consists of three elements: the alarm state, on/off, and acknowledgement.
The diagram below illustrates how an alarm pen displays the information of an alarm tag:
247
Like other types of pen, alarm pens can represent variations in data quality and data compaction.
The Process Analyst allows alarm pens to be configured at run time and design time. For
details, see Configuring alarm pens.
On/off
When an alarm is off, the alarm pen will draw the line low. When the alarm transitions to
on, the line is drawn high.
Alarm states
When an alarm transitions to on, it enters a particular state. The states of an alarm are dictated by the type of CitectSCADA alarm tag. The Process Analyst supports all CitectSCADA standard alarm types.
Note: For multi-digital alarms1, the state descriptions are retrieved from the CitectSCADA
alarm record.
The Process Analyst uses a different color, shading style, and description to represent each
alarm state; these properties are configurable. For details, see Configuring alarm pens.
Alarm acknowledgment
Process Analyst alarm pens can represent when alarms are acknowledged.
The Process Analyst indicates the period for which the alarm has been left unacknowledged by drawing a line above the trend line. A new unacknowledged period begins
whenever the alarm transitions to an on state.
The unacknowledged period ends when an Operator acknowledges an alarm. The Process Analyst identifies this by placing a sample marker to indicate the exact time the
alarm was acknowledged, and by drawing an unacknowledged line down to that sample marker, as shown here:
1.Use combinations of values from three digital variables to define eight states. For each state, you
specify a description (e.g., healthy or stopped), and whether or not the state triggers an alarm.
248
Alarm types
The Process Analyst uses the following types of alarm pen:
Alarm type
Digital
Analog
Advanced
Argyle Analog
Multi-digital
Timestamped
Timestamped analog
Timestamped digital
For multiple samples in an alarm, the alarm state value is the last recorded value in the
group.
249
250
Pens: An Overview
Process Analyst pens are drawn against time. Each pen has its own colored line (and can
contain other graphical elements). Sample markers (or points) are drawn on the line to indicate where data was recorded in the archive. The style of the line indicates the quality of
the data; the style of the sample marker indicates the compaction of the sample.
Pen Selection
Each pane on the Process Analyst can have one selected pen. The axes that are displayed
on a pane are that of the selected pen. The last pen selected across all panes is referred to as
the primary selected pen.
You can select a Process Analyst pen in several ways:
By clicking on the pens graphical elements (i.e., the pen line).
If the pens are stacked, by clicking the background under the pen line.
By selecting the pen in the Object View.
The selection of a pen is indicated by a subtle halo effect surrounding the pen line. In the
example shown here, the top (green) pen is selected, indicated by the halo surrounding the
pen:
251
Note that the halo does not appear if there is only one pen on the pane. Selecting a pen on
a pane also causes the same pen to be highlighted in the Object View. Selecting a pen causes
that pen to be drawn in front of other pens on the pane.
Locking/Unlocking Pens
By default, the Process Analyst locks together the time span and position in time (horizontal axis) of all pens. However, you can unlock the pens, allowing the pens to be displayed
across different positions in time and/or time spans.
For example, you could unlock pens to compare a previous months data for a tag with the
data for this month. You would do this by adding two pens to a pane that represent the
same tag, then unlocking the pens, and adjusting the time positions for each pen as required.
To control pen locking and unlocking, you use the Lock/Unlock Pens button on the main
toolbar.
The date/time picker formats the date and time using the settings obtained from your computer for the currently logged in user. The date/time picker displays time in 24-hour format
(dd/mm/yyyyhhmm:ssnnn) where:
dd represents days
mm represents months
yyyy represents years
hh represents hours
mm represents minutes
ss represents seconds
nnn represents milliseconds (added automatically to the time)
To change the date or time in the date/time picker:
Click the element of the date or time you want to change in the start time picker or the
end time picker.
Do either of the following:
15. Type in a time explicitly.
16. Press the Up arrow key or Down arrow key to increment or decrement the value respectively.
Note: You can use the Left arrow and Right arrow keys to move between time elements.
Working with Daylight Savings
To indicate whether the time in the time picker control is Standard time or Daylight Savings
time, the clock to the left of the control has a shaded segment if the time is in a Daylight
Savings period. When in Standard time, the clock does not have a shaded segment.
For example, this icon appears when the time pickers value is within the local Daylight
Savings period:
This icon appears when the time pickers value is within the local Standard time period:
If the Daylight Savings transition involves duplicate hours, you can use the spin controls
(or Up and Down arrow keys) to select the hour you want.
254
Note: In order for the Process Analyst to be able to indicate that Daylight Savings is in effect, the Automatically adjust clock for daylight saving changes option on the Date and
Time Properties dialog box must be enabled, as indicated below:
See Also
Daylight savings (local time)
Shifting and fitting time units
You can manipulate the start time and end time by using special keyboard shortcuts. Using
these shortcuts, you can do the following:
Shift by unit
Fit to unit
Shift by unit
Shifting date or time by unit allows you to change the opposite date/time element to the
one selected by the corresponding date or time component. For example, if you shift by unit
the month time element in the start time, the month time element in the end time increments by one month exactly, including days, minutes, and seconds. This also works for
months that have different end days.
To shift by unit:
Press and hold down the Shift key.
Click a date or time element in the date/time picker. The opposite time picker changes
by the base time amount of the selected time element.
Fit to unit
Fitting date or time to unit allows you to synchronize the selected time element to the zero
position of that time element in the start time and end time. For example, an Operator clicks
on the hh time element of the Start picker, which shows 19:30:05.123. After Ctrl + click, the
255
Start hour time element shows 19:00:00.000, and the End time element shows 20:00:00.000.
Now the time span represents exactly one hour, synchronized on the hour.
To fit to unit:
Press and hold the Ctrl key.
Click a date or time element in the date/time picker. Both the start time and end time
element are synchronized to zero based on the date/time element selected.
See Also
Span Lock
Span Lock
When the time span is locked and the start time and/or end time picker changed, the current time span is maintained. If the time span is unlocked, the time span is not maintained
when any of the time pickers are changed.
By default, the span is locked. You can toggle span locking on or off by using the SpanLock
button.
See Also
About time spans
Navigating time
The navigation controls allow an Operator to navigate backwards or forwards through
time. The amount of time moved depends upon the time currently selected in the Span
Picker. For example, if 10 minutes is selected in the Span Picker and Back One Span is
clicked, the display moves back 10 minutes into the pens history.
The following navigation controls are available:
Navigation control
Description
Back One Span - moves back one time span.
Back Half a Span - moves back half a time span.
Forward Half a Span - moves forward half a time span.
256
Synchronize to Now
The Synchronize to Now command synchronizes all pens such that the date/time reflects
"Now," which is positioned on the right-hand edge of the screen. "Now" is calculated using
the current system time.
The Synchronize to Command is also available from the right-click (context) menu.
See Also
Now indicator
Toggle Autoscrolling
When Autoscroll is turned on, as time passes the position in time of all pens moves by the
same amount to keep pace; by default, the display is updated every second. The refresh rate
of the display can be controlled by using the Display Refresh Rate property.
When Autoscroll is turned off, as time passes the position in time of all pens remain fixed.
By default, Autoscroll is on. You can toggle Autoscrolling on or off by using the Toggle Autoscrolling button.
Using the navigation controls, including the Time Span picker, causes Autoscrolling to be
turned off
The Autoscroll command is also available from the right-click (context) menu.
Icon
Description
Zoom In 50%
Note: The midpoint of each axis is maintained during these zoom operations.
257
Release the mouse button. The display changes to a close-up of the selected data.
Edit Span
Click the Edit Span button to display the Edit Span dialog box, which allows you to set
non-standard time spans.
Click Edit Span on the navigation toolbar. The Edit Span dialog box appears.
The fields provided are: w = weeks, d = days, hr = hours, min = minutes, sec = seconds, and
ms = milliseconds.
Enter a New span. Click the element of the time span that you want to change, then either type in a new value, or use the Up arrow or Down arrow to specify a new value.
You can use the Right arrow and the Left arrow key to move between the time elements.
Click OK. The new time span is applied.
Click the Limits or Engineering Scale option. The Limits values displayed are the current values used by the vertical scale. The Engineering Scale values are obtained from
the trend tag.
Enter a new Minimum value and Maximum value, and then click OK.
See Also
Configuring Defaults | Pen Selection
Using Cursors
A cursor enables an Operator to determine the value of a pen at a given point in time by
dragging the cursor to the specific point on the pen line. A cursor label is used to display
the value.
An Operator can define many of the properties of cursors and cursor labels. For details, see
Configuring Cursors.
In this example the cursor intersects three pens; the cursor labels (the yellow rectangles)
display the corresponding pen values.
To move a cursor, drag the cursor line left or right. As the cursor moves, the cursor labels
move with the cursor and are updated continuously, reflecting the position of the cursor.
Note: The cursor extends across all configured panes.
A line connects the cursor label to the associated pen line. The line has three main states:
State
Style
Line
Invisible line
To show/hide a cursor:
260
Example
Click Show/Hide Cursor on the main toolbar. You can display additional cursors by using the Properties dialog box.
You can display as many cursors as you want. To add a cursor, right-click the root item
(Process Analyst View) in the property tree in the Properties dialog box, and choose Add
Cursor.
Description
Move a cursor
label
Click the cursor label and drag the label to a new location.
Change the
size of cursor
labels
Click the cursor label you want to resize. Place the mouse cursor on one
of the sizing boxes, and drag the label to the new size. If you drag the
corner of the label, the label text resizes to an optimal size for the label.
Lock or unlock
the cursor labels
Click the Lock/Unlock Cursor Labels. When on, this command causes
cursor labels to be "frozen" in the position.
Applies to
Description
Pen Name
Value/Quality
Date-Time Stamp
Alarms
The fields are displayed in the cursor label using the order defined above using the format
specified for the vertical axis. For example, if your vertical axis format is "km/h", the label
reads "<value> km/h".
The label displays the following values when the quality of the data is not good:
Cursor value
Description
NA
At the point of intersection the pen has no available data for display.
Gated
Disabled
At the point of intersection the alarm tag of the pen was disabled.
261
The label value can also contain a directional indicator that functions as follows:
Cursor value
Description
<value> ->
The cursor is to the left of the first available sample for this pen.
<- <value>
The cursor is to the right of the last available sample for this pen.
262
Region
Description
Pen line
Pen line/pen
background
The mouse pointer looks like this when the mouse is over a
pens background and both horizontal and vertical scrolling
are enabled. Clicking and dragging at this point results in
the free movement of the pen. Scrolling the mouse wheel
results in horizontal-only movement.
Horizontal axis
The mouse pointer looks like this when the pointer is on the
horizontal axis and horizontal scaling is enabled. Clicking
and dragging (or scrolling the mouse wheel) will result in
the axis being scaled.
Pen line/pen
background
The mouse pointer looks like this when the pointer is on the
horizontal axis and only horizontal scrolling is enabled.
Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scrolled.
Vertical axis
The mouse pointer looks like this when the pointer is on the
vertical axis and vertical scaling is enabled. Clicking and
dragging (or scrolling the mouse wheel) will result in the
axis being scaled.
Vertical axis
The mouse pointer looks like this when the pointer is on the
vertical axis and only vertical scrolling is enabled. Clicking
and dragging (or scrolling the mouse wheel) will result in
the axis being scrolled.
The mouse pointer looks like this when Box Zoom mode is
enabled. See Toggle Box Zoom.
Adding Pens
You use the Add New Pens dialog box to add a new pen to your trend display. To display
the Add Pens dialog box, click Add Pens on the main toolbar.
To add a new pen:
Select the Type of server you want to search: Trends or Alarms.
Type in a TagFilter and/or Cluster Filter to apply to the search (optional).
If you leave either of the Filter text boxes blank, all tags or clusters of the selected server
type will be retrieved. The filters have basic wildcard and Boolean search functionality.
You can use the keywords AND, OR and NOT with wildcard strings, as well as group
Boolean terms using parentheses. For example, entering 'L*' in the Tag Filter
returns all tags beginning with the letter "L" in all clusters. Entering L* OR H*' will
find all tags beginning with "L" or "H". More complex examples include L* OR (H*
AND NOT *G)'. This would return all tags that start with "L" or any that start with
"H", but do not end in "G".
Click Search. The search results are returned in the Searchlist. The results are not sorted:
the tags appear in the order they were configured in CitectSCADA.
The cluster associated with each tag is also displayed. The Process Analyst displays
only the tags in clusters that this client has access to. In a system with more than one
cluster, if a tag is not configured with a cluster, it is listed once for each cluster.
The Search Result list displays a maximum of 100 entries at a time. If your search returns
more than 100 results, use the First, Prev, Next, and Last buttons to navigate your search
results.
Select one or more tags from the Search Results list. You can use the Ctrl and/or Shift
keys to select multiple tags.
Select the destination pens to Add Add pens to. Pens can be added to any existing pane,
or to a new pane.
Select a Pen Type. A trend tag can be represented by an analog or digital pen. An alarm
tag can be represented by an alarm pen only.
263
Deleting Pens
Operators can delete pens from the trend display at any time.
Note: Deleting a pen is different than hiding the pen from display by using the Visibility
check box in the Object View. For details, see Using Object View.
To remove a pen:
Select the pen you want to delete.
Click RemovePen in the main toolbar. The pen is deleted from the display.
See Also
Adding Pens
264
265
266
By default, all items in the Object View are expanded (that is, all pens for all panes are
shown). Clicking a pen in the Object View selects that pen. There is always one pen selected
in each pane; in the example above, the primary selected pen is highlighted in blue; all other selected pens are highlighted in gray.
See Also
Pen Selection
The Object View displays the following items:
Icon
Object
Analog pen
Digital pen
Alarm pen
Pane
The check box controls whether the pen is visible on the chart. The gradient-filled color box
to the left of the pen name indicates the pens line color as it appears on the chart.
The Object View always mirrors the items that are displayed on a chart. For example, if you
add a pane to the chart, a new pane is added simultaneously to the Object View. Similarly,
267
if a new pen is added to or deleted from a pane, or if a pens properties are changed, these
changes are reflected in the Object View.
The table below shows the predefined default columns, which are displayed in addition to
the object tree. These columns are arranged by default from left to right in the Object View.
Column
Description
Zero Scale
Full Scale
Engineering Units
You can configure the Object View to display other predefined columns that show different
information about your pens; for details, see Configuring the Object View.
Description
Drag the splitter bar that is located between the chart area
and the Object View up or down.
Expand or collapse
a tree node in the
Object Tree column
Either click the (+) box to expand the node or the (-) box
to collapse the node; or double-click the item to toggle between expanded and collapsed states. This does not affect
the display of panes in the chart.
Select a pen
Click the pen in the Object View table. Selecting a pen in the
Object View gives the focus in the chart to the selected pen,
and vice versa. You can only select one pen per pane at a
time (you cannot select a pane).
Display or hide a
pen
Click to clear the check box to hide the pen; click the check
box again to display the pen.
Dynamically
change the width
of a column during
display
See Also
Configuring the Object View
268
This example shows a report of a chart titled Citect Process Analyst; the chart has only one
pane, which contains three analog pens. The topmost pen in the report legend is highlighted, indicating that this pen is selected; consequently, the axes shown in the report are associated with this pen. You can see that this pen is selected in the chart by the "halo" effect
269
surrounding the pen. The color boxes on the left-hand side of the legend help you to distinguish between the pens.
To print a report:
Click Print. The Print dialog box appears. Click the Print button, or choose Print from
the right-click (context) menu.
270
The panel shows, by default, the Pen Options, Statistical Analysis Options, and Cursors lists (if there is a cursor currently displayed on the chart). The options available to
you might differ from the ones shown here.
Select the check box of the Pen Options you want to include in your report. For details
about these options, see Configuring the Object View.
Select the Statistical Analysis Options you want to include. Note that this section is
available only if the chart contains at least one analog or digital pen.
20. Minimum - causes the minimum value from cache to be returned. Note that this value might not be a real logged sample if the sample found is a multiple calculated
sample.
21. Maximum - causes the maximum value from cache to be returned. Note that this value might not be a real logged sample if the sample found is a multiple calculated
sample.
22. Average - uses time-weighted averaging to determine the average for both stepped
and interpolated lines. This means that if a trend stays at a value of 10 for 1 hour and
then spikes quickly at a value of 50 for a minute, the average will not be significantly
affected.
Select the Cursors you want to include.
If you want to include a report legend, make sure the Include Legend check box is selected.
Click Apply.
271
In the Header Information area, type a Title for the report. If necessary, include a Comment. Comments are printed under the report title on each report page.
To include a header, make sure the Include Header check box is selected.
To include page numbering, make sure the Include Page Numbers check box is selected.
Click Apply.
272
Time
Milliseconds
Pane1Pen1
Pane1Pen2
Pane1-Pen3
15/06/2004
01:17:25
100
NA
10
Off
15/06/2004
01:17:26
100
20
Low [Unacknowledged]
15/06/2004
01:17:27
100
15/06/2004
01:17:28
100
Low [Acknowledged]
3
25
Low [Acknowledged]
Export functionality doesn't simply return the sample markers displayed on the
graph. Instead, it exports an interpolated value per display period from the start time to the
end time of the pen. The display period can be calculated by dividing the time span of the
pen by the IProcessAnalyst.NumberofSamples[Property][Get/Set] property.
Before exporting the data, the Process Analyst sorts all the timestamps for all pens from the
earliest to the latest sample. When the pens are unlocked and have different time spans, the
data for each pen might have different timestamps. As each entry is added to a row in the
table, the value of the pen at that particular timestamp is exported. If a pen does not have
a sample for that timestamp, the column for that pen is left blank.
An export will also write values of NA, GATED and all alarm states as localized text when
required.
Pen columns use the format <pane>-<pen> where pane is the name of the pane that contains
the pen, and pen is the name of the pen.
See Also
Copying data to the Clipboard | Copying data to file
273
274
Main page
You use the Main page of the Properties dialog box to configure general properties and access the server path properties. The Main page looks like this:
The list on the left-hand side contains the property tree, a hierarchical list of Process Analyst interface components. Selecting an item displays the property controls for that compo275
nent on the right. The pens in the property tree indicate the information that the pen is
trending.
Using the property tree right-click menu
Right-clicking an item in the property tree displays the shortcut menu for that item, as
shown below.
The tasks you can perform vary depending on your privilege level: if you don't have
the required privilege at run time to perform an action, that control is disabled/removed.
For example, the right-click menu removes the Add Pen option at run time if you
don't have the privilege to add a pen. Commands that are unavailable appear
"grayed-out." The right-click menu contains the following options:
Right-click
this item...
Actions
Chart
Pane
Pen
Cursor
Toolbars
You use the Toolbars page to configure the main toolbar and navigation toolbar. Operators
and Users can configure the toolbars at run time and design time. Use the Toolbars page to
configure the toolbars; for details, see Configuring Toolbars.
276
Object View
You use the Object View page to configure the Object View. Operators and Users can select
(at run time and design time) the columns they want to display, as well as change the column width and display order. Users can define new columns and edit existing columns at
design time.
Use the Object View page for the following:
Configuring the Object View
Creating or Editing Object View Columns
278
Note: To configure defaults for your panes, select the Pane item in the Default Settings
node of the property tree, not a specific pane.
Click the color swatch and select a new Background color.
Select a Height option:
23. Variable - Automatically calculates the pane height based on the value in the Size
control. For example, if the chart contains two panes, selecting this option and using
a Size value of 110 will set this pane to 110% of the size of the other pane in the chart.
Note that fixed height panes have precedence of variable-size panes.
24. Fixed -Sets the pane height to the value specified in the Size control.
Specify a Size for the pane.
279
Click Apply.
Configuring Pens
The Process Analyst allows you to configure your pens to suit your preferences. Pen configuration tasks are performed by using the Properties dialog box, which is used for:
Configuring pen appearance
Configuring pen gridlines
Configuring pen axes
Configuring pen quality
Configuring the pen data connection
Configuring cursor labels
280
Click Apply.
In the Vertical: Major area, select a Style, specify a Width, and then select a Color.
In the Vertical: Minor area, select a Style, specify a Width, and then select a Color.
In the Horizontal area (analog pens only), select a Style for the minor gridline, specify
a Width, and then select a Color for the major gridline.
Do the same if necessary for the minor gridline.
Click Apply.
282
Note: To configure defaults for pen axes, select the All pens item in the property tree under
Default Settings, and then complete the procedure below.
To configure a pen axis:
Click the Main Page tab.
From the property tree list, select the pen you want to configure axes for.
Click the Axis tab to display the axis property controls.
283
To enable points for the pen to be visible, select the Points Visible option.
In the Point Styles area, select a Single point style to represent a single data sample.
Select a Multiple point style to represent multiple data samples.
Selected an Interpolated point style for interpolated data samples.
In the Line Styles area, select a line style to represent a Good sample.
Select a line style to represent a Gated/Disabled sample.
Select a line style to represent an NA sample.
Click Apply.
284
For the Server data connection, a <localhost> connection is selected by default, indicating that the Process Analyst will connect to the CitectSCADA run time client running
on the same computer, and pass its requests through to the client, which will pass them
onto the server.
In the Trend tag field, enter the trend tag for the pen. In a system with more than one
cluster, you should specify both the cluster and tag using the format <cluster name.tag
name>. Omitting the cluster name will cause an error. If the system has only one cluster
configured, you can just enter the tag name. The configured cluster will be assumed.
Select a Request mode. The default is Average.
The request mode defines how multiple samples are treated by the Process Analyst. Regardless of the request mode used, the timestamp for a sample is always averaged.
Click Apply.
See Also
Data Compaction
285
Configuring Cursors
You can configure the line width and line color of a selected cursor. Changes to the cursor
line color apply only to the currently selected cursor. For details on cursors, see Using Cursors.
To configure the cursor:
In the property tree of the Process Analyst Properties dialog box, click the cursor you
want to configure. The Appearance property controls appear.
Configuring Defaults
The defaults are a collection of properties that are inherited by each item (pane, pen, cursor,
and so on) when that item is created. These default properties are maintained for the lifetime of the item until its properties are modified.
You configure these defaults in the same way as you configure the individual components.
The Default Settings node on the property tree contains the following items:
286
All pens - configure the gridlines, axis, quality, connection, and cursor label properties
for all pen types. See Configuring pen gridlines, Configuring pen axes, Configuring pen
quality, Configuring the pen data connection, and Configuring cursor labels.
Cursor - configure cursor defaults. See Configuring Cursors.
Analog - configure the appearance of analog pens. See Configuring pen appearance.
Digital - configure the appearance of digital pens. See Configuring pen appearance.
Alarm - configure the appearance of alarm pens. See Configuring pen appearance.
Pane - configure the pane height and appearance defaults. See Configuring Chart Panes.
Configuring Toolbars
The Process Analyst has two toolbars, the main toolbar and the navigation toolbar. You use
the Properties dialog box to configure the toolbars.
The Available toolbar buttons list contains all the command buttons available in your system, including predefined as well as user-defined commands.
To remove a command from the toolbar: In the Current toolbar buttons list, select the
command you want to remove from the toolbar, and then click Remove. The selected
command moves to the Available toolbar buttons list.
288
Column
Description
Scale
Engineering Units
Comment
Start Time
End Time
Duration
Tag
Trend Type
Sample Period
Engineering Scale
Raw Scale
Alarm Category
Alarm Description
Alarm Area
Alarm Name
Alarm Type
Error
Displays the error of the last data request. Blank if last data
request succeeded.
Minimum
Maximum
Average
For information on columns that are displayed by default, see Object View Basics.
The Properties page displays all the available columns for the Object View and their properties:
NameID - Internal identifier, which must be unique.
Width - Default width of the column in pixels.
Display Text - Title displayed in the column header.
The check boxes in the NameID column are bound to a columns visibility: a column is visible only if the associated checkbox is selected.
The Move Up and Move Down buttons to the right of the Available Columns list box allow you to reorder columns. The order of the columns from top to bottom in the list dictates
their display order from left to right in the Object View. Clicking Move Up or Move Down
shifts the currently selected item up or down respectively.
See Also
Creating or Editing Object View Columns
289
Saving a view
A Process Analyst view stores the trends and alarms that are being displayed, the columns
being viewed in the Object View, the toolbar buttons that are available, as well as the "look
and feel" of the view.
To save a view:
On the main toolbar, click Save View. The Save Process Analyst View dialog box appears, showing the location where you can save views.
Loading a view
When loading a view, the start time and end time of a view is restored only autoscroll is off.
If autoscroll is on, pens are synchronized to "Now."
When loading a view, the only locations that are available (My Documents, Primary, and
Standby) are those that have been configured by your administrator.
To load a view:
On the main toolbar, click Load View. The Load dialog box appears.
290
Select a view to load, and then click OK. The view is loaded.
291
292
View Commands
The Process Analyst has the following view commands by default:
Icon
Tooltip
Description
Save View
Load View
See Also
Zoom Commands | Navigation Commands | Export Commands | Interface Commands |
General Commands
Zoom Commands
The Process Analyst has the following zoom commands by default:
Icon
Tooltip
Description
Toggle Box
Zoom
Zoom in
50%
Zoom out
50%
293
Icon
Tooltip
Description
Undo Last
Zoom
Restores the pen(s) spans to their original default settings. For details, see Reset to Default Span.
Edit Span
Edit Vertical
Scale
See Also
View Commands | Navigation Commands | Export Commands | Interface Commands |
General Commands
Navigation Commands
The Process Analyst has the following navigation commands by default. For details about
these commands, see Navigating time.
Icon
Tooltip
Description
Forward Half a
Span
Synchronize to
Now
Toggle AutoScrolling
See Also
View Commands | Zoom Commands | Export Commands | Interface Commands | General Commands
294
Export Commands
The Process Analyst has the following export commands by default:
Icon
Tooltip
Description
Export to File
Copy to Clipboard
Copies visible pens to the clipboard.Interface Commands. For details, see Copying data to the Clipboard.
See Also
View Commands | Zoom Commands | Navigation Commands | Interface Commands |
General Commands
Interface Commands
The Process Analyst has the following interface commands by default:
Icon
Tooltip
Description
Show/Hide Cursor
Show/Hide Cursor
Labels
Show/Hide Points
Lock/Unlock Cursor
Labels
Lock/Unlock Pens
Add Pane
Remove Pane
Autoscale Vertical
Axis for Analog
Pens
Toggles autoscaling for the selected pen on a perpen basis. For details, see Scaling the Chart.
See Also
View Commands | Zoom Commands | Navigation Commands | Export Commands |
General Commands
295
General Commands
The Process Analyst has the following general commands by default:
Icon
Tooltip
Description
Add Pen
Remove Pen
Removes the selected pen from the display. For details, see Deleting Pens.
Toggle Object
View
Refresh Data
Show Properties
Help
See Also
View Commands | Zoom Commands | Navigation Commands | Export Commands | Interface Commands
296
Glossary
1
10base2
Ethernet implementation on thin coaxial cable. Typically uses a BNC connection.
10base5
Ethernet implementation on thick coaxial cable.
10baseT
Ethernet implementation on unshielded twisted pair. Typically uses as RJ45 connection.
A
Accredited - Level 1
Drivers developed under the CiTDriversQA96 Driver Quality and Accreditation System, which ensures the
driver was designed, coded, and tested to the highest possible standards.
Accredited - Level 2
Drivers developed using the CiTDriversQA92 Driver Quality and Accreditation System.
accumulator
A facility that allows you to track incremental runtime data such as motor run hours, power consumption, and
downtime.
active alarm
An active alarm is an alarm in one of the following states: ON and unacknowledged; ON and acknowledged;
OFF and unacknowledged.
advanced alarm
Triggered when the result of a Cicode expression changes to true. Use advanced alarms only when alarm functionality cannot be obtained with the other alarm types. If you configure too many advanced alarms, your system performance can be affected.
alarm categories
You can assign each alarm to a category, and then process each category as a group. For example, for each category, you can specify the display characteristics, the action to be taken when an alarm in the category is triggered, and how data about the alarm is logged. You can also assign a priority to the category, which can be
used to order alarm displays, filter acknowledgments, and so on.
alarm display page
The alarm display page displays alarm information in the following format: Alarm Time, Tag Name, Alarm
Name, Alarm Description.
297
Glossary
B
baud rate
The number of times per second a signal changes in a communication channel. While the baud rate directly
affects the speed of data transmission, the term is often erroneously used to describe the data transfer rate. The
correct measure for the data rate is bits per second (bps).
BCD variable (I/O device)
BCD (Binary Coded Decimal) is a two-byte (16-bit) data type, allowing values from 0 to 9,999. The two bytes
are divided into four lots of four bits, with each lot of four bits representing a decimal number. For example
the binary number 0010 represents decimal 2. Thus the BCD 0010 0010 0010 0010 represents 2,222.
bottleneck
A bottleneck occurs when too many requests are being sent to a PLC communication link/data highway. It can
occur with all types of protocols, and is dependent on several factors, including the frequency of requests, the
298
Glossary
number of duplicated (and hence wasteful) requests, whether the protocol supports multiple outstanding requests, as well as other network traffic.
browse sequence
A series of graphics pages linked by a browse sequence, which is a linear navigation sequence within your
runtime system that uses Page Previous and Page Next commands.
byte variable (I/O device)
Byte is a one-byte data type, allowing values from 0 to 255. One byte consists of 8 bits. Each ASCII character is
usually represented by one byte.
C
cache (I/O device data cache)
When caching is enabled, all data read from a I/O device is stored temporarily in the memory of the I/O server.
If another request is made (from the same or another control client) for the same data within the cache time,
the I/O server returns the value in its memory, rather than read the I/O device a second time.
callback function
A function that is passed as an argument in another function. Callback functions must be user-written functions.
Cicode
Programming language designed for plant monitoring and control applications. Similar to languages such as
Pascal.
Cicode blocking function
A Cicode function that blocks, or waits, for an asynchronous event to complete before returning.
CiNet
CiNet is no longer supported. CiNet was designed as a low speed wide area network (for remote monitoring
applications). If you have a widely-distributed application where computers are separated by vast distances,
using a LAN to connect your control clients can be expensive. To connect control clients in this instance, use
Microsoft's remote access server (RAS) or a Microsoft-approved solution, such as Shiva LanRover.
citect.ini file
A text file that stores information about how each computer (servers and control clients) operates in the configuration and runtime environments. The Citect.INI file stores parameters specific to each computer and
therefore cannot be configured as part of the project.
client
A computer that accesses shared network resources provided by another computer called a server. 's clientserver based architecture is designed to distribute the processing tasks and optimize performance.
cluster
A discrete group of alarms servers, trends servers, reports servers, and I/O servers. It would usually also possess local control clients. For a plant comprising several individual sections or systems, multiple clusters can
be used, one cluster for each section.
command
A command performs a particular task or series of tasks in your runtime system. A command is built from
Cicode and can consist of just a function or a statement.
299
Glossary
communications link
A connection between computers and peripheral devices, enabling data transfer. A communications link can
be a network, a modem, or simply a cable. .
communications port
PC port used for sending and receiving serial data (also called serial or COM ports).
computer
A computer running . Other common industry terms for this computer could be node, machine or workstation.
Control Client
The interface between the runtime system and an operator. If you are using on a network, all computers (on
the network) are control clients.
custom alarm filter
Custom alarm filters provide a way to filter and display active alarms. Up to eight custom filter strings can be
assigned to a configured alarm. In conjunction with a user-defined query function, the custom filters enable
operators to identify and display active alarms of interest.
D
data acquisition board
Data acquisition boards communicate directly with field equipment (sensors, controllers, and so on). You can
install a data acquisition board in your server to directly access your field equipment.
data bits
Group of binary digits (bits) used to represent a single character of data in asynchronous transmission.
data communications equipment (DCE)
Devices that establish, maintain, and terminate a data transmission connection. Normally referred to as a modem.
data terminal equipment (DTE)
Devices acting as data source, data sink, or both.
data transfer
Transfer of information from one location to another. The speed of data transfer is measured in bits per second
(bps).
data type (I/O device)
Type of I/O device variable. I/O devices may support several data types that are used to exchange data with .
You must specify the correct data type whenever I/O device variables are defined or referenced in your system.
DB-15
Often called a `D' type connector due to the vague D shape of the casing. Has 15 pins arranged in two rows of
8 and 7 pins. While not as common as DB-9 or DB-25 they may be found on some computers and data communication equipment. Comes in both male (pins protruding) and female (pin sockets) configurations.
DB-25
Often called a `D' type connector due to the vague D shape of the casing. Has 25 pins arranged in two rows of
13 and 12 pins. This kind of connection is a part of the standard for RS-232-D and is found on many computers,
300
Glossary
modems and other data communication equipment. Comes in both male (pins protruding) and female (pin
sockets) configurations.
DB-9
Often called a `D' type connector due to the vague D shape of the casing. Has 9 pins arranged in two rows of
5 and 4 pins. This kind of connection is common and is often used as the serial (com) port in computers. Often
used in modems and other data communication equipment. Comes in both male (pins protruding) and female
(pin sockets) configurations.
deviation alarm
Triggered when the value of a variable deviates from a setpoint by a specified amount. The alarm remains active until the value of the variable falls (or rises) to the value of the deadband. .
dial-back modem
Only returns calls from remote I/O devices.
dial-in modem
Only receives calls from remote I/O devices, identifies the caller, then hangs up immediately so it can receive
other calls. then returns the call using a dial-back modem.
dial-out modem
Makes calls to remote I/O devices in response to a request; e.g., scheduled, event-based, operator request, and
so on. Also returns calls from remote I/O devices.
Digiboard
A high-speed serial board manufactured by the Digiboard Corporation.
digital alarms
Triggered by a state change in a digital variable. Use these alarms when a process has only one of two states.
You can use either the on (1) state or off (0) state (of a digital variable) to trigger the alarm.
digital variable (I/O device)
Usually associated with discrete I/O in your I/O device, a digital variable can only exist in one of two states: on
(1) or off (0). Allowed values for the digital data type are therefore 0 or 1. Discrete inputs (such as limit switches, photoelectric cells, and emergency stop buttons) and discrete outputs are stored as digital variables.
disk I/O device
A disk file that resides on the hard disk of a computer and emulates a real I/O device. The value of each variable
in the disk I/O device is stored on the computer hard disk. The disk I/O device is not connected to any field
equipment in the plant.
display period
Defines the rate at which trend data is displayed on the trend page.
distributed processing
For large applications with large amounts of data, you can distribute the data processing to reduce the load on
individual computers.
distributed servers
If your plant consists several sections or systems, you can assign a cluster to each individual section, and then
monitor all sections using one control client.Note: Don't use distributed servers to split up a single section or
process into discrete areas. A single cluster system with distributed processing would be better used here since
it would not be hampered by the maintenance overhead of a distributed server system (such as extra project
compilations, and so on).
301
Glossary
E
empty value
Indicates that the variant has not yet been initialized (assigned a value). Variants that are empty return a
VarType of 0. Variables containing zero-length strings (" ") aren't empty, nor are numeric variables having a
value of 0.
Ethernet
Widely used type of local area network based on the CSMA/CD bus access method (IEEE 802.3).
Event data displayed by time
As an alternative to viewing event trend data by event number, it is possible to see event trends across a timeline. When event trends are shown by time, the trend graph includes a start and end time and enables operators
to see both the time of a triggered event, and the elapsed period between events. This data can also be displayed on the same graph as a periodic trend.
event trend/SPC
To construct an event trend/SPC, takes a sample when a particular event is triggered (in the plant). This sample
is displayed in the window. The event must then reset and trigger again, before the next sample is taken.
Events are identified by the event number. .
expression
A statement (or group of statements) that returns a value. An expression can be a single variable, a mathematical formula, or a function.
302
Glossary
F
file server
A computer with a large data storage capacity dedicated to file storage and accessed by other client computers
via a network. On larger networks, the file server runs a special network operating system. On smaller installations, the file server may run a PC operating system supplemented by peer-to-peer networking software.
full duplex
Simultaneous two-way (in both directions) independent transmission (4 Wires).
G
generic protocol
A pseudo-protocol supported by disk I/O devices that provides a convenient way to represent disk data. The
generic protocol is not a real protocol (communicates with no physical I/O device).
Genie
If you have numerous devices of the same type (e.g., 100 centrifugal pumps), the display graphics for each will
behave in much the same way. Using Genies, you only have to configure common behavior once. The graphics
can then be saved as a Genie and pasted once for each device.
Genie controller
A Genie that references a Super Genie (using a Super Genie function). Using a Genie controller, the same Super
Genie can be used over and over for different applications.
global Cicode variable
Can be shared across all Cicode files in the system (as well as across include projects).
global client
A control client used to monitor information from several systems or sections (using clusters).
graphics bounding box
A faint (grayed) dotted rectangular box outline defining the exterior boundary region of a graphic object. Only
visible and active when the graphics object is selected and being resized. Contains sizing handles in each corner and (if sized large enough to display) one in the centre of each side.
graphics page
A drawing (or image) that appears on a workstation to provide operators with control of a plant, and display
a visual representation of conditions within the plant.
group (of objects)
allows you to group multiple objects together. Each group has a unique set of properties, which determine the
runtime behavior of the group as a whole.
303
Glossary
H
half duplex
Transmission in either direction, but not simultaneously.
histogram
A bar graph that shows frequency of occurrence versus value. Quite often the data is fitted to a distribution
such as a normal distribution. .
I
I/O Device
An item of equipment that communicates with plant-floor control or monitoring equipment (sensors, controllers, and so on). The most common I/O devices are PLCs (programmable logic controllers); however, supports
a wide range of I/O devices, including loop controllers, bar code readers, scientific analyzers, remote terminal
units (RTUs), and distributed control systems (DCS). can communicate with any I/O device that has a standard
communications channel or data highway.
I/O device address
The (logical) location of the I/O device in the system. Each I/O device must have a unique address in the system,
unless the I/O device is defined in other servers (to provide redundancy). If redundancy is used, the I/O device
must then have the same I/O device name, number, and address for each server.
I/O device variable
A unit of information used in . Variables are stored in memory registers in an I/O device. exchanges information with an I/O device by reading and writing variables. refers to I/O device variables by their register addresses. I/O devices usually support several types of variables; however, the most common are digital
variables and integer variables.
I/O server
A dedicated communications server that exchanges data between I/O devices and control clients. No data processing is performed by the I/O server (except for its local display). Data is collected and passed to the control
clients for display, or to another server for further processing. All data sent to an I/O device from any computer
is also channelled through the I/O server. If data traffic is heavy, you can use several I/O servers to balance the
load.
include file (.CII)
There is a maximum number of characters that you can type in a Command or Expression field (usually 128).
If you need to include many commands (or expressions) in a property field, you can define a separate include
file that contains commands or expressions. An include file is a separate and individual ASCII text file containing only one sequence of commands or expressions that would otherwise be too long or complicated to type
into the command or expression field within . The include file name is entered instead, and the whole file is
activated when called.
integer variable (Cicode)
A 4-byte (32-bit) data type allowing values from 2,147,483,648 to 2,147,483,647.
304
Glossary
K
keyboard command
Consist of a key sequence that an operator enters on the keyboard, and an instruction (or series of instructions)
that executes when the key sequence is entered. Keyboard commands can be assigned to an object or page, or
they can be project-wide.
knowledge base
Provides high-level technical information beyond the scope of standard technical documentation that is updated regularly and available at http://www.citect.com.
kurtosis
An index indicating the degree of peakedness of a frequency distribution (usually in relation to a normal distribution). Kurtosis < 3 indicates a thin distribution with a relatively high peak. Kurtosis > 3 indicates a distribution that is wide and flat topped.
L
language database
When a project is compiled, creates a language database (dBASE III format) consisting of two fields: native and
local. Any text marked with a language change indicator is automatically entered in the native field. You can
then open the database and enter the translated text in the local field.
link
A copy of a library item, possessing the properties of the library original. Because it is linked, the copy is updated whenever the original is changed.
local area network (LAN)
A system that connects computers to allow them to share information and hardware resources. With real-time
LAN communication, you can transfer data, messages, commands, status information, and files easily between
computers.
305
Glossary
M
maximum request length
The maximum number of data bits that can be read from the I/O device in a single request. For example, if the
maximum request length is 2048 bits, the maximum number of integers that can be read is: 2048/16 = 128.
millisecond trending
Allows you to use a trends sample period of less than one second.
mimic
A visual representation of a production system using an organised set of graphical pages. .
module Cicode variable
Specific to the file in which the variable is declared. This means that it can be used by any function in that file,
but not by functions in other files. By default, Cicode variables are defined as module, therefore prefixing is
not required (though a prefix of MODULE could be added if desired). Module variables should be declared at
the start of the file.
multi-digital alarms
Use combinations of values from three digital variables to define eight states. For each state, you specify a description (e.g., healthy or stopped), and whether or not the state triggers an alarm.
306
Glossary
N
native language
Generally the language of the project developer. Display items such as alarm descriptions, button text, keyboard/alarm logs, graphic text, Cicode strings and so on can be configured in the native language, and displayed, at runtime, in the language of the end-user (local language).
network
A group of computers and peripheral devices, connected through a communications link. Data and services
(e.g., printers, file servers, and modems) can be shared by computers on the network. A local network of PCs
is called a LAN.
network computer
A computer running that is connected to a LAN through a network adaptor card and network software. .
Network Dynamic Data Exchange (NetDDE)
Enables communication between Windows applications on separate computers connected across a common
network.
nodes
A structural anchor point for a graphic object, usually visible as a small square box superimposed over a graphic. Nodes will be located separately at the start, at the end, and at every change in direction within a graphic
object. .
normal distribution
Also known as a `bell' curve, the normal distribution is the best known and widely applicable distribution. The
distribution is symmetrical and popularly represents the laws of chance. 68.27% of the area lies between -1 sigma and +1 sigma, 95.45% between -2 sigma and+2 sigma, and 99.73% between -3 sigma and +3 sigma. The values of skewness and kurtosis are used to provide quantitative measures for normality. Assuming that at least
20 samples are used to construct a distribution, a good rule of thumb is to accept the data as a normal distribution when, -1.0 = skewness = 1.0 2 = kurtosis = 4.
null value
Indicates that a variant contains no valid data. Variants that are null return a VarType of 1. Null is not the same
as empty, which indicates that a variant has not yet been initialized. It is also not the same as a zero-length
string (" "), which is sometimes referred to as a null string. Null is not equivalent to zero or blank. A value of
null is not considered to be greater than, less than, or equivalent to any other value, including another value
of null. A boolean comparison using a null value will return false.
O
object
Basic building blocks of a graphics page. Most objects possess properties that allow them to change dynamically under user-definable runtime conditions allowing them to provide animated display of conditions within
the plant.
307
Glossary
object ID (OID)
An object ID associated with every tag in a project that uniquely identifies the tag for use by tag-based drivers,
automatically generated at compile. It is used instead of the actual address of the register (which is what most
other drivers use to read from and write to I/O devices).
object variable (Cicode)
An ActiveX control that can only be declared with local, module, or global scope.
open database connectivity (ODBC)
Allows applications to access data in database management systems using structured query language (SQL)
to access data.
P
pack
Packing a database re-indexes database records and deletes records marked for deletion. If you edit your databases externally to , you should pack the database afterwards.
page environment variable
A read-only variable associated with a particular page When you make the association, you name the variable,
and assign it a value. When the page is opened during runtime, creates the variable. Its value can then be read.
When the page is closed, the environment variable memory is freed (discarded).
parity
A communications error-checking procedure. The number of 1's must be the same (even or odd) for each group
of bits transmitted without error.
periodic trend
A trend that is sampled continuously at a specified period. You can also define a trigger (an event) to stop and
start the trend (when a specified condition occurs in the plant).
persistence cache
Cache data saved to a computer hard disk that allows an I/O server to be shut down and restarted without
having to re-dial each I/O device to get its current values. This cache consists of all the I/O device's tag values.
PLC interface board
You can sometimes install a PLC interface board in your server. A proprietary interface board is usually supplied by your PLC manufacturer, and you can connect it to a PLC or a PLC network. You can only use proprietary interface boards with the same brand of PLC.
point limit
An individual digital (or analog) variable read from an I/O device. only counts physical points (and counts
them only once, no matter how many times they are used). The point limit is the maximum number of I/O device addresses that can be read and is specified by your license. When you run the point count of your project
is checked against the point limit specified by your Hardware Key.
port(s)
Provide the communication gateway to your I/O device(s).
primary Alarms Server
The server that normally processes alarms.
308
Glossary
R
rate of change alarms
Triggered when the value of the variable changes faster than a specified rate. The alarm remains active until
the rate of change falls below the specified rate. Deadband does not apply to a rate of change alarm.
real variable (Cicode)
Real (floating point) is a 4-byte (32-bit) data type allowing values from 3.4E38 to 3.4E38. Use a real variable to
store numbers that contain a decimal place.
real variable (I/O device)
Real (floating point) is a 4-byte (32-bit) data type, allowing values from 3.4E38 to 3.4E38. Use a real variable to
store numbers that contain a decimal place.
record name
Usually the primary property of a database record, referenced in system through its name. Database record
names must be unique for each type of database record. Sometimes you can use identical names for different
record types. However, to avoid confusion, you should use a unique name for each database record in your
application.When you specify a name for a database record, the name must begin with an alphabetic character
(A-Z, a-z) and cn only include alphanumeric characters (A-Z, a-z, 0-9) and the underscore character (_). For
example, "Pressure," "Motor_10," and "SV122_Open" are all valid database record names. Each database record
name can contain up to 16 characters.Database record names are not case-sensitive, so "MOTOR_1," "Motor_1"
309
Glossary
and "motor_1" are all identical database record names. For this reason use a meaningful name for any database
record as well as the necessary naming conventions.
redundancy
A method of using the hardware in a system such that if one component in the system becomes inoperative,
control of the system is maintained, and no data is lost.
remote communications
Interaction between two computers through a modem and telephone line.
remote terminal
A terminal remote from the computer that controls it. The computer and remote terminal communicate via a
modem and telephone line.
report
A statement or account of plant-floor conditions. reports can be requested when required, on a periodic basis,
or when an event occurs.
report format file
Controls the layout and content of reports. The format file is edited using a text editor and can be in either
ASCII or RTF format.
Reports Server
Controls report processing. You can request reports at any time or when specific events occur.
reserved words
Words that cannot be used as a name for any database record or Cicode function.
RJ11
A type of IDC plug commonly used in data communications. Recognizable as the style of data plug used in
phone line and handset connectors. RJ11 is a 6/4 plug with 6 contacts but only 4 loaded.
RJ12
A type of IDC plug commonly used in data communications. Recognizable as the style of data plug used in
phone line and handset connectors. RJ12 is a 6/6 plug with 6 contacts.
RJ45
A type of IDC plug commonly used in data communications. Recognizable as the style of data plug used in
phone line and handset connectors. RJ45 is often used with 10baseT and is an 6/8 plug with 8 contacts.
RS-232
An industry standard for serial communication. The standard specifies the lines and signal characteristics that
are used to control the serial transfer of data between devices.
RS-422
An industry standard for serial communication. The standard specifies the lines and signal characteristics that
are used to control the serial transfer of data between devices. RS-422 uses balanced voltage interface circuits.
RS-485
An industry standard for serial communication. The standard specifies the lines and signal characteristics that
are used to control the serial transfer of data between devices. RS-485 uses balanced voltage interface circuits
in multi-point systems.
runtime system
The system that controls and monitors your application, process, or plant. The runtime system is sometimes
called the Man-Machine Interface (MMI), and is compiled from a project.
310
Glossary
S
scalable architecture
A system architecture that can be resized without having to modify existing system hardware or software. lets
you re-allocate tasks as more computers are added, as well as distribute the processing load.
schedule period
Determines how often the I/O server contacts a scheduled I/O device to read data from it. .
serial communication
Uses the communication port on your computer or a high speed serial board (or boards) installed inside your
computer.
server
A computer connected to an I/O device (or number of I/O devices). When is running, the server exchanges data
with the I/O device(s) and distributes information to the other control clients as required. A local area network
(LAN) computer that perform processing tasks or makes resources available to other client computers. In , client-server architecture distributes processing tasks to optimize performance.
simplex transmission
Data transmission in one direction only.
skewness
An index indicating the degree of asymmetry of a frequency distribution (usually in relation to a normal distribution). When a distribution is skewed to the left (for example), then the tail is extended on that side, and
there is more data on the left side of the graph than would be expected from a normal distribution. Positive
skew indicates the distribution's mean (and tail) is skewed to the right. Negative skew indicates the distribution's mean (and tail) is skewed to the left.
slider control
Allow an operator to change the value of an analog variable by dragging an object (or group) on the graphics
page. Sliders also move automatically to reflect the value of the variable tag.
soft PLC
A pure software (virtual) PLC created by software and existing only within the computer memory. Usually
provides a software interface for communication (READ and WRITE) operations to take place with the soft
PLC. Also known as a `virtual field unit' or `virtual I/O device'.
software protection
uses a hardware key that plugs into the printer port of your computer to protect against license infringement.
The hardware key contains the details of your user license. When you run , the point count in your project is
checked against the point limit specified in the hardware key.
standby Alarms Server
The Server that processes alarms if the primary alarms server is unavailable.
standby Reports Server
The server that processes reports if the primary reports server is unavailable.
standby Trends Server
The server that processes trends if the primary trends server is unavailable.
311
Glossary
stop bits
The number of bits that signals the end of a character in asynchronous transmission. The number is usually 1
or 2. Stop bits are required in asynchronous transmissions because the irregular time gaps between transmitted
characters makes it impossible for the server or I/O device to determine when the next character should arrive.
symbol
An object (or group of objects) stored in a library for later retrieval and use. By storing common objects in a
library, you reduce the amount of disk space required to store your project, and reduce the amount of memory
required by the run-time system.
T
task
Includes operations such as I/O processing, alarm processing, display management, and Cicode execution.
Any individual `instance' of Cicode is also a `task'.
template
A base drawing or time-saving pattern used to shape a graphics page. Each template contains base information
for the page, such as borders and common control buttons. provides templates for all common page types.
text box
When text is added to a graphics page, it is placed in a text box. A text box has a number of handles, which can
be used to manipulate the text object.
thread
Used to manage simultaneous execution of tasks in multitasking operating systems, enabling the operating
system to determine priorities and schedule CPU access.
timeout
The period of time during which a task must be completed. If the timeout period is reached before a task completes, the task is terminated.
time-stamped alarms
An alarm triggered by a state change in a digital variable. Time-stamped alarms have an associated register in
the I/O device to record the exact time when the alarm changes to active. Use time-stamped alarms when you
need to know the exact order in which alarms occur.
time-stamped analog alarms
Time stamped analog alarms work in the same way as analog alarms except that they are time stamped (with
the Alarm On and Alarm Off times) using millisecond precision from the time kept by the field device (i.e. the
RTU or PLC). The configuration details for time stamped analog alarms are exactly the same as for analog
alarms.
time-stamped digital alarms
Time stamped digital alarms work in the same way as digital alarms except that they are time stamped (with
the Alarm On and Alarm Off times) using millisecond precision from the time kept by the field device (i.e. the
RTU or PLC). The configuration details for time stamped digital alarms are exactly the same as for digital
alarms.
tool tip
A help message that displays in a pop-up window when an operator holds the mouse stationary over an object.
312
Glossary
U
UAC
User Account Control. Security technology introduced in Windows Vista to enable users to run with standard
user rights more easily. .
unsigned integer variable (I/O device)
A 2-byte (16 bit) data type, representing an integer range from 0 to 65,535. This is supported for all I/O devices
that can use INT types. This means you can define any integer variable as an unsigned integer to increase the
positive range.
V
variable type (Cicode)
The type of the variable (INT (32 bits), REAL (32 bits), STRING (256 bytes), OBJECT (32 bits)).
view-only client
A computer configured with manager-only access to the runtime system. No control of the system is possible,
but full access to data monitoring is permitted.
virtual
Behavioral identification rather than a physical one. For example, Windows 95 is a virtual desktop.
313
Glossary
W
wizard
A facility that simplifies an otherwise complex procedure by presenting the procedure as a series of simple
steps.
314
Index
A
acknowledgement, alarm 248
Add Cursor command 261
Add New Pens dialog box 263
Add Pane command 280, 295
Add Pen command 296
adding
panes 280
pens 263
toolbar commands 26, 288
alarm acknowledgement 248
alarm label value 262
alarm pen types 249
alarm pens 248, 282
alarm states 248
alarm types 248
AlarmType enumeration 33
analog pens 246
automation model 31
Autoscale Vertical Axis command 295
autoscaling 295
Autoscroll command 257
autoscrolling 257
axis
configuring 283
horizontal 243
vertical 245
AxisLabelType enumeration 34
B
Back Half a Span command 294
Back One Span command 294
background color, configuring 278, 280
boolean terms during searches 263
C
columns, configuring Object View 289
command system 29
CommandExecuted event 29, 40
commands
Add Cursor 261
Add Pane 280, 295
Add Pen 296
adding new 26
Autoscale Vertical Axis 295
Autoscroll 257
Back Half a Span 294
Index
cursors 286
data connection 285
defaults 287
design time properties 25
general properties 278
gridlines 282
pen quality 284
refresh rate 278
report options 270, 272
server paths 279
toolbars 287
connection, data 285
context menu. See right-click menu 262
Copy to Clipboard command 273, 295
Copy to File command 273
copying data 273
Create method 29
creating custom commands 29
cursor labels 261, 286
CursorMoved event 41
cursors 261
configuring 286
custom commands 29
custom commands, adding 26
F
FileLocation enumeration 35
filtering pens 263
Fit to unit 256
fixed height for panes, specifying 280
Forward Half a Span command 294
Forward One Span command 294
G
general commands 296
general properties, configuring 278
GetCommandSystem() property 29
graphics page, inserting onto 15
gridlines 245, 282
data
copying 273
exporting 273
data compaction 241
data connection, configuring 285
data request mode 285
data request rate, configuring 278
date/time axis 243
Daylight Savings 255
Daylight Savings time 244
defaults, configuring 287
deleting
pens 264
design time properties, configuring 25
digital pens 247
display, time 243
E
Edit Command dialog box 26
Edit Span command 259, 294
Edit Span dialog box 259
Edit Vertical Scale command 259, 294
Edit Vertical Scale dialog box 259
editing commands 26
316
I
IAlarmPen interface 54
IAlarmPen.AlarmType property 55
IAlarmPen.GetFillColor method 56
IAlarmPen.GetHatchColor method 56
IAlarmPen.GetHatchStyle method 57
IAlarmPen.LineColor property 58
IAlarmPen.LineWidth property 59
IAlarmPen.SetFillColor method 60
IAlarmPen.SetHatchColor method 61
IAlarmPen.SetHatchStyle method 62
IAnalogPen interface 62
IAnalogPen.LineColor property 63
IAnalogPen.LineInterpolation property 64
IAnalogPen.LineWidth property 65
ICommand interface 65
ICommand.ButtonType property 67
ICommand.CommandId property 67
ICommand.Enabled property 68
Index
ICommand.Pressed property 69
ICommand.Privilege property 70
ICommand.Tooltip property 66
ICommandSystem interface 70
ICommandSystem._NewEnum property 71
ICommandSystem.Count property 71
ICommandSystem.Create method 72
ICommandSystem.Execute method 73
ICommandSystem.Item property 74
ICommandSystem.ItemById property 74
ICommandSystem.Remove method 75
icons, custom 30
ICursors interface 75
ICursors._NewEnum property 76
ICursors.Count property 77
ICursors.Create method 78
ICursors.Item property 79
ICursors.ItemByName property 79
ICursors.RemoveAll method 80
IDigitalPen interface 80
IDigitalPen.Fill property 81
IDigitalPen.FillColor property 82
IDigitalPen.LineColor property 83
IDigitalPen.LineWidth property 84
inherit security settings 278
Insert ActiveX dialog box 15
interface commands 295
interfaces, automation model 53
interpolation 247, 281
IObjectView interface 84
IObjectView.BackgroundColor property 85
IObjectView.Columns property 86
IObjectView.ForeColor property 86
IObjectView.Height property 87
IObjectView.Items property 88
IObjectView.SelectedItem property 89
IObjectView.Visible property 90
IObjectViewColumn interface 90
IObjectViewColumn.Name property 90
IObjectViewColumn.Text property 91
IObjectViewColumn.Width property 92
IObjectViewColumns interface 92
IObjectViewColumns._NewEnum property 93
IObjectViewColumns.Add method 94
IObjectViewColumns.Count property 94
IObjectViewColumns.Hide method 95
IObjectViewColumns.Item property 96
IObjectViewColumns.ItemByName property 96
IObjectViewColumns.Remove method 97
IObjectViewColumns.Show method 98
IObjectViewItem interface 98
IObjectViewItem.Expanded property 99
IObjectViewItem.GetField method 100
IObjectViewItem.Items property 101
IObjectViewItem.PutField method 102
IObjectViewItem.Tag property 103
IObjectViewItems interface 103
IObjectViewItems._NewEnum property 103
IObjectViewItems.Count property 104
IObjectViewItems.Item property 105
IObjectViewPenItem interface 105
IObjectViewPenItem.BlockColor property 106
IObjectViewPenItem.Checked property 107
IObjectViewPenItem.Selected property 107
IPane interface 108
IPane.BackgroundColor property 109
IPane.Collection property 109
IPane.Delete method 110
IPane.FixedHeight property 111
IPane.Height property 112
IPane.Name property 113
IPane.Pens property 113
IPanes interface 114
IPanes._NewEnum property 114
IPanes.Count property 115
IPanes.Create method 116
IPanes.Item property 117
IPanes.ItemByName property 117
IPanes.RemoveAll method 118
IPen interface 119
IPen.AddSample method 120
IPen.AxisBackgroundColor property 121
IPen.BlockRepaint property 122
IPen.Clear method 123
IPen.Collection property 123
IPen.DataPoint property 124
IPen.DataServer property 125
IPen.Delete method 126
IPen.GetDefaultSpan method 127
IPen.GetHorizontalAxisTimeSpan method 129
IPen.GetInformation method 130
IPen.GetStatistic method 131
IPen.GetVerticalAxisSpan method 132
IPen.GoToNow method 132
IPen.Height property 133
IPen.HorizontalAxisColor property 134
IPen.HorizontalAxisResize property 135
IPen.HorizontalAxisScroll property 136
IPen.HorizontalAxisWidth property 137
IPen.HorizontalGridlinesColor property 138
IPen.HorizontalGridlinesStyle property 139
IPen.HorizontalGridlinesWidth property 139
317
Index
Index
L
label value, alarm 262
legends, report 270
line styles 243
LineStyle enumeration 36
LineType enumeration 36
Load dialog box 291
Load View command 291, 293
loading views 291
Lock pens check box 278
Lock/Unlock Cursor Labels 295
Lock/Unlock Cursor Labels command 262
Lock/Unlock Pens command 252, 295
Lock/Unlock Vertical Axis Scrolling command 295
locked pens 252
M
main page (Properties dialog) 276
main toolbar 239
menu, right-click 262
mode, request 242
model, automation 31
mouse, using for interaction 263
MouseClick event 43
MouseDoubleClick event 44
multi-language support 17
multiple samples 241
N
navigating time 257
navigation commands 294
navigation toolbar 254
New Command dialog box 26
Now indicator 244
number of samples 278
O
Object View 268
basic functions 268
configuring columns 289
creating columns 27
default columns for 268
editing columns 27
Object View (Properties dialog) 277
OVColumnAdded event 45
OVColumnRemoved event 45
overlaying pens 246
OVItemAdded event 46
OVItemChecked event 47
OVItemRemoved event 47
OVItemSelected event 48
P
panes
adding 280
configuring 280
paths, server, configuring 279
Pen Details box 265
PenCreated event 49
PenDeleted event 49
PenNameMode enumeration 37
PenRenamed event 50
pens
adding 263
alarm 248
analog 246
appearance 280
axes, configuring 283
deleting 264
digital 247
filtering 263
gridlines, configuring 282
locked 252
overlaying 246
quality, configuring 284
selecting 252
stacking 246
unlocked 252
viewing details 265
PenSelectionChanged event 51
PenType enumeration 37
permissions 16
persistence 30
point styles 241
pointer, mouse 263
PointType enumeration 37
primary file server 279
Print command 296
Print dialog box 270
printing reports 270
privilege level, configuring 278
Process Analyst button 15
319
Index
Q
quality
configuring pen 284
QualityCompactionType enumeration 38
QualityType enumeration 38
R
Refresh Data command 296
refresh rate, configuring 278
Remove Pane command 295
Remove Pen command 264, 296
removing
chart panes 280
toolbar commands 288
report legends 270
report options, configuring 270, 272
reports 270
configuring 270
printing 270
request mode, data 242, 285
RequestMode enumeration 39
Reset to Default Span command 260, 294
result, execution 31
right-click menu 262, 276
S
samples, number of 278
Save Process Analyst View dialog box 290
Save View command 290, 293
saving views 290
scaling 253
scrolling 252
security 16
selecting
pens 252
time span 256
server paths, configuring 279
Shift by unit 256
Show Properties command 296
Show/Hide Cursor command 261, 295
Show/Hide Cursor Labels command 262, 295
Show/Hide Points command 295
Span Picker 256
stacked pens 246
standby file server 279
320
T
tag properties, viewing 265
time display 243
time format 254
time span
editing 259
term defined 256
time, navigating 257
Toggle Auto-Scrolling command 294
Toggle Auto-scrolling command 257
Toggle Box Zoom command 258, 294
Toggle Object View command 268, 296
Toggle Span Lock command 256, 294
toolbar, navigation 254
ToolbarButtonType enumeration 39
toolbars
adding commands to 288
changing order of commands 288
configuring 287
removing commands from 288
toolbars (Properties dialog) 276
Tooltip text 26
tree, property 276
types, alarm 248
types, alarm pen 249
U
Undo Last Zoom command 258, 294
universal time coordinate (UTC) format 283
unlocked pens 252
unstacked pens 246
UpdateCommand event 30, 52
V
value, alarm label 262
variable height for panes, specifying 280
vertical (value) axis 245
VerticalAxisChanged event 52
Index
Z
zoom commands 294
Zoom In 50% command 257
Zoom in 50% command 294
Zoom Out 50% command 257
Zoom out 50% command 294
321