Version 7.

0

Process Analyst

September 2007

DISCLAIMER Schneider Electric SA 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, Schneider Electric SA reserves the right to revise this publication at any time without incurring an obligation to notify any person of the revision. COPYRIGHT © Copyright 2007 Schneider Electric SA. All rights reserved. TRADEMARKS Schneider Electric SA 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. September 2007 edition for Vijeo Citect Version 7.0 Manual Revision Version 7.0.

For further information, contact your local Schneider Electric representative.

Contents
About this Documentation Part I Process Analyst for Operators Chapter 1 Chapter 2 Chapter 3 The Process Analyst: An Overview Using the Main Toolbar Understanding Process Analyst Pens
Pens: An Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Data Compaction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Data Quality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Date/Time (Horizontal) Axis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Vertical (Value) Axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Gridlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Pen Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Pen Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Analog pens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Digital pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Alarm pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Chapter 4

Interacting with the Process Analyst
Pen Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Locking/Unlocking Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Scrolling the Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Scaling the Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Using the Navigation Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Specifying a start time and end time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 About time spans. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Span Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Navigating time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Synchronize to Now. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Toggle Autoscrolling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Zoom In/Zoom Out . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

ii

Contents Undo Last Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Toggle Box Zoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Edit Span . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Edit Vertical Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Reset to Default Span . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Using Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Using Cursor Labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Using the Right-click Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Understanding Mouse Pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Adding and Deleting Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Adding Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Deleting Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Viewing Pen Details . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Chapter 5

Using the Object View
Object View Basics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Using Object View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Chapter 6

Printing and Exporting
About Process Analyst Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Configuring Process Analyst Report Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting up report legends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Setting up report options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exporting Pen Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying data to the Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Copying data to file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 34 35 36 37 37 37

Chapter 7

Configuring the Process Analyst
Using the Process Analyst Properties Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Main page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Toolbars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Object View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Configuring Chart-wide Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Configuring general properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Configuring server paths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Configuring Chart Panes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Configuring Pens . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Configuring pen appearance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Configuring pen gridlines. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Configuring pen axes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Configuring pen quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 Configuring the pen data connection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Configuring cursor labels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Contents Configuring Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Configuring Defaults . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Configuring Toolbars . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Adding or removing toolbar commands. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Changing the order of toolbar commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Configuring the Object View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Object View properties page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Working with Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 Saving a view . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Loading a view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

iii

Chapter 8

Operator Command Reference
View Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Zoom Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Navigation Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Export Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Interface Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 General Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

Part II

Process Analyst for Users Chapter 9 Integration with Vijeo Citect
Configuring the Process Analyst Control from Graphics Builder . . . . . . . . . . . . . . . 65 Tag association . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Security and Permissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Administration privilege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Command privilege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Write privilege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Multi-language Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Understanding the Process Analyst resources . . . . . . . . . . . . . . . . . . . . . . . 67 Using Vijeo Citect to switch the Process Analyst language. . . . . . . . . . . . . . 67 Manually switching languages. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Specifying languages for the Web Client. . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 Creating your own Process Analyst resource.dll . . . . . . . . . . . . . . . . . . . . . . 68 Persistence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Saving while using the Citect Graphics Builder . . . . . . . . . . . . . . . . . . . . . . . 73 Using the Save View toolbar button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Using the SaveToFile automation method . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Saving between Vijeo Citect page transitions (Run-time) . . . . . . . . . . . . . . . 74 Resetting back to the default state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Backing up Projects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

. . . . . . . . . . . . . . . . .LineInterpolation [Property][Get/Set] . . . . . . . .Count [Property][Get] . . .iv Contents Chapter 10 Configuring Process Analyst Design Time Properties Adding New Commands . 88 IAlarmPen. . . . . . . . . . . . . . . . . . . . . .LineWidth [Property][Get/Set] . . . 101 . . . . . . . . . . . 100 ICommandSystem. . . . . . . . . . . . . . . . 84 Enumerations . . . .Tooltip [Property][Get]. . . . . . . . . . . . . . . . . .SetHatchColor [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 ICommand Interface . . . . . . . . . . . . . .LineColor [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 IAlarmPen. . . . . . . . . . . . . . .SetFillColor [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .AlarmType [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . 79 Process Analyst View Synchronization . . . . . . . . . . . . . . . . . . . . .SetHatchStyle [Method] . . . . . 83 Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 IAnalogPen. . . . . . . . . . . . . . . . . . . .GetFillColor [Method]. . . . . . . . . . .LineWidth [Property][Get/Set] .ButtonType [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .CommandId [Property][Get] . . . . . 92 IAnalogPen. . . . . . . . .Pressed [Property][Get/Set] . . . . . 85 IAlarmPen Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LineColor [Property][Get/Set]. . . . . . . . . . . . . . . . 99 ICommandSystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Chapter 12 Automation Model Execution Results . . . . . . . . . . . . . . . . .GetHatchColor [Method] . . . . . . . . . . . 88 IAlarmPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 ICommand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Icons . . . . . .Privilege [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 ICommand. . . . . . . . . . . . . . . 92 IAnalogPen. . . . . . . . . . . 81 UpdateCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 Custom Commands . . . . . . . . . . . . . . . . . . . . . . 98 ICommand. . . . . . . . 77 Editing Existing Custom Commands . . . 85 IAlarmPen. 78 Creating or Editing Object View Columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 ICommand. . . . . . . . . . . . 86 IAlarmPen. . . . . . . . . . . 84 Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .GetHatchStyle [Method]. . . . . 91 IAnalogPen Interface . . . . . . . . . . . . . . . . . . . . . ._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . 81 CommandExecuted . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . 100 ICommandSystem. . . . . . . 79 Chapter 11 Using the Process Analyst Command System Command System Overview . . . . . . . . . . . . . . 85 IAlarmPen. . . . . . . . . 96 ICommand. . . . . 95 ICommand. . . . . . . . . . . 99 ICommandSystem Interface . . . . . . 91 IAlarmPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Enabled [Property][Get/Set] . . . . . . . . . . . . . . . . . 90 IAlarmPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 IAlarmPen. . . . .

. . . . . . . . . . . . . . . . 124 IObjectViewItem. . . . . . . . . . . . . . . . .Create [Method] . . . . . . . . . . . . . . . . . . . . . .ItemByName [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 ICommandSystem. . . . . . . . . . . . . . . . . .Count [Property][Get] . . . . . . . . . . . . .Add [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Remove [Method] . . . . . . . . . . .ForeColor [Property][Get/Set] . . . . . . . . . .Columns [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Name [Property][Get] . . . . . . . . . . . . . . . 112 IObjectView. . . . . . . . . . 110 IDigitalPen. . . . . . . . . 125 IObjectViewItem. . . . . . . . . . . . . .BackgroundColor [Property][Get/Set] . . . . 113 IObjectView. . . . . . 115 IObjectView. . . . . 122 IObjectViewColumns. . . . . . 108 IDigitalPen. . . . . . . . . . . . . .Items [Property][Get] . . . . . . . . . . . . . . . . . . 103 ICursors Interface . .Expanded [Property][Get/Set] . . . . . . . . . 111 IObjectView. . . . . . . . . . . . . .RemoveAll [Method] . . . . . . . . . . . . . . . . . . . . . . .ItemByName [Property][Get]. . . . . . . . . .SelectedItem [Property][Get] . . . . . . . . . . . . . . . . . . . . .FillColor [Property][Get/Set] . . .Remove [Method] . . . . . . . . . . . . . . . . . . . . . . . . 117 IObjectViewColumn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 IObjectViewColumns. . . . . . . .ItemById [Property][Get] . . . 106 ICursors.LineColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . 104 ICursors. . . . . . . . . . . . . . . . 117 IObjectViewColumn. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 IObjectViewColumns. . . . . . 114 IObjectView. . . 127 IObjectViewItem. . . . . . . . . . . . . . . . . . . . . . . . . 117 IObjectViewColumn. . . . . . . . . . . . . . . . . . 126 IObjectViewItem. . . . . . . . . . . 122 IObjectViewColumns. . . . . . . . . 105 ICursors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 ICommandSystem. .Tag [Property][Get/Set] . . . . . . . . . . . . . . . . .Create [Method] . . . . . . . . . . . . . . . . . . . . 123 IObjectViewColumns. . . . . 128 IObjectViewItems Interface . . . . . 111 IObjectView Interface . . 116 IObjectViewColumn Interface . . . . . . . . . . . . . . . . .Visible [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . 129 v . . . . . . . . . . . . . . . . . 103 ICommandSystem. . . . . . . . . . . . . . . . 109 IDigitalPen. .GetField [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . .Width [Property][Get/Set] . . . . . . . . . . . . . . . . .Show [Method] . . . . . . . . . . . . . 120 IObjectViewColumns. . . . . . . . . . . .Execute [Method] . . . . . . . . . . . . . . .Count [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Count [Property][Get] . . . . 118 IObjectViewColumns Interface . . . . . . . . . . . . . . . . . . .Text [Property][Get]. . . . . .Item [Property][Get]. . . . . . . . . 128 IObjectViewItems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._NewEnum [Property][Get] . . . . . . . . . . . .PutField [Method] . . . . . . . . . . . . . 106 ICursors. . . . . . 104 ICursors. . . . . . . . . . . . . . . . . . . .Height [Property][Get/Set] . . . . . .Items [Property][Get] . . . . . .Fill [Property][Get/Set]. . . . . . . . . . . . . . 107 ICursors. . . . . . . ._NewEnum [Property][Get] . . . . . . . . . . . . .Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Contents ICommandSystem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 IDigitalPen Interface . . . . . . . . . . . . . . . . .LineWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Hide [Method] . . . 115 IObjectView. . . . . . . 121 IObjectViewColumns. . . . . . . . . . . 108 IDigitalPen. . . . . . . . . . . . . 120 IObjectViewColumns. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 IObjectViewItem. . . . . . . . . . . . . . . . . . . . . . . . 113 IObjectView. . . . . . . . . . . . . . 124 IObjectViewItem Interface . . . . . . . .

Create [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .AddSample .HorizontalScrollBy [Method] . . . . . . . . . . . . . 138 IPanes.VerticalScrollBy [Method] . . . . 136 IPane. . . . . . 156 IPen. . . . . . . . .GetStatistic [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 IPanes. . . . .Clear [Method]. . . . . . . . . . . . . 151 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Pens [Property][Get] . . . . . . . . . . . . . . . 157 IPen. . . . . . 130 IObjectViewPenItem Interface . . . . . . . . . . . . . . . . . . . . 151 IPen. . . . . . . .Collection [Property][Get] . . . . . . . . . . . . . . . . . .Delete [Method]. . . . . . . . . . . . . . . . .SetDefaultSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .PutVerticalAxisSpan [Method]. . . . . . . . . . . . . .Select [Method] . . . 147 IPen. 141 IPanes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 IPen. . . .GetVerticalAxisSpan [Method] . . . . . . . . . . 133 IPane. 134 IPane. . 135 IPane. . . . 129 IObjectViewItems. . . . . . . . . . . . . . . . . . 136 IPane. . . . . . . . . . . . . . . . .GetHorizontalAxisTimeSpan [Method] . . . . . . . . . . . . .Item [Property][Get] . .PointsVisible [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Selected [Property][Get]. . . . . 143 IPen. . . . . 144 IPen. . .GetInformation [Method] . . . . . . . . . . . .PutHorizontalAxisTimeSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 IPanes. . . . . .RefreshData [Method] . . . . . . 158 IPen. . .Count [Property][Get] . . . . . . . .SetQualityLineStyle [Method] . . 149 IPen. . . . . . . . . . . . . . . . . . . . . .Height [Property][Get/Set] . . . . . . . . . . . 156 IPen. . . . . . . . . . . . . . . . . . . 133 IPane. . . . 150 IPen. . . . . . . . . . . . . . . .FixedHeight [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._NewEnum [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 IPen.GetDefaultSpan [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . .SetVerticalAxisLabelValue [Method] . .ItemByName [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 IPen. . . . . . . . . . . . . . . . . . . 131 IObjectViewPenItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .VerticalZoom [Method] . . . . . . . . . . . . . . . . . . . .SetQualityCompactionPointType [Method] . . ._NewEnum [Property][Get] . . . . . . . .ResetToDefaultSpan [Method] . . . . . . . . . . . . . . . . . 132 IPane. . . . . . . . . . . . 137 IPanes Interface . . . . . . . . . . . . . . 132 IPane Interface . . . . . . . . . . . . . . . . . . . . . 141 IPen Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 IPen. . . . .HorizontalZoom [Method] . . . . . . . . . . . 145 IPen. . . 130 IObjectViewPenItem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 IPanes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Delete [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 IPen. . . . . . . . . . . . . . . . . . . . . 130 IObjectViewPenItem. . . . . . . . . . . . . .GoToNow [Method] . . .Checked [Property][Get/Set] . . . . . . . . . . . 146 IPen. . . 142 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .RemoveAll [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Item [Property][Get] . . . . . . . .BlockColor [Property][Get] . . . . .Name [Property][Get/Set] . . 161 . . . 139 IPanes. . . . . . . . . . . . . . . . . .BackgroundColor [Property][Get/Set] . . .vi Contents IObjectViewItems. . . . . . . . . . . . . . . 155 IPen. . . . .

. . . . . . . . . . . . . . . . . . . . . . . .HorizontalMinorGridlinesColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 IPen.VerticalGridlinesColor [Property][Get/Set]. . . . . . . . 191 IPens. . . . . . . . . . . . 193 vii . .HorizontalGridlinesStyle [Property][Get/Set] .VerticalMinorGridlinesStyle [Property][Get/Set] . . . . . .VerticalGridlinesWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .DataPoint [Property][Get/Set] . . .TrendCursorLabelFillColor [Property][Get/Set] . .VerticalAxisResize [Property][Get/Set] . . . . 185 IPen. . . . . . . . .DataServer [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .TrendCursorLabelTextColor [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 IPen. . . . . . . . . . . . . . .VerticalAxisColor [Property][Get/Set] . . .Contents IPen. . . . . . . . . . 178 IPen.Collection [Property][Get] . . .HorizontalMinorGridlinesStyle [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . .HorizontalAxisColor [Property][Get/Set] . . . . . . .Stacked [Property][Get/Set] . . . . . . . . . . . . . . . . . 168 IPen. . . 175 IPen. . . . . . . . . . . . . . . . . . . . . . 179 IPen. . 181 IPen. . . . . . 171 IPen. . . . . . . . . . . . . . . .Item [Property][Get] . . . . . . . . . . . . .Visible [Property][Get/Set]. . . . . . . 187 IPen. 169 IPen. . 171 IPen. . 165 IPen.LocalTime [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . 181 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . 189 IPens. . . . . 182 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Name [Property][Get/Set] . . 190 IPens. . . . . . . . . . . . 191 IPens. . . . . . . . . . . . . . . . . . . . . . . .BlockRepaint [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . 175 IPen. . . . . . . . . . . . . 173 IPen. . . . . . .IsDeleted [Property][Get]. . . . . . . . . . . . . . . . . 166 IPen. . . . . . . . . . . . . . . . . . . . . . . .Height [Property][Get/Set] . . . . . . . .Create [Method]. . . . . . . 170 IPen. . . . . . . . . . .VerticalMinorGridlinesColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 IPens. . . . . 187 IPens Interface . . . . . . . . 164 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 IPen. . . . . . . . . . . .Pane[Property][Get].VerticalAxisAutoscale [Property][Get/Set]. . . . . . . . . . . . . . . . . . . . . . . . . . . 162 IPen. . . . . . . . 172 IPen. . . . . . 168 IPen. .HorizontalAxisScroll [Property][Get/Set] . . . . . . . . . . . . . . .Count [Property][Get] . . . . .VerticalAxisScroll [Property][Get/Set] . . . . 163 IPen. . . . . . . . . . .VerticalAxisWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . 176 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .HorizontalGridlinesWidth [Property][Get/Set] . . . . . . . 188 IPens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .RemoveAll [Method] . . . . . . . . . 167 IPen. . . .AxisBackgroundColor [Property][Get/Set]. . . . . . . . . . . . . . . 162 IPen. . . 183 IPen. . . . . 190 IPens.HorizontalAxisResize [Property][Get/Set] . . . . . . . . . . . . . . . . . . . .VerticalGridlinesStyle [Property][Get/Set] . . . 184 IPen. . . . . . . . . . . . . . . . . . . ._NewEnum [Property][Get] . . . . . . . . .HorizontalGridlinesColor [Property][Get/Set] . . . . . . . . . . 192 IProcessAnalyst Interface . . . 186 IPen. . .VerticalAxisLabelType [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . .RequestMode [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 IPen. . .IsSelected [Property][Get] . . . . . . . . . . . . . . . 164 IPen. . . . . . . . . . . . . . . . . . . . . . .TrendCursorLabelLineColor [Property][Get/Set] . . .HorizontalAxisWidth [Property][Get/Set] . . . . . . . . . . . . . . . . . 173 IPen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ItemByName [Property][Get] . 180 IPen. . . .

. . . . . . . 223 PropertyChanged [Event] . . . . . . . . . . . . . 200 IProcessAnalyst. . . . .ContextMenu [Property][Get/Set] . . . . .SecondaryPath [Property][Get/Set] . . . . . . . . . . . . . 217 MouseDoubleClick [Event] . . . . . . . . . . .AdminPrivilegeLevel [Property] [Get] . . . . . . . . . . . . . . . . . . . . . . . 208 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . 211 IProcessAnalyst.DataRequestRate [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . 216 IProcessAnalyst. 194 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . .SynchroniseToNow [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .SubscribeForPropertyChange [Method] . . . . . . .DisplayRefreshRate [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .SaveToFile [Method]. . . . . . . . . . .UnsubscribePropertyChange [Method]. . . 205 IProcessAnalyst. . . . .LockedPens [Property][Get/Set] . . . . . . . . . 221 VerticalAxisChanged [Event] . 206 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LoadFromFile [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . 194 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . .FreezeEvent [Method] . . . . . . 197 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196 IProcessAnalyst. . . .PrimaryPath [Property][Get/Set] . . . . . . . . . . . . . . . . .NumberofSamples[Property][Get/Set] . . . . . . . . . . . . . . . 218 PenCreated [Event] . . . . . . . 195 IProcessAnalyst. . . . . . . . . 224 OVItemAdded [Event] . . . . . . . . . . . . . . . 202 IProcessAnalyst. .Cursors [Property][Get]. .BlockUpdates [Method]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 IProcessAnalyst.BackgroundColor [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213 IProcessAnalyst. . . . . . . . . . . . . . .AutoScroll [Property][Get/Set]. . . . . . . . . . . . . 196 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 IProcessAnalyst. . 219 PenDeleted [Event] . . . . . . . . . . . . . .CommandSystem [Property][Get]. . . . . . . . . . . . . . 204 IProcessAnalyst. . . . . . . . . . 214 IProcessAnalyst. . . . . . . . . . . .ZoomMode [Property][Get/Set]. . . . . . . . . . . . . 210 IProcessAnalyst. . . . . .viii Contents IProcessAnalyst. . . . . .Toolbars [Property][Get] . . . . . . . 200 IProcessAnalyst. . . . . . . . .WritePrivilegeLevel [Property][Get]. . . . . . . . . . . . . . . . . 223 Error [Event] . . . . . . . . . . . . . . . . . .CopyToFile [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Language [Property] [Get/Set] . . . . . . . . . . . .CopyToClipboard [Method]. . . . . . . . . . . . . . . . . . . . . . . . . 218 MouseClick [Event] . 222 CursorMoved [Event]. . 220 PenSelectionChanged [Event]. . . . . . . . 207 IProcessAnalyst. . . . . . . . .UnBlockUpdates [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198 IProcessAnalyst. . . . . . . . . . 220 PenRenamed [Event] . . . . . . . . 204 IProcessAnalyst. . . . 225 OVItemSelected [Event] . . . . . . . . . . . . 203 IProcessAnalyst.ObjectView [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221 HorizontalAxisChanged [Event]. . . . . . .ShowProperties [Method] . . . . . . . . . . . . . . . . . 199 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 OVItemRemoved [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 IProcessAnalyst. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LastSelectedPen [Property][Get] . . . . . . . . 226 . . . . . . . . . . . . . . . . . . . . . . . . . 209 IProcessAnalyst. . . . . . . .PrintAll [Method] . . . . . . . . 201 IProcessAnalyst. . . . . . . . .Panes [Property][Get] . . . . . . . . . .

. . .Add [Method]. . . . 227 CommandExecuted [Event]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 RequestMode [Enumeration]. . . . . . . . . . . . . . . . . . . . .Position [Property][Get/Set]. . . . . . . . .Width [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 IToolbarButtons. . . . . . . . . . . . . . . . . . . .Visible [Property][Get/Set] . . . . . . . . . . . .Item [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 IToolbarButtons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 ErrorNotifyCode [Enumeration] . . . . 237 IToolbars. . . . . . . . . . . . . . . . . . . . . . . . . .Visible [Property][Get/Set] . . . . . . . . . . . . 229 AxisLabelType [Enumeration] . . . . . . . . . . . . . . 248 ITrendCursor. . . . . . 234 QualityCompactionType [Enumeration]. . 246 ITrendCursor. . . . . . . . . . 226 OVColumnAdded [Event] . . . 247 ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Count [Property][Get] . . . . . . . . . . . . . . 239 IToolbarButtons Interface . . . . . . . . . . . 232 PenType [Enumeration]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245 ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Collection [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Count [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 ITrendCursor. . . .Name [Property][Get/Set] . . . . . . . . . . . . . . . . . . . . . .Remove [Method] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .PenLabelVisible [Property][Get/Set] . . . . . . 235 IToolbar. . . . . . . . . . 239 IToolbarButton. . . . . . . . . . . . 234 QualityType [Enumeration] . . . . . . . . . . . . . .Delete [Method] . . . . . . . . . . . . . 227 OVColumnRemoved [Event] . . . . . . . . . 243 ITrendCursor Interface . . . . . . . . . . . . . . . . . . . . . .Item [Property][Get]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 PenNameMode [Enumeration] . . . . . . . . . . . . . . . . . . . . . 242 IToolbarButtons. . . .Contents OVItemChecked [Event] . . . . . . . . . 230 LineStyle [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._NewEnum [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241 IToolbarButtons. . . . . . . . . . 240 IToolbarButtons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 ToolbarButtonType [Enumeration]. . . . . . . . . . . . . . . . . . . . . . . . . 245 ITrendCursor. . . . . . . . . . . . . . 231 HatchStyle [Enumeration] . . . . . . . . . . . . . . . . . . . . . . .CommandId [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 IToolbars Interface . . . . . . . 232 PointType [Enumeration] . . . . . . . . 243 ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 IToolbar Interface . . . . . . . . . . . . . . . . . . . . . . . . . 241 IToolbarButtons. . . . . . . .Buttons [Property][Get] . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 ix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236 IToolbar. . . ._NewEnum [Property][Get] . . . . 238 IToolbarButton Interface . . . . . . . 233 LineType [Enumeration] . . . . . . . . . . . . . . . . . . . . . . . . . . . . .GetValue [Method] . . 244 ITrendCursor. . . . . . . . . . . . . . . . . 237 IToolbars. . . . . . . . . . . . . . . . . . . . . . 228 UpdateCommand [Event] . . . . . . . . . . . . . . . . . . 247 ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Color [Property][Get/Set] . . . . . . . . . .RemoveAll [Method] . . . . . . . . 235 FileLocation [Enumeration] . . . . . . . . . . . 229 AlarmType [Enumeration] . . . . . . . . . . 238 IToolbars. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .x Contents ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .PenLabelWidth [Property][Get/Set] . . . . . . . . . . . . 257 Implementing a custom column. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 251 252 253 254 Chapter 13 Cicode Programming Reference Automation Examples . . . . . . . . 256 Implementing a custom command. . . . . . . . . . . . 255 Enumerating collections . . . . . . . . . . . . . ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 Handling an Event . . . . . . . . . . . . . . . . . . . . . . . . 259 Index 265 . . . . . . . . . . . . . . .PenLabelY [Property][Get/Set] . . . . . . . . . . . ITrendCursor. . . . . . . ITrendCursor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .LabelsLocked [Property][Get/Set] .PenLabelX [Property][Get/Set] .PenLabelHeight [Property][Get/Set] . .

An Operator is not expected to possess in-depth technical knowledge about the Process Analyst components. and understands how these components interact. see “Process Analyst for Operators”. User . see “Process Analyst for Users”. An Operator might configure the properties of various Process Analyst components during runtime to facilitate their work. A User possesses in-depth technical knowledge about Vijeo Citect and Cicode. . For details about using the Process Analyst as a User.a person who uses the Process Analyst in a runtime environment to monitor plant operations.a person who uses the Process Analyst during design time to engineer a view for an Operator.About this Documentation The information presented here is intended for two types of user. For details about using the Process Analyst as an Operator. Operators and Users: Operator .

2 .

Part 1 Process Analyst for Operators This section contains information for Operators and describes the following: “The Process Analyst: An Overview” “Using the Main Toolbar” “Understanding Process Analyst Pens” “Interacting with the Process Analyst” “Using the Object View” “Printing and Exporting” “Configuring the Process Analyst” “Operator Command Reference” .

.

Users can configure certain properties of the Process Analyst control during design time.Chapter 1: The Process Analyst: An Overview The Process Analyst control allows Operators to view trend and/or alarm tag data (both real-time and historical) for comparison and analysis during run time through their existing Vijeo Citect server architecture. You can configure most pen properties during run time. digital pen. 2 3 4 . A typical Process Analyst view might look like the one shown here. and so on. Pens: A Process Analyst pen represents your trend and/or alarm data. You can configure chart panes. Every pen belongs to a single pane. such as opening views. and alarm pen. the background may be partially visible. printing reports. Chart background (not shown): The panes are drawn over the chart background. Panes: Panes are used to group pens visually in the Process Analyst and are stacked vertically on the Process Analyst display. You can configure the chart background. Depending on the layout of the pens. You can configure this toolbar to contain different items. 5 1 7 8 2 3 6 9 10 The Process Analyst control interface typically consists of the following components: 1 Main toolbar: Contains commands for performing general operations in the Process Analyst. Your Process Analyst views will probably look different to this example. The Process Analyst supports three types of pen: analog pen. Each pen has its own graphical representation.

6 7 8 9 10 Object View: When displayed. Navigation toolbar: Contains commands to allow an Operator to travel forward or backward through trends. You can configure the cursor. color. You can configure this axis.2 5 Date/time axis: Located at the top of a pane. You can configure this toolbar to contain different items. as well as other navigation-related tasks. scale. Cursor labels: Display the value where the cursor intersects the trend value line. the date/time (horizontal) axis displays the date or time (or both) of the data for the primary selected pen within a pane. such as name. Cursor: A cursor allows an Operator to determine value at a given point in time by dragging the cursor line to the point required. Vertical axis: Analog pens have a vertical axis on the left-hand side of the pane to indicate data values. You can configure the Object View. the Object View appears under the navigation toolbar and displays information about your Process Analyst pens. and so on. . You can configure the axis.

Toggles the locking of pens. Toggles the display of cursor labels. see “Loading a view”. For details. Lock/Unlock Pens. see “Configuring the Process Analyst”. Saves a view to file. Properties. The main toolbar contains commands that allow you to perform general operations. Add Pen. For details. For details. for details. Displays the standard Windows Print dialog box for printing trend reports. see “Using Cursor Labels”. Copies visible pens to the Windows Clipboard. Copy to Clipboard. see “Pens: An Overview”. Remove Pen. Toggles the display of cursors. Displays the Process Analyst online Help. Show/Hide Cursors. print trend reports. see “Copying data to file”. see “Deleting Pens”.Chapter 2: Using the Main Toolbar The Process Analyst main toolbar is located above the top pane. display or hide cursors and labels. For details. For details. For details. Toggles the display of the Object View. Show/Hide Cursor Labels. Show/Hide Points. see “Adding Pens”. Displays the Add New Pen(s) dialog box for adding a pen. and so on. Print. See Also “Using the Navigation Toolbar” | “Operator Command Reference” . The table below describes the items that are included on the main toolbar by default. For details. Loads a saved view from file. see “Locking/Unlocking Pens”. add or remove pens. Toolbar commands can be customized. see “Using Cursors”. Displays the Properties dialog box for configuring the Process Analyst control. Save View. For details. such as save and load Process Analyst views. Toggle Object View. Toggles the display of points representing where sample data was recorded in the archive. see “Saving a view”. Deletes the currently selected pen from the trend display. Item Description Load View. For details. see “Configuring Toolbars”. For details. Help. For details. For details. Export to File. For details. Exports visible pens to an Excel-compatible file. see “Printing and Exporting”. see “Copying data to the Clipboard”. see “Using the Object View”.

4 .

However. The following illustration zooms in on the second multiple sample. Each pen has its own colored line (and can contain other graphical elements). For example. The style of the line indicates the quality of the data. . Data is compacted by grouping raw samples together to form a multiple sample. because the data points in this view are too dense to display as individual points. See Also “Pens: An Overview” | “Pen Types” Pens: An Overview Process Analyst pens are drawn against time. 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.Chapter 3: Understanding Process Analyst Pens The Process Analyst pens allow you to analyze and compare both real-time and historical data from trend and alarm servers. 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 Single Multiple Interpolated Point type Ellipse Rectangle Triangle (see “Interpolated samples”). Sample compaction is indicated on the graph by using different sample markers. the two sample markers that appear as squares actually represent multiple raw samples. the multiple samples appear as one data point. in the illustration below. Sample markers (or points) are drawn on the line to indicate where data was recorded in the archive. the style of the sample marker indicates the compaction of the sample.

The frequency of the data stored in an event trend can vary dramatically. The timestamp will be the average of all the individual samples within the multiple sample. So an interpolated sample is added at the start of the next display period to correct the graph. Data Quality Process Analyst pens use the same quality system as Vijeo Citect trend and alarm data.Samples were recorded in the trend archive as good. See Also “Interpolation” Request modes Because the Process Analyst Control makes requests for a range of data using a display period. where several samples are within one display period. The Process Analyst uses the following default line styles to indicate data quality: Quality Good Line style Solid . Minimum: The value will be the minimum value out of all the individual samples within the multiple sample. as will the timestamp. The timestamp will be that of the individual sample that was the newest. Gated/Disabled . Maximum: The value will be the maximum value out of all the individual samples within the multiple sample. NA .When Vijeo Citect is unable to obtain a sample or the data retrieved was invalid. But the value after that period will be whatever the last sample in the period was. when the trigger of a trend is off. for example. The Process Analyst provides the following options for this calculation: Average .6 Interpolated samples Normally samples are only single or multiple.The value will be an average of all the individual samples within the multiple sample. This is the default calculation method. this data quality state indicates that the alarm has been disabled. an N/A sample will be recorded in the trend archive. followed by no samples for a long time.For trends. Vijeo Citect needs to perform calculations on data if it becomes too dense in order to calculate the value of a multiple sample. There are four data quality states: Good . The timestamp will be that of the individual sample that was the minimum. For alarms. Newest: 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 within the multiple sample. A multiple sample will be drawn with a value calculated from the samples within the period. But there is a specific situation in which an interpolated sample is used to correct a graph that only occurs with event trends. 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. a value of "Gated" is recorded in the trend archive.

the time is removed and only the date is displayed. these settings must be configured accurately. The date/time axis can also display data using the universal time coordinate (UTC) format. indicated by the break in the trend line. The quality of the third (multiple) sample and the next sample is N/A. the quality of the last sample in the group determines how the line is drawn. You can switch between local or UTC time as you like (see “Configuring pen axes”). which change dynamically depending upon the time span. Date/Time (Horizontal) Axis All Process Analyst pens have a date/time axis. indicated by the broken line connecting these samples.m. again indicated by the broken line connecting the samples. The date/time axis displays time using the current locale format specified in your computer date/time settings.00p. If the millisecond component is required. the major intervals are 1 minute apart. and the minor are 5 seconds apart. When the axis time span is 1 week or above. . The date/time axis is divided into major and minor time intervals. again indicated by the break in the trend line. the format of the axis labels includes milliseconds and the date is removed. Here the quality of the third sample is gated. With multiple samples. Consider the following examples: This example shows that the third sample is actually a multiple sample. Here the quality of the third multiple sample is gated.m. In the illustration above. Note the following: When the axis time span is 1 minute or less. local time will be 8. If the current time is 10.7 Quality NA Gated Line style None Dot Consider the following examples: Data sample Description This example shows several single samples. see “Configuring pen quality”. located at the top of the pane. it is appended to the end in the format “<xxx>ms. in the Sydney (GMT+10) time-zone.00p. The line style indicating the data quality is configurable during run time and design time. The third sample has a quality of N/A. UTC.” Since the local time zone is determined from the current computer settings. for details.

The value axis is shown only for analog pens. when 1 hour is removed from daylight savings time.m. For example. When autoscaling is enabled. see “Interacting with the Process Analyst”. Like the date/time axis.m.m. the vertical axis automatically adjusts its limits to accommodate new samples as they are added to each individual pen.m. By default the vertical axis will use the engineering scale from the tag of the selected pen. 3a. the major intervals represent 5 minutes. Likewise. the date/time axis displays a time span of 10 minutes. 1a. the axis will display 11a. Vertical (Value) Axis The vertical (value) axis is located at the left-hand edge of the pane. for details. Now indicator The Now indicator is a small white circle on the date/time axis that indicates the current computer time based on the computer’s time settings. You can also configure the date/time axis to suit your preferences. and the minor intervals 30 seconds. “Now” is represented only by the Now indicator.. The intervals are calculated automatically by the Process Analyst. 5a. The vertical axis also supports autoscaling. or back into the past.m.m.m.m. but they represent value intervals rather than date and time. You can scroll and scale the date/time time axis to interact with your Process Analyst pens. 5a. 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.. .. the value axis consists of major and minor intervals. 12a. which may be located anywhere on the trend display.. see “Configuring pen axes”.. note the following: In Vijeo Citect the right-hand side of the screen always represents Now (when looking at real-time data). since it is possible to scroll into the future. for details.8 By default. 3a. 2a.m. 4a.. if this transition occurred at 2a.. Note: If you have used the Vijeo Citect trend page feature. 12a.m.m. when entering daylight savings. 2a. 1a..m..m. even off screen... the axis displayed reflects the values for the primary selected pen.m. the axis will indicate the transition as 11a.m. Daylight savings (local time) The date/time axis can also accommodate daylight savings transitions. in the out transition. 4a... In the Process Analyst control.

9 In this example. You can configure vertical gridlines at run time for all pen types. The display of gridlines changes dynamically according to the selected time span. Major gridlines are solid lines. starting from the top of the pane under the date/time axis. three pens (one analog and two digital) are stacked under each other. You can also configure the appearance of the vertical axis. like this: Here. pens are drawn on top of each other. there are two panes. see “Configuring pen gridlines”. Analog pens have vertical and horizontal gridlines. The order in which the pens were added to the pane governs the drawing order: the last . alarm and digital pens only have vertical gridlines. minor gridlines are broken lines. stacked pens are laid out under each other on the pane. In unstacked mode. For details. see “Configuring pen axes”. Stacking applies to all types of pens. for details. In stacked mode. you can configure horizontal gridlines for analog pens. Pen Layout You can are display pens in the Process Analyst by stacking or overlaying. Gridlines The Process Analyst pens use gridlines as a visual guide to help an Operator determine the value of trends. for details. and with this. see “Scrolling the Chart” and “Scaling the Chart”. each of which has a differently scaled vertical axis. a user-specified amount of vertical real-estate is allocated to the pen. You can scroll and scale the vertical axis.

the lines drawn always maintain the value of the previous sample until a sample with a different value arrives. Analog and digital pens are associated with trend tags. When a pen is selected. alarm pens are associated with alarm tags.10 pen added is the topmost pen drawn. You can have any mix of stacked and unstacked pens on a pane. which the data is plotted against. Only analog pens have a value (vertical) axis. in which case a vertical line is drawn: . digital pens. two analog pens are overlaid. Pen Types The Process Analyst control supports three types of pen: analog pens. Analog pens The Process Analyst control typically uses analog pens to represent nonbinary data. 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 . You can also overlay digital and alarm pens.a line is drawn directly between the points like this: Stepped . it is brought to the front of any other pens displayed Here. and alarm pens.

See Also “Interpolated samples” The Process Analyst control typically uses digital pens to represent binary data. The diagram below illustrates how an alarm pen displays the information of an alarm tag: 1 3 on/off 2 1 2 3 4 4 The alarm is turned on in its initial state and is unacknowledged. the alarm pen consists of three elements: the alarm state. The alarm is turned off. width.11 The Process Analyst allows analog pens to be configured at run time and design time. For details. all other values are clamped to 0. see “Pen Layout”. For details. Any value equal to or greater than 0.5 is clamped to 1. Values on the pen are clamped to a range of 0 to 1. but is still unacknowledged. on/off. and fill color. see “Configuring Pens”. To achieve this. The alarm changes to a different state. and acknowledgement. The Process Analyst allows the appearance of digital pens to be configured during run time and design time. as shown here: Digital pens By default. . the layout of digital pens is stacked. A fill color is used to indicate where the data is 1. You can configure the trend line color. The Process Analyst supports seven different types of alarm pens. Alarm pens The Process Analyst uses alarm pens to graphically display the history of a Vijeo Citect alarm over time. The alarm is acknowledged. The alarm’s on/off transition state changes and acknowledgements are all represented graphically in the alarm pen display. For details. see “Configuring pen appearance”.

The Process Analyst indicates the period for which the alarm has been left unacknowledged by drawing a line above the trend line. see “Configuring alarm pens”. shading style. A new unacknowledged period begins whenever the alarm transitions to an on state. the state descriptions are retrieved from the Vijeo Citect alarm record. as shown here: acknowledgement marker . see “Configuring alarm pens”. Alarm acknowledgment Process Analyst alarm pens can represent when alarms are acknowledged. the line is drawn high. these properties are configurable. Note: For multi-digital alarms. The Process Analyst uses a different color. the alarm pen will draw the line low. it enters a particular state. alarm pens can represent variations in data quality and data compaction. The Process Analyst identifies this by placing a sample marker to indicate the exact time the alarm was acknowledged. On/off When an alarm is off. For details. The states of an alarm are dictated by the type of Vijeo Citect alarm tag. and description to represent each alarm state. Alarm states When an alarm transitions to on.12 Like other types of pen. The Process Analyst allows alarm pens to be configured at run time and design time. and by drawing an unacknowledged line down to that sample marker. unacknowledged periods acknowledgements The unacknowledged period ends when an Operator acknowledges an alarm. When the alarm transitions to on. The Process Analyst supports all Vijeo Citect standard alarm types. For details.

. the alarm state value is the last recorded value in the group.13 Alarm types The Process Analyst uses the following types of alarm pen: Alarm type Digital Alarm pen representation Analog Advanced Argyle Analog Multi-digital Timestamped Timestamped analog Timestamped digital For multiple samples in an alarm.

14 .

the pen line).Chapter 4: Interacting with the Process Analyst This section discusses how to interact with the Process Analyst.e. In the example shown here. By selecting the pen in the Object View. by clicking the background under the pen line. The selection of a pen is indicated by a subtle halo effect surrounding the pen line. the top (green) pen is selected. 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. indicated by the halo surrounding the pen: .. See Also “Pen Selection” “Locking/Unlocking Pens” “Scrolling the Chart” “Scaling the Chart” “Using the Navigation Toolbar” “Using Cursors” “Using Cursor Labels” “Using the Right-click Menu” “Understanding Mouse Pointers” “Adding and Deleting Pens” “Viewing Pen Details” Pen Selection Each pane on the Process Analyst can have one selected pen. If the pens are stacked. You can select a Process Analyst pen in several ways: By clicking on the pen’s graphical elements (i.

To control pen locking and unlocking. then unlocking the pens. all time-related operations are applied to all pens. Locking and unlocking has the following behavior: When pens are locked. This option is also available on the right-click (context) menu. Selecting a pen causes that pen to be drawn in front of other pens on the pane. the Process Analyst locks together the time span and position in time (horizontal axis) of all pens. When transitioning from locked to unlocked. To scroll by dragging: 1 2 Click and hold down the left mouse button on the pen (or background) that you want to scroll. allowing the pens to be displayed across different positions in time and/or time spans. Spin the mouse wheel in the direction you want to scroll: To scroll by using the mouse wheel: . Selecting a pen on a pane also causes the same pen to be highlighted in the Object View. 3 1 2 Release the left mouse button to complete the scrolling. Synchronization applies to all pens regardless of their being locked or unlocked. the time span and position in time of all pens are synchronized to match that of the primary selected pen. Vertical axis: drag up to scroll down the axis. For example. you could unlock pens to compare a previous month’s data for a tag with the data for this month. Scrolling the Chart The Process Analyst allows you to scroll through data in both the horizontal and vertical directions by dragging the mouse or spinning the mouse wheel. you use the Lock/Unlock Pens button on the main toolbar. You would do this by adding two pens to a pane that represent the same tag. all time-related operations are applied to the primary selected pen. However. and adjusting the time positions for each pen as required. When pens are unlocked. you can unlock the pens. Locking/Unlocking Pens By default. Click the pen or background that you want to scroll. Drag the mouse in the direction you want to scroll: Horizontal axis: drag right to move backward in time.16 Note that the halo does not appear if there is only one pen on the pane. drag left to move forward. drag down to scroll up the axis.

Select predefined time spans. or both by using the Property dialog box or the right-click (context) menu. Synchronize all pens to “Now. the vertical direction. To scale the data by dragging: 1 2 Click and hold down the left mouse button on the axis that you want to scale. 3 1 2 Release the left mouse button to complete the scaling. Spin the mouse wheel in the direction you want to scale: Horizontal axis: spin up to shrink the axis. Lock time spans on the display. see “Configuring pen axes” and “Using the Right-click Menu” for details. Click the axis that you want to scale. Vertical axis: spin up to scroll up the axis.17 Horizontal axis: spin up to move backward. or both by using the Property dialog box or the right-click (context) menu. Scaling the Chart The Process Analyst allows you to change the scale of the data in both the horizontal and vertical direction by dragging the mouse or spinning the mouse wheel. spin down to scroll down. The Process Analyst indicates whether scrolling is enabled or disabled by displaying a different-shaped mouse pointer. for details. Vertical axis: spin up to expand the axis. the vertical direction. spin down to expand. see “Understanding Mouse Pointers”. for details. You can disable scrolling in the horizontal direction. Navigate backward or forward through your data. see “Configuring pen axes” and “Using the Right-click Menu” for details. drag down to shrink. spin down to move forward.” . drag right to shrink. The Process Analyst indicates whether scaling is enabled or disabled by displaying a different-shaped mouse pointer. Drag the mouse in the direction you want to scale: Horizontal axis: drag left to expand the scale. You can disable scrolling in the horizontal direction. spin down to shrink. To scale by using the mouse wheel: Using the Navigation Toolbar Using the navigation toolbar you can: Specify a start time and end time. Vertical axis: drag up to expand the scale. see “Understanding Mouse Pointers”.

Zoom in on or out of data.18 Toggle autoscrolling of the display. Specifying a start time and end time You can specify a start time and an end time for the trend display by using the date/time pickers. The start time picker is located on the left-hand side of the navigation toolbar. Note: You can use the Left arrow and Right arrow keys to move between time elements. When in Standard time. the end time picker on the right. Edit the vertical (value) scale. The date/time picker formats the date and time using the settings obtained from your computer for the currently logged in user. Undo the last zoom operation. Toggle between Zoom mode and normal mode. Do either of the following: Type in a time explicitly. The date/time picker displays time in 24-hour format (dd/mm/yyyy hh mm:ss nnn) 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: 1 2 Click the element of the date or time you want to change in the start time picker or the end time picker. Set nonstandard time spans. 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. Press the Up arrow key or Down arrow key to increment or decrement the value respectively. the clock does not have a shaded segment. For example. this icon appears when the time picker’s value is within the local Daylight Savings period: .

For example.19 This icon appears when the time picker’s value is within the local Standard time period: If the Daylight Savings transition involves duplicate hours. minutes. you can use the spin controls (or Up and Down arrow keys) to select the hour you want. 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. 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. To shift by unit: 1 Press and hold down the Shift key. and seconds. This also works for months that have different end days. the month time element in the end time increments by one month exactly. if you shift by unit the month time element in the start time. . Using these shortcuts. 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. including days.

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. Both the start time and end time element are synchronized to zero based on the date/time element selected. the Start hour time element shows 19:00:00. For example. the time span is not maintained when any of the time pickers are changed. the end time on the right. See Also “Span Lock” When the time span is locked and the start time and/or end time picker changed. See Also “About time spans” The navigation controls allow an Operator to navigate backwards or forwards through time. To fit to unit: 1 2 Press and hold the Ctrl key. The amount of time moved depends upon the time currently selected in the Span Picker. Back Half a Span . Selecting a time span adjusts the start time. If the time span is unlocked. leaving the end time as-is. Click a date or time element in the date/time picker. Navigating time .000. the span is locked. and the End time element shows 20:00:00. After Ctrl + click. Span Lock By default. About time spans The time span of the trend display is the difference between the start time and the end time. The opposite time picker changes by the base time amount of the selected time element. an Operator clicks on the hh time element of the Start picker. You can toggle span locking on or off by using the Span Lock button. The start time appears on the left-hand side of the trend display. For example.20 2 Click a date or time element in the date/time picker.moves back one time span.moves back half a time span. it also contains commonly used predefined time spans.000. Now the time span represents exactly one hour. The following navigation controls are available: Navigation control Description Back One Span .moves forward half a time span. the current time span is maintained.123. The Span Picker (shown below) indicates the current span being used. if 10 minutes is selected in the Span Picker and Back One Span is clicked. the display moves back 10 minutes into the pen’s history. Forward Half a Span . synchronized on the hour. which shows 19:30:05.

21 Navigation control Description Forward One Span . returning the display to the previous state.moves forward one time span. In Box Zoom mode. Zooms out of the displayed data. Undo Last Zoom Undo Last Zoom allows you to undo the last zoom operation. Zoom In/Zoom Out Use the Zoom In 50% and Zoom Out 50% commands like this: Command Zoom In 50% Zoom Out 50% Icon Description Zooms in on the displayed data. doubling the span of both axes. The refresh rate of the display can be controlled by using the Display Refresh Rate property.” which is positioned on the right-hand edge of the screen. You can toggle Autoscrolling on or off by using the Toggle Autoscrolling button. To use Box Zoom: 1 Select the pen to zoom in on. “Now” is calculated using the current system time. Toggle Box Zoom The Toggle Box Zoom button switches between Box Zoom mode and normal interaction mode. causes Autoscrolling to be turned off The Autoscroll command is also available from the right-click (context) menu. Note: The midpoint of each axis is maintained during these zoom operations. including the Time Span picker. you can define an area of the chart to zoom in on for more detail. as time passes the position in time of all pens remain fixed. See Also “Now indicator” When Autoscroll is turned on. as time passes the position in time of all pens moves by the same amount to keep pace. the display is updated every second. By default. When Autoscroll is turned off. The Synchronize to Command is also available from the right-click (context) menu. halving the span of both axes. Synchronize to Now The Synchronize to Now command synchronizes all pens such that the date/ time reflects “Now. . by default. Toggle Autoscrolling Using the navigation controls. Autoscroll is on.

Depending on whether the pens are locked or unlocked. the zoom is applied only to the selected pen in both the date/time and vertical (value) axes. which allows you to set non-standard time spans. 5 To exit Zoom mode. the zoom is applied to the vertical (value) axis of all non-autoscaled analog pens in the pane in which the zoom box was initiated. For unlocked pens. the Toggle Box Zoom commands works differently: For locked pens. If an analog pen is being zoomed. The value axis is only affected if autoscale is off. Note: Vertical zoom is only applied to analog pens. To edit a time span: 1 Click Edit Span on the navigation toolbar. Edit Span Click the Edit Span button to display the Edit Span dialog box.22 2 Click Toggle Box Zoom on the navigation toolbar. since it has no effect with alarm or digital pens. as shown below. 3 Click and drag the bounding box to enclose the part of the data you want to zoom in on. . the zoom is applied to all pens in the horizontal date/time axes. The display changes to a close-up of the selected data. 4 Release the mouse button. The cursor changes to a cross. click the Toggle Box Zoom button. The Edit Span dialog box appears.

To edit the vertical scale: 1 Click Edit Vertical Scale on the navigation toolbar. For details. You can use the Right arrow and the Left arrow key to move between the time elements. hr = hours. d = days. 3 Edit Vertical Scale The Process Analyst allows Operators to edit the vertical scale of a selected analog pen to display more appropriate values. or use the Up arrow or Down arrow to specify a new value. 2 Enter a New span. The new time span is applied.23 The fields provided are: w = weeks. Click the element of the time span that you want to change. sec = seconds. and then click OK. . Enter a new Minimum value and Maximum value. min = minutes. The default span can be configured by using the Property dialog box. The Engineering Scale values are obtained from the trend tag. 2 Click the Limits or Engineering Scale option. The Edit Vertical Scale dialog box appears. see “Configuring pen axes”. Click OK. and ms = milliseconds. The vertical scale for digital or alarm pens cannot be edited. if required. 3 Reset to Default Span Use the Reset to Default Span button to reset the time span to the default time span of the primary selected pen. then either type in a new value. The Limits values displayed are the current values used by the vertical scale.

reflecting the position of the cursor. To move a cursor. For details. see “Configuring Cursors”. the cursor labels move with the cursor and are updated continuously. drag the cursor line left or right. A line connects the cursor label to the associated pen line.24 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. Note: The cursor extends across all configured panes. An Operator can define many of the properties of cursors and cursor labels. the cursor labels (the yellow rectangles) display the corresponding pen values. The line has three main states: State Intersection within pen data Style Line Example Intersection before or after pen data Line with indicator . As the cursor moves. A cursor label is used to display the value. In this example the cursor intersects three pens.

the label reads “<value> km/h”. Alarm Sample Alarms Comment bound to an alarm sample. if your vertical axis format is “km/h”. Using Cursor Labels Each cursor has one cursor label for each pen displayed.25 State No intersection and no data Style Invisible line Example To show/hide a cursor: Click Show/Hide Cursor on the main toolbar. Lock or unlock the cursor labels Click the Lock/Unlock Cursor Labels. the label text resizes to an optimal size for the label. If you drag the corner of the label. right-click the root item (Process Analyst View) in the property tree in the Properties dialog box. For example. and choose Add Cursor. To display cursor labels: Click Show/Hide Cursor Labels on the main toolbar. . To add a cursor. and drag the label to the new size. The cursor label displays the following information: Cursor field Pen Name Value/Quality Applies to Description All Pen types Displays the non-unique Process Analyst pen name All Pen types Displays the value of the pen at the point the cursor intersects with the pen data Date-Time Stamp All Pen types Displays the date/time stamp at the point the cursor intersects with the date/time axis. This table summarizes how to use cursor labels: Task Description Move a cursor label Click the cursor label and drag the label to a new location. Comment The fields are displayed in the cursor label using the order defined above using the format specified for the vertical axis. You can display as many cursors as you want. this command causes cursor labels to be “frozen” in the position. Place the mouse cursor on one of the sizing boxes. You can display additional cursors by using the Properties dialog box. The cursor label displays the value of the pen at the point where the cursor intersects with the pen data. When on. Change the size of cursor labels Click the cursor label you want to resize.

Acknowledged or Unacknowledged. Understanding Mouse Pointers When using the Process Analyst. For details. the mouse pointer changes shape to indicate the operations you can perform at that time. Using the Right-click Menu Use the right-click (context) menu to quickly access frequently used commands.. The label value can also contain a directional indicator that functions as follows: Cursor value <value> -> <.<value> Description The cursor is to the left of the first available sample for this pen. Mouse pointer Region Pen line Description The mouse pointer looks like this when the pointer is on a pen.e. this command displays the Properties dialog box. Clicking and dragging at this point results in the free movement of the pen. i. Scrolling the mouse wheel results in horizontal-only movement. see “Using the Process Analyst Properties Dialog Box”. . Clicking the mouse at this point selects the pen. This menu is context-sensitive. At the point of intersection the alarm tag of the pen was disabled. At the point of intersection the pen’s data has been gated. The cursor is to the right of the last available sample for this pen. The right-click menu appears when you click any of the following regions: Horizontal axis Vertical axis Background Pen The Properties command is always available on the right-click menu.26 The label displays the following values when the quality of the data is not good: Cursor value NA Gated Disabled Description At the point of intersection the pen has no available data for display. Pen line/pen The mouse pointer looks like this when the mouse is over a pen’s background background and both horizontal and vertical scrolling are enabled. providing relevant commands for different regions of the display. Alarm label value The alarm label value has the following format: state [acknowledgement] where state refers to the alarm state at the point of intersection (see “Alarm pens”) and acknowledgement refers to the acknowledged state of the alarm at the point of intersection.

The Process Analyst displays only the tags in clusters that this client has access to. and Last buttons to navigate your search results. The results are not sorted: the tags appear in the order they were configured in Vijeo Citect. If your search returns more than 100 results. use the First. More complex examples include ‘L* OR (H* AND NOT *G)’. The mouse pointer looks like this when Box Zoom mode is enabled. Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scaled. The filters have basic wildcard and Boolean search functionality. To display the Add Pens dialog box. . See “Toggle Box Zoom”. Next. Entering ‘L* OR H*’ will find all tags beginning with “L” or “H”. 3 Click Search. The cluster associated with each tag is also displayed. In a system with more than one cluster. If you leave either of the Filter text boxes blank. To add a new pen: 1 2 Select the Type of server you want to search: Trends or Alarms. Vertical axis The mouse pointer looks like this when the pointer is on the vertical axis and vertical scaling is enabled. OR and NOT with wildcard strings.27 Mouse pointer Region Horizontal axis Description 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. Clicking and dragging (or scrolling the mouse wheel) will result in the axis being scrolled. The Process Analyst allows Operators to search the trend tags and alarm tags that are defined on their trend and alarm servers and add pens that represent these tags to the current trend display. 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 only vertical scrolling is enabled. but do not end in “G”. Adding Pens You use the Add New Pens dialog box to add a new pen to your trend display. click Add Pens on the main toolbar. For example. The search results are returned in the Search list. Pen line/pen The mouse pointer looks like this when the pointer is on the horizontal axis background and only horizontal scrolling is enabled. This would return all tags that start with “L” or any that start with “H”. as well as group Boolean terms using parentheses. Type in a Tag Filter and/or Cluster Filter to apply to the search (optional). You can use the keywords AND. The Search Result list displays a maximum of 100 entries at a time. Prev. Box Zoom mode Adding and Deleting Pens Pens can be added to or removed from any pane. it is listed once for each cluster. entering 'L*' in the Tag Filter returns all tags beginning with the letter “L” in all clusters. if a tag is not configured with a cluster. all tags or clusters of the selected server type will be retrieved.

. Select the destination pens to Add Add pens to. This moves all the selected items in the Search Results list into the Selected Items list. The Pen Detail box appears. Deleting Pens See Also “Adding Pens” Viewing Pen Details You can use the Pen Details box to view tag properties information for a selected pen. To view pen details: 1 2 Click Add Pens.applies the tag comment as the pen name. Note: Deleting a pen is different than hiding the pen from display by using the Visibility check box in the Object View. showing defined information for the selected tag. a name is automatically generated. You access this box from the Add Pens dialog box. A trend tag can be represented by an analog or digital pen. Note: To remove a tag from the Selected Items list. You can perform multiple searches to add tags into the Selected Items list. The Add Pens dialog box appears. Select how to resolve the pen name: Comment . For details on searching tags. Click Remove Pen in the main toolbar. 8 Click Add. An alarm tag can be represented by an alarm pen only. click Show Detail. highlight the item you want to move. Note that if the tag does not have a comment specified. For details.28 4 5 6 7 Select one or more tags from the Search Results list. 9 To view details about a selected tag. or to a new pane. 10 Click OK. Auto -applies an automatically generated name to the pen using the format Pen<X> where X is an incremented number. Pens can be added to any existing pane.applies the tag name as the pen name. Your selected tags appear on the trend display as pens. and then click Remove. To remove a pen: 1 2 Select the pen you want to delete. The Selected Items list contains all the tags that will be added as pens to the Process Analyst. The pen is deleted from the display. starting with the first available number. Select a Pen Type. see “Using Object View”. see “Adding Pens”. See Also “Deleting Pens” Operators can delete pens from the trend display at any time. Navigate to the tag you want to view details for. Tag . You can use the Ctrl and/or Shift keys to select multiple tags.

showing the system information for the selected tag. and then click Show Detail. . The Pen Details dialog box appears.29 3 Select the tag in the Selected Items list.

30

Chapter 5: Using the Object View
The Object View provides a structured view of the pens displayed in the Process Analyst. You use the Object View to view information about the pens on the chart, along with information about associated tags. See Also “Object View Basics” | “Using Object View” | “Configuring the Object View”

Object View Basics
The Object View displays a hierarchically arranged view of the panes and pens on the chart, in the Object Tree column. The Object View lists information about each pen. When displayed, the Object View is located under the navigation toolbar. The Object View (as it appears in a default configuration) is shown below; your Object View might look different depending on how it has been customized in your system.

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 gradientfilled color box to the left of the pen name indicates the pen’s line color as it appears on the chart.

32

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, if a new pen is added to or deleted from a pane, or if a pen’s 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 Zero Scale Full Scale Engineering Units Description Vertical axis start position of the pen. Vertical axis end position of the pen. Engineering units associated with the pen.

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”.

Using Object View
The table describes how to perform basic functions with Object View.
Task Description Toggle the display of Object View on or off Click Toggle Object View on the main toolbar. Change the size of Object View 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 Either click the (+) box to expand the node or the (-) box to Object Tree column 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 Drag the column divider left or right. during display Note: You can quickly resize a column to fit the size of the widest item in a column by double-clicking a column separator. To resize the column back to its original size, double-click the separator again. You can also configure the width of a column via the Process Analyst Properties dialog; for details, see “Configuring the Object View”.

See Also

“Configuring the Object View”

Chapter 6: Printing and Exporting
You can print detailed reports of your Process Analyst trends for management reports and other purposes. You can configure Process Analyst reports to include other print options designed to maximize the business value of your reports. You can also export pen data to the Windows Clipboard or to Microsoft Excel. Note: For details about general print options in Windows, refer to your Windows documentation. See Also “About Process Analyst Reports” | “Configuring Process Analyst Report Options” | “Exporting Pen Data”

About Process Analyst Reports
Process Analyst reports are formatted automatically by the system to make optimal use of the paper size and orientation. For example, if the page is small and the report contains a lot of information, the reports will use a smaller font to try to fit the information to the page. For larger pages, a larger font will be used. Reports use an Arial font between 8-14 points.

34

A typical Process Analysis report looks like this:

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 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.

Configuring Process Analyst Report Options
You can configure Process Analyst reports to contain such things as specific items on a report legend (pen names, durations, engineering units, for example). You can also include header information and page numbers. You use the Print dialog box to configure Process Analyst reports. To display the Print dialog box, click Print on the main toolbar. After configuring your reports, click Print on the General panel of the Print dialog box to print your report. See Also “Setting up report legends” | “Setting up report options”

the Pen Options. If there are no information properties defined for a tag. Minimum . The Legend panel appears. For details about these options. and Cursors lists (if there is a cursor currently displayed on the chart). Select the check box of the Pen Options you want to include in your report. 3 4 .causes the minimum value from cache to be returned. this information isn’t available for a legend. click the Legend tab. Statistical Analysis Options. The information in the report legend is derived from the information properties of the underlying tag that is associated with a pen. To set up a report legend: 1 In the Print dialog box. 2 The panel shows. Note that this value might not be a real logged sample if the sample found is a multiple calculated sample. by default. Note that this section is available only if the chart contains at least one analog or digital pen. Select the Statistical Analysis Options you want to include. You set up your report legends by using the Legend panel of the Print dialog box.35 Setting up report legends You can configure your reports to include report legends. see “Configuring the Object View”. The options available to you might differ from the ones shown here.

include a Comment. you can include page numbers. 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. If necessary. . Click Apply. the average will not be significantly affected. click the Report tab. If you want to include a report legend. To set up report options: 1 In the Print dialog box. Average . 5 6 7 Select the Cursors you want to include. Setting up report options You can configure your reports to include a report header. For multiple-page reports. type a Title for the report. which appear at the bottom of each report page. The Report panel appears. 2 In the Header Information area.causes the maximum value from cache to be returned. which can include a report title and comment.36 Maximum . Comments are printed under the report title on each report page. make sure the Include Legend check box is selected. Note that this value might not be a real logged sample if the sample found is a multiple calculated sample.uses time-weighted averaging to determine the average for both stepped and interpolated lines. You set up your report options by using the Report panel of the Print dialog box.

An export will also write values of NA. To include page numbering. Instead. or select Copy from the right-click (context) menu.37 3 4 5 To include a header. it exports an interpolated value per display period from the start time to the end time of the pen. make sure the Include Page Numbers check box is selected. If a pen does not have a sample for that timestamp. Exporting Pen Data You can export Process Analyst data for pens that are visible to either the Windows Clipboard (by using the Copy to Clipboard command) or to an Microsoft Excel-compatible file (Copy to File). as shown here: Time Milliseconds Pane1-Pen1 Pane1-Pen2 15/06/2004 01:17:25 15/06/2004 01:17:26 15/06/2004 01:17:27 15/06/2004 01:17:28 100 100 100 100 NA 1 3 10 20 25 Pane1-Pen3 Off Low [Unacknowledged] Low [Acknowledged] Low [Acknowledged] Export functionality doesn’t simply return the sample markers displayed on the graph. and then a column per pen. Before exporting the data. To copy data to the Clipboard: 1 2 Select the pen(s) you want to copy data for. See Also “Copying data to the Clipboard” | “Copying data to file” Copying pen data to the Clipboard allows you to paste the data into another application. the value of the pen at that particular timestamp is exported. When you export data.NumberofSamples[Property][Get/Set]” property. Copying data to the Clipboard Copying data to file Copying pen data to Microsoft Excel allows you to manipulate the data using spreadsheet application capabilities. Click Copy to Clipboard. Notes . As each entry is added to a row in the table. When the pens are unlocked and have different time spans. the column for that pen is left blank. such as an Excel spreadsheet. and pen is the name of the pen. GATED and all alarm states as localized text when required. milliseconds. The display period can be calculated by dividing the time span of the pen by the “IProcessAnalyst. it is exported using a standard format of columns that represent time. Pen columns use the format <pane>-<pen> where pane is the name of the pane that contains the pen. the data for each pen might have different timestamps. Click Apply. the Process Analyst sorts all the timestamps for all pens from the earliest to the latest sample. make sure the Include Header check box is selected.

The results exported are in Unicode format. which exports the millisecond component for each timestamp. and complete the Text Import Wizard. The data is exported in a delimited format. Click Copy to File. When exporting pen data to Excel. a separate column is provided. . which holds the date and time in seconds in local time. The Save As dialog box appears. which support this format. To copy data to file: 1 2 3 4 Select the pen(s) you want to copy data for. You should use Excel 2000 and later.38 The Time column is an encoded (OLEDATE) double value. you should change the format of the Time column to dd/mm/yyyy hh:mm:ss so that the time is displayed correctly. Because the OLEDATE data type excludes milliseconds. Enter a filename and click Save. Open the file you just created.

and “Object View”. Selecting an item displays the property . “Main page”. Main page You use the Main page of the Properties dialog box to configure general properties and access the server path properties. you use the Properties dialog box. You can also configure chart-wide properties. See Also “Using the Process Analyst Properties Dialog Box” “Configuring Chart-wide Properties” “Configuring Chart Panes” “Configuring Pens” “Configuring Cursors” “Configuring Defaults” “Configuring Toolbars” “Configuring the Object View” “Working with Views” Using the Process Analyst Properties Dialog Box You use the Process Analyst Properties dialog box to configure Process Analyst views. The Properties dialog box has three tabs. a hierarchical list of Process Analyst interface components. The Main page looks like this: The list on the left-hand side contains the property tree. “Toolbars”.Chapter 7: Configuring the Process Analyst Many of the Process Analyst control’s properties can be configured at run time to allow an Operator to customize the control to suit their working preferences. To configure the Process Analyst.

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.deletes the cursor. Add Alarm . that control is disabled/removed. Delete . Actions Chart Pane Add Pane .adds a new digital pen.deletes the pane.. as shown below. Pen Cursor Use the Main page for the following: “Configuring Chart-wide Properties” “Configuring Chart Panes” “Configuring Pens” “Configuring Cursors” “Configuring Defaults” Toolbars You use the Toolbars page to configure the main toolbar and navigation toolbar. Note: After adding a pen from this menu. Use the Toolbars page to configure the toolbars.. Delete .” The right-click menu contains the following options: Right-click this item. for details. Add Cursor . Users can define new columns and edit existing columns at design time.40 controls for that component on the right.adds a new alarm pen. You use the Object View page to configure the Object View. as well as change the column width and display order. the right-click menu removes the Add Pen option at run time if you don’t have the privilege to add a pen. Operators and Users can configure the toolbars at run time and design time.adds a new analog pen. Add Digital .deletes the pen. Commands that are unavailable appear “grayed-out. For example. 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. see “Configuring Toolbars”.add a new pane.add a new cursor. Add Analog . configure the data connection by clicking the Connection tab and typing the name of the tag into the Tag text box. Object View . Delete . Operators and Users can select (at run time and design time) the columns they want to display.

and specify whether chart pens should be locked. since this may negatively affect performance.000 milliseconds. number of samples for pens. Note that specifying a rate below 500 is not recommended if your chart contains many pens. data request rate. General and Server Paths. The permitted range is between 10 milliseconds to 60.41 Use the Object View page for the following: “Configuring the Object View” “Creating or Editing Object View Columns” Configuring Chart-wide Properties You use the Main page of the Process Analyst Properties dialog box to configure chart-wide properties. The Administration area indicates the privilege setting for the current Operator. The default value is 1000 milliseconds. This value determines the rate at which the display data is refreshed on the display. This page contains two tabs. Select Process Analyst at the top of the property tree to display the Process Analyst properties page. This control is disabled if you do not have appropriate privilege. 2 3 Click the color swatch and select a Background color. the refresh rate. it also controls how often the position of the Now indicator is refreshed. . 4 Specify a Data request rate. used to modify the following configurations: “Configuring general properties” “Configuring server paths” Configuring general properties You can configure general properties such as the background color of the chart. To configure general properties: 1 Click the General tab on the Main page. Specify a Display refresh rate.

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.000 milliseconds. Secondary . Primary .42 This value determines the maximum frequency of data requests. If the time span is reduced enough so that the number of samples exceeds the number of milliseconds in the time span. Click Apply. The default value is 1000 milliseconds. To configure server paths: 1 Click the Server Paths tab on the Main page. Also see “Exporting Pen Data”. the number of milliseconds in the time span is used instead of the number of samples. Note: This value is closely tied to your display resolution. 6 Select the Lock pens check box to lock your pens.maps to the client machine’s logged-in user’s My Documents folder. The Process Analyst internally determines when a request is required. and displays the current Vijeo Citect run path if the Process Analyst is embedded in a running Vijeo Citect system. This command is disabled at run time if you do not have the appropriate privilege. This text box only gets populated when the Process Analyst is running in Vijeo Citect V6. see “Working with Views” and “Process Analyst View Synchronization”. but you can use this property to cap the Process Analyst’s performance.User-definable. 5 Specify a Number of Samples. The permitted range is between 10 to 60. The default value is 300. This control is disabled if you do not have appropriate privilege. The permitted range is between 10-5000. For details on pen locking. Local . or clear the check box to turn off pen-locking. see “Locking/Unlocking Pens”. Note that this property affects trend server performance.User-definable. The Process Analyst uses four possible storage locations: User . This path is an Analyst Views subdirectory under the Vijeo Citect current Run directory. The default setting is ideal for screen resolutions from 1024x768 to 1280x1024. 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. This control is disabled if you do not have the appropriate privilege. Because the Process Analyst shows samples when they occur. This specifies the date/time axis span of each pen in number of samples.0 or higher. . This option is available for any possible privilege and Vijeo Citect mode. The chart has a minimum resolution of one millisecond per sample. It is recommended that this parameter not exceed 500. 7 Configuring server paths You can configure the file server locations that the Process Analyst uses to load and save Process Analyst views. For details about saving and loading views.displays the current Vijeo Citect run path (read-only).

All pane properties can be configured during run time. Click Apply.) To configure the chart pane: 1 In the property tree of the Properties dialog box. Note: To configure defaults for your panes. 2 3 Click the color swatch and select a new Background color. as well as select a different color. This specifies the file server to use if the primary file server is unavailable. right-click a pane in the tree and choose Delete. right-click the Process Analyst view item at the top of the tree.43 2 3 4 Enter the location of the Primary file server. select the pane you want to configure. and then select Add Pane. (To remove a pane. Configuring Chart Panes You use the Properties dialog box to configure chart panes. The properties for that pane appear. Select a Height option: . To add a pane: In the property tree of the Properties dialog box. you can configure its size relative to other panes. not a specific pane. select the Pane item in the Default Settings node of the property tree. Enter the location of the Standby file server (optional). After adding a pane.

Automatically calculates the pane height based on the value in the Size control. and either the method of interpolation (analog pens) or fill color (digital pens). Configuring analog and digital pens Configuring the appearance of analog or digital pens involves selecting the line color. For details about pen appearance. . Digital. Fixed .Sets the pane height to the value specified in the Size control. 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. Pen appearance can be configured at run time by Operators and Users (and at design time by Users). and then complete the procedure below for the type of pen you want to configure. Click the Appearance tab to display the appearance property controls. stack property. 4 5 Specify a Size for the pane. Click Apply. see “Pen Types”. To configure pen appearance: 1 2 Select the pen you want to configure. select Analog. Note: To configure default settings for pen appearance. Pen configuration tasks are performed by using the Properties dialog box. Note that fixed height panes have precedence of variable-size panes. which is used for: “Configuring pen appearance” “Configuring pen gridlines” “Configuring pen axes” “Configuring pen quality” “Configuring the pen data connection” “Configuring cursor labels” Configuring pen appearance You use the Process Analyst Properties dialog box to configure the appearance of pens. or Alarm in the property tree under Default Settings. line width. Configuring Pens The Process Analyst allows you to configure your pens to suit your preferences. For example.44 Variable . if the chart contains two panes.

select the Filled check box. 7 Click Apply. Configuring alarm pens Configuring the appearance of alarm pens involves selecting the line color. Straight causes a line to be drawn directly between two data points. To stack a pen. choose an Interpolation method. stack property. and then select a fill color from the color swatch. For digital pens. Do one of the following: For analog pens.45 3 4 5 6 Select a Line color using the color swatch. select the Stacked option and then specify a Height in pixels for the stack. in which case a vertical line is drawn. and the properties for that alarm type. Specify a Line width. alarm type. To configure alarm pen appearance: 1 2 Select the pen you want to configure. Click the Appearance tab to display the appearance property controls for the selected alarm pen. line width. . Stepped causes a line to be drawn between points maintaining the value of the previous sample until a sample with a different value arrives.

To stack a pen. Specify a Line width. see “Alarm pens”. . Click the Gridlines tab to display the gridlines property controls. For more information about pen gridlines. 7 8 Configuring pen gridlines You use the Process Analyst Properties dialog box to configure the gridlines for a selected pen. see “Alarm states”. and then complete the procedure below. select the All pens item in the property tree under Default Settings. select the pen you want to configure gridlines for. select the Stacked option and then specify a Height in pixels for the stack. Note: To configure defaults for pen gridlines. Select an Alarm type. select a Style.46 3 4 5 6 Select a Line color using the color swatch. For details about the different types of alarm pen available. and at design time by Users. a Fill color. For information about alarm states. Click Apply. Pen gridlines can be configured at run time by Operators. see “Gridlines”. To configure pen gridlines: 1 2 3 Click the Main Page tab. and/or a Hatch color by using the swatches. From the property tree list. For each Label for the alarm type you selected.

line width. select a Style for the minor gridline. To configure a pen axis: 1 2 3 Click the Main Page tab. specify a Width. In the Vertical: Minor area. select a Style. In the Horizontal area (analog pens only). scroll and scale properties for the date/time and value axes. Click the Axis tab to display the axis property controls. see “Date/Time (Horizontal) Axis” and “Vertical (Value) Axis”. Click Apply. and then select a Color. You can also choose whether to display time on the date/time axis using local or UTC format. specify a Width. Do the same if necessary for the minor gridline. specify a Width. select the All pens item in the property tree under Default Settings. For more information about pen axes. select a Style. Note: To configure defaults for pen axes. select the pen you want to configure axes for. and then select a Color.47 4 5 6 7 8 In the Vertical: Major area. and then select a Color for the major gridline. A pen axis can be configured at run time by Operators. You can configure the color. Configuring pen axes You use the Process Analyst Properties dialog box to configure the axis of the selected pen. From the property tree list. and at design time by Users. . and then complete the procedure below. label type.

. see “Date/ Time (Horizontal) Axis”. Note: These options are also available on the right-click (context) menu. the time is displayed in UTC format. This specifies the format to use for axis values. 8 9 In the Horizontal area. and/or select Scroll to be able to scroll the axis. Enter a new Line width. Select a Background color by using the color swatch. or if the pen is added in pen unlocked mode.48 4 5 6 7 In the Vertical area. If this option is not selected. 14 Select Scroll to be able to scroll the axis. select a Color by using the color swatch. and then select Scale to be able to interactively scale the vertical axis. If you’re setting the span value as a default setting for all new pens. Select the Interactive option. 11 Enter a Default Span to define the span you want to use for a new pen. Select a Label type. For details about time display on the date/time axis. the new span value is inherited by all news pens created. or if the pen is the first one added to a display. 13 Select Scale to be able to interactively scale the vertical axis. select a Color by using the color swatch. Do one of the following (analog pens only): Select the Autoscale option to autoscale the vertical axis. The default span is used by the Process Analyst when the Operator or User clicks the Reset to Default Span button. 12 Select the Local Time option to display the date/time axis in local time using your machine settings. 10 Enter a new Line width.

select a Single point style to represent a single data sample. as well as the line styles of the pen. see “Data Quality”. For details about how the Process Analyst represents data quality. To configure pen quality: 1 2 3 Click the Main Page tab. In the Line Styles area. Select a Multiple point style to represent multiple data samples. Pen quality can be configured at run time by Operators. Select the pen you want to configure. 11 Click Apply. select the Points Visible option. Configuring the pen quality allows you to define the appearance of sample markers on a selected pen. Click the Quality tab to display the quality property controls.49 Note: The Scale and Scroll options are also available on the right-click (context) menu. 10 Select a line style to represent an NA sample. and at design time by Users. Select a line style to represent a Gated/Disabled sample. select a line style to represent a Good sample. Selected an Interpolated point style for interpolated data samples. 4 5 6 7 8 9 To enable points for the pen to be visible. 15 Click Apply. Configuring pen quality You use the Process Analyst Properties dialog box to configure the quality of the selected pen. . based upon the quality of the data being trended by the Process Analyst. In the Point Styles area.

This allows you to define the server. which will pass them onto the server. 4 5 6 See Also Click Apply. trend tag. you can just enter the tag name. Omitting the cluster name will cause an error. Pen connection can be configured at run time by Operators and Users that have the appropriate privileges. Select a Request mode. the timestamp for a sample is always averaged. a <localhost> connection is selected by default. enter the trend tag for the pen. you should specify both the cluster and tag using the format <cluster name. “Data Compaction” You use the Process Analyst Properties dialog box to configure the pen cursor labels.tag name>. The request mode defines how multiple samples are treated by the Process Analyst. 3 For the Server data connection. To configure pen data connection: 1 2 Select the pen you want to configure. Click the Connection tab to display the connection property controls. The default is Average. Configuring the pen cursor labels allows you to specify the color used for Configuring cursor labels . In the Trend tag field. In a system with more than one cluster.50 Configuring the pen data connection You use the Process Analyst Properties dialog box to configure the pen data connection. and pass its requests through to the client. indicating that the Process Analyst will connect to the Vijeo Citect run time client running on the same computer. and request mode for the selected pen. If the system has only one cluster configured. The configured cluster will be assumed. Regardless of the request mode used.

For details on cursors. and text on the cursor label. Note that the information shown on a cursor label is predefined and cannot be changed. Click Apply. see “Using Cursors”. For details about cursor labels. To configure the cursor: 1 In the property tree of the Citect Process Analyst Properties dialog box. . Click the Cursor Label tab to display the connection property controls. 3 4 5 6 Select a Line color from the color swatch. Configuring Cursors You can configure the line width and line color of a selected cursor.51 the lines. To configure cursor labels: 1 2 Select the pen you want to configure. Changes to the cursor line color apply only to the currently selected cursor. see “Using Cursor Labels”. Select a Background color from the color swatch. click the cursor you want to configure. The Appearance property controls appear. background. Select a Text color from the color swatch. Pen cursor labels can be configured at run time by both Operators and Users that have the appropriate privileges.

configure the pane height and appearance defaults. See “Configuring Chart Panes”. and so on) when that item is created. “Configuring the pen data connection”. The Default Settings node on the property tree contains the following items: All pens . . pen. See “Configuring pen gridlines”. cursor. “Configuring pen quality”.configure the appearance of analog pens. See “Configuring pen appearance”. You configure these defaults in the same way as you configure the individual components.52 2 3 Type in a new Width value. axis. “Configuring pen axes”. These default properties are maintained for the lifetime of the item until its properties are modified. and/or select a new Color. Configuring Defaults The defaults are a collection of properties that are inherited by each item (pane. Alarm . See “Configuring pen appearance”. Cursor . Analog . Pane .configure the appearance of digital pens. quality.configure cursor defaults. See “Configuring pen appearance”.configure the gridlines.configure the appearance of alarm pens. and “Configuring cursor labels”. Digital . and cursor label properties for all pen types. See “Configuring Cursors”. Click Apply. connection.

including predefined as well as user-defined commands. The selected command moves to the Current toolbar buttons list. To add a command to the toolbar: In the Available toolbar buttons list. choose the toolbar you want to customize (Main Toolbar or Navigation Toolbar). . the main toolbar and the navigation toolbar. Operators can configure the Process Analyst toolbars by: “Adding or removing toolbar commands” “Changing the order of toolbar commands” Users can perform additional tasks such as: “Adding New Commands” “Editing Existing Custom Commands” Adding or removing toolbar commands Operators can add or remove toolbar commands during run time. 3 To remove a command from the toolbar: In the Current toolbar buttons list. You use the Properties dialog box to configure the toolbars.53 Configuring Toolbars The Process Analyst has two toolbars. and then click Add. The selected command moves to the Available toolbar buttons list. The Available toolbar buttons list contains all the command buttons available in your system. To add or remove commands from a toolbar: 1 2 From the Toolbar menu. select the command you want to add to the toolbar. and then click Remove. select the command you want to remove from the toolbar.

Description of associated alarm tag. edit existing columns. see “Creating or Editing Object View Columns”. The trend/alarm comment defined for the pen. Pen’s associated trend or alarm tag. Object View properties page The Object View properties page allows you to show or hide existing columns. Configuring the Object View Operators can configure the Object View to display additional pen information to the columns that are displayed by default. or edit or delete existing columns. Alarm type of associated alarm tag. Engineering scale for associated trend tag. Date/time axis end position of the pen. Trend type of associated tag. Highest displayed value (trend tags only). For information on columns that are displayed by default. Lowest displayed value (trend tags only). You can configure the Object View to display these predefined columns: Column 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 Minimum Maximum Average Description Vertical axis start and end position of the pen. Engineering units associated with the pen. Operators can select which columns to display. Sampling period of the associated trend tag. Raw scale for associated trend tag. as well as change the size of existing columns and the column display order. Difference between the start time and the end time. Blank if last data request succeeded. Average of all displayed values (trend tags only). Name of associated alarm tag. You configure the Object View by using the Properties dialog box. Date/time axis start position of the pen. see “Object View Basics”. Users can define new columns. Area of associated alarm tag. To change the order of commands: Select a command in the Current toolbar buttons list and click Move Up or Move down to move the selected command up or down the list as required. Category of associated alarm tag. for details. . Displays the error of the last data request. and re-order columns. create custom columns.54 Changing the order of toolbar commands Operators can change the order of toolbar commands during run time.

. The order of the columns from top to bottom in the list dictates their display order from left to right in the Object View. The check boxes in the NameID column are bound to a column’s visibility: a column is visible only if the associated checkbox is selected.pav) file. you use the Save View and Load View commands. and so on). pens. See Also “Creating or Editing Object View Columns” Working with Views An Operator can save the visual setup of a Process Analyst control by saving a view. Display Text . backgrounds. which is saved as a Process Analyst View (.55 The Properties page displays all the available columns for the Object View and their properties: NameID .Internal identifier. as well as properties for all the Process Analyst components (panes. on the main toolbar. which must be unique.Title displayed in the column header. The Move Up and Move Down buttons to the right of the Available Columns list box allow you to reorder columns. Clicking Move Up or Move Down shifts the currently selected item up or down respectively.Default width of the column in pixels. To save a view or to load a view. Width . axes. They can also load views that have been created previously. A view saves the state of all commands. respectively.

the start time and end time of a view is restored only autoscroll is off. Loading a view When loading a view. showing the location where you can save views. To support redundancy. the only locations that are available (My Documents. If autoscroll is on.” When loading a view. To save a view: 1 On the main toolbar. and then click OK. the columns being viewed in the Object View. click Save View. standby and local locations. 2 Choose a location to save your view to. Vijeo Citect attempts to save the view to the primary. and Standby) are those that have been configured by your administrator. as well as the “look and feel” of the view. Primary. if the Local option is available and selected. 3 Enter a File name for your view. the toolbar buttons that are available. pens are synchronized to “Now. click Load View. To load a view: 1 On the main toolbar. The Save Process Analyst View dialog box appears.56 Saving a view A Process Analyst view stores the trends and alarms that are being displayed. Note: It is your administrator’s responsibility to set up the correct directories for saving views. . The Load dialog box appears.

The view is loaded.57 2 Select a view to load. . and then click OK.

58 .

Displays the Load View dialog box allowing the operator to specify a view to load. For details. Executes a horizontal and vertical zoom in of 50% of the current span(s) of the pen(s). For details. see “Zoom In/Zoom Out”. see “Toggle Box Zoom”. The tables describe the default set of commands delivered with the Process Analyst. Additionally your toolbars might have custom commands not described here. For details. see “Zoom In/Zoom Out”. so not all these commands might appear on your toolbars. Process Analyst has predefined commands. Zoom in 50% Zoom out 50% . and so on. The mouse cursor changes to a crosshair used to define an area to zoom in on. Executes a horizontal and vertical zoom out of 50% of the current span(s) of the pen(s). View Commands The Process Analyst has the following view commands by default: Icon Tooltip Save View Load View Description Displays the Save File dialog box allowing an Operator to save a Process Analyst view to a specified location. see “Saving a view”. displaying cursors. For details. 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 Toggle Box Zoom Description Toggles the Process Analyst into box zoom mode. For details. see “Loading a view”. grouped into the following categories: “View Commands” “Zoom Commands” “Navigation Commands” “Export Commands” “Interface Commands” “General Commands” The toolbars in your run time environment might have been customized during implementation. such as adding or removing pens. Zoom may be cancelled by right-clicking or toggling the Zoom command off.Chapter 8: Operator Command Reference You use the toolbar commands on the main toolbar and navigation toolbar to perform commonly used functions for viewing and interacting with Process Analyst data.

see “Toggle Autoscrolling”. Moves the pen(s) forward in time exactly one span. Enabled when an analog pen is selected. Moves the pen(s) back half a span.Interface Commands. see “Navigating time”. Reset to Default Span Restores the pen(s) spans to their original default settings.60 Icon Tooltip Undo Last Zoom Description Undoes the last zoom operation. See Also “View Commands” | “Zoom Commands” | “Navigation Commands” | “Interface Commands” | “General Commands” . For details about these commands. see “Reset to Default Span”. For details. For details. For details. For details. see “Navigating time”. see “Navigating time”. see “Copying data to the Clipboard”. For details. For details. Back One Span Back Half a Span Forward One Span Forward Half a Span Synchronize to Now Synchronizes pen(s) such that the end date time reflects “now” which is positioned on the right-hand edge of the screen. For details. see “Edit Vertical Scale”. see “Edit Span”. For details. Copies visible pens to the clipboard. For details. Icon Tooltip Toggle Span Lock Description Toggles the locking of the time span. For details. For details. see “Navigating time”. see “Copying data to file”. A time span is the “distance” in time between the start time and end time of the chart. Toggle Auto-Scrolling Toggles the automatic scrolling off and on for all pens. For details. “Now” is calculated using the current system time. Moves the pen(s) forward half a span. See Also “View Commands” | “Navigation Commands” | “Export Commands” | “Interface Commands” | “General Commands” Navigation Commands The Process Analyst has the following navigation commands by default. Edit Span Edit Vertical Scale Displays the Edit Span dialog box allowing an operator to explicitly enter a time span to apply to the display. Moves the pen(s) back in time exactly one time span. see “Span Lock”. see “Undo Last Zoom”. For details. see “Navigating time”. See Also “View Commands” | “Zoom Commands” | “Export Commands” | “Interface Commands” | “General Commands” Export Commands The Process Analyst has the following export commands by default: Icon Tooltip Export to File Copy to Clipboard Description Copies visible pens to an Excel compatible file. see “Synchronize to Now”.

Lock/Unlock Vertical Axis Toggles interactive scrolling of the vertical axis and disables Scrolling autoscaling. see “Printing and Exporting”. Show/Hide Points Toggles the display of points representing where sample data was recorded in the archive. see “Using Cursors”. For details. see “Scrolling the Chart”. Adds a new pane to the view. Displays the Process Analyst Properties dialog box. see “Deleting Pens”. Removes the selected pen from the display. For details. Show/Hide Cursor Labels Toggles the display of cursor labels. see “Pens: An Overview”. see “Configuring Chart Panes”. For details. see “Using the Process Analyst Properties Dialog Box”. For details. see “Adding Pens”. For details. For details. Lock/Unlock Pens Toggles the locking/unlocking of pens. see “Scaling the Chart”. For Analog Pens details. For details. A dialog confirms the delete. Add Pane See Also “View Commands” | “Zoom Commands” | “Navigation Commands” | “Export Commands” | “General Commands” General Commands The Process Analyst has the following general commands by default: Icon Tooltip Add Pen Remove Pen Description Displays the add pen dialog. see “Configuring Chart Panes”. see “Using Cursor Labels”. For details.61 Interface Commands The Process Analyst has the following interface commands by default: Icon Tooltip Show/Hide Cursor Description Toggles the display of cursors. see “Using Cursor Labels”. Enabled only when a cursor is visible and when a pen exists. Toggle Object View Toggles the display of the Object View. For details. For details. For details. Lock/Unlock Cursor Labels Toggles the locking/unlocking of cursor labels. Remove Pane Removes the pane of the primary selected pen. see “Locking/ Unlocking Pens”. Print Refresh Data Show Properties Help Displays the print dialog. For details. or all pens (if locked). See Also “View Commands” | “Zoom Commands” | “Navigation Commands” | “Export Commands” | “Interface Commands” . allowing the user to print the current state of the Process Analyst. For details. Displays the Process Analyst Help. Enabled only when a cursor is visible and when a pen exists. Autoscale Vertical Axis for Toggles autoscaling for the selected pen on a per-pen basis. Refreshes the data for the selected pen. see “Using the Object View”.

62 .

Part 1I Process Analyst for Users This section contains information for Users and describes the following: “Integration with Vijeo Citect” “Configuring Process Analyst Design Time Properties” “Using the Process Analyst Command System” “Automation Model” .

.

In these situations Vijeo Citect is still required. If the operator had level 2. Levels 1-8 map directly to the eight (8) privilege levels of security provided by Vijeo Citect. Tag association Security and Permissions The Process Analyst integrates seamlessly into the Vijeo Citect security model by allowing access to certain Process Analyst features based on the privilege level of the currently logged in Operator. To view the configuration pages for the Process Analyst. See Also “Configuring the Process Analyst Control from Graphics Builder” | “Security and Permissions” | “Multi-language Support” | “Persistence” | “Backing up Projects” Configuring the Process Analyst Control from Graphics Builder Being an ActiveX control. you can resize it into position. The control is inserted onto the graphics page and the Properties dialog box appears. double-click the Process Analyst control. see “Configuring Process Analyst Design Time Properties”. The Process Analyst has nine privilege levels. You should note that the Process Analyst control does not support this feature. But the Process Analyst can also be embedded in custom Visual Basic and . based on a specified ActiveX event. you can insert the Process Analyst onto a Vijeo Citect graphics page. do one of the following: In Graphics Builder. To do this. See Also “Persistence” Vijeo Citect can bind a Vijeo Citect tag to an ActiveX property and update either the tag or the property. assumes the area of the page that it is situated on. and the function they want to use is level 2. Privilege level zero (0) indicates there is no security and any user can perform the function.Chapter 9: Integration with Vijeo Citect The Process Analyst integrates seamlessly into the Vijeo Citect system and is designed to work primarily with the Vijeo Citect Graphics Builder and the run time environment. The Process Analyst. Double-click the Citect Process Analyst Control item in the ActiveX Controls list box. by default. choose Edit | Insert ActiveX Control. the function would . After inserting the Process Analyst into a page. Click the Process Analyst button in the Graphics Builder toolbox. this can be changed in the Graphics Builder. The Insert ActiveX dialog box appears.NET applications. So if an operator has area access for the page and has privilege level 1. For details on configuring the design time properties for the Process Analyst. the function will be unavailable.

For example. see “Command privilege”. for details. the ability to add new custom commands and so on are all disabled if the Operator does not meet the required privilege level. Server field on Connection tab. The features that are disabled when an operator does not meet the Administration privilege level include: Add Pen context menu in Property dialog box. Number Of Samples property). Tag field on Connection tab. The Administration privilege level should never be zero on a running system as this would expose properties to an 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. see “Configuring Chart-wide Properties”. Security can be applied to the following features: Administration. The Process Analyst also supports the Vijeo Citect Hierarchical Privilege security option. Data Refresh Rate property. Command privilege The Process Analyst allows a privilege level to be assigned to each command (standard or custom command). see “Write privilege”. see “Administration privilege”. for details.g. If the write privilege level is set to zero (0). If an Operator does not have the required privilege level to use that command. To modify the Administration privilege level. which could adversely affect the performance of the client and/or server (e. “Editing Existing Custom Commands” 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".66 then become available. Commands. the associated toolbar button is disabled and cannot be executed. any operator can save to any location.. Number Of Samples property. These views can then be loaded into the Process Analyst later by any Operator. If the write privilege is any other level. New/Delete Column. Server Paths tab. Display Refresh Rate property. New/Edit/Delete command (includes changing the privilege of commands). for details. Administration privilege The Process Analyst also uses an Administration privilege level to disable engineer-oriented features at run time. the Operator must have that See Also Write privilege . Saving Process Analyst views (write privilege).

dll files must be placed in the same directory as the Analyst. Resources. To allow the Process Analyst to determine the language it should display. To do this.dll” All language Resources*. For example.dll. Vijeo Citect uses the RFC 1766 standard for specifying culture names. Understanding the Process Analyst resources The Process Analyst uses a special file. you must map your Vijeo Citect language databases to the Process Analyst resource files. If the language is changed in Vijeo Citect. the Japanese version of the Process Analyst will contain Japanese resources inside the Resources.dll. these native translations are considered the default language. See Also “Creating your own Process Analyst resource.dll (French standard) Resources_zh-CN. This section describes how to localize the Process Analyst user interface and get it to work with Vijeo Citect.ini file on all your Vijeo Citect clients and servers.67 privilege level to be able to save an Analyst view to a location other than "My Documents".dll (German) Using Vijeo Citect to switch the Process Analyst language Vijeo Citect uses the Cicode function SetLanguage to switch languages at run time. For example. if you are creating French resources. The file should be renamed using a special format to indicate the language.any language. A separate Resources. The Process Analyst expects the file to be named Resources_<LanguageCode>. English) Resources_fr.ini file. the Process Analyst will change its language to match. and create a mapping for each language.dll file. add a new . your dll should be named Resources_fr.dll file. where <LanguageCode> is the unique identifier of your dll. e.) The mapping must use this format: . called Resources. and has alternative languages of French. See Also “Configuring server paths” | “Working with Views” | “Process Analyst View Synchronization” Multi-language Support The Process Analyst supports the Vijeo Citect multilanguage ability of changing the user interface language dynamically at run time.dll.dll (default . The example below shows a system that contains English as the default. The process of configuring the Process Analyst for multiple languages is different from that of Vijeo Citect. (Note that this section might already exist in your Citect.g.dll file must be created for each individual language that you want to support in your system. This file holds the native translations for your version of the Process Analyst.ini section called [ProcessAnalyst] to the Citect. German and Chinese.dll (Chinese PRC) Resources_de. to store all of its display strings and dialog boxes.

dll file that has the equivalent translations. With the . Add to the zip file all the language resource DLL files that you want the client to download and use. Reconnect to the Web server to download the latest bin. and the Resource.Language [Property] [Get/ Set]”. .zip.68 LanguagePath. This step is essential if you want to use Asian languages on an English operating system.ini file now configured. Windows XP and Windows 2000 both provide facilities to add the necessary languages to your machine via the Regional and Language Options dialog box. To do this: 1 2 3 Find the installation directory of the Analyst.dll” for details on adding languages to your system.dll files in place when the SetLanguage Cicode function is called. Creating your own Process Analyst resource. Delete this file.zip from the Web Client machines if your server contains a more recent bin. See “IProcessAnalyst. You can call this property directly from Cicode. Vijeo Citect and the Process Analyst will automatically change into the selected language. Note: Using this method will only switch the Process Analyst language and not the one used by Vijeo Citect.German=de The last step is to ensure each of your machines contains the necessary language fonts.zip file.Chinese=zh-CN LanguagePath.zip in this directory. [ProcessAnalyst] LanguagePath. but you must configure the languages that the Web Client will download to the client machine. accessible from the Control Panel. you need to do the following: 1 2 Install the specific languages you are localizing on your Windows system.dll file on your Web Client machines and look for a file called bin. This means you must manually remove the bin. languages installed.Language property. Specifying languages for the Web Client A Process Analyst running inside a Vijeo Citect Web Client also supports run time language switching. Manually switching languages The Process Analyst can also switch languages by itself using the IProcessAnalyst. for example. For example.) Note: The bin. To configure the languages to download: 1 2 Create a zip file in the Vijeo Citect \bin folder called bin. (You can find these files in your \Program Files\Common Files\Citect folder. Set your system to use that specific language.French=fr LanguagePath.dll To create your own resources dll. See “Creating your own Process Analyst resource.<dbf>=<ProcessAnalystLanguage> where <dbf> is the name of a specific Vijeo Citect language translation database.zip file and its contents are not version-checked.zip file. and <ProcessAnalystLanguage> is the language code of the resources.

dll file. If not. add it. ensure that the language you want to localize with is listed. If localizing for East Asian languages. you’ll need to use Microsoft Developer Studio 6 or an equivalent tool. 1 2 3 To add a language. Select the language you want from the Input language menu and click OK. select the Install files for East Asian languages check box. Setup for localization on Windows XP You must have Administrator privileges to perform the following setup. click the Languages tab in the Regional and Language Options dialog box.69 Note: To create your own resources. 6 In the Installed services section. Once the languages are installed.) You might need to restart your system before the language is available. Click the Languages tab. Click Details in the Text services and input languages section to display the Text Services and Input Languages dialog box. click Apply and then OK to close the Text Services and Input Languages dialog box and return to the main window under the . then click OK. (You might need your original Windows Installer CD. If not. 1 2 3 4 5 Open Control Panel and double-click Regional and Language Options. click Add to display the Add Input Language dialog box.

Click Add to display the Add Input Locale dialog box. click the Input Locales tab. Select the language you want from the list. Be sure to login as an Administrator. 1 2 Open Control Panel and double-click Regional Options. 1 2 3 4 To add a language. Note: You will need your original Windows Installer CD. If it is not. make sure the language you want to localize with is in the list and "Checked".Once the language has been installed. On the General tab under Language Settings for the System.70 Languages tab. Click OK and follow the on-screen prompts. If you need to restart your system. 3 Click the Input Locales tab. Select the language you want from the menu in the Language for NonUnicode Programs section. and continue on to 3. return to the Regional and Language Options dialog box after logging back into Windows. Setup for localization on Windows 2000 You must have Administrator privileges to perform the following setup. you must add it. 7 8 9 Click the Advanced tab in the Regional and Language Options dialog box. Click Apply and then OK (you may need to restart your system). repeat steps 1 and 2. .

. Localizing the Process Analyst resource dll Once you have set up your system to cope with multiple languages.71 4 5 6 7 Ensure that your language is listed in the Installed input locals list. Do the following: 1 2 Open Microsoft Visual Studio 6.) Note: When you are finished localizing. (This may require a system restart. which allows you to select characters to use in your translations. you should switch this option back to its original setting. you will find a new icon in the system tray displayed as "EN" or similar. Click back to the General tab. select the language that you want to localize to and click OK. Choose File | Open. This might display a language-specific IME editor. this should match the language you selected in Step 8 of the Windows XP setup and Step 7 of the Windows 2000 setup). Click Set default to display the Select System Locale dialog box. This step is essential if you are using Asian characters on an English system. From this list. To change input language: 1 Click EN to display the input language option menu. you can begin localizing. 2 Select the language you want to use (to work correctly with Visual Studio. Changing the input language When your system has been configured to use multiple languages.

.ocx) selected. Click Close in the top-right corner of the dialog. 8 Once the language code has been set for all dialogs and the string table. Double-click a dialog to edit. Ensure that the Open as menu has Resources selected. if you are localizing for Japanese. Ensure that the Files of type menu has Executable Files (.dll. Repeat these steps for each of the dialogs inside the Dialog folder.dll file. Click the Close button in the top-right corner of the dialog box.dll and click Open. Localizing dialog boxes To localize a dialog box. use Resources_ja-JP. For example. Choose Properties from the right-click (context) menu (see below). you must change the language code for each dialog box and the string table by doing the following: 1 2 3 4 5 6 Expand the String Table folder in the tree. Select an item of text and right-click to display the properties for that item.exe. You should note the following: .dll.72 3 4 5 6 Browse to the location of the Process Analyst's Resources. See “Understanding the Process Analyst resources” for naming conventions.*. Enter your replacement text into the Caption field. you are ready to begin changing the text. select the language that you are localizing for. From the Language menu. By default it is located at C:\Program Files\Common Files\Citect\. Right-click the String Table entry. do the following: 1 2 3 4 5 Expand the Dialogs folder in the tree. 7 Save the file under a new name. Before changing any string. Select Resources.

Dialogs 3028 and 3050 do not require translation. if a string contains “%s”. and are an efficient way to store commonly used pen configurations. Type in the replacement text in the Caption box. . These files can be loaded during run time. Persistence Persistence refers to saving the state (properties. do the following: 1 2 3 4 5 Expand the String Table folder in the tree. The size of a dialog box is set to an optimum size so that it integrates into Graphics Builder correctly. Note: When defining new custom toolbar buttons. most importantly.73 Controls can be repositioned or resized if necessary to fit your replacement text. “%d” and so on. do not remove or replace those symbols as they are important to the Process Analyst. “%x”. Using the Save View toolbar button This feature is valid only at run time and allows operators to save the current state of the Process Analyst (called a view) to a standalone file. This allows your custom toolbar buttons to work on any machine. Note: When translating strings. toolbar buttons and. any icon you assign will be copied and also stored within the Graphics Builder page. 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. Vijeo Citect and the Process Analyst provide the following methods of persistence: Saving as part of a Citect 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 Citect page transitions (run time) Saving while using the Citect Graphics Builder This feature allows you to configure the default look and/or what pens will be displayed on the Process Analyst at design time while you are designing your graphics pages. Never resize a dialog box. pens. Click the Close button in the top-right corner of the dialog box. 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. This will display a table showing you all the strings of the Process Analyst. Localizing the String Table To localize the string table. Double-click an entry to display the Properties dialog box. and so on) of the Process Analyst to disk. Double-click the String Table entry. Design time is the appropriate time to configure the appearance properties.

stg whenever you leave a page that contains an ActiveX object (e. will load the settings from it. Using Vijeo Citect run time. These files only exist while Vijeo Citect run time is running. if found. . your changes will be lost. Saving between Vijeo Citect page transitions (Run-time) 4 In the Persistence area. When you reenter the page. Resetting back to the default state You can reset the original configuration of the Process Analyst control by calling the Cicode function ObjectResetState. and then click Apply. select the Persist ActiveX data between page transitions check box. The Properties dialog box appears..74 Using the SaveToFile automation method This feature is valid only at run time and allows a user to write Cicode to save the current state of the Process Analyst to a standalone file. Click the Access tab. the temporary *. When you shut down Vijeo Citect. so the Citect Graphics Builder provides an option Persist ActiveX data between page transitions to save the state of an ActiveX control when you switch between pages. This behavior is not always what you want. Enabling this option causes Vijeo Citect to write a temporary file to the Vijeo Citect Data directory in the format of <Event class>. This function takes the object handle of the Process Analyst control. Vijeo Citect looks for that same file and. Click the Identification tab. These files can be loaded during run time using the LoadFromFile automation method (or the Load View toolbar button). which you retrieve by using the Cicode function ObjectByName.stg files are deleted. the Process Analyst). referred to as an Analyst view.g. if you modify the Process Analyst (for example. To save between page transitions: 1 2 3 Double-click the Process Analyst ActiveX control you want to change. changing the timespan of a pen) and move off the page. Views and are an efficient way to store commonly used pen configurations. The Identification panel appears.

pav file in an Analyst Views subfolder under your project directory. . you should ensure that the Save subdirectories option is selected in Citect Explorer before backing up your project. If your project contains Analyst views.75 Backing up Projects When you save views to the Local storage location. the Process Analyst will create a *.

76 .

Chapter 10: Configuring Process Analyst Design Time Properties Most Process Analyst properties can be defined or modified during run time and design time. This section describes properties that can be configured only during design time. . see “Using the Process Analyst Properties Dialog Box”. click New. For information about configuring run time properties. 2 The dialog shows the unique. system-generated ID for the new command. If necessary. The New Command dialog box appears. This ID can be used in Cicode to determine which command has been triggered or to find a specific command in the Vijeo Citect system. See Also “Adding New Commands” | “Editing Existing Custom Commands” | “Creating or Editing Object View Columns” | “Process Analyst View Synchronization” Adding New Commands Users can define new toolbar commands during design time if they have the appropriate privilege level. usually by a User. enter a new ID for the command. To add a new command: 1 On the Toolbars page of the Properties dialog box.

Toggle Button . To edit an existing custom command 1 2 Open the Properties dialog box and click the Toolbars tab. choose a button style from the Button style menu: Push Button . and then click Edit. Click Browse and navigate to the icon to represent the new command. 4 5 See Also “Editing Existing Custom Commands” Editing Existing Custom Commands Users can edit existing toolbar commands if they have the appropriate privilege level. The maximum length for Tooltip text is 64 characters. choose a new button style from the Button style menu. If required. The icon image appears on the toolbar command button. Select the command you want to edit in the Available toolbar buttons list box. click Browse to navigate to a new icon to use for the command. The Edit Command dialog box appears.click Enabled or Pressed to specify the “on” appearance. Tooltip text appears when the mouse pointer is over the toolbar command. If required. You are limited to 64 characters. To define how the command behaves.78 3 Enter the Tooltip text for the new command. 3 4 5 See Also If required. and only fields for custom commands can be edited. edit the Tooltip text.click the Enabled check box to set the default appearance of the button when the button is enabled or disabled. “Adding New Commands” . Commands can only be edited during design time.

the operator can try the alternate location. If one of the locations is unavailable. The value is used to reference the column in code. The Edit Column dialog box appears. “Configuring the Object View” Process Analyst View Synchronization The Process Analyst implements a basic level of file synchronization for Process Analyst views (. the Process Analyst now has a central location from which to obtain Process Analyst views.79 Creating or Editing Object View Columns Users can create or delete Object View columns (during design time).pav files). The New Column dialog box appears. To achieve this. Object View columns display information about your pens. To create an Object View column: 1 2 Click the Object View tab. Enter the Text to use for the column in the Object View display. an engineer must first configure the Process Analyst to support Primary and Standby server locations for Analyst Views. The Object View panel appears. Select the column you want to delete and click Delete. With these file servers in place. Modify the information as required. Specify a Width. To delete an Object View column: To edit an Object View column: 1 2 See Also Select the column you want to edit. and then click OK. Click New.pav file before displaying it to the operator. and then click Edit. see “Configuring server paths”. This feature causes the Process Analyst to try and obtain the latest version of a . When a client saves or . as well as edit existing columns (run time or design time). 3 4 5 Enter a Name ID for the column. for details. All these configuration tasks are performed by using the Citect Process Analyst Properties dialog box.

Load Web client Save Normal client Save Save Normal client Normal client * Refers to the Look in menu on SaveView and Load View dialog boxes. standby and project directories. My Documents. and Local. The . they do not appear.80 loads a Process Analyst view. My Documents.pav file will be saved to all available locations from primary. The default order is Local. See Also “Configuring server paths” | “Working with Views” | “Write privilege” . If both are invalid or unavailable. ** Means both privileged and un-privileged. Local maps to the project directory\Analyst Views. Privileged The Local and My Documents options are the only ones available. Unprivileged The My Documents option is the only one available. Both** The Local and My Documents options are the only ones available. When setting up file-servers to store Process Analyst views. Default order is Primary. Action Load Vijeo Citect mode Normal client Privilege Both** Available Storage Locations* The Primary and Standby options appear as configured as well as My Documents. Default order: Local. Standby. If either are invalid or unavailable paths. Local however will attempt to save to all server locations as well as the project directory. Both** The My Documents option is the only one available. The table below outlines the rules of synchronization and privilege for the storage locations and client modes when loading and saving Process Analyst views. only that view on the Primary and Standby server locations will be synchronized to ensure they are all the same. My Documents respectively. ensure that each client machine has privileges enabling it the desired read/write access to those locations. Synchronization occurs when loading from a Primary or Standby location. My Documents. the Local option appears.

the user can specify their own custom icons by pointing to a file on their hard drive. as well as providing the framework for creating custom user-defined commands. To access the command system via the automation model. this event will be triggered. Note that this is asynchronous operation. For details. To implement the command. The state of all commands (custom and pre-defined) will be saved to disk whenever the Process Analyst configuration is saved. or by using the New button on the Toolbar property page. the Process Analyst makes an instant copy of the icon into memory when the .Chapter 11: Using the Process Analyst Command System This section describes how to use the Process Analyst command system. This will not be triggered if the logged-in user fails to meet the required privilege level. you must respond to the event CommandExecuted (and optionally UpdateCommand). call the property GetCommandSystem() from the IProcessAnalyst interface. This is your opportunity to execute the desired functionality of the command. See Also “Command System Overview” | “Custom Commands” | “Icons” Command System Overview The Process Analyst provides an extensive command system allowing manipulation of common Process Analyst features. The command system is configurable via the Toolbar property page and the automation model. it will trigger this event. CommandExecuted When an operator presses the toolbar button representing your command. but must be implemented in Cicode. When the Process Analyst requires the Enable state or pressed states of its toolbar buttons to be refreshed. This will not be triggered if the logged-in user fails to meet the required privilege level. UpdateCommand See Also “Persistence” Icons For custom commands. As these files may be deleted or moved over time. Custom Commands Custom commands are defined in the Process Analyst. Be aware that this is an asynchronous operation. see “IProcessAnalyst Interface”. Both of these events notify you of the ID of the command which needs to be handled. You define commands by using the ICommandSystem> Create method.

. This removes any dependence on the original icon file. the icon data is also saved.82 command is added. When the Process Analyst configuration is saved.

click the name of the interface in the illustration below. Execution Result InvalidArgument GeneralFailure PathNotFound Success Cicode 274 356 356 0 VBA 5 2147500037 76 C++ E_INVALIARG E_FAIL STG_E_PATHNOTFOUND 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. as well as performance. The exact meaning is described in the Execution Result section for each property or method. Execution Results Each property and method listed in the automation model will return one of the following results upon execution. click IPens. performance. to view information for the IPens interface. To view information for an interface. The automation model also allows code. The automation model allows almost every visual aspect of the control to be configured. For example. to be attached to events fired from the Process Analyst Control and perform custom behavior. It is simple and follows a traditional objectoriented approach (see below).Chapter 12: Automation Model The automation model allows applications or solutions to programmatically configure the Process Analyst control’s appearance. via automation events. [VBA] Sub VBATest(myObject As Object) On Error Goto errHandler myObject. and behavior.<function> .

// Enable hardware alarm reporting of errors 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 Events CommandExecuted [Event] CursorMoved [Event] Error [Event] HorizontalAxisChanged [Event] MouseClick [Event] MouseDoubleClick [Event] OVColumnAdded [Event] OVColumnRemoved [Event] OVItemAdded [Event] . // Enable User error checking (disabled HW alarm) IF ObjectIsValid(hObject) THEN _ObjectCallMethod(hObject. errorMessage. Err. errorMessage = IntToStr(error) IF (error <> 0) THEN Message("An error occured". error = IsError(). END END ErrSet(0).Number. "<function>").84 Exit Sub errHandler: Print Err. 0).Description Resume Next End Sub [Cicode] FUNCTION Test1(OBJECT hObject) ErrSet(1).

GetHatchStyle [Method] IAlarmPen.85 OVItemChecked [Event] OVItemSelected [Event] PenCreated [Event] PenDeleted [Event] PenRenamed [Event] PenSelectionChanged [Event] PropertyChanged [Event] UpdateCommand [Event] VerticalAxisChanged [Event] 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] IAlarmPen Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IAlarmPen Methods (6) IAlarmPen.GetHatchColor [Method] IAlarmPen. Defined As [VBA] Long LineColor [Cicode] INT LineColor .LineWidth [Property][Get/Set] IAlarmPen.SetHatchColor [Method] IAlarmPen.GetFillColor [Method] IAlarmPen.AlarmType [Property][Get/Set] IAlarmPen.SetHatchStyle [Method] Properties (3) IAlarmPen.LineColor [Property][Get/Set] Gets or Sets the color that will be used to draw the pen line.SetFillColor [Method] IAlarmPen.LineColor [Property][Get/Set] IAlarmPen.

Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red) where red. If the return variable is bad then the return value will be InvalidArgument.LineWidth [Property][Get/Set] Gets or sets the width in pixels of the pen line when it is drawn.86 [C++] OLE_COLOR LineColor Execution Result If the property get/set succeeds the return value will be Success. "LineColor". and blue are 0-255.LineColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) // Getting property value INT nLineColor = _ObjectGetProperty(hAlarmPen.LineColor ‘Setting Property to red alarmPen. "LineColor"). [VBA] Sub Example(alarmPen As Object) Dim lineColor As Long ‘Getting Property value lineColor = alarmPen. 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. 255). green. If the return variable is bad then the return value will be InvalidArgument. If the pen is deleted the return value will be GeneralFailure. If the pen is deleted the return value will be GeneralFailure. // Setting property to red _ObjectSetProperty(hAlarmPen. Calling Syntax This example assumes there is a valid alarm pen object to be passed into the example methods. END IAlarmPen. Limits Minimum = 0 Maximum = 8 Calling Syntax .

AlarmType [Property][Get/Set] Gets or Sets the display type of this alarm pen. See Also IAlarmPen.LineWidth ‘Setting Property value alarmPen.LineWidth = 5 End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) // Getting property value INT nLineWidth = _ObjectGetProperty(hAlarmPen.AlarmType = 1 End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) // Getting property value INT eAlarmType = _ObjectGetProperty(hAlarmPen. "LineWidth"). the return value will be Success. "LineWidth". If the pen is deleted. the return value will be InvalidArgument.87 This example assumes there is a valid alarm pen object to be passed into the example methods. . Remarks This AlarmType also dictates the number of alarm states. If the return variable is bad. // Setting property value _ObjectSetProperty(hAlarmPen. [VBA] Sub Example(alarmPen As Object) Dim lineWidth As Long ‘Getting Property value lineWidth = alarmPen. 5). and their descriptions. [VBA] Sub Example(alarmPen As Object) Dim alarmType As Long ‘Getting Property value alarmType = alarmPen.AlarmType ‘Setting Property value to Analog alarmPen.AlarmType [Property][Get/Set] Calling Syntax This example assumes there is a valid alarm pen object to be passed into the example methods. END IAlarmPen. "AlarmType"). Defined As [VBA] Long AlarmType [Cicode] INT AlarmType [C++] AlarmType AlarmType Execution Result If the property get/set succeeds. the return value will be GeneralFailure.

88 // Setting property to Analog _ObjectSetProperty(hAlarmPen. If the return variable is bad.GetFillColor(0) End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) INT nFillColor = _ObjectCallMethod(hAlarmPen. "AlarmType". Calling Syntax This example assumes there is a valid AlarmPen object to be passed into the example methods. Where red. the return value will be Success. [VBA] Sub Example(alarmPen As Object) Dim fillColor As Long fillColor = alarmPen. “GetFillColor” . 0). the return value will be GeneralFailure. green and blue are 0-255. color as Long) [Cicode] INT SetFillColor(INT state. END IAlarmPen. Parameters state [in] The state for which fill color to retrieve (0 to 8). OLE_COLOR* color) Execution Result If the property get/set succeeds.GetFillColor [Method] Gets the color used to fill the pen for the specified state. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). INT color) [C++] HRESULT SetFillColor(int state.SetFillColor [Method] Sets the color used to fill the pen for the specified state. END IAlarmPen. . Defined As [VBA] SetFillColor(state as Long. If the pen is deleted. Defined As [VBA] GetFillColor(state as Long) as Long [Cicode] INT GetFillColor(INT state) [C++] HRESULT GetFillColor(int state. 1). the return value will be InvalidArgument. OLE_COLOR color) Parameters state [in] The state for which you would like to assign a fill color (0 to 8).

255) End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) // Setting FillColor to Red _ObjectCallMethod(hAlarmPen. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red) where red. “SetFillColor” . the return value will be GeneralFailure. END IAlarmPen. Defined As [VBA] GetHatchColor(state as Long) as Long [Cicode] INT GetHatchColor(INT state) [C++] HRESULT GetHatchColor(int state. If the pen is deleted. the return value will be Success.89 color [in] The fill color that you would like used to for this specific state. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red) .0. OLE_COLOR* color) Execution Result If the function succeeds. Parameters state [in] The state for which hatch color to retrieve (0 to 8). Calling Syntax This example assumes there is a valid AlarmPen object to be passed into the example methods. green. If the pen is deleted. and blue are 0-255. [VBA] Sub Example(alarmPen As Object) Dim fillColor As Long ‘Setting FillColor to Red alarmPen.SetFillColor(0. the return value will be Success. Execution Result If the function succeeds. the return value will be GeneralFailure. 255). the return value will be InvalidArgument. If the state is out of range.GetHatchCol or [Method] Gets the color used to draw the outline and hatching for the specified state. If the state is out of range. the return value will be InvalidArgument.

SetHatchColor(0. INT color) [C++] HRESULT SetHatchColor (int state.GetHatchColor(0) End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) INT nHatchColor = _ObjectCallMethod(hAlarmPen. 0). OLE_COLOR color) Parameters state [in] The state for which you would like to assign a hatch color (0 to 8). Defined As [VBA] SetHatchColor(state as Long. Calling Syntax This example assumes there is a valid AlarmPen object to be passed into the example methods. “GetHatchColor” . [VBA] Sub Example(alarmPen As Object) Dim hatchColor As Long hatchColor = alarmPen. and blue are 0-255. color [in] The color that you would like to be used for a specified states hatch.90 where red. If the pen is deleted the return value will be GeneralFailure. green. Calling Syntax This example assumes there is a valid AlarmPen object to be passed into the example methods. and blue are 0-255. color as Long) [Cicode] INT SetHatchColor (INT state. 255) End Sub .SetHatchCol or [Method] Sets the color used to draw the outline and hatching for the specified state. [VBA] Sub Example(alarmPen As Object) Dim hatchColor As Long ‘Setting HatchColor to Red alarmPen. green. If the state is out of range then the return value will be InvalidArgument. Execution Result If the function succeeds the return value will be Success. END IAlarmPen. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red) where red.

See Also IAlarmPen. “SetHatchColor”. 0). 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.91 [Cicode] FUNCTION Example(OBJECT hAlarmPen) // Setting HatchColor to Red _ObjectCallMethod(hAlarmPen. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red).GetHatchStyle [Method] Calling Syntax This example assumes there is a valid AlarmPen object to be passed into the example methods. HatchStyle hatchStyle) Parameters . HatchStyle as Long) [Cicode] INT SetHatchStyle (INT state. [VBA] Sub Example(alarmPen As Object) Dim hatchStyle As Long hatchStyle = alarmPen. “GetHatchStyle”. green and blue are 0-255. END IAlarmPen. 255). INT hatchStyle) [C++] HRESULT SetHatchStyle (int state. Defined As [VBA] SetHatchStyle(state as Long. Where red. END IAlarmPen. HatchStyle* color) Parameters state [in] The state for which you would like to retrieve a hatch style (0 to 8).GetHatchStyl e [Method] Gets the hatch style used when drawing the boxes for the specified state. Execution Result If the function succeeds the return value will be Success.SetHatchStyl e [Method] Sets the hatch style used for drawing the specified state.GetHatchStyle(0) End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) INT nHatchStyle = _ObjectCallMethod(hAlarmPen.0. Defined As [VBA] GetHatchStyle(state as Long) as Long [Cicode] INT GetHatchStyle(INT state) [C++] HRESULT GetHatchStyle(int state.

See Also IAlarmPen.LineWidth [Property][Get/Set] IAnalogPen.GetHatchStyle [Method] Calling Syntax This example assumes there is a valid AlarmPen object to be passed into the example methods. If the pen is deleted the return value will be GeneralFailure. “SetHatchStyle” . Execution Result If the function succeeds the return value will be Success.92 state [in] The state for which you would like to assign a hatch style. 1) End Sub [Cicode] FUNCTION Example(OBJECT hAlarmPen) // Setting HatchStyle _ObjectCallMethod(hAlarmPen. green and blue are 0-255. END IAnalogPen Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IAnalogPen Methods (0) Properties (3) See Also IAnalogPen.SetHatchStyle(0. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). If the state is out of range then the return value will be InvalidArgument.LineInterpolation [Property][Get/Set] IAnalogPen.LineColor [Property][Get/Set] IAnalogPen. hatchStyle [in] The hatch style that will be used for the specified state. 1). Defined As [VBA] Long LineColor [Cicode] INT LineColor . Where red.0.LineColor [Property][Get/Set] Gets or Sets the color that will be used to draw the pen line. [VBA] Sub Example(alarmPen As Object) ‘Setting HatchStyle alarmPen.

255). If Stepped. the return value will be Success.93 [C++] OLE_COLOR LineColor Execution Result If the property get/set succeeds.LineInterpol ation [Property][Get/ Set] Gets or sets the drawing style used for drawing the connecting lines between points for this analog pen. "LineColor"). [VBA] Sub Example(analogPen As Object) Dim lineColor As Long ‘Getting Property value lineColor = analogPen. Remarks The color value can be calculated using the following formula: color = (65536 * blue) + (256 * green) + (red) where red. there will be two lines joining each point. and blue are 0-255. // Setting property to red _ObjectSetProperty(hAnalogPen. green. If the pen is deleted. the return value will be InvalidArgument. the return value will be GeneralFailure. END IAnalogPen. If the return variable is bad then the return value will be InvalidArgument.LineColor ‘Setting Property to red analogPen. Remarks The LineInterpolation mode dictates how the two points of a line are joined when drawn. If Straight. If the return variable is bad. "LineColor". Calling Syntax This example assumes there is a valid AnalogPen object to be passed into the example methods. only one line is used to directly connect the two points. 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. . one horizontal and one vertical. If the pen is deleted the return value will be GeneralFailure.LineColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hAnalogPen) // Getting property value INT nLineColor = _ObjectGetProperty(hAnalogPen.

If the return variable is bad. // Setting property value _ObjectSetProperty(hAnalogPen. [VBA] Sub Example(analogPen As Object) Dim lineInterpolation As Long ‘Getting Property value lineInterpolation = analogPen.LineWidth = 5 End Sub .94 See Also LineType [Enumeration] Calling Syntax This example assumes there is a valid Analog Pen object to be passed into the example methods. the return value will be InvalidArgument.LineInterpolation ‘Setting Property value analogPen. "LineInterpolation"). If the pen is deleted. the return value will be GeneralFailure. [VBA] Sub Example(analogPen As Object) Dim lineWidth As Long ‘Getting Property value lineWidth = analogPen. the return value will be Success.LineWidth ‘Setting Property value analogPen.LineInterpolation = 1 End Sub [Cicode] FUNCTION Example(OBJECT hAnalogPen) // Getting property value INT nInterpolation = _ObjectGetProperty(hAnalogPen. 1). "LineInterpolation". Limits Minimum = 0 Maximum = 8 Calling Syntax This example assumes there is a valid Analog Pen object to be passed into the example methods. Defined As [VBA] Long LineWidth [Cicode] INT LineWidth [C++] int LineWidth Execution Result If the property get/set succeeds. END IAnalogPen.LineWidth [Property][Get/Set] Gets or sets the width in pixels of the pen line when it is drawn.

CommandId End Sub [Cicode] FUNCTION Example(OBJECT hCommand) // Getting property value STRING nCommandId = _ObjectGetProperty(hCommand..Pressed [Property][Get/Set] ICommand. 5). END ICommand Interface Defined As [VBA] Object [Cicode] OBJECT [C++] ICommand Methods (0) Properties (6) ICommand. END .Item(1)).CommandSystem.Enabled [Property][Get/Set] ICommand.g. [VBA] Sub Example(Command As Object) Dim commandId As String ‘Getting Property value commandId = 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 Analyst’s CommandSystem (e.95 [Cicode] FUNCTION Example(OBJECT hAnalogPen) // Getting property value INT nLineWidth = _ObjectGetProperty(hAnalogPen.CommandId [Property][Get] Gets the CommandId of this command. "LineWidth").Privilege [Property][Get] ICommand.ButtonType [Property][Get] ICommand. VBA: ProcessAnalyst.CommandId [Property][Get] ICommand. "LineWidth"."CommandID").Tooltip [Property][Get] ICommand. // Setting property value _ObjectSetProperty(hAnalogPen.

.CommandSystem. the return value will be InvalidArgument. If the return value is invalid. END ICommand.Enabled [Property][Get/Set] Gets this commands enabled state. the return value will be Success.ButtonType [Property][Get] Gets this commands button type.g. Limits True (-1): Enabled . the return value will be InvalidArgument. the return value will be Success. Defined As [VBA] Boolean Enabled [Cicode] INT Enabled [C++] VARIANT_BOOL Enabled Execution Result If the property get succeeds. (e. VBA: ProcessAnalyst. If the command has been deleted. 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 Analyst’s CommandSystem. the return value will be GeneralFailure.Item(1)) [VBA] Sub Example(Command As Object) Dim buttonType As Long ‘Getting Property value buttonType = Command. "ButtonType"). Defined As [VBA] Long ButtonType [Cicode] INT ButtonType [C++] ToolbarButtonType ButtonType Execution Results If the property get succeeds. If the return value is invalid.96 ICommand.ButtonType End Sub [Cicode] FUNCTION Example(OBJECT hCommand) // Getting property value INT nButtonType = _ObjectGetProperty(hCommand.

(e. "Enabled".. END ICommand. (e. indicating whether or not the button is in a pressed down state.Item(1)) [VBA] Sub Example(Command As Object) Dim enabled As Boolean ‘Getting Property value enabled = Command. the return value will be InvalidArgument.Enabled ‘Setting Property value Command. -1). Limits True (-1): Pressed False (0): UnPressed Remarks This is only useful for toggle buttons.Pressed [Property][Get/Set] Gets and Sets this command’s Pressed state. Calling Syntax This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. Defined As [VBA] Boolean Pressed [Cicode] INT Pressed [C++] VARIANT_BOOL Pressed Execution Result If the property get succeeds. The setting of this property is only valid for custom commands. If the return variable is bad. Calling Syntax This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem.Item(1)) . the return value will be Success.CommandSystem. // Setting property value _ObjectSetProperty(hCommand. VBA: ProcessAnalyst.CommandSystem.g..97 Falso (0): Disabled Remarks The setting of this property is only valid for custom commands. "Enabled").Enabled = True End Sub [Cicode] FUNCTION Example(OBJECT hCommand) // Getting property value INT nEnabled = _ObjectGetProperty(hCommand.g. VBA: ProcessAnalyst.

VBA: ProcessAnalyst. (e.Tooltip [Property][Get] Gets this commands Tooltip text. the return value will be InvalidArgument. Defined As [VBA] String Tooltip [Cicode] STRING Tooltip [C++] VARIANT_BOOL Tooltip Execution Result If the property get succeeds. If the command has been deleted. // Setting property value _ObjectSetProperty(hCommand.Item(1)) [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 .Pressed ‘Setting Property value Command.g.Pressed = True End Sub [Cicode] FUNCTION Example(OBJECT hCommand) // Getting property value INT nPressed = _ObjectGetProperty(hCommand. Remarks This returns the text that is displayed in a tooltip window when the mouse pointer hovers over the command’s button. "Pressed".98 [VBA] Sub Example(Command As Object) Dim pressed As Boolean ‘Getting Property value pressed = Command. END ICommand. the return value will be Success. If the return variable is invalid. Calling Syntax This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem.CommandSystem. the return value will be GeneralFailure. "Pressed"). -1).

g.CommandSystem.99 ICommand.Privilege End Sub [Cicode] FUNCTION Example(OBJECT hCommand) // Getting property value INT nPrivilege = _ObjectGetProperty(hCommand.. Defined As [VBA] Integer Privilege [Cicode] INT Privilege [C++] int Privilege Execution Result If the property get succeeds. "Privilege"). Remarks This is the required privilege level of the currently logged in Vijeo Citect user to enable the state of this command. If the currently logged in Vijeo Citect user doesn’t have this privilege. If the return variable is invalid.Execute [Method] ICommandSystem.Remove [Method] Properties (4) ICommandSystem. VBA: ProcessAnalyst. (e. any buttons tied to this command will be disabled. If the command has been deleted.Create [Method] ICommandSystem.Item(1)) [VBA] Sub Example(Command As Object) Dim privilege As Integer ‘Getting Property value privilege = Command. the return value will be GeneralFailure. and hence allow access through the user interface.Item [Property][Get] . END ICommandSystem Interface Defined As [VBA] Object [Cicode] OBJECT [C++] ICommandSystem Methods (3) ICommandSystem. Calling Syntax This example assumes there is a valid Command object as retrieved from a Process Analyst’s CommandSystem. the return value will be InvalidArgument.Count [Property][Get] ICommandSystem. the return value will be Success.Privilege [Property][Get] Gets the privilege required to gain access to this command.

Count End Function [Cicode] FUNCTION Example(OBJECT hCommandSystem) // Getting property value INT nCount = _ObjectGetProperty(hCommandSystem. the return value will be InvalidArgument. (e. (e. the return value will be Success. Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst.g. Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index. Defined As [VBA] Long Count [Cicode] INT Count [C++] int Count Execution Result If the property get succeeds. If the index is out of range. [VBA] Function Example(CommandSystem As Object) Dim count As Long ‘Getting Property value count = CommandSystem. (One based) Execution Result If the property get succeeds. END ICommandSystem. VBA: ProcessAnalyst... . the return value will be Success.Cou nt [Property][Get] Gets the number of commands in the command system. "Count").100 ICommandSystem.CommandSystem)._NewEnum [Property][Get] ICommandSystem. VBA: ProcessAnalyst. ICommand* Item) Parameters index [in] Indicates the index location of the command to return from this collection.g.CommandSystem).ItemById [Property][Get] ICommandSystem.Item [Property][Get] Gets the Command at a supplied index location in this collection.

VBA: ProcessAnalyst. END ICommandSystem.Item ById [Property][Get] Gets the Command at a supplied index location in this collection. [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 ICommandSystem.g._Ne wEnum [Property][Get] This allows “For… Each… Next” integration in VB.CommandSystem). VBA: ProcessAnalyst. This property is not applicable to Cicode. (e. [VBA] Sub Example(CommandSystem As Object) Dim command As Object ‘Getting Property value Set command = CommandSystem. (e. Defined As [VBA] Object Command [Cicode] OBJECT hCommand [C++] ICommand* Command Parameters commandId [in] Indicates command ID of the command to return from this collection.ItemById(Citect_Command_AddPen) End Sub .g. Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst.. 1).. "get_Item". Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst.101 [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.CommandSystem).

Citect_Command_AddPen). the return value is InvalidArgument. Remarks The commandID cannot begin with the prefix “Citect_”. VBA: ProcessAnalyst. If the command was not created. If an argument is invalid or out of range. the return value is GeneralFailure. Defined As [VBA] object Create (commandID As String. BSTR tooltip.g.Crea te [Method] Creates a new Command object that is added to the CommandSystem.. STRING iconPath. the return value is Success. . BSTR iconPath.102 [Cicode] FUNCTION Example(OBJECT hCommandSystem) // Getting property value OBJECT hCommand = _ObjectCallMethod (hCommandSystem. INT buttonType. Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. (e. INT Pprivilege) [C++] HRESULT Create (BSTR commandID. ToolbarButtonType ButtonType. privilege As Integer) [Cicode] OBJECT Create (STRING commandID. iconPath [in] The path to an icon file that will be used as this command’s picture. ICommand** Val) Parameters commandID [in] buttonType [in] A value representing a button type. int privilege. buttonType As Integer.CommandSystem)." get_ItemById". END ICommandSystem. A unique identifier for this command (1-64 characters). iconPath As String. tooltip As String. privilege [in] A privilege value required by the Vijeo Citect user to gain access to this command (0-8). ToolbarButtonType_Push = 0 ToolbarButtonType_Toggle = 1 ToolbarButtonType_Separator = 2 tooltip [in] The text to be displayed as a tooltip for this command (1-64 characters). Execution Result If the method succeeds. STRING tooltip.

END ICommandSystem. Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst. VBA: ProcessAnalyst. Defined As [VBA] Remove (commandId As String) [Cicode] Remove (STRING CommandId) . Defined As [VBA] Execute (commandId As String) [Cicode] Execute (STRING commandId) [C++] HRESULT Execute(BSTR commandId) Parameters commandId [in] The unique ID of the command whose action is to be executed.ico".. the command will not execute. "Some tooltip text". the retun value will be Success.ico". (e.Exec ute [Method] Executes the specified command’s action. [VBA] Sub Example(CommandSystem As Object) CommandSystem.g. END ICommandSystem. 5) End Sub [Cicode] FUNCTION Example(OBJECT hCommandSystem) OBJECT hCommand = _ObjectCallMethod(hCommandSystem. "Execute". "Create". "c:\someicon. "Some tooltip text".Rem ove [Method] Removes the specified command. 5).CommandSystem). Citect_Command_AddPen).Create(CommandIO. CommandIO.Execute(Citect_Command_AddPen) End Sub [Cicode] FUNCTION Example(OBJECT hCommandSystem) _ObjectCallMethod(hCommandSystem. Execution Result If this method succeeds. Remarks If the current Operator does not have the correct privilege. "c:\someicon. the return value will be InvalidArgument.103 [VBA] Sub Example(CommandSystem As Object) Dim command As Object Set command = CommandSystem. If the command is invalid.

ITrendCursor** ppTrendCursor) Parameters name [in] The desired unique name of the new cursor.Count [Property][Get] ICursors. [VBA] Sub Example(CommandSystem As Object) CommandSystem.104 [C++] HRESULT Remove(BSTR CommandId) Parameters commandId [in] The ID of the command to be removed.ItemByName [Property][Get] ICursors. Calling Syntax This example assumes there is a valid CommandSystem object as retrieved from a Process Analyst.Remove(“MyCommand1”) End Sub [Cicode] FUNCTION Example(OBJECT hCommandSystem) _ObjectCallMethod(hCommandSystem.CommandSystem). int position. This must be between 1 and 250 characters. Defined As [VBA] Object Create(name As String. INT position) [C++] HRESULT Create(BSTR name. position As Integer) [Cicode] OBJECT Create(STRING name.Item [Property][Get] ICursors. "Remove".RemoveAll [Method] Properties ICursors.g. “MyCommand1”). END ICursors Interface Defined As [VBA] Object [Cicode] OBJECT [C++] ICursors Methods ICursors. .Create [Method] Creates a new TrendCursor at the given location._NewEnum [Property][Get] ICursors. VBA: ProcessAnalyst. (e.Create [Method] ICursors..

END ICursors.105 position [in] The initial position of the new cursor. the return value will be InvalidArgument. Defined As [VBA] RemoveAll() [Cicode] RemoveAll() [C++] HRESULT RemoveAll() Execution Result If the function succeeds the return value will be Success. the return value will be GeneralFailure. [VBA] Sub Example(cursors As Object) cursors. If the name is out of range.RemoveAll End Sub [Cicode] FUNCTION Example(OBJECT hCursors) _ObjectCallMethod(hCursors. This value is given as the number of pixels from the left of the Process Analyst graph view. “Cursor1”. 100). Remarks The cursor name must be unique. “Create”. If an unexpected error occurs. the return value will be Success. the return value will be InvalidArgument. Execution Result If the function succeeds. If an unexpected error occurs. If the name is not unique. End Sub . "RemoveAll"). 100) End Sub [Cicode] FUNCTION Example(OBJECT hCursors) OBJECT hNewCursor = _ObjectCallMethod(hCursors.Create(“Cursor1”. Calling Syntax This example assumes there is a valid Cursors object to be passed into the example methods.RemoveAll [Method] Removes all cursors from the collection. the return value will be GeneralFailure. Calling Syntax [VBA] Sub Example(cursors As Object) Dim newCursor As Object newCursor = cursors. Attempting to create a cursor with a name that is already in use will result in error and the new cursor will not be created.

the return value will be InvalidArgument. the return value will be InvalidArgument. Remarks The index for the collection is 1 based. Defined As [VBA] Object _NewEnum() [C++] HRESULT get__NewEnum(LPUNKNOWN *pVal) Execution Result If the property get succeeds. Defined As [VBA] Object Item(index As Integer) [Cicode] OBJECT get_Item(INT index) [C++] HRESULT get_Item (long index. If the collection is deleted. "get_Item". The valid range for this parameter is between 1 and the total number of cursors.. the return value will be InvalidArgument. 2). If the return variable is bad.Item(2) End Sub [Cicode] Sub Example(OBJECT hCursors) OBJECT hSecondCursor = _ObjectCallMethod(hCursors. below). the return value will be Success. Execution Result If the property get succeeds. Calling Syntax This example assumes you have a valid reference to the cursors collection and that there are two items in the collection. the return value will be Success.Item [Property][Get] Retrieves the Cursor from the collection at the specified index.Next loops in Citect VBA (See Calling Syntax. If the return variable is bad._NewEnum [Property][Get] Retrieves an enumerator for the cursors collection. ITrendCursor **cursor) Parameters index [in] The index of the required cursor.106 ICursors. the return value will be GeneralFailure. END ICursors. [VBA] Sub Example(hCursors As Object) Dim hSecondCursor As Object Set hSecondCursor = hCursors. the return value will be GeneralFailure. If the index is out of range. This property cannot be used in Cicode.. If the collection is deleted. Remarks Provided for the implementation of For Each. .

END ICursors. Remarks This property may be used in conjunction with the Item property to iterate through the collection in Cicode. ITrendCursor **cursor) .Count [Property][Get] Returns the number of cursors in the collection. Calling Syntax This example assumes you have a valid reference to the cursors collection. Defined As [VBA] Object ItemByName(name As String) [Cicode] OBJECT get_ItemByName(STRING name) [C++] HRESULT get_ItemByName (BSTR name.107 Calling Syntax This example assumes you have a valid reference to the cursors collection and that there are 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. cursorCount = _ObjectGetProperty(hCursors.ItemByName [Property][Get] Retrieves the Cursor at the specified index. [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. [VBA] Sub Example(cursors As Object) Dim cursorCount As Integer cursorCount = cursors. "Count").Count End Sub [Cicode] FUNCTION Example(OBJECT hCursors) INT cursorCount. If the collection is deleted the return value will be GeneralFailure.

the return value will be Success.108 Parameters name [in] The name of the required cursor. and that there is a cursor in the collection named “MyCursor”.LineWidth [Property][Get/Set] IDigitalPen. the return value will be InvalidArgument. the return value will be InvalidArgument. Defined As [VBA] Long FillColor [Cicode] INT FillColor [C++] OLE_COLOR FillColor Execution Result . "MyCursor").FillColor [Property][Get/Set] IDigitalPen. END IDigitalPen Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IDigitalPen Methods (0) Properties (4) IDigitalPen. Calling Syntax This example assumes you have a valid reference to the cursors collection. Execution Result If the property get succeeds. If the return variable is bad.ItemByName("MyCursor") End Sub [Cicode] FUNCTION Example(OBJECT hCursors) OBJECT hCursor = _ObjectCallMethod(hCursors. "get_ItemByName". the return value will be GeneralFailure. If the collection is deleted.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.Fill [Property][Get/Set] IDigitalPen. [VBA] Sub Example(cursors As Object) Dim cursor As Object Set cursor = cursors. If the cursor is not found.LineColor [Property][Get/Set] IDigitalPen.

green. the return value will be Success. Where red.FillColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hDigitalPen) // Getting property value INT nFillColor = _ObjectGetProperty(hDigitalPen. the return value will be InvalidArgument. 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). [VBA] Sub Example(digitalPen As Object) Dim fillColor As Long ‘Getting Property value fillColor = digitalPen. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). the return value will be GeneralFailure. 255).Fill [Property][Get/Set] Calling Syntax This example assumes there is a valid DigitalPen object to be passed into the example methods.LineColor [Property][Get/Set] Gets or Sets the color that will be used to draw the pen line. Calling Syntax . "FillColor"). and blue are 0-255. END IDigitalPen. If the pen is deleted the return value will be GeneralFailure. 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. Remarks The color value can be calculated using the following formula: color = (65536 * blue) + (256 * green) + (red) where red. // Setting property to red _ObjectSetProperty(hDigitalPen.109 If the property get/set succeeds. See Also IDigitalPen.FillColor ‘Setting Property to red digitalPen. "FillColor". If the return variable is bad.

LineWidth = 5 End Sub [Cicode] FUNCTION Example(OBJECT hDigitalPen) // Getting property value INT nLineWidth = _ObjectGetProperty(hDigitalPen. "LineWidth").110 This example assumes there is a valid DigitalPen object to be passed into the example methods. "LineColor"). 255). If the return variable is bad then the return value will be InvalidArgument. Limits Minimum = 0 Maximum = 8 Calling Syntax This example assumes there is a valid Digital Pen object to be passed into the example methods.LineWidth [Property][Get/Set] Gets or sets the width in pixels of the pen line when it is drawn.LineWidth ‘Setting Property value digitalPen. [VBA] Sub Example(digitalPen As Object) Dim lineColor As Long ‘Getting Property value lineColor = DigitalPen. END IDigitalPen. [VBA] Sub Example(digitalPen As Object) Dim lineWidth As Long ‘Getting Property value lineWidth = digitalPen. . "LineColor". // Setting property to red _ObjectSetProperty(hDigitalPen. 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 pen is deleted the return value will be GeneralFailure.LineColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hDigitalPen) // Getting property value INT nLineColor = _ObjectGetProperty(hDigitalPen.LineColor ‘Setting Property to red digitalPen.

[VBA] Sub Example(digitalPen As Object) Dim fill As Boolean ‘Getting Property value fill = digitalPen. 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 pen is deleted the return value will be GeneralFailure. -1). If the return variable is bad then the return value will be InvalidArgument. Remarks If the pen is filled.Fill [Property][Get/Set] Gets or sets whether the pen fill is displayed. // Setting property value _ObjectSetProperty(hDigitalPen. END IDigitalPen. "Fill"). "Fill". END IObjectView Interface Defined As [VBA] Object . See Also IDigitalPen.111 // Setting property value _ObjectSetProperty(hDigitalPen. 5).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.Fill ‘Setting Property value digitalPen. "LineWidth".Fill = True End Sub [Cicode] FUNCTION Example(OBJECT hDigitalPen) // Getting property value INT nFill = _ObjectGetProperty(hDigitalPen. the area under the pen line will be filled with the color specified by the FillColor property.

"Visible"). the return value will be Success. . the return value will be InvalidArgument. the chart gains the real estate previously held by it. If the return variable is bad.Visible [Property][Get/Set] Gets or Sets the visibility of the Object View window.112 [Cicode] OBJECT [C++] IObjectView Methods (0) Properties (7) IObjectView.Items [Property][Get] IObjectView. Calling Syntax Assume that there is an IObjectView object being passed in as a parameter.ForeColor [Property][Get/Set] IObjectView.BackgroundColor [Property][Get/Set] IObjectView.Visible [Property][Get/Set] IObjectView. [VBA] Sub Example(objectView As Object) Dim visible As Boolean ‘Getting Property value visible = objectView.Visible ‘Setting Property value objectView.SelectedItem [Property][Get] IObjectView. Defined As [VBA] Boolean Visible [Cicode] INT Visible [C++] VARIANT_BOOL Visible Execution Result If the property get succeeds.Visible = False End Sub [Cicode] FUNCTION Example(OBJECT hObjectView) INT bVisible = 0 // Getting property value bVisible = _ObjectGetProperty(hObjectView.Columns [Property][Get] IObjectView. Limits True (-1): Visible False (0): Hidden Remarks By hiding the ObjectView. and likewise the chart loses real estate when the ObjectView gets shown.Height [Property][Get/Set] IObjectView.

the return value will be Success. Calling Syntax This example assumes that there is an IObjectView object being passed in as a parameter. Defined As [VBA] Long Height [Cicode] INT Height [C++] int Height Execution Result If the property get succeeds. you make the Chart smaller and vice versa. This number is treated as an OLE_COLOR inside the Process Analyst. 0). Limits Height must be 0 or greater.Height [Property][Get/Set] Gets or Sets the height in pixels of the Object View window. // Setting Property to false _ObjectSetProperty(hObjectView.113 // Setting Property to false _ObjectSetProperty(hObjectView. END IObjectView.Height = 25 End Sub [Cicode] FUNCTION Example(OBJECT hObjectView) INT nHeight = 0. "Visible". 25). // Getting property value nHeight = _ObjectGetProperty(hObjectView. A height value less than 0 will be InvalidArgument. Defined As [VBA] Long BackgroundColor [Cicode] INT BackgroundColor .Backgroun dColor [Property][Get/ Set] Gets or Sets the background color of the ObjectView. the return value will be InvalidArgument. END IObjectView. "Height").Height ‘Setting Property value objectView. [VBA] Sub Example(objectView As Object) Dim height As Long ‘Getting Property value height = objectView. Remarks As the ObjectView and chart both share the same window. "Height". If the return variable is bad. by enlarging the ObjectView.

"BackgroundColor". Where red. the return value will be InvalidArgument. the return value will be Success.BackgroundColor ‘Setting Property value to red objectView. the return value will be InvalidArgument. . green and blue are 0-255. If the return variable is bad. Calling Syntax This example assumes that there is an IObjectView object being passed in as a parameter."BackgroundColor").ForeColor [Property][Get/Set] Gets or Sets the Fore color (text and color box outlines) of the ObjectView. // Setting Property to Red _ObjectSetProperty(hObjectView.BackgroundColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hObjectView) // Getting property value INT nBackgroundColor = _ObjectGetProperty(hObjectView. Defined As [VBA] Long ForeColor [Cicode] INT ForeColor [C++] OLE_COLOR ForeColor Execution Result If the property get succeeds. Where red.114 [C++] OLE_COLOR BackgroundColor Execution Result If the property get succeeds. green and blue are 0-255. This number is treated as an OLE_COLOR inside the Process Analyst. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). [VBA] Sub Example(objectView As Object) Dim backgroundColor As Long ‘Getting Property value backgroundColor = objectView. Calling Syntax This example assumes that there is an IObjectView object being passed in as a parameter. END IObjectView. 255). Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red). If the return variable is bad. the return value will be Success.

// Setting Property to red _ObjectSetProperty(hObjectView.Columns End Sub [Cicode] FUNCTION Example(OBJECT hObjectView) // Getting property value OBJECT hColumns = _ObjectGetProperty(hObjectView. // Getting property value nForeColor = _ObjectGetProperty(hObjectView. the return value will be Success. "ForeColor"). 255). Defined As [VBA] Object Columns [Cicode] OBJECT Columns [C++] IObjectViewColumns* Columns Execution Result If the property get succeeds.ForeColor ‘Setting Property value to red objectView.Columns [Property][Get] Gets the automation object representing the collection of columns currently visible in the ObjectView. "Columns").ForeColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hObjectView) INT nForeColor = 0. Defined As [VBA] Object Items . [VBA] Sub Example(objectView As Object) Dim columns As Object ‘Getting Property value Set columns = objectView. If the return variable is bad. the return value will be InvalidArgument. "ForeColor".115 [VBA] Sub Example(objectView As Object) Dim foreColor As Long ‘Getting Property value foreColor = objectView. END IObjectView. END IObjectView. Calling Syntax This example assumes that there is an IObjectView object being passed in as a parameter.Items [Property][Get] Gets the automation object representing the collection of items at the root of the ObjectView tree.

[VBA] Sub Example(objectView As Object) Dim items As Object ‘Getting Property value Set items = objectView. If the return variable is bad. the return value will be Success. 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. the return value will be Success. the return value will be InvalidArgument. This is the pen item that was last selected. Each pane item has an Items property which allows access to the pen items listed under it. Defined As [VBA] Object SelectedItem [Cicode] OBJECT SelectedItem [C++] IObjectViewItem* SelectedItem Execution Result If the property get succeeds. Calling Syntax This example assumes that there is an IObjectView object being passed in as a parameter. "Items"). Remarks The method will provide a list of all the pane items in tree.Items End Sub [Cicode] FUNCTION Example(OBJECT hObjectView) // Getting property value OBJECT hItems = _ObjectGetProperty(hObjectView. If the return variable is bad.SelectedItem End Sub . END IObjectView.116 [Cicode] OBJECT Items [C++] IObjectViewItems* Items Execution Result If the property get succeeds. the return value will be InvalidArgument.SelectedIte m [Property][Get] Gets the current primary selection in the ObjectView.

VBA: objectView. END IObjectViewColumn Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IObjectViewColumn Methods (0) Properties (3) IObjectViewColumn. Defined As .Item(1)).. If the return variable is bad. Calling Syntax This example assumes there is a valid column as retrieved from an ObjectView. END IObjectViewColumn. "Name").Width [Property][Get/Set] IObjectViewColumn. the return value will be InvalidArgument. Defined As [VBA] String Name [Cicode] STRING Name [C++] BSTR Name Execution Result If the property get succeeds. [VBA] Sub Example(objectViewColumn As Object) Dim name As String ‘Getting Property value name = objectViewColumn.Na me [Property][Get] Retrieves the unique identifier of this column.Columns.117 [Cicode] FUNCTION Example(OBJECT hObjectView) // Getting property value OBJECT hSelectedItem = _ObjectGetProperty(hObjectView.Tex t [Property][Get] Gets the Text that is being displayed for this columns header.Text [Property][Get] IObjectViewColumn. the return value will be Success. "SelectedItem").Name [Property][Get] IObjectViewColumn.g. (e.Name End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewColumn) // Getting property value STRING name = _ObjectGetProperty(hObjectViewColumn.

Columns. END IObjectViewColumn. Calling Syntax This example assumes there is a valid column as retrieved from an ObjectView. VBA: objectView. the return value will be InvalidArgument. the return value will be InvalidArgument. If the width is out of range. [VBA] Sub Example(objectViewColumn As Object) Dim width As Long ‘Getting Property value width = objectViewColumn.g.g. (e. Calling Syntax This example assumes there is a valid column as retrieved from an ObjectView. VBA: objectView. "Text"). If the return variable is bad. If the return variable is bad..Item(1)). the return value will be Success.Item(1)). the result will be InvalidArgument. [VBA] Sub Example(objectViewColumn As Object) Dim text As String ‘Getting Property value text = objectViewColumn. the return value will be Success. Limits A valid width is 0-1000.Width .Wid th [Property][Get/Set] Gets or Sets the width in pixels of this column.Columns.118 [VBA] String Text [Cicode] STRING Text [C++] BSTR Text Execution Result If the property get succeeds..Text End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewColumn) // Getting property value STRING text = _ObjectGetProperty(hObjectViewColumn. (e. Defined As [VBA] Long Width [Cicode] INT Width [C++] int Width Execution Result If the property get succeeds.

_ObjectSetProperty(hObjectViewColumn. DisplayText As String.Width = 150 End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewColumn) // Getting property value INT width = _ObjectGetProperty(hObjectViewColumn.Hide [Method] IObjectViewColumns.A dd [Method] Adds a visible custom column to the ObjectView. END IObjectViewColumns Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IObjectViewColumns Methods (4) IObjectViewColumns. STRING DisplayText. INT Width) [C++] HRESULT Add (BSTR name.ItemByName [Property][Get] IObjectViewColumns.Remove [Method] IObjectViewColumns.Show [Method] Properties (4) IObjectViewColumns. If an argument is out of range. the return value will be Success. width [in] The width of this column in pixels (0-1000)._NewEnum [Property][Get] IObjectViewColumns. If the column cannot be added. Defined As [VBA] Add(name As String. "Width". BSTR text.119 ‘Setting Property value objectViewColumn. int width) Parameters name [in] The string ID uniquely identifying this column (1-64).Item [Property][Get] IObjectViewColumns.Add [Method] IObjectViewColumns. the return value is GeneralFailure. Width As Long) [Cicode] Add(STRING name. "Width"). . text [in] The title to be displayed in the column header (0-256). 150). the return value will be InvalidArgument. Execution Result If the method succeeds.Count [Property][Get] IObjectViewColumns.

Defined As [VBA] Remove(columnName As String) . END IObjectViewColumns.Hide "Error" End Sub [Cicode] FUNCTION Example(OBJECT hColumns) _ObjectCallMethod(hColumns.g. [VBA] Sub Example(columns As Object) columns.Columns). End Sub [Cicode] FUNCTION Example(OBJECT hColumns) _ObjectCallMethod(hColumns. If the return variable is bad.Add "NameID". (e.120 See Also OVColumnAdded [Event] Calling Syntax This example assumes there is a valid Columns collection as retrieved from an ObjectView. See Also IObjectViewColumns. "Error").Hi de [Method] Makes the specified column hidden within the Object View.Re move [Method] Removes the specified custom column from the Object View columns. VBA: objectView. 120... Defined As [VBA] Hide(columnName As String) [Cicode] Hide(STRING columnName) [C++] HRESULT Hide(BSTR columnName) Parameters columnName [in] The string ID uniquely identifying the column you want to hide Execution Result If the property get succeeds. If the field cannot be set. GeneralFailure is returned. "NameID".Show [Method] Calling Syntax This example assumes there is a columns Collection from an ObjectView. "Add". the return value will be Success. 120). "New Column".Columns). "New Column".g. the return value will be InvalidArgument. "Hide". [VBA] Sub Example(Columns As Object) Columns. (e. VBA: objectView. END IObjectViewColumns.

"MyCustomColumn"). If the column cannot be found. "get_ItemByName". END IObjectViewColumns. See Also IObjectViewColumns. then GeneralFailure is returned.121 [Cicode] OBJECT Remove(STRING columnName) [C++] Remove(STRING columnName) Parameters columnName [in] Indicates the unique name of the column to remove from this collection. the return value will be Success. the return value will be InvalidArgument. Remarks Only user created custom columns can be removed. If the field cannot be set.Remove(“MyCustomColumn”) End Sub [Cicode] FUNCTION Example(OBJECT hColumns) // Getting property value OBJECT hColumn = _ObjectCallMethod(hColumns. 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.Hide [Method] Calling Syntax .Sh ow [Method] Makes the specified column visible within the Object View. [VBA] Sub Example(columns As Object) Dim column As Object ‘Getting Property value Set column = columns. If the return variable is bad. 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 If the property get succeeds. Execution Results If the method succeeds. the return value will be Success.

g. END IObjectViewColumns. [VBA] Sub Example(columns As Object) columns.. "Error"). [VBA] Function Example(Columns As Object) Dim count As Long ‘Getting Property value count = Columns. "Count")..Count End Function [Cicode] FUNCTION Example(OBJECT hColumns) // Getting property value INT nCount = _ObjectGetProperty(hColumns. (e.C ount [Property][Get] Gets the number of Columns in this columns collection. (e. Defined As [VBA] Long Count [Cicode] INT Count [C++] int Count Execution Result If the property get succeeds. VBA: objectView. the return value will be Success. IObjectViewColumn* Item) Parameters index . the return value will be InvalidArgument. "Show".Columns). END IObjectViewColumns. If the return variable is bad.122 This example assumes there is a columns Collection from an ObjectView. VBA: ObjectView. Calling Syntax This example assumes there is a valid Columns collection as retrieved from an ObjectView.Show "Error" End Sub [Cicode] FUNCTION Example(OBJECT hColumns) _ObjectCallMethod(hColumns.Columns).g. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index.Ite m [Property][Get] Gets the ObjectViewItem at a supplied index location in this collection.

the return value will be Success. If the column cannot be found. Execution Results If the method succeeds. "get_Item". (One based) Calling Syntax This example assumes there is a valid Columns collection as retrieved from an ObjectView (e.ItemByName(“Duration”) End Sub . VBA: objectView.123 [in] Indicates the index location of the column to return from this collection.Columns). the return value will be InvalidArgument.. [VBA] Sub Example(columns As Object) Dim column As Object ‘Getting Property value Set column = columns.g. Defined As [VBA] ItemByName(columnName As String) as Object [Cicode] OBJECT ItemByName(STRING columnName) [C++] ItemByName(STRING columnName. [VBA] Sub Example(Columns As Object) Dim column As Object ‘Getting Property value Set column = Columns.Item(1) End Sub [Cicode] FUNCTION Example(OBJECT hColumns) // Getting property value OBJECT hColumn = _ObjectCallMethod(hColumns. 1). Calling Syntax This example assumes there is a valid Columns collection object to be passed into the example methods. IObjectViewColumn* Item) Parameters columnName [in] Indicates the unique name of the column item to return from this collection. END IObjectViewColumns.Ite mByName [Property][Get] Returns a reference to the column object with the given name from this column’s collection.

GetField [Method] IObjectViewItem. The result of the GetField method will depend on what type of item it is called on. Defined As [VBA] GetField(ColumnName As String) as String [Cicode] STRING GetField (STRING ColumnName) [C++] HRESULT GetField (BSTR ColumnName. BSTR *Val) .PutField [Method] Properties (3) IObjectViewItem.Columns). (e. END IObjectViewColumns.Expanded [Property][Get/Set] IObjectViewItem. [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 IObjectViewItem Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IObjectViewItem Methods (2) IObjectViewItem.. Calling Syntax This example assumes there is a valid Columns collection as retrieved from an ObjectView. VBA: objectView.124 [Cicode] FUNCTION Example(OBJECT hColumns) // Getting property value OBJECT hColumn = _ObjectCallMethod(hColumns. "get_ItemByName". you have to first get the items collection for the pane item. The IObjectViewItem interface is hierarchical to two levels – pane and then pen._N ewEnum [Property][Get] This allows “For… Each… Next” integration in VB. then get the pen item.GetFiel d [Method] Returns the string value of a displayed field for a specified column on this item.g. To access the fields for a pen. "Duration"). This property is not applicable in Cicode.Tag [Property][Get/Set] IObjectViewItem. for example.Items [Property][Get] IObjectViewItem.

Item(1) 'Get the first pen from the first pane penItem. Execution Result If the property get succeeds. OBJECT hPaneItem = _ObjectCallMethod(hPaneItems. "Items").PutFiel d [Method] Sets the display string in a field’s cell for a specified column on this item. "Scale". If the return variable is bad. "get_Item". Calling Syntax This example gets the Scale property of the first pen in the first pane.Item(1)) [VBA] Sub Example() Dim paneItem As Object Dim penItem As Object Dim fieldValue As String Set paneItem = Test_CPA. sValue). fieldValue as String) [Cicode] PutField (STRING columnName.Items.125 Parameters ColumnName [in] The string ID uniquely identifying the column whose field value is being queried for. 1).GetField "Scale". for example.Items.g. To set fields for a pen.. "get_Item".ObjectView. BSTR fieldValue) Parameters . // Get the first pane of the ObjectView OBJECT hPenItems = _ObjectGetProperty(hPaneItem. VBA: objectView. then get the pen item. "Items"). fieldValue 'Get the value of the scale field End Sub [CICODE] FUNCTION Example(OBJECT hObjectView) OBJECT hPaneItems = _ObjectGetProperty(hObjectView. STRING fieldValue) [C++] HRESULT PutField (BSTR columnName. The scope of the PutField method will depend on what type of item it is called on. // Get the value of the scale field END IObjectViewItem. InvalidArgument will be returned. the return value will be Success. (e. 1). The IObjectViewItem interface is hierarchical to two levels – pane and then pen. you have to first get the items collection for the pane item. If the ColumnName does not exist. Defined As [VBA] PutField(columnName As String. It assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. the return value will be InvalidArgument. // Get the collection of pens from the first pane OBJECT hPenItem = _ObjectCallMethod(hPenItems. // Get the first Pen item STRING sValue. _ObjectCallMethod(hPenItem.Items.Item(1) 'Get the first pane of the ObjectView Set penItem = paneItem. "GetField".

"Items"). the return value will be Success. fieldValue [in] The string you would like to be displayed in the field for this column/ pen intersection.126 columnName [in] The string ID uniquely identifying the column whose field value is being set. If the return variable is bad. "CustomColumn". 1). "PutField". Limits .Items. Calling Syntax This example writes the value “someValue” to the CustomColumn field of the first pen in the first pane. "get_Item".Items.PutField "CustomColumn".Item(1)). // Get the first Pen item _ObjectCallMethod(hPenItem.ObjectView. OBJECT hPaneItem = _ObjectCallMethod(hPaneItems. [VBA] Sub Example() Dim paneItem As Object Dim penItem As Object Set paneItem = Test_CPA. "Items").Items. then GeneralFailure is returned. If the field cannot be set.g. "get_Item". the return value will be InvalidArgument. the return value will be Success. "someValue").Expan ded [Property][Get/Set] Gets or Sets the expanded state of an item in the ObjectView. If the return variable is bad. Execution Result If the property get succeeds. // Get the first pane of the ObjectView OBJECT hPenItems = _ObjectGetProperty(hPaneItem. the return value will be InvalidArgument. "someValue" 'Set the value of the CustomColumn field End Sub [CICODE] FUNCTION Example(OBJECT hObjectView) OBJECT hPaneItems = _ObjectGetProperty(hObjectView. 1). // Get the collection of pens from the first pane OBJECT hPenItem = _ObjectCallMethod(hPenItems.Item(1) 'Get the first pane of the ObjectView Set penItem = paneItem.Item(1) 'Get the first pen from the first pane penItem. It assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. This change is reflected immediately in the visualization of the ObjectView.. // Set the value of the CustomColumn field END IObjectViewItem. VBA: objectView. Defined As [VBA] Boolean Expanded [Cicode] INT Expanded [C++] VARIANT_BOOL Expanded Execution Result If the property get succeeds. (e.

"Expanded".. VBA: objectView.Item(1)).Item(1)). 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. (e. Calling Syntax This example assumes there is a valid Item as retrieved from an Items Collection from an ObjectView. // Setting Property _ObjectSetProperty(hObjectViewItem. . [VBA] Sub Example(objectViewItem As Object) Dim expanded As Boolean ‘Getting Property value expanded = objectViewItem. and then having direct access to it whenever any events with a pen item target occur.g. "Tag").Tag = tag End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewItem) // Getting property value INT nTag = _ObjectGetProperty(hObjectViewItem. VBA: objectView.Items. END IObjectViewItem. This is handy for associating some custom data with a pen item.Expanded ‘Setting Property value objectViewItem. 0).Tag [Property][Get/Set] Gets or Sets a user specified piece of data to associate with this Item.Items.127 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.. "Expanded").g.Tag ‘Setting Property value to red objectViewItem.Expanded = False End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewItem) // Getting property value INT nExpanded = _ObjectGetProperty(hObjectViewItem. (e. [VBA] Sub Example(objectViewItem As Object) Dim tag As Variant ‘Getting Property value tag = objectViewItem.

Defined As [VBA] Object Items [Cicode] OBJECT Items [C++] IObjectViewItems* Items Execution Result If the property get succeeds. the return value will be InvalidArgument. END IObjectViewItems Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IObjectViewItems Methods (0) Properties (3) IObjectViewItems. (e.Items. Calling Syntax This example assumes there is a valid item as retrieved from an ObjectView.g.Count [Property][Get] IObjectViewItems.Items End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewItem) // Getting property value OBJECT hItems = _ObjectGetProperty(hObjectViewItem. VBA: objectView._NewEnum [Property][Get] . If the return variable is bad. nTag). [VBA] Sub Example(objectViewItem As Object) Dim items As Object ‘Getting Property value Set items = objectViewItem.128 // Setting Property to red _ObjectSetProperty(hObjectView.Item(1). "Tag"..Items [Property][Get] Gets the automation object representing the collection of child items under this item. END IObjectViewItem. "Items").Item [Property][Get] IObjectViewItems. the return value will be Success. This will be a pane). Remarks Pane nodes are currently the only nodes that can have children.

Count End Sub [Cicode] FUNCTION Example(OBJECT hItems) // Getting property value INT nCount = _ObjectGetProperty(hItems.Items) [VBA] Sub Example(Items As Object) Dim count As Long ‘Getting Property value count = Items.129 IObjectViewItems. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index. VBA: objectView. the return value will be Success.. the return value will be InvalidArgument.g. "Count"). [VBA] Sub Example(Items As Object) Dim item As Object ‘Getting Property value Set item = Items..Count [Property][Get] Gets the number of child items under this item. Calling Syntax This example assumes there is a valid Items collection as retrieved from an ObjectView.Item [Property][Get] Gets the ObjectViewItem at a supplied index location in this collection.Item(1) End Sub . IObjectViewItem* Item) Parameters index [in] Indicates the index location of the child item to return from this collection. (e. (e.Items).g. VBA: objectView. END IObjectViewItems. (One based) Calling Syntax This example assumes there is a valid Items collection as retrieved from an ObjectView. If the return variable is bad. Defined As [VBA] Long Count [Cicode] INT Count [C++] int Count Execution Result If the property get succeeds.

Checked [Property][Get/Set] IObjectViewPenItem. 1). VBA: objectView. This property is not applicable to Cicode.Items). If the return variable is bad. the return value will be Success. and blue are 0-255. . Next integration in VB. green.130 [Cicode] FUNCTION Example(OBJECT hItems) // Getting property value OBJECT hItem = _ObjectCallMethod(hItems. the return value will be InvalidArgument. "get_Item".. (e.BlockColor [Property][Get]) IObjectViewPenItem..Blo ckColor [Property][Get] Gets the color representing this item in the ObjectView. Remarks The color value can be calculated using the following formula: color = (65536 * Blue) + (256 * Green) + (Red) where red. END IObjectViewItems.Selected [Property][Get] IObjectViewPenItem. Each._New Enum [Property][Get] This allows For.. Calling Syntax This example assumes there is a valid Items collection as retrieved from an ObjectView.g. Defined As [VBA] Long BlockColor [Cicode] INT BlockColor [C++] OLE_COLOR BlockColor Execution Result If the property get succeeds. [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 IObjectViewPenItem Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IObjectViewPenItem Methods (0) Properties (3) IObjectViewPenItem.

"BlockColor").Checked = False End Sub .Items. END IObjectViewPenItem.Checked ‘Setting Property value objectViewPenItem. See Also OVItemChecked [Event] Calling Syntax This example assumes there is a valid pen item as retrieved from an ObjectView..131 Calling Syntax This example assumes there is a valid pen item as retrieved from an ObjectView.Item(1). [VBA] Sub Example(objectViewPenItem As Object) Dim checked As Boolean ‘Getting Property value checked = objectViewPenItem. (e. and any sets to this property will reflect immediately in the update of the Process Analyst display. (e. the return value will be InvalidArgument. Limits True (-1): Checked False (0): Unchecked Remarks This reflects the pens visibility property directly.BlockColor End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewPenItem) // Getting property value INT blockColor = _ObjectGetProperty(hObjectViewItem.Items. Defined As [VBA] Boolean Checked [Cicode] INT Checked [C++] VARIANT_BOOL Checked Execution Result If the property get succeeds.Item(1) This will be a pen).g. VBA: objectView..Ch ecked [Property][Get/ Set] Gets or Sets whether or not this pen item is checked.Items. [VBA] Sub Example(objectViewPenItem As Object) Dim blockColor As Long ‘Getting Property value blockColor = objectViewPenItem. the return value will be Success. If the return variable is bad.g. VBA: ObjectView.Item(1).Item(1) This will be a pen).Items.

Items. END IObjectViewPenItem. (e.Items. It is visually emphasized by a vertical gradient fill.Selected End Sub [Cicode] FUNCTION Example(OBJECT hObjectViewPenItem) // Getting property value INT selected = _ObjectGetProperty(hObjectViewItem. "Selected"). END IPane Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IPanes . Limits True (-1): Selected False (0): Unselected Remarks Each Pane has one selected pen. "Checked"). VBA: objectView.132 [Cicode] FUNCTION Example(OBJECT hObjectViewPenItem) // Getting property value INT checked = _ObjectGetProperty(hObjectViewItem.Item(1) This will be a pen). Calling Syntax This example assumes there is a valid pen item as retrieved from an ObjectView. [VBA] Sub Example(objectViewPenItem As Object) Dim selected As Boolean ‘Getting Property value selected = objectViewPenItem. the return value will be Success.Sel ected [Property][Get] Gets whether or not this pen is the selected pen in its pane. // Setting property value _ObjectSetProperty(hObjectViewItem. If the return variable is bad.. 0).Item(1).g. "Checked". the return value will be InvalidArgument. Defined As [VBA] Boolean Selected [Cicode] INT Selected [C++] VARIANT_BOOL Selected Execution Result If the property get succeeds.

133

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.Delete [Method]

Removes this Pane from the collection and the display. Defined As [VBA] Delete() [Cicode] Delete() [C++] HRESULT Delete() 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.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.

134

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.
[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.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.

135

[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.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 [Cicode] FUNCTION Example(OBJECT hPane) // Getting property value STRING sName = _ObjectGetProperty(hPane, "Name"); // Setting property value _ObjectSetProperty(hPane, "Name", "Alarms"); END

136

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 INT nColor = _ObjectGetProperty(hPane, "BackgroundColor"); // Setting property value _ObjectSetProperty(hPane, "Name", 255); 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

137

Remarks When this property is true, the pane’s Height reflects the pixel value size as gotten from the Pane’s 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 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.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.

END IPanes Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IPanes Methods (2) IPanes. IPane** pane) Parameters name [in] The name to give to the pane (0-250 characters)._NewEnum [Property][Get] IPanes. the return value will be Success. the return value will be GeneralFailure. See Also IPanes Interface .RemoveAll [Method] Properties (4) IPanes.138 [VBA] Sub Example(pane As Object) Dim pens As Object ‘Getting Property value Set pens = pane. the return value will be InvalidArgument.Create [Method] IPanes.Pens End Sub [Cicode] FUNCTION Example(OBJECT hPane) // Getting property value OBJECT hPens = _ObjectGetProperty(hPane. If the panes collection is deleted.ItemByName [Property][Get] IPanes. "Pens").Item [Property][Get] IPanes. Remarks When this method succeeds it will return a reference to the new IPane object.Count [Property][Get] IPanes. Execution Result If the method succeeds.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. If a pane of the same name exists.

the return value will be GeneralFailure. [VBA] Sub Example(Panes As Object) Dim pane As Object Set pane = Panes. Defined As [VBA] Long Count [Cicode] INT Count [C++] int Count Execution Result If the property get succeeds. If the panes collection is deleted. Defined As [VBA] RemoveAll() [Cicode] RemoveAll() [C++] HRESULT RemoveAll() Execution Result If the method succeeds. . “RemoveAll”).RemoveAll [Method] Removes all Panes from this Pane collection.RemoveAll() End Sub [Cicode] FUNCTION Example(OBJECT hPanes) _ObjectCallMethod(hPanes. the return value will be GeneralFailure. “Alarm Pane”). END IPanes. Calling Syntax This example assumes there is a valid Panes collection object to be passed into the example methods. the return value will be Success. “Create”. the return value will be Success. [VBA] Sub Panes(Buttons As Object) Panes.Count [Property][Get] Gets the number of Panes in this collection. END IPanes.139 Calling Syntax This example assumes there is a valid Panes collection object to be passed into the example methods.Create(“Alarm Pane”) End Sub [Cicode] FUNCTION Example(OBJECT hPanes) OBJECT hPane = _ObjectCallMethod(hPanes. If the panes collection is deleted.

IPane* Item) Parameters index [in] Indicates the location of the Pane item to return from this collection.140 Calling Syntax This example assumes there is a valid Panes collection object to be passed into the example methods. See Also IPane Interface Calling Syntax This example assumes there is a valid Panes collection object to be passed into the example methods. If the index is out of range then the return value will be InvalidArgument. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index. (One based) Execution Result If the property get succeeds the return value will be Success. "Count"). END . "get_Item". If the panes collection is deleted the return value will be GeneralFailure. 1).Item(1) End Sub [Cicode] FUNCTION Example(OBJECT hPanes) // Getting property value OBJECT hPane = _ObjectCallMethod(hPanes. [VBA] Sub Example(Panes As Object) Dim count As Long ‘Getting Property value count = Panes.Item [Property][Get] Gets the Pane at the given index in this Pane collection. END IPanes. [VBA] Sub Example(Panes As Object) Dim pane As Object ‘Getting Property value Set pane = Panes.Count End Sub [Cicode] FUNCTION Example(OBJECT hPanes) // Getting property value INT nCount = _ObjectGetProperty(hPanes.

[VBA] Sub Example(Panes As Object) Dim pane As Object ‘Getting Property value Set pane = Panes. Defined As [VBA] ByName(name As String) as Object [Cicode] OBJECT ByName(STRING name) [C++] ByName(STRING name. "Alarm Pane"). Calling Syntax This example assumes there is a valid Panes collection object to be passed into the example methods.141 IPanes. Each. the return value will be Success. END . This property is not applicable to Cicode.ItemByName [Property][Get] Returns a reference to the pane object with the given name from this Panes collection.. Next integration in VB. If the panes collection is deleted. If the pane cannot be found. Execution Result If the property get succeeds. 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.ItemByName(“Alarm Pane”) End Sub [Cicode] FUNCTION Example(OBJECT hPanes) // Getting property value OBJECT hPane = _ObjectCallMethod(hPanes. "get_ItemByName". [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.. the return value will be InvalidArgument._NewEnum [Property][Get] This allows For. IPane* Item) Parameters name [in] Indicates the name of the Pane item to return from this collection.

HorizontalAxisWidth [Property][Get/Set] IPen.DataPoint [Property][Get/Set] IPen.GetInformation [Method] IPen.VerticalAxisColor [Property][Get/Set] IPen.GoToNow [Method] IPen.HorizontalAxisScroll [Property][Get/Set] IPen.RefreshData [Method] IPen.GetStatistic [Method] IPen.SetQualityCompactionPointType [Method] IPen.HorizontalGridlinesWidth [Property][Get/Set] IPen.TrendCursorLabelTextColor [Property][Get/Set] IPen.142 IPen Interface Methods IPen.SetVerticalAxisLabelValue [Method] IPen.LocalTime [Property][Get/Set] IPen.ResetToDefaultSpan [Method] IPen.RequestMode [Property][Get/Set] IPen.IsSelected [Property][Get] IPen.IsDeleted [Property][Get] IPen.SetQualityLineStyle [Method] IPen.SetDefaultSpan [Method] IPen.HorizontalGridlinesStyle [Property][Get/Set] IPen.AxisBackgroundColor [Property][Get/Set] IPen.HorizontalScrollBy [Method] IPen.Delete [Method] IPen.GetHorizontalAxisTimeSpan [Method] IPen.GetVerticalAxisSpan [Method] IPen.Name [Property][Get/Set] IPen.PutVerticalAxisSpan [Method] IPen.Select [Method] IPen.VerticalZoom [Method] Properties IPen.BlockRepaint [Property][Get/Set] IPen.TrendCursorLabelFillColor [Property][Get/Set] IPen.Stacked [Property][Get/Set] IPen.VerticalAxisLabelType [Property][Get/Set] .HorizontalMinorGridlinesStyle [Property][Get/Set] IPen.GetDefaultSpan [Method] IPen.VerticalAxisAutoscale [Property][Get/Set] IPen.Collection [Property][Get] IPen.AddSample IPen.PutHorizontalAxisTimeSpan [Method] IPen.PointsVisible [Property][Get/Set] IPen.HorizontalGridlinesColor [Property][Get/Set] IPen.HorizontalZoom [Method] IPen.VerticalScrollBy [Method] IPen.HorizontalAxisColor [Property][Get/Set] IPen.TrendCursorLabelLineColor [Property][Get/Set] IPen.Clear [Method] IPen.Height [Property][Get/Set] IPen.HorizontalAxisResize [Property][Get/Set] IPen.HorizontalMinorGridlinesColor [Property][Get/Set] IPen.DataServer [Property][Get/Set] IPen.

short milli.VerticalGridlinesStyle [Property][Get/Set] IPen. data refresh calls. INT qualityType. DATE timeStamp.143 IPen.VerticalMinorGridlinesStyle [Property][Get/Set] IPen. or automation. qualityType as Integer. DATE timeStamp.VerticalAxisResize [Property][Get/Set] IPen.VerticalGridlinesWidth [Property][Get/Set] IPen. If an argument is out of range. Remarks This function has limited use as the samples added are stored in a temporary cache. compactionType as Integer) [Cicode] AddSample(REAL value.AddSample Adds a temporary sample to a pen. INT compactionType) [C++] HRESULT AddSample(double value.VerticalMinorGridlinesColor [Property][Get/Set] IPen. milli as Integer. compactionType [in] Indicates what display type the sample will be represented as. See Also QualityType [Enumeration]. the return value will be GeneralFailure. You can only add samples to analog or digital pens. Execution Result If the function succeeds. QualityCompactionType compactionType) Parameters value [in] Indicates the value of the sample that will be added. If the pen is deleted. the return value will be InvalidArgument. timeStamp as Date. timeStamp [in] Indicates at what time the sample will occur in UTC time. qualityType [in] Indicates the quality of the sample that will be added. they can be cleared anytime by time span changes. milli [in] Indicates the millisecond component of the time stamp (0 to 999). the return value will be GeneralFailure.VerticalAxisWidth [Property][Get/Set] IPen.Visible [Property][Get/Set] IPen. If an argument is bad. QualityCompactionType [Enumeration] Calling Syntax . the return value will be InvalidArgument. the return value will be Success.VerticalGridlinesColor [Property][Get/Set] IPen.VerticalAxisScroll [Property][Get/Set] IPen. If any other unexpected error occurs. QualityType qualityType. INT milli. Defined As [VBA] AddSample(value As Double.

iCitectTime = TimeCurrent(). 0 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT iCitectTime.0. // Convert to OLE UTC time _ObjectCallMethod(hPen. 0. // Returns seconds since 1970 rOleTime = TimeToOleDate(iCitectTime. 100. "AddSample". 1).AddSample 75.Delete [Method] Deletes the pen from the Process Analyst. [VBA] Sub Example(pen As Object) pen. [VBA] Sub Example(pen As Object) Dim timeStamp As Date timestamp = Now pen. END IPen. (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. Defined As [VBA] Delete() [Cicode] Delete() [C++] HRESULT Delete() Execution Result . 0).0. 0.Clear End Sub [Cicode] FUNCTION Example(OBJECT hPen) _ObjectCallMethod(hPen. Calling Syntax Assumes you have passed a valid pen object into the function. timeStamp. “Clear”). timeStamp. END IPen.Clear [Method] Clears all samples belonging to this pen from the internal cache. REAL rOleTime.144 Assumes you have passed a valid pen object into the function. 75. 100. If the pen is deleted then the return value will be GeneralFailure.

[VBA] Sub Example(pen As Object) pen. INT milliseconds) [C++] HRESULT GetDefaultSpan (short* weeks. Defined As [VBA] GetDefaultSpan(weeks As Integer. The pen will be removed from the display immediately after making this call. If the pen is already deleted. hours [out] Indicates the number of hours in the span. days As Integer. minutes As Integer. short* hours. the return value will be GeneralFailure. INT seconds. short* seconds. DATE hours. the return value will be Success. minutes [out] Indicates the number of minutes in the span. hours As Integer. seconds As Integer. Remarks Calling this method will mark the pen for deletion.GetDefaultSpan [Method] Returns the default time span for this pen as a series of time components.145 If the function succeeds. seconds [out] Indicates the number of seconds in the span. Execution Result . short* days. INT minutes.IsDeleted [Property][Get] Calling Syntax Assumes you have passed a valid pen object into the function. END IPen. milliseconds As Integer) [Cicode] GetDefaultSpan (INT weeks. “Delete”). days [out] Indicates the number of days in the span.Delete End Sub [Cicode] FUNCTION Example(OBJECT hPen) _ObjectCallMethod(hPen. short* minutes. See Also IPen. meaning any further calls to methods or properties on the pen will result in a GeneralFailure error. short* milliseconds) Parameters weeks [out] Indicates the number of weeks in the span. milliseconds [out] Indicates the number of milliseconds in the span. INT days.

INT minutes. seconds. hours.SetDefaultSpan [Method]. “GetDefaultSpan”. INT hours. seconds. the return value will be GeneralFailure. short* startMs. See Also IPen. short* endMs. days.GetHorizontalAxis TimeSpan [Method] Returns the start and end time of this pen in local or UTC time format. DATE* endTime. VARIANT_BOOL localTime) Parameters startTime [out] This will contain the beginning date and time without milliseconds of the time span.ResetToDefaultSpan [Method] Calling Syntax Assumes you have passed a valid pen object into the function. If any other unexpected error occurs. If the pen is deleted. weeks. the return value will be GeneralFailure. endMs as Integer. INT milliseconds. hours. [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. minutes. If an argument is bad. INT endMs. endTime . INT seconds.GetDefaultSpan weeks. INT days. INT localTime) [C++] HRESULT GetHorizontalAxisTimeSpan (DATE* startTime. milliseconds). localTime as Boolean) [Cicode] GetHorizontalAxisTimeSpan (REAL startTime. the return value will be InvalidArgument. END IPen. IPen. milliseconds End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT weeks. REAL endTime.146 If the function succeeds. minutes. _ObjectCallMethod(hPen. the return value will be Success. Defined As [VBA] GetHorizontalAxisTimeSpan(startTime As Date. endTime as Date. startMs [out] This will contain the milliseconds component of the start time. INT startMs. days. startMs as Integer.

endDate. False (0) = UTC. endDate. -1). Defined As [VBA] GetInformation(name As String) As String [Cicode] STRING GetInformation(STRING name) [C++] HRESULT GetDefaultSpan (BSTR name. startMs.of the time span. See Remarks below for supported attributes. If any other unexpected error occurs. the return value will be InvalidArgument. INT startMs. localTime [in] Indicates whether the times returned are in local time or UTC. INT endMs. True = 1. END IPen. startMs. [VBA] Sub Example(pen As Object) Dim startDate As Date Dim endDate As Date Dim startMs As Integer Dim endMs As Integer pen. True End Sub [Cicode] FUNCTION Example(OBJECT hPen) REAL startDate. If an argument is bad. . BSTR* value) Parameters name [in] Specify the pen information attribute you want to get the value for. If the pen is deleted. endMs. See Also IPen. the return value will be Success. “GetHorizontalAxisTimeSpan”.PutHorizontalAxisTimeSpan [Method] Calling Syntax Assumes you have passed a valid pen object into the function. REAL endDate. the return value will be GeneralFailure. _ObjectCallMethod(hPen. Execution Result If the function succeeds. startDate.GetHorizontalAxisTimeSpan startDate. endMs [out] This will contain the milliseconds component of the end time.GetInformation [Method] Returns information associated with this pen.147 [out] This will contain the end date and time without milliseconds. endMs. the return value will be GeneralFailure.

"Duration"). the return value will be InvalidArgument. Digital Analog. Execution Result If the function succeeds. duration = _ObjectCallMethod(hPen. Digital Analog Analog. Digital Analog. Digital All Analog. the return value will be GeneralFailure. the return value will be GeneralFailure.148 value [out] Indicates the value of the specified information attribute. Information Attributes Attribute Alarm Area Alarm Category Alarm Desc Alarm Name Alarm Type Comment Duration End Time Engineering Full Scale Engineering Units Engineering Zero Scale Error Full Scale Name Raw Full Scale Raw Zero Scale Sample Period Start Time Tag Trend Type Zero Scale Scale Engineering Scale Returns Alarm tag field Alarm tag field Alarm tag field Alarm tag field Alarm tag field Alarm/Trend tag comment field Process Analyst time span Process Analyst axis end time Trend tag field Trend tag field Trend tag field Process Analyst error status Process Analyst vertical axis max scale Process Analyst pen name Trend tag field Trend tag field Trend tag field Process Analyst axis start time Process Analyst source binding field Trend tag field Process Analyst vertical axis min scale Process Analyst vertical axis scale range Engineering scale range Applies to Alarm Alarm Alarm Alarm Alarm All All All Analog. the return value will be InvalidArgument. Digital Analog.GetInformation "Duration" End Sub [Cicode] FUNCTION Example(OBJECT hPen) STRING duration. "GetInformation". END . Digital Analog. [VBA] Sub Example(pen As Object) Dim duration As String duration = pen. the return value will be Success. Digital Analog. Digita Calling Syntax Assumes you have passed a valid pen object into the function. If the pen is deleted. If any other unexpected error occurs. If an argument is bad. All Analog. Digital All All Analog. If the attribute does not exist.

GetStatistic [Method] Returns the result of a specified Process Analyst statistical operation. the return value will be GeneralFailure. the return value will be InvalidArgument. See Remarks below for supported attributes. Digital Analog Analog Calling Syntax Assumes you have passed a valid pen object into the function.GetStatistic “Average”. value [out] Indicates the value of the specified statistic attribute. average). Execution Result If the function succeeds. the return value will be Success. endValue As Double) [Cicode] GetVerticalAxisSpan (REAL startValue.149 IPen. If an argument is bad. _ObjectCallMethod(hPen. “GetStastic”. STRING value) [C++] HRESULT GetStatistic(BSTR name. END IPen. If the attribute does not exist. the return value will be InvalidArgument. Information Attributes Attribute Average Maximum Minimum Returns Process Analyst real-time average Process Analyst real-time maximum Process Analyst real-time minimum Applies to Analog. If the pen is deleted. [VBA] Sub Example(pen As Object) Dim average As String pen. Defined As [VBA] GetStatistic(name As String.GetVerticalAxisSp an [Method] Returns the current span of the pens’ vertical axis. double* endValue) . If any other unexpected error occurs. the return value will be GeneralFailure. value As String) [Cicode] GetStatistic(STRING name. BSTR* value) Parameters name [in] Specify the statistic attribute you want to get the value for. REAL endValue) [C++] HRESULT GetVerticalAxisSpan (double* startValue. “Average”. Defined As [VBA] GetVerticalAxisSpan(startValue As Double. average End Sub [Cicode] FUNCTION Example(OBJECT hPen) STRING average.

END IPen.150 Parameters startValue [out] The current lower bound of the vertical axis. startValue. the return value will be GeneralFailure. If any other unexpected error occurs. the return value will be GeneralFailure. endValue [out] The current upper bound of the vertical axis.GetVerticalAxisSpan startValue. _ObjectCallMethod(hPen. If an argument is bad.GoToNow [Method] Synchronizes the end time of the pen’s span with your computer’s current local time. the return value will be Success. Execution Result If the function succeeds. the return value will be GeneralFailure. the return value will be InvalidArgument. If the pen is deleted. [VBA] Sub Example(pen As Object) Dim startValue As Double Dim endValue As Double pen. endValue End Sub [Cicode] FUNCTION Example(OBJECT hPen) REAL startValue. The start time will also be moved to maintain the pen’s current time span. If the pen is deleted.PutVerticalAxisSpan [Method] Calling Syntax Assumes you have passed a valid pen object into the function. Calling Syntax Assumes you have passed a valid pen object into the function. REAL endValue. the return value will be Success. See Also IPen. Defined As [VBA] GoToNow() [Cicode] GoToNow() [C++] HRESULT GoToNow() Execution Result If the function succeeds. endValue). [VBA] Sub Example(pen As Object) pen. “GetVerticalAxisSpan”.GoToNow End Sub .

Defined As [VBA] HorizontalScrollBy(factor As Double) [Cicode] HorizontalScrollBy(REAL factor) [C++] HRESULT HorizontalScrollBy(double factor) Parameters factor [in] Controls the direction and amount the axis will be scrolled. the return value will be Success. -1. a positive value will move the axis forward in time. “HorizontalScrollby”.0). If the argument is bad. END IPen.HorizontalScrollBy [Method] Scrolls the horizontal axis by the specified factor. and you specify a factor of 0. Defined As [VBA] HorizontalZoom(factor As Double) [Cicode] HorizontalZoom(REAL factor) [C++] HRESULT HorizontalZoom(double factor) Parameters factor . “GoToNow”).5. The value is a percentage representing the current viewable span. the return value will be GeneralFailure.HorizontalZoom [Method] Zooms centrally into the time span by the given factor. END IPen.VerticalScrollBy [Method] Calling Syntax Assumes you have passed a valid pen object into the function. A negative value will move the axis back in time. the return value will be InvalidArgument. See Also IPen. Execution Result If the function succeeds. So if the pen span is 1 hour. you will move the time span 30 minutes into the future. If the pen is deleted.151 [Cicode] FUNCTION Example(OBJECT hPen) _ObjectCallMethod(hPen.0 End Sub [Cicode] FUNCTION Example(OBJECT hPen) // Move the pen span back one complete span into history _ObjectCallMethod(hPen.HorizontalScrollBy -1. [VBA] Sub Example(pen As Object) ‘ Move the pen span back one complete span into history pen.

152

[in] Controls the direction and amount the axis will be zoomed. Acceptable zoom values are 0 to 1 (Zoom out) and > 1 (zoom 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 ‘ Undo the Zoom pen.HorizontalZoom 1.5 End Sub [Cicode] FUNCTION Example(OBJECT hPen) // Zoom out 50% _ObjectCallMethod(hPen, “HorizontalZoom”, 0.5); // Undo the Zoom _ObjectCallMethod(hPen, “HorizontalZoom”, 2.0); 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

153

Assumes you have passed a valid pen object into the function.
[VBA] Sub Example(pen As Object) Dim visible As Boolean ‘Getting Property value visible = pen.PointsVisible ‘Setting Property value pen.PointsVisible = True End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT visible; // Getting current property value visible = _ObjectGetProperty(hPen, "PointsVisible"); // Setting Property value _ObjectSetProperty(hPen, "PointsVisible", -1); END

IPen.PutHorizontalAxis TimeSpan [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 [in] Indicates the beginning date and time without milliseconds of the time span in UTC format. startMs [in] Indicates the milliseconds component of the start time. endTime [in] Indicates the end date and time without milliseconds of the time span in UTC format. endMs [in] This will contain the milliseconds component of the end time.

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.

154

Remarks The Process Analyst only supports setting its axis in UTC (Universal Coordinated 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.PutVerticalAxisSp an [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 [in] Indicates the new lower bound of the vertical axis. endValue

155

[in] Indicates the new upper bound of the vertical axis.

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.
[VBA] Sub Example(pen As Object) pen.RefreshData End Sub [Cicode] FUNCTION Example(OBJECT hPen) _ObjectCallMethod(hPen, “RefreshData”); END

156

IPen.ResetToDefaultSp an [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. 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

IPen. seconds [in] Indicates the number of seconds in the span. 0. INT days. If the pen is deleted then the return value will be GeneralFailure. “Select”). 2. END IPen. INT milliseconds) [C++] HRESULT SetDefaultSpan (short weeks. DATE hours. Execution Result If the function succeeds the return value will be Success. milliseconds [in] Indicates the number of milliseconds in the span. INT minutes. short days. Defined As [VBA] SetDefaultSpan(weeks As Integer. milliseconds As Integer) [Cicode] SetDefaultSpan (INT weeks. See Also IPen. [VBA] Sub Example(pen As Object) ‘ Set span to 2 hours and 30 minutes pen. seconds As Integer. hours [in] Indicates the number of hours in the span. days As Integer. short seconds. 30.GetDefaultSpan [Method]. 0 End Sub . days [in] Indicates the number of days in the span.GetDefaultSpan 0. short minutes. hours As Integer. short hours. 0. If an argument is bad then the return value will be InvalidArgument. minutes As Integer.SetDefaultSpan [Method] Sets the default time span for this pen. INT seconds. minutes [in] Indicates the number of minutes in the span.ResetToDefaultSpan [Method] Calling Syntax Assumes you have passed a valid pen object into the function.157 [Cicode] FUNCTION Example(OBJECT hPen) _ObjectCallMethod(hPen. short milliseconds) Parameters weeks [in] Indicates the number of weeks in the span.

pointType As Integer) [Cicode] SetQualityCompactionPointType(INT compactionType. END IPen. 2. PointType [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function.SetQualityCompactionPointType 0. If an argument is bad. See Also QualityCompactionType [Enumeration]. Defined As [VBA] SetQualityCompactionPointType(compactionType As Integer. 0. the return value will be InvalidArgument. 0.SetQualityLineStyl e [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. END IPen. 5 End Sub [Cicode] FUNCTION Example(OBJECT hPen) // Set single samples to look like triangles _ObjectCallMethod(hPen.SetQualityCompac tionPointType [Method] Use this function to indicate what visual cue to display for single and multiple samples. Execution Result If the function succeeds the return value will be Success. 0). 5). 30. the return value will be InvalidArgument. 0. INT pointType) [C++] HRESULT SetQualityCompactionPointType(QualityCompactionType compactionType. pointType [in] Indicates which visual cue to use for the selected compaction type. PointType pointType) Parameters compactionType [in] Indicates which sample compaction type you want to set the visual cue for. 0. the return value will be GeneralFailure. “SetDefaultSpan”. Defined As . If the pen is deleted. If an argument is out of range. "SetQualityCompactionPointType".158 [Cicode] FUNCTION Example(OBJECT hPen) // Set span to 2 hours and 30 minutes _ObjectCallMethod(hPen. [VBA] Sub Example(pen As Object) ‘ Set single samples to lsook like triangles pen.

159

[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 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.SetVerticalAxisLab elValue [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] Indicates which value you want to replace with a custom label.

160

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.
[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.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 [in] 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). 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.

161

[VBA] Sub Example(pen As Object) ‘ Move the pen span forward one complete span pen.VerticalScrollBy 1.0 End Sub [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 [in] Controls the direction and amount the axis will be zoomed. Acceptable zoom values are 0 to 1 (Zoom out) and > 1 (zoom 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

162

IPen.AxisBackgroundC olor [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 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

163

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.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

DataPoint ‘Setting Property value pen.DataPoint = “LOOP_1_PV” End Sub [Cicode] FUNCTION Example(OBJECT hPen) STRING tag. the return value will be Success. See Also IPen.DataServer [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. A request for the tag’s information will also be issued. “DataPoint”). // Setting Property _ObjectSetProperty(hPen. // Getting current property value tag = _ObjectGetProperty(hPen. [VBA] Sub Example(pen As Object) Dim tag As String ‘Getting Property value tag = pen. Remarks This property works in conjunction with the DataServer property. If the pen is deleted. “DataPoint”. the return value will be GeneralFailure. Changing the DataPoint property will result in the data cache being cleared and a new data request issued. END IPen. // Getting current property value pens = _ObjectGetProperty(hPen. This property can be changed during the lifetime of the pen. the return value will be InvalidArgument. If the tag is greater than 79 characters.DataServer [Property][Get/Set] Get or Set the server that this pen is bound to.164 [Cicode] FUNCTION Example(OBJECT hPen) OBJECT pens. If the return variable is bad. Defined As [VBA] String DataServer .DataPoint [Property][Get/Set] Get or Set the trend/alarm tag which this pen is bound to. Defined As [VBA] String DataPoint [Cicode] STRING DataPoint [C++] BSTR DataPoint Execution Result If the property get/set succeeds. END IPen. “LOOP_1_PV”). the return value will be InvalidArgument. “Collection”).

the return value will be InvalidArgument.DataServer ‘Setting Property value pen. If the server connection cannot be found.DataPoint = “localhost” End Sub [Cicode] FUNCTION Example(OBJECT hPen) STRING server.Height [Property][Get/Set] Get or Set the physical height in pixels that the pen will allocate for itself when displayed in Stacked mode. “localhost”). END IPen. “DataServer”. This property works in conjunction with the DataPoint property. “localhost” and “” (empty string). If height set is out of . If the return variable is bad.DataPoint [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. the return value will be InvalidArgument. // Getting current property value server = _ObjectGetProperty(hPen. This property can be changed during the lifetime of the pen. the return value will be Success. “DataServer”). // Setting Property _ObjectSetProperty(hPen. which indicates an unbound connection. See Also IPen. [VBA] Sub Example(pen As Object) Dim server As String ‘Getting Property value server = pen. Local host means the pen will use the local Vijeo Citect client to source data from the Vijeo Citect trend/alarm servers. 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. Remarks This property currently only supports two options. If the pen is deleted. If the return variable is bad. the return value will be GeneralFailure. the return value will be InvalidArgument.165 [Cicode] STRING DataServer [C++] BSTR DataServer Execution Result If the property get/set succeeds.

Remarks To calculate the integer value required for a color apply the following formula: (65536 * Blue) + (256 * Green) + (Red) where Red. 75). // Setting Property _ObjectSetProperty(hPen. . See Also IPen. See Also IPen. the return value will be InvalidArgument. "Height").HorizontalAxisCol or [Property][Get/Set] Gets or sets the color used to draw the line. "Height". [VBA] Sub Example(pen As Object) Dim height As Boolean `Getting Property value height = pen. If the pen is deleted. labels. If the return variable is bad. Remarks This property is ignored when the pen is not in Stacked mode.Height `Setting Property value pen. and interval markers of the horizontal axis of this pen. the return value will be InvalidArgument. the return value will be Success. the return value will be GeneralFailure.166 range (16 – 1000). and Blue are 0-255. the return value will be GeneralFailure. Green.Height = 75 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT height. // Getting current property value height = _ObjectGetProperty(hPen.VerticalAxisColor [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. If the pen is deleted. Defined As [VBA] Long HorizontalAxisColor [Cicode] INT HorizontalAxisColor [C++] OLE_COLOR HorizontalAxisColor Execution Result If the property get/set succeeds. END IPen.Stacked [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function.

If the pen is deleted. “HorizontalAxisColor”). // Getting current property value . Limits True (-1): Axis can be resized False (0): Axis cannot be resized See Also IPen.HorizontalAxisResize = False End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bResize.HorizontalAxisResize ‘Setting Property value pen. If the return variable is bad. the return value will be InvalidArgument. “HorizontalAxisColor”.167 [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. PackedRGB(255.VerticalAxisResize [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. 0. [VBA] Sub Example(pen As Object) Dim resize As Boolean ‘Getting Property value resize = pen. END IPen. the return value will be Success. 0)). // Getting current property value color = _ObjectGetProperty(hPen. the return value will be GeneralFailure.HorizontalAxisColor ‘Setting Property value to Red pen.HorizontalAxisResi ze [Property][Get/Set] Gets or sets whether this pen allows the operator to interactively scale the horizontal axis using the mouse. // Setting Property to Red _ObjectSetProperty(hPen. Defined As [VBA] Boolean HorizontalAxisResize [Cicode] INT HorizontalAxisResize [C++] VARIANT_BOOL HorizontalAxisResize Execution Result If the property get/set succeeds.HorizontalAxisColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color.

END IPen. “HorizontalAxisScroll”. If the pen is deleted then the return value will be GeneralFailure. Limits True (-1): Axis can be scrolled False (0): Axis cannot be scrolled See Also IPen. // Setting Property _ObjectSetProperty(hPen. “HorizontalAxisResize”.HorizontalAxisScroll ‘Setting Property value pen.0). “HorizontalAxisScroll”).HorizontalAxisScroll = False End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bScroll.168 bResize = _ObjectGetProperty(hPen.HorizontalAxisScr oll [Property][Get/Set] Gets or sets whether this pen allows the operator to interactively scroll the horizontal axis using the mouse. [VBA] Sub Example(pen As Object) Dim scroll As Boolean ‘Getting Property value scroll = pen.VerticalAxisScroll [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. // Getting current property value bScroll = _ObjectGetProperty(hPen. END IPen.HorizontalAxisWid th [Property][Get/Set] Gets or sets the width of the horizontal axis line and the associated interval markers. “HorizontalAxisResize”). // Setting Property _ObjectSetProperty(hPen. 0). If the return variable is bad then the return value will be InvalidArgument. 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. Defined As [VBA] Integer HorizontalAxisWidth [Cicode] INT HorizontalAxisWidth [C++] short HorizontalAxisWidth .

VerticalAxisWidth [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. If the return variable is bad.HorizontalAxisWidth ‘Setting Property value pen. Where Red. If the pen is deleted. // Getting current property value width = _ObjectGetProperty(hPen. END IPen. See Also IPen. the return value will be InvalidArgument. the return value will be GeneralFailure. If the pen is deleted. “HorizontalAxisWidth”). the return value will be Success. Limits A valid width is 0-8 pixels. Green and Blue are 0-255 See Also IPen. Remarks To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). // Setting Property _ObjectSetProperty(hPen.HorizontalGridline sColor [Property][Get/ Set] Gets or sets the color used to draw the major horizontal gridlines. 3). “HorizontalAxisWidth”. [VBA] Sub Example(pen As Object) Dim width As Integer ‘Getting Property value width = pen. the return value will be InvalidArgument. Defined As [VBA] Long HorizontalGridlinesColor [Cicode] INT HorizontalGridlinesColor [C++] OLE_COLOR HorizontalGridlinesColor Execution Result If the property get/set succeeds.HorizontalAxisWidth = 3 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT width. the return value will be Success.169 Execution Result If the property get/set succeeds.HorizontalMinorGridlinesColor [Property][Get/Set] Calling Syntax . the return value will be GeneralFailure. If the return variable is bad. Limits A valid width is 0-8 pixels.

HorizontalGridlinesColor = 2 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT style.HorizontalGridlinesColor ‘Setting Property value to Red pen. . the return value will be InvalidArgument.HorizontalMinorGridlinesColor [Property][Get/Set]. “HorizontalGridlinesStyle”). the return value will be GeneralFailure. // Getting current property value style = _ObjectGetProperty(hPen. See Also IPen. // Getting current property value color = _ObjectGetProperty(hPen.HorizontalGridline sStyle [Property][Get/ Set] Gets or sets the line style used to draw the major horizontal gridlines. the return value will be Success. PackedRGB(255.170 Assumes you have passed a valid pen object into the function. Defined As [VBA] Long HorizontalGridlinesStyle [Cicode] INT HorizontalGridlinesStyle [C++] LineStyle HorizontalGridlinesStyle Execution Result If the property get/set succeeds. “HorizontalGridlinesColor”).HorizontalGridlinesColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color. If the pen is deleted. END IPen. the return value will be InvalidArgument. “HorizontalGridlinesColor”. 0. If the style is out of range. // Setting Property to Red _ObjectSetProperty(hPen. [VBA] Sub Example(pen As Object) Dim style As Long ‘Getting Property value style = pen.HorizontalGridlinesStyle ‘Setting Property value to Dot pen. 0)). LineStyle [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function. If the return variable is bad. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen.

the return value will be GeneralFailure.HorizontalGridlinesWidth = 3 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT width. “HorizontalGridlinesStyle”. If the pen is deleted. [VBA] Sub Example(pen As Object) Dim width As Integer ‘Getting Property value width = pen. Remarks . the return value will be GeneralFailure. the return value will be Success. Calling Syntax Assumes you have passed a valid pen object into the function. “HorizontalGridlinesWidth”).171 // Setting Property to Dot _ObjectSetProperty(hPen. If the width is out of range. the return value will be InvalidArgument. the return value will be InvalidArgument.HorizontalMinorGri dlinesColor [Property][Get/Set] Gets or sets the color used to draw the minor horizontal gridlines. “HorizontalGridlinesWidth”. Defined As [VBA] Long HorizontalMinorGridlinesColor [Cicode] INT HorizontalMinorGridlinesColor [C++] OLE_COLOR HorizontalMinorGridlinesColor Execution Result If the property get/set succeeds. Defined As [VBA] Integer HorizontalGridlinesWidth [Cicode] INT HorizontalGridlinesWidth [C++] short HorizontalGridlinesWidth Execution Result If the property get/set succeeds.HorizontalGridlinesWidth ‘Setting Property value pen. END IPen.HorizontalGridline sWidth [Property][Get/ Set] Gets or sets the line width used when drawing the major horizontal gridlines. // Getting current property value width = _ObjectGetProperty(hPen. the return value will be InvalidArgument. 2). // Setting Property t _ObjectSetProperty(hPen. If the return variable is bad. If the return variable is bad. END IPen. If the pen is deleted. 3). the return value will be Success.

Defined As [VBA] Long HorizontalMinorGridlinesStyle [Cicode] INT HorizontalMinorGridlinesStyle [C++] LineStyle HorizontalMinorGridlinesStyle Execution Result If the property get/set succeeds. “HorizontalMinorGridlinesColor”. Green. PackedRGB(255.HorizontalMinorGridlinesColor ‘Setting Property value to Red pen. // Getting current property value color = _ObjectGetProperty(hPen.HorizontalGridlinesColor [Property][Get/Set] 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. the return value will be InvalidArgument.172 To calculate the integer value required for a color apply the following formula: (65536 * Blue) + (256 * Green) + (Red) where Red. the return value will be Success.HorizontalMinorGri dlinesStyle [Property][Get/Set] Gets or sets the line style used to draw the minor horizontal gridlines. If the return variable is bad. See Also IPen. “HorizontalMinorGridlinesColor”).HorizontalGridlinesStyle [Property][Get/Set]. LineStyle [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function. 0. and Blue are 0-255. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. END IPen. If the style is out of range.HorizontalMinorGridlinesColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color. the return value will be InvalidArgument.HorizontalMinorGridlinesStyle . // Setting Property to Red _ObjectSetProperty(hPen. 0)). the return value will be GeneralFailure. See Also IPen. If the pen is deleted.

173 ‘Setting Property value to Dot pen. If the return variable is bad. // Getting current property value style = _ObjectGetProperty(hPen. END IPen. the return value will be Success. END IPen.IsDeleted End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bDeleted. See Also IPen.IsDeleted [Property][Get] Returns whether this pen has been marked for deletion. . “IsDeleted”). That is. the return value will be InvalidArgument. Defined As [VBA] Boolean IsDeleted [Cicode] INT IsDeleted [C++] VARIANT_BOOL IsDeleted Execution Result If the property get succeeds. Defined As [VBA] Boolean IsSelected [Cicode] INT IsSelected [C++] VARIANT_BOOL IsSelected Execution Result If the property get succeeds.IsSelected [Property][Get] Returns whether this pen has been selected in the Process Analyst. “HorizontalMinorGridlinesStyle”. whether someone has called the Delete method on it or deleted it from the display. the return value will be Success. // Setting Property to Dot _ObjectSetProperty(hPen. bDeleted = _ObjectGetProperty(hPen.Delete [Method] Calling Syntax Assumes you have passed a valid pen object into the function.HorizontalMinorGridlinesColor = 2 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT style. the return value will be InvalidArgument. 2). [VBA] Sub Example(pen As Object) Dim deleted As Boolean deleted = pen. “HorizontalMinorGridlinesStyle”). If the return variable is bad.

LocalTime ‘Display time in UTC pen.IsSelected End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bSelected.Select [Method] Calling Syntax Assumes you have passed a valid pen object into the function. bSelected = _ObjectGetProperty(hPen. the return value will be GeneralFailure. “LocalTime”). END IPen. . // Getting current property value bLocalTime = _ObjectGetProperty(hPen. the return value will be InvalidArgument. Limits True (-1): Local format False (0): UTC format Calling Syntax Assumes you have passed a valid pen object into the function.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).174 See Also IPen. 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.LocalTime = False End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bLocalTime. If the pen is deleted. If the return variable is bad. “IsSelected”). [VBA] Sub Example(pen As Object) Dim selected As Boolean selected = pen. [VBA] Sub Example(pen As Object) Dim localTime As Boolean ‘Getting Property value localTime = pen.

Name [Property][Get/Set] Get or Set the name of this pen. 0). If the length of the name is wrong then the return value will be InvalidArgument. END IPen. END IPen.RequestMode [Property][Get/Set] Get or Set how multiple samples will be calculated on the server.175 // Display time in UTC _ObjectSetProperty(hPen. // Setting property value _ObjectSetProperty(hPen. “NicePen”). the return value will be InvalidArgument. The name of the pen does not have to be unique. “Name”). If the pen is deleted then the return value will be GeneralFailure. Defined As [VBA] String Name [Cicode] STRING Name [C++] BSTR Name Execution Result If the property get/set succeeds.Name ‘Setting property value pen. Defined As [VBA] Integer RequestMode [Cicode] INT RequestMode [C++] RequestMode RequestMode . the return value will be Success. Remarks The Process Analyst will use this name extensively throughout the user interface to reference this pen. Calling Syntax Assumes you have passed a valid pen object into the function. If the return variable is bad. [VBA] Sub Example(pen As Object) Dim name As String ‘Getting Property value name = pen. but it must be between 1 and 250 character long.Name = “NicePen” End Sub [Cicode] FUNCTION Example(OBJECT hPen) STRING name. “Name”. // Getting current property value name = _ObjectGetProperty(hPen. “LocalTime”.

the return value will be GeneralFailure. the return value will be InvalidArgument. Remarks When the pen makes a request for data and samples need to be compacted. // Setting mode to minimum _ObjectSetProperty(hPen.RequestMode ‘Setting mode to minimum pen. the return value will be Success.RequestMode = 1 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT requestMode. If the pen is deleted.176 Execution Result If the property get/set succeeds. the return value will be GeneralFailure. it will use this mode to determine how the compaction will occur. // Getting current property value requestMode = _ObjectGetProperty(hPen. the return value will be InvalidArgument. [VBA] Sub Example(pen As Object) Dim requestMode As Integer ‘Getting Property value requestMode = pen. If the return variable is bad. If the pen is deleted. Changing this mode will clear the data cache and issue a new request for data.Stacked [Property][Get/Set] Get or Set whether the pen is visually displayed stacked or overlaid. “RequestMode”). If the return variable is bad. END IPen. Limits True (-1): Stacked False (0): Overlaid Remarks . If the mode is out of range. Defined As [VBA] Boolean Stacked [Cicode] INT Stacked [C++] VARIANT_BOOL Stacked Execution Result If the property get/set succeeds. “RequestMode”. See Also RequestMode [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function. the return value will be InvalidArgument. the return value will be Success. 1).

If the return variable is bad then the return value will be InvalidArgument. -1). Calling Syntax Assumes you have passed a valid pen object into the function. TrendCursorLabelFillColor = 255 End Sub .177 When stacked. Green and Blue are 0-255. [VBA] Sub Example(pen As Object) Dim stacked As Boolean ‘Getting Property value stacked = pen. END IPen. 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.TrendCursorLabel FillColor [Property][Get/ Set] Gets or sets the fill color used for any cursor label associated with this pen. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. 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. “Stacked”). // Getting current property value bStacked = _ObjectGetProperty(hPen. // Setting property value _ObjectSetProperty(hPen.Stacked = True End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bStacked. Remarks To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). when overlaid. the pens will be drawn over the top of each other. TrendCursorLabelFillColor ‘Setting Property value to Red pen. Where Red. pens will be drawn under each other. “Stacked”.Stacked ‘Setting Property value pen.

// Setting Property to Red _ObjectSetProperty(hPen. PackedRGB(255. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen.TrendCursorLabel LineColor [Property][Get/Set] Gets or sets the border color used for any cursor label associated with this pen. TrendCursorLabelLineColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color. Where Red.178 [Cicode] FUNCTION Example(OBJECT hPen) INT color. 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. PackedRGB(255. “TrendCursorLabelLineColor”). // Setting Property to Red _ObjectSetProperty(hPen. END IPen. 0. “TrendCursorLabelFillColor”.TrendCursorLabel TextColor [Property][Get/Set] Gets or sets the text color used for any cursor label associated with this pen. 0. 0)). // Getting current property value color = _ObjectGetProperty(hPen. TrendCursorLabelLineColor ‘Setting Property value to Red pen. 0)). Green and Blue are 0-255. “TrendCursorLabelFillColor”). “TrendCursorLabelLineColor”. If the return variable is bad then the return value will be InvalidArgument. Remarks To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). // Getting current property value color = _ObjectGetProperty(hPen. Defined As [VBA] Long TrendCursorLabelTextColor [Cicode] INT TrendCursorLabelTextColor . Calling Syntax Assumes you have passed a valid pen object into the function. END IPen. If the pen is deleted then the return value will be GeneralFailure.

0)). “TrendCursorLabelTextColor”). Remarks Setting this property will turn off interactive Scrolling (IPen. Where Red. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. 0. If the return variable is bad then the return value will be InvalidArgument. TrendCursorLabelTextColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color.VerticalAxisAutosc ale [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.HorizontalAxisScroll) and Scaling (IPen. Remarks To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). // Getting current property value color = _ObjectGetProperty(hPen. “TrendCursorLabelTextColor”. If the pen is deleted then the return value will be GeneralFailure. PackedRGB(255. If the pen is deleted then the return value will be GeneralFailure.HorizontalAxisResize). Green and Blue are 0-255.179 [C++] OLE_COLOR TrendCursorLabelTextColor Execution Result If the property get/set succeeds the return value will be Success. END IPen. Calling Syntax Assumes you have passed a valid pen object into the function. TrendCursorLabelTextColor ‘Setting Property value to Red pen. // Setting Property to Red _ObjectSetProperty(hPen. If the return variable is bad then the return value will be InvalidArgument. 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. Limits True (-1): Autoscale enabled .

VerticalAxisColor [Property][Get/Set] Gets or sets the color used to draw the line. Green and Blue are 0-255. // Getting current property value autoScale = _ObjectGetProperty(hPen. “VerticalAxisAutoscale”).VerticalAxisColor ‘Setting Property value to Red pen.VerticalAxisColor = 255 End Sub . “VerticalAxisAutoscale”. VerticalAxisAutoscale = True End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT autoScale. 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. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. See Also IPen. labels and interval markers of the vertical axis of this pen. -1). VerticalAxisAutoscale ‘Setting Property value pen.HorizontalAxisColor [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. Remarks To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red). END IPen. // Setting Property _ObjectSetProperty(hPen.180 False (0): Autoscale disabled Calling Syntax Assumes you have passed a valid pen object into the function. If the pen is deleted then the return value will be GeneralFailure. Where Red. [VBA] Sub Example(pen As Object) Dim autoScale As Long ‘Getting Property value autoScale = pen.

VerticalAxisLabelType= 3 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT labelType. PackedRGB(255. Remarks Label Types are fixed and cannot be added to. // Setting Property to Red _ObjectSetProperty(hPen. This allows numbers on the axis to display with their unit. Defined As . For example. If the pen is deleted then the return value will be GeneralFailure. // Setting Property to Percent _ObjectSetProperty(hPen.181 [Cicode] FUNCTION Example(OBJECT hPen) INT color. setting the unit to “kg” will display “10 Kg” on the axis. END IPen. END IPen. 0.VerticalAxisResize [Property][Get/Set] Gets or sets whether this pen allows the operator to interactively scale the vertical axis by using the mouse. // Getting current property value color = _ObjectGetProperty(hPen.VerticalAxisLabelType ‘Setting Property value to Percent pen. 3). “VerticalAxisColor”. “VerticalAxisColor”). “VerticalAxisLabelType”).VerticalAxisLabelT ype [Property][Get/Set] Gets or sets a unit type which can be applied to the axis labels. “VerticalAxisLabelType”. [VBA] Sub Example(pen As Object) Dim labelType As Integer ‘Getting Property value labelType = pen. 0)). If the return variable is bad then the return value will be InvalidArgument. 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. // Getting current property value labelType = _ObjectGetProperty(hPen. See Also AxisLabelType [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function.

“VerticalAxisResize”. If the pen is deleted. // Getting current property value bResize = _ObjectGetProperty(hPen. See Also IPen.VerticalAxisScroll [Property][Get/Set] Gets or sets whether this pen allows the operator to interactively scroll the vertical axis by using the mouse. END IPen. [VBA] Sub Example(pen As Object) Dim resize As Boolean ‘Getting Property value resize = pen. Limits True (-1): Enable resize False (0): Disable resize Remarks This only applies to analog pens. the return value will be Success. Defined As [VBA] Boolean VerticalAxisScroll [Cicode] INT VerticalAxisScroll [C++] VARIANT_BOOL VerticalAxisScroll Execution Result If the property get/set succeeds.182 [VBA] Boolean VerticalAxisResize [Cicode] INT VerticalAxisResize [C++] VARIANT_BOOL VerticalAxisResize Execution Result If the property get/set succeeds. the return value will be InvalidArgument. the return value will be Success. // Setting Property _ObjectSetProperty(hPen. VerticalAxisResize = False End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bResize. If the pen is deleted. If the return variable is bad. “VerticalAxisResize”). VerticalAxisResize ‘Setting Property value pen. If the return variable is bad.HorizontalAxisResize [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. . the return value will be InvalidArgument.0). the return value will be GeneralFailure. the return value will be GeneralFailure.

HorizontalAxisWidth [Property][Get/Set] Calling Syntax . the return value will be InvalidArgument.VerticalAxisWidth [Property][Get/Set] Gets or sets the width of the vertical axis line and the associated interval markers. Limits A valid width is 0-8 pixels.VerticalAxisScroll ‘Setting Property value pen. If the return variable is bad. the return value will be GeneralFailure. 0). // Getting current property value bScroll = _ObjectGetProperty(hPen. // Setting Property _ObjectSetProperty(hPen. Remarks This only applies to analog pens. See Also IPen.183 Limits True (-1): Enable scrolling False (0): Disable scrolling Remarks This only applies to analog pens. [VBA] Sub Example(pen As Object) Dim scroll As Boolean ‘Getting Property value scroll = pen. “VerticalAxisScroll”.HorizontalAxisScroll [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. See Also IPen. the return value will be Success. If the pen is deleted. “VerticalAxisScroll”). END IPen. Defined As [VBA] Integer VerticalAxisWidth [Cicode] INT VerticalAxisWidth [C++] short VerticalAxisWidth Execution Result If the property get/set succeeds.VerticalAxisScroll = False End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bScroll.

// Setting Property _ObjectSetProperty(hPen. // Getting current property value . the return value will be InvalidArgument.VerticalGridlinesColor ‘Setting Property value to Red pen. VerticalGridlinesColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color. If the pen is deleted. the return value will be GeneralFailure. See Also IPen. Where Red. END IPen. [VBA] Sub Example(pen As Object) Dim width As Integer ‘Getting Property value width = pen. Remarks To calculate the integer value required for a color apply the following formula (65536 * Blue) + (256 * Green) + (Red).VerticalAxisWidth = 3 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT width. 3). the return value will be Success. // Getting current property value width = _ObjectGetProperty(hPen.VerticalGridlinesC olor [Property][Get/Set] Gets or sets the color used to draw the major vertical gridlines. “VerticalAxisWidth”. Defined As [VBA] Long VerticalGridlinesColor [Cicode] INT VerticalGridlinesColor [C++] OLE_COLOR VerticalGridlinesColor Execution Result If the property get/set succeeds.184 Assumes you have passed a valid pen object into the function.VerticalAxisWidth ‘Setting Property value pen. If the return variable is bad.VerticalMinorGridlinesColor [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. Green and Blue are 0-255. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. “VerticalAxisWidth”).

// Setting Property to Red _ObjectSetProperty(hPen. If the return variable is bad. “VerticalGridlinesStyle”).VerticalGridlinesW idth [Property][Get/Set] Gets or sets the line width used when drawing the major vertical gridlines. END IPen. [VBA] Sub Example(pen As Object) Dim style As Long ‘Getting Property value style = pen.185 color = _ObjectGetProperty(hPen. END IPen. PackedRGB(255. Defined As [VBA] Long VerticalGridlinesColor [Cicode] INT VerticalGridlinesColor [C++] LineStyle VerticalGridlinesColor Execution Result If the property get/set succeeds. the return value will be InvalidArgument. the return value will be Success. 0)). Defined As [VBA] Integer VerticalGridlinesWidth [Cicode] INT VerticalGridlinesWidth [C++] short VerticalGridlinesWidth Execution Result If the property get/set succeeds.VerticalGridlinesSt yle [Property][Get/Set] Gets or sets the line style used to draw the major vertical gridlines. the return value will be GeneralFailure. “VerticalGridlinesColor”. If the width is out of . // Getting current property value style = _ObjectGetProperty(hPen.VerticalGridlinesColor = 2 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT style. “VerticalGridlinesStyle”. “VerticalGridlinesColor”). 2). the return value will be InvalidArgument. If the pen is deleted. // Setting Property to Dot _ObjectSetProperty(hPen.VerticalGridlinesColor ‘Setting Property value to Dot pen. the return value will be Success. 0. If the style is out of range.VerticalMinorGridlinesStyle [Property][Get/Set]. See Also IPen. If the return variable is bad. LineStyle [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function. the return value will be InvalidArgument.

3). Limits A valid width is 0-8 pixels. the return value will be Success. // Setting Property t _ObjectSetProperty(hPen. 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). [VBA] Sub Example(pen As Object) Dim width As Integer ‘Getting Property value width = pen. Green and Blue are 0-255. [VBA] Sub Example(pen As Object) Dim color As Long ‘Getting Property value color = pen. the return value will be InvalidArgument. Where Red. If the return variable is bad. VerticalMinorGridlinesColor . “VerticalGridlinesWidth”). END IPen. If the pen is deleted.VerticalGridlinesWidth ‘Setting Property value pen.VerticalMinorGridli nesColor [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.186 range. Calling Syntax Assumes you have passed a valid pen object into the function.VerticalGridlinesWidth = 3 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT width.VerticalGridlinesColor [Property][Get/Set] Calling Syntax Assumes you have passed a valid pen object into the function. the return value will be GeneralFailure. See Also IPen. If the pen is deleted. // Getting current property value width = _ObjectGetProperty(hPen. “VerticalGridlinesWidth”. the return value will be InvalidArgument.

See Also IPen. “VerticalMinorGridlinesColor”). Defined As [VBA] Long VerticalMinorGridlinesStyle [Cicode] INT VerticalMinorGridlinesStyle [C++] LineStyle VerticalMinorGridlinesStyle Execution Result If the property get/set succeeds. [VBA] Sub Example(pen As Object) Dim style As Long ‘Getting Property value style = pen. “VerticalMinorGridlinesColor”. // Getting current property value color = _ObjectGetProperty(hPen. “VerticalMinorGridlinesStyle”.VerticalMinorGridlinesColor = 2 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT style. END IPen. // Getting current property value style = _ObjectGetProperty(hPen. If the style is out of range.Visible [Property][Get/Set] Get or set whether this pen will be visually shown (True) or hidden (False) to the operator. the return value will be GeneralFailure. LineStyle [Enumeration] Calling Syntax Assumes you have passed a valid pen object into the function. 0. the return value will be InvalidArgument. END IPen. If the pen is deleted.VerticalMinorGridlinesStyle ‘Setting Property value to Dot pen. the return value will be Success. “VerticalMinorGridlinesStyle”). // Setting Property to Dot _ObjectSetProperty(hPen. 0)).VerticalMinorGridlinesColor = 255 End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT color.VerticalMinorGridli nesStyle [Property][Get/ Set] Gets or sets the line style used to draw the minor vertical gridlines.VerticalGridlinesStyle [Property][Get/Set]. PackedRGB(255. the return value will be InvalidArgument. If the return variable is bad. // Setting Property to Red _ObjectSetProperty(hPen. Defined As .187 ‘Setting Property value to Red pen. 2).

Count [Property][Get] IPens. // Get the property value bVisible = _ObjectGetProperty(hPen. END IPens Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IPens Methods (2) IPens. “Visible”._NewEnum [Property][Get] IPens. the return value will be Success.5). the return value will be GeneralFailure. If the return variable is bad.188 [VBA] Boolean Visible [Cicode] INT Visible [C++] VARIANT_BOOL Visible Execution Result If the property get succeeds. // Set the property value _ObjectSetProperty(hPen. Limits True (-1): Visible False (0): Hidden Calling Syntax Assumes you have passed a valid pen object into the function.Visible = False End Sub [Cicode] FUNCTION Example(OBJECT hPen) INT bVisible.Create [Method] IPens. 0. the return value will be InvalidArgument. [VBA] Sub Example(pen As Object) Dim visible As Boolean ‘Get the property value visible = pen.RemoveAll [Method] Properties (5) IPens. If the pen is deleted.Item [Property][Get] IPens. “Visible”. 0).ItemByName [Property][Get] IPens.Pane[Property][Get] .Visible ‘ Set the property value pen.

The Process Analyst provides options of PenNameMode_Comment. Defined As [VBA] Create(penType As Integer. See PenType Enumeration for the types of pen that can be created. penNameMode [in] Indicates how the name will be obtained for this pen. 1) End Sub [Cicode] FUNCTION Example(OBJECT hPens) OBJECT hPen = _ObjectCallMethod(hPens. and PenNameMode_Custom. a new Pen of the specified type is created and appended to the pens collection. PenNameMode penNameMode. [VBA] Sub Example(pens As Object) Dim pen As Object Set pen = pens. INT nameMode) [C++] HRESULT Create(PenType penType. Remarks If this method succeeds.DataPoint property. PenNameMode_Tag. 1). END .DataPoint property. IPen** pen) Parameters penType [in] Indicates the type of pen that will be created. the return value will be GeneralFailure. PenType [Enumeration].Name property. 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. Specifying PenNameMode_Custom causes the Process Analyst to provide a default name and leave setting the name to you via the IPen. 4097.Create(4097. Specifying PenNameMode_Tag will mean that the Process Analyst will name the pen as the value of the IPen. PenNameMode [Enumeration] Calling Syntax This example assumes there is a valid Pens collection object to be passed in to the example methods. “Create” .189 IPens. If the pens collection is deleted. Execution Results If the method succeeds the return value will be Success.Create [Method] Creates a new pen and adds it to this collection. nameMode As Integer) as Object [Cicode] OBJECT Create (INT penType. See Also IPen Interface.

Count End Sub [Cicode] FUNCTION Example(OBJECT hPens) // Getting property value INT nCount = _ObjectGetProperty(hPens. Defined As [VBA] RemoveAll() [Cicode] RemoveAll() [C++] HRESULT RemoveAll() Execution Result If the property get/set succeeds the return value will be Success. Defined As [VBA] Long Count [Cicode] INT Count [C++] int Count Execution Result If the property get succeeds. END .Count [Property][Get] Gets the number of Pens in this collection. Calling Syntax This example assumes there is a valid Pens collection object to be passed into the example methods.RemoveAll() End Sub [Cicode] FUNCTION Example(OBJECT hPens) _ObjectCallMethod(hPens. the return value will be Success. END IPens. the return value will be GeneralFailure.190 IPens. [VBA] Sub Panes(pens As Object) pens. 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 count = Pens. If the pens collection is deleted. If the pens collection is deleted the return value will be GeneralFailure. “RemoveAll”). "Count").RemoveAll [Method] Removes all Pens from the Pens collection.

_NewEnum [Property][Get] This allows For.Item(1) End Sub [Cicode] FUNCTION Example(OBJECT hPens) // Getting property value OBJECT hPen = _ObjectCallMethod(hPens.ItemByName [Property][Get] Gets the Pen of the given name from this Pens collection.. the return value will be InvalidArgument. Calling Syntax This example assumes there is a valid Pens collection object to be passed into the example methods. Defined As . [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. 1). IPen* Item) Parameters index [in] Indicates the index of the pen item to return from this collection. This property is not applicable to Cicode. If the index is out of range. "get_Item". If the pen’s collection is deleted. [VBA] Sub Example(pens As Object) Dim pen As Object ‘Getting Property value Set pen = pens. (One based) Execution Result If the property get succeeds. the return value will be GeneralFailure. Each.Item [Property][Get] Gets the Pen at the given index from this pen’s collection. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index..191 IPens. Calling Syntax This example assumes there is a valid Pens collection object to be passed into the example methods. Next integration in VB. the return value will be Success. END IPens.

IPen* Item) Parameters name [in] Indicates the name of the Pen item to return from this collection. the return value will be Success. Calling Syntax This example assumes there is a valid Pens collection object to be passed into the example methods. Execution Result If the property get succeeds. If the pen does not exist. If the pens collection is deleted the return value will be GeneralFailure. Remarks Each Pens collection belongs to a Pane. .Pane[Property][G et] Gets the Pane that this Pens collection belongs to. "CPU Usage"). the return value will be InvalidArgument. 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. END IPens. [VBA] Sub Example(Pens As Object) Dim pen As Object ‘Getting Property value Set pen = Pens.192 [VBA] ItemByName(name As String) as Object [Cicode] OBJECT ItemByName(STRING name) [C++] ItemByName(STRING name. "get_ItemByName". 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.ItemByName(“CPU Usage”) End Sub [Cicode] FUNCTION Example(OBJECT hPens) // Getting property value OBJECT hPen = _ObjectCallMethod(hPens. If the pens collection is deleted.

UnsubscribePropertyChange [Method] Properties IProcessAnalyst.BlockUpdates [Method] IProcessAnalyst.PrintAll [Method] IProcessAnalyst.Cursors [Property][Get] IProcessAnalyst.DataRequestRate [Property][Get/Set] IProcessAnalyst.CopyToFile [Method] IProcessAnalyst.CommandSystem [Property][Get] IProcessAnalyst.ObjectView [Property][Get] IProcessAnalyst.193 [VBA] Sub Example(pens As Object) Dim pane As Object ‘Getting Property value Set pane = pens.ContextMenu [Property][Get/Set] IProcessAnalyst.Toolbars [Property][Get] .LastSelectedPen [Property][Get] IProcessAnalyst.AutoScroll [Property][Get/Set] IProcessAnalyst.LoadFromFile [Method] IProcessAnalyst.ShowProperties [Method] IProcessAnalyst.UnBlockUpdates [Method] IProcessAnalyst.SecondaryPath [Property][Get/Set] IProcessAnalyst.Pane End Sub [Cicode] FUNCTION Example(OBJECT hPens) // Getting property value OBJECT hPane = _ObjectGetProperty(hPens. END IProcessAnalyst Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IProcessAnalyst Methods IProcessAnalyst. "Pane").Language [Property] [Get/Set] IProcessAnalyst.Panes [Property][Get] IProcessAnalyst.SaveToFile [Method] IProcessAnalyst.CopyToClipboard [Method] IProcessAnalyst.NumberofSamples[Property][Get/Set] IProcessAnalyst.DisplayRefreshRate [Property][Get/Set] IProcessAnalyst.LockedPens [Property][Get/Set] IProcessAnalyst.FreezeEvent [Method] IProcessAnalyst.BackgroundColor [Property][Get/Set] IProcessAnalyst.SubscribeForPropertyChange [Method] IProcessAnalyst.SynchroniseToNow [Method] IProcessAnalyst.PrimaryPath [Property][Get/Set] IProcessAnalyst.AdminPrivilegeLevel [Property] [Get] IProcessAnalyst.

WritePrivilegeLevel [Property][Get] IProcessAnalyst.BlockUpdates() End Sub [Cicode] FUNCTION Example(OBJECT hProcessAnalyst) _ObjectCallMethod(hProcessAnalyst.BlockU pdates [Method] Blocks certain aspects of the Process Analyst’s redrawing and data updating. and the toolbars. the Object View. the return value will be general failure. the Object View. so that only the final UnBlockUpdates call actually unblocks the above mentioned data updates and redraw systems. “BlockUpdates”). . the return value will be Success.UnBlo ckUpdates [Method] Unblocks certain aspects of the Process Analyst’s redrawing and data updating. Defined As [VBA] UnblockUpdates() [Cicode] UnblockUpdates() [C++] HRESULT UnblockUpdates() Remarks This method unblocks three redraw systems: redraw for the chart.UnBlockUpdates [Method] Execution Result If the function suceeds. [VBA] Sub Example(ProcessAnalyst As Object) ProcessAnalyst. If the function fails.194 IProcessAnalyst. See Also IProcessAnalyst. Defined As [VBA] BlockUpdates() [Cicode] BlockUpdates() [C++] HRESULT BlockUpdates() Remarks This method blocks three redraw systems: redraw for the chart. The current data requests are all cancelled. Calling Syntax This example assumes there is a valid Process Analyst object to be passed into the example methods. The Process Analyst has a built-in counter to store how many times the block and unblock have been called. and the toolbars. Data updates are also blocked.ZoomMode [Property][Get/Set] IProcessAnalyst. END IProcessAnalyst.

If the function fails the return value will be GeneralFailure. S_FALSE will be returned in this case). See Also IProcessAnalyst. 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. Defined As [VBA] CopyToClipboard() [Cicode] CopyToClipboard() [C++] HRESULT CopyToClipboard() Remarks The timestamp of each sample will be in local time defined by your computer. . If other BlockUpdates are in effect. the return value will be Success.195 Data updates are also unblocked. “UnblockUpdates”). so that only the final UnBlockUpdates call actually unblocks the above mentioned data updates and redraw systems. [VBA] Sub Example(ProcessAnalyst As Object) ProcessAnalyst.CopyToFile [Method] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.BlockUpdates [Method] Execution Result If the function suceeds. the return value will be general failure.UnblockUpdates() End Sub [Cicode] FUNCTION Example(OBJECT hProcessAnalyst) _ObjectCallMethod(hProcessAnalyst. a Success will be returned also (for those C++ users.CopyT oClipboard [Method] Copies the data in the current viewable range for all visible pens to the clipboard. END IProcessAnalyst. Calling Syntax This example assumes there is a valid Process Analyst object to be passed into the example methods. See Also IProcessAnalyst. The Process Analyst has a built-in counter to store how many times the block and unblock have been called.

Defined As . “CopyToFile”. Execution Result If the function succeeds the return value will be Success. End Sub IProcessAnalyst. Remarks The timestamp of each sample will be in local time defined by your computer. “CopyToClipboard”). [VBA] Sub Example() myPage_AN35. See Also IProcessAnalyst. “test.xls” End Sub [Cicode] Sub Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). _ObjectCallMethod(hProcessAnalyst.CopyT oFile [Method] Saves the data in the current viewable range for all visible pens to the specified file.xls”). End Sub IProcessAnalyst.CopyToClipboard End Sub [Cicode] Sub Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). _ObjectCallMethod(hProcessAnalyst. If the function fails the return value will be GeneralFailure.196 [VBA] Sub Example() myPage_AN35. The start and end sample maybe generated for each pen to indicate the exported range of the data.Freeze Event [Method] Enables or disables a specified event from triggering.CopyToClipboard [Method] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. 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.CopyToFile “test.

If eventName is bad or does not exist. Remarks All events exposed by the Process Analyst can be enabled or disabled.LoadFr omFile [Method] Loads a specified view into the Process Analyst. Calling Syntax This example assumes there is a valid Process Analyst object to be passed into the example methods. END IProcessAnalyst. the return value will be Success. Defined As [VBA] LoadFromFile(filename As String. . freeze As Boolean) [Cicode] FreezeEvent(STRING eventName.FreezeEvent "HorizontalAxisChanged" True End Sub [Cicode] FUNCTION Example(OBJECT hAnalyst) _ObjectCallMethod(hAnalyst. fileLocation [in] Indicates which known location to load the file from. the return value will be GeneralFailure. This method is particularly useful to prevent recursive behavior of functions that generate the same event that you are trying to handle.197 [VBA] FreezeEvent(eventName As String. FileLocation fileLocation) Parameters filename [in] Indicates a relative path and filename of the view to load into the Process Analyst."HorizontalAxisChanged". See Remarks. VARIANT_BOOL freeze) Parameters eventName [in] Specifies the event that you want to cease receiving notifications for. True(-1) enable the event. INT fileLocation) [C++] HRESULT LoadFromFile(BSTR filename. [VBA] Sub Example(analyst As Object) analyst. If the method fails. fileLocation As Integer) [Cicode] LoadFromFile(STRING filename. INT freeze) [C++] HRESULT FreezeEvent(BSTR columnName. -1). Execution Result If the method succeeds. the return value will be InvalidArgument. below. "FreezeEvent". False(0) disable the event. freeze [in] Indicates whether to enable or disable the event.

See Also FileLocation [Enumeration]. If the filename is invalid the return value will be InvalidArgument. Synchronization will not occur when loaded from a Web-client. “LoadFromFile”.198 Execution Result If the function succeeds the return value will be Success. 1). IProcessAnalyst.pav”. Defined As [VBA] PrintAll [Cicode] PrintAll() [C++] HRESULT PrintAll() Execution Result If the function succeeds the return value will be Success. 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). 1 End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). my documents folder (FileLocation_User) or from the primary/secondary paths (FileLocation_Server). If any other problem occurs then the return value will be GeneralFailure. END IProcessAnalyst. If the file you are loading is older then one which exists in another location it will be replaced.PrintAl l [Method] Displays the Print configuration dialog. _ObjectCallMethod(hProcessAnalyst.PrimaryPath [Property][Get/Set]. .“AnalystViews\Test1. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.LoadFromFile “Analyst Views\Test1. Remarks This method will replace the current view with the one in the specified file. When a file is loaded it will be synchronized with the other locations to ensure each location has the file which is the latest. If an unexpected error occurs then return value will be GeneralFailure. If the path indicated by fileLocation is invalid or offline then the return value will be PathNotFound. [VBA] Sub Example() ‘ Load the view from the server myPage_AN35.pav”. IProcessAnalyst.SecondaryPath [Property][Get/ Set] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

_ObjectCallMethod(hProcessAnalyst.199 [VBA] Sub Example() myPage_AN35. On a client where the current user does not match the WritePrivilegeLevel only the FileLocation_User will succeed. IProcessAnalyst. See Remarks. INT fileLocation) [C++] HRESULT SaveToFile(BSTR filename. Defined As [VBA] SaveToFile(filename As String. Saving using the FileLocation_Server option will save to the locations indicated by PrimaryPath and SecondaryPath properties and into the Project directory. If the path indicated by fileLocation is invalid or offline then the return value will be PathNotFound.PrintAll End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). Remarks On a client where the current user matches the WritePrivilegeLevel only the FileLocation_Server and FileLocation_User options will succeed. Execution Result If the function succeeds the return value will be Success. See Also FileLocation [Enumeration].SaveT oFile [Method] Saves the current view using the specified name to the specified location. “PrintAll”). fileLocation As Integer) [Cicode] SaveToFile(STRING filename.WritePrivilegeLevel [Property][Get] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.PrimaryPath [Property][Get/Set]. IProcessAnalyst. On a webclient the FileLocation_User is the only option which will succeed. If any other problem occurs. END IProcessAnalyst. .SecondaryPath [Property][Get/Set]. If the filename is invalid the return value will be InvalidArgument. IProcessAnalyst. FileLocation fileLocation) Parameters filename [in] Indicates a relative path and filename which will be used during the saving of the view. the return value will be GeneralFailure. fileLocation [in] Indicates which known location to save the file to.

ShowP roperties [Method] Displays the Process Analyst’s property configuration dialog. “ShowProperties”). “SaveToFile”. 1 End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “Analyst Views\Test1. STRING propertyName) [C++] HRESULT SubscribeForPropertyChange(BSTR interfaceName.pav”. [VBA] Sub Example() myPage_AN35. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. END IProcessAnalyst. BSTR propertyName) Parameters .ShowProperties End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). END IProcessAnalyst. Notifications will be sent via the PropertyChanged event.SaveToFile “Analyst Views\Test1. 1). If an unexpected error occurs then the return value will be GeneralFailure.Subscr ibeForPropertyChange [Method] Use this method to receive notifications of when a particular property changes. Defined As [VBA] SubscribeForPropertyChange(interfaceName As String. propertyName As String) [Cicode] SubscribeForPropertyChange(STRING interfaceName.pav”. ‘ Save the view to the server and project _ObjectCallMethod(hProcessAnalyst. Define As [VBA] ShowProperties [Cicode] ShowProperties() [C++] HRESULT ShowProperties () Execution Result If the function succeeds the return value will be Success.200 [VBA] Sub Example() ‘ Save the view to the server and project myPage_AN35. _ObjectCallMethod(hProcessAnalyst.

propertyName [in] This is the name of the property you want to receive notifications for.201 interfaceName [in] Specify the name of the interface that the property you want notifications for is defined on. Execution Result If the function succeeds.“SubscribeForPropertyChange”. Remarks The following set of properties are supported: Interface name IProcessAnalyst IProcessAnalyst IProcessAnalyst IProcessAnalyst IProcessAnalyst IProcessAnalyst IProcessAnalyst Property Name AutoScroll BackgroundColor ContextMenu LockedPens DisplayRefreshRate DataRequestRate ZoomMode See Also IProcessAnalyst. End Sub IProcessAnalyst. the return value will be Success. “ZoomMode” End Sub [Cicode] Sub Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “IProcessAnalyst”. _ObjectCallMethod(hProcessAnalyst. PropertyChanged [Event] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.UnsubscribePropertyChange [Method]. the return value will be GeneralFailure. the return value will be InvalidArgument.” Defined As [VBA] SynchroniseToNow [Cicode] SynchroniseToNow() [C++] HRESULT SynchroniseToNow() Execution Result .Synchr oniseToNow [Method] Synchronizes all pens such that the date/time reflects “Now.SubscribeForPropertyChange “IProcessAnalyst”. If any other problem occurs. If the interfaceName or propertyName is a bad string. “ZoomMode”). [VBA] Sub Example() myPage_AN35.

the return value will be InvalidArgument. [VBA] Sub Example() myPage_AN35. _ObjectCallMethod(hProcessAnalyst. Defined As [VBA] UnsubscribePropertyChange(interfaceName As String.SubscribeForPropertyChange [Method]. propertyName [in] Name of the property you want to remove notifications for. “SynchroniseToNow”). See Also IProcessAnalyst. PropertyChanged [Event] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. propertyName As String) [Cicode] UnsubscribePropertyChange(STRING interfaceName. . ‘Now’ is defined as the current time on the client machine. STRING propertyName) [C++] HRESULT UnsubscribePropertyChange(BSTR interfaceName. If the interfaceName or propertyName is a bad string. the return value will be Success. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. BSTR propertyName) Parameters interfaceName [in] Name of the interface that the property you want to remove notifications for is defined on. If any other problem occurs. the return value will be Success.202 If the function succeeds. the return value will be GeneralFailure.SynchroniseToNow End Sub [Cicode] Sub Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). End Sub IProcessAnalyst. Execution Result If the function succeeds. If any other problem occurs. Remarks The current span for each pen will be maintained. the return value will be GeneralFailure.Unsub scribePropertyChange [Method] Use this method to cancel notifications of when the specified property changes. Notifications will cease to be sent via the PropertyChanged event.

End Sub IProcessAnalyst. This property can only be set at design time (in the Graphics Builder property pages) and is recommended to prevent Operators from changing performance properties such as DataRequestRate and DisplayRefreshRate. _ObjectCallMethod(hProcessAnalyst. [VBA] Sub Example() Dim privilege As Boolean ‘Getting Property value privilege = myPage_AN35. // Getting current property value .UnsubscribePropertyChange “IProcessAnalyst”.“ZoomMode” End Sub [Cicode] Sub Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”).8. “ZoomMode”). INT privilege.203 [VBA] Sub Example() myPage_AN35.AdminPrivilegeLevel End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “UnsubscribePropertyChange”. 0 = no security. which allows access to all features at run time.“IProcessAnalyst”. Defined As [VBA] Integer AdminPrivilegeLevel [Cicode] INT AdminPrivilegeLevel [C++] short AdminPrivilegeLevel Execution Result If the property get succeeds the return value will be Success. Setting this to any other level will require the operator viewing the Process Analyst to have a privilege equal to that level. Remarks By default the level is 0 (Zero).Admin PrivilegeLevel [Property] [Get] Retrieves the privilege level currently set for controlling administration features of the Process Analyst at Run-time. Limits Privilege level defined in Vijeo Citect 1 . 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”.

Remarks This function does not synchronize the pens to now. // Setting Property to true _ObjectSetProperty(hProcessAnalyst. the return value will be Success. [VBA] Sub Example() Dim autoScroll As Boolean ‘Getting Property value autoScroll = myPage_AN35.AutoS croll [Property][Get/Set] Gets or Sets the automatic scrolling of all pens as time passes.AutoScroll ‘Setting Property value myPage_AN35. Defined As [VBA] Long BackgroundColor [Cicode] INT BackgroundColor .204 privilege = _ObjectGetProperty(hProcessAnalyst. If the return variable is bad. INT autoScroll. “AdminPrivilegeLevel”). the return value will be InvalidArgument. -1). // Getting current property value autoScroll = _ObjectGetProperty(hProcessAnalyst. END IProcessAnalyst.Backgr oundColor [Property][Get/Set] Gets or sets the background color for the Process Analyst. The display will be updated according to the value of the DisplayRefreshRate property. Defined As [VBA] Boolean AutoScroll [Cicode] INT AutoScroll [C++] VARIANT_BOOL AutoScroll Execution Result If the property get/set succeeds. “AutoScroll”).AutoScroll = True End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “AutoScroll”. 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”. END IProcessAnalyst.

[VBA] Sub Example() Dim backgroundColor As Long ‘Getting Property value backgroundColor = myPage_AN35. With this object you can execute commands. apply the following formula: (65536 * Blue) + (256 * Green) + (Red) where Red. “BackgroundColor”. To calculate the integer value required for a color.Comm andSystem [Property][Get] Gets a reference to the Process Analyst’s Command System object. // Setting Property to Red _ObjectSetProperty(hProcessAnalyst. Green.“BackgroundColor”). query command information. 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”. If the return variable is bad. the return value will be Success. Defined As [VBA] Object CommandSystem [Cicode] OBJECT CommandSystem [C++] ICommandSystem* CommandSystem Execution Result If the property get succeeds the return value will be Success. and create your own custom commands.BackgroundColor = 255 End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). the return value will be InvalidArgument.BackgroundColor ‘Setting Property value to Red myPage_AN35. INT backgroundColor.205 [C++] OLECOLOR BackgroundColor Execution Result If the property get/set succeeds. If the return variable is bad then the return value will be InvalidArgument. END IProcessAnalyst. 255). Remarks The background is the area under the panes. and Blue are 0-255. . // Getting current property value backgroundColor = _ObjectGetProperty(hProcessAnalyst.

206 Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.“ContextMenu”). 0). “ContextMenu”. // Getting current property value contextMenu =_ObjectGetProperty(hProcessAnalyst. OBJECT hCommandSystem. [VBA] Sub Example() Dim contextMenu As Boolean ‘Getting Property value contextMenu = myPage_AN35.ContextMenu = False End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). INT contextMenu. “CommandSystem”). If the return variable is bad then the return value will be InvalidArgument. 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. END IProcessAnalyst. // Retrieve command system hCommandSystem = _ObjectGetProperty(hProcessAnalyst. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.ContextMenu ‘Disable the context menu myPage_AN35.Contex tMenu [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. [VBA] Sub Example() Dim commandSystem As Object ‘Retrieve command system Set commandSystem = myPage_AN35. END . // Disable the context menu _ObjectSetProperty(hProcessAnalyst.CommandSystem End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”).

Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.Cursors End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). and browse existing cursors. With this object you can create new.Cursor s [Property][Get] Gets a reference to the Process Analyst’s cursors collection. “Cursors”). 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. The higher the figure the less load will be put on the trend server(s). If the return variable is bad then the return value will be InvalidArgument. Defined As [VBA] Object Cursors [Cicode] OBJECT Cursors [C++] ICursors* Cursors Execution Result If the property get succeeds the return value will be Success. OBJECT hCursors. 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.DataRe questRate [Property][Get/Set] Indicates how often (in milliseconds) the Process Analyst Control will request data from the trend server(s).207 IProcessAnalyst. END IProcessAnalyst. Remarks This property is useful for controlling the load on a trend server. [VBA] Sub Example() Dim cursors As Object ‘Retrieve cursors collection Set cursors = myPage_AN35. If the return variable is bad then the return value will be InvalidArgument. Limits Minimum = 10 milliseconds . // Retrieve cursor collection hCursors = _ObjectGetProperty(hProcessAnalyst.

Displa yRefreshRate [Property][Get/Set] Indicates how fast the Process Analyst Control display is updated in milliseconds. Remarks This property is useful for controlling the performance of a client (CPU usage). END IProcessAnalyst. which provides optimum client performance and visual feedback. // Set property value to 2 seconds _ObjectSetProperty(hProcessAnalyst. The default is an update of 1 second. “DataRequestRate”. . “DataRequestRate”). the return value will be InvalidArgument.208 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”. INT requestRate. // Retrieve property value requestRate = _ObjectGetProperty(hProcessAnalyst.DataRequestRate ‘Set request rate myPage_AN35. If the return variable is bad. Defined As [VBA] Integer DisplayRefreshRate [Cicode] INT DisplayRefreshRate [C++] short DisplayRefreshRate Execution Result If the property get/set succeeds. 2000). Limits Minimum = 10 milliseconds (most machines will not be fast enough to keep up). [VBA] Sub Example() Dim requestRate As Integer ‘Retrieve request rate requestRate = myPage_AN35. the return value will be Success. Maximum = 60000 milliseconds (1 minute).DataRequestRate = 2000 End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). Default = 1000 milliseconds (1 second). Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.

dll files are named (and should be named) using the format “Resources_<languagecode>. set the Language property to “zh-CN”. If the return variable is bad. the return value will be Success. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.dll”. // Set request rate _ObjectSetProperty(hProcessAnalyst. // Retrieve request rate requestRate = _ObjectGetProperty(hProcessAnalyst. see Multi-language Support. Remarks To change languages you must have additional localized resource . “DisplayRefreshRate”).dll file.” resets the language back to the default. For example. if you have a Chinese resource dll named “Resources_zh-CN. The Process Analyst expects this format or the language will not be loaded.DisplayRefreshRate ‘Set request rate myPage_AN35. Defined As [VBA] String Language [Cicode] STRING Language [C++] BSTR Language Execution Result If the property get/set succeeds.209 [VBA] Sub Example() Dim requestRate As Integer ‘Retrieve request rate requestRate = myPage_AN35. Additional language . END IProcessAnalyst. Note: This method is not required to be called if you are using Vijeo Citect’s multilanguage feature to make the Process Analyst switch languages.DisplayRefreshRate = 2000 End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”).Langu age [Property] [Get/Set] This function allows dynamic changing of the user interface to the language specified. 2000).dll files are named according to the RFC 1766 standard for specifying culture names.dll files alongside the main resources. INT requestRate. . Specifying “. “DisplayRefreshRate”. the return value will be InvalidArgument. The .dll”. For details.

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”. If there are no pens in the view.Language ‘Set language to Japanese myPage_AN35.Language = “ja-JP” End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “Language”). Remarks The last selected pen is also referred to as the “primary” selection.LastSe lectedPen [Property][Get] Retrieves the last selected pen on the Process Analyst. “Language”.210 [VBA] Sub Example() Dim language As String ‘Retrieve current language language = myPage_AN35.LastSelectedPen End Sub . Limits A reference to the primary selected pen. “ja-JP”). STRING language. [VBA] Sub Example() Dim selectedPen As Object ‘Retrieve primary selection Set selectedPen = myPage_AN35. Invalid object when there are no pens on the display. // Set language to Japanese _ObjectSetProperty(hProcessAnalyst. Defined As [VBA] Object LastSelectedPen [Cicode] OBJECT LastSelectedPen [C++] IPen* LastSelectedPen Execution Result If the property get succeeds the return value will be Success. an invalid object will be returned. // Retrieve current language language = _ObjectGetProperty(hProcessAnalyst. END IProcessAnalyst.

When the property is disabled. Remarks While this property is enabled. If this property is disabled and then enabled.Locke dPens [Property][Get/ Set] Determines whether all the pens across all panes in the Process Analyst control are locked together. any operation applied to the selected pen is applied to all pens.LockedPens = False End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “LastSelectedPen”). timespan.LockedPens ‘Turn off locked Pens myPage_AN35. If the return variable is bad then the return value will be InvalidArgument.211 [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). // Retrieve primary selection selectedPen = _ObjectGetProperty(hProcessAnalyst. and end time position as the selected pen. OBJECT lockedPens. all pens assume the same scale. END IProcessAnalyst. [VBA] Sub Example() Dim locked As Boolean ‘Get current locked status locked = myPage_AN35. Limits True (-1): Pens are locked. // Get current locked status lockedPens = _ObjectGetProperty(hProcessAnalyst. and any interaction technique will apply to the individual pen with selection focus. “LockedPens”). OBJECT selectedPen. False (0): Pens are unlocked. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. . the pens will lose the lock logic. 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. Note: The value entered into the Number of Samples box in the Process Analyst Properties dialog box is closely tied to the display resolution.212 // Turn off locked Pens _ObjectSetProperty(hProcessAnalyst. // Retrieve the objectview objectView = _ObjectGetProperty(hProcessAnalyst. With this object you can manipulate the look of the ObjectView.ObjectView End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). The default setting is ideal for screen resolutions from 1024x768 to 1280x1024. [VBA] Sub Example() Dim objectView As Object ‘Retrieve the objectview Set objectView = myPage_AN35. it requires less data than a traditional trend client. It is recommended that this parameter not exceed 500. Defined As [VBA] Object ObjectView [Cicode] OBJECT ObjectView [C++] IObjectView* ObjectView Execution Result If the property get succeeds the return value will be Success. More or less detail for each pen can be displayed by increasing or decreasing the value of this property respectively. Retrieving data is expensive and the more data you retrieve the more time the request takes. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.Object View [Property][Get] Gets a reference to the ObjectView object. 0). OBJECT objectView. Defined As [VBA] Integer NumberofSamples [Cicode] INT NumberofSamples . END IProcessAnalyst. “ObjectView”). 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. “LockedPens”. Because the Process Analyst shows samples when they occur.Numbe rofSamples[Property][G et/Set] Specifies the date/time axis span of each pen in number of samples. END IProcessAnalyst.

Limits Minimum = 10 Maximum = 5000 Default = 300 See Also Exporting Pen Data Calling Syntax Assumes you have a page called "myPage" and the Process Analyst has been named "AN35". (CPU usage). Remarks This property is useful for controlling the performance of a client. By dividing a pen’s time span by the value of this property. [VBA] Sub Example() Dim numOfSamples As Integer `Retrieve number of samples numOfSamples = myPage_AN35.NumberOfSamples = numOfSamples End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName("AN35").213 [C++] short NumberofSamples Execution Result If the property get/set succeeds the return value will be Success. INT numOfSamples. // Retrieve number of samples numOfSamples = _ObjectGetProperty(hProcessAnalyst.Panes [Property][Get] Gets a reference to the Panes collection. See Data Compaction for details. the return value will be InvalidArgument. 500). If the return variable is bad. END IProcessAnalyst. and browse existing panes. Defined As [VBA] Object Panes [Cicode] OBJECT Panes [C++] IPanes* Panes Execution Result . The Process Analyst will only display a maximum of one sample per display period. you can calculate the current display period of the pen.NumberOfSamples `Set request rate myPage_AN35. With this object you can create new. // Set request rate _ObjectSetProperty(hProcessAnalyst. "NumberOfSamples"). "NumberOfSamples".

214 If the property get succeeds the return value will be Success. END IProcessAnalyst. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. // Retrieve the panes collection panes = _ObjectGetProperty(hProcessAnalyst. IProcessAnalyst. OBJECT panes. 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.SaveToFile [Method] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. Whenever a load operation occurs from either of these locations. [VBA] Sub Example() Dim path As String ‘Retrieve the path path = myPage_AN35. “Panes”).PrimaryPath . IProcessAnalyst. the loaded file will be synchronized with each location. If the return variable is bad. [VBA] Sub Example() Dim panes As Object ‘Retrieve the panes collection Set panes = myPage_AN35. If the return variable is bad then the return value will be InvalidArgument. See Also IProcessAnalyst.SecondaryPath [Property][Get/Set]. the return value will be InvalidArgument. such that the latest version of the file appears in both locations.LoadFromFile [Method].Panes End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). Defined As [VBA] String PrimaryPath [Cicode] STRING PrimaryPath [C++] BSTR PrimaryPath Execution Result If the property get/set succeeds.Primar yPath [Property][Get/ Set] Specifies the primary location for saving and loading Process Analyst views. the return value will be Success.

Secon daryPath [Property][Get/Set] Specifies the secondary location for saving and loading Process Analyst views. See Also IProcessAnalyst.SecondaryPath = “\\computer1\PA Views” End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “\\computer1\PA Views”).215 ‘Set the path myPage_AN35. such that the latest version of the file appears in both locations. “PrimaryPath”. Whenever a load operation occurs from either of these locations. “PrimaryPath”).PrimaryPath [Property][Get/Set]. 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. STRING path. Defined As [VBA] String SecondaryPath [Cicode] STRING SecondaryPath [C++] BSTR SecondaryPath Execution Result If the property get/set succeeds. IProcessAnalyst. END IProcessAnalyst.PrimaryPath = “\\computer1\PA Views” End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). IProcessAnalyst. [VBA] Sub Example() Dim path As String ‘Retrieve the path path = myPage_AN35. the loaded file will be synchronized with each location.PrimaryPath ‘Set the path myPage_AN35. STRING path.LoadFromFile [Method]. // Retrieve the path . the return value will be Success. // Set the path _ObjectSetProperty(hProcessAnalyst.SaveToFile [Method] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. If the return variable is bad. the return value will be InvalidArgument. // Retrieve the path path = _ObjectGetProperty(hProcessAnalyst.

the return value will be InvalidArgument. the return value will be Success.WriteP rivilegeLevel [Property][Get] Returns the privilege level required to save Process Analyst views to the Primary and Secondary paths. // Retrieve the toolbars collection toolbars = _ObjectGetProperty(hProcessAnalyst. in Graphics Builder).Toolbars End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). // Set the path _ObjectSetProperty(hProcessAnalyst. “SecondaryPath”. [VBA] Sub Example() Dim toolbars As Object ‘Retrieve the toolbars collection Set toolbars = myPage_AN35. Remarks The privilege cannot be set via automation. It must be set in the property pages at design time (for example. END IProcessAnalyst. “\\computer1\PA Views”). “SecondaryPath”). Defined As [VBA] Integer WritePrivilegeLevel [Cicode] INT WritePrivilegeLevel [C++] short WritePrivilegeLevel Execution Result If the property get succeeds the return value will be Success. .Toolba rs [Property][Get] Gets a reference to the Toolbars collection. END IProcessAnalyst. If the return variable is bad then the return value will be InvalidArgument. With this object you can browse and modify existing toolbars. Defined As [VBA] Object Toolbars [Cicode] OBJECT Toolbars [C++] IToolbars* Toolbars Execution Result If the property get succeeds. If the return variable is bad. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”.216 path = _ObjectGetProperty(hProcessAnalyst. OBJECT toolbars. “Toolbars”).

“WritePrivilegeLevel”). [VBA] Sub Example() Dim privilege As Integer ‘Retrieve the privilege privilege = myPage_AN35. IProcessAnalyst. the return value will be Success. Defined As [VBA] Boolean ZoomMode [Cicode] INT ZoomMode [C++] VARIANT_BOOL ZoomMode Execution Result If the property get/set succeeds. Remarks Setting this mode will ensure only box zooming operations can occur. False (0): Disable zoom mode.ZoomMode .217 See Also IProcessAnalyst. END IProcessAnalyst.Zoom Mode [Property][Get/ Set] Enables or disables the box zooming mode for the Process Analyst. Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. IProcessAnalyst. // Retrieve the privilege privilege = _ObjectGetProperty(hProcessAnalyst.PrimaryPath [Property][Get/Set].SaveToFile [Method]. INTEGER privilege. [VBA] Sub Example() Dim zoomMode As Boolean ‘Retrieve the mode zoomMode = myPage_AN35. the return value will be InvalidArgument.WritePrivilegeLevel End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). If the return variable is bad.SecondaryPath [Property][Get/Set] Calling Syntax Assumes you have a page called “myPage” and the Process Analyst has been named “AN35”. Limits True (-1): Enable zoom mode. all other operations such as interactive scrolling and scaling will cease.

218 ‘Set the path myPage_AN35. INT button) END MouseClick [Event] This event is raised whenever a single mouse click occurs on the graphical chart area of the Process Analyst. int button) Parameters pen [in] Indicates which pen the double-click occurred on. [VBA] Sub myPage_AN35_MouseDoubleClick(pen As Object. Defined As [VBA] MouseClick(pen As Object. button As Integer) End Sub [Cicode] FUNCTION myPage_AN35_MouseDoubleClick(OBJECT processAnalyst. button As Integer) [Cicode] MouseDoubleClick(OBJECT processAnalyst. OBJECT pen. OBJECT pen. Defined As [VBA] MouseDoubleClick(pen As Object. INT zoomMode. INT button) . This object will be invalid if no pen was double-clicked. 1 = Right. Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. // Retrieve the zoomMode zoomMode = _ObjectGetProperty(hProcessAnalyst.ZoomMode = True End Sub [Cicode] FUNCTION Example() OBJECT hProcessAnalyst = ObjectByName(“AN35”). “ZoomMode”). OBJECT pen. button [in] Indicates which button was double-clicked: 0 = Left. -1). INT button) [C++] MouseDoubleClick(IPen pen. processAnalyst [in] Indicates the Process Analyst object that raised the event (Cicode only). “ZoomMode”. button As Integer) [Cicode] MouseClick(OBJECT processAnalyst. END MouseDoubleClick [Event] This event is raised whenever a mouse double-click occurs on the graphical chart area of the Process Analyst. // Set the zoomMode _ObjectSetProperty(hProcessAnalyst.

button As Integer) End Sub [Cicode] FUNCTION myPage_AN35_MouseClick(OBJECT processAnalyst. INT button) END PenCreated [Event] This event is raised whenever a pen is either created via the automation model. OBJECT pen. 1 = Right. button [in] Indicates which button was clicked: 0 = Left. [VBA] Sub myPage_AN35_PenCreated(pen As Object) End Sub [Cicode] FUNCTION myPage_AN35_PenCreated(OBJECT processAnalyst. or added through the Add Pen dialog at run time. This object will be invalid if no pen was clicked. OBJECT pen) END . Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. OBJECT pen) [C++] PenCreated(IPen* pen) Parameters pen [in] Refers to the pen that was created. (Cicode only). [VBA] Sub myPage_AN35_MouseClick(pen As Object. Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. processAnalyst [in] Indicates the Process Analyst object which raised the event.219 [C++] MouseClick(IPen* pen. int button) Parameters pen [in] Indicates which pen the click occurred on. processAnalyst [in] Indicates the Process Analyst object that raised the event (Cicode only). Defined As [VBA] PenCreated(pen As Object) [Cicode] PenCreated(OBJECT processAnalyst.

Defined As [VBA] PenDeleted(penName As String) [Cicode] PenDeleted(OBJECT processAnalyst. Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. . (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. (Cicode only).220 PenDeleted [Event] This event is raised whenever a pen is deleted either by automation or via the interface. processAnalyst [in] Indicates the Process Analyst object which raised the event. processAnalyst [in] Indicates the Process Analyst object which raised the event. Defined As [VBA] PenRenamed(pen As Object) [Cicode] PenRenamed(OBJECT processAnalyst. OBJECT pen) [C++] PenRenamed(IPen* pen) Parameters pen [in] Refers to the pen that was renamed. STRING penName) END PenRenamed [Event] This event is raised whenever a pen is renamed via automation or through the user interface. STRING penName) [C++] PenDeleted(BSTR penName) Parameters penName [in] Contains the name of the pen that was deleted.

OBJECT pen) [C++] PenSelectionChanged (IPen* pen) Parameters pen [in] Refers to the pen that now has primary selection. Defined As [VBA] HorizontalAxisChanged(pen As Object) [Cicode] HorizontalAxisChanged(OBJECT processAnalyst. OBJECT pen) [C++] HorizontalAxisChanged(IPen* pen) Parameters pen . [VBA] Sub myPage_AN35_PenSelectionChanged(pen As Object) End Sub [Cicode] FUNCTION myPage_AN35_PenSelectionChanged(OBJECT processAnalyst.221 [VBA] Sub myPage_AN35_PenRenamed(pen As Object) End Sub [Cicode] FUNCTION myPage_AN35_PenRenamed(OBJECT processAnalyst. This maybe invalid if the last pen was deleted from the view. (Cicode only) Remarks Selection can change via user interaction (such as clicking on pens. deleting/ adding pens) and automation. OBJECT pen) END HorizontalAxisChanged [Event] This event is raised when the date/time axis position or scale of a pen is changed. processAnalyst [in] Indicates the Process Analyst object which raised the event. 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. Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

Remarks When the LockedPens property is True. See Also IProcessAnalyst. this event is fired only once with the pen parameter marked as invalid. OBJECT pen) [C++] VerticalAxisChanged(IPen* pen) Parameters pen [in] Refers to the pen that has changed. [VBA] Sub myPage_AN35_VerticalAxisChanged (pen As Object) End Sub . (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.LockedPens [Property][Get/Set]. OBJECT pen) 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. processAnalyst [in] Indicates the Process Analyst object which raised the event. This will be invalid if pens are locked. VerticalAxisChanged [Event] Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as AN35_E. processAnalyst [in] Indicates the Process Analyst object that raised the event (Cicode only). [VBA] Sub AN35_E_HorizontalAxisChanged (pen As Object) End Sub [Cicode] FUNCTION AN35_E_HorizontalAxisChanged (OBJECT processAnalyst.222 [in] Refers to the pen that has changed.

BSTR errorMessage) Parameters errorCode [in] Indicates the error that occurred. STRING errorMessage) [C++] Error(ErrorNotifyCode errorCode. . position As Integer) [Cicode] CursorMoved (OBJECT processAnalyst. INT errorCode. OBJECT cursor. int position) Parameters cursor [in] Refers to the cursor that has moved. OBJECT pen) END CursorMoved [Event] This event is raised whenever the cursor position changes. INT position) END Error [Event] This event is raised whenever an error is generated from the Process Analyst. errorMessage [in] Contains the message associated with the error code. processAnalyst [in] Indicates the Process Analyst object which raised the event. INT position) [C++] CursorMoved (IPen* pen. position As Integer) End Sub [Cicode] FUNCTION myPage_AN35_CursorMoved(OBJECT processAnalyst. position [in] Indicates the new position of the cursor. errorMessage As String) [Cicode] Error(OBJECT processAnalyst. Defined As [VBA] CursorMoved(cursor As Object. OBJECT cursor. See the ErrorNotifyCode enumeration. Defined As [VBA] Error(errorCode As Integer. (Cicode only). [VBA] Sub myPage_AN35_CursorMoved(pen As Object. Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.223 [Cicode] FUNCTION myPage_AN35_VerticalAxisChanged (OBJECT processAnalyst.

(Cicode only) See Also ErrorNotifyCode [Enumeration] Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. propertyName As String) End Sub . INT errorCode. STRING propertyName) [C++] PropertyChanged (BSTR interfaceName. IProcessAnalyst. [VBA] Sub myPage_AN35_Error(errorCode As Integer. propertyName [in] Indicates which property has changed. BSTR propertyName) Parameters interfaceName [in] Indicates which interface the property which has changed belongs to. STRING errorMessage) END PropertyChanged [Event] This event is raised whenever a property that has been subscribed to has changed. STRING interfaceName. propertyName As String) [Cicode] PropertyChanged (OBJECT processAnalyst.224 processAnalyst [in] Indicates the Process Analyst object which raised the event. [VBA] Sub myPage_AN35_PropertyChanged(interfaceName As String. See Also IProcessAnalyst.SubscribeForPropertyChange [Method]. Defined As [VBA] PropertyChanged(interfaceName As String. processAnalyst [in] Indicates the Process Analyst object which raised the event. errorMessage As String) End Sub [Cicode] FUNCTION myPage_AN35_Error(OBJECT processAnalyst. (Cicode only) Remarks For this event to be raised you must subscribe to one or more properties.UnsubscribePropertyChange [Method] Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35.

processAnalyst [in] Indicates the Process Analyst object which raised the event. Defined As [VBA] OVItemRemoved(item As Object) [Cicode] OVItemRemoved(OBJECT processAnalyst.225 [Cicode] FUNCTION myPage_AN35_PropertyChanged(OBJECT processAnalyst. OBJECT item) END OVItemRemoved [Event] This event is raised whenever an item is added to the ObjectView. OBJECT item) [C++] OVItemRemoved(IObjectViewItem* item) Parameters item [in] A reference to the item that was removed from the ObjectView. . Defined As [VBA] OVItemAdded(item As Object) [Cicode] OVItemAdded (OBJECT processAnalyst. [VBA] Sub myPage_AN35_OVItemAdded(item As Object) End Sub [Cicode] FUNCTION myPage_AN35_OVItemAdded(OBJECT processAnalyst. 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. (Cicode only) Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. STRING interfaceName. STRING propertyName) END OVItemAdded [Event] This event is raised whenever an item is added to the ObjectView. OBJECT item) [C++] OVItemAdded (IObjectViewItem* item) Parameters item [in] A reference to the item that was added to the ObjectView.

(Cicode only) . OBJECT item) END OVItemSelected [Event] This event is raised whenever an item is selected in the ObjectView. Defined As [VBA] OVItemChecked(item As Object) [Cicode] OVItemChecked(OBJECT processAnalyst. 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.226 [VBA] Sub myPage_AN35_OVItemRemoved(item As Object) End Sub [Cicode] FUNCTION myPage_AN35_OVItemRemoved(OBJECT processAnalyst. processAnalyst [in] Indicates the Process Analyst object which raised the event. OBJECT item) END OVItemChecked [Event] This event is raised whenever an item is checked in the ObjectView. OBJECT item) [C++] OVItemChecked(IObjectViewItem* item) Parameters item [in] A reference to the item that was checked in the ObjectView. OBJECT item) [C++] OVItemSelected(IObjectViewItem* item) Parameters item [in] A reference to the item that was selected in the ObjectView. Defined As [VBA] OVItemSelected(item As Object) [Cicode] OVItemSelected(OBJECT processAnalyst. [VBA] Sub myPage_AN35_OVItemSelected(item As Object) End Sub [Cicode] FUNCTION myPage_AN35_OVItemSelected(OBJECT processAnalyst.

OBJECT item) END OVColumnAdded [Event] This event is raised whenever a column is added to the ObjectView. STRING name) [C++] OVColumnRemoved(BSTR name) Parameters item [in] The name of the column that has been removed.227 Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. Defined As [VBA] OVColumnRemoved(name As String) [Cicode] OVColumnRemoved(OBJECT processAnalyst. Defined As [VBA] OVColumnAdded(name As String) [Cicode] OVColumnAdded(OBJECT processAnalyst. . STRING name) END OVColumnRemoved [Event] This event is raised whenever a column is removed to the ObjectView. [VBA] Sub myPage_AN35_OVColumnAdded(name As String) End Sub [Cicode] FUNCTION myPage_AN35_OVColumnAdded(OBJECT processAnalyst. [VBA] Sub myPage_AN35_OVItemChecked(item As Object) End Sub [Cicode] FUNCTION myPage_AN35_OVItemChecked(OBJECT processAnalyst. (Cicode only) Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. STRING name) [C++] OVColumnAdded(BSTR name) Parameters item [in] The name of the column that has been added processAnalyst [in] Indicates the Process Analyst object which raised the event.

Defined As [VBA] CommandExecuted(commandId As String) [Cicode] CommandExecuted (OBJECT processAnalyst.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_OVColumnRemoved(name As String) End Sub [Cicode] FUNCTION myPage_AN35_OVColumnRemoved(OBJECT processAnalyst. STRING name) END CommandExecuted [Event] This event is raised when a command is executed. See Also UpdateCommand [Event]. STRING commandId) [C++] CommandExecuted (BSTR commandId) Parameters commandId [in] Contains the unique identifier of the command that was executed. You can then use that identifier to determine which command was executed. (Cicode only) Calling Syntax Assumes you have a Process Analyst on a page with an event class defined as myPage_AN35. (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.228 processAnalyst [in] Indicates the Process Analyst object which raised the event. By using this event you can implement your own custom commands. [VBA] Sub myPage_AN35_CommandExecuted(commandId As String) End Sub [Cicode] FUNCTION myPage_AN35_CommandExecuted(OBJECT processAnalyst. STRING commandId) END . ICommandSystem. processAnalyst [in] Indicates the Process Analyst object which raised the event.

[VBA] Sub myPage_AN35_UpdateCommand(commandId As Integer) End Sub [Cicode] FUNCTION myPage_AN35_UpdateCommand(OBJECT processAnalyst. STRING commandId) [C++] UpdateCommand(BSTR commandId) Parameters commandId [in] Contains the unique identifier of the command that needs to be refreshed.229 UpdateCommand [Event] This event is raised whenever the Process Analyst needs to refresh the state of its toolbars. Defined As [VBA] Integer [Cicode] INT [C++] AlarmType . This event will be raised frequently so you should limit the amount of code executed in response to this event. (Cicode only) Remarks This event is only raised for custom commands. 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. processAnalyst [in] Indicates the Process Analyst object which raised the event. 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. Defined As [VBA] UpdateCommand(commandId As String) [Cicode] UpdateCommand(OBJECT processAnalyst. INT commandId) END AlarmType [Enumeration] Specifies the visual representation for an alarm pen.

Defined As [VBA] Integer [Cicode] INT [C++] AxisLabelType Members Member Name AxisLabelType_NONE AxisLabelType_DOUBLE AxisLabelType_INTEGER AxisLabelType_PERCENT AxisLabelType_AMPS AxisLabelType_DEGREES AxisLabelType_FEET AxisLabelType_FEETPERMIN AxisLabelType_FEETPERSEC AxisLabelType_GALLONS AxisLabelType_GALLONSPERHR AxisLabelType_GALLONSPERMIN AxisLabelType_GALLONSPERSEC AxisLabelType_HERTZ AxisLabelType_KILOGRAMS AxisLabelType_KILOGRAMSPERHR AxisLabelType_KILOGRAMSPERMIN AxisLabelType_KILOGRAMSPERSEC AxisLabelType_KILOMETRESPERHR AxisLabelType_KILOPASCALS AxisLabelType_KILOWATTS AxisLabelType_LITRES AxisLabelType_LITRESPERHR AxisLabelType_LITRESPERMIN AxisLabelType_LITRESPERSEC Description No labels will be visible on axis Displays in decimal format Displays in integer format Displays as “%” Displays as “A” Displays as “deg” Displays as “ft” Displays as “ft/min” Displays as “ft/s” Displays as “gal” Displays as “gal/h” Displays as “gal/min” Displays as “gal/s” Displays as “Hz” Displays as “kg” Displays as “kg/h” Displays as “kg/min” Displays as “kg/s” Displays as “kg/h” Displays as “kPa” Displays as “kW” Displays as “l” Displays as “l/h” Displays as “l/min” Displays as “l/s” Value 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 .AlarmType [Property][Get/Set] AxisLabelType [Enumeration] Specifies how the labels are drawn on the vertical axis.230 Members Member Name AlarmType_Digital AlarmType_Analog AlarmType_Advanced AlarmType_TimeStamped AlarmType_MultiDigital AlarmType_ArgyleAnalog AlarmType_TimeStampedDigital AlarmType_TimeStampedAnalog Description The tag is digital alarm The tag is an analog alarm The tag is an advanced alarm The tag is a time-stamped alarm The tag is a multi-digital alarm The tag is a legacy Argyle analog alarm The tag is a digital time-stamped alarm The tag is a analog time-stamped alarm Value 0 1 2 3 4 5 6 7 See Also IAlarmPen.

Defined As [VBA] Integer [Cicode] INT [C++] LineStyle Values Member Name LineStyle_SOLID LineStyle_DASH LineStyle_DOT LineStyle_DASHDOT LineStyle_DASHDOTDOT LineStyle_NONE Description Draws a solid line (all line widths) Draws a dashed line (line width 1 only) Draws a dot line (line width 1 only) Draws a dash dot (line width 1 only) Draws a dash dot dot (line width 1 only) Draws no line Value 0 1 2 3 4 5 HatchStyle [Enumeration] Defines the filling style for Alarm pens. IAlarmPen. Defined As [VBA] Integer [Cicode] INT [C++] HatchStyle Members Member Name HatchStyle_None HatchStyle_Horizontal HatchStyle_Vertical HatchStyle_ForwardDiagonal HatchStyle_BackwardDiagonal HatchStyle_Cross HatchStyle_DiagonalCross Description No pattern Horizontal line pattern Vertical line pattern Forward diagonal line pattern Backward diagonal line pattern Cross pattern Diagonal cross pattern Value 0 1 2 3 4 5 6 See Also IAlarmPen.SetHatchStyle [Method].231 Member Name AxisLabelType_METRES AxisLabelType_METRESPERMIN AxisLabelType_METRESPERSEC AxisLabelType_REVS AxisLabelType_REVSPERHR AxisLabelType_REVSPERMIN AxisLabelType_TONNES AxisLabelType_TONNESPERHR AxisLabelType_VOLTS AxisLabelType_WATTS AxisLabelType_LOOKUP Description Displays as “m” Displays as “m/min” Displays as “m/s” Displays as “Rev” Displays as “Rev/h” Displays as “RPM” Displays as “t” Displays as “t/h” Displays as “V” Displays as “W” Displays user-defined text for label Value 25 26 27 28 29 30 31 32 33 34 35 LineStyle [Enumeration] Defines the drawing style for a line.GetHatchStyle [Method] .

DataPoint [Property][Get/Set]. It is used in conjunction with the IPens. IPen.232 PenNameMode [Enumeration] Defines how the pen name will be generated. Indicates that you will be setting the name using the IPen. Defined As [VBA] Integer [Cicode] INT [C++] PenNameMode Members Member Name PenNameMode_Comment PenNameMode_Tag PenNameMode_Custom Description Value The comment field obtained from the Vijeo Citect trend/alarm tag 1 will be used as the pen name.Name 3 property. Defined As [VBA] Integer [Cicode] INT [C++] PointType Members Member Name PointType_NONE PointType_RECT PointType_CIRCLE PointType_PLUS Description No marker A rectangular marker A circular marker A plus marker Value 0 1 2 3 .Name [Property][Get/Set] PenType [Enumeration] Defines the plotting style of a Process Analyst pen.Create [Method]. See Also IPens. Defined As [VBA] Integer [Cicode] INT [C++] PenType Members Member Name PenType_ANALOG PenType_DIGITAL PenType_ALARM Description A pen with an analog range A pen with a range of 0 and 1 A pen represented as states Value 4097 4098 4099 See Also IPens.Create [Method] PointType [Enumeration] Defines the visual cue applied to samples of a pen.Create method. IPen. The value of the IPen.DataPoint property will be used as the pen 2 name.

ToolbarButtonType_Toggle The button has two states: On and Off. as will the timestamp The value will be the minimum value out of all the individual samples within the multiple sample. Defined As [VBA] Integer [Cicode] INT [C++] RequestMode Members Member Name RequestMode_Average RequestMode_Minimum Description The value will be an average of all the individual samples within the multiple sample.ButtonType [Property][Get] LineType [Enumeration] Defines the visual representation of the lines between samples of an analog pen. The value will be the maximum value out of all the individual samples within the multiple sample. The value will the latest arrived value out of all the individual samples within the multiple sample.233 Member Name PointType_CROSS PointType_TRIANGLE PointType_ELLIPSE Description A cross marker A triangular marker A elliptical marker Value 4 5 6 See Also IPen.SetQualityCompactionPointType [Method] RequestMode [Enumeration] Defines the data acquisition method for a pen. ICommand. The timestamp will be the average of all the individual samples. Defined As [VBA] Integer . The timestamp will be the average of all the individual samples.Create [Method]. Value 0 1 RequestMode_Maximum 2 RequestMode_Newest 3 See Also IPen. ToolbarButtonType_Separato A visual marker used to group buttons. The timestamp will be the average of all the individual samples. r See Also ICommandSystem.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 0 1 2 ToolbarButtonType_Push Standard push button behavior.

ErrorNotifyCode_NoPrivilege Occurs when the current user does not have the required privileges to view the data. ErrorNotifyCode_OutOfMemory Occurs when a memory error is detected. Defined As [VBA] Integer [Cicode] INT [C++] QualityType Members Member Name QualityType_Good QualityType_NA Description The sample is good Indicates a loss of connection Value 0 1 . ErrorNotifyCode_InvalidArgument Occurs when an invalid argument is specified. ErrorNotifyCode_CtapiConnectionOffline Occurs when connections cannot be made to the trend and/or alarm servers.234 [Cicode] INT [C++] LineType Members Member Name Description Value LineType_STRAIGHT A single line is drawn from point A to point B.LineInterpolation [Property][Get/Set] ErrorNotifyCode [Enumeration] Defines known errors that can occur during operation. 0 LineType_STEPPED The line drawn will maintain the value of the previous sample. ErrorNotifyCode_BadVersion Occurs when the trend and/or alarm servers do not match the client version. See Also IAnalogPen. ErrorNotifyCode_NoServer Occurs when Vijeo Citect cannot find a server to get the data from. Defined As [VBA] Integer [Cicode] INT [C++] ErrorNotifyCode Members Member Name ErrorNotifyCode_None ErrorNotifyCode_InvalidTag Description Value 0 1 2 3 4 5 6 7 8 No error. a vertical line will be drawn to the new sample value. See Also Error [Event] QualityType [Enumeration] Defines the known quality states of data. Occurs when the tag specified for the pen does not exist. When the 1 samples differ. ErrorNotifyCode_Unknown Occurs when an unknown Vijeo Citect or Windows error occurs.

Defined As [VBA] Integer [Cicode] INT [C++] QualityCompactionType Members Member Name QualityCompactionType_Single QualityCompactionType_Multiple QualityCompactionType_Interpolated Description Value Representation when the marker represents a single 0 sample Representation when the marker represents a 1 calculation of two or more samples Representation when the marker represents 2 interpolated samples See Also IPen.SaveToFile [Method] IToolbar Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IToolbar .SetQualityCompactionPointType [Method] FileLocation [Enumeration] Specifies the location to save and write Process Analyst views to.235 Member Name QualityType_Gated Description Indicates the data was marked as unwanted Value 2 Remarks An alarm pens “disabled” state is treated as QualityType_Gated.LoadFromFile [Method]. See Also IPen. IProcessAnalyst.SetQualityLineStyle [Method] QualityCompactionType [Enumeration] Specifies the different types of presentation used for a sample. Defined As [VBA] Integer [Cicode] INT [C++] FileLocation Members Member Name FileLocation_Local FileLocation_Server FileLocation_User Description Value Refers to the project folder 0 Refers to the both the primary/standby server paths 1 Refers to the My Documents folder 2 See Also IProcessAnalyst.

"Visible"). Limits True (-1): Visible False (0): Invisible Remarks If the toolbar is not visible. // Setting property value _ObjectSetProperty(hToolbar.Visible = False End Sub [Cicode] FUNCTION Example(OBJECT hToolbar) // Getting property value INT nVisible = _ObjectGetProperty(hToolbar. (e.g. Defined As [VBA] Boolean Visible [Cicode] INT Visible [C++] VARIANT_BOOL Visible Execution Result If the property get succeeds. Only the main toolbar can be hidden.Visible ‘Setting Property value Command.236 Methods (0) Properties (2) IToolbar.Toolbars. If the return variable is bad. Setting the new toolbar to invisible will result in a GeneralFailure.Buttons [Property][Get] IToolbar. Defined As [VBA] Object Buttons . VBA: ProcessAnalyst. all buttons tied to it will not appear. the return value will be InvalidArgument.Visible [Property][Get/Set] IToolbar.. the return value will be Success. Calling Syntax This example assumes there is a valid Toolbar object as retrieved from a Process Analyst’s Toolbars collection. END IToolbar.Item(1)) [VBA] Sub Example(Toolbar As Object) Dim visible As Boolean ‘Getting Property value visible = Command.Buttons [Property][Get] Gets this Toolbars collection of Buttons. "Visible". 0).Visible [Property][Get/Set] Gets and Sets this Toolbars Visible state.

_NewEnum [Property][Get] IToolbars. Calling Syntax . Calling Syntax This example assumes there is a valid Toolbar object as retrieved from a Process Analyst’s Toolbars collection. the return value will be Success. If the return variable is bad.g.Toolbars. "Buttons").Buttons End Sub [Cicode] FUNCTION Example(OBJECT hToolbar) // Getting property value OBJECT hButtons = _ObjectGetProperty(hToolbar. END IToolbars Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IToolbar Methods (0) Properties (3) IToolbars. (e.Count [Property][Get] IToolbars. the return value will be InvalidArgument. the return value will be InvalidArgument.Item(1)) [VBA] Sub Example(Toolbar As Object) Dim buttons As Object ‘Getting Property value Set buttons = Command. the return value will be Success.. If the return variable is bad.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. VBA: ProcessAnalyst.Item [Property][Get] IToolbars.237 [Cicode] OBJECT Buttons [C++] IToolbarButtons* Buttons Execution Result If the property get succeeds.

If the index is out of range.238 This example assumes there is a valid Toolbars collection as retrieved from an ObjectView. (One based) 1 = Main toolbar. 2 = Navigation toolbar.g.Toolbars).. [VBA] Sub Example(Toolbars As Object) Dim count As Long ‘Getting Property value count = Toolbars. Execution Result If the property get succeeds. Calling Syntax This example assumes there is a valid Toolbars collection as retrieved from an ObjectView. END IToolbars. VBA: objectView. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index. Each. (e.g. END IToolbars. Calling Syntax . IToolbar* Item) Parameters index [in] Indicates the index location of the child item to return from this collection. VBA: objectView.Toolbars) [VBA] Sub Example(Toolbars As Object) Dim toolbar As Object ‘Getting Property value Set toolbar = Toolbars.Item [Property][Get] Gets the Toolbar at a supplied index location in this collection. the return value will be InvalidArgument. 1). "Count"). "get_Item"..._NewEnum [Property][Get] This allows For. the return value will be Success.. (e. Next integration in VB.Count End Sub [Cicode] FUNCTION Example(OBJECT hToolbars) // Getting property value INT nCount= _ObjectGetProperty(hToolbars.Item(1) End Sub [Cicode] FUNCTION Example(OBJECT hToolbars) // Getting property value OBJECT hToolbar = _ObjectCallMethod(hToolbars.

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 (e. This property is not applicable to Cicode. END .Toolbars).Toolbars.g.239 This example assumes there is a valid Toolbars collection as retrieved from an ObjectView (e..Buttons). "CommandId"). VBA: objectView.CommandId [Property][Get] IToolbarButton.Comma ndId [Property][Get] Gets the ID of the associated command for this button.CommandId End Sub [Cicode] FUNCTION Example(OBJECT hButtons) // Getting property value STRING nCommandId = _ObjectGetProperty(hButtons. [VBA] Sub Example(Buttons As Object) Dim commandId As String ‘Getting Property value commandId = Buttons.. [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 IToolbarButton Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IToolbar Methods (0) Properties (1) IToolbarButton.g. VBA: objectView.Item(1).

(its icon. Defined As [VBA] Add(CommandId as String) [Cicode] Add (STRING CommandId) [C++] HRESULT Add (BSTR CommandId) Parameters CommandId [in] The Command ID of a command to link to the new button that is being added.RemoveAll [Method] Properties (3) IToolbarButtons.Remove [Method] IToolbarButtons. the return value will be Success.Toolbars.Count [Property][Get] IToolbarButtons. the ID supplied will be linked to the new button that is added. If the command ID is invalid.Item(1)._NewEnum [Property][Get] IToolbarButtons. See Also CommandExecuted [Event] Calling Syntax This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e. the return value will be InvalidArgument. VBA: objectView.Add [Method] Adds a toolbar button linked to the command identified by the supplied Command Id to this Toolbar.. [VBA] Sub Example(Buttons As Object) Buttons. The Commands properties will be applied to that button. tooltip.Add [Method] IToolbarButtons.240 IToolbarButtons Interface Defined As [VBA] Object [Cicode] OBJECT [C++] IToolbar Methods (3) IToolbarButtons.Item [Property][Get] IToolbarButtons. Execution Result If this method succeeds.Add(“Citect_Command_Help”) End Sub . the CommandExecuted event will raise with this Command ID.g. security) If this button is pressed.Buttons). Remarks If this method succeeds.

If this method fails. “Citect_Command_Help”). (e. the return value will be InvalidRange.Remov eAll [Method] Removes all buttons from this Toolbar. VBA: objectView. (e. the return value will be GeneralFailure.Toolbars.Toolbars. If the method fails.Remov e [Method] Removes a button from this toolbar at the supplied index.g. (1 Based) Execution Results If the method succeeds.Remove(1) End Sub [Cicode] FUNCTION Example(OBJECT hButtons) _ObjectCallMethod(hButtons.Buttons).Buttons) . END IToolbarButtons. [VBA] Sub Example(Buttons As Object) Buttons. the return value will be Success. Calling Syntax This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. Defined As [VBA] Remove(Index as Integer) [Cicode] Remove (INT Index) [C++] HRESULT Remove (int Index) Parameters Index [in] The index of the button to remove from this toolbar.. VBA: objectView. “Add”. “Remove”. Calling Syntax This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView. the return value will be Success.Item(1). the return value will be GeneralFailure. 1). Defined As [VBA] RemoveAll() [Cicode] RemoveAll() [C++] HRESULT RemoveAll() Execution Results If this method succeeds. If the index is out of range.g.241 [Cicode] FUNCTION Example(OBJECT hButtons) _ObjectCallMethod(hButtons.Item(1).. END IToolbarButtons.

(One based) Execution Results If the property get succeeds.242 [VBA] Sub Example(Buttons As Object) Buttons.Count End Sub [Cicode] FUNCTION Example(OBJECT hButtons) // Getting property value INT nCount = _ObjectGetProperty(hButtons.g. VBA: objectView. 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. Defined As [VBA] Item(index As Long) as Object [Cicode] OBJECT Item(INT index) [C++] Item(int index.Toolbars. IToolbarButton* Item) Parameters index [in] Indicates the index location of the button to return from this collection. END IToolbarButtons.Count [Property][Get] Gets the number of Buttons in this collection. "Count"). (e.Item [Property][Get] Gets the button at a supplied index location in this collection. If the index is out of range. the return value will be success.Buttons). the return value will be InvalidArgument. If the method fails.. “RemoveAll”). . END IToolbarButtons.Item(1).RemoveAll() End Sub [Cicode] FUNCTION Example(OBJECT hButtons) _ObjectCallMethod(hButtons. the return value will be GeneralFailure. [VBA] Sub Example(Buttons As Object) Dim count As Long ‘Getting Property value count = Buttons.

Position [Property][Get/Set] ITrendCursor.Collection [Property][Get] ITrendCursor. Next integration in VB. 1). END IToolbarButtons.243 Calling Syntax This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e.Width [Property][Get/Set] ITrendCursor.Name [Property][Get/Set] .g.Item(1).GetValue [Method] ITrendCursor._NewE num [Property][Get] This allows For. [VBA] Sub Example(Buttons As Object) Dim toolbar As Object ‘Getting Property value Set toolbar = Buttons..Visible [Property][Get/Set] ITrendCursor.Item(1) End Sub [Cicode] FUNCTION Example(OBJECT hButtons) // Getting property value OBJECT hToolbar = _ObjectCallMethod(hButtons..Delete [Method] Properties ITrendCursor. Calling Syntax This example assumes there is a valid ToolbarButtons collection as retrieved from an ObjectView (e. [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 ITrendCursor Interface Defined As [VBA] Object [Cicode] OBJECT [C++] ITrendCursor Methods ITrendCursor.Item(1).Color [Property][Get/Set] ITrendCursor.Toolbars. This property is not applicable to Cicode..Toolbars.Buttons). VBA: objectView. VBA: objectView.Buttons). "get_Item"..g. Each.

the return value will be GeneralFailure.PenLabelWidth [Property][Get/Set] ITrendCursor.PenLabelHeight [Property][Get/Set] ITrendCursor. STRING value) [C++] HRESULT Create GetValue(IPen* pen. asLocal As Boolean. If the cursor is deleted.GetValue [Method] Gets the value at the cursor for the given pen. INT asLocal. REAL time. value As String) [Cicode] GetValue(OBJECT pen. [VBA] Sub Example(cursor As Object. milli [out] Added to time (see above) to give cursor time in millisecond accuracy. VARIANT_BOOL asLocal. value [out] The value of the trend for the given pen at the returned time. time As Date. short *milli. then the return value will be InvalidArgument. milli As Integer. INT milli.PenLabelY [Property][Get/Set] ITrendCursor. the return value will be Success. pen As Object) Dim asLocal As Boolean Dim cursorTime As Date Dim milli As Integer Dim cursorValue As String . This is accurate to one second and must be combined with milli to give millisecond accuracy.LabelsLocked [Property][Get/Set] ITrendCursor. If one of the return variables are bad. Execution Result If the function succeeds. DATE *time. asLocal [in] Set to True (-1) if returned time is required in Local form (False (0) for UTC). BSTR *value) Parameters pen [in] The pen for which the value is required.PenLabelVisible [Property][Get/Set] ITrendCursor.244 ITrendCursor. Defined As [VBA] GetValue(pen As Object.PenLabelX [Property][Get/Set] ITrendCursor. Calling Syntax This example assumes you have a valid reference to a cursor and a pen. time [out] The time represented by the cursor position.

Delete [Method] Deletes the cursor. INT milli. operations on them will result in failure. time.Delete End Sub [Cicode] FUNCTION Example(OBJECT hCursor) _ObjectCallMethod(hCursor.245 asLocal = 0 cursor. asLocal. cursorTime. END ITrendCursor. Any current references to the cursor will continue to be valid. _ObjectCallMethod(hCursor . however. Calling Syntax This example assumes you have a valid reference to a cursor. REAL time. [VBA] Sub Example(cursor As Object) cursor. END ITrendCursor. "GetValue". Remarks This method will remove the cursor from the Process Analyst. asLocal. If the cursor is deleted. hPen. milli. cursorValue End Sub [Cicode] FUNCTION Example(OBJECT hCursor. OBJECT hPen) INT asLocal = 0. milli. "Delete"). Defined As [VBA] Long Color [Cicode] INT Color [C++] OLE_COLOR Color Execution Result . STRING value.Color [Property][Get/Set] Gets or Sets the line color of the cursor.GetValue pen. value). Defined As [VBA] Delete() [Cicode] Delete() [C++] HRESULT Delete() Execution Result If the function succeeds. the return value will be Success. the return value will be GeneralFailure.

Limits Minimum (0) Maximum (8) Calling Syntax This example assumes you have a valid reference to a cursor. If the return variable is bad then the return value will be InvalidArgument. “Color”). 255)). PackedRGB(0.246 If the property get/set succeeds the return value will be Success. If the cursor is deleted the return value will be GeneralFailure. If the cursor is deleted the return value will be GeneralFailure. “Color”. Remarks The Cicode function PackedRGB can be used to convert an RGB color specification to the OLE_COLOR type used by the Process Analyst. If the return variable is bad then the return value will be InvalidArgument.Color = 255 End Sub [Cicode] FUNCTION Example(OBJECT hCursor) INT trendCursorColor. 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. [VBA] Sub Example(cursor As Object) Dim lineWidth As Long ‘Getting Property value . [VBA] Sub Example(cursor As Object) Dim trendCursorColor As Long ‘Getting Property value trendCursorColor = cursor. // Getting current property value trendCursorColor = _ObjectGetProperty(hCursor. // Setting Property to blue _ObjectSetProperty(hCursor. END ITrendCursor. Calling Syntax This example assumes you have a valid reference to a cursor. 0.Width [Property][Get/Set] Gets or Sets the line width of the cursor.Color ‘Setting Property value (to red) cursor.

“Position”). // Getting current property value lineWidth = _ObjectGetProperty(hCursor.Width = 5 End Sub [Cicode] FUNCTION Example(OBJECT hCursor) INT lineWidth.Width ‘Setting Property value cursor. 300). Calling Syntax This example assumes you have a valid reference to a cursor. “Width”).Position [Property][Get/Set] Get or Set the cursor’s physical position in the Process Analyst. // Setting Property to 5 _ObjectSetProperty(hCursor. “Position”. “Width”. Defined As . Remarks The cursor position is measured as the number of pixels from the left of the Process Analyst graph. // Setting Property to (300) _ObjectSetProperty(hCursor. If the return variable is bad. the return value will be Success.Visible [Property][Get/Set] Get or Set whether the cursor is visible. 5). the return value will be InvalidArgument. // Getting current property value position = _ObjectGetProperty(hCursor. the return value will be GeneralFailure.247 lineWidth = cursor. [VBA] Sub Example(cursor As Object) Dim position As Integer ‘Getting Property value position = cursor. Defined As [VBA] Long Position [Cicode] INT Position [C++] int Position Execution Result If the property get/set succeeds.Position = 300 End Sub [Cicode] FUNCTION Example(OBJECT hCursor) INT position.Position ‘Setting Property value cursor. If the cursor is deleted. END ITrendCursor. END ITrendCursor.

the return value will be Success.248 [VBA] Boolean Visible [Cicode] INT Visible [C++] VARIANT_BOOL Visible Execution Result If the property get/set succeeds. If the cursor is deleted. [VBA] Sub Example(cursor As Object) Dim visibility As Boolean ‘Getting Property value visibility = cursor. 0). If the return variable is bad. Calling Syntax This example assumes you have a valid reference to a cursor. “Visible”). // Setting Property to False (0) _ObjectSetProperty(hCursor. the return value will be GeneralFailure.Visible = False End Sub [Cicode] FUNCTION Example(OBJECT hCursor) INT visibility. Remarks This property controls the visibility of the cursor. the return value will be InvalidArgument. Defined As [VBA] Object Collection [Cicode] OBJECT Collection [C++] HRESULT Collection(ICursors **cursor) Execution Result If the property get/set succeeds.Visible ‘Setting Property value (False) cursor. . // Getting current property value visibility = _ObjectGetProperty(hCursor. END ITrendCursor.PenLabelVisible [Property][Get/Set] Calling Syntax This example assumes you have a valid reference to a cursor. the return value will be InvalidArgument. If the return variable is bad. “Visible”. the return value will be Success. If the cursor is deleted.Collection [Property][Get] Obtain a reference to the ICursors collection that contains the cursor. See Also ITrendCursor. the return value will be GeneralFailure. The visibility is also applied to all labels associated with the cursor.

Calling Syntax This example assumes you have a valid reference to a cursor. Defined As [VBA] String Name [Cicode] STRING Name [C++] BSTR Name Execution Result If the property get/set succeeds. If the name is 0 characters or greater than 250.Name ‘Setting Property value cursor. the return value will be InvalidArgument. If the cursor is deleted. Setting the Name property will fail if a cursor with that name already exists. END . // Getting current property value name = _ObjectGetProperty(hCursor. If the return variable is bad. “Collection”). “Name”). remember that cursor names must be unique.Name [Property][Get/Set] Get or Set the Name of the cursor. the return value will be GeneralFailure. “NewCursor”). the return value will be Success.249 [VBA] Sub Example(cursor As Object) Dim cursors As Object ‘Getting Property collection Set cursors = cursor. [VBA] Sub Example(cursor As Object) Dim name As String ‘Getting Property value name = cursor. // Setting Property _ObjectSetProperty(hCursor. “Name”.Collection End Sub [Cicode] FUNCTION Example(OBJECT hCursor) OBJECT hCursors. Remarks When setting the name property.Name = “NewCursor” End Sub [Cicode] FUNCTION Example(OBJECT hCursor) STRING name. END ITrendCursor. // Getting collection hCursors = _ObjectGetProperty(hCursor. the return value will be InvalidArgument.

hPen. the return value will be Success. Limits True (-1): Label is visible. If the cursor is deleted. If the return variable is bad. 0).PenLabel Visible [Property][Get/ Set] Get or Set the label visibility of the specified pen on this cursor. "get_PenLabelVisible". the return value will be GeneralFailure. Defined As [VBA] Boolean PenLabelVisible(pen As Object) [Cicode] INT PenLabelVisible(OBJECT pen) [C++] HRESULT PenLabelVisible(IPen* pen.PenLabelVisible(pen) ‘Setting Property value (False) cursor. "put_PenLabelVisible". if a particular label is hidden using PenLabelVisible. the return value will be InvalidArgument. Remarks Setting the visibility of the cursor using the Visible property will override the pen label visibility. For example. // Setting Property to FALSE _ObjectCallMethod(hCursor . this label will be shown again if Visible is set to True (-1). hPen). // Getting current property value labelVisible = _ObjectCallMethod(hCursor. False (0): Label is hidden.Visible [Property][Get/Set] Calling Syntax This example assumes you have a valid reference to a cursor and a pen. pen As Object) Dim labelVisible As Boolean ‘Getting Property value labelVisible = cursor.250 ITrendCursor. END . VARIANT_BOOL labelVisible) Parameters pen [in] The pen for which cursor label is to be referenced. OBJECT hPen) INT labelVisible. Execution Result If the property get/set succeeds.PenLabelVisible(pen) = False End Sub [Cicode] FUNCTION Example(OBJECT hCursor. [VBA] Sub Example(cursor As Object. See Also ITrendCursor.

Execution Result If the property get/set succeeds the return value will be Success. // Setting Property to 100 _ObjectCallMethod(hCursor . ITrendCursor. // Getting current property value labelWidth = _ObjectCallMethod(hCursor . If the return variable is bad then the return value will be InvalidArgument.PenLabelWidth(pen) ‘Setting Property value (100) cursor. ITrendCursor. [VBA] Sub Example(cursor As Object. hPen. pen As Object) Dim labelWidth As Double ‘Getting Property value labelWidth = cursor. double labelWidth) Parameters pen [in] The pen for which cursor label is to be referenced. double labelHeight) Parameters . Remarks The value of width is represented in pixels. Defined As [VBA] Double PenLabelHeight(pen As Object) [Cicode] REAL PenLabelHeight (OBJECT pen) [C++] HRESULT PenLabelHeight (IPen* pen. If the cursor is deleted the return value will be GeneralFailure. "put_PenLabelWidth".PenLabelHeight [Property][Get/Set].PenLabelX [Property][Get/Set].PenLabel Height [Property][Get/ Set] Get or Set the label height of the specified pen on this cursor.251 ITrendCursor.PenLabel Width [Property][Get/ Set] Get or Set the label width of the specified pen on this cursor. "get_PenLabelWidth". See Also ITrendCursor. Defined As [VBA] Double PenLabelWidth(pen As Object) [Cicode] REAL PenLabelWidth (OBJECT pen) [C++] HRESULT PenLabelWidth (IPen* pen. END ITrendCursor.PenLabelY [Property][Get/Set] Calling Syntax This example assumes you have a valid reference to a cursor and a pen. hPen).PenLabelWidth(pen) = 100 End Sub [Cicode] FUNCTION Example(OBJECT hCursor. OBJECT hPen) REAL labelWidth. 100).

PenLabelHeight (pen) = 100 End Sub [Cicode] FUNCTION Example(OBJECT hCursor.252 pen [in] The pen for which cursor label is to be referenced. If the return variable is bad then the return value will be InvalidArgument. OBJECT hPen) REAL labelHeight. "put_PenLabelHeight". If the return variable is bad then the return value will be InvalidArgument.PenLabelY [Property][Get/Set] Calling Syntax This example assumes you have a valid reference to a cursor and a pen.PenLabelHeight(pen) ‘Setting Property value (100) cursor. 100). ITrendCursor. double labelX) Parameters pen [in] The pen for which cursor label is to be referenced. hPen.PenLabel X [Property][Get/Set] Get or Set the label’s X-Axis position of the specified pen on this cursor. If the cursor is deleted the return value will be GeneralFailure. [VBA] Sub Example(cursor As Object. See Also ITrendCursor. ITrendCursor.PenLabelWidth [Property][Get/Set]. Execution Result If the property get/set succeeds the return value will be Success. Remarks The value of height is represented in pixels. "get_PenLabelHeight". pen As Object) Dim labelHeight As Double ‘Getting Property value labelHeight = cursor. Defined As [VBA] Double PenLabelX(pen As Object) [Cicode] REAL PenLabelX (OBJECT pen) [C++] HRESULT PenLabelX (IPen* pen. hPen).PenLabelX [Property][Get/Set]. END ITrendCursor. // Getting current property value labelHeight = _ObjectCallMethod(hCursor . If the cursor is deleted the return value will be GeneralFailure. Execution Result If the property get/set succeeds the return value will be Success. // Setting Property to 100 _ObjectCallMethod(hCursor . .

pen As Object) Dim labelX As Double ‘Getting Property value labelX = cursor. END ITrendCursor.PenLabelWidth [Property][Get/Set]. ITrendCursor. // Getting current property value labelX = _ObjectCallMethod(hCursor . hPen).PenLabelHeight [Property][Get/Set].PenLabelHeight [Property][Get/Set].PenLabelY(pen) = 100 End Sub .PenLabelY [Property][Get/Set] Calling Syntax This example assumes you have a valid reference to a cursor and a pen. 100).253 Remarks The label position is represented in pixels.PenLabelX(pen) ‘Setting Property value (100) cursor. pen As Object) Dim labelY As Double ‘Getting Property value labelY = cursor. "get_PenLabelX". ITrendCursor.PenLabelX [Property][Get/Set] Calling Syntax This example assumes you have a valid reference to a cursor and a pen. See Also ITrendCursor. OBJECT hPen) REAL labelX. hPen. [VBA] Sub Example(cursor As Object. double labelY) Remarks The label position is represented in pixels Syntax ITrendCursor. "put_PenLabelX".PenLabelX(pen) = 100 End Sub [Cicode] FUNCTION Example(OBJECT hCursor. Defined As [VBA] Double PenLabelY(pen As Object) [Cicode] REAL PenLabelY (OBJECT pen) [C++] HRESULT PenLabelY (IPen* pIPen.PenLabel Y [Property][Get/Set] Get or Set the label’s Y-Axis position of the specified pen on this cursor. [VBA] Sub Example(cursor As Object.PenLabelWidth [Property][Get/Set]. ITrendCursor.PenLabelY(pen) ‘Setting Property value (100) cursor. // Setting Property to 100 _ObjectCallMethod(hCursor . ITrendCursor.

100). END . “LabelsLocked”. END ITrendCursor. Calling Syntax This example assumes you have a valid reference to a cursor. “LabelsLocked”). // Setting Property to 100 _ObjectCallMethod(hCursor . OBJECT hPen) REAL labelY. hPen). // Getting current property value labelY = _ObjectCallMethod(hCursor . // Getting current property value labelsLocked = _ObjectGetProperty(hCursor.LabelsLocked ‘Setting Property value (False) cursor. 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. [VBA] Sub Example(cursor As Object) Dim labelsLocked As Boolean ‘Getting Property value labelsLocked = cursor. "put_PenLabelY". "get_PenLabelY". they will not move when the cursor position is changed. // Setting Property to False (0) _ObjectSetProperty(hCursor.LabelsLo cked [Property][Get/Set] Get or Set whether the cursor label positions are locked. hPen.254 [Cicode] FUNCTION Example(OBJECT hCursor.LabelsLocked = False End Sub [Cicode] FUNCTION Example(OBJECT hCursor) INT labelsLocked. 0).

. INT button) END The following example uses the MouseClick event to cancel the box zoom operation when the right mouse button is clicked. You will also need to configure the Process Analyst object’s Name and Event class by doing the following: 1 2 3 4 5 6 7 8 In the CSV example project open the “test” page in Graphics Builder Click the Process Analyst icon in the toolbox to insert the control. See “Events”.Chapter 13: Cicode Programming Reference Automation Examples The best way of understanding how to use the Process Analyst’s automation model is to see some example code. Click Apply and OK. The example below shows how to define a handler for the “MouseClick” event with an event class defined as “CPA_E”. To handle an event you must provide a handler for the event by prepending your Process Analyst’s event class name with the event name you want to handle and an underscore. [VBA] Sub CPA_E_MouseClick(pen As Object. Change the Event class to CPA_E. Handling an Event The Process Analyst contains many events that are triggered when certain actions occur. button As Integer) End Sub [Cicode] FUNCTION CPA_E_MouseClick(OBJECT hPA. OBJECT hPen. To configure the event class. see “Automation Examples”. The following examples cover the most important concepts of extensibility offered by the Process Analyst: Event handling Enumerating collections Custom commands Custom columns All of the samples assume you are using the CSV example project and have pasted a new Process Analyst onto the test page provided by the project. Double-click the Process Analyst. Change the Object Name to CPA. Click the Access/Identification tab. Resize the control to fit the test page.

Pens. . The object name is “CPA” and the event class name is “CPA_E”. and so on. In the example below. the page name is called “test”. "ZoomMode".Buttons(iButton) Next iButton End If End Sub [Cicode] FUNCTION EnumerateToolbarButtons() OBJECT hPA = ObjectByName("CPA").Count For iButton = 1 To nButtons Set button = navBar. OBJECT hPen. // The Navigation toolbar is the 2nd toolbar in the collection OBJECT hNavBar = _ObjectCallMethod(hToolbars.Item(2) If IsNull(navBar) = False Then nButtons = navBar. "Toolbars"). button As Integer) Dim bZoomMode As Boolean If (button = 1) Then bZoomMode = test_CPA. you need to prepend it with the page name and an underscore. This example shows you how to enumerate through the buttons on the navigation toolbar.ZoomMode = False End If End If End Sub [Cicode] FUNCTION CPA_E_MouseClick(OBJECT hPA. INT button) INT bZoomMode = 0. Commands. "ZoomMode") IF (bZoomMode = -1) THEN _ObjectSetProperty(hPA. 0) END END END Enumerating collections The Process Analyst contains many “collections” such as Panes. "get_Item".256 Note: When referring to an ActiveX object in VBA. [VBA] Sub CPA_MouseClick(pen As Object. 2).Toolbars. OBJECT hToolbars = _ObjectGetProperty(hPA.Buttons. IF (button = 1) THEN bZoomMode = _ObjectGetProperty(hPA. Cursors. [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. OBJECT hButtons.ZoomMode If (bZoomMode = True) Then test_CPA.

IF (ObjectIsValid(hNavBar)) THEN hButtons = _ObjectGetProperty(hNavBar. This event will be called when the command is executed. adding it to a toolbar. iButton). and responding to the CommandExecuted event. whether by Cicode or by clicking on the respective toolbar button. Implementing a custom command Custom commands are easy to implement and involve creating a new command. To add a new command and add it to the toolbar as a button: 1 2 3 Display the properties for your Process Analyst in the Graphics Builder See Adding New Commands. Use the following settings: ID =“SelectedPen” Tooltip = “Show the name of the selected pen” Button style = <Push> Enabled = <Checked> Once you’ve done this. This example implements a command that displays a message box showing the name of the primary selected pen. See Also “CommandExecuted [Event]” [VBA] Sub CPA_E_CommandExecuted(commandId As String) Select Case commandId Case "SelectedPen" Call OnSelectedPen() End Select End Sub Sub OnSelectedPen() Dim pen As Object Dim sName As String . INT nButtons. "get_Item". INT iButton. "Buttons").257 OBJECT hButton. you need to write an event handler for the CommandExecuted event. The CommandExecuted event when triggered has a commandId parameter identifying the command executed by the operator. 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. "Count"). nButtons = _ObjectGetProperty(hButtons. FOR iButton = 1 TO nButtons DO hButton = _ObjectCallMethod(hButtons.

STRING commandId) SELECT CASE commandId CASE "SelectedPen" OnSelectedPen(hPA). 48).Name End If sMessage = "The name of the selected pen is:" + Chr(13) + sName MsgBox sMessage. IF ObjectIsValid(hPen) THEN sName = _ObjectGetProperty(hPen. sMessage. STRING sMessage. "Name"). END SELECT END FUNCTION OnSelectedPen(OBJECT hPA) OBJECT hPen.258 Dim sMessage As String Set pen = test_CPA. IF ObjectIsValid(hPA) THEN hPen = _ObjectGetProperty(hPA. "Citect" End Sub [Cicode] FUNCTION CPA_E_CommandExecuted(OBJECT hPA. Message("Citect".LastSelectedPen If IsNull(pen) = False Then sName = pen. STRING sName. The example below disables the button if there are no pens. END END Enabling and Disabling a Command You can also respond to the UpdateCommand event to control the enable/disable state of the command’s toolbar button. 48. END sMessage = "The name of the selected pen is:^n" + sName. [VBA] Sub CPA_E_UpdateCommand(commandId As String) Select Case commandId Case "SelectedPen" Call OnUpdatedSelectedPen() End Select End Sub Sub OnUpdatedSelectedPen() Dim pen As Object Dim command As Object Dim sName As String On Error Goto errHandler . "LastSelectedPen").

Enabled = False End Sub [Cicode] FUNCTION CPA_E_UpdateCommand(OBJECT hPA.CommandSystem. however. IF (iError <> 0) THEN _ObjectSetProperty(hCommand."get_ItemById". this isn’t too difficult because the Object View tree always reflects how many panes and pens are being displayed. 0). -1).ItemById("SelectedPen") Set pen = test_CPA. STRING commandId) SELECT CASE commandId CASE "PaneLock" OnUpdatePaneLock(hPA). "SelectedPen"). OBJECT hCommandSystem = _ObjectGetProperty(hPA.Name command.Enabled = True Exit Sub errHandler: command.259 Set command = test_CPA."CommandSystem"). The Update Function The update function is complex since it needs to match an Object View pen item with a real pen object. iError = IsError(). "Name"). Implementing a custom column . END ErrSet(0). INT iError = 0. The sample below implements a column that calculates the “Display Period” for each pen on the Process Analyst.LastSelectedPen sName = pen. END See Also “UpdateCommand [Event]” Custom columns are added to the Object View allowing you to display your own information associated with a pen. ErrSet(1). _ObjectGetProperty(hPen. OBJECT hCommand = _ObjectCallMethod(hCommandSystem. "Enabled". The sample consists of three functions: an update function and two event handlers to ensure the column is updated when new pens are added and when the time span is changed. END SELECT END FUNCTION OnUpdateSelectedPen(OBJECT hPA) OBJECT hPen = _ObjectGetProperty(hPA. "Enabled". CASE "SelectedPen" OnUpdateSelectedPen(hPA). "LastSelectedPen"). ELSE _ObjectSetProperty(hCommand.

Panes. Event Handlers Once you have a function that implements your custom column.BlockUpdates iPenItem = 0 nPens = pane.Item(iPaneItem) test_CPA. See Also “IObjectViewItem. you need to know when to update that column. The example below uses the PenCreated event and the HorizontalAxisChanged event. Note: Implementing your own column is CPU-intensive.Count For iPane = 1 To nPanes Dim pane As Object Set pane = test_CPA.UnBlockUpdates [Method]”.Pens. “IProcessAnalyst. By using these indexes the code knows which row to update.ObjectView.NumberOfSamples iPaneItem = 0 nPanes = test_CPA. “IProcessAnalyst.Items.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. These events will ensure that the column values will be updated when pens are added to the display and when the time span changes.Panes.Count For iPen = 1 To nPens . Note also that. A row update is achieved using the PutField method. “PenCreated [Event]”. for efficiency.260 The code achieves this by iterating through each pane and pen object in the Process Analyst while simultaneously keeping a running index count of which pane/pen item it matches up to in the Object View tree. the BlockUpdates and UnblockUpdates functions are used to limit the number of updates made to the Object View. “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. Try to keep the amount of code required to calculate a row value as efficient as possible and be aware how often the code will be executed.PutField [Method]”. The most common method of doing this is to implement event handlers for particular Process Analyst events.BlockUpdates [Method]”.

"Panes").GetHorizontalAxisTimeSpan dtStart.Putfield "DisplayPeriod".000")) + " seconds" Else sText = "0. .001 seconds" End If Set penItem = paneItem. OBJECThPaneItems = _OBJECTGetProperty(hObjectView. OBJECThPanes = _ObjectGetProperty(hPA. OBJECThPane.261 Set pen = pane. OBJECThPaneItem.CDbl(dtStart)) / nSamples) * 86400 If (dDiff >= 0.Items. "ObjectView"). dtEndMs. OBJECThPens. OBJECThPenItem. OBJECThPenItems.pens. dtEnd.001) Then sText = CStr(Format(dDiff. "#0. False dDiff = ((CDbl(dtEnd) . "Items").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() OBJECThPA = ObjectByName("CPA"). sText End If End If Next test_CPA. OBJECThObjectView = _ObjectGetProperty(hPA. INT nPanes = _ObjectGetProperty(hPanes. dtStartMs.Item(iPenItem) If IsNUll(penItem) = False Then penItem. "Count"). OBJECThPen.Item(iPen) If IsNUll(pen) = False Then Dim dDiff As Double Dim sText As string Dim Dim Dim Dim dtStart As Date dtEnd As Date dtStartMs As Integer dtEndMs As Integer iPenItem = iPenItem + 1 pen.

INT dtStartMs. _ObjectCallMethod(hPen. "Pens"). FOR iPane = 1 TO nPanes DO hPane = _ObjectCallMethod(hPanes. . FOR iPen = 1 TO nPens DO hPen = _ObjectCallMethod(hPens.001 seconds" END hPenItems = _ObjectGetProperty(hPaneItem. iPaneItem). INT dtEndMs. "get_Item". sText). IF dDiff > 0. 10. iPenItem = 0. "seconds"). dtStart. hPenItem = _ObjectCallMethod(hPenItems. "PutField". _ObjectCallMethod(hPenItem. REAL dDiff. dtEnd. IF ObjectIsValid(hPen) THEN iPenItem = iPenItem + 1. hPaneItem = _ObjectCallMethod(hPaneItems.001 THEN sText = StrFormat(dDiff. iPen. iPen). "BlockUpdates"). "NumberOfsamples"). nPens = _ObjectGetProperty(hPens. STRINGsText. "DisplayPeriod". iPaneItem = iPaneItem + 1. _ObjectCallMethod(hPA. iPaneItem = 0. iPane). "get_Item". REAL dtEnd. 3. OBJECT hPen) UpdateMyColumn(). IF ObjectIsValid(hPane) THEN hPens = _ObjectGetProperty(hPane. REAL dtStart. "GetHorizontalAxisTimeSpan". iPenItem). END END _ObjectCallMethod(hPA.dtStart) / nSamples) * 86400. "Items"). dtStartMs. dtEndMs. nSamples = _ObjectGetProperty(hPA. "UnblockUpdates"). "Count").262 INT INT INT INT INT INT nPens. iPenItem = 0. iPane = 0. "get_Item". "get_Item". 0). ELSE sText = "0. dDiff = ((dtEnd . END END END FUNCTION CPA_E_HorizontalAxisChanged(OBJECT hPA.

263 END FUNCTION CPA_E_PenCreated(OBJECT hPA. END . OBJECT hPen) UpdateMyColumn().

264 .

60 Save View. 230 B Back Half a Span command. 12 alarm label value. 27 C columns. 81. 59 Show Properties. 27 Add Pane command. 28. 228 commands Add Cursor. 12 Add Cursor command. 61 Help. 61 adding panes. 60 editing. 22. configuring. 37 Edit Span. 10 association. 26 alarm pen types. 43 pens. 43. 56. 43. 61 Lock/Unlock Vertical Axis Scrolling. 21 axis configuring. 81 CommandExecuted event. 61 Lock/Unlock Pens. 61 Reset to Default Span. 59 Zoom In 50%. 61 navigation. 60 Forward One Span. 21 . 20. 21. 61 Show/Hide Points. 8 AxisLabelType enumeration. 61 adding new. 61 Show/Hide Cursor Labels. 60 Undo Last Zoom. 60 Copy to Clipboard. 37. 11. 59 Lock/Unlock Cursor Labels. 54 command system. 27 toolbar commands. 61 interface. 56. 60 Back One Span. 61 Synchronize to Now. 25. 61 Load View. 21. 21 Zoom in 50%. 60 general. 21. 61 Show/Hide Cursor. tag. alarm. 21 autoscrolling. 59 zoom. 60 Toggle Auto-Scrolling. 229 analog pens. 65 automation model. 61 Add Pen. 47 horizontal. 53. 77 Autoscale Vertical Axis. 25. 7 vertical. 13 alarm pens. configuring Object View. 59 Toggle Object View. 45 alarm states. 60 Back One Span command. 25. 60 view. 61 Autoscroll command. 60 Toggle Box Zoom. 61 Autoscroll. 23. 61 Refresh Data. 61 Remove Pen. 25 Add Pane. 61 Add Pen command. 59 Zoom Out 50%. 32. 25 Add New Pens dialog box. 60 background color. 16.Index A acknowledgement. 21. 43 Boolean terms during searches. 60 Edit Vertical Scale. 60 Copy to File. 23. 77 alarm acknowledgement. 61 Toggle Span Lock. 41. 12 alarm types. 78 export. 83 Autoscale Vertical Axis command. 61 autoscaling. 60 Forward Half a Span. 21 Back Half a Span. 61 Remove Pane. 11 AlarmType enumeration. 60 Print.

configuring. 8 defaults. 41 GetCommandSystem() property. 231 Help command. 77 digital pens. 42 toolbars. 85 Error event. 223 cursors. 15 end time. 7 H halo effect. 9. inserting onto. 61 . 43 chart-wide properties. 37 exporting. 41 date/time axis. 5 data connection. 77 general properties. configuring. 51 data connection. 50 cursors. data. 50 CursorMoved event.266 Zoom out 50%. 27 Fit to unit. 54 cursor labels. 34. 234 execution result. 18 Daylight Savings time. 50 context menu. 37 F FileLocation enumeration. configuring. 23 editing commands. trend. 46 pen quality. time. 52 design time properties. 59 compaction. 81 cursor labels. 37 Create method. 83 export commands. 24 configuring. 81 graphics page. 61 general properties. 44 axes. 37 data compaction. 60 Copy to File command. 223 ErrorNotifyCode enumeration. 47 chart panes. 15 HatchStyle enumeration. 36 server paths. 18 enumerations. 60 Forward One Span command. 78 effect. 81 creating custom commands. 60 exporting data. 22. automation model. 49 refresh rate. data. specifying. 37. 50 defaults. adding. specifying. 37 copying data. 65 gridlines. halo. 60 Edit Span dialog box. 60 Edit Vertical Scale dialog box. configuring. 77 Daylight Savings. 50 data request rate. 5 comparison. 52 deleting pens. 11 display. 28 design time properties. 235 filtering pens. 50 data quality. See right-click menu Copy to Clipboard command. 22 Edit Vertical Scale command. 53 connection. 23. 44 Forward Half a Span command. 41 gridlines. configuring. 41 columns in Object View. 7 E Edit Command dialog box. 24. 51 custom commands. 41 report options. 20 fixed height for panes. 60 G general commands. 6 data request mode. 81 custom commands. 78 Edit Span command. 46 D data copying. 16 configuring appearance of pens.

102 ICommandSystem. 108 IDigitalPen. 221 Insert ActiveX dialog box. 119 IObjectViewColumns. 96 ICommand. 65 interface commands.BackgroundColor property.Height property.ItemByName property. 136 IPane. 128 IObjectViewItem. 126 IObjectViewItem._NewEnum property. 130 IObjectViewPenItem.FixedHeight property. 103 ICommandSystem. 113 IObjectView.Items property. 115 IObjectView. 92 IAnalogPen. 129 IObjectViewItems.CommandId property.Height property.GetField method.ItemByName property. 132 IPane interface. 110 . 111 IDigitalPen.Show method.GetHatchStyle method. 104 ICursors.Tooltip property. 95 ICommand._NewEnum property. 116 IObjectView. 99 ICommand. 117 IObjectViewColumn. 128 IObjectViewItems.Expanded property. 89 IAlarmPen. 96 ICommand.Name property. 117 IObjectViewColumn. 106 ICursors.Count property.Remove method. 114 IObjectView. 130 IObjectViewPenItem. 131 IObjectViewPenItem. 122 IObjectViewColumns. 115 IObjectView. 108 IDigitalPen. 104 ICursors. 61 interfaces. 136 IPane. 123 IObjectViewColumns.Item property. 88 IAlarmPen.Collection property.Add method. 45 IObjectView interface._NewEnum property. 109 IDigitalPen.SetHatchColor method.Fill property. 93 IAnalogPen.Create method.LineInterpolation property. 105 IDigitalPen interface. 10. 124 IObjectViewItem. 99 ICommandSystem. 98 ICommandSystem interface.Selected property. 94 ICommand interface.Execute method. 85 IAlarmPen.Columns property. 85 IAlarmPen._NewEnum property. 107 ICursors.ItemById property.BackgroundColor property. 106 ICursors. 124 IObjectViewColumns.Item property. 129 IObjectViewPenItem interface. 87 IAlarmPen.Visible property. 133 I IAlarmPen interface.Tag property. 122 IObjectViewColumns. 120 IObjectViewColumns. 113 IObjectView.Items property.Delete method.ForeColor property.SetFillColor method.SetHatchStyle method. 119 IObjectViewColumns. 84 interpolation.LineWidth property. 121 IObjectViewItem interface. 92 IAnalogPen.Item property. 91 IAnalogPen interface.Pressed property.LineWidth property.GetFillColor method.Text property.Enabled property. 134 IPane.Width property.Privilege property. 103 icons. 124 IObjectViewItem.SelectedItem property. 107 ICursors. 132 IPane.Hide method. 133 IPane.Item property. 100 ICommandSystem.BlockColor property.LineColor property. 127 IObjectViewItems interface. 81 ICursors interface.RemoveAll method. 101 ICommandSystem. 111 IObjectView.Create method. 90 IAlarmPen.Remove method. custom.PutField method. 117 IObjectViewColumn. automation model. 118 IObjectViewColumns interface.Count property. 88 IAlarmPen.LineColor property. 100 ICommandSystem.LineWidth property.Count property. 101 ICommandSystem.ButtonType property. 91 IAlarmPen.FillColor property. 125 IObjectViewItem. 120 IObjectViewColumns. 86 IAlarmPen.GetHatchColor method.LineColor property.Checked property. 112 IObjectViewColumn interface.AlarmType property. 130 IObjectViewItems. 95 ICommand.267 HorizontalAxisChanged event. 97 ICommand.Count property.

191 IPens.ItemByName property.RefreshData method. 165 IPen.HorizontalAxisScroll property. 158 IPen.HorizontalAxisResize property. 81.TrendCursorLabelTextColor property.VerticalGridlinesStyle property. 186 IPen.Count property. 141 IPanes. 195 IProcessAnalyst.HorizontalGridlinesWidth property.RequestMode property. 169 IPen.AdminPrivilegeLevel property.VerticalGridlinesWidth property. 163 IPen.Item property. 150 IPen. 135 IPane.Name property.GetInformation method.IsSelected property.PointsVisible property. 149 IPen.VerticalGridlinesColor property. 192 IPens. 183 IPen.Pens property.HorizontalGridlinesStyle property. 184 IPen. 196 IProcessAnalyst. 139 IPen interface.Create method.HorizontalMinorGridlinesColor property.RemoveAll method. 162 IPen.VerticalAxisColor property.HorizontalMinorGridlinesStyle property.CopyToFile method.CopyToClipboard method. 168 IPen.VerticalAxisWidth property.CommandSystem property. 168 IPen. 151 IPen. 138 IPanes. 178 IPen. 206 IProcessAnalyst. 158 IPen. 137 IPanes interface.Height property. 182 IPen. 164 IPen. 166 IPen.VerticalScrollBy method. 208 IProcessAnalyst. 144 IPen.GetDefaultSpan method. 141 IPanes. 204 IProcessAnalyst. 177 IPen. 175 IPen.BackgroundColor property. 154 IPen. 175 IPen. 145 IPen. 185 IPen. 171 IPen. 204 IProcessAnalyst.BlockUpdates method. 179 IPen.HorizontalAxisWidth property.Name property.SetQualityCompactionPointType method. 207 IProcessAnalyst. 172 IPen. 173 IPen. 173 IPen.Create method.LocalTime property. 142 IPen. 162 IPen. 152 IPen.HorizontalZoom method. 143 IPen.GetStatistic method. 178 IPen. 147 IPen.GetVerticalAxisSpan method. 156 IPen.HorizontalScrollBy method.RemoveAll method. 185 IPen.AxisBackgroundColor property.HorizontalAxisColor property.VerticalZoom method.VerticalAxisScroll property. 138 IPanes.Select method.VerticalAxisLabelType property. 189 IPens.AutoScroll property.TrendCursorLabelLineColor property. 176 IPen.PutHorizontalAxisTimeSpan method. 187 IPens interface. 157 IPen.TrendCursorLabelFillColor property. 187 IPen.Pane property. 140 IPanes. 170 IPen. 160 IPen. 155 IPen. 171 IPen.ItemByName property.SetQualityLineStyle method.268 IPane.Visible property. 159 IPen.Item property.PutVerticalAxisSpan method. 167 IPen. 174 IPen.BlockRepaint property. 191 IPens.Delete method._NewEnum property. 181 IPen. 180 IPen.ContextMenu property. 188 IPens.Clear method. 153 IPen.Stacked property. 191 IPens.IsDeleted property. 144 IPen.Language property.ResetToDefaultSpan method. 194 IProcessAnalyst.DisplayRefreshRate property. 181 IPen._NewEnum property. 156 IPen.DataRequestRate property.VerticalAxisAutoscale property.HorizontalGridlinesColor property.GoToNow method. 149 IPen. 205 IProcessAnalyst.Count property.VerticalMinorGridlinesColor property.VerticalAxisResize property. 207 IProcessAnalyst. 139 IPanes. 190 IProcessAnalyst interface.SetDefaultSpan method.DataServer property. 190 IPens.SetVerticalAxisLabelValue method. 209 . 146 IPen. 161 IPen. 164 IPen.Cursors property.Collection property.AddSample method. 151 IPen. 203 IProcessAnalyst.DataPoint property.GetHorizontalAxisTimeSpan method. 193 IProcessAnalyst.VerticalMinorGridlinesStyle property.

SaveToFile method. 235 IToolbar. 250 ITrendCursor. 218 multi-language support.PenLabelX property.LoadFromFile method. 237 IToolbars.UnsubscribePropertyChange method. 244 ITrendCursor. 242 IToolbarButtons. 248 ITrendCursor.PenLabelY property. 236 IToolbarButton interface. 218 MouseDoubleClick event.WritePrivilegeLevel property.PrimaryPath property.LastSelectedPen property. 194 IProcessAnalyst. 210 IProcessAnalyst. 239 IToolbarButton. 61 Lock/Unlock Vertical Axis Scrolling command._NewEnum property.Add method. 59 loading views. using for interaction. 26 mode.Color property. 6 model. 16 M main page (Properties dialog). 247 ITrendCursor.Collection property.PenLabelHeight property.Count property.SubscribeForPropertyChange method.Position property. 247 ITrendCursor.LockedPens property. 245 ITrendCursor.SynchroniseToNow method. 254 ITrendCursor.ShowProperties method.SecondaryPath property.PenLabelWidth property. 61 Lock/Unlock Cursor Labels command. 197 IProcessAnalyst. 211 IProcessAnalyst. 200 IProcessAnalyst.Name property. 60 navigation toolbar. 240 IToolbarButtons. 3 menu. 20 navigation commands. 198 IProcessAnalyst. 56 Lock pens check box.RemoveAll method. 31 . alarm.Width property.ZoomMode property. 252 ITrendCursor. 201 IProcessAnalyst. 6 LineStyle enumeration. request. 202 IProcessAnalyst. 240 IToolbarButtons. 212 IProcessAnalyst. 216 IProcessAnalyst. 214 IProcessAnalyst. 8 number of samples. 42 O Object View. 56 Load View command. 238 ITrendCursor interface.LabelsLocked property. 17 New Command dialog box.Count property.PenLabelVisible property. 251 ITrendCursor. 200 IProcessAnalyst. 238 IToolbars. 251 ITrendCursor. 245 ITrendCursor. 42 Lock/Unlock Cursor Labels. 239 IToolbarButtons interface. 5 N navigating time.CommandId property. 199 IProcessAnalyst.Delete method.Item property. 35 line styles. 231 LineType enumeration.269 IProcessAnalyst. 26 MouseClick event. 26 legends. 77 Now indicator. 56. automation. 253 ITrendCursor.Item property. 213 IProcessAnalyst. 237 IToolbars. 16. 241 IToolbarButtons.GetValue method.Visible property. 61 locked pens. 39 main toolbar. 25 Lock/Unlock Pens command.UnBlockUpdates method. 243 ITrendCursor. 242 IToolbarButtons.ObjectView property. 236 IToolbar.Remove method.Buttons property. 246 L label value.Toolbars property. 216 IProcessAnalyst. 233 Load dialog box. 217 IToolbar interface. 249 ITrendCursor.Panes property. 215 IProcessAnalyst.PrintAll method. report. 243 IToolbarButtons. 67 multiple samples. right-click._NewEnum property. 241 IToolbars interface.Visible property. 83 mouse.

39 PropertyChanged event. 11 filtering. 1 OVColumnAdded event. 40 S samples. 11 analog. 27 alarm. 221 PenType enumeration. 39 property tree. 16 viewing details. 60 result. 219 PenDeleted event. 42 Save Process Analyst View dialog box. 49 selecting. 232 permissions. 225 OVItemChecked event. 83 right-click menu. 232 primary file server. 28. 16 overlaying. 9 unlocked. 220 PenNameMode enumeration. 6. 32 configuring columns. 15 stacking. 23. 56. 36 reports. mouse. 233 Reset to Default Span command. 33 configuring. 61 Remove Pen command. configuring. configuring. 34 Process Analyst button. 79 Object View (Properties dialog). 34 printing reports. 47 deleting. 27 gridlines. 28 PenSelectionChanged event. 61 removing chart panes. 43 Print command. 43 toolbar commands. 54 creating columns. number of. 41 Remove Pane command. 79 default columns for. 28 PenCreated event. 5 pointer. 28 digital. 6 QualityCompactionType enumeration. 225 OVItemSelected event. 9 quality. 61 Print dialog box. 227 overlaying pens. 43 paths. data. 226 OVItemRemoved event. 65 R Refresh Data command. configuring. execution. 59 saving views. 44 axes. 10 appearance. 34. server. 235 QualityType enumeration. 234 P panes adding. 40 Operator (term defined). 26. 227 OVColumnRemoved event. 81 point styles. configuring. 46 locked. 35 report options. configuring. 224 Q quality configuring pen. configuring. 34 request mode. 42 Pen Details box. 34 printing. 50 RequestMode enumeration. 65 Properties dialog box. 220 pens adding. 53 report legends. 61 refresh rate. 26 PointType enumeration. 232 PenRenamed event. data. 56 Save View command.270 basic functions. 9 OVItemAdded event. 43 configuring. 49 quality. 226 persistence. 56 . 32 editing columns.

9 standby file server. alarm. 20 stacked pens. 8 VerticalAxisChanged event. 42 Shift by unit. 21. 229 User (term defined). 13 U Undo Last Zoom command. 40 Tooltip text. viewing. 15 time span. 20 time. 5 Synchronize to Now command. 60 universal time coordinate (UTC) format. alarm label. alarm. 60 Z zoom commands. 61 Span Picker. 18 time span editing. 53 toolbars (Properties dialog). 22 term defined. 56 T tag association. 65 selecting pens. 59 . 81. specifying. 28 time display. 6 point. 10. 20 server paths. 81 toolbar. 54 configuring. 18 states. 56 saving. 233 toolbars adding commands to. 61 Show/Hide Cursor Labels command. 21 Toggle Box Zoom command. 222 view commands. 25. 39 types. 60 Toggle Auto-scrolling command.271 scaling. 21. navigation. 25. 9 UpdateCommand event. navigating. 21. 21 Zoom in 50% command. 32. 7 time format. 35 stepped interpolation. 11 types. 59 viewing pen details. specifying. 78 tree. alarm pen. 10. 19 Show Properties command. 59 Zoom Out 50% command. 17 ToolbarButtonType enumeration. property. 60 system. 61 Show/Hide Cursor command. 61 Show/Hide Points command. 17 scrolling. 48 unlocked pens. 61 Toggle Span Lock command. 53 changing order of commands. 45 straight interpolation. 43 start time. 16 security. 44 vertical (value) axis. configuring. 28 views. 1 V value. 53 removing commands from. 20 Toggle Auto-Scrolling command. 26 variable height for panes. 59 Toggle Object View command. 12 statistical analysis options (reports). 59 Zoom In 50% command. 45 styles line. 21 Zoom out 50% command. 55 loading. command. 20. 16 unstacked pens. 65 tag properties.

272 .

Sign up to vote on this title
UsefulNot useful