|
|
|
|
|
- When should indirection be used?
- Identifying the current object
- Indirection on a structure
- Using the indirection on the paths in an XML document
- Limitations
Indirection operators In french: Opérateurs d'indirection
Operators { and operators } operators are used to access a field, variable, class member or data file item by dynamically constructing the name of the field, variable, class member or item. The { and } operators present several benefits: - Passing as parameter the name of a control, variable, class member or item.
- Building the name of a control, variable, class member or item programmatically.
{"NAME"} = CustName
{"NAME"} = {"CU.CUSTNAME"}
{"CUSTWIN.NAME"} = CustName
{"CUSTWIN"+".NAME"} = CustName
{"Name",indControl} = CustName
nFileName is string = "Customer"
{nFileName + ".Name"} = "Smith"
HAdd({nFileName})
ControlName is string
ControlName = "EDT_EDIT1"
Make_Invisible(ControlName)
PROCEDURE Make_Invisible(ControlN)
{NChamp}..Status = Invisible
AliasName is string
AliasName = PreviousWin()
{AliasName+".NAME"} = CustName
Abbrev is string
ItemName is string
{Abbrev+"."+ItemName} = CustName
{Abbrev+"."+ItemName} = {ControlName}
MyClass is Class
Member1 is string
Member2 is string
GLOBAL procedure DisplayMember(Number)
Value is string = {"::Member"+Number}
Info(Value)
c is cWord
var is Variable Description
Def is Definition
Def = GetDefinition(c)
var = Def..Variable[2]
Trace(var..Name)
Trace("Word version: ",{c, var})
Syntax <Expression>: Character string Expression used to identify the control, the variable or the item to use. The element is sought:- among the variables,
- according to the number of dots found in the name:
- 0 point: search among fields, then HFSQL items.
- 1 point: search among HFSQL items, fields, then query parameters.
- greater than 1 point: search among fields.
- among the special elements kept for compatibility (_Tabx for example, ...).
A WLanguage error occurs if this expression corresponds to an empty string (""). <Expression>: Character string Expression used to identify the class member.If the member is: - global, use the following syntax: {":: MemberName"}
- is not global, use the following syntax: {": MemberName"}
A WLanguage error occurs if this expression corresponds to an empty string (""). <Class>: Character string Class instance <Member>: Character string or Variable Description variable Corresponds to:
Indirection by specifying the element type (optimizes the execution speed) Hide the details
{ <Expression>, <Type> }
<Expression>: Character string Expression used to identify the control, the variable or the item to use. A WLanguage error occurs if this expression corresponds to an empty string (""). <Type>: Constant Constant used to specify the type of sought element: | | indControl | Element sought among the controls and the groups. | indConnection | Element sought among the connections. | indReport | Element sought among the reports. | indWindow | Element sought among the windows. | indFile | Item searched for in data files. | indGPW | Element sought among the elements of user groupware (used to retrieve the initial status of controls). | indLink | Element sought among the links. | indQueryParameter | Element sought among the parameters of queries. | indItem | Element sought among the items. | indVariable | Element sought among the variables. | indPage | Element sought among the pages. |
Remarks When should indirection be used? The indirection can be used for example: - To access the value of an element (control, variable, item, ...):
{s_ControlName} = 10
ControlValue = {s_ControlName}
- To use a property:
{s_ControlName}..Height = 10
- To programmatically handle a column of a Table control:
{s_ColumnName, indControl}[Row_Number] = 10
- To handle a table column:
{s_TableName + "." +s_ColumnName, indControl}[Row_Number] = 10
Related Examples:
|
Unit examples (WINDEV): The indirections
[ + ] Handling indirections via the { and } operators. The { and } operators are used to access a control or a file item by dynamically building the control name or the item name. This program, powered by WINDEV, implements the indirection mechanism on the window controls to manage the "Undo-Redo" and "Cut-Copy-Paste" features in a generic way.
|
|
Unit examples (WEBDEV): The indirections
[ + ] This example explains how to use the indirections on a variable. You will notice that the indirections are available for the controls, the items, the links, etc. The principle is identical to the one presented in this example.
|
|
Unit examples (WINDEV Mobile): The indirections
[ + ] Using the indirection { and } operators. The { and } operators are used to access a control or a file item by dynamically building the control name or the item name. This example implements the indirection mechanism on the window controls to manage the "Undo-Redo" and "Cut-Copy-Paste" features in a generic way.
|
This page is also available for…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|