Tech Note - Using Indirect Tags: Tagname Size Type Description Scope
Tech Note - Using Indirect Tags: Tagname Size Type Description Scope
Tech Note - Using Indirect Tags: Tagname Size Type Description Scope
Introduction
InduSoft Web Studio (IWS) supports Indirect Tags. This feature, allows you to access the value of
different tags in the application dynamically, by writing the tag names into other tags, used as
Indirect Tags.
The main syntax for Indirect Tags is @IndirectTagName. Generally, @IndirectTagName returns the
value from the tag whose name if the value of the tag IndirectTagName.
The examples provided in this document are based on the following tags database configuration:
Application Tags:
Class cMyClass:
Name Type Description
Boolean member (value
m1 Boolean
= 1)
Integer member (value =
m2 Integer
456)
String member (value =
m3 String
abc)
Class cMyClass2:
Name Type Description
Boolean member (value
m4 Boolean
= 0)
Integer member (value =
m5 Integer
789)
String member (value =
m6 String
def)
Page 1/3
Tech Note – Using Indirect Tags
March 20, 2007 – Rev. A
©Copyright InduSoft Systems 2007
As illustrated in the description of the tags and members from the previous tables, the following
values are pre-loaded for the tags used in the following examples:
Tag Value
SingleTag 123
ClassTag.m1 1
ClassTag.m2 456
ClassTag.m3 abc
ClassTag2.m4 0
ClassTag2.m5 789
ClassTag2.m6 def
Examples
In this case, the Indirect tag must be from the type String. The syntax @Single_Indirect_Tag_Name
returns the value of the single tag whose name is the value of the single indirect tag. For example:
$SinglePointer = "SingleTag"
MsgBox $@SinglePointer 'Displays the message with the value from the tag SingleTag 123
In this case, the value written to the single indirect tag must be the complete name
(MainTagName.MemberName) of the class tag. For example:
$SinglePointer = "ClassTag.m1"
MsgBox $@SinglePointer 'Displays the message with the value from the tag Classtag.m1 1
$SinglePointer = "ClassTag.m2"
MsgBox $@SinglePointer 'Displays the message with the value from the tag Classtag.m2 456
$SinglePointer = "ClassTag.m3"
MsgBox $@SinglePointer 'Displays the message with the value from the tag Classtag.m3 abc
In this case, you must write the name of the single tag into a member of the Class Indirect Tag. For
example:
$ClassPointer.m3 = "SingleTag"
MsgBox $@ClassPointer.m3 'Displays the message with the value from the tag SingleTag 123
Page 2/3
Tech Note – Using Indirect Tags
March 20, 2007 – Rev. A
©Copyright InduSoft Systems 2007
a. The Class indirect tag and the Class Tag are from different classes: In this case, you must write
the complete name (MainTagName.MemberName) of the class tag into a member of the Class
Indirect Tag. For example:
$ClassPointer.m3 = "ClassTag2.m4"
MsgBox $@ClassPointer.m3 'Displays the message with the value from the tag ClassTag2.m4 0
$ClassPointer.m3 = "ClassTag2.m5"
MsgBox $@ClassPointer.m3 'Displays the message with the value from the tag ClassTag2.m5 789
$ClassPointer.m3 = "ClassTag2.m6"
MsgBox $@ClassPointer.m3 'Displays the message with the value from the tag ClassTag2.m6 def
b. The Class Indirect Tag and the Class Tag are from the SAME class: In this case, you can write only
the Main Tag Name from the class tag into the Main Tag Name of the Class Indirect Tag. For
example:
$ClassPointer = "ClassTag"
MsgBox $@ClassPointer.m1 'Displays the message with the value from the tag ClassTag.m1 1
MsgBox $@ClassPointer.m2 'Displays the message with the value from the tag ClassTag.m2 456
MsgBox $@ClassPointer.m3 'Displays the message with the value from the tag ClassTag.m3 abc
Note: When using this approach (Case 4, item b), you MUST use the prefix @ when creating the
Class Indirect Tag in the Application Tags Database worksheet. Otherwise, you can only use the
syntax described in the Case 4, item a, even if the Class Indirect Tag and the Class Tag are from
the same class.
Map of Revision
Page 3/3