Referencing structures
When you define a structure, you are defining a new datatype.
You can use this new datatype in scripts and user-defined functions as
long as the structure definition is stored in a library in the
application’s library search path.
To use a structure in a script or user-defined
function
-
Declare a variable of the structure type.
-
Reference the variable in the structure.
Referencing global
structures
The variables in a structure are similar to the properties of a
PowerBuilder object. To reference a global structure’s variable, use
dot notation:
|
1 |
structure.variable |
Example. Assume that s_empdata is a global structure with the variables
emp_id, emp_dept, emp_fname, emp_lname, and emp_salary. To use this
structure definition, declare a variable of type s_empdata and use
dot notation to reference the structure’s variables, as shown in the
following script:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
s_empdata lstr_emp1, lstr_emp2 // Declare 2 variables // of type emp_data. lstr_emp1.emp_id = 100 // Assign values to the lstr_emp1.emp_dept = 200 // structure variables. lstr_emp1.emp_fname = "John" lstr_emp1.emp_lname = "Paul-Jones" lstr_emp1.emp_salary = 99908.23 // Retrieve the value of a structure variable. lstr_emp2.emp_salary = lstr_emp1.emp_salary * 1.05 // Use a structure variable in a // PowerScript function. MessageBox ("New Salary", & String(lstr_emp2.emp_salary,"$###,##0.00")) |
Referencing object-level
structures
You reference object-level structures in scripts for the object
itself exactly as you do global structures: declare a variable of the
structure type, then use dot notation:
|
1 |
structure.variable |
Example. Assume that the structure str_custdata is defined for the
window w_history and you are writing a script for a CommandButton in
the window. To use the structure definition in the script, you
write:
|
1 2 |
str_custdata lstr_cust1 lstr_cust1.name = "Joe" |
No access to object-level structures outside the
object
You cannot make object-level structures accessible outside the
object because object-level structures are implicitly
private.