Datawindow Reference
Datawindow Reference
Appeon PowerBuilder®
2017
DOCUMENT ID: DC37783-01-1700-01
This publication pertains to Appeon software and to any subsequent release until otherwise indicated in new editions or technical notes.
Information in this document is subject to change without notice. The software described herein is furnished under a license agreement,
and it may be used or copied only in accordance with the terms of that agreement.
Upgrades are provided only at regularly scheduled software release dates. No part of this publication may be reproduced, transmitted, or
translated in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without the prior written permission of
Appeon Limited.
Appeon and other Appeon products and services mentioned herein as well as their respective logos are trademarks or registered
trademarks of Appeon Limited.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of
SAP and SAP affiliate company.
Java and all Java-based marks are trademarks or registered trademarks of Oracle and/or its affiliates in the U.S. and other countries.
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc.
All other company and product names mentioned may be trademarks of the respective companies with which they are associated.
Use, duplication, or disclosure by the government is subject to the restrictions set forth in subparagraph (c)(1)(ii) of DFARS 52.227-7013
for the DOD and as set forth in FAR 52.227-19(a)-(d) for civilian agencies.
Appeon Limited, 1/F, Shell Industrial Building, 12 Lee Chung Street, Chai Wan District, Hong Kong.
Contents
Char......................................................................................... 38
CharA ...................................................................................... 38
Cos .......................................................................................... 39
Count....................................................................................... 40
CrosstabAvg............................................................................ 42
CrosstabAvgDec ..................................................................... 46
CrosstabCount ........................................................................ 47
CrosstabMax ........................................................................... 48
CrosstabMaxDec..................................................................... 50
CrosstabMin ............................................................................ 51
CrosstabMinDec...................................................................... 53
CrosstabSum........................................................................... 54
CrosstabSumDec .................................................................... 55
CumulativePercent .................................................................. 56
CumulativeSum ....................................................................... 58
CurrentRow ............................................................................. 60
Date......................................................................................... 61
DateTime................................................................................. 62
Day .......................................................................................... 63
DayName ................................................................................ 63
DayNumber ............................................................................. 64
DaysAfter................................................................................. 65
Dec .......................................................................................... 66
Describe .................................................................................. 67
Exp .......................................................................................... 67
Fact ......................................................................................... 68
Fill............................................................................................ 68
FillA ......................................................................................... 69
First ......................................................................................... 70
GetPaintDC ............................................................................. 71
GetPaintRectHeight................................................................. 72
GetPaintRectWidth.................................................................. 73
GetPaintRectX......................................................................... 73
GetPaintRectY......................................................................... 74
GetRow ................................................................................... 74
GetText.................................................................................... 75
Hour......................................................................................... 75
If .............................................................................................. 76
Int ............................................................................................ 77
Integer ..................................................................................... 78
IsDate ...................................................................................... 78
IsExpanded ............................................................................. 79
IsNull ....................................................................................... 80
IsNumber................................................................................. 80
iv PowerBuilder
Contents
IsRowModified......................................................................... 81
IsRowNew ............................................................................... 81
IsSelected................................................................................ 82
IsTime...................................................................................... 83
Large ....................................................................................... 83
Last.......................................................................................... 85
LastPos ................................................................................... 87
Left .......................................................................................... 88
LeftA ........................................................................................ 89
LeftTrim ................................................................................... 89
Len .......................................................................................... 90
LenA ........................................................................................ 90
Log .......................................................................................... 91
LogTen .................................................................................... 92
Long ........................................................................................ 92
LookUpDisplay ........................................................................ 93
Lower....................................................................................... 93
Match....................................................................................... 94
Max.......................................................................................... 96
Median..................................................................................... 98
Mid......................................................................................... 101
MidA ...................................................................................... 102
Min......................................................................................... 102
Minute.................................................................................... 104
Mod ....................................................................................... 105
Mode ..................................................................................... 105
Month .................................................................................... 108
Now ....................................................................................... 108
Number.................................................................................. 109
Page ...................................................................................... 110
PageAbs................................................................................ 110
PageAcross ........................................................................... 111
PageCount ............................................................................ 112
PageCountAcross ................................................................. 112
Paint ...................................................................................... 113
Percent .................................................................................. 114
Pi ........................................................................................... 117
Pos ........................................................................................ 117
PosA...................................................................................... 118
ProfileInt ................................................................................ 119
ProfileString........................................................................... 120
Rand...................................................................................... 122
Real ....................................................................................... 122
RelativeDate.......................................................................... 123
DataWindow Reference v
Contents
vi PowerBuilder
Contents
viii PowerBuilder
Contents
DragLeave.................................................................................... 517
DragWithin ................................................................................... 517
DropDown .................................................................................... 518
EditChanged ................................................................................ 519
Error ............................................................................................. 519
Expanded ..................................................................................... 522
Expanding .................................................................................... 523
GetFocus...................................................................................... 523
GraphCreate ................................................................................ 524
HTMLContextApplied ................................................................... 524
ItemChanged................................................................................ 526
ItemError ...................................................................................... 527
ItemFocusChanged ...................................................................... 529
KeyDown...................................................................................... 530
LoseFocus.................................................................................... 530
MessageText................................................................................ 531
MouseMove.................................................................................. 531
MouseUp...................................................................................... 532
OnSubmit ..................................................................................... 533
Printend........................................................................................ 534
PrintMarginChange ...................................................................... 535
PrintPage ..................................................................................... 536
PrintStart ...................................................................................... 537
ProcessEnter................................................................................ 537
RButtonDown ............................................................................... 538
Resize .......................................................................................... 538
RetrieveEnd ................................................................................. 539
RetrieveRow................................................................................. 540
RetrieveStart ................................................................................ 541
RichTextCurrentStyleChanged .................................................... 542
RichTextLoseFocus ..................................................................... 542
RichTextLimitError ....................................................................... 543
RowFocusChanged...................................................................... 543
RowFocusChanging ..................................................................... 544
ScrollHorizontal ............................................................................ 546
ScrollVertical ................................................................................ 547
SQLPreview ................................................................................. 548
TabDownOut ................................................................................ 550
TabOut ......................................................................................... 550
TabUpOut..................................................................................... 551
TreeNodeSelected ....................................................................... 551
TreeNodeSelecting ...................................................................... 552
UpdateEnd ................................................................................... 552
UpdateStart .................................................................................. 553
DataWindow Reference ix
Contents
x PowerBuilder
Contents
DataWindow Reference xi
Contents
xii PowerBuilder
Contents
xiv PowerBuilder
Contents
GetDataPieExplode...................................................................... 925
GetDataPieExplodePercentage ................................................... 927
GetDataStringVariable ................................................................. 927
GetDataStyle................................................................................ 928
GetDataStyleColorValue .............................................................. 934
GetDataStyleFillPattern................................................................ 934
GetDataStyleLineStyle ................................................................. 935
GetDataStyleLineWidth ................................................................ 936
GetDataStyleSymbolValue........................................................... 936
GetDataTransparency .................................................................. 937
GetDataValue............................................................................... 938
GetSeriesLabelling ....................................................................... 940
GetSeriesStyle ............................................................................. 941
GetSeriesStyleColorValue ........................................................... 947
GetSeriesStyleFillPattern ............................................................. 948
GetSeriesStyleLineStyle .............................................................. 949
GetSeriesStyleLineWidth ............................................................. 949
GetSeriesStyleOverlayValue........................................................ 950
GetSeriesStyleSymbolValue ........................................................ 951
GetSeriesTransparency ............................................................... 952
ObjectAtPointer ............................................................................ 953
ObjectAtPointerDataPoint ............................................................ 954
ObjectAtPointerSeries .................................................................. 954
Reset ............................................................................................ 955
ResetDataColors .......................................................................... 956
SaveAs......................................................................................... 957
SeriesCount ................................................................................. 958
SeriesName ................................................................................. 959
SetDataLabelling.......................................................................... 960
SetDataPieExplode ...................................................................... 961
SetDataStyle ................................................................................ 962
SetDataTransparency .................................................................. 967
SetSeriesLabelling ....................................................................... 968
SetSeriesStyle.............................................................................. 970
SetSeriesTransparency................................................................ 976
DataWindow Reference xv
Contents
xvi PowerBuilder
About This Book
Subject This book provides reference information for the DataWindow® object. It
lists the DataWindow functions and properties and includes the syntax for
accessing properties and data.
Audience This book is for anyone defining DataWindow objects and writing scripts
that deal with DataWindow objects. It assumes that:
• You are familiar with the DataWindow painter. If not, see the
PowerBuilder Users Guide.
• You have a basic familiarity with PowerScript®. If not, see the
PowerScript Reference.
Related documents For a complete list of PowerBuilder® documentation, see the preface of
PowerBuilder Getting Started.
Other sources of Use the Appeon Product Manuals web site to learn more about your
information product. The Appeon Product Manuals web site is accessible using a
standard Web browser.
To access the Appeon Product Manuals web site, go to Product Manuals at
https://www.appeon.com/developers/library/product-manuals-for-pb.
If you need help All customers are entitled to standard technical support for reproducible
software defects. You can open a standard support ticket at the Appeon
support site: https://www.appeon.com/standardsupport/ (login required).
If your organization has purchased a premium support contract for this product,
then the designated authorized support contact(s) may seek assistance with
your technical issue or question at the Appeon support site:
https://support.appeon.com (login required).
xviii PowerBuilder
C H A P T E R 1 DataWindow Operators and
Expressions
About this chapter You use an expression to request that a DataWindow object perform a
computational operation. This chapter explains how expressions work and
how to write them.
Contents
Topic Page
Where you use DataWindow expressions 1
Operators used in DataWindow expressions 4
Operator precedence in DataWindow expressions 11
Evaluating DataWindow expressions in scripts 12
Evaluating DataWindow expressions in the Describe function 13
Evaluating conditional DataWindow expressions with current data 14
DataWindow Reference 1
Where you use DataWindow expressions
Some of the specific places where you use expressions are described here.
In computed fields Expressions for computed fields can evaluate to any value. The datatype of the
expression becomes the datatype of the computed field:
Table 1-2: Using expressions in computed fields
Expression Description
Today ( ) Displays the date using the Today function
Salary/12 Computes the monthly salary
Sum (Salary for group 1) Computes the salary for the first group using the Sum
aggregate function
Price*Quantity Computes the total cost
2 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
In filters Filter expressions are boolean expressions that must evaluate to true or false:
Table 1-3: Using expressions with filters
Expression Description
Academics = "*****" AND Displays data only for colleges with both a 5-star
Cost = "$$$" academic rating and a $$$ cost rating
Emp_sal < 50000 Displays data for employees with salaries less
than $50,000
Salary > 50000 AND Dept_id Displays data for employees in departments 400,
BETWEEN 400 AND 700 500, 600, and 700 with salaries greater than
$50,000
Month(Bdate) = 9 OR Displays data for people with birth dates in
Month(Bdate) = 2 September or February
Match ( Lname, "[ ^ABC ]" ) Displays data for people whose last name begins
with A, B, or C
In validation rules for Validation rules are boolean expressions that compare column data with values
table columns and that use relational and logical operators. When the validation rule evaluates
to false, the data in the column is rejected.
In the DataWindow painter When you specify a validation rule in the
DataWindow painter, you should validate the newly entered value. To refer to
the newly entered value, use the GetText function. Because GetText returns a
string, you also need a data conversion function (such as Integer or Real) if you
compare the value to other types of data.
If you include the column name in the expression, you get the value that
already exists for the column instead of the newly entered value that needs
validating.
In the Database painter When you specify the validation rule in the
Database painter, you are defining a general rule that can be applied to any
column. Use @placeholder to stand for the newly entered value. The name
you use for @placeholder is irrelevant. You can assign the rule to any column
that has a datatype appropriate for the comparison.
When you define a DataWindow object, a validation rule assigned to a column
is brought into the DataWindow object and converted to DataWindow object
syntax. @placeholder is converted to GetText and the appropriate datatype
conversion function.
Other columns in the rule You can refer to values in other columns for the
current row by specifying their names in the validation rule:
DataWindow Reference 3
Operators used in DataWindow expressions
4 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
Multiplication and Multiplication and division are carried out to full precision (16–18 digits).
division Values are rounded:
Table 1-6: Value rounding in DataWindow expressions
Expression Value
20.0/3 6.666666666666667
3*(20.0/3) 20
Truncate(20.0/3,4) 6.6666
Calculations with null When you form an arithmetic expression that contains a null value, the
expression becomes null. Thinking of null as undefined makes this easier to
understand. For example, when a null column is multiplied by 5, the entire
expression also evaluates to null. Use the IsNull function to explicitly check for
the null value.
Boolean expressions that contain a null value evaluate to false rather than to
null. For more information, see Relational operators in DataWindow
expressions next.
DataWindow Reference 5
Operators used in DataWindow expressions
Special characters for You can use the following special characters with relational operators that take
operations with strings string values:
Table 1-8: Special characters for use in expressions with relational
operators
Special character Meaning Example
% (percent) Matches any group of Good% matches all names that
characters. begin with Good.
_ (underscore) Matches any single Good _ _ _ matches all 7-letter
character. names that begin with Good.
LIKE and NOT LIKE Use LIKE to search for strings that match a predetermined pattern. Use NOT
operators LIKE to search for strings that do not match a predetermined pattern. When
you use LIKE or NOT LIKE, you can use the % or _ characters to match
unknown characters in a pattern.
For example, the following expression for the Background.Color property of
the Salary column displays salaries in red for employees with last names
beginning with F and displays all other salaries in white:
6 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
If(emp_lname LIKE'F%',RGB(255,0,0),RGB(255,255,255))
Escape keyword If you need to use the % or _ characters as part of the string, you can use the
escape keyword to indicate that the character is part of the string. For example,
the _ character in the following filter string is part of the string to be searched
for, but is treated as a wildcard:
comment LIKE ~'%o_a15progress%~'
The escape keyword designates any character as an escape character (do not
use a character that is part of the string you want to match). In the following
example, the asterisk (*) character is inserted before the _ character and
designated as an escape character, so that the _ character is treated as part of
the string to be matched:
comment like ~'%o*_a15progress%~' escape ~'*~'
BETWEEN and NOT Use BETWEEN to check if a value is within a range of values. Use NOT
BETWEEN operators BETWEEN to check if a value is not in a range of values. The range of values
includes the boundary values that specify the range.
For example, the following expression for the Background.Color property of
the Salary column displays salaries in red when an employee’s salary is
between $50,000 and $100,000 and displays all other salaries in white:
If(salary BETWEEN 50000 AND 100000, RGB(255,0,0),
RGB(255,255,255))
You can use the BETWEEN and NOT BETWEEN operators with string
values. For example, if the following expression is used for the Visual property
of a column, column values display only for departments listed alphabetically
between Finance and Sales:
If(dept_name BETWEEN 'Finance' AND 'Sales',1,0)
The % or _ characters can be used when you are using string values with the
BETWEEN and NOT BETWEEN operators. This example might include
more department listings than the previous example:
If(dept_name BETWEEN 'F%' AND 'S%',1,0)
You can also use the BETWEEN and NOT BETWEEN operators with
methods. For example:
GetRow( ) BETWEEN 5 AND 8
IN and NOT IN Use IN to check if a value is in a set of values. Use NOT IN to check if a value
operators is not in a set of values.
DataWindow Reference 7
Operators used in DataWindow expressions
8 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
When you combine two or more boolean expressions to form a new expression,
the new expression is either true or false. The following truth table shows how
true and false expressions are evaluated to form an expression that is either true
or false.
For example, if “My dog has fleas” is true and “My hair is brown” is false, then
“My dog has fleas OR my hair is brown” is true, and “My dog has fleas AND
my hair is brown” is false:
DataWindow Reference 9
Operators used in DataWindow expressions
If you use a logical operator with a boolean function that returns null, the term
with the null return value is evaluated as false. If you use the NOT logical
operator with a boolean function that returns null, the complete term evaluates
to true. For example, NOT gf_boolean () evaluates to true when gf_boolean
returns null.
10 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
Using quotes
You can use either single or double quotes in string expressions. For example,
the expression "over" + "stock" is equivalent to the expression 'over' +
'stock'.
Overriding the Since expressions in parentheses are evaluated first, to override the precedence
precedence order order, enclose expressions in parentheses. You can also use parentheses to
clarify the order of evaluation. Within each set of parentheses, precedence
order applies.
In the expression x+y*a+b, y is first multiplied by a (because multiplication
has a higher precedence than addition). The result of the multiplication is then
added to x and this result is then added to b (because the + operators are
evaluated left to right).
DataWindow Reference 11
Evaluating DataWindow expressions in scripts
For example, if you need to find the current row in a DataWindow, use the
DataWindow control function, GetRow:
ll_rownum = dw1.GetRow()
If you need to find the first row on the current page in a DataWindow, there is
no DataWindow control function to return this information, but you can find it
in the appropriate DataWindow object property:
ls_first = dw1.Object.DataWindow.FirstRowOnPage
ls_last = dw1.Object.DataWindow.LastRowOnPage
dw1.Title = "Rows " + ls_first + " to " + ls_last
In some cases, however, information you need might not be available either by
using DataWindow control functions or by accessing DataWindow object
properties.
DataWindow expression functions sometimes provide information that is
available in no other way. These functions, which are available within a
DataWindow expression, are documented in Using DataWindow expression
functions on page 17.
12 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
Parent.Title = &
"Current page: "+ dw1.Describe(ls_modstring)
This example returns the display value for the dept_id column for row 5:
dw1.Describe("Evaluate('LookUpDisplay(dept_id)', 5)")
Expressions that To evaluate an expression that applies to all rows, specify 0 for the rownumber
apply to all rows argument. This example calculates the sum of the salary column in the current
DataWindow. It will return the expression’s result or "!" if the expression is not
valid:
dw1.Describe("Evaluate('Sum(Salary)', 0)")
Evaluating user- In some types of applications, you might use Evaluate to get the result of an
specified expressions expression the user specifies. For example, users might specify the type of
aggregation they want to see. This example evaluates an expression specified
in a SingleLineEdit. It applies to all rows:
dw1.Describe("Evaluate('" + sle_expr.Text + "', 0)")
DataWindow Reference 13
Evaluating conditional DataWindow expressions with current data
ll_row = dw1.GetRow()
ls_protect = dw1.Object.id.Protect
14 PowerBuilder
CHAPTER 1 DataWindow Operators and Expressions
ls_protect = dw1.Describe(ls_eval)
END IF
// Display result
st_result.Text = ls_protect
DataWindow Reference 15
Evaluating conditional DataWindow expressions with current data
16 PowerBuilder
C H A P T E R 2 DataWindow Expression
Functions
About this chapter This chapter provides syntax, descriptions, and examples of the functions
you can use in expressions in the DataWindow painter.
Contents
Topic Page
Using DataWindow expression functions 17
Decimal support in DataWindow expressions 19
Four examples 20
Alphabetical list of DataWindow expression functions 29
DataWindow Reference 17
Using DataWindow expression functions
Restrictions for An aggregate function is a function (such as Avg, Max, StDev, and Sum) that
aggregate functions operates on a range of values in a column. When you use an aggregate function,
some restrictions apply. You cannot use an aggregate function:
• In a filter
• In a validation rule
• As an argument for another aggregate function
When you use aggregate functions, they cancel the effect of setting Retrieve
Rows As Needed. To do the aggregation, the DataWindow object always
retrieves all rows.
User-defined functions You can include user-defined functions in DataWindow expressions. The
in PowerBuilder datatype of the function’s return value can be any of the following: double,
decimal, string, boolean, date, DateTime, or time. The function must be
defined as a global function so that it is available to the DataWindow object.
However, a global function argument of datatype boolean cannot be provided
by a DataWindow expression because it does not map to any of the datatypes
listed in Return values for functions and expressions on page 17.
Built-in DataWindow expression functions cannot be overridden. For example,
if you create a global function called Today, it is used instead of the
PowerScript system function Today, but it is not used instead of the
DataWindow expression function Today.
Formatting for the No matter what country you are creating objects and developing an application
locally correct display in, you must use U.S. number notation in numbers or number masks in display
of numbers
formats, edit masks, and DataWindow expressions. This means that when you
specify a number or number mask, use a comma as the thousands delimiter and
period for the decimal place.
Numbers display appropriately in whatever countries you deploy applications
in. At runtime, the locally correct symbols for numbers display (because the
international Control Panel settings are used) when numbers are interpreted.
For example, in countries where comma represents the decimal place and
period represents thousands, users see numbers in those formats at runtime.
For information about the locally correct display of dates and day names, see
String on page 142 and DayName on page 63.
18 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
DataWindow Reference 19
Four examples
Four examples
The following topics provide examples that illustrate using DataWindow
expression functions.
You create a DataWindow object using the Code and Description columns. You
want to know the number of null values in the Description column.
How to do it In the DataWindow object, you create a computed field that uses functions to
display the number of null values in the Description column.
For the sake of demonstrating the use of functions, the following computed
fields are created in the Summary band of the DataWindow object (with text
objects that tell you what information each computed field is providing):
Count(description for all)
counts the number of descriptions (that are not null);
Sum(If(IsNull(description), 1, 0))
returns a 1 if the description column is null, a 0 if the description column is not
null, and then adds the total;
Count(id for all)
20 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
IsNull(description)
evaluates whether the last row in the table has a description that is null. The
return value of the IsNull function is true or false.
What you get Here is the design for the DataWindow object.
Here is the DataWindow object showing eight descriptions, three of which are
null and five of which are not null. The last description for Id=8 is null.
DataWindow Reference 21
Four examples
A few restrictions apply to the use of aggregate functions. You cannot use an
aggregate function:
• In a filter
• In a validation rule
• As an argument for another aggregate function
This example demonstrates the use of the Sum aggregate function.
What you want to do Using the employee table in the PB Demo DB as the data source, you create a
DataWindow object using at least the Emp_id and the Sex columns. You want
the DataWindow object to display the number of male employees and female
employees in the company.
How to do it In the summary band in the workspace, add two computed fields to the
DataWindow object that use the Sum and If functions:
Sum(If(sex = "M", 1, 0))
counts the number of males in your company;
Sum(If(sex = "F", 1, 0))
counts the number of females in your company.
By clicking the Page computed field button, you can also add a Page computed
field in the footer band to display the page number and total pages at the bottom
of each page of the DataWindow object.
22 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
What you get Here is what the design of the DataWindow object looks like.
Here is the last page of the DataWindow object, with the total number of males
and females in the company displayed.
If you want more What if you decide that you also want to know the number of males and
information females in each department in the company?
DataWindow Reference 23
Four examples
Here is the last page of the DataWindow object with the number of males and
females in the shipping department displayed, followed by the total number of
males and females in the company.
24 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
DataWindow Reference 25
Four examples
What you get Here is what the design of the DataWindow object looks like:
Here is what the data looks like with the second row current.
Notice that the number of the current row is 2; the first row and the third row
are "Not current" (and therefore display no bitmap); and the second row, which
is the current row, displays the arrow row indicator.
On your screen, the salary in the first row has a green background because it is
more than $40,000; the salary in the second row has a gray background because
it is more than $60,000; and the salary in the third row has a white background,
which matches the background of the DataWindow object.
26 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
What you want to do A table in your database has four columns: Id, Corporation, Address1, and
Address2. The Corporation, Address1, and Address2 columns allow null
values. Using this table as the data source, you create a DataWindow object
using the four columns. You now want the DataWindow object to display both
parts of the address, separated by a comma.
You create a computed field to concatenate Address1 and Address2 with a
comma separator. Here is the expression that defines the computed field:
address1 + ", " + address2
When you preview the DataWindow object, if either Address1 or Address2 is
null, no part of the address displays because the value of the expression is null.
To display a part of the address, you need to create a computed field that forces
evaluation even if Address2 is null. Note that Address2 is assumed to have data
only if Address1 has data for a particular row.
How to do it In the detail band, create a computed field that uses the If and IsNull functions:
If(IsNull(address1 + address2), address1, address1
+ ", " + address2)
The computed field says this: if the concatenation of the addresses is null
(because address2 is null), then display address1, and if it is not null, display
both parts of the address separated by a comma.
What you get Here is what the design of the DataWindow object looks like. It includes both
the computed field that does not work and the one that does.
DataWindow Reference 27
Four examples
When you preview the DataWindow object, notice that the first computed field
displays null for ABC Corporation and XYZ Corporation. The second
computed field displays the first part of the address, which is not null.
28 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Abs
Description Calculates the absolute value of a number.
Syntax Abs ( n )
Argument Description
n The number for which you want the absolute value
ACos
Description Calculates the arc cosine of an angle.
Syntax ACos ( n )
Argument Description
n The ratio of the lengths of two sides of a triangle for which
you want a corresponding angle (in radians). The ratio must
be a value between -1 and 1.
DataWindow Reference 29
Asc
ACos(1)
This expression returns 3.141593 (rounded to six places):
ACos(-1)
This expression returns 1.000000 (rounded to six places):
ACos(.540302)
See also Cos
ASin
ATan
ACos in the PowerScript Reference
Asc
Description Converts the first character of a string to its Unicode code point. A Unicode
code point is the numerical integer value given to a Unicode character.
Syntax Asc ( string )
Argument Description
string The string for which you want the code point value of the first
character
Return value Unsigned integer. Returns the code point value of the first character in string.
Usage Use Asc to test the case of a character or manipulate text and letters.
To find out the case of a character, you can check whether its code point value
is within the appropriate range.
Examples This expression for a computed field returns the string in code_id if the code
point value of the first character in code_id is A (65):
If (Asc(code_id) = 65, code_id, "Not a valid code")
This expression for a computed field checks the case of the first character of
lname and if it is lowercase, makes it uppercase:
IF (Asc(lname) > 64 AND Asc(lname) < 91, lname,
WordCap(lname))
See also Char
WordCap
Asc in the PowerScript Reference
30 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
AscA
Description Converts the first character of a string to its ASCII integer value.
Syntax AscA ( string )
Argument Description
string The string for which you want the ASCII value of the first character
Return value Integer. Returns the ASCII value of the first character in string.
Usage Use AscA to test the case of a character or manipulate text and letters.
To find out the case of a character, you can check whether its ASCII value is
within the appropriate range.
Examples This expression for a computed field returns the string in code_id if the ASCII
value of the first character in code_id is A (65):
If (AscA(code_id) = 65, code_id, "Not a valid code")
This expression for a computed field checks the case of the first character of
lname and if it is lowercase, makes it uppercase:
IF (AscA(lname) > 64 AND AscA(lname) < 91, lname,
WordCap(lname))
See also CharA
WordCap
AscA in the PowerScript Reference
ASin
Description Calculates the arc sine of an angle.
Syntax ASin ( n )
Argument Description
n The ratio of the lengths of two sides of a triangle for which you want
a corresponding angle (in radians). The ratio must be a value
between -1 and 1.
DataWindow Reference 31
ATan
ATan
Description Calculates the arc tangent of an angle.
Syntax ATan ( n )
Argument Description
n The ratio of the lengths of two sides of a triangle for which you want
a corresponding angle (in radians)
32 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Avg
Description Calculates the average of the values of the column.
Syntax Avg ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the average of the data values.
Column can be the column name or the column number preceded
by a pound sign (#). Column can also be an expression that includes
a reference to the column. The datatype of column must be numeric.
FOR range The data that will be included in the average. For most presentation
(optional) styles, values for range are:
• ALL – (Default) The average of all values in column.
• GROUP n – The average of values in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The average of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The average of all values in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The average of values in column in the
range specified for the Rows option.
• OBJECT – (OLE objects only) The average of values in column
in the range specified for the Rows option.
DISTINCT Causes Avg to consider only the distinct values in column when
(optional) calculating the average. For a value of column, the first row found
with the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The numeric datatype of the column. Returns the average of the values of the
rows in range.
Usage If you specify range, Avg returns the average value of column in range. If you
specify DISTINCT, Avg returns the average value of the distinct values in
column, or if you specify expresn, the average of column for each distinct value
of expresn.
DataWindow Reference 33
Avg
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
In calculating the average, null values are ignored.
34 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Assuming a DataWindow object displays the order number, amount, and line
items for each order, this computed field returns the average of the order
amount for the distinct order numbers:
Avg(order_amt for all DISTINCT order_nbr)
See also Median
Mode
Bitmap
Description Displays the specified bitmap.
Return value The special datatype bitmap, which cannot be used in any other function.
Usage Use Bitmap to dynamically display a bitmap in a computed field. When string
is a column containing bitmap files, a different bitmap can display for each
row.
Examples These examples are all expressions for a computed field.
This expression dynamically displays the bitmap file contained in the column
named employees:
Bitmap(employees)
If the employees column is column 3, this next expression gives the same result
as the expression above:
Bitmap(#3)
This expression displays the bitmap tools.bmp:
Bitmap("TOOLS.BMP")
DataWindow Reference 35
Case
This expression tests the value in the column named password and then uses
the value to determine which bitmap to display:
Bitmap(If(password = "y", "yes.bmp", "no.bmp"))
See also Example 3: creating a row indicator on page 25
Case
Description Tests the values of a column or expression and returns values based on the
results of the test.
Syntax Case ( column WHEN value1 THEN result1 { WHEN value2 THEN result2
{ ... } } { ELSE resultelse } )
Argument Description
column The column or expression whose values you want to test. Column
can be the column name or the column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column. Column is compared to each valuen.
WHEN Introduces a value-result pair. At least one WHEN is required.
(optional)
valuen One or more values that you want to compare to values of column.
A value can be:
• A single value
• A list of values separated by commas (for example, 2, 4, 6, 8)
• A TO clause (for example, 1 TO 20)
• IS followed by a relational operator and comparison value (for
example, IS>5)
• Any combination of the above with an implied OR between
expressions (for example, 1,3,5,7,9,27 TO 33, IS>42)
THEN Introduces the result to be returned when column matches the
corresponding valuen.
resultn An expression whose value is returned by Case for the
corresponding valuen. All resultn values must have the same
datatype.
ELSE Specifies that for any values of column that do not match the values
(optional) of valuen already specified, Case returns resultelse.
resultelse An expression whose value is returned by Case when the value of
column does not match any WHEN valuen expression.
36 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value The datatype of resultn. Returns the result you specify in resultn.
Usage If more than one WHEN clause matches column, Case returns the result of the
first matching one.
Examples This expression for the Background.Color property of a Salary column returns
values that represent red when an employee’s salary is greater than $70,000,
green when an employee’s salary is greater than $50,000, and blue otherwise:
Case(salary WHEN IS >70000 THEN RGB(255,0,0) WHEN IS
>50000 THEN RGB(0,255,0) ELSE RGB(0,0,255))
This expression for the Background.Color property of an employee Id column
returns red for Id 101, gray for Id 102, and black for all other Id numbers:
Case(emp_id WHEN 101 THEN 255 WHEN 102 THEN
RGB(100,100,100) ELSE 0)
This expression for the Format property of the Marital_status column returns
Single, Married, and Unknown based on the data value of the Marital_status
column for an employee:
Case(marital_status WHEN 'S'THEN 'Single' WHEN 'M' THEN
'Married' ELSE 'Unknown')
See also Example 3: creating a row indicator on page 25
If
Ceiling
Description Retrieves the smallest whole number that is greater than or equal to a specified
limit.
Syntax Ceiling ( n )
Argument Description
n The number for which you want the smallest whole number that is
greater than or equal to it
Return value The datatype of n. Returns the smallest whole number that is greater than or
equal to n.
Examples These expressions both return -4:
Ceiling(-4.2)
Ceiling(-4.8)
DataWindow Reference 37
Char
Char
Description Converts an integer to a Unicode character.
Syntax Char ( n )
Argument Description
n The integer you want to convert to a character
Return value String. Returns the character whose code point value is n.
Examples This expression returns the escape character:
Char(27)
See also Asc
Char in the PowerScript Reference
CharA
Description Converts an integer to an ASCII character.
Syntax CharA ( n )
38 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
n The integer you want to convert to a character
Cos
Description Calculates the cosine of an angle.
Syntax Cos ( n )
Argument Description
n The angle (in radians) for which you want the cosine
DataWindow Reference 39
Count
Count
Description Calculates the total number of rows in the specified column.
Syntax Count ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the number of rows. Column can
be the column name or the column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column.
FOR range The data that will be included in the count. For most presentation
(optional) styles, values for range are:
• ALL – (Default) The count of all rows in column.
• GROUP n – The count of rows in column in the specified group.
Specify the keyword GROUP followed by the group number: for
example, GROUP 1.
• PAGE – The count of the rows in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The count of all rows in column
in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The count of values in column in the
range specified for the Rows option.
• OBJECT – (OLE objects only) The count of values in column in
the range specified for the Rows option.
DISTINCT Causes Count to consider only the distinct values in column when
(optional) counting the rows. For a value of column, the first row found with
the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Usage If you specify range, Count determines the number of rows in column in range.
If you specify DISTINCT, Count returns the number of the distinct rows
displayed in column, or if you specify expresn, the number of rows displayed
in column where the value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range.
40 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
DataWindow Reference 41
CrosstabAvg
CrosstabAvg
Description Calculates the average of the values returned by an expression in the values list
of the crosstab. When the crosstab definition has more than one column,
CrosstabAvg can also calculate averages of the expression’s values for groups
of column values.
Return value Double. Returns the average of the crosstab values returned by expression n for
all the column values or, optionally, for a subset of column values. To return a
decimal datatype, use CrosstabAvgDec.
Usage This function is meaningful only for the average of the values of the expression
in a row in the crosstab. This means you can use it only in the detail band, not
in a header, trailer, or summary band.
Null values are ignored and are not included in the average.
How functions in a crosstab are used When a crosstab is generated from
your definition, the appropriate computed fields are automatically created
using the Crosstab functions. To understand the functions, consider a crosstab
with two columns (year and quarter), a row (product), and the values
expression Avg(amount for crosstab).
42 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
When you define the crosstab described above, the painter automatically
creates the appropriate computed fields. A computed field named avg_amount
returns the average of the quarterly figures for each year. Its expression is:
CrosstabAvg(1, 2, "@year")
A second computed field named grand_avg_amount computes the average of
all the amounts in the row. Its expression is:
CrosstabAvg(1)
Other computed fields in the summary band use the Avg function to display the
average of the values in the amount column, the yearly averages, and the final
average.
The crosstab in the Design view looks like this.
DataWindow Reference 43
CrosstabAvg
Each row in the crosstab (after adjusting the column widths) has cells for the
amounts in the quarters, a repeating cell for the yearly average, and a grand
average. The crosstab also displays averages of the amounts for all the financial
codes in the quarters in the summary band at the bottom.
What the function arguments mean When the crosstab definition has more
than one column, you can specify column qualifiers for any of the Crosstab
functions, so that the crosstab displays calculations for groups of column
values. As illustrated previously, when year and quarter are the columns in the
crosstab, the expression for the computed field is:
CrosstabAvg(1, 2, "@year")
The value 2 refers to the quarter column (the second column in the Crosstab
Definition dialog) and “@year” specifies grouping values from the year
column (meaning the function will average values for the quarters within each
year). The value 1 refers to the crosstab-values expression that will be
averaged. In the resulting crosstab, the computed field repeats in each row after
the cells for the quarters within each year.
Tips for defining crosstabs When you define a crosstab with more than one
column, the order of the columns in the Columns box of the Crosstab
Definition dialog box governs the way the columns are grouped. To end up
with the most effective expressions, make the column that contains the
grouping values (for example, year or department) the first column in the
Columns box and the column that contains the values to be grouped (for
example, quarter or employee) second.
44 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
To display calculations for groups of rows, define groups as you would for
other DataWindow presentation styles and define computed fields in the group
header or footer using noncrosstab aggregation functions, such as Avg, Sum, or
Max.
Examples The first two examples use the crosstab expressions shown below:
Count(emp_id for crosstab),Sum(salary for crosstab)
This expression for a computed field in the crosstab returns the average of the
employee counts (the first expression):
CrosstabAvg(1)
This expression for a computed field in the crosstab returns the average of the
salary totals (the second expression):
CrosstabAvg(2)
Consider a crosstab that has two columns (region and city) and the values
expression Avg(sales for crosstab). This expression for a computed field in the
detail band computes the average sales over all the cities in a region:
CrosstabAvg(1, 2, "@region")
This expression for another computed field in the same crosstab computes the
grand average over all the cities:
CrosstabAvg(1)
See also CrosstabAvgDec
CrosstabCount
CrosstabMax
CrosstabMin
CrosstabSum
DataWindow Reference 45
CrosstabAvgDec
CrosstabAvgDec
Description Calculates the average of the values returned by an expression in the values list
of the crosstab and returns a result with the decimal datatype. When the
crosstab definition has more than one column, CrosstabAvgDec can also
calculate averages of the expression’s values for groups of column values.
Return value Decimal. Returns the average of the crosstab values returned by expression n
for all the column values or, optionally, for a subset of column values.
Usage Use this function instead of CrosstabAvg when you want to return a decimal
datatype instead of a double datatype. For more information, see CrosstabAvg.
See also CrosstabMaxDec
CrosstabMinDec
CrosstabSumDec
Decimal support in DataWindow expressions
46 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
CrosstabCount
Description Counts the number of values returned by an expression in the values list of the
crosstab. When the crosstab definition has more than one column,
CrosstabCount can also count the number of the expression’s values for groups
of column values.
Return value Long. Returns the number of values returned by expression n for all the column
values or, optionally, for a subset of column values.
Usage This function is meaningful only for the count of the values of the expression
in a row in the crosstab. This means you can use it only in the detail band, not
in a header, trailer, or summary band.
Null values are ignored and are not included in the count.
For more information about restricting the calculation to groups of values when
the crosstab definition has more than one column, see Usage for CrosstabAvg.
Examples These examples all use the crosstab-values expressions shown below:
Count(emp_id for crosstab),Sum(salary for crosstab)
DataWindow Reference 47
CrosstabMax
This expression for a computed field in the crosstab returns the count of the
employee counts (the first expression):
CrosstabCount(1)
This expression for a computed field in the crosstab returns the count of the
salary totals (the second expression):
CrosstabCount(2)
The next two examples use a crosstab with two columns (year and quarter), a
row (product), and the values expression Avg(sales for crosstab).
This expression for a computed field returns the count of the sales for each
year:
CrosstabCount(1, 2, "@year")
This expression for a computed field returns the count of all the sales in the
row:
CrosstabCount(1)
For an example illustrating how the painter automatically defines a crosstab by
creating computed fields using the Crosstab functions, see CrosstabAvg.
See also CrosstabAvg
CrosstabMax
CrosstabMin
CrosstabSum
CrosstabMax
Description Calculates the maximum value returned by an expression in the values list of
the crosstab. When the crosstab definition has more than one column,
CrosstabMax can also calculate the maximum of the expression’s values for
groups of column values.
48 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value Double. Returns the maximum value returned by expression n for all the
column values or, optionally, for a subset of column values. To return a decimal
datatype, use CrosstabMaxDec.
Usage This function is meaningful only for the maximum of the values of the
expression in a row in the crosstab. This means you can use it only in the detail
band, not in a header, trailer, or summary band.
Null values are ignored and are not included in the comparison.
For more information about restricting the calculation to groups of values when
the crosstab definition has more than one column, see Usage for CrosstabAvg.
Examples These examples all use the crosstab-values expressions shown below:
Count(emp_id for crosstab),Sum(salary for crosstab)
This expression for a computed field in the crosstab returns the maximum of
the employee counts (the first expression):
CrosstabMax(1)
This expression for a computed field in the crosstab returns the maximum of
the salary totals (the second expression):
CrosstabMax(2)
The next two examples use a crosstab with two columns (year and quarter), a
row (product), and a values expression Avg(sales for crosstab).
DataWindow Reference 49
CrosstabMaxDec
This expression for a computed field returns the largest of the quarterly average
sales for each year:
CrosstabMax(1, 2, "@year")
This expression for a computed field returns the maximum of all the average
sales in the row:
CrosstabMax(1)
For an example illustrating how the painter automatically defines a crosstab by
creating computed fields using the Crosstab functions, see CrosstabAvg.
See also CrosstabAvg
CrosstabCount
CrosstabMaxDec
CrosstabMin
CrosstabSum
CrosstabMaxDec
Description Calculates the maximum value returned by an expression in the values list of
the crosstab and returns a result with the decimal datatype. When the crosstab
definition has more than one column, CrosstabMaxDec can also calculate the
maximum of the expression’s values for groups of column values.
50 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value Decimal. Returns the maximum value returned by expression n for all the
column values or, optionally, for a subset of column values.
Usage Use this function instead of CrosstabMax when you want to return a decimal
datatype instead of a double datatype. For more information, see CrosstabMax.
See also CrosstabAvgDec
CrosstabMinDec
CrosstabSumDec
Decimal support in DataWindow expressions
CrosstabMin
Description Calculates the minimum value returned by an expression in the values list of
the crosstab. When the crosstab definition has more than one column,
CrosstabMin can also calculate the minimum of the expression’s values for
groups of column values.
Return value Double. Returns the minimum value returned by expression n for all the
column values or, optionally, for a subset of column values. To return a decimal
datatype, use CrosstabMinDec.
DataWindow Reference 51
CrosstabMin
Usage This function is meaningful only for the minimum of the values of the
expression in a row in the crosstab. This means you can use it only in the detail
band, not in a header, trailer, or summary band.
Null values are ignored and are not included in the comparison.
For more information about restricting the calculation to groups of values when
the crosstab definition has more than one column, see Usage for CrosstabAvg.
Examples These examples all use the crosstab-values expressions shown below:
Count(emp_id for crosstab),Sum(salary for crosstab)
This expression for a computed field in the crosstab returns the minimum of the
employee counts (the first expression):
CrosstabMin(1)
This expression for a computed field in the crosstab returns the minimum of the
salary totals (the second expression):
CrosstabMin(2)
The next two examples use a crosstab with two columns (year and quarter), a
row (product), and the values expression Avg(sales for crosstab).
This expression for a computed field returns the smallest of the quarterly
average sales for each year:
CrosstabMin(1, 2, "@year")
This expression for a computed field returns the minimum of all the average
sales in the row:
CrosstabMin(1)
For an example illustrating how the painter automatically defines a crosstab by
creating computed fields using the crosstab functions, see CrosstabAvg.
See also CrosstabAvg
CrosstabCount
CrosstabMax
CrosstabMinDec
CrosstabSum
52 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
CrosstabMinDec
Description Calculates the minimum value returned by an expression in the values list of
the crosstab and returns a result with the decimal datatype. When the crosstab
definition has more than one column, CrosstabMinDec can also calculate the
minimum of the expression’s values for groups of column values.
Return value Decimal. Returns the minimum value returned by expression n for all the
column values or, optionally, for a subset of column values.
Usage Use this function instead of CrosstabMin when you want to return a decimal
datatype instead of a double datatype. For more information, see CrosstabMin.
See also CrosstabAvgDec
CrosstabMaxDec
CrosstabSumDec
Decimal support in DataWindow expressions
DataWindow Reference 53
CrosstabSum
CrosstabSum
Description Calculates the sum of the values returned by an expression in the values list of
the crosstab. When the crosstab definition has more than one column,
CrosstabSum can also calculate the sum of the expression’s values for groups
of column values.
Return value Double. Returns the total of the values returned by expression n for all the
column values or, optionally, for a subset of column values. To return a decimal
datatype, use CrosstabSumDec.
Usage This function is meaningful only for the sum of the values of the expression in
a row in the crosstab. This means you can use it only in the detail band, not in
a header, trailer, or summary band.
Null values are ignored and are not included in the sum.
For more information about restricting the calculation to groups of values when
the crosstab definition has more than one column, see Usage for CrosstabAvg.
Examples These examples all use the crosstab-values expressions shown below:
Count(emp_id for crosstab),Sum(salary for crosstab)
54 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
This expression for a computed field in the crosstab returns the sum of the
employee counts (the first expression):
CrosstabSum(1)
This expression for a computed field in the crosstab returns the sum of the
salary totals (the second expression):
CrosstabSum(2)
The next two examples use a crosstab with two columns (year and quarter), a
row (product), and the values expression Avg(sales for crosstab).
This expression for a computed field returns the sum of the quarterly average
sales for each year:
CrosstabSum(1, 2, "@year")
This expression for a computed field returns the sum of all the average sales in
the row:
CrosstabSum(1)
For an example illustrating how the painter automatically defines a crosstab by
creating computed fields using the Crosstab functions, see CrosstabAvg.
See also CrosstabAvg
CrosstabCount
CrosstabMax
CrosstabMin
CrosstabSumDec
CrosstabSumDec
Description Calculates the sum of the values returned by an expression in the values list of
the crosstab and returns a result with the decimal datatype. When the crosstab
definition has more than one column, CrosstabSumDec can also calculate the
sum of the expression’s values for groups of column values.
DataWindow Reference 55
CumulativePercent
Argument Description
n The number of the crosstab-values expression for which you want
the sum of the returned values. The expression’s datatype must be
numeric.
column The number of the crosstab column as it is listed in the Columns box
(optional) of the Crosstab Definition dialog box for which you want
intermediate calculations.
groupvalue A string whose value controls the grouping for the calculation.
(optional) Groupvalue is usually a value from another column in the crosstab.
To specify the current column value in a dynamic crosstab, rather
than a specific value, specify @ plus the column name as a quoted
string.
Return value Decimal. Returns the total of the values returned by expression n for all the
column values or, optionally, for a subset of column values.
Usage Use this function instead of CrosstabSum when you want to return a decimal
datatype instead of a double datatype. For more information, see CrosstabSum.
See also CrosstabAvgDec
CrosstabMaxDec
CrosstabMinDec
Decimal support in DataWindow expressions
CumulativePercent
Description Calculates the total value of the rows up to and including the current row in the
specified column as a percentage of the total value of the column (a running
percentage).
Syntax CumulativePercent ( column { FOR range } )
Argument Description
column The column for which you want the cumulative value of the rows
up to and including the current row as a percentage of the total value
of the column for range. Column can be the column name or the
column number preceded by a pound sign (#). Column can also be
an expression that includes a reference to the column. The datatype
of column must be numeric.
56 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
FOR range The data that will be included in the cumulative percentage. For
(optional) most presentation styles, values for range are:
• ALL – (Default) The cumulative percentage of all rows in
column.
• GROUP n – The cumulative percentage of rows in column in the
specified group. Specify the keyword GROUP followed by the
group number: for example, GROUP 1.
• PAGE – The cumulative percentage of the rows in column on a
page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The cumulative percentage of
all rows in column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The cumulative percentage of values in
column in the range specified for the Rows option.
• OBJECT – (OLE objects only) The cumulative percentage of
values in column in the range specified for the Rows option.
DataWindow Reference 57
CumulativeSum
CumulativeSum
Description Calculates the total value of the rows up to and including the current row in the
specified column (a running total).
Syntax CumulativeSum ( column { FOR range } )
Argument Description
column The column for which you want the cumulative total value of the
rows up to and including the current row for group. Column can be
the column name or the column number preceded by a pound sign
(#). Column can also be an expression that includes a reference to
the column. The datatype of column must be numeric.
58 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
FOR range The data that will be included in the cumulative sum. For most
(optional) presentation styles, values for range are:
• ALL – (Default) The cumulative sum of all values in column.
• GROUP n – The cumulative sum of values in column in the
specified group. Specify the keyword GROUP followed by the
group number: for example, GROUP 1.
• PAGE – The cumulative sum of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The cumulative sum of all
values in column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The cumulative sum of values in
column in the range specified for the Rows option.
• OBJECT – (OLE objects only) The cumulative sum of values in
column in the range specified for the Rows option.
Return value The appropriate numeric datatype. Returns the cumulative total value of the
rows.
Usage If you specify range, CumulativeSum restarts the accumulation at the start of
the range.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
In calculating the sum, null values are ignored.
Examples This expression returns the running total for the values that are not null in the
column named salary:
CumulativeSum(salary)
This expression returns the running total for the values that are not null in the
column named salary in group 1:
CumulativeSum(salary for group 1)
DataWindow Reference 59
CurrentRow
This expression entered in the Value box on the Data property page for a graph
returns the running total for the salary column for the values in the graph that
are not null:
CumulativeSum(salary for graph)
This expression in a crosstab computed field returns the running total for the
salary column for the values in the crosstab that are not null:
CumulativeSum(salary for crosstab)
See also CumulativePercent
CurrentRow
Description Reports the number of the current row (the row with focus).
Syntax CurrentRow ( )
Return value Long. Returns the number of the row if it succeeds and 0 if no row is current.
Examples This expression in a computed field returns the number of the current row:
CurrentRow()
This expression for a computed control displays an arrow bitmap as an
indicator for the row with focus and displays no bitmap for rows not having
focus. As the user moves from row to row, an arrow marks where the user is:
Bitmap(If(CurrentRow() = GetRow(),"arrow.bmp",""))
Alternatively, this expression for the Visible property of an arrow picture
control makes the arrow bitmap visible for the row with focus and invisible for
rows not having focus. As the user moves from row to row, an arrow marks
where the user is:
If(CurrentRow() = GetRow(), 1, 0)
See also Example 3: creating a row indicator on page 25
GetRow
60 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Date
Description Converts a string whose value is a valid date to a value of datatype date.
Syntax Date ( string )
Argument Description
string A string containing a valid date (such as Jan 1, 2004, or 12-31-99)
that you want returned as a date
Return value Date. Returns the date in string as a date. If string does not contain a valid date,
Date returns null.
Regional Settings
To make sure you get correct return values for the year, you must verify that
yyyy is the Short Date Style for year in the Regional Settings of the user’s
Control Panel. Your program can check this with the RegistryGet function.
If the setting is not correct, you can ask the user to change it manually or to
have the application change it (by calling the RegistrySet function). The user
might need to reboot after the setting is changed.
DataWindow Reference 61
DateTime
Examples These expressions all return the date datatype for July 4, 2004 when the default
location of the month in Regional Settings is center:
Date("2004/07/04")
Date("2004 July 4")
Date("July 4, 2004")
See also IsDate
Date in the PowerScript Reference
DateTime
Description Combines a date and a time value into a DateTime value.
Syntax DateTime ( date {, time } )
Argument Description
date A valid date (such as Jan 1, 2005, or 12-31-99) or a blob variable
whose first value is a date that you want included in the value
returned by DateTime.
time A valid time (such as 8am or 10:25:23:456799) or a blob variable
(optional) whose first value is a time that you want included in the value
returned by DateTime. If you include a time, only the hour portion
is required. If you omit the minutes, seconds, or microseconds, they
are assumed to be zeros. If you omit am or pm, the hour is
determined according to the 24-hour clock.
Return value DateTime. Returns a DateTime value based on the values in date and
optionally time. If time is omitted, DateTime uses 00:00:00.000000 (midnight).
Usage To display microseconds in a time, the display format for the field must include
microseconds.
For information on valid dates, see Date.
Examples This expression returns the values in the order_date and order_time columns as
a DateTime value that can be used to update the database:
DateTime(Order_Date, Order_Time)
Using this expression for a computed field displays 11/11/01 11:11:00:
DateTime(11/11/01, 11:11)
See also Date
Time
62 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Day
Description Obtains the day of the month in a date value.
Syntax Day ( date )
Argument Description
date The date for which you want the day
Return value Integer. Returns an integer (1–31) representing the day of the month in date.
Examples This expression returns 31:
Day(2005-01-31)
This expression returns the day of the month in the start_date column:
Day(start_date)
See also Date
IsDate
Month
Year
Day in the PowerScript Reference
DayName
Description Gets the day of the week in a date value and returns the weekday’s name.
Syntax DayName ( date )
Argument Description
date The date for which you want the name of the day
Return value String. Returns a string whose value is the name of the weekday (Sunday,
Monday, and so on) for date.
DataWindow Reference 63
DayNumber
Usage DayName returns a name in the language of the deployment files available on
the machine where the application is run. If you have installed localized
deployment files in the development environment or on a user’s machine, then
on that machine the name returned by DayName will be in the language of the
localized files.
For information about localized deployment files, see the chapter on
internationalizing an application in Application Techniques.
Examples This expression for a computed field returns Okay if the day in date_signed is
not Sunday:
If(DayName(date_signed) <> "Sunday", "Okay", "Invalid
Date")
To pass this validation rule, the day in date_signed must not be Sunday:
DayName(date_signed) <> "Sunday"
See also Date
Day
DayNumber
IsDate
DayName in the PowerScript Reference
DayNumber
Description Gets the day of the week of a date value and returns the number of the weekday.
Syntax DayNumber ( date )
Argument Description
date The date from which you want the number of the day of the week
Return value Integer. Returns an integer (1–7) representing the day of the week of date.
Sunday is day 1, Monday is day 2, and so on.
Examples This expression for a computed field returns Wrong Day if the date in
start_date is not a Sunday or a Monday:
If(DayNumber(start_date) > 2, "Okay", "Wrong Day")
This expression for a computed field returns Wrong Day if the date in end_date
is not a Saturday or a Sunday:
If(DayNumber(end_date) > 1 and DayNumber(end_date)
64 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
DaysAfter
Description Gets the number of days one date occurs after another.
Syntax DaysAfter ( date1, date2 )
Argument Description
date1 A date value that is the start date of the interval being measured
date2 A date value that is the end date of the interval
Return value Long. Returns a long containing the number of days date2 occurs after date1.
If date2 occurs before date1, DaysAfter returns a negative number.
Examples This expression returns 4:
DaysAfter(2005-12-20, 2005-12-24)
This expression returns –4:
DaysAfter(2005-12-24, 2005-12-20)
This expression returns 0:
DaysAfter(2005-12-24, 2005-12-24)
This expression returns 5:
DaysAfter(2004-12-29, 2005-01-03)
See also Date
SecondsAfter
DaysAfter in the PowerScript Reference
DataWindow Reference 65
Dec
Dec
Description Converts the value of a string to a decimal.
Syntax Dec ( string )
Argument Description
string The string you want returned as a decimal
Return value Decimal. Returns the contents of string as a decimal if it succeeds and 0 if
string is not a number.
Usage The decimal datatype supports up to 28 digits.
You can also append the letter D in upper or lowercase to identify a number as
a decimal constant in DataWindow expressions. For example, 2.0d and
123.456789012345678901D are treated as decimals.
66 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Describe
Description Reports the values of properties of a DataWindow object and controls within
the object. Each column and graphic control in the DataWindow object has a
set of properties, which are listed in Controls in a DataWindow and their
properties on page 158. You specify one or more properties as a string and
Describe returns the values of the properties.
Syntax Describe ( propertylist )
Argument Description
propertylist A string whose value is a blank-separated list of properties or
Evaluate functions. For a list of valid properties, see Controls in a
DataWindow and their properties on page 158.
Return value String. Returns a string that includes a value for each property or Evaluate
function. A new line character (~n) separates the value of each item in
propertylist.
If propertylist contains an invalid item, Describe returns an exclamation point
(!) for that item and ignores the rest of propertylist. Describe returns a question
mark (?) if there is no value for a property.
Usage Specifying the values for propertylist can be complex. For information and
examples, see the Describe method for the DataWindow control.
Examples This expression for a computed field in the header band of a DataWindow
object displays the DataWindow object’s SELECT statement:
Describe("DataWindow.Table.Select")
See also Describe on page 584
Exp
Description Raises e to the specified power.
Syntax Exp ( n )
Argument Description
n The power to which you want to raise e (2.71828)
DataWindow Reference 67
Fact
Fact
Description Gets the factorial of a number.
Syntax Fact ( n )
Argument Description
n The number for which you want the factorial
Fill
Description Builds a string of the specified length by repeating the specified characters
until the result string is long enough.
Syntax Fill ( chars, n )
Argument Description
chars A string whose value will be repeated to fill the return string
n A long whose value is the number of characters in the string you
want returned
68 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value String. Returns a string n characters long filled with repetitions of the
characters in the argument chars. If the argument chars has more than n
characters, the first n characters of chars are used to fill the return string. If the
argument chars has fewer than n characters, the characters in chars are
repeated until the return string has n characters.
Usage Fill is used to create a line or other special effect. For example, asterisks
repeated in a printed report can fill an amount line, or hyphens can simulate a
total line in a screen display.
Examples This expression returns a string containing 35 asterisks:
Fill("*", 35)
This expression returns the string -+-+-+-:
Fill("-+", 7)
This expression returns 10 tildes (~):
Fill("~", 10)
See also FillA
Space
Fill in the PowerScript Reference
FillA
Description Builds a string of the specified length in bytes by repeating the specified
characters until the result string is long enough.
Syntax FillA ( chars, n )
Argument Description
chars A string whose value will be repeated to fill the return string
n A long whose value is the number of bytes in the string you want
returned
Return value String. Returns a string n bytes long filled with repetitions of the characters in
the argument chars. If the argument chars has more than n bytes, the first n
bytes of chars are used to fill the return string. If the argument chars has fewer
than n bytes, the characters in chars are repeated until the return string has n
bytes.
Usage FillA replaces the functionality that Fill had in DBCS environments in
PowerBuilder 9. In SBCS environments, Fill and FillA return the same results.
DataWindow Reference 69
First
First
Description Reports the value in the first row in the specified column.
Syntax First ( column { FOR range { DISTINCT { expresn {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the value of the first row. Column
can be a column name or a column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column.
FOR range The data that will be included when the value in the first row is
(optional) found. Values for range depend on the presentation style. See the
Usage section for more information.
DISTINCT Causes First to consider only the distinct values in column when
(optional) determining the first value. For a value of column, the first row
found with the value is used and other rows that have the same value
are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The datatype of the column. Returns the value in the first row of column. If you
specify range, First returns the value of the first row in column in range.
Usage If you specify range, First determines the value of the first row in column in
range. If you specify DISTINCT, First returns the first distinct value in column,
or if you specify expresn, the first distinct value in column where the value of
expresn is distinct.
For most presentation styles, values for range are:
• ALL – (Default) The value in the first of all rows in column.
• GROUP n – The value in the first of rows in column in the specified group.
Specify the keyword GROUP followed by the group number: for example,
GROUP 1.
• PAGE – The value in the first of the rows in column on a page.
70 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
For Crosstabs, specify CROSSTAB for range to indicate the first of all rows in
column in the crosstab.
For Graphs specify GRAPH and for OLE objects specify OBJECT for range,
to indicate the value in the first row in column in the range specified for the
Rows option.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
GetPaintDC
Description Returns the GDI context to which to draw.
DataWindow Reference 71
GetPaintRectHeight
Syntax GetPaintDC ( )
Return value UnsignedLong.
Usage The clip region of the GDI context is guaranteed to be the same as the rectangle
defined by GetPaintRectHeight, GetPaintRectWidth, GetPaintRectX, and
GetPaintRectY.
You can also use the GetClipBox GDI function. You can compute the bounds
inside the global rendering function itself.
The GetPaintDC expression is only valid in the context of the Paint expression
function.
Examples This example draws a cube with the text of the column emp_lname.
Paint
(
MyDrawWPFCubeText
(
GetPaintDC(),
GetPaintRectX(),
GetPaintRectY(),
GetPaintRectWidth(),
GetPaintRectHeight(),
emp_lname,
GetRow()
)
)
See also GetPaintRectHeight
GetPaintRectWidth
GetPaintRectX
GetPaintRectY
Paint
GetPaintRectHeight
Description Returns the bounds of the computed field and the device context is clipped
within those bounds. This expression is only valid in the context of the Paint
expression function.
Syntax GetPaintRectHeight ( )
Return value Integer. Returns the height bounds for the computed field.
72 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
GetPaintRectWidth
Description Returns the bounds of the computed field and the device context is clipped
within those bounds. This expression is only valid in the context of the Paint
expression function.
Syntax GetPaintRectWidth ( )
Return value Integer. Returns the width bounds for the computed field.
See also GetPaintDC
GetPaintRectHeight
GetPaintRectX
GetPaintRectY
Paint
GetPaintRectX
Description Returns the bounds of the computed field and the device context is clipped
within those bounds. This expression is only valid in the context of the Paint
expression function.
Syntax GetPaintRectX ( )
Return value Integer. Returns the X bound for the computed field.
See also GetPaintDC
GetPaintRectHeight
GetPaintRectWidth
GetPaintRectY
Paint
DataWindow Reference 73
GetPaintRectY
GetPaintRectY
Description Returns the bounds of the computed field and the device context is clipped
within those bounds. This expression is only valid in the context of the Paint
expression function.
Syntax GetPaintRectY ( )
Return value Integer. Returns the Y bound for the computed field.
See also GetPaintDC
GetPaintRectHeight
GetPaintRectWidth
GetPaintRectX
GetRow
Description Reports the number of a row associated with a band in a DataWindow object.
Syntax GetRow ( )
Return value Long. Returns the number of a row if it succeeds, 0 if no data has been retrieved
or added, and –1 if an error occurs. Where you call GetRow determines what
row it returns, as follows:
If the control in the
DataWindow object is in
this band GetRow returns
Header First row on the page
Group header First row in the group
Detail The row in which the expression occurs
Group trailer Last row in the group
Summary Last row in the DataWindow object
Footer Last row on the page
Examples This expression for a computed field in the detail band displays the number of
each row:
GetRow()
74 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
This expression for a computed field in the header band checks to see if there
is data. It returns the number of the first row on the page if there is data, and
otherwise returns No Data:
If(GetRow()= 0, "No Data", String(GetRow()))
See also Example 3: creating a row indicator on page 25
CurrentRow
GetRow on page 668
GetText
Description Obtains the text that a user has entered in a column.
Syntax GetText ( )
Return value String. Returns the text the user has entered in the current column.
Usage Use GetText in validation rules to compare what the user has entered to
application-defined criteria before it is accepted into the data buffer.
Examples This validation rule checks that the value the user entered in the column is less
than 100:
Integer(GetText()) < 100
See also GetText on page 677
Hour
Description Obtains the hour in a time value. The hour is based on a 24-hour clock.
Syntax Hour ( time )
Argument Description
time The time value from which you want the hour
Return value Integer. Returns an integer (00–23) containing the hour portion of time.
Examples This expression returns the current hour:
Hour(Now())
DataWindow Reference 75
If
If
Description Evaluates a condition and returns a value based on that condition.
Syntax If ( boolean, truevalue, falsevalue )
Argument Description
boolean A boolean expression that evaluates to true or false.
truevalue The value you want returned if the boolean expression is true. The
value can be a string or numeric value.
falsevalue The value you want returned if the boolean expression is false. The
value can be a string or numeric value.
Return value The datatype of truevalue or falsevalue. Returns truevalue if boolean is true
and falsevalue if it is false. Returns null if an error occurs.
Examples This expression returns Boss if salary is over $100,000 and Employee if salary
is less than or equal to $100,000:
If(salary > 100000, "Boss", "Employee")
This expression returns Boss if salary is over $100,000, Supervisor if salary is
between $12,000 and $100,000, and Clerk if salary is less than or equal to
$12,000:
If(salary > 100000, "Boss", If(salary > 12000,
"Supervisor", "Clerk"))
In this example of a validation rule, the value the user should enter in the
commission column depends on the price. If price is greater than or equal to
1000, then the commission is between .10 and .20. If price is less than 1000,
then the commission must be between .04 and .09. The validation rule is:
(Number(GetText()) >= If(price >=1000, .10, .04)) AND
(Number(GetText()) <= If(price >= 1000, .20, .09))
76 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Int
Description Gets the largest whole number less than or equal to a number.
Syntax Int ( n )
Argument Description
n The number for which you want the largest whole number that is
less than or equal to it
Return value The datatype of n. Returns the largest whole number less than or equal to n.
Examples These expressions return 3.0:
Int(3.2)
Int(3.8)
These expressions return -4.0:
Int(-3.2)
Int(-3.8)
See also Ceiling
Integer
Round
Truncate
Int in the PowerScript Reference
DataWindow Reference 77
Integer
Integer
Description Converts the value of a string to an integer.
Syntax Integer ( string )
Argument Description
string The string you want returned as an integer
Return value Integer. Returns the contents of string as an integer if it succeeds and 0 if string
is not a number.
Examples This expression converts the string 24 to an integer:
Integer("24")
This expression for a computed field returns “Not a valid age” if age does not
contain a number. The expression checks whether the Integer function returns
0, which means it failed to convert the value:
If (Integer(age) <> 0, age, "Not a valid age")
This expression returns 0:
Integer("3ABC") // 3ABC is not a number
This validation rule checks that the value in the column the user entered is less
than 100:
Integer(GetText()) < 100
This validation rule for the column named age insures that age contains a
string:
Integer(age) <> 0
See also IsNumber
Integer in the PowerScript Reference
IsDate
Description Tests whether a string value is a valid date.
Syntax IsDate ( datevalue )
Argument Description
datevalue A string whose value you want to test to determine whether it is a
valid date
78 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value Boolean. Returns true if datevalue is a valid date and false if it is not.
Examples This expression returns true:
IsDate("Jan 1, 99")
This expression returns false:
IsDate("Jan 32, 2005")
This expression for a computed field returns a day number or 0. If the
date_received column contains a valid date, the expression returns the number
of the day in date_received in the computed field, and otherwise returns 0:
If(IsDate(String(date_received)),
DayNumber(date_received), 0)
See also IsDate in the PowerScript Reference
IsExpanded
Description Tests whether a node in a TreeView DataWindow with the specified TreeView
level and that includes the specified row is expanded.
Syntax IsExpanded(long row, long level)
Argument Description
row The number of the row that belongs to the node
level The TreeView level of the node
Return value Returns true if the group is expanded and false otherwise.
Usage A TreeView DataWindow has several TreeView level bands that can be
expanded and collapsed. You can use the IsExpanded function to test whether
or not a node in a TreeView DataWindow is expanded.
Examples This expression returns true if the node that contains row 3 at TreeView level
2 is expanded:
IsExpanded(3,2)
DataWindow Reference 79
IsNull
IsNull
Description Reports whether the value of a column or expression is null.
Syntax IsNull ( any )
Argument Description
any A column or expression that you want to test to determine whether
its value is null
Return value Boolean. Returns true if any is null and false if it is not.
Usage Use IsNull to test whether a user-entered value or a value retrieved from the
database is null.
Examples This expression returns true if either a or b is null:
IsNull(a + b)
This expression returns true if the value in the salary column is null:
IsNull(salary)
This expression returns true if the value the user has entered is null:
IsNull(GetText())
See also Example 1: counting null values in a column on page 20
Example 4: displaying all data when a column allows nulls on page 26
IsNull in the PowerScript Reference
IsNumber
Description Reports whether the value of a string is a number.
Syntax IsNumber ( string )
Argument Description
string A string whose value you want to test to determine whether it is a
valid number
Return value Boolean. Returns true if string is a valid number and false if it is not.
Examples This expression returns true:
IsNumber("32.65")
This expression returns false:
80 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
IsNumber("A16")
This expression for a computed field returns “Not a valid age” if age does not
contain a number:
If(IsNumber(age), age, "Not a valid age")
To pass this validation rule, Age_nbr must be a number:
IsNumber(Age_nbr) = true
See also Integer
IsNumber in the PowerScript Reference
IsRowModified
Description Reports whether the row has been modified.
Syntax IsRowModified ( )
Return value Boolean. Returns true if the row has been modified and false if it has not.
Usage In a DataWindow object, when you use IsRowModified in bands other than the
detail band, it reports on a row in the detail band. See GetRow for a table
specifying which row is associated with each band for reporting purposes.
Examples This expression in a computed field in the detail area displays true or false to
indicate whether each row has been modified:
IsRowModified()
This expression defined in the Properties view for the Color property of the
computed field displays the text (true) in red if the user has modified any value
in the row:
If(IsRowModified(), 255, 0)
See also GetRow
IsRowNew
Description Reports whether the row has been newly inserted.
Syntax IsRowNew ( )
DataWindow Reference 81
IsSelected
Return value Boolean. Returns true if the row is new and false if it was retrieved from the
database.
Usage In a DataWindow object, when you call IsRowNew in bands other than the
detail band, it reports on a row in the detail band. See GetRow for a table
specifying which row is associated with each band for reporting purposes.
Examples This expression defined in the Properties view for the Protect property of a
column prevents the user from modifying the column unless the row has been
newly inserted:
If(IsRowNew(), 0, 1)
See also GetRow
GetItemStatus on page 649
IsSelected
Description Determines whether the row is selected. A selected row is highlighted using
reverse video.
Syntax IsSelected ( )
Return value Boolean. Returns true if the row is selected and false if it is not selected.
Usage When you use IsSelected in bands other than the detail band, it reports on a row
in the detail band. See GetRow for a table specifying which row is associated
with each band for reporting purposes.
Examples This expression for a computed field in the detail area displays a bitmap if the
row is selected:
Bitmap(If(IsSelected(), "beach.bmp", ""))
This example allows the DataWindow object to display a salary total for all the
selected rows. The expression for a computed field in the detail band returns
the salary only when the row is selected so that another computed field in the
summary band can add up all the selected salaries.
The expression for cf_selected_salary (the computed field in the detail band)
is:
If(IsSelected(), salary, 0)
The expression for the computed field in the summary band is:
Sum(cf_selected_salary for all)
82 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
IsTime
Description Reports whether the value of a string is a valid time value.
Syntax IsTime ( timevalue )
Argument Description
timevalue A string whose value you want to test to determine whether it is a
valid time
Return value Boolean. Returns true if timevalue is a valid time and false if it is not.
Examples This expression returns true:
IsTime("8:00:00 am")
This expression returns false:
IsTime("25:00")
To pass this validation rule, the value in start_time must be a time:
IsTime(start_time)
See also IsTime in the PowerScript Reference
Large
Description Finds a large value at a specified ranking in a column (for example, third-
largest, fifth-largest) and returns the value of another column or expression
based on the result.
Syntax Large ( returnexp, column, ntop { FOR range { DISTINCT { expres1
{, expres2 {, ... } } } } } )
Argument Description
returnexp The value you want returned when the large value is found.
Returnexp includes a reference to a column, but not necessarily the
column that is being evaluated for the largest value, so that a value is
returned from the same row that contains the large value.
DataWindow Reference 83
Large
Argument Description
column The column that contains the large value you are searching for.
Column can be a column name or a column number preceded by a
pound sign (#). Column can also be an expression that includes a
reference to the column. The datatype of column must be numeric.
ntop The ranking of the large value in relation to the column’s largest
value. For example, when ntop is 2, Large finds the second-largest
value.
FOR range The data that will be included when the largest value is found. For
(optional) most presentation styles, values for range are:
• ALL – (Default) The largest of all values in column.
• GROUP n – The largest of values in column in the specified group.
Specify the keyword GROUP followed by the group number: for
example, GROUP 1.
• PAGE – The largest of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The largest of all values in column
in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The largest of values in column in the
range specified for the Rows option.
• OBJECT – (OLE objects only) The largest of values in column in
the range specified for the Rows option.
DISTINCT Causes Large to consider only the distinct values in column when
(optional) determining the large value. For a value of column, the first row
found with the value is used and other rows that have the same value
are ignored.
expresn One or more expressions that you need to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or an
expression.
Return value The datatype of returnexp. Returns the ntop-largest value if it succeeds and –1
if an error occurs.
Usage If you specify range, Large returns the value in returnexp when the value in
column is the ntop-largest value in range. If you specify DISTINCT, Large
returns returnexp when the value in column is the ntop-largest value of the
distinct values in column, or if you specify expresn, the ntop-largest for each
distinct value of expresn.
84 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows are as follows:
• For the Graph or OLE presentation style, Rows is always All
• For Graph controls, Rows can be All, Page, or Group
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies
You cannot use this or other aggregate functions in validation rules or filter
expressions.
Using an aggregate function cancels the effect of setting Retrieve Rows As
Needed in the painter. To do the aggregation, a DataWindow object always
retrieves all rows.
Examples These expressions return the names of the salespersons with the three largest
sales (sum_sales is the sum of the sales for each salesperson) in group 2, which
might be the salesregion group. Note that sum_sales contains the values being
compared, but Large returns a value in the name column:
Large(name, sum_sales, 1 for group 2)
Large(name, sum_sales, 2 for group 2)
Large(name, sum_sales, 3 for group 2)
This example reports the salesperson with the third-largest sales, considering
only the first entry for each person:
Large(name, sum_sales, 3 for all DISTINCT sum_sales)
See also Small
Last
Description Gets the value in the last row in the specified column.
Syntax Last ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
DataWindow Reference 85
Last
Argument Description
column The column for which you want the value of the last row. Column
can be a column name or a column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column.
FOR range The data that will be included when the value in the last row is
(optional) found. For most presentation styles, values for range are:
• ALL – (Default) The value in the last of all rows in column.
• GROUP n – The value in the last row in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The value in the last row in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The value in the last row in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The value in the last row in column in
the range specified for the Rows option.
• OBJECT – (OLE objects only) The value in the last row in
column in the range specified for the Rows option.
DISTINCT Causes Last to consider only the distinct values in column when
(optional) determining the last value. For a value of column, the first row
found with the value is used and other rows that have the same value
are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The datatype of the column. Returns the value in the last row of column. If you
specify range, Last returns the value of the last row in column in range.
Usage If you specify range, Last determines the value of the last row in column in
range. If you specify DISTINCT, Last returns the last distinct value in column,
or if you specify expresn, the last distinct value in column where the value of
expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
86 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
LastPos
Description Finds the last position of a target string in a source string.
Syntax LastPos ( string1, string2, searchlength )
Argument Description
string1 The string in which you want to find string2.
string2 The string you want to find in string1.
searchlength A long that limits the search to the leftmost searchlength characters
(optional) of the source string string1. The default is the entire string.
Return value Long. Returns a long whose value is the starting position of the last occurrence
of string2 in string1 within the characters specified in searchlength. If string2
is not found in string1 or if searchlength is 0, LastPos returns 0. If any
argument’s value is null, LastPos returns null.
Usage The LastPos function is case-sensitive. The entire target string must be found
in the source string.
DataWindow Reference 87
Left
Examples This statement returns 6, because the position of the last occurrence of RU is
position 6:
LastPos("BABE RUTH", "RU")
This statement returns 3:
LastPos("BABE RUTH", "B")
This statement returns 0, because the case does not match:
LastPos("BABE RUTH", "be")
This statement searches the leftmost 4 characters and returns 0, because the
only occurrence of RU is after position 4:
LastPos("BABE RUTH", "RU", 2)
See also Pos
Left
Description Obtains a specified number of characters from the beginning of a string.
Syntax Left ( string, n )
Argument Description
string The string containing the characters you want
n A long specifying the number of characters you want
Return value String. Returns the leftmost n characters in string if it succeeds and the empty
string (“”) if an error occurs.
If n is greater than or equal to the length of the string, Left returns the entire
string. It does not add spaces to make the return value’s length equal to n.
Examples This expression returns BABE:
Left("BABE RUTH", 4)
This expression returns BABE RUTH:
Left("BABE RUTH", 40)
This expression for a computed field returns the first 40 characters of the text
in the column home_address:
Left(home_address, 40)
88 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
LeftA
Description Obtains a specified number of bytes from the beginning of a string.
Syntax LeftA ( string, n )
Argument Description
string The string containing the characters you want
n A long specifying the number of bytes you want
Return value String. Returns the characters in the leftmost n bytes in string if it succeeds and
the empty string (“”) if an error occurs.
If n is greater than or equal to the length of the string, LeftA returns the entire
string. It does not add spaces to make the return value’s length equal to n.
Usage LeftA replaces the functionality that Left had in DBCS environments in
PowerBuilder 9. In SBCS environments, Left and LeftA return the same results.
See also MidA
PosA
RightA
LeftA in the PowerScript Reference
LeftTrim
Description Removes spaces from the beginning of a string.
Syntax LeftTrim ( string )
Argument Description
string The string you want returned with leading spaces deleted
Return value String. Returns a copy of string with leading spaces deleted if it succeeds and
the empty string (“”) if an error occurs.
DataWindow Reference 89
Len
Len
Description Reports the length of a string in characters.
Syntax Len ( string )
Argument Description
string The string for which you want the length
Return value Long. Returns a long containing the length of string in characters if it succeeds
and –1 if an error occurs.
Examples This expression returns 0:
Len("")
This validation rule tests that the value the user entered is fewer than 20
characters:
Len(GetText()) < 20
See also LenA
Len in the PowerScript Reference
LenA
Description Reports the length of a string in bytes.
Syntax LenA ( string )
90 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
string The string for which you want the length
Return value Long. Returns a long containing the length of string in bytes if it succeeds and
–1 if an error occurs.
Usage LenA replaces the functionality that Len had in DBCS environments in
PowerBuilder 9. In SBCS environments, Len and LenA return the same results.
See also Len
LenA in the PowerScript Reference
Log
Description Gets the natural logarithm of a number.
Syntax Log ( n )
Argument Description
n The number for which you want the natural logarithm (base e). The
value of n must be greater than 0.
Return value Double. Returns the natural logarithm of n. An execution error occurs if n is
negative or zero.
Inverse
The inverse of the Log function is the Exp function.
DataWindow Reference 91
LogTen
LogTen
Description Gets the base 10 logarithm of a number.
Syntax LogTen ( n )
Argument Description
n The number for which you want the base 10 logarithm. The value
of n must not be negative.
Obtaining a number
The expression 10^n is the inverse for LogTen(n). To obtain n given number
(nbr = LogTen(n)), use n = 10^nbr.
Long
Description Converts the value of a string to a long.
Syntax Long ( string )
Argument Description
string The string you want returned as a long
Return value Long. Returns the contents of string as a long if it succeeds and 0 if string is
not a valid number.
Examples This expression returns 2167899876 as a long:
92 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Long("2167899876")
See also Long in the PowerScript Reference
LookUpDisplay
Description Obtains the display value in the code table associated with the data value in the
specified column.
Syntax LookUpDisplay ( column )
Argument Description
column The column for which you want the code table display value
Return value String. Returns the display value when it succeeds and the empty string (“”) if
an error occurs.
Usage If a column has a code table, a buffer stores a value from the data column of
the code table, but the user sees a value from the display column. Use
LookUpDisplay to get the value the user sees.
Examples This expression returns the display value for the column unit_measure:
LookUpDisplay(unit_measure)
Assume the column product_type has a code table and you want to use it as a
category for a graph. To display the product type descriptions instead of the
data values in the categories, enter this expression in the Category option on
the Data page in the graph’s property sheet:
LookUpDisplay(product_type)
Lower
Description Converts all the characters in a string to lowercase.
DataWindow Reference 93
Match
Return value String. Returns string with uppercase letters changed to lowercase if it
succeeds and the empty string (“”) if an error occurs.
Examples This expression returns castle hill:
Lower("Castle Hill")
See also Upper
Lower in the PowerScript Reference
Match
Description Determines whether a string’s value contains a particular pattern of characters.
Syntax Match ( string, textpattern )
Argument Description
string The string in which you want to look for a pattern of characters
textpattern A string whose value is the text pattern
Return value Boolean. Returns true if string matches textpattern and false if it does not.
Match also returns false if either argument has not been assigned a value or the
pattern is invalid.
Usage Match enables you to evaluate whether a string contains a general pattern of
characters. To find out whether a string contains a specific substring, use the
Pos function.
Textpattern is similar to a regular expression. It consists of metacharacters,
which have special meaning, and ordinary characters, which match
themselves. You can specify that the string begin or end with one or more
characters from a set, or that it contain any characters except those in a set.
A text pattern consists of metacharacters, which have special meaning in the
match string, and nonmetacharacters, which match the characters themselves.
The following tables explain the meaning and use of these metacharacters:
94 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
The metacharacters asterisk (*), plus (+), and question mark (?) are unary
operators that are used to specify repetitions in a regular expression:
Metacharacter Meaning Example
* (asterisk) Indicates zero or more A* matches zero or more As
occurrences (no As, A, AA, AAA, and so
on)
+ (plus) Indicates one or more A+ matches one A or more
occurrences than one A (A, AAA, and so
on)
? (question mark) Indicates zero or one A? matches an empty string
occurrence (“”) or A
Sample patterns The following table shows various text patterns and sample
text that matches each pattern:
DataWindow Reference 95
Max
Examples This validation rule checks that the value the user entered begins with an
uppercase letter. If the value of the expression is false, the data fails validation:
Match(GetText(), "^[A-Z]")
See also Pos
Match in the PowerScript Reference
Max
Description Gets the maximum value in the specified column.
Syntax Max ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
96 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
column The column for which you want the maximum value. Column can
be the column name or the column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column. The datatype of column must be numeric.
FOR range The data that will be included when the maximum value is found.
(optional) For most presentation styles, values for range are:
• ALL – (Default) The maximum value of all rows in column.
• GROUP n – The maximum value of rows in column in the
specified group. Specify the keyword GROUP followed by the
group number: for example, GROUP 1.
• PAGE – The maximum value of the rows in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The maximum value of all rows
in column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The maximum value in column in the
range specified for the Rows option.
• OBJECT – (OLE objects only) The maximum value in column
in the range specified for the Rows option.
DISTINCT Causes Max to consider only the distinct values in column when
(optional) determining the largest value. For a value of column, the first row
found with the value is used and other rows that have the same value
are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The datatype of the column. Returns the maximum value in the rows of
column. If you specify range, Max returns the maximum value in column in
range.
Usage If you specify range, Max determines the maximum value in column in range.
If you specify DISTINCT, Max returns the maximum distinct value in column,
or if you specify expresn, the maximum distinct value in column where the
value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
DataWindow Reference 97
Median
Median
Description Calculates the median of the values of the column. The median is the middle
value in the set of values, for which there is an equal number of values greater
and smaller than it.
Syntax Median ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
98 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
column The column for which you want the median of the data values.
Column can be the column name or the column number preceded
by a pound sign (#). Column can also be an expression that includes
a reference to the column. The datatype of column must be numeric.
FOR range The data that will be included in the median. For most presentation
(optional) styles, values for range are:
• ALL – (Default) The median of all values in column.
• GROUP n – The median of values in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The median of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The median of all values in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The median of values in column in the
range specified for the Rows.
• OBJECT – (OLE objects only) The median of values in column
in the range specified for the Rows option.
DISTINCT Causes Median to consider only the distinct values in column when
(optional) determining the median. For a value of column, the first row found
with the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The numeric datatype of the column. Returns the median of the values of the
rows in range if it succeeds and –1 if an error occurs.
Usage If you specify range, Median returns the median value of column in range. If
you specify DISTINCT, Median returns the median value of the distinct values
in column, or if you specify expresn, the median of column for each distinct
value of expresn.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range.
Settings for Rows include the following:
DataWindow Reference 99
Median
100 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Mid
Description Obtains a specified number of characters from a specified position in a string.
Syntax Mid ( string, start {, length } )
Argument Description
string The string from which you want characters returned.
start A long specifying the position of the first character you want
returned (the position of the first character of the string is 1).
length A long whose value is the number of characters you want returned.
(optional) If you do not enter length or if length is greater than the number of
characters to the right of start, Mid returns the remaining characters
in the string.
Return value String. Returns characters specified in length of string starting at character
start. If start is greater than the number of characters in string, the Mid function
returns the empty string (“”). If length is greater than the number of characters
remaining after the start character, Mid returns the remaining characters. The
return string is not filled with spaces to make it the specified length.
Examples This expression returns “”:
Mid("BABE RUTH", 40, 5)
This expression returns BE RUTH:
Mid("BABE RUTH", 3)
This expression in a computed field returns ACCESS DENIED if the fourth
character in the column password is not R:
If(Mid(password, 4, 1) = "R", "ENTER", "ACCESS DENIED")
To pass this validation rule, the fourth character in the column password must
be 6:
Mid(password, 4, 1) = "6"
See also Mid in the PowerScript Reference
MidA
Description Obtains a specified number of bytes from a specified position in a string.
Syntax MidA ( string, start {, length } )
Argument Description
string The string from which you want characters returned.
start A long specifying the position of the first byte you want returned
(the position of the first byte of the string is 1).
length A long whose value is the number of bytes you want returned. If
(optional) you do not enter length or if length is greater than the number of
bytes to the right of start, MidA returns the remaining bytes in the
string.
Return value String. Returns characters specified by the number of bytes in length of string
starting at the byte specified by start. If start is greater than the number of bytes
in string, the MidA function returns the empty string (“”). If length is greater
than the number of bytes remaining after the start byte, MidA returns the
remaining bytes. The return string is not filled with spaces to make it the
specified length.
Usage MidA replaces the functionality that Mid had in DBCS environments in
PowerBuilder 9. In SBCS environments, Mid and MidA return the same results.
See also Mid
MidA in the PowerScript Reference
Min
Description Gets the minimum value in the specified column.
Syntax Min ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the minimum value. Column can
be the column name or the column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column. The datatype of column must be numeric.
102 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
FOR range The data that will be included in the minimum. For most
(optional) presentation styles, values for range are:
• ALL – (Default) The minimum of all values in column.
• GROUP n – The minimum of values in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The minimum of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The minimum of all values in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The minimum of values in column in
the range specified for the Rows option.
• OBJECT – (OLE objects only) The minimum of values in
column in the range specified for the Rows option.
DISTINCT Causes Min to consider only the distinct values in column when
(optional) determining the minimum value. For a value of column, the first
row found with the value is used and other rows that have the same
value are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The datatype of the column. Returns the minimum value in the rows of column.
If you specify range, Min returns the minimum value in the rows of column in
range.
Usage If you specify range, Min determines the minimum value in column in range.
If you specify DISTINCT, Min returns the minimum distinct value in column,
or if you specify expresn, the minimum distinct value in column where the
value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
Null values are ignored and are not considered in determining the minimum.
Minute
Description Obtains the number of minutes in the minutes portion of a time value.
Syntax Minute ( time )
Argument Description
time The time value from which you want the minutes
Return value Integer. Returns the minutes portion of time (00 to 59).
Examples This expression returns 1:
Minute(19:01:31)
See also Hour
Second
Minute in the PowerScript Reference
104 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Mod
Description Obtains the remainder (modulus) of a division operation.
Syntax Mod ( x, y )
Argument Description
x The number you want to divide by y
y The number you want to divide into x
Mode
Description Calculates the mode of the values of the column. The mode is the most
frequently occurring value.
Syntax Mode ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the mode of the data values.
Column can be the column name or the column number preceded
by a pound sign (#). Column can also be an expression that includes
a reference to the column. The datatype of column must be numeric.
Argument Description
FOR range The data that will be included in the mode. For most presentation
(optional) styles, values for range are:
• ALL – (Default) The mode of all values in column.
• GROUP n – The mode of values in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The mode of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The mode of all values in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The mode of values in column in the
range specified for the Rows option.
• OBJECT – (OLE objects only) The mode of values in column in
the range specified for the Rows option.
DISTINCT Causes Mode to consider only the distinct values in column when
(optional) determining the mode. For a value of column, the first row found
with the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The numeric datatype of the column. Returns the mode of the values of the
rows in range if it succeeds and –1 if an error occurs.
Usage If you specify range, Mode returns the mode of column in range. If you specify
DISTINCT, Mode returns the mode of the distinct values in column, or if you
specify expresn, the mode of column for each distinct value of expresn.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
In calculating the mode, null values are ignored.
106 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Month
Description Gets the month of a date value.
Syntax Month ( date )
Argument Description
date The date from which you want the month
Return value Integer. Returns an integer (1 to 12) whose value is the month portion of date.
Examples This expression returns 1:
Month(2005-01-31)
This expression for a computed column returns Wrong Month if the month in
the column expected_grad_date is not 6:
If(Month(expected_grad_date) = 6, "June", "Wrong
Month")
This validation rule expression checks that the value of the month in the date
in the column expected_grad_date is 6:
Month(expected_grad_date) = 6
See also Day
Date
Year
Month in the PowerScript Reference
Now
Description Obtains the current time based on the system time of the client machine.
Syntax Now ( )
Return value Time. Returns the current time based on the system time of the client machine.
Usage Use Now to compare a time to the system time or to display the system time on
the screen. The timer interval specified for the DataWindow object determines
the frequency at which the value of Now is updated. For example, if the timer
interval is one second, it is updated every second. The default timer interval is
one minute (60,000 milliseconds).
Examples This expression returns the current system time:
Now()
108 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
This expression sets the column value to 8:00 when the current system time is
before 8:00 and to the current time if it is after 8:00:
If(Now() < 08:00:00, '08:00:00', String(Now()))
The displayed time refreshes every time the specified time interval period
elapses.
If a static value of time is required (for example, the time when a report has
been executed or the retrieve has started), you can use a static text field that you
modify as follows:
//Set the time when the report was executed in
//the text field t_now
dw1.Modify("t_now.text='"+ String(Now(),"hh:mm")+"'")
//execute the report
dw1.retrieve()
See also If
Year
Now in the PowerScript Reference
Number
Description Converts a string to a number.
Syntax Number ( string )
Argument Description
string The string you want returned as a number
Return value A numeric datatype. Returns the contents of string as a number. If string is not
a valid number, Number returns 0.
Examples This expression converts the string 24 to a number:
Number("24")
This expression for a computed field tests whether the value in the age column
is greater than 55 and if so displays N/A; otherwise, it displays the value in age:
If(Number(age) > 55, "N/A", age)
This validation rule checks that the number the user entered is between 25,000
and 50,000:
Number(GetText())>25000 AND Number (GetText())<50000
Page
Description Gets the number of the current page.
Syntax Page ( )
Return value Long. Returns the number of the current page.
PageAbs
Description Gets the absolute number of the current page.
Syntax PageAbs ( )
Return value Long. Returns the absolute number of the current page.
110 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Usage Use this function for group reports that have ResetPageCount = yes. It returns
the absolute page number, ignoring the page reset count. This enables you to
number the grouped pages, but also to obtain the absolute page when the user
wants to print the current page, regardless of what that page number is in a
grouped page report.
Examples This expression returns the absolute number of the current page:
PageAbs()
This example obtains the absolute page number for the first row on the page in
the string variable ret:
string ret, row
row = dw1.Object.DataWindow.FirstRowOnPage
ret = dw1.Describe("Evaluate('pageabs()', "+row+")")
See also Page
PageCount
PageCountAcross
PageAcross
Description Gets the number of the current horizontal page. For example, if a report is twice
the width of the print preview window and the window is scrolled horizontally
to display the portion of the report that was outside the preview, PageAcross
returns 2 because the current page is the second horizontal page.
Syntax PageAcross ( )
Return value Long. Returns the number of the current horizontal page if it succeeds and –1
if an error occurs.
Examples This expression returns the number of the current horizontal page:
PageAcross()
See also Page
PageCount
PageCountAcross
PageCount
Description Gets the total number of pages when a DataWindow object is being viewed in
Print Preview. This number is also the number of printed pages if the
DataWindow object is not wider than the preview window. If the DataWindow
object is wider than the preview window, the number of printed pages will be
greater than the number PageCount gets.
Syntax PageCount ( )
Return value Long. Returns the total number of pages.
Usage PageCount applies to Print Preview.
PageCountAcross
Description Gets the total number of horizontal pages that are wider than the Print Preview
window when a DataWindow object is viewed in Print preview.
Syntax PageCountAcross ( )
Return value Long. Returns the total number of horizontal pages if it succeeds and –1 if an
error occurs.
Usage PageCountAcross applies to Print Preview.
112 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Examples This expression returns the number of horizontal pages in the Print Preview
window:
PageCountAcross()
See also Page
PageAcross
PageCount
Paint
Description Takes a string expression argument and returns the same string, allowing you
to paint inside a DataWindow object in a way that respect the position and z-
order of other DataWindow objects.
Syntax Paint ( expr )
Argument Description
expr Any valid DataWindow expression. It should contain a function
call to a drawing global function with rendering logic. If expr is a
string expression and the value is not null, the computed field will
render the evaluated string expression.
Return value String. The Paint expression function takes a string expression argument and
returns the same string.
Examples This example instantiates the drawing functions and, if the drawing function
returns false, the text “No Pie” displays.
Paint
(
MyDrawPieSlice
(
GetPaintDC()
GetPaintRectX()
GetPaintRectY()
GetPaintRectWidth()
GetPaintRectHeight()
GetRow()*100/RowCount()
)
)
Paint
(
MyDrawPieSlice
(
GetPaintDC(),
GetRow()*100/RowCount()
)
)
Paint
(
if MyDrawPieSlice(GetPaintDC()),"","No Pie")
)
Percent
Description Gets the percentage that the current value represents of the total of the values
in the column.
Syntax Percent ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the value of each row expressed as
a percentage of the total of the values of the column. Column can be
the column name or the column number preceded by a pound sign
(#). Column can also be an expression that includes a reference to
the column. The datatype of column must be numeric.
114 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
FOR range The data to be included in the percentage. For most presentation
(optional) styles, values for range are:
• ALL – (Default) The percentage that the current value represents
of all rows in column.
• GROUP n – The percentage that the current value represents of
rows in column in the specified group. Specify the keyword
GROUP followed by the group number: for example, GROUP 1.
• PAGE – The percentage that the current value represents of the
rows in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The percentage that the current
value represents of all rows in column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The percentage that the current value
represents of values in column in the range specified for the
Rows option.
• OBJECT – (OLE objects only) The percentage that the current
value represents of values in column in the range specified for
the Rows option.
DISTINCT Causes Percent to consider only the distinct values in column when
(optional) determining the percentage. For a value of column, the first row
found with the value is used and other rows that have the same value
are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value A numeric datatype (decimal, double, integer, long, or real). Returns the
percentage the current row of column represents of the total value of the
column.
Usage Usually you use Percent in a column to display the percentage for each row.
You can also use Percent in a header or trailer for a group. In the header,
Percent displays the percentage for the first value in the group, and in the
trailer, for the last value in the group.
If you specify range, Percent returns the percentage that the current row of
column represents relative to the total value of range. For example, if column
5 is salary, Percent(#5 for group 1) is equivalent to
salary/(Sum(Salary for group 1)).
If you specify DISTINCT, Percent returns the percent that a distinct value in
column represents of the total value of column. If you specify expresn, Percent
returns the percent that the value in column represents of the total for column
in a row in which the value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
Null values are ignored and are not considered in the calculation.
116 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Assuming a DataWindow object displays the order number, amount, and line
items for each order, this computed field returns the order amount as a
percentage of the total order amount for the distinct order numbers:
Percent(order_amt for all DISTINCT order_nbr)
See also CumulativePercent
Pi
Description Multiplies pi by a specified number.
Syntax Pi ( n )
Argument Description
n The number you want to multiply by pi (3.14159265358979323...)
Pos
Description Finds one string within another string.
Return value Long. Returns a long whose value is the starting position of the first occurrence
of string2 in string1 after the position specified in start. If string2 is not found
in string1 or if start is not within string1, Pos returns 0.
Usage The Pos function is case-sensitive.
Examples This expression returns the position of the letter a in the value of the last_name
column:
Pos(last_name, "a")
This expression returns 6:
Pos("BABE RUTH", "RU")
This expression returns 1:
Pos("BABE RUTH", "B")
This expression returns 0 (because the case does not match):
Pos("BABE RUTH", "be")
This expression returns 0 (because it starts searching at position 5, after the
occurrence of BE):
Pos("BABE RUTH", "BE", 5)
See also LastPos
Left
Mid
PosA
Right
Pos in the PowerScript Reference
PosA
Description Finds one string within another string.
118 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value Long. Returns a long whose value is the starting position of the first occurrence
of string2 in string1 after the position in bytes specified in start. If string2 is
not found in string1 or if start is not within string1, PosA returns 0.
Usage PosA replaces the functionality that Pos had in DBCS environments in
PowerBuilder 9. In SBCS environments, Pos and PosA return the same results.
See also LastPos
LeftA
MidA
Pos
RightA
PosA in the PowerScript Reference
ProfileInt
Description Obtains the integer value of a setting in the specified profile file.
Syntax ProfileInt ( filename, section, key, default )
Argument Description
filename A string whose value is the name of the profile file. If you do not
specify a full path, ProfileInt uses the operating system’s standard
file search order to find the file.
section A string whose value is the name of a group of related values in the
profile file. In the file, section names are in square brackets. Do not
include the brackets in section. Section is not case-sensitive.
key A string specifying the setting name in section whose value you
want. The setting name is followed by an equal sign in the file. Do
not include the equal sign in key. Key is not case-sensitive.
default An integer value that ProfileInt returns if filename is not found, if
section or key does not exist in filename, or if the value of key
cannot be converted to an integer.
Return value Integer. Returns default if filename is not found, section is not found in
filename, key is not found in section, or the value of key is not an integer.
Returns –1 if an error occurs.
Usage Use ProfileInt and ProfileString to get configuration settings from a profile file
you have designed for your application. ProfileInt and ProfileString can read files
with ANSI or UTF16-LE encoding on Windows systems, and ANSI or
UTF16-BE encoding on UNIX systems.
ProfileString
Description Obtains the string value of a setting in the specified profile file.
Syntax ProfileString ( filename, section, key, default )
120 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
filename A string whose value is the name of the profile file. If you do not
specify a full path, ProfileString uses the operating system’s
standard file search order to find the file.
section A string whose value is the name of a group of related values in the
profile file. In the file, section names are in square brackets. Do not
include the brackets in section. Section is not case-sensitive.
key A string specifying the setting name in section whose value you
want. The setting name is followed by an equal sign in the file. Do
not include the equal sign in key. Key is not case-sensitive.
default A string value that ProfileString returns if filename is not found, if
section or key does not exist in filename, or if the value of key
cannot be converted to an integer.
Return value String, with a maximum length of 4096 characters. Returns the string from key
within section within filename. If filename is not found, section is not found in
filename, or key is not found in section, ProfileString returns default. If an error
occurs, it returns the empty string (“”).
Usage Use ProfileInt and ProfileString to get configuration settings from a profile file
you have designed for your application. ProfileInt and ProfileString can read files
with ANSI or UTF16-LE encoding on Windows systems, and ANSI or UTF16-
BE encoding on UNIX systems.
Examples This example uses the following section in the PROFILE.INI file:
[Employee]
Name="Smith"
[Dept]
Name="Marketing"
This expression returns the string for the keyword Name in section Employee
in file C:\PROFILE.INI. It returns None if the section or keyword does not
exist. In this case it returns Smith:
Rand
Description Obtains a random whole number between 1 and a specified upper limit.
Syntax Rand ( n )
Argument Description
n The upper limit of the range of random numbers you want returned.
The lower limit is always 1. The upper limit cannot exceed 32,767.
Return value A numeric datatype, the datatype of n. Returns a random whole number
between 1 and n.
Usage The sequence of numbers generated by repeated calls to the Rand function is a
computer-generated pseudorandom sequence.
You can control whether the sequence is different each time your application
runs by calling the PowerScript Randomize function to initialize the random
number generator.
Examples This expression returns a random whole number between 1 and 10:
Rand(10)
See also Rand in the PowerScript Reference
Randomize in the PowerScript Reference
Real
Description Converts a string value to a real datatype.
Syntax Real ( string )
Argument Description
string The string whose value you want to convert to a real
122 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value Real. Returns the contents of a string as a real. If string is not a valid number,
Real returns 0.
Examples This expression converts 24 to a real:
Real("24")
This expression returns the value in the column temp_text as a real:
Real(temp_text)
See also Real in the PowerScript Reference
RelativeDate
Description Obtains the date that occurs a specified number of days after or before another
date.
Syntax RelativeDate ( date, n )
Argument Description
date A date value
n An integer indicating the number of days
Return value Date. Returns the date that occurs n days after date if n is greater than 0.
Returns the date that occurs n days before date if n is less than 0.
Examples This expression returns 2005-02-10:
RelativeDate(2005-01-31, 10)
This expression returns 2005-01-21:
RelativeDate(2005-01-31, -10)
See also DaysAfter
RelativeDate in the PowerScript Reference
RelativeTime
Description Obtains a time that occurs a specified number of seconds after or before
another time within a 24-hour period.
Syntax RelativeTime ( time, n )
Argument Description
time A time value
n A long number of seconds
Return value Time. Returns the time that occurs n seconds after time if n is greater than 0.
Returns the time that occurs n seconds before time if n is less than 0. The
maximum return value is 23:59:59.
Examples This expression returns 19:01:41:
RelativeTime(19:01:31, 10)
This expression returns 19:01:21:
RelativeTime(19:01:31, -10)
See also SecondsAfter
RelativeTime in the PowerScript Reference
Replace
Description Replaces a portion of one string with another.
Syntax Replace ( string1, start, n, string2 )
Argument Description
string1 The string in which you want to replace characters with string2.
start A long whose value is the number of the first character you want
replaced. (The first character in the string is number 1.)
n A long whose value is the number of characters you want to replace.
string2 The string that replaces characters in string1. The number of
characters in string2 can be greater than, equal to, or fewer than the
number of characters you are replacing.
Return value String. Returns the string with the characters replaced if it succeeds and the
empty string (“”) if it fails.
Usage If the start position is beyond the end of the string, Replace appends string2 to
string1. If there are fewer characters after the start position than specified in n,
Replace replaces all the characters to the right of character start.
124 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Examples This expression changes the last two characters of the string David to e to make
it Dave:
Replace("David", 4, 2, "e")
This expression returns MY HOUSE:
Replace("YOUR HOUSE", 1, 4, "MY")
This expression returns Closed for the Winter:
Replace("Closed for Vacation", 12, 8, "the Winter")
See also ReplaceA
Replace in the PowerScript Reference
ReplaceA
Description Replaces a portion of one string with another.
Syntax ReplaceA ( string1, start, n, string2 )
Argument Description
string1 The string in which you want to replace bytes with string2.
start A long whose value is the number of the first byte you want
replaced. (The first byte in the string is number 1.)
n A long whose value is the number of bytes you want to replace.
string2 The string that replaces bytes in string1. The number of bytes in
string2 can be greater than, equal to, or fewer than the number of
bytes you are replacing.
Return value String. Returns the string with the bytes replaced if it succeeds and the empty
string (“”) if it fails.
Usage If the start position is beyond the end of the string, ReplaceA appends string2
to string1. If there are fewer bytes after the start position than specified in n,
ReplaceA replaces all the bytes to the right of character start.
RGB
Description Calculates the long value that represents the color specified by numeric values
for the red, green, and blue components of the color.
Syntax RGB ( red, green, blue )
Argument Description
red The integer value of the red component of the color
green The integer value of the green component of the color
blue The integer value of the blue component of the color
Return value Long. Returns the long that represents the color created by combining the
values specified in red, green, and blue. If an error occurs, RGB returns null.
Usage The formula for combining the colors is:
Red + (256 * Green) + (65536 * Blue)
Use RGB to obtain the long value required to set the color for text and drawing
objects. You can also set an object’s color to the long value that represents the
color. The RGB function provides an easy way to calculate that value.
Determining color components The value of a component color is an
integer between 0 and 255 that represents the amount of the component that is
required to create the color you want. The lower the value, the darker the color;
the higher the value, the lighter the color.
The following table lists red, green, and blue values for the 16 standard colors:
Color Red value Green value Blue value
Black 0 0 0
White 255 255 255
Light Gray 192 192 192
Dark Gray 128 128 128
Red 255 0 0
Dark Red 128 0 0
Green 0 255 0
Dark Green 0 128 0
Blue 0 0 255
Dark Blue 0 0 128
Magenta 255 0 255
Dark Magenta 128 0 128
Cyan 0 255 255
Dark Cyan 0 128 128
126 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Examples This expression returns as a long 8421376, which represents dark cyan:
RGB(0,128,128)
This expression for the Background.Color property of a salary column returns
a long that represents red if an employee’s salary is greater than $50,000 and
white if salary is less than or equal to $50,000:
If(salary>50000, RGB(255,0,0), RGB(255,255,255))
See also Example 3: creating a row indicator on page 25
RGB in the PowerScript Reference
RichText
Description Takes as argument a string expression interpreted as RTF and renders it as such.
If the argument is not RTF nothing is rendered.
Syntax RichText ( string )
Argument Description
string The string expression to render as RTF
RichTextFile
Description Takes as argument a string expression interpreted as a RTF file name and
renders the contents. If the argument is not a RTF file nothing is rendered.
Syntax RichTextFile ( string )
Argument Description
string The string expression to render as RTF file
Right
Description Obtains a specified number of characters from the end of a string.
Syntax Right ( string, n )
Argument Description
string The string from which you want characters returned
n A long whose value is the number of characters you want returned
from the right end of string
Return value String. Returns the rightmost n characters in string if it succeeds and the empty
string (“”) if an error occurs.
If n is greater than or equal to the length of the string, Right returns the entire
string. It does not add spaces to make the return value’s length equal to n.
Examples This expression returns HILL:
Right("CASTLE HILL", 4)
This expression returns CASTLE HILL:
Right("CASTLE HILL", 75)
See also Left
Mid
Pos
Right in the PowerScript Reference
RightA
Description Obtains a specified number of characters from the end of a string.
128 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Return value String. Returns the rightmost n characters in string if it succeeds and the empty
string (“”) if an error occurs.
If n is greater than or equal to the length of the string, RightA returns the entire
string. It does not add spaces to make the return value’s length equal to n.
Usage RightA replaces the functionality that Right had in DBCS environments in
PowerBuilder 9. In SBCS environments, Right and RightA return the same
results.
See also LeftA
MidA
PosA
Right
RightTrim
Description Removes spaces from the end of a string.
Syntax RightTrim ( string )
Argument Description
string The string you want returned with trailing blanks deleted
Return value String. Returns a copy of string with trailing blanks deleted if it succeeds and
the empty string (“”) if an error occurs.
Examples This expression returns RUTH:
RightTrim("RUTH ")
See also LeftTrim
Trim
RightTrim in the PowerScript Reference
Round
Description Rounds a number to the specified number of decimal places.
Syntax Round ( x , n )
Argument Description
x The number you want to round.
n The number of decimal places to which you want to round x. Valid
values are 0 through 28.
Return value Decimal. If n is positive, Round returns x rounded to the specified number of
decimal places. If n is negative, it returns x rounded to (- n +1) places before
the decimal point. Returns –1 if it fails.
Examples This expression returns 9.62:
Round(9.624, 2)
This expression returns 9.63:
Round(9.625, 2)
This expression returns 9.600:
Round(9.6, 3)
This expression returns -9.63:
Round(-9.625, 2)
This expression returns -10:
Round(-9.625, -1)
See also Ceiling
Int
Truncate
Round in the PowerScript Reference
RowCount
Description Obtains the number of rows that are currently available in the primary buffer.
Syntax RowCount ( )
Return value Long. Returns the number of rows that are currently available, 0 if no rows are
currently available, and –1 if an error occurs.
130 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Examples This expression in a computed field returns a warning if no data exists and the
number of rows if there is data:
If(RowCount() = 0, "No Data", String(RowCount()))
See also RowCount on page 754
RowHeight
Description Reports the height of a row associated with a band in a DataWindow object.
Syntax RowHeight ( )
Return value Long. Returns the height of the row in the units specified for the DataWindow
object if it succeeds, and –1 if an error occurs.
Usage When you call RowHeight in a band other than the detail band, it reports on a
row in the detail band. See GetRow for a table specifying which row is
associated with each band for reporting purposes.
When a band has Autosize Height set to true, you should avoid using the
RowHeight DataWindow expression function to set the height of any element
in the row. Doing so can result in a logical inconsistency between the height of
the row and the height of the element. If you need to use RowHeight, you must
set the Y coordinate of the element to 0 on the Position page in the Properties
view, otherwise the bottom of the element might be clipped. You must do this
for every element that uses such an expression. If you move any elements in
the band, make sure that their Y coordinates are still set to 0.
You should not use an expression whose runtime value is greater than the value
returned by RowHeight. For example, you should not set the height of a column
to rowheight() + 30. Such an expression produces unpredictable results at
runtime.
Examples This expression for a computed field in the detail band displays the height of
each row:
RowHeight()
See also GetRow
Second
Description Obtains the number of seconds in the seconds portion of a time value.
Syntax Second ( time )
Argument Description
time The time value from which you want the seconds
Return value Integer. Returns the seconds portion of time (00 to 59).
Examples This expression returns 31:
Second(19:01:31)
See also Hour
Minute
Second in the PowerScript Reference
SecondsAfter
Description Gets the number of seconds one time occurs after another.
Syntax SecondsAfter ( time1, time2 )
Argument Description
time1 A time value that is the start time of the interval being measured
time2 A time value that is the end time of the interval
Return value Long. Returns the number of seconds time2 occurs after time1. If time2 occurs
before time1, SecondsAfter returns a negative number.
Examples This expression returns 15:
SecondsAfter(21:15:30, 21:15:45)
This expression returns -15:
SecondsAfter(21:15:45, 21:15:30)
This expression returns 0:
SecondsAfter(21:15:45, 21:15:45)
See also DaysAfter
SecondsAfter in the PowerScript Reference
132 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Sign
Description Reports whether the number is negative, zero, or positive by checking its sign.
Syntax Sign ( n )
Argument Description
n The number for which you want to determine the sign
Sin
Description Calculates the sine of an angle.
Syntax Sin ( n )
Argument Description
n The angle (in radians) for which you want the sine
Return value Double. Returns the sine of n if it succeeds and –1 if an error occurs.
Examples This expression returns .8414709848078965:
Sin(1)
This expression returns 0:
Sin(0)
This expression returns 0:
Sin(pi(1))
See also Cos
Pi
Tan
Sin in the PowerScript Reference
Small
Description Finds a small value at a specified ranking in a column (for example, third-
smallest, fifth-smallest) and returns the value of another column or expression
based on the result.
Syntax Small ( returnexp, column, nbottom { FOR range { DISTINCT { expres1
{, expres2 {, ... } } } } } )
Argument Description
returnexp The value you want returned when the small value is found.
Returnexp includes a reference to a column, but not necessarily the
column that is being evaluated for the small value, so that a value is
returned from the same row that contains the small value.
column The column that contains the small value you are searching for.
Column can be a column name or a column number preceded by a
pound sign (#). Column can also be an expression that includes a
reference to the column. The datatype of column must be numeric.
nbottom The relationship of the small value to the column’s smallest value.
For example, when nbottom is 2, Small finds the second-smallest
value.
FOR range The data that will be included when finding the small value. For
(optional) most presentation styles, values for range are:
• ALL – (Default) The small value of all rows in column.
• GROUP n – The small value of rows in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The small value of the rows in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The small value of all rows in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The small value in column in the range
specified for the Rows option.
• OBJECT – (OLE objects only) The small value in column in the
range specified for the Rows option.
134 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
DISTINCT Causes Small to consider only the distinct values in column when
(optional) determining the small value. For a value of column, the first row
found with the value is used and other rows that have the same value
are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The datatype of returnexp. Returns the nbottom-smallest value if it succeeds
and -1 if an error occurs.
Usage If you specify range, Small returns the value in returnexp when the value in
column is the nbottom-smallest value in range. If you specify DISTINCT,
Small returns returnexp when the value in column is the nbottom-smallest value
of the distinct values in column, or if you specify expresn, the
nbottom-smallest for each distinct value of expresn.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range.
Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
Min might be faster If you do not need a return value from another column
and you want to find the smallest value (nbottom = 1), use Min; it is faster.
Not in validation rules or filter expressions You cannot use this or other
aggregate functions in validation rules or filter expressions.
Space
Description Builds a string of the specified length whose value consists of spaces.
Syntax Space ( n )
Argument Description
n A long whose value is the length of the string you want filled with
spaces
Return value String. Returns a string filled with n spaces if it succeeds and the empty string
(“”) if an error occurs.
Examples This expression for a computed field returns 10 spaces in the computed field if
the value of the rating column is Top Secret; otherwise, it returns the value in
rating:
If(rating = "Top Secret", Space(10), rating)
See also Fill
Space in the PowerScript Reference
Sqrt
Description Calculates the square root of a number.
Syntax Sqrt ( n )
Argument Description
n The number for which you want the square root
136 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
StDev
Description Calculates an estimate of the standard deviation for the specified column.
Standard deviation is a measurement of how widely values vary from average.
Syntax StDev ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want an estimate for the standard
deviation of the values in the rows. Column can be the column name
or the column number preceded by a pound sign (#). Column can
also be an expression that includes a reference to the column. The
datatype of column must be numeric.
FOR range The data to be included in the estimate of the standard deviation.
(optional) For most presentation styles, values for range are:
• ALL – (Default) The estimate of the standard deviation for all
values in column.
• GROUP n – The estimate of the standard deviation for values in
column in the specified group. Specify the keyword GROUP
followed by the group number: for example, GROUP 1.
• PAGE – The estimate of the standard deviation for the values in
column on a page.
For Crosstabs, specify CROSSTAB for range to indicate the
standard deviation for all values in column in the crosstab.
For Graph objects specify GRAPH and for OLE objects specify
OBJECT to indicate the standard deviation for values in column in
the range specified for the Rows option.
Argument Description
DISTINCT Causes StDev to consider only the distinct values in column when
(optional) determining the standard deviation. For a value of column, the first
row found with the value is used and other rows that have the same
value are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value Double. Returns an estimate of the standard deviation for column.
Usage If you specify range, StDev returns an estimate for the standard deviation of
column within range. If you specify DISTINCT, StDev returns an estimate of
the standard deviation for the distinct values in column, or if you specify
expresn, the estimate of the standard deviation of the rows in column where the
value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data tab page (the Range property), and the aggregation function uses that
range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
138 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
This expression returns an estimate for standard deviation of the values in the
column named salary:
StDev(salary)
This expression returns an estimate for standard deviation of the values in the
column named salary in group 1:
StDev(salary for group 1)
This expression returns an estimate for standard deviation of the values in
column 4 on the page:
StDev(#4 for page)
This expression entered in the Value box on the Data tab page in the graph’s
property sheet returns an estimate for standard deviation of the values in the
qty_used column in the graph:
StDev(qty_used for graph)
This expression for a computed field in a crosstab returns the estimate for
standard deviation of the values in the qty_ordered column in the crosstab:
StDev(qty_ordered for crosstab)
Assuming a DataWindow object displays the order number, amount, and line
items for each order, this computed field returns the estimated standard
deviation of the order amount for the distinct order numbers:
StDev(order_amt for all DISTINCT order_nbr)
See also StDevP
Var
StDevP
Description Calculates the standard deviation for the specified column. Standard deviation
is a measurement of how widely values vary from average.
Syntax StDevP ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the standard deviation of the values
in the rows. Column can be the column name or the column number
preceded by a pound sign (#). Column can also be an expression
that includes a reference to the column. The datatype of column
must be numeric.
FOR range The data to be included in the standard deviation. For most
(optional) presentation styles, values for range are:
• ALL – (Default) The standard deviation for all values in column.
• GROUP n – The standard deviation for values in column in the
specified group. Specify the keyword GROUP followed by the
group number: for example, GROUP 1.
• PAGE – The standard deviation for the values in column on a
page.
For Crosstabs, specify CROSSTAB for range to indicate the
standard deviation for all values in column in the crosstab.
For Graph objects specify GRAPH and for OLE objects specify
OBJECT to indicate the standard deviation for values in column in
the range specified for the Rows option.
DISTINCT Causes StDevP to consider only the distinct values in column when
(optional) determining the standard deviation. For a value of column, the first
row found with the value is used and other rows that have the same
value are ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
140 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
String
Description Formats data as a string according to a specified display format mask. You can
convert and format date, DateTime, numeric, and time data. You can also apply
a display format to a string.
Syntax String ( data {, format } )
Argument Description
data The data you want returned as a string with the specified formatting.
Data can have a date, DateTime, numeric, time, or string datatype.
format A string of the display masks you want to use to format the data.
(optional) The masks consist of formatting information specific to the
datatype of data. If data is type string, format is required.
The format string can consist of more than one mask, depending on
the datatype of data. Each mask is separated by a semicolon. See
Usage for details on each datatype.
Return value String. Returns data in the specified format if it succeeds and the empty string
(“”) if the datatype of data does not match the type of display mask specified
or format is not a valid mask.
Usage For date, DateTime, numeric, and time data, the system’s default format is used
for the returned string if you do not specify a format. For numeric data, the
default format is the [General] format.
For string data, a display format mask is required. (Otherwise, the function
would have nothing to do.)
The format can consist of one or more masks:
• Formats for date, DateTime, string, and time data can include one or two
masks. The first mask is the format for the data; the second mask is the
format for a null value.
• Formats for numeric data can have up to four masks. A format with a
single mask handles both positive and negative data. If there are additional
masks, the first mask is for positive values, and the additional masks are
for negative, zero, and null values.
A format can include color specifications.
142 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
If the display format does not match the datatype, the attempt to apply the mask
produces unpredictable results.
For information on specifying display formats, see the Users Guide.
When you use String to format a date and the month is displayed as text (for
example, when the display format includes “mmm”), the month is in the
language of the deployment files available when the application is run. If you
have installed localized files in the development environment or on a user’s
machine, then on that machine the month in the resulting string will be in the
language of the localized files.
For information about localized deployment files, see the chapter on
internationalizing an application in Application Techniques.
Examples This expression returns Jan 31, 2005:
String(2005-01-31, "mmm dd, yyyy")
This expression returns Jan 31, 2005 6 hrs and 8 min:
String(2005-01-31 06:08:00, 'mmm dd, yyyy, h "hrs
and" m "min"')
This expression:
String(nbr, "0000;(000);****;empty")
returns:
0123 if nbr is 123
(123) if nbr is -123
**** if nbr is 0
empty if nbr is null
This expression returns A-B-C:
String("ABC", "@-@-@")
This expression returns A*B:
String("ABC", "@*@")
This expression returns ABC:
String("ABC", "@@@")
This expression returns a space:
String("ABC", " ")
This expression returns 6 hrs and 8 min:
String(06:08:02,'h "hrs and" m "min"')
StripRTF
Description Removes the rich text formatting from the specified column
Syntax StripRTF ( string )
Argument Description
string The column to be stripped of rich text formatting.
Examples This expression is used in a compute field expression to remove the formatting
from a rich text edit column and display plain text in the compute field.
StripRTF(rte_description)
Sum
Description Calculates the sum of the values in the specified column.
Syntax Sum ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the sum of the data values. Column
can be the column name or the column number preceded by a pound
sign (#). Column can also be an expression that includes a reference
to the column. The datatype of column must be numeric.
144 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
FOR range The data to be included in the sum. For most presentation styles,
(optional) values for range are:
• ALL – (Default) The sum of all values in column.
• GROUP n – The sum of values in column in the specified group.
Specify the keyword GROUP followed by the group number: for
example, GROUP 1.
• PAGE – The sum of the values in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The sum of all values in column
in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The sum of values in column in the
range specified for the Rows option of the graph.
• OBJECT – (OLE objects only) The sum of values in column in
the range specified for the Rows option of the OLE object.
DISTINCT Causes Sum to consider only the distinct values in column when
(optional) determining the sum. For a value of column, the first row found
with the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value The appropriate numeric datatype. Returns the sum of the data values in
column.
Usage If you specify range, Sum returns the sum of the values in column within
range. If you specify DISTINCT, Sum returns the sum of the distinct values in
column, or if you specify expresn, the sum of the values of column where the
value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
Null values are ignored and are not included in the calculation.
Tan
Description Calculates the tangent of an angle.
Syntax Tan ( n )
Argument Description
n The angle (in radians) for which you want the tangent
Return value Double. Returns the tangent of n if it succeeds and –1 if an error occurs.
Examples Both these expressions return 0:
Tan(0)
Tan(Pi(1))
This expression returns 1.55741:
Tan(1)
146 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Time
Description Converts a string to a time datatype.
Syntax Time ( string )
Argument Description
string A string containing a valid time (such as 8 AM or 10:25) that you
want returned as a time datatype. Only the hour is required; you do
not have to include the minutes, seconds, or microseconds of the
time or AM or PM. The default value for minutes and seconds is 00
and for microseconds is 000000. AM or PM is determined
automatically.
Return value Time. Returns the time in string as a time datatype. If string does not contain a
valid time, Time returns 00:00:00.
Examples This expression returns the time datatype for 45 seconds before midnight
(23:59:15):
Time("23:59:15")
This expression for a computed field returns the value in the time_received
column as a value of type time if time_received is not the empty string.
Otherwise, it returns 00:00:00:
If(time_received = "" ,00:00:00,
Time(time_received))
This example is similar to the previous one, except that it returns 00:00:00 if
time_received contains a null value:
If(IsNull(time_received), 00:00:00,
Time(time_received))
See also Time in the PowerScript Reference
Today
Description Obtains the system date and time.
Syntax Today ( )
Return value DateTime. Returns the current system date and time.
Usage To display both the date and the time, a computed field must have a display
format that includes the time.
The PowerScript and DataWindow painter versions of the Today function have
different datatypes. The return value of the PowerScript Today function is date.
Examples This expression for a computed field displays the date and time when the
display format for the field is "mm/dd/yy hh:mm":
Today()
See also Now
Today in the PowerScript Reference
Trim
Description Removes leading and trailing spaces from a string.
Syntax Trim ( string )
Argument Description
string The string you want returned with leading and trailing spaces
deleted
Return value String. Returns a copy of string with all leading and trailing spaces deleted if it
succeeds and the empty string (“”) if an error occurs.
Usage Trim is useful for removing spaces that a user might have typed before or after
newly entered data.
Examples This expression returns BABE RUTH:
Trim(" BABE RUTH ")
See also LeftTrim
RightTrim
Trim in the PowerScript Reference
148 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Truncate
Description Truncates a number to the specified number of decimal places.
Syntax Truncate ( x, n )
Argument Description
x The number you want to truncate.
n The number of decimal places to which you want to truncate x.
Valid values are 0 through 28.
Return value The datatype of x. If n is positive, returns x truncated to the specified number
of decimal places. If n is negative, returns x truncated to (- n +1) places before
the decimal point. Returns –1 if it fails.
Examples This expression returns 9.2:
Truncate(9.22, 1)
This expression returns 9.2:
Truncate(9.28, 1)
This expression returns 9:
Truncate(9.9, 0)
This expression returns -9.2:
Truncate(–9.29, 1)
This expression returns 0:
Truncate(9.2, –1)
This expression returns 50:
Truncate(54, –1)
See also Ceiling
Int
Round
Truncate in the PowerScript Reference
Upper
Description Converts all characters in a string to uppercase letters.
Syntax Upper ( string )
Argument Description
string The string you want to convert to uppercase letters
Return value String. Returns string with lowercase letters changed to uppercase if it
succeeds and the empty string (“”) if an error occurs.
Examples This expression returns BABE RUTH:
Upper("Babe Ruth")
See also Lower
Upper in the PowerScript Reference
Var
Description Calculates an estimate of the variance for the specified column. The variance
is the square of the standard deviation.
Syntax Var ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want an estimate for the variance of the
values in the rows. Column can be the column name or the column
number preceded by a pound sign (#). Column can also be an
expression that includes a reference to the column. The datatype of
column must be numeric.
150 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
Argument Description
FOR range The data to be included in the estimate of the variance. For most
(optional) presentation styles, values for range are:
• ALL – (Default) The estimate of the variance for all rows in
column.
• GROUP n – The estimate of the variance for rows in column in
the specified group. Specify the keyword GROUP followed by
the group number: for example, GROUP 1.
• PAGE – The estimate of the variance for the rows in column on
a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The estimate of the variance for
all rows in column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The estimate of the variance for rows
in column in the range specified for the Rows option.
• OBJECT – (OLE objects only) The estimate of the variance for
rows in column in the range specified for the Rows option.
DISTINCT Causes Var to consider only the distinct values in column when
(optional) determining the variance. For a value of column, the first row found
with the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value Double or decimal if the arguments are decimal. Returns an estimate for the
variance for column. If you specify group, Var returns an estimate for the
variance for column within group.
Usage If you specify range, Var returns an estimate for the variance for column within
range. If you specify DISTINCT, Var returns the variance for the distinct
values in column, or if you specify expresn, the estimate for the variance of the
rows in column where the value of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range.
Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
152 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
VarP
Description Calculates the variance for the specified column. The variance is the square of
the standard deviation.
Syntax VarP ( column { FOR range { DISTINCT { expres1 {, expres2 {, ... } } } } } )
Argument Description
column The column for which you want the variance of the values in the
rows. Column can be the column name or the column number
preceded by a pound sign (#). Column can also be an expression
that includes a reference to the column. The datatype of column
must be numeric.
FOR range The data that will be included in the variance. For most presentation
(optional) styles, values for range are:
• ALL – (Default) The variance for all rows in column.
• GROUP n – The variance for rows in column in the specified
group. Specify the keyword GROUP followed by the group
number: for example, GROUP 1.
• PAGE – The variance for the rows in column on a page.
For Crosstabs, specify CROSSTAB for range:
• CROSSTAB – (Crosstabs only) The variance for all rows in
column in the crosstab.
For Graph and OLE objects, specify one of the following:
• GRAPH – (Graphs only) The variance for rows in column in the
range specified for the Rows option.
• OBJECT – (OLE objects only) The variance for rows in column
in the range specified for the Rows option.
DISTINCT Causes VarP to consider only the distinct values in column when
(optional) determining the variance. For a value of column, the first row found
with the value is used and other rows that have the same value are
ignored.
expresn One or more expressions that you want to evaluate to determine
(optional) distinct rows. Expresn can be the name of a column, a function, or
an expression.
Return value Double or decimal if the arguments are decimal. Returns the variance for
column. If you specify group, Var returns the variance for column within range.
Usage If you specify range, VarP returns the variance for column within range. If you
specify DISTINCT, VarP returns the variance for the distinct values in column,
or if you specify expresn, the variance of the rows in column where the value
of expresn is distinct.
For graphs and OLE objects, you do not select the range when you call the
function. The range has already been determined by the Rows setting on the
Data property page (the Range property), and the aggregation function uses
that range. Settings for Rows include the following:
• For the Graph or OLE presentation style, Rows is always All.
• For Graph controls, Rows can be All, Page, or Group.
• For OLE controls, Rows can be All, Current Row, Page, or Group. The
available choices depend on the layer the control occupies.
154 PowerBuilder
CHAPTER 2 DataWindow Expression Functions
WordCap
Description Sets the first letter of each word in a string to a capital letter and all other letters
to lowercase (for example, ROBERT E. LEE would be Robert E. Lee).
Syntax WordCap ( string )
Argument Description
string A string or expression that evaluates to a string that you want to
display with initial capital letters (for example, Monday Morning)
Return value String. Returns string with the first letter of each word set to uppercase and the
remaining letters lowercase if it succeeds, and null if an error occurs.
Examples This expression returns Boston, Massachusetts:
WordCap("boston, MASSACHUSETTS")
This expression concatenates the characters in the emp_fname and emp_lname
columns and makes the first letter of each word uppercase:
WordCap(emp_fname + " " + emp_lname)
Year
Description Gets the year of a date value.
Syntax Year ( date )
Argument Description
date The date value from which you want the year
Return value Integer. Returns an integer whose value is a 4-digit year adapted from the year
portion of date if it succeeds and 1900 if an error occurs.
If the year is two digits, then the century is set as follows. If the year is between
00 to 49, the first two digits are 20; if the year is between 50 and 99, the first
two digits are 19.
Usage Obtains the year portion of date. Years from 1000 to 3000 inclusive are
handled.
If your data includes dates before 1950, such as birth dates, always specify a
4-digit year so that Year (and other functions, such as Sort) interpret the date as
intended.
Regional settings
To make sure you get correct return values for the year, you must verify that
yyyy is the Short Date Style for year in the Regional Settings of the user’s
Control Panel. Your program can check this with the RegistryGet function.
If the setting is not correct, you can ask the user to change it manually or to
have the application change it (by calling the RegistrySet function). The user
might need to reboot after the setting is changed.
156 PowerBuilder
C H A P T E R 3 DataWindow Object Properties
About this chapter This chapter describes the properties that control the appearance and
behavior of a DataWindow object.
Contents
Topic Page
Overview of DataWindow object properties 157
Controls in a DataWindow and their properties 158
Alphabetical list of DataWindow object properties 179
The tables include check mark columns that identify whether you can use that
property with Modify (M) or SyntaxFromSql (S). When (exp) is included in the
description, you can specify a DataWindow expression as the value for that
property. A DataWindow expression lets you specify conditions for
determining the property value.
Alphabetical reference The second half of this chapter is an alphabetical list of properties with
list in the second part descriptions, syntax, and examples. When you find a property you want to use
of this chapter in the first part, look up the property in the alphabetical list to find the specific
syntax you need to use. In the tables that describe the property values, (exp)
again indicates that you can use a DataWindow expression for the value.
Accessing properties in different DataWindow environments The
property reference has syntax for Describe and Modify and for PowerBuilder dot
notation.
Examples and quoted strings The only examples given are PowerBuilder
examples. However, the arguments for Describe and Modify are quoted strings
that are generally valid in all environments. If the strings include nested quotes,
see Nested strings and special characters for DataWindow object properties on
page 454 for information on the appropriate escape character in each
environment.
For more information and examples of setting properties, see:
• Chapter 5, Accessing DataWindow Object Properties in Code
• Describe and Modify methods in Chapter 9, Methods for the DataWindow
Control
• SyntaxFromSql method in the PowerScript Reference
158 PowerBuilder
CHAPTER 3 DataWindow Object Properties
160 PowerBuilder
CHAPTER 3 DataWindow Object Properties
162 PowerBuilder
CHAPTER 3 DataWindow Object Properties
164 PowerBuilder
CHAPTER 3 DataWindow Object Properties
166 PowerBuilder
CHAPTER 3 DataWindow Object Properties
168 PowerBuilder
CHAPTER 3 DataWindow Object Properties
170 PowerBuilder
CHAPTER 3 DataWindow Object Properties
172 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Property M Description
Height x (exp) The height of the control.
HideSnaked x Whether the control appears once per page when printing
newspaper columns.
Moveable x Whether the user can move the control.
Name The name of the control.
Pen.property x (exp) Appearance settings of the control.
Pointer x (exp) The pointer image when it is over the control.
Resizeable x Whether the user can resize the control.
SlideLeft x (exp) Whether the control moves left to fill empty space.
SlideUp x (exp) How the control moves up to fill empty space.
Tag x (exp) The tag text for the control.
Type The control’s type, which is ellipse, rectangle, or roundrectangle.
Visible x (exp) Whether the control is visible.
X x (exp) The x coordinate of the control.
Y x (exp) The y coordinate of the control.
174 PowerBuilder
CHAPTER 3 DataWindow Object Properties
176 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Title keyword
You use this property when generating DataWindow source code with the
SyntaxFromSql method.
Property Description
Title(“string”) The title for the DataWindow.
178 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Accelerator
Description The accelerator key that a user can press to select a column in the DataWindow
object.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Accelerator
Describe and Modify argument:
"columnname.Accelerator { = 'acceleratorkey ' }"
Parameter Description
columnname The name of the column for which you want to get or set the
accelerator key.
acceleratorkey (exp) A string expression whose value is the letter that will be
the accelerator key for columnname. Acceleratorkey can be a
quoted DataWindow expression.
Usage An accelerator key for a column allows users to select a column (change focus)
with a keystroke rather than with the mouse. The user changes focus by
pressing the accelerator key in combination with the Alt key.
In the painter Select the control and set the value in the Properties view, Edit
tab.
Displaying the accelerator The column does not display the key. To let
users know what key to use, you can include an underlined letter in a text
control that labels the column. When you enter the text control’s label, precede
the character you want underlined with an ampersand (&).
Accelerator keys and edit styles To use an accelerator key with the
CheckBox or RadioButton edit style, select the Edit edit style and specify the
accelerator there.
AccessibleDescription
Description A description of the control and/or its purpose for use by accessibility tools
such as readers for visually-impaired users.
Applies to Column, computed field, picture, text, graph, group box, and button controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.AccessibleDescription
Describe and Modify argument:
"controlname.AccessibleDescription { = 'description ' }"
Parameter Description
columnname The name of the control for which you want to get or set the
accessible description
description (exp) A string that describes the control’s purpose or appearance
AccessibleName
Description A label that briefly describes the control for use by accessibility tools such as
readers for visually-impaired users.
Applies to Column, computed field, picture, text, graph, group box, and button controls
Syntax PowerBuilder dot notation:
180 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw_control.Object.controlname.AccessibleName
Describe and Modify argument:
"controlname.AccessibleName { = 'description ' }"
Parameter Description
columnname The name of the control for which you want to get or set the
accessible description
description (exp) A string that briefly describes the control
Usage The AccessibleName property is a brief description, such as the text in a button
or the name of a menu item.
In the painter In the Other tab in the Properties view, type a name in the
AccessibleName text box.
Examples dw1.Object.b_1.AccessibleName = 'Next'
ls_data = dw1.Describe("b_1.AccessibleName")
dw1.Modify("b_1.AccessibleName='Next'")
AccessibleRole
Description A description of the kind of user-interface element that the control is, for use
by accessibility tools such as readers for visually-impaired users.
Applies to Column, computed field, picture, text, graph, group box, and button controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.AccessibleRole
Describe and Modify argument:
"controlname.AccessibleRole { = 'enumeratedvalue ' }"
Parameter Description
columnname The name of the control for which you want to get or set the
accessible description
description (exp) A number specifying the type of AccessibleRole as a
numeric value of the AccessibleRole DataWindow constant.
In the painter In the Other tab in the Properties view, select a value in the
AccessibleRole drop-down list.
Examples ls_data = dw1.Object.b_1.AccessibleRole
ls_data = dw1.Describe("b_1.AccessibleRole")
Action
Description The action a user can assign to a button control.
Applies to Button controls
Syntax PowerBuilder dot notation:
dw_control.Object.buttonname.Action
Describe and Modify argument:
"buttonname.Action { = ' value ' }"
Parameter Description
buttonname The name of the button for which you want to assign an action.
value The action value assigned to the button. Values are listed in the
following table.
Value returned to
Value Action Description ButtonClicked event
0 UserDefined (Default) Allows for programming of the Return code from the user’s
ButtonClicked and ButtonClicking events with coded event script.
no intervening action occurring.
182 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Value returned to
Value Action Description ButtonClicked event
1 Retrieve (Yield) Retrieves rows from the database. Before Number of rows retrieved.
retrieval actually occurs, option to yield is turned
on. This allows the Cancel action to take effect
during a long retrieve.
2 Retrieve Retrieves rows from the database. The option to Number of rows retrieved.
yield is not automatically turned on.
3 Cancel Cancels a retrieval that has been started with the 0
option to yield.
4 PageNext Scrolls to the next page. The row displayed at the top of
the DataWindow control when
the scrolling is complete or
attempts to go past the first row.
-1 if an error occurs.
5 PagePrior Scrolls to the prior page. The row displayed at the top of
the DataWindow control when
the scrolling is complete or
attempts to go past the first row.
-1 if an error occurs.
6 PageFirst Scrolls to the first page. 1 if successful.
-1 if an error occurs.
7 PageLast Scrolls to the last page. The row displayed at the top of
the DataWindow control when
the scrolling is complete or
attempts to go past the first row.
-1 if an error occurs.
8 Sort Displays Sort dialog box and sorts as specified. 1 if successful.
-1 if an error occurs.
9 Filter Displays Filter dialog box and filters as specified. Number of rows filtered.
Number < 0 if an error occurs.
10 DeleteRow If button is in detail band, deletes row associated 1 if successful.
with button; otherwise, deletes the current row. -1 if an error occurs.
11 AppendRow Inserts row at the end. Row number of newly inserted
row.
12 InsertRow If button is in detail band, inserts row using row Row number of newly inserted
number associated with the button; otherwise, row.
inserts row using the current row.
13 Update Saves changes to the database. If the update is 1 if successful.
successful, a COMMIT is issued. If the update -1 if an error occurs.
fails, a ROLLBACK is issued
Value returned to
Value Action Description ButtonClicked event
14 SaveRowsAs Displays Save As dialog box and saves rows in Number of rows filtered.
the format specified.
15 Print Prints one copy of the DataWindow object. 0
16 Preview Toggles between preview and print preview. 0
17 PreviewWithRu Toggles between rulers on and off. 0
lers
18 QueryMode Toggles between query mode on and off. 0
19 QuerySort Specifies sorting criteria (forces query mode on). 0
20 QueryClear Removes the WHERE clause from a query (if 0
one was defined).
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Examples dw1.Object.b_retrieve.Action = "2"
setting = dw1.Describe("b_retrieve.Action")
dw1.Modify("b_retrieve.Action = '2'")
Activation
Description The way the server for the OLE object in the OLE Object control is activated.
Choices include letting the user activate the object by double-clicking or
putting activation under program control.
Applies to OLE Object controls
Syntax PowerBuilder dot notation:
dw_control.Object.olecontrolname.Activation
Describe and Modify argument:
"olecontrolname.Activation { = ' activationtype ' }"
Parameter Description
olecontrolname The name of the OLE Object control for which you want to get or
set the activation method.
184 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
activationtype (exp) A number specifying the method of activation for the OLE
object. Activationtype can be a quoted DataWindow expression.
Values are:
0 – The object has to be activated with the Activate method.
1 – The user can activate the object by double-clicking on it.
2 – The object activates when the container gets focus.
Usage In the painter Select the control and set the value in the Properties view,
Options tab.
Examples dw1.Object.ole_report.Activation
ls_data = dw1.Describe("ole_report.Activation")
dw1.Modify("ole_report.Activation='2'")
Alignment
Description The alignment of the control’s text within its borders.
Applies to Column, Computed Field, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Alignment
Describe and Modify argument:
"controlname.Alignment { = ' alignmentvalue ' }"
SyntaxFromSql:
Text ( ... Alignment = alignmentvalue ... )
Parameter Description
controlname The name of the control for which you want to get or set the
alignment.
Parameter Description
alignmentvalue (exp) A number specifying the type of alignment for the text of
controlname. Alignmentvalue can be a quoted DataWindow
expression.
Values are:
0 – (Default) Left
1 – Right
2 – Center
3 – Justified
When generating DataWindow syntax with SyntaxFromSql,
the setting for Alignment applies to all text controls used as
column labels.
Usage When you select justified, the last line of text is not stretched to fill the line.
Controls with only one line of text look left aligned.
In the painter Select the control and set the value using:
• Properties view, General tab
• StyleBar
Examples dw1.Object.emp_name_t.Alignment = 2
ls_data = dw1.Describe("emp_name.Alignment")
dw1.Modify("emp_name_t.Alignment='2'")
Arguments
Description The retrieval arguments required by the data source. You specify retrieval
arguments in the DataWindow’s SELECT statement and you provide values for
the retrieval arguments when you call the Retrieve method.
Applies to Database table for the DataWindow object
Not settable in PowerScript. Used in DataWindow syntax.
Syntax Table(Arguments = ( (name1, type), (name2, type) ... ) ... )
Parameter Description
name The name of the retrieval argument
186 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
type The type of the argument:
• Date or a Date list
• DateTime or a DateTime list
• Number or a Number list
• String or a String list
• Time or a Time list
Usage In the painter Set the value in the SQL Select painter or Query painter.
Open the SQL Select painter by selecting Design>Data Source from the menu
bar in the DataWindow painter, or create or open a query in the Query painter.
Then select Design>Retrieval Arguments.
Attributes
Description A tab-separated list of all the properties that apply to a control.
Applies to DataWindow, Button, Column, Computed Field, Graph, GroupBox, Line,
OLE, Oval, Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text
controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Attributes
Describe argument:
"controlname.Attributes"
Examples ls_data = dw1.Object.emp_name_t.Attributes
ls_data = dw1.Describe("DataWindow.Attributes")
ls_data = dw1.Describe("emp_name_t.Attributes")
Axis
Description The list of items or the expression associated with an axis of a graph. Each item
is separated by a comma. You can ask for the list of categories on the Category
axis, the series on the Series axis, or the values on the Values axis.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.axis
Usage In the painter Select the graph control and set the value by selecting a
column or expression for each axis in the Properties view, Data tab.
Examples ls_data = dw1.Object.gr_1.Values
dw1.Object.gr_1.Series = "Actual, Budget"
ls_data = dw1.Describe("gr1.Category")
ls_data = dw1.Describe("gr1.Series")
ls_data = dw1.Describe("gr1.Values")
dw1.Modify("gr1.Series='Actual, Budget'")
Axis.property
Description Settings that control the appearance of an axis on a graph.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.axis.property
Describe and Modify argument:
"graphname.axis.property { = value }"
Parameter Description
graphname The name of the graph within the DataWindow object for which
you want to get or set a property value for an axis.
188 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
axis An axis name.
Values are:
• Category
• Series
• Values
property A property for the axis. Properties and their settings are listed in
the table that follows.
value The value to be assigned to the property. For axis properties,
value can be a quoted DataWindow expression.
190 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the graph control or the Graph DataWindow object and
set the value in the Properties view. To set most axis properties, select the Axis
tab and an axis in the Axis drop-down list. Font properties are set on the Text
tab.
Examples string ls_data
ls_data = dw1.Object.gr_1.Category.AutoScale
dw1.Object.Category.LabelDispAttr.Alignment = 2
ls_data = dw1.Describe("gr_1.Category.AutoScale")
dw1.Modify("gr_1.Series.AutoScale=0")
dw1.Modify("gr_1.Values.Label='Cities'")
dw1.Modify("gr_1.Category.LabelDispAttr.Alignment=2")
192 PowerBuilder
CHAPTER 3 DataWindow Object Properties
BackColor
Description The background color of a graph in a DataWindow.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.BackColor
Describe and Modify argument:
"graphname.BackColor { = long }"
Parameter Description
graphname The graph whose background color you want to get or set.
long (exp) A long expression specifying the color (red, green, and
blue values) to be used as the graph’s background color. Long
can be a quoted DataWindow expression.
Usage In the painter Select the graph control and set the value in the Properties
view, General tab.
Examples dw1.Object.graph_1.BackColor = 250
setting = dw1.Describe("graph_1.BackColor")
dw1.Modify("graph_1.BackColor=250")
Background.property
Description Settings for the color and transparency of a control.
Applies to Button, Column, Computed Field, GroupBox, Line, Oval, Rectangle,
RoundRectangle, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Background.property
Describe and Modify argument:
"controlname.Background.property { = ' value ' }"
SyntaxFromSql:
Column ( Background.property = value )
Text ( Background.property = value )
Parameter Description
controlname The control whose Background properties you want to get or set.
When generating DataWindow syntax with SyntaxFromSql, the
Background settings apply to all columns or all text controls.
Parameter Description
property A property that applies to the background of a control, as listed in
the Property table below.
value Values for the properties are shown below. Value can be a quoted
DataWindow expression.
Property for
Background Value
Brushmode (exp) An integer indicating the type of “brush” to use for the gradient.
Values are:
Painter: Background tab, Gradient group (not available in RichText, Graph, or OLE
DataWindow objects).
Color (exp) A long expression specifying the color (the red, green, and blue values) to be
used as the control’s background color.
Painter: Background tab
Mode (exp) A number expression specifying the mode of the background of controlname.
Values are:
0 – Make the control’s background opaque
1 – make the control’s background transparent
Transparency (exp) An integer in the range 0 to 100, where 0 means that the column or control’s
primary background is opaque and 100 that it is completely transparent.
Painter: Background tab.
Gradient.Angle (exp) An integer indicating the angle in degrees (values are 0 to 360) used to offset
the color and transparency gradient. This property is used only when the column’s or
control’s background.gradient.mode takes values of 3 or 4.
Painter: Background tab, Gradient group.
Gradient.Color (exp) A long specifying the color (the red, green, and blue values) to be used as the
column or control’s secondary background color. The gradient defines transitions
between the primary and secondary background colors.
Painter: Background tab, Gradient group.
Gradient.Focus (exp) An integer in the range 0 to 100, specifying the distance (as a percentage) from
the center where the background color is at its maximum. (For example, if the radial
gradient is used and the value is set to 0, the color will be at the center of the
background; if the value is set to 100, the color will be at the edges of the
background.)
Painter: Background tab, Gradient group
194 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Property for
Background Value
Gradient.Repetition.Mode (exp) Specifies the mode for determining the number of gradient transitions for the
column’s or control’s background color and transparency.
Permitted values and their meanings are:
• 0 Gradient.repetition.count determines the number of gradient transitions
• 1 Gradient.repetition.length determines the number of gradient transitions
Painter: Background tab, Gradient group.
Gradient.Repetition.Count (exp) An integer specifying the number of gradient transitions for background color
and transparency. A value of 0 indicates 1 transition. A value of 3 indicates 4
transitions. This property is used only when the gradient.repetition.mode property for
the column or control takes the value of 0 (by count).
Painter: Background tab, Gradient group.
Gradient.Repetition.Length (exp) A long specifying the number of gradient transitions. This property is used only
when the gradient.repetition.mode property for the column or control takes the value
of 1 (by length). The units for the length that you assign for gradient transitions are
set by the DataWindow object’s Units property.
Painter: Background tab, Gradient group.
Gradient.Scale (exp) An integer in the range 0 to 100 specifying the rate of transition to the gradient
color (as a percentage).
Painter: Background tab, Gradient group
Gradient.Spread (exp) An integer in the range 0 to 100 indicating the contribution of the second color
to the blend (as a percentage).
Painter: Background tab, Gradient group
Gradient.Transparency (exp) An integer in the range 0 to 100, where 0 means that the column or control’s
secondary (gradient) background is opaque and 100 that it is completely transparent.
The gradient defines transitions between the primary and secondary transparency
settings.
Painter: Background tab, Gradient group.
Usage In the painter Select the control and set the value in the Properties view, Font
tab for controls that have text and in the General tab for drawing controls
(choose Transparent or a color).
When you choose a Brush Hatch fill pattern other than Solid for an Oval,
Rectangle, or RoundRectangle control, the Background Color and the Brush
Color are used for the pattern colors.
Background color of a button The Background.Color property is not
supported on Windows XP by default because the current XP theme controls
the appearance of the button. Set the ShowBackColorOnXP property of the
DataWindow object to force the color change to take effect.
Background color of a line The background color of a line is the color that
displays between the segments of the line when the pen style is not solid.
Transparent background If Background.Mode is transparent (1),
Background.Color is ignored.
Background gradient properties Background gradient and transparency
properties do not apply to DataWindow objects with the RichText, Graph, or
OLE presentation style, and do not apply to the Line control.
DropDownDataWindows and GetChild When you set Background.Color
and Background.Mode for a column with a DropDownDataWindow,
references to the DropDownDataWindow become invalid. Call GetChild again
after changing these properties to obtain a valid reference.
Examples dw1.Object.oval_1.Background.Color = RGB(255, 0, 128)
ls_data = dw1.Describe("oval_1.Background.Color")
dw1.Modify("emp_name.Background.Color='11665407'")
ls_data = dw1.Describe("emp_name.Background.Mode")
dw1.Modify("emp_name.Background.Mode='1'")
dw1.Modify("rndrect_1.Background.Mode='0'")
SQLCA.SyntaxFromSQL(sql_syntax, &
"Style(...) Column(Background.Mode=1 ...) ...", &
ls_Errors)
SQLCA.SyntaxFromSQL(sql_syntax, &
"Style(...) Column(Background.Color=11665407 ...)", &
ls_Errors)
BackImage
Description The column that contains the background image for an InkPicture control in a
DataWindow.
Applies to InkPicture controls
Syntax PowerBuilder dot notation:
dw_control.Object.inkpicname.BackImage
Describe and Modify argument:
"inkpicname.BackImage{ = colname }"
Parameter Description
inkpicname The graph whose background color you want to get or set.
colname A string value specifying the name of the long binary column
that contains the background image for the control.
196 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the InkPicture control and set the value in the Properties
view, Definition tab, Col for Image property. The image format can be JPEG,
GIF, BMP, or ICO. If you change the image, call the Retrieve method to force
the DataWindow to retrieve the new image.
Examples sval = dw1.Object.inkpic_1.backimage
dw1.Object.inkpic_1.backimage = 'InkImg'
Band
Description The band or layer in the DataWindow object that contains the control. The
returned text is one of the following, where # is the level number of a group:
detail, footer, header, header.#, summary, trailer.#, tree.level.#, foreground,
background.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, OLE, Oval,
Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Band
Describe and Modify argument:
"controlname.Band"
Parameter Description
controlname The name of the control within the DataWindow for which you
want the band it occupies
Usage In the painter Select the control and set the value in the Properties view,
Position tab, Layer option. When the control’s layer is Band, you can drag the
control into another band.
Examples ls_data = dw1.Object.emp_title.Band
ls_data = dw1.Describe("emp_title.Band")
Bandname.property
Description Settings for the color, size, and pointer of a band in the DataWindow object.
The gradient settings do not work in reports.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.bandname.property
Describe and Modify argument:
"DataWindow.bandname{.#}.property { = value }"
Parameter Description
bandname The identifier of a band in the DataWindow object.
Values are:
• Detail
• Footer
• Summary
• Header
• Trailer
• Tree.Level
198 PowerBuilder
CHAPTER 3 DataWindow Object Properties
200 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the band by clicking the gray divider for the band. Set
the value in the Properties view.
Examples string ls_data
ls_data = dw1.Object.DataWindow.Detail.Height
dw1.Object.DataWindow.Detail.Pointer = "hand.cur"
ls_data = dw1.Describe("DataWindow.Detail.Height")
ls_data = &
dw1.Describe("DataWindow.Detail.Height.AutoSize")
dw1.Modify("DataWindow.Detail.Pointer='hand.cur'")
dw1.Modify("DataWindow.Detail.Pointer='~"Cross!~" ~t
if(emp_status=~"a~", ~"HourGlass!~", ~"Cross!~")'")
dw1.Modify("DataWindow.Footer.Height=250")
ll_color = RGB(200, 200, 500)
dw1.Modify("DataWindow.Header.2.Color=" &
+ String(ll_color))
dw1.Modify("DataWindow.Trailer.2.Height=500")
dw1.Modify( &
"DataWindow.Summary.Pointer='c:\pb\total.cur'")
Bandname.Text
Description (RichText presentation style only) The rich text content of the specified band
as an ASCII string.
Applies to DataWindows in the RichText presentation style
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.bandname.Text
Describe and Modify argument:
"DataWindow.bandname.Text { = rtfstring }"
Parameter Description
bandname The identifier of a band in the DataWindow object that has the
RichText presentation style. Values are:
• Detail
• Header
• Footer
rtfstring A string whose value is the rich text content of the band. The
string includes the rich text formatting codes, text, and input
fields.
Text assigned to the header or footer band is ignored if
RichText.HeaderFooter is set to no.
When you assign text using the Modify method or dot notation,
nested quotes must be represented with tildes and quotes. If
your data is a pure RTF string, use the PasteRTF method.
Usage In the painter Set the value by editing the content of each band in the painter
workspace.
Examples ls_footertext = dw1.Object.DataWindow.Footer.Text
ls_data = dw1.Describe("DataWindow.Detail.Text")
Bands
Description A list of the bands in the DataWindow object. The list can include one or more
of the following band identifiers, where # is the level number of a group:
Detail, Footer, Header, Header.#, Summary, Trailer.#, Tree.Level.#. The items
in the list are separated by tabs.
Applies to DataWindows
Syntax PowerBuilder dot notation:
202 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw_control.Object.DataWindow.Bands
Describe argument:
"DataWindow.Bands"
Examples ls_data = dw1.Object.DataWindow.Bands
ls_data = dw1.Describe("DataWindow.Bands")
BinaryIndex
Description An internal index that PowerBuilder uses to manage the OLE Object control in
the library. There is no reason to get this value; the value has no external
significance.
Applies to OLE Object controls
Syntax "olecontrolname.BinaryIndex"
BitmapName
Description Whether PowerBuilder interprets the column’s value as the name of a picture
file and displays the picture instead of the text. BitmapName’s value is either
Yes or No.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.BitmapName
Describe argument:
"columnname.BitmapName"
Usage In the painter Select the control and set the value in the Properties view,
General tab, Display As Pic option.
Examples ls_data = dw1.Object.emp_name.BitmapName
ls_data = dw1.Describe("emp_name.BitmapName")
Border
Description The type of border for the control.
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Changing the Border setting between Resize and another border affects the
Resizeable option on the Position tab. To make another border resizable,
choose the border then reset Resizeable.
On Windows XP, to display the border of a text column with the XP style (by
default, a blue box), set the Border property to Lowered and the
BackgroundColor of the font to Window Background.
204 PowerBuilder
CHAPTER 3 DataWindow Object Properties
For examples of other ways to set properties, using Border as an example, see
What you can do with DataWindow object properties on page 447.
Examples string ls_data
ls_data = dw1.Object.emp_name_t.Border
dw1.Object.emp_name_t.Border='6'
ls_data = dw1.Describe("emp_name_t.Border")
dw1.Modify("emp_name_t.Border='6'")
SQLCA.SyntaxFromSQL(sql_syntax, &
"Style(...) Column(Border=5 ...) ...",
ls_Errors)
Brush.property
Description Settings for the fill pattern and color of a graphic control.
Applies to Oval, Rectangle, and RoundRectangle controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Brush.property
Describe and Modify argument:
"controlname.Brush.property { = ' value ' }"
Parameter Description
controlname The name of the Line, Oval, Rectangle, RoundRectangle, or
Text control whose Brush property you want to get or set.
property A property that applies to the Brush characteristics of a control,
as listed in the table below.
value Values for the properties are shown in the next table. Value can
be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab.
When you choose a Brush Hatch fill pattern other than Solid or Transparent,
the Background Color and the Brush Color are used for the pattern colors.
Examples string ls_data
ls_data = dw1.Object.oval_1.Brush.Hatch
dw1.Object.oval_1.Brush.Hatch = 5
ls_data = dw1.Describe("oval_1.Brush.Hatch")
dw1.Modify("oval_1.Brush.Hatch='5'")
dw1.Modify("oval_1.Brush.Color='16731766'")
Brushmode
Description Setting that controls the type of “brush” used for the background or primary
gradient.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.brushmode
Describe and Modify argument:
“DataWindow (brushmode = { integer } )”
206 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
integer The value to be assigned to the property:
0 – Solid
1 – HorizontalGradient
2 – VerticalGradient
3 – AngleGradient
4 – ScaledAngleGradient
5 – RadialGradient
6 – Picture
Usage In the painter Set the brushmode value on the Background tab of the
Properties view.
If you save to an EMF or WMF, the properties on the Background tab are not
saved with the DataWindow.
The following table explains the possible values for Brushmode:
Value Description
0 - Solid The background is a solid color as selected
1 - HorizontalGradient The color changes horizontally from the primary color
(and transparency) to the secondary color (and
transparency). The primary values are defined by the
datawindow.color and datawindow.transparency, and
the secondary values are defined by
datawindow.gradient.color and
datawindow.gradient.transparency. The gradient can be
repeated using the
datawindow.gradient.repetition.mode property.
2 - VerticalGradient The color changes vertically from the background color
(and transparency) to the secondary color (and
transparency). The primary values are defined by the
datawindow.color and datawindow.transparency, and
the secondary values are defined by
datawindow.gradient.color and
datawindow.gradient.transparency. The gradient can be
repeated using the
datawindow.gradient.repetition.mode property.
Value Description
3 - AngleGradient The color changes at a specific angle off the horizontal
from the background color (and transparency) to the
secondary color (and transparency). The angle is
specified in datawindow.gradient.angle. The primary
values are defined by the datawindow.color and
datawindow.transparency, and the secondary values are
defined by datawindow.gradient.color and
datawindow.gradient.transparency. The gradient can be
repeated using the
datawindow.gradient.repetition.mode property.
4 - ScaledAngleGradient The color changes at an angle, which adjusts according
to the changes in the aspect ratio of the DataWindow
control. The starting angle is specified in
datawindow.gradient.angle. The primary values are
defined by the datawindow.color and
datawindow.transparency, and the secondary values are
defined by datawindow.gradient.color and
datawindow.gradient.transparency. The gradient can be
repeated using the
datawindow.gradient.repetition.mode property.
5 - RadialGradient The background color (and transparency) starts at the
center and slow changes to the gradient color (and
transparency) at the boundaries of the DataWindow. The
primary values are defined by the datawindow.color and
datawindow.transparency, and the secondary values are
defined by datawindow.gradient.color and
datawindow.gradient.transparency.
6 - Picture A picture is used as the background. The image is
specified in datawindow.picture.file.
Category
See Axis, Axis.property, and DispAttr.fontproperty.
208 PowerBuilder
CHAPTER 3 DataWindow Object Properties
CheckBox.property
Description Settings for a column whose edit style is CheckBox.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.CheckBox.property
Describe and Modify argument:
"columnname.CheckBox.property { = value }"
Parameter Description
columnname The column whose edit style is CheckBox for which you want
to get or set property values.
property A property for the CheckBox edit style, as listed in the table
below.
value Values for the properties are shown in the table below. For
CheckBox properties, value cannot be a DataWindow
expression.
Usage In the painter Select the control and set values in the Properties view, Edit
tab, when Style Type option is CheckBox.
Examples dw1.Modify("emp_gender.CheckBox.3D=no")
IF dw1.Describe("emp_status.CheckBox.LeftText") &
= "yes" THEN
dw1.Modify("emp_status2.CheckBox.LeftText=yes")
END IF
dw1.Modify("emp_status.CheckBox.Off='Terminated'")
dw1.Modify("emp_status.CheckBox.On='Active'")
dw1.Modify("emp_status.CheckBox.Other='Unknown'")
dw1.Object.emp_gender.CheckBox.ThreeD = "no"
IF dw1.Object.emp_status.CheckBox.LeftText = "yes" THEN
dw1.Object.emp_status2.CheckBox.LeftText = "yes"
END IF
ClientName
Description The name of the OLE client. The default is “Untitled.” ClientName is used by
some applications in the server window’s title.
210 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value in the Properties view,
Options tab.
Examples cname = dw1.Object.emppict_blob.ClientName
dw1.Object.emppict_blob.ClientName = &
"~t'Data for ' String(emp_id)"
cname = dw1.Describe("emppict_blob.ClientName")
dw1.Modify("emppict_blob.ClientName='" + &
"~t~"Data for ~" + String(emp_id)'")
Color
Description The text color of the column or the background color of the DataWindow.
The color affected by the Color property depends on the control:
• For the DataWindow, Color specifies the background color
• For columns, computed fields, and text, Color specifies the text color
• For graphs, Color specifies the line color used for axes, borders around
data markers, tick marks, and the outline of the box for 3D graphs
Applies to DataWindow, Button, Column, Graph, and GroupBox controls
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Color
dw_control.Object.controlname.Color
Describe and Modify argument:
"DataWindow.Color { = long }"
"controlname.Color { = long }"
SyntaxFromSql:
DataWindow ( Color = long )
Column ( Color = long )
Parameter Description
controlname The column whose text color you want to set or the graph whose
line color you want to set.
long (exp for columns only) A long value specifying the color of the
column text or the DataWindow background. When you are
specifying the text color of a column, you can specify a
DataWindow expression in quotes. You cannot specify an
expression for the DataWindow background color.
When generating DataWindow syntax with SyntaxFromSql, the
Color setting for Column applies to all columns.
Usage In the painter For the DataWindow background, click the DataWindow to
deselect all controls and set the value in the Properties view, Background tab,
Color option. If you save to an EMF or WMF, the properties on the Background
tab are not saved with the DataWindow.
For a column’s text color, select the column and set the value in the Properties
view, Font tab, Text Color option.
For a graph’s line color, select the graph and set the value in the Properties
view, General tab, Text Color option.
Examples string column_text_color
column_text_color = dw1.Object.emp_name.Color
dw1.Object.salary.Color = &
"0~tIf(salary>90000,255,65280)"
dw_back_color = dw1.Describe("DataWindow.Color")
column_text_color = dw1.Describe("emp_name.Color")
dw1.Modify( &
"salary.Color='0~tIf(salary>90000,255,65280)'")
See also BackColor
Background.property
212 PowerBuilder
CHAPTER 3 DataWindow Object Properties
ColType
Description The datatype of the column or computed field.
Applies to Column and Computed Field controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.ColType
Describe argument:
"controlname.ColType"
Parameter Description
controlname The column for which you want the datatype. Possible
datatypes are:
• Char (n) – n is the number of characters
• Date
• DateTime
• Decimal (n) – n is the number of decimal places
• Int
• Long
• Number
• Real
• Time
• Timestamp
• ULong
Usage In the painter The value of ColType is derived from the data or expression
you specify for the control. The value is displayed in the Column
Specifications view.
Column.Count
Description The number of columns in the DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Column.Count
Describe argument:
"DataWindow.Column.Count"
Usage In the painter The value is determined by the number of columns you select
in the SQL Select painter, whether or not they are displayed.
Column limit
There is a limit of 1000 on the number of columns in a DataWindow object.
ContentsAllowed
Description The way the OLE Object control holds the OLE object. You can restrict the
container to only embedded or only linked objects, or you can allow either
type.
Applies to OLE Object controls
Syntax PowerBuilder dot notation:
dw_control.Object.olecontrolname.ContentsAllowed
Describe and Modify argument:
"olecontrolname.ContentsAllowed { = ' contentstype ' }"
214 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
olecontrolname The name of the OLE Object control for which you want to get or
set the type of contents.
contentstype A number specifying whether the OLE object in the control has to
be embedded, has to be linked, or can be either embedded or
linked.
Values are:
0 – Embedded
1 – Linked
2 – Any
Usage In the painter Select the control and set the value in the Properties view,
Options tab, Contents option.
Examples string ls_data
ls_data = dw1.Object.ole_report.ContentsAllowed
dw1.Object.ole_report.ContentsAllowed = 2
ls_data = dw1.Describe("ole_report.ContentsAllowed")
dw1.Modify("ole_report.ContentsAllowed='2'")
Criteria
Description The search condition of the WHERE clause for a related report. The Criteria
property defines the connection between the related report and the
DataWindow.
Applies to Report controls
Syntax PowerBuilder dot notation:
dw_control.Object.reportname.Criteria
Describe and Modify argument:
"reportname.Criteria { = string }"
Parameter Description
reportname The name of the report control for which you want to get or set
Criteria.
string An expression that will be the search condition of the WHERE
clause for the related report.
dw1.Object.rpt_1.Criteria = "emp_id=:emp_id"
ls_colcount = dw1.Describe("rpt_1.Criteria")
dw1.Modify("rpt_1.Criteria='emp_id=:emp_id'")
See also Nest_Arguments DataWindow object property
Criteria.property
Description Settings for the Prompt for Criteria dialog box. When Prompt for Criteria is
enabled, PowerBuilder prompts the user to specify criteria for retrieving data
whenever the Retrieve method is called. Note that the Required property also
affects query mode.
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Criteria.property
Describe and Modify argument:
"columnname.Criteria.property { = value }"
Parameter Description
columnname The name of the column for which you want to get or set Prompt
for Criteria properties.
property A property for the Prompt for Criteria dialog box. Properties and
their settings are listed in the table below.
value A Yes or No value to be assigned to the property. For Criteria
properties, value cannot be a DataWindow expression.
216 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Set the values using the menus and Properties view as
described in the table above.
Examples string setting
setting = dw1.Object.empname.Criteria.Dialog
dw1.Object.empname.Criteria.Dialog= "Yes"
setting = dw1.Describe("empname.Criteria.Dialog")
dw1.Modify("empname.Criteria.Dialog=Yes")
dw1.Modify("empname.Criteria.Override_Edit=Yes")
dw1.Modify("empname.Criteria.Required=No")
IF dw1.Describe("empname.Edit.Style") = "dddw" THEN
dw1.Modify("empname.Criteria.Override_Edit=Yes")
END IF
Crosstab.property
Description Settings for a DataWindow object whose presentation style is Crosstab.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Crosstab.property
Describe and Modify argument:
Usage In the painter For DataWindow objects with the Crosstab presentation style,
set the values in the Crosstab Definition dialog box. To display the dialog box,
right-click in the Design view to display the pop-up menu and select Crosstab.
Examples setting = dw1.Object.DataWindow.Crosstab.Columns
dw1.Object.DataWindow.Crosstab.Columns = "dept_id"
setting = dw1.Describe("DataWindow.Crosstab.Columns")
dw1.Modify("DataWindow.Crosstab.Columns='dept_id'")
218 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw1.Modify("DataWindow.Crosstab.Rows='salary'")
dw1.Modify("DataWindow.Crosstab.SourceNames=" &
+ "'Order Number, Item Number, Price'")
dw1.Modify("DataWindow.Crosstab.Values='empname'")
dw1.Modify("DataWindow.Crosstab.StaticMode='yes'")
See also CrosstabDialog function in the PowerScript Reference
Table.property
CSSGen.property
Description Settings that specify the physical path to which a generated CSS style sheet is
published and the URL where the style sheet is located.
Obsolete property
CSSGen.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Usage The PublishPath folder must correspond to the URL specified in the
ResourceBase property. At runtime, after PowerBuilder generates the CSS
style sheet to the PublishPath folder, it includes it in the final XHTML page by
referencing it with the ResourceBase property in a <link> element.
Typically you share style (CSS), layout (XSLT), and control definitions (JS) for
use by all clients; however, if you use dynamic DataWindow objects
customized for specific clients, you can force generation of the DataWindow
presentation-related document names to be specific to each client. You do this
by setting the CSSGen.SessionSpecific property to “yes”. This eliminates the
possibility of server-side contention for presentation formats when the
DataWindow generation is specific to the client.
In the painter In the Web Generation tab in the Properties view for the
DataWindow object, select CSS from the Format to Configure list, specify the
Resource Base and Publish Path locations, and check the Session-specific CSS,
XSLT and JS file names check box if you want to force generation of
client-specific names.
Examples These statements set the CSSGen.ResourceBase and CSSGen.PublishPath
properties:
dw1.Object.DataWindow.CSSGen.ResourceBase= &
'http://www.myserver.com/xmlsource'
dw1.Object.DataWindow.CSSGen.PublishPath= &
'C:\work\outputfiles\xmlsource'
This statement sets the CSSGen.SessionSpecific property for a JSP page:
dwGen.Modify
("DataWindow.CSSGen.SessionSpecific='Yes'");
Data
Description A tab-separated list describing the data in the DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data
Describe argument:
"DataWindow.Data"
Examples string setting
setting = dw1.Object.DataWindow.Data
220 PowerBuilder
CHAPTER 3 DataWindow Object Properties
setting = dw1.Describe("DataWindow.Data")
Data.HTML
Description A string containing HTML and JavaScript that represents data and presentation
of the DataWindow object.
The data is presented in a read-only HTML table or data-entry form, depending
on settings of other properties.
Obsolete property
Data.HTML is obsolete and should not be used, because the Web DataWindow
technology is obsolete.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.HTML
Describe argument:
"DataWindow.Data.HTML"
Usage When HTMLDW is set to False, the value of Data.HTML is the same as the
value of HTMLTable—a read-only HTML table that displays all retrieved
rows.
When the HTMLDW property is set to True, the value of Data.HTML is a form
that supports data input with client scripts for data validation and events. The
generated string for Data.HTML includes:
• HTML input elements
• JavaScript for validating newly entered data based on validation rules in
the DataWindow object
• HTML and JavaScript for navigation based on DataWindow Button
controls with scrolling actions
• State information about the modification status of data items
JavaScript for navigation passes the state of the DataWindow back to the page
server in two variables: objectname_action and objectname_context. It also
passes back any page parameters defined in the HTMLGen.SelfLinkArgs
property. All the HTMLGen.property values affect the way HTML is
generated.
The resulting Web DataWindow is a client-side control for a Web page with
events and methods that can cooperate with a server component for a
Web-based data entry application.
Exceptions If the DataWindow is in print preview mode, or there are no
columns with non-zero tab order, the setting of HTMLDW is ignored and the
generated HTML is a read-only table, not a data-entry form.
To generate a simple form without data entry methodality, you can use the
GenerateHTMLForm method.
Examples strHtml = dw1.Object.DataWindow.Data.HTML
strHtml = dw1.Describe("DataWindow.Data.HTML")
Data.HTMLTable
Description The data in the DataWindow object described in HTML table format. This
property is used in the process of dynamically creating Web pages from a
database.
Obsolete property
Data.HTMLTable is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.HtmlTable
Describe argument:
"DataWindow.Data.HtmlTable"
Usage Some presentation styles translate better into HTML than others. The Tabular,
Group, Freeform, Crosstab, and Grid presentation styles produce good results.
The Composite, RichText, OLE 2.0, TreeView, and Graph presentation styles
produce HTML tables based on the result set only and not on the presentation
style. DataWindows with overlapping controls in them might not produce the
desired results. Nested reports are ignored; they are not included in the
generated HTML.
The generated HTML for Data.HTMLTable is a read-only HTML Table
element that includes:
• All retrieved rows
222 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Data.XHTML
Description A string containing the row data content of the DataWindow object in XHTML
format.
Obsolete property
Data.XHTML is obsolete and should not be used, because the Web DataWindow
technology is obsolete.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.XHTML
Describe argument:
"DataWindow.Data.XHTML"
Usage If any of the Export.XHTML properties have been set, the string that is generated
reflects the values of these properties.
The resulting XHTML string contains a <form> element that supports data
input, which works with separate client scripts for data validation and events.
This JavaScript is either dynamically generated and/or statically deployed. To
generate static JavaScript, select HTML/XHTML from the Format to
Configure drop-down list on the JavaScript Generation page in the
DataWindow painter Properties view, specify names for the files you want to
generate, and click the Generate File button.
The generated XHTML string also includes:
• XHTML input elements
• XHTML and JavaScript for navigation based on DataWindow button
controls with scrolling actions
• State information about the modification status of data items
JavaScript for navigation passes the state of the DataWindow back to the page
server in two variables: objectname_action and objectname_context. It also
passes back any page parameters defined in the HTMLGen.SelfLinkArgs
property. All applicable HTMLGen.property values also affect the way the
XHTML is generated.
The resulting XML Web DataWindow is a client-side control for a Web page,
such as a JSP page, with events and methods that can cooperate with a server
component for a Web-based data entry application.
Examples The following statements set the template used by the DataWindow dw1 to
t_report and return the generated XHTML document to the string ls_XHTML. To
generate the string, the final statement invokes the XML Web DataWindow
generator to generate the XHTML, CSS, and JavaScript components, applying
the t_report template to the generated XHTML and CSS style sheet.
string strXHTML
dw1.Modify("DataWindow.Export.XHTML.UseTemplate =
't_report'")
strXHTML = dw1.Describe("DataWindow.Data.XHTML")
224 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Data.XML
Description A string containing the row data content of the DataWindow object in XML
format.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.XML
Describe argument:
"DataWindow.Data.XML"
Usage If any of the Export.XML properties have been set, the string that is generated
reflects the values of these properties.
Examples The following statements set the template used by the DataWindow dw1 to
t_report, specify that metadata in the XMLSchema! format should be included
in the generated XML, and return the generated XML document to the string
ls_xml.
string ls_xml
dw1.Modify("DataWindow.Export.XML.UseTemplate =
't_report'")
dw1.Modify("DataWindow.Export.XML.SaveMetaData =
MetaDataInternal!")
dw1.Modify
("DataWindow.Export.XML.MetaDataType = XMLSchema!")
ls_xml = dw1.Object.DataWindow.Data.XML
Data.XMLDTD
Description A string containing the full document type definition (DTD) of the XML
output for a DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.XMLDTD
Describe argument:
"DataWindow.Data.XMLDTD"
Usage Use this property to return the full DTD of the XML output of a DataWindow
object separately from the generated XML document itself. The export
template used affects the generated DTD.
Examples The following statements set the template used by the DataWindow dw1 to
t_report and return the generated DTD to the string ls_xml_dtd.
string ls_xml_dtd
dw1.Object.DataWindow.Export.XML.UseTemplate =
't_report'
ls_xml_dtd = dw1.Object.DataWindow.Data.XMLDTD
Data.XMLSchema
Description A string containing the full schema of the XML output of a DataWindow
object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.XMLSchema
Describe argument:
"DataWindow.Data.XMLSchema"
Usage Use this property to return the full schema of the XML output of a
DataWindow object separately from the generated XML document itself. The
export template used affects the generated schema.
Examples The following statements set the template used by the DataWindow dw1 to
t_report and return the XML schema to the string ls_xml_schema.
string ls_xml_schema
dw1.Object.DataWindow.Export.XML.UseTemplate =
't_report'
ls_xml_schema = dw1.Object.DataWindow.Data.XMLSchema
Data.XMLWeb
Description A string containing browser-specific JavaScript that performs the XSLT
transformation on the browser after the XML Web DataWindow generator
generates all necessary components.
226 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Obsolete property
Data.XMLWeb is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.XMLWeb
Describe argument:
"DataWindow.Data.XMLWeb"
Usage If any of the Export.XHTML properties have been set, the string that is generated
reflects the values of these properties.
The resulting XHTML string contains a <form> element that supports data
input, which works with separate client scripts for data validation and events.
This JavaScript is either dynamically generated and/or statically deployed. To
generate static JavaScript, select HTML/XHTML from the Format to
Configure drop-down list on the JavaScript Generation page in the
DataWindow painter Properties view, specify names for the files you want to
generate, and click the Generate File button.
The generated XHTML string also includes:
• XHTML input elements
• XHTML and JavaScript for navigation based on DataWindow button
controls with scrolling actions
• State information about the modification status of data items
JavaScript for navigation passes the state of the DataWindow back to the page
server in two variables: objectname_action and objectname_context. It also
passes back any page parameters defined in the HTMLGen.SelfLinkArgs
property. All applicable HTMLGen.property values also affect the way the
XHTML is generated.
The resulting XML Web DataWindow is a client-side control for a Web page,
such as a JSP page, with events and methods that can cooperate with a server
component for a Web-based data entry application.
Examples The following statements set the template used by the DataWindow dw1 to
t_report and return the generated XSLT transformation to the string
ls_transform. To generate the string, the final statement invokes the XML Web
DataWindow generator to generate the XML, XSLT, CSS, and JavaScript
components, applying the t_report template to the generated XSLT and CSS
style sheet.
string ls_transform
dw1.Modify("DataWindow.Export.XHTML.UseTemplate =
't_report'")
ls_transform = dw1.Object.DataWindow.Data.XMLWeb
Data.XSLFO
Description A string containing XSL Formatting Objects (XSL-FO) that represents the data
and presentation of the DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Data.XSLFO
Describe argument:
"DataWindow.Data.XSLFO"
Usage Use this property to return the data and presentation of a DataWindow object
in XSL-FO format. The export template associated with the DataWindow
object does not affect the generated string.
Examples The following statements return the data and presentation of the DataWindow
object dw1 to the string ls_xslfo in XSL-FO format.
string ls_xslfo
ls_xslfo = dw1.Object.DataWindow.Data.XSLFO
DataObject
Description The name of the DataWindow object that is the nested report within the main
DataWindow object.
Applies to Report controls
Syntax PowerBuilder dot notation:
dw_control.Object.reportname.DataObject
228 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value in the Properties view,
General tab, Report option.
Examples setting = dw1.Object.rpt_1.DataObject
dw1.Object.rpt_1.DataObject = "d_empdata"
setting = dw1.Describe("rpt_1.DataObject")
dw1.Modify("rpt_1.DataObject='d_empdata'")
dbAlias
Description The name of the database column but with the table alias in place of the table
name, if any. This value can be used to construct the update DataWindow
syntax dynamically when an alias name is used for a table.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.dbAlias
Describe and Modify argument:
"columnname.dbAlias { = ' dbcolumnname ' }"
Parameter Description
columnname The name of the column for which you want the name of the
corresponding database column qualified with the table alias
name
dbcolumnname The name of the database column associated with columnname
qualified with the alias of the table name
In the painter You can specify an alias for a table in the SQL Select painter
if you convert the SQL statement for a DataWindow object to syntax. Select
Design>Data Source to open the SQL Select painter, then select
Design>Convert to Syntax. In the text window that displays, add the alias name
to the FROM clause using the syntax:
FROM tablename tablealiasname
Examples Suppose a DataWindow object has the following SQL Select syntax, with the
alias “emp” for the table “employee”:
SELECT "emp"."emp_id",
"emp"."emp_fname",
"emp"."emp_lname"
"emp"."dept_id"
"emp"."salary"
FROM "employee" "emp"
WHERE ( "emp"."salary" > 50000 )
Then the following statements would return the string “employee.emp_id” in
ls_name and the string “emp.emp_id” in ls_alias:
string strAlias, strName
strName = dw1.Object.emp_id.dbName
strAlias = dw1.Object.emp_id.dbAlias
strName = dw1.Describe("emp_id.dbName")
strName = dw1.Describe("emp_id.dbAlias")
See also dbName
dbName
Description The name of the database column. PowerBuilder uses this value to construct
the update syntax.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.dbName
Describe and Modify argument:
"columnname.dbName { = ' dbcolumnname ' }"
Parameter Description
columnname The name of the column for which you want the name of the
corresponding database column
230 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
dbcolumnname The name of the database column associated with columnname
dddw.property
Description Properties that control the appearance and behavior of a column with the
DropDownDataWindow edit style.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.dddw.property
Describe and Modify argument:
"columnname.dddw.property { = value }"
Parameter Description
columnname The name of a column that has the DropDownDataWindow edit
style.
property A property for the DropDownDataWindow column. Properties
and their settings are listed in the table below.
value The value to be assigned to the property. For dddw properties,
value cannot be a DataWindow expression.
232 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage DropDownDataWindows and GetChild When you set some of the dddw
properties, as noted in the table, references to the DropDownDataWindow
become invalid. Call GetChild again after changing these properties to obtain a
valid reference.
To retrieve a DropDownDataWindow when the AutoRetrieve property is set to
“false”, you can access the object data as follows:
DataWindowChild mgr_id
dw1.GetChild ("dept_head_id", mgr_id)
mgr_id.SetTransObject (SQLCA)
mgr_id.Retrieve ( )
You can also pass a retrieval argument for the retrieve on the child
DataWindow object.
234 PowerBuilder
CHAPTER 3 DataWindow Object Properties
ddlb.property
Description Properties that control the appearance and behavior of a column with the
DropDownListBox edit style.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.ddlb.property
Describe and Modify argument:
"columnname.ddlb.property { = value }"
Parameter Description
columnname The name of a column that has the DropDownListBox edit style.
property A property for the DropDownListBox column. Properties and
their settings are listed in the table below.
value The value to be assigned to the property. For ddlb properties,
value cannot be a DataWindow expression.
236 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value in the Properties view, Edit
tab, when Style Type is DropDownListBox.
Examples ls_data = dw1.Describe("emp_status.ddlb.AllowEdit")
dw1.Modify("emp_status.ddlb.Case='Any'")
dw1.Modify("emp_status.ddlb.Limit=30")
string ls_data
ls_data = dw1.Object.emp_status.ddlb.AllowEdit
dw1.Object.emp_status.ddlb.Case = "Any"
DefaultPicture
Description Specifies whether a button displays a default picture for the button’s action.
Usage Default pictures can be associated with all button action types.
You can add your own action pictures by setting the DefaultPicture property to
False and setting the Filename property to the file name for the picture you
want. You can use a URL instead of a complete path to qualify the file name,
and you can leave off the URL server name, mapping prefix, and folder name
if you set them in the HTMLGen.ResourceBase property.
A user-defined action does not have a default picture associated with it.
In the painter Select the control and set the value in the Properties view,
General tab, Action Default Picture option. When the DefaultPicture is not set,
you can specify a picture file name in the Picture File property. Button pictures
can be BMP, GIF, or JPEG files.
Examples dw1.Object.b_name.DefaultPicture = "Yes"
setting = dw1.Describe("b_name.DefaultPicture")
dw1.Modify("b_name.DefaultPicture ='No'")
See also HTMLGen.property
DefaultPicture
Filename
Depth
Description The depth of a 3D graph.
Applies to Graph controls
Syntax PowerBuilder dot notation:
238 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw_control.Object.graphname.Depth
Describe and Modify argument:
"graphname.Depth { = ' depthpercent ' }"
Parameter Description
graphname The graph control within the DataWindow for which you want
to set the depth.
depthpercent (exp) An integer whose value is the depth of the graph, specified
as a percentage of the graph’s width. Depthpercent can be a
quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Depth slider.
Examples string setting
setting = dw1.Object.graph_1.Depth
dw1.Object.graph_1.Depth = 70
setting = dw1.Describe("graph_1.Depth")
dw1.Modify("graph_1.Depth='70'")
Detail_Bottom_Margin
Description The size of the bottom margin of the DataWindow’s detail area.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Detail_Bottom_Margin = value )
Parameter Description
value An integer specifying the size of the bottom margin of the detail
area in the units specified for the DataWindow.
Detail_Top_Margin
Description The size of the top margin of the DataWindow’s detail area.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Detail_Top_Margin = value )
Parameter Description
value An integer specifying the size of the top margin of the detail
area in the units specified for the DataWindow.
Detail.property
See Bandname.property.
DispAttr.fontproperty
Description Settings for the appearance of various text components of a graph.
Applies to Properties of Graph controls, as noted throughout this discussion
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.property.DispAttr.fontproperty
Describe and Modify argument:
"graphname.property.DispAttr.fontproperty { = value }"
Parameter Description
graphname The Graph control in a DataWindow for which you want to get
or set font appearance values.
property A text component of the graph, such as an Axis keyword
(Category, Series, or Values), Legend, Pie, or Title, specifying
the graph component whose appearance you want to get or set.
These properties have their own entries. These values are
listed in the following table.
You can also set font properties for the label of an axis with the
following syntax:
"graphname.axis.LabelDispAttr.fontproperty { = value }"
fontproperty A property that controls the appearance of text in the graph.
Properties and their settings are listed in the table below.
value The value to be assigned to fontproperty. Value can be a quoted
DataWindow expression.
240 PowerBuilder
CHAPTER 3 DataWindow Object Properties
242 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view, Text
tab. Settings apply to the selected item in the Text Object list box.
Examples setting = dw1.Object.Category.LabelDispAttr.Font.Face
dw1.Object.Category.LabelDispAttr.Font.Face = "Arial"
setting = &
dw1.Describe("Category.LabelDispAttr.Font.Face")
dw1.Modify("gr_1.Category.LabelDispAttr.Font.Face= &
'Arial'")
dw1.Modify("gr_1.Title.DispAttr.DisplayExpression=" &
"'Title + ~"~n~" + Today()'")
DisplayType
Description The way the OLE Object control displays the OLE object it contains. It can
display an icon or an image of the object’s contents. The image is reduced to
fit inside the OLE container.
Both the icon and the image are provided by the OLE server. If the OLE server
does not support a contents view, PowerBuilder displays an icon even if
DisplayType is set to contents.
Applies to OLE Object controls
Syntax PowerBuilder dot notation:
dw_control.Object.olecontrolname.DisplayType
Describe and Modify argument:
Usage In the painter Select the control and set the value in the Properties view,
Options tab.
Examples string ls_data
ls_data = dw1.Object.ole_report.DisplayType
dw1.Object.ole_report.DisplayType = 1
ls_data = dw1.Describe("ole_report.DisplayType")
dw1.Modify("ole_report.DisplayType='1'")
Edit.property
Description Settings that affect the appearance and behavior of columns whose edit style is
Edit.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Edit.property
Describe and Modify argument:
"columnname.Edit.property { = value }"
SyntaxFromSql:
Column ( Edit.property = value )
Parameter Description
columnname The column with the Edit edit style for which you want to get
or set property values. You can specify the column name or a
pound sign (#) and the column number.
property A property for the column’s Edit style. Properties and their
settings are listed in the table below. The table identifies the
properties you can use with SyntaxFromSql.
244 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value The value to be assigned to the property. For most Edit
properties, you cannot specify a DataWindow expression. The
exception is Edit.Format.
246 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view, Edit
tab, when Style Type is Edit.
Examples string setting
setting = dw1.Object.emp_name.Edit.AutoHScroll
dw1.Object.emp_name.Edit.Required = "no"
setting = dw1.Describe("emp_name.Edit.AutoHScroll")
dw1.Modify("emp_name.Edit.Required=no")
dw1.Object.col1.Edit.UseEllipsis = Yes
dw1.Modify("col1.Edit.UseEllipsis=Yes")
EditMask.property
Description Settings that affect the appearance and behavior of columns with the EditMask
edit style.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.EditMask.property
Describe and Modify argument:
"columnname.EditMask.property { = value }"
Parameter Description
columnname The column with the EditMask edit style for which you want to
get or set property values. You can specify the column name or
a pound sign (#) and the column number.
property A property for the column’s EditMask style. Properties and
their settings are listed in the table below.
value The value to be assigned to the property. For EditMask
properties, you cannot specify a DataWindow expression.
248 PowerBuilder
CHAPTER 3 DataWindow Object Properties
250 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view, Edit
tab, when Style is EditMask.
Examples setting = dw1.Describe("emp_status.EditMask.Spin")
dw1.Modify("empBonus.EditMask.SpinIncr=1000")
dw1.Modify("empBonus.EditMask.SpinRange='0~~~~5000'")
string setting
setting = dw1.Object.emp_status.EditMask.Spin
dw1.Object.emp_bonus.EditMask.SpinIncr = 1000
dw1.Object.id.EditMask.SpinRange = "0~~~~10"
dw1.Object.col1.EditMask.UseEllipsis = Yes
dw1.Modify("col1.EditMask.UseEllipsis=Yes")
Elevation
Description The elevation in a 3D graph.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.Elevation
Describe and Modify argument:
"graphname.Elevation { = ' integer ' }"
Parameter Description
graphname The name of the graph control in the DataWindow for which
you want to get or set the elevation.
integer (exp) An integer specifying the elevation of the graph. Elevation
can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Elevationscroll bar (enabled when a 3D graph type is selected).
Examples string setting
setting = dw1.Object.graph_1.Elevation
dw1.Object.graph_1.Elevation = 35
setting = dw1.Describe("graph_1.Elevation")
dw1.Modify("graph_1.Elevation=35")
dw1.Modify("graph_1.Elevation='10~tIf(...,20,30)'")
EllipseHeight
Description The radius of the vertical part of the corners of a RoundRectangle.
Applies to RoundRectangle controls
Syntax PowerBuilder dot notation:
dw_control.Object.rrectname.EllipseHeight
Describe and Modify argument:
"rrectname.EllipseHeight { = ' integer ' }"
252 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
rrectname The name of the RoundRectangle control in the DataWindow
for which you want to get or set the ellipse height.
integer (exp) An integer specifying the radius of the vertical part of the
corners of a RoundRectangle in the DataWindow’s unit of
measure. EllipseHeight can be a quoted DataWindow
expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Examples string setting
setting = dw1.Object.rrect_1.EllipseHeight
dw1.Object.rrect_1.EllipseHeight = 35
setting = dw1.Describe("rrect_1.EllipseHeight")
dw1.Modify("rrect_1.EllipseHeight=35")
dw1.Modify("rrect_1.EllipseHeight='10~tIf(...,20,30)'"
)
EllipseWidth
Description The radius of the horizontal part of the corners of a RoundRectangle.
Applies to RoundRectangle controls
Syntax PowerBuilder dot notation:
dw_control.Object.rrectname.EllipseWidth
Describe and Modify argument:
"rrectname.EllipseWidth { = ' integer ' }"
Parameter Description
rrectname The name of the RoundRectangle control in the DataWindow
for which you want to get or set the ellipse width.
integer (exp) An integer specifying the radius of the horizontal part of
the corners of a RoundRectangle in the DataWindow’s unit of
measure. EllipseWidth can be a quoted DataWindow
expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Examples string setting
setting = dw1.Object.rrect_1.EllipseWidth
dw1.Object.rrect_1.EllipseWidth = 35
setting = dw1.Describe("rrect_1.EllipseWidth")
dw1.Modify("rrect_1.EllipseWidth=35")
dw1.Modify("rrect_1.EllipseWidth='10~tIf(...,20,30)'")
Enabled
Description Determines whether a control in a DataWindow is enabled.
Applies to Button, Computed Field, Graph, InkPicture, OLE Database Blob, OLE Object,
Picture, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.buttonname.Enabled
Describe and Modify argument:
"buttonname.Enabled { = ' value ' }"
Parameter Description
buttonname The name of the button that you want to enable or disable.
value Whether the button is enabled.
Values are:
Yes – (Default) The button is enabled.
No – The button is disabled.
Usage In the painter Select the control and set the value in the Properties view
General tab, Enabled option.
When the Enabled check box is cleared, or the Enabled property is otherwise
set to false, the button control is grayed and its actions are not performed.
Examples dw1.Object.b_name.Enabled = "No"
setting = dw1.Describe("b_name.Enabled")
dw1.Modify("b_name.Enabled ='No'")
Export.PDF.Distill.CustomPostScript
Description Setting that enables you to specify the PostScript printer driver settings used
when data is exported to PDF using the Distill! method.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
254 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw_control.Object.DataWindow.Export.PDF.Distill.CustomPostScript
Describe and Modify argument:
"DataWindow.Export.PDF.Distill.CustomPostScript { = 'value' }"
Parameter Description
value (exp) Whether the printer specified in the DataWindow.Printer
property is used when data is exported to PDF.
Values are:
• 1 – The printer specified in DataWindow.Printer is used for
PDF export.
• 0 – The default printer is used for PDF export (default).
Usage The Distill! method performs a PostScript “print to file” before distilling to
PDF. This property can be set to specify that you want to use a custom
PostScript printer before you call the SaveAs method with PDF! as the
SaveAsType or select File>Save Rows As with the file type PDF in the
DataWindow painter.
Set this property if you want to use a PostScript printer driver for which you
have set specific print options such as options for font and graphic handling. If
this property is not set, a default PostScript printer driver specifically designed
for distilling purposes is used.
This property has no effect if the Export.PDF.Method property is set to
NativePDF! or XSLFOP!.
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select PDF from the Format to Configure list and Distill!
from the Method list, and then select Distill Custom PostScript.
Examples This example specifies an HP LaserJet PostScript printer as the printer to be
used to export PDF with customized settings, and saves the data to a file called
custom.pdf:
int li_ret
dw1.Object.DataWindow.Export.PDF.Method = Distill!
dw1.Object.DataWindow.Printer = &
"HP LaserJet 4Si/4Si MX PostScript"
dw1.Object.DataWindow.Export.PDF. &
Distill.CustomPostScript="1"
This example uses Modify to set the PDF export properties and specify a
network printer:
dw1.Modify("DataWindow.Export.PDF.Method = Distill!")
dw1.Modify("Printer = '\\print-server\pr-18' ")
dw1.Modify &
("DataWindow.Export.PDF.Distill.CustomPostScript='1'")
See also Export.PDF.Method
Export.PDF.Method
Description Setting that determines whether data is exported to PDF from a DataWindow
object by printing to a PostScript file and distilling to PDF, by saving to PDF
via PDFlib, or by saving in XSL Formatting Objects (XSL-FO) format and
processing to PDF.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.PDF.Method
Describe and Modify argument:
"DataWindow.Export.PDF.Method { = 'value' }"
Parameter Description
value A string specifying a value of the PDFMethod enumerated
datatype
Usage This property can be set to specify the method used to export data to PDF
before you call the SaveAs method with PDF! as the SaveAsType or select
File>Save Rows As with the file type PDF in the DataWindow painter. If this
property is not set, the distill method is used by default.
PDFMethod is an enumerated datatype that can hold the following values:
256 PowerBuilder
CHAPTER 3 DataWindow Object Properties
The distill method and the PDFlib method provides a robust solution that can
save all types of DataWindow objects on the Windows platform. The XSL-FO
method uses a platform-independent Java process, and is particularly useful for
printing DataWindow objects in the server on a UNIX operating system.
Saving as XSL-FO
You can also save the data in a DataWindow object in XSL-FO format and
customize the filters used to convert it to PDF and other output formats. To do
so, use XSLFO! as the SaveAsType parameter when you call SaveAs, or select
XSL-FO as the file type when you save rows in the DataWindow painter.
Export.PDF.NativePDF.CustomOrientation
Description Setting that enables you to specify the page orientation when you use the
PDFlib method to save data from a DataWindow object to a PDF file.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.PDF.NativePDF.CustomOrientatio
n
Describe argument:
Examples This example exports PDF in portrait mode, and saves the data to a file called
custom.pdf:
int li_ret
dw1.Object.DataWindow.Export.PDF.Method = NativePDF!
dw1.Object.DataWindow.Export.PDF.NativePDF.CustomOrien
tation=2
li_ret = dw1.SaveAs("custom.pdf", PDF!, true)
See also Export.PDF.Method
Export.PDF.NativePDF.CustomSize
Export.PDF.NativePDF.CustomSize
Description Setting that enables you to specify the paper size when you use the PDFlib
method to save data from a DataWindow object to a PDF file.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.PDF.NativePDF.CustomSize
Describe argument:
"DataWindow.Export.PDF.NativePDF.CustomSize { = 'value' }"
258 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value (exp) An integer indicating the paper size.
Values are:
• 0 - Default paper size which is A4 by default.
• 1 - A1 594 x 841 mm
• 2 - A2 420 x 594 mm
• 3 - A3 297 x 420 mm
• 4 - A4 210 x 297 mm
• 5 - Letter 8 1/2 x 11 in
• 6 - Legal 8 1/2 x 14 in
Examples This example exports PDF with A4 paper size, and saves the data to a file
called custom.pdf:
int li_ret
dw1.Object.DataWindow.Export.PDF.Method = NativePDF!
dw1.Object.DataWindow.Export.PDF.NativePDF.CustomSize=
0
li_ret = dw1.SaveAs("custom.pdf", PDF!, true)
This example uses Modify to set the PDF export properties:
dw1.Modify("DataWindow.Export.PDF.Method =
NativePDF!")
dw1.Modify("DataWindow.Export.PDF.NativePDF.CustomOrie
ntation = 1")
dw1.Modify("DataWindow.Export.PDF.NativePDF.CustomSize
= 1")
See also Export.PDF.Method
Export.PDF.NativePDF.CustomOrientation
Export.PDF.XSLFOP.Print
Description Setting that enables you to send a DataWindow object directly to a printer using
platform-independent Java printing when using the XSL-FO method to export
to PDF. This is an option of the Apache FOP processor.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.PDF.XSLFOP.Print
Describe argument:
"DataWindow.Export.PDF.XSLFOP.Print { = 'value' }"
Parameter Description
value (exp) Whether the exported PDF is sent directly to the default
printer.
Values are:
• Yes – The DataWindow object is exported to a PDF file and
sent directly to a printer.
• No – The DataWindow object is exported to a PDF file but
is not printed (default).
Usage Set this property if you are using the XSL-FO method to export a DataWindow
object to a PDF file and you want to send the PDF file directly to a printer. The
PDF file is always printed to the default system printer. The
DataWindow.Printer property setting is ignored.
This property has no effect if the Export.PDF.Method property is set to
NativePDF! or Distill!.
In the painter On the Data Export page in the Properties view for the
DataWindow object, select PDF from the Format to Configure list and
XSLFOP! from the Method list, and then select Print Using XSLFOP.
Examples This example specifies the XSLFOP! method for PDF export, sets the
XSLFOP.Print property, and saves the data to a file called printed.pdf, which
is sent directly to the default printer:
int li_ret
dw1.Object.DataWindow.Export.PDF.Method = XSLFOP!
dw1.Object.DataWindow.Export.PDF.xslfop.print='Yes'
li_ret = dw1.SaveAs("printed.pdf", PDF!, true)
See also Export.PDF.Method
Export.XHTML.TemplateCount
Description The number of XHTML export templates associated with a DataWindow
object.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XHTML.TemplateCount
260 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Describe argument:
"DataWindow.Export.XHTML.TemplateCount"
Usage This property is used to get a count of the XHTML export templates associated
with a DataWindow object. It returns a long specifying the number of XHTML
export templates previously saved in the DataWindow painter for the specified
DataWindow object. The count is used with the
DataWindow.Export.XHTML.Template[ ].Name property to enable an application
to select an export template at runtime.
Examples This code in the open event of a window uses the TemplateCount property to
get the number of templates associated with dw1. It then uses the number
returned as the upper limit in a FOR loop that populates a drop-down list box
with the template names, using the
DataWindow.Export.XHTML.Template[ ].Name property.
string ls_template_name
long l_template_count, i
Export.XHTML.Template[ ].Name
Description The name of an XHTML export template associated with a DataWindow
object.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XHTML.Template[ num ].Name
Describe argument:
"DataWindow.Export.XHTML.Template[ num ]Name"
Parameter Description
num (exp) A long specifying the index of the export template
Usage This property returns the names of the XHTML export templates associated
with a DataWindow object by index. The index can range from 1 to the value
of the DataWindow.Export.XHTML.TemplateCount property. The order reflects
the serialized storage order of all templates, which is a read-only setting. These
properties, with DataWindow.Export.XHTML.UseTemplate, enable an
application to select an export template dynamically at runtime.
Examples See Export.XHTML.TemplateCount.
See also Export.XHTML.TemplateCount
Export.XHTML.UseTemplate
Export.XHTML.UseTemplate
Description Setting that optionally controls the logical structure of the XHTML generated
by a DataWindow object from a DataWindow data expression using dot
notation.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XHTML.UseTemplate
Describe and Modify argument:
"DataWindow.Export.XHTML.UseTemplate { = 'value ' }"
Parameter Description
value (exp) A string specifying the name of an XHTML export
template previously saved in the DataWindow painter for the
specified DataWindow object
Usage This property uses a template defined in the DataWindow painter to specify the
logical structure and attribute overrides that PowerBuilder should use to
generate XHTML from a DataWindow object. It is designed to be used with
the data expression for the DataWindow object, and should be set before a data
expression statement.
262 PowerBuilder
CHAPTER 3 DataWindow Object Properties
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select XHTML from the Format to Configure list and
select a template from the Use Template list.
Examples This example stores the name of the export template used in dw1 in the string
ls_template. If no template is selected in dw1, an empty string is returned.
string ls_template_name
ls_template_name =
dw1.Describe("DataWindow.Export.XHTML.UseTemplate")
This example sets the name of the current XHTML export template used in dw1
to t_report. If t_report does not exist, the current template is not changed.
dw1.Modify("DataWindow.Export.XHTML.UseTemplate =
't_report' ")
See also Export.XHTML.TemplateCount
Export.XHTML.Template[ ].Name
Export.XML.HeadGroups
Description Setting that causes elements, attributes, and all other items above the Detail
Start element in an XML export template for a group DataWindow to be
iterated for each group in the exported XML.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.HeadGroups
Describe and Modify argument:
"DataWindow.Export.XML.HeadGroups { = 'value ' }"
Parameter Description
value (exp) Whether the contents of the header section in an export
template iterate in the generated XML.
Values are:
• Yes – The header section is repeated for each group (default).
• No – The header section is not repeated.
Usage This property must be set for group DataWindow objects if you want elements
and other items added to the header section of an XML export template to be
repeated before each group in the exported XML. For DataWindow objects
with multiple groups, each XML fragment in the header section between a
Group Header element and the next Group Header element or Detail Start
element is iterated.
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
Iterate header for Groups.
Examples dw1.Object.DataWindow.Export.XML.HeadGroups = "Yes"
dw1.Modify("DataWindow.Export.XML.HeadGroups = 'No' ")
Export.XML.IncludeWhitespace
Description Setting that determines whether the XML document is formatted by inserting
whitespace characters (carriage returns, linefeeds, tabs, and spacebar spaces).
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.IncludeWhitespace
Describe and Modify argument:
"DataWindow.Export.XML.IncludeWhitespace { = 'value ' }"
Parameter Description
value (exp) Whether the generated XML is formatted with whitespace
characters.
Values are:
• Yes – Whitespace characters are inserted.
• No – Whitespace characters are not inserted (default).
Usage This property should be set before you export a DataWindow object if you want
to view or verify the exported XML using a text editor.
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
Include Whitespace.
Examples dw1.Object.DataWindow.Export.XML.IncludeWhitespace =
"No"
dw1.Modify("DataWindow.Export.XML.IncludeWhitespace =
'Yes' ")
264 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Export.XML.MetaDataType
Description Setting that controls the type of metadata generated with the XML exported
from a DataWindow object using the SaveAs method or a .Data.XML
expression.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.MetaDataType
Describe and Modify argument:
"DataWindow.Export.XML.MetaDataType { = 'value ' }"
Parameter Description
value (exp) A string specifying a value of the
Export.XML.MetaDataType enumerated datatype
Usage This property must be set to specify the type of metadata generated before you
call the SaveAs method with XML! as the SaveAsType to save data as an XML
document, or use the .Data.XML expression to save data as an XML string. The
metadata is saved into the exported XML itself or into an associated file,
depending on the value of the Export.XML.SaveMetaData property.
The Export.XML.MetaDataType property is an enumerated datatype that can
hold the following values:
Enumerated value Numeric value Meaning
XMLNone! 0 Metadata (XML Schema or DTD) is
not generated when XML is exported
XMLSchema! 1 XML Schema is generated when
XML is exported
XMLDTD! 2 DTD is generated when XML is
exported
If the data item for a column is null or an empty string, an empty element is
created when you export XML. If you select XMLSchema!, child elements with
null data items are created with the content "xsi:nil='true'".
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
a value from the Meta Data Type list.
Examples This statement specifies that no metadata will be generated when the
DataWindow is exported to XML:
dw1.Object.DataWindow.Export.XML.MetaDataType =
XMLNone!
These statements export the contents of dw1 to the file c:\myxml.xml using the
XML export template called t_schema, and generate an external XML schema
file at c:\myxml.xsd:
dw1.Modify("DataWindow.Export.XML.UseTemplate =
't_schema'")
dw1.Modify("DataWindow.Export.XML.MetaDataType = 1")
dw1.Modify("DataWindow.Export.XML.SaveMetaData = 1")
dw1.SaveAs("c:\myxml.xml", XML!, false)
See also Export.XML.SaveMetaData
Export.XML.SaveMetaData
Description Setting that controls the storage format for the metadata generated with the
XML exported from a DataWindow object using the SaveAs method or a
.Data.XML expression.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.SaveMetaData
Describe and Modify argument:
"DataWindow.Export.XML.SaveMetaData { = 'value ' }"
Parameter Description
value (exp) A string specifying a value of the
Export.XML.SaveMetaData enumerated datatype
Usage This property must be set to specify how to store the generated metadata before
you call the SaveAs method with XML! as the SaveAsType to save data as an
XML document, or use the .Data.XML expression to save data as an XML
string. The metadata can be saved into the exported XML document or string
or into an associated file.
Note
If Export.XML.MetaDataType is set to XMLNone!, the value of the
Export.XML.SaveMetaData property is not used.
266 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Enumerated Numeric
value value Meaning
MetaDataInternal! 0 The metadata is saved into the generated XML
document or string. To save metadata using the
.Data.XML expression syntax, you must use this
value.
MetaDataExternal! 1 With the SaveAs method, metadata is saved as an
external file with the same name as the XML
document but with the extension .xsd (for
XMLSchema! type) or .dtd (for XMLDTD! type).
A reference to the name of the metadata file is
included in the output XML document.
With .Data.XML, no metadata is generated in the
XML string.
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
a value from the Save Meta Data list.
Examples dw1.Object.DataWindow.Export.XML.SaveMetaData = 0
dw1.Modify("DataWindow.Export.XML.SaveMetaData = &
MetaDataExternal!")
See also Export.XML.MetaDataType
Export.XML.TemplateCount
Description The number of XML export templates associated with a DataWindow object.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.TemplateCount
Describe argument:
"DataWindow.Export.XML.TemplateCount"
Usage This property is used to get a count of the XML export templates associated
with a DataWindow object. It returns a long specifying the number of XML
export templates previously saved in the DataWindow painter for the specified
DataWindow object. The count is used with the
DataWindow.Export.XML.Template[ ].Name property to enable an application to
select an export template at runtime.
Examples This code in the open event of a window uses the TemplateCount property to
get the number of templates associated with dw1. It then uses the number
returned as the upper limit in a FOR loop that populates a drop-down list box
with the template names, using the DataWindow.Export.XML.Template[ ].Name
property.
string ls_template_count, ls_template_name
long i
ls_template_count=dw1.Describe
("DataWindow.Export.XML.TemplateCount")
Export.XML.Template[ ].Name
Description The name of an XML export template associated with a DataWindow object.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.Template[num ].Name
Describe argument:
"DataWindow.Export.XML.Template[num ]Name"
Parameter Description
num (exp) A long specifying the index of the export template
268 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage This property is used to get the names of the XML export templates associated
with a DataWindow object. It returns a string specifying the name of an export
template previously saved in the DataWindow painter for the specified
DataWindow object. The property is used with the
DataWindow.Export.XML.TemplateCount property to enable an application to
select an export template at runtime.
Examples See Export.XML.TemplateCount.
See also Export.XML.TemplateCount
Export.XML.UseTemplate
Export.XML.UseTemplate
Description Setting that optionally controls the logical structure of the XML exported from
a DataWindow object using the SaveAs method or the .Data.XML property.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Export.XML.UseTemplate
Describe and Modify argument:
"DataWindow.Export.XML.UseTemplate { = 'value ' }"
Parameter Description
value (exp) A string specifying the name of an export template
previously saved in the DataWindow painter for the specified
DataWindow object
Usage This property should be set to specify the logical structure of the XML
generated before you call the SaveAs method with XML! as the SaveAsType to
save data as an XML document, or use the .Data.XML expression to save data
as an XML string.
In the painter In the Data Export tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
a template from the Use Template list.
Examples This example stores the name of the export template used in dw1 in the string
ls_template. If no template is selected in dw1, an empty string is returned.
string ls_template_name
ls_template_name =
dw1.Describe("DataWindow.Export.XML.UseTemplate")
This example sets the name of the current XML export template used in dw1 to
t_report. If t_report does not exist, the current template is not changed.
dw1.Modify("DataWindow.Export.XML.UseTemplate =
't_report' ")
See also Export.XML.MetaDataType
Export.XML.SaveMetaData
Expression
Description The expression for a computed field control in the DataWindow. The
expression is made up of calculations and DataWindow expression functions.
The DataWindow evaluates the expression to get the value it will display in the
computed field.
Applies to Computed field controls
Syntax PowerBuilder dot notation:
dw_control.Object.computename.Expression
Describe and Modify argument:
"computename.Expression { = ’string ' }"
Parameter Description
computename The name of the computed field control in the DataWindow for
which you want to get or set the expression
string A string whose value is the expression for the computed field
Usage In the painter Select the control and set the value in the Properties view,
General tab, Expression option. The More button displays the Modify
Expression dialog, which provides help in specifying the expression. The
Verify button tests the expression.
Examples setting = dw1.Object.comp_1.Expression
dw1.Object.comp_1.Expression = "avg(salary for all)"
setting = dw1.Describe("comp_1.Expression")
dw1.Modify("comp_1.Expression='avg(salary for all)'")
270 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Filename
Description The file name containing the image for a Picture or Button control in the
DataWindow. If no image is specified for a Button control, only text is used for
the button label.
Applies to Picture and Button controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Filename
Describe and Modify argument:
"controlname.Filename { = ' filestring ' }"
Parameter Description
controlname The name of the Picture or Button control in the DataWindow
for which you want to get or set the image file name.
filestring (exp) A string containing the name of the file that contains the
image. Filestring can be a quoted DataWindow expression.
Button pictures can be BMP, GIF, or JPEG files. You can use a
URL instead of a full path name, and if you set the
HTMLGen.ResourceBase property to the URL address, you
need to specify only a relative file name for this string.
If you include the name of the file containing the image in the
executable for the application, PowerBuilder will always use
that image; you cannot use Modify to change the image.
Usage In the painter For a Picture control, select the control and set the value in the
Properties view, General tab, File Name option. For a Button control, select the
control and set the value in the Properties view, General tab, Picture File
option. The Action Default Picture check box must be cleared to set the value
for the picture file.
Examples Example for a Picture control:
setting = dw1.Object.bitmap_1.Filename
dw1.Object.bitmap_1.Filename = "exclaim.bmp"
setting = dw1.Describe("bitmap_1.Filename")
dw1.Modify("bitmap_1.Filename='exclaim.bmp'")
Example for a Button control:
dw1.Object.b_name.FileName = "logo.gif"
ls_data = dw1.Describe("b_name.FileName")
dw1.Modify("b_name.FileName = 'logo.jpg'")
See also DefaultPicture
FirstRowOnPage
Description The first row currently visible in the DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.FirstRowOnPage
Describe argument:
"DataWindow.FirstRowOnPage"
Examples string setting
setting = dw1.Object.DataWindow.FirstRowOnPage
setting = dw1.Describe("DataWindow.FirstRowOnPage")
FocusRectangle
Description Whether a rectangle displays around the selected control.
Applies to Column, Computed Field, Graph, OLE Object, OLE Database Blob, Picture,
and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.FocusRectangle
Describe and Modify argument:
“controlname.FocusRectangle = value”
Parameter Description
controlname The name of the control for which you want to show or hide the
focus rectangle
value Whether the focus rectangle appears when the control has focus.
Values are:
• Yes – The focus rectangle displays
• No – The focus rectangle does not display
Usage In the painter Select the control and set the value in the Properties view, Edit
tab, Show Focus Rectangle option.
Examples String ls_DataObject
string ls_focus, ls_focus1
ls_DataObject= dw_1.DataObject
If ls_DataObject = "d_dept" Then
272 PowerBuilder
CHAPTER 3 DataWindow Object Properties
messagebox(ls_focus, ls_focus1)
Font.Bias
Description The way fonts are manipulated in the DataWindow at runtime.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Font.Bias
Describe and Modify argument:
"DataWindow.Font.Bias { = biasvalue }"
Parameter Description
biasvalue An integer indicating how the fonts will be manipulated at
execution. Biasvalue cannot be a DataWindow expression.
Values are:
0 – As display fonts
1 – As printer fonts
2 – Neutral; no manipulation will take place
Font.property
Description Settings that control the appearance of fonts within a DataWindow, except for
graphs, which have their own settings (see DispAttr).
Applies to Button, Column, Computed Field, GroupBox, and Text controls
274 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value using the:
• Properties view, Font tab
• For some font settings, StyleBar
Examples dw1.Object.emp_name_t.Font.Face
dw1.Object.emp_name_t.Font.Face = "Arial"
dw1.Describe("emp_name_t.Font.Face")
dw1.Modify("emp_name_t.Font.Face='Arial'")
See also Transparency (columns and controls)
Footer.property
See Bandname.property.
Format
Description The display format for a column.
You can use the GetFormat and SetFormat methods instead of Describe and
Modify to get and change a column’s display format. The advantage to using
Modify is the ability to specify an expression.
Applies to Column and Computed Field controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Format
Describe and Modify argument:
"controlname.Format { = ' value ' }"
Parameter Description
controlname The name of the column or computed field for which you want
to get or set the display format.
value (exp) A string specifying the display format. See the Users
Guide for information on constructing display formats. Value
can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Format tab.
If you want to add text to a numeric display format and use a color attribute,
you must include the escape character (\) before each literal in the mask. For
example:
[red]\D\e\p\t\: ###
Examples setting = dw1.Object.phone.Format
dw1.Object."phone.Format = "[red](@@@)@@@-@@@@;'None'"
setting = dw1.Describe("phone.Format")
276 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw1.Modify( &
"phone.Format='[red](@@@)@@@-@@@@;~~~'None~~~''")
See also GetFormat function in the PowerScript Reference
SetFormat function in the PowerScript Reference
Gradient.property
Description Settings that control the gradient display in a DataWindow object. Gradient
display properties are not supported in RichText, Graph, or OLE DataWindow
presentation styles.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.datawindow.gradient.property
Describe and Modify argument:
"DataWindow.gradient.property { = value }"
Parameter Description
property A property for the gradient. Properties and their settings are
listed in the table that follows.
value The value to be assigned to the property. For gradient
properties, value can be a quoted DataWindow expression.
Usage In the painter Select the DataWindow object and set the value on the
Background tab of the Properties view.
If you save to an EMF or WMF, the properties on the Background tab are not
saved with the DataWindow.
Examples string ls_data
ls_data = dw_1.Object.datawindow.brushmode
dw_1.Object.datawindow.Brushmode = 5
ls_data = dw_1.Describe("datawindow.brushmode")
dw_1.Modify("datawindow.Brushmode=6")
dw_1.Modify("datawindow.Gradient.Transparency=75")
See also Brushmode
278 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Picture.property
GraphType
Description The type of graph, such as bar, pie, column, and so on.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.GraphType
Describe and Modify argument:
"graphname.GraphType { = ' typeinteger ' }"
Parameter Description
graphname The graph control for which you want to get or change the type.
typeinteger (exp) An integer identifying the type of graph in the
DataWindow object. Typeinteger can be a quoted DataWindow
expression.
Values are:
1 – Area 10 – ColStacked
2 – Bar 11 – ColStacked3DObj
3 – Bar3D 12 – Line
4 – Bar3DObj 13 – Pie
5 – BarStacked 14 – Scatter
6 – BarStacked3DObj 15 – Area3D
7 – Col 16 – Line3D
8 – Col3D 17 – Pie3D
9 – Col3DObj
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Examples string setting
setting = dw1.Object.graph_1.GraphType
dw1.Object.graph_1.GraphType = 17
setting = dw1.Describe("graph_1.GraphType")
dw1.Modify("graph_1.GraphType=17")
Grid.ColumnMove
Description Whether the user can rearrange columns by dragging.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Grid.ColumnMove
Describe and Modify argument:
"DataWindow.Grid.ColumnMove { = value } "
Parameter Description
value Whether the user can rearrange columns.
Values are:
Yes – The user can drag columns.
No – The user cannot drag columns.
Usage In the painter Select the DataWindow object by deselecting all controls; then
set the value in the Properties view, General tab, Grid group, Column Moving
check box (available when the presentation style is Grid, Crosstab, or
TreeView with the Grid Style option selected).
Examples string setting
setting = dw1.Object.DataWindow.Grid.ColumnMove
dw1.Object.DataWindow.Grid.ColumnMove = No
setting = dw1.Describe("DataWindow.Grid.ColumnMove")
dw1.Modify("DataWindow.Grid.ColumnMove=No")
Grid.Lines
Description The way grid lines display and print in a DataWindow whose presentation style
is Grid, Crosstab, or TreeView.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Grid.Lines
Describe and Modify argument:
"DataWindow.Grid.Lines { = value }"
280 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value An integer specifying whether grid lines are displayed on the
screen and printed.
Values are:
0 – Yes, grid lines are displayed and printed.
1 – No, grid lines are not displayed and printed.
2 – Grid lines are displayed, but not printed.
3 – Grid lines are printed, but not displayed.
Usage In the painter Select the DataWindow object by deselecting all controls; then
set the value in the Properties view, General tab, Grid group, Display option
(available when the presentation style is Grid, Crosstab, or TreeView with the
Grid Style option selected).
Examples string setting
setting = dw1.Object.DataWindow.Grid.Lines
dw1.Object.DataWindow.Grid.Lines = 2
setting = dw1.Describe("DataWindow.Grid.Lines")
dw1.Modify("DataWindow.Grid.Lines=2")
GroupBy
Description A comma-separated list of the columns or expressions that control the grouping
of the data transferred from the DataWindow to the OLE object. When there is
more than one grouping column, the first one is the primary group and the
columns that follow are nested groups.
Applies to OLE Object controls
Syntax PowerBuilder dot notation:
dw_control.Object.olecontrolname.GroupBy
Describe and Modify argument:
"olecontrolname.GroupBy { = ' columnlist ' }"
Parameter Description
olecontrolname The name of the OLE Object control for which you want to get
or set the grouping columns.
columnlist (exp) A list of the columns or expressions that control the
grouping. If there is more than one, separate them with
commas. Columnlist can be a quoted DataWindow expression.
Usage Target and Range also affect the data that is transferred to the OLE object.
In the painter Select the control and set the value in the Properties view, Data
tab, Group By option.
Examples ls_data = dw1.Object.ole_report.GroupBy
dw1.Object.ole_report.GroupBy = "emp_state, emp_office"
dw1.Object.ole_report.GroupBy = "year"
ls_data = dw1.Describe("ole_report.GroupBy")
dw1.Modify(" &
ole_report.GroupBy='emp_state, emp_office'")
dw1.Modify("ole_report.GroupBy='year'")
Header_Bottom_Margin
Description The size of the bottom margin of the DataWindow’s header area.
Header_Bottom_Margin is meaningful only when type is Grid or Tabular.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Header_Bottom_Margin = value )
Parameter Description
value An integer specifying the size of the bottom margin of the
header area in the units specified for the DataWindow. The
bottom margin is the distance between the bottom of the header
area and the last line of the header.
Header_Top_Margin
Description The size of the top margin of the DataWindow’s header area.
Header_Top_Margin is meaningful only when type is Grid or Tabular.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Header_Top_Margin = value )
282 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value An integer specifying the size of the top margin of the header area
in the units specified for the DataWindow. The top margin is the
distance between the top of the header area and the first line of the
header.
Header.property
See Bandname.property.
Header.#.property
See Bandname.property.
Height
Description The height of a control in the DataWindow.
Applies to Button, Column, Computed Field, Graph, GroupBox, OLE, Oval, Picture,
Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Height
Describe and Modify argument:
"controlname.Height { = ' value ' }"
Parameter Description
controlname The control within the DataWindow whose height you want to get
or set.
value (exp) An integer specifying the height of the control in the unit of
measure specified for the DataWindow. Value can be a quoted
DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.empname.Height
dw1.Object.empname.Height = 50
setting = dw1.Describe("empname.Height")
dw1.Modify("empname.Height=50")
Height.AutoSize
Description Whether the control’s width should be held constant and its height adjusted so
that all the data is visible. This property is for use with read-only controls and
printed reports. It should not be used with data entry fields or controls.
Applies to Column, Computed Field, Report, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Height.AutoSize
Describe and Modify argument:
"controlname.Height.AutoSize { = value }"
Parameter Description
controlname The control for which you want to get or set the AutoSize
property.
value Whether the width or height of the control will be adjusted to
display all the data. The height is limited to what can fit on the
page.
Values are:
No – Use the height defined in the painter.
Yes – Calculate the height so that all the data is visible.
Usage In the painter Select the control and set the value in the Properties view,
Position tab, Autosize Height check box.
Minimum height The height of the column, computed field, or text will never
be less than the minimum height (the height selected in the painter).
When the band has Autosize Height set to true, you should avoid using the
RowHeight DataWindow expression function to set the height of any element
in the row. Doing so can result in a logical inconsistency between the height of
the row and the height of the element. For more information, see the
RowHeight function description.
Examples string setting
setting = dw1.Object.empname.Height.AutoSize
dw1.Object.empname.Height.AutoSize = "Yes"
284 PowerBuilder
CHAPTER 3 DataWindow Object Properties
setting = dw1.Describe("empname.Height.AutoSize")
dw1.Modify("empname.Height.AutoSize=Yes")
See also Bandname.property
Help.property
Description Settings for customizing the Help topics associated with DataWindow dialog
boxes.
For more information about Help, see the ShowHelp function in the
PowerScript Reference.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Help.property
Describe and Modify argument:
"DataWindow.Help.property { = value }"
Parameter Description
property A property for specifying DataWindow Help. Help properties
and their settings are listed in the table below. The File property
must have a valid file name before the rest of the Help property
settings can become valid.
value The value to be assigned to the property. For Help properties,
value cannot be a DataWindow expression.
Usage In the painter Can be set only in code, not in the painter.
Examples string setting
setting = dw1.Object.DataWindow.Help.Command
dw1.Object.DataWindow.Help.File = "myhelp.hlp"
dw1.Object.DataWindow.Help.Command = 1
setting = dw1.Describe("DataWindow.Help.Command")
dw1.Modify("DataWindow.Help.File='myhelp.hlp'")
dw1.Modify("DataWindow.Help.Command=1")
dw1.Modify( "DataWindow.Help.TypeID.SetFilter =
'filter_topic'")
dw1.Modify("DataWindow.Help.TypeID.Retrieve.Criteria =
'criteria_topic'")
HideGrayLine
Description Shows or hides a gray line to indicate that a fixed page has been crossed when
scrolling in a DataWindow with group headers.
Applies to DataWindow control
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.HideGrayLine
286 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage This property can be set in the open event for the window in which the
DataWindow displays. Note that you cannot suppress the display of repeating
group headers.
In the painter Select the DataWindow object by deselecting all controls; then
set the value in the Properties view, General tab. This option is enabled only for
DataWindows with group headers.
Examples dw1.Object.DataWindow.HideGrayLine = yes
HideSnaked
Description Whether the control appears only once per page when you print the
DataWindow using the newspaper columns format.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, OLE, Oval,
Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.HideSnaked
Describe and Modify argument:
"controlname.HideSnaked { = ' value ' }"
Parameter Description
controlname The name of the control for which you want to get or set the
HideSnaked setting.
value (exp) Whether the control appears once or multiple times in the
printed output when the output has multiple columns (like a
newspaper).
Values are:
1 – The control will appear only once on a page.
0 – The control will appear in each column on a page.
Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, HideSnaked check box.
Examples string setting
setting = dw1.Object.graph_1.HideSnaked
dw1.Object.text_title.HideSnaked = "1"
setting = dw1.Describe("graph_1.HideSnaked")
dw1.Modify("text_title.HideSnaked=1")
Horizontal_Spread
Description The space between columns in the detail area of the DataWindow object.
Horizontal_Spread is meaningful only when type is Grid or Tabular.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Horizontal_Spread = value )
Parameter Description
value An integer specifying the space between columns in the detail
area of the DataWindow object area in the units specified for the
DataWindow
288 PowerBuilder
CHAPTER 3 DataWindow Object Properties
HorizontalScrollMaximum
Description The maximum width of the scroll box of the DataWindow’s horizontal scroll
bar. This value is set by PowerBuilder based on the layout of the DataWindow
object and the size of the DataWindow control. Use HorizontalScrollMaximum
with HorizontalScrollPosition to synchronize horizontal scrolling in multiple
DataWindow objects.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.HorizontalScrollMaximum
Describe argument:
"DataWindow.HorizontalScrollMaximum"
Examples string setting
setting =
dw1.Object.DataWindow.HorizontalScrollMaximum
setting =
dw1.Describe("DataWindow.HorizontalScrollMaximum")
HorizontalScrollMaximum2
Description The maximum width of the second scroll box when the horizontal scroll bar is
split (HorizontalScrollSplit is greater than 0). This value is set by
PowerBuilder based on the content of the DataWindow. Use
HorizontalScrollMaximum2 with HorizontalScrollPosition2 to synchronize
horizontal scrolling in multiple DataWindow objects.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.HorizontalScrollMaximum2
Describe argument:
"DataWindow.HorizontalScrollMaximum2"
Examples string setting
setting =
dw1.Object.DataWindow.HorizontalScrollMaximum2
setting =
dw1.Describe("DataWindow.HorizontalScrollMaximum2")
HorizontalScrollPosition
Description The position of the scroll box in the horizontal scroll bar. Use
HorizontalScrollMaximum with HorizontalScrollPosition to synchronize
horizontal scrolling in multiple DataWindow objects.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.HorizontalScrollPosition
Describe and Modify argument:
"DataWindow.HorizontalScrollPosition { = scrollvalue }"
Parameter Description
scrollvalue An integer specifying the position of the scroll box in the
horizontal scroll bar of the DataWindow
HorizontalScrollPosition2
Description The position of the scroll box in the second portion of the horizontal scroll bar
when the scroll bar is split (HorizontalScrollSplit is greater than 0). Use
HorizontalScrollMaximum2 with HorizontalScrollPosition2 to synchronize
horizontal scrolling in multiple DataWindow objects.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.HorizontalScrollPosition2
290 PowerBuilder
CHAPTER 3 DataWindow Object Properties
HorizontalScrollSplit
Description The position of the split in the DataWindow’s horizontal scroll bar. If
HorizontalScrollSplit is zero, the scroll bar is not split.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.HorizontalScrollSplit
Describe and Modify argument:
"DataWindow.HorizontalScrollSplit { = splitdistance }"
Parameter Description
splitdistance An integer indicating where the split will occur in the
horizontal scroll bar in a DataWindow object in the unit of
measure specified for the DataWindow object
HTextAlign
Description The way text in a button is horizontally aligned.
Applies to Button controls
Syntax PowerBuilder dot notation:
dw_control.Object.buttonname.HTextAlign
Describe and Modify argument:
"buttonname.HTextAlign { = ' value ' }"
Parameter Description
buttonname The name of the button for which you want to align text.
value An integer indicating how the button text is horizontally
aligned.
Values are:
0 – Center
1 – Left
2 – Right
Usage In the painter Select the control and set the value in the Properties view,
General tab, Horizontal Alignment option.
Examples dw1.Object.b_name.HTextAlign = "1"
setting = dw1.Describe("b_name.HTextAlign")
dw1.Modify("b_name.HTextAlign ='1'")
HTML.property
Description Settings for adding user-defined HTML syntax and hyperlinks to controls in a
Web DataWindow.
Obsolete property
HTML.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
292 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage The Link properties are typically used to create master/detail Web pages where
a link on a data item jumps to a detail DataWindow for that item. LinkArgs is
used to pass a retrieval argument identifying the particular item.
The AppendedHTML property is used to specify attributes and event actions
to add to the HTML rendered for Web DataWindow controls.
ScrollToRow emulation The ValueIsHTML property allows you to include
standalone HTML syntax or tags in the generated Web DataWindow. You can
use this feature to add horizontal rules (<HR>) and anchor tags (<A
HREF="home.htm">home</A>) to Web DataWindows. If you add
row-specific anchor tags, you can use the Modify method or DataWindow
expressions to generate conditional HTML for each row.
The HTML generator does not validate the HTML you append to or include in
controls in DataWindow objects. If the HTML is invalid, the DataWindow
might not display correctly. You must also be careful not to append an event
name that is already generated for the control as a coded client-side event.
In the painter Select the control and set the value in the Properties view,
HTML tab.
Examples // EMPID and PAGE are page parameters for the
// page server’s session object
dw1.Object.empid.HTML.Link = "empform.html"
dw1.Object.empid.HTML.LinkArgs = "EMPID = ’empid’"
dw1.Object.empid.HTML.LinkTarget = "detail_win"
dw1.Object.empid.HTML.ValueIsHTML = "true"
dw1.Object.helpicon.HTML.Link = "help.html"
dw1.Object.helpicon.LinkArgs = "PAGE = ’empform’"
setting = dw1.Describe("DataWindow.HTML.Link")
dw1.Modify("empid.HTML.Link = 'empform.html'")
HTMLDW
Description Specifies whether HTML generated for the DataWindow object provides
updates and interactivity.
Obsolete property
HTMLDW is obsolete and should not be used, because the Web DataWindow
technology is obsolete.
294 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage When HTMLDW is set to Yes, the generated HTML supports data entry and
takes advantage of browser features that enable user interaction when used
with a page server (as described for the Data.HTML property). The generated
HTML can be used to produce a page that displays a subset of retrieved rows
and can include JavaScript code requesting additional pages with other subsets
of the retrieved rows.
The resulting HTML can be used as a Web DataWindow control, which is a
cooperation between a server component, a page server, and a client Web
browser. The server component produces the HTML and the page server
incorporates it into a Web page.
The user interacts with the DataWindow in the client browser, and actions
produced by buttons in the DataWindow object are sent back to the page server.
The page server calls methods of the server component to request processing
for the data in the DataWindow object, including applying actions, updating
data, and scrolling to other subsets.
To affect the level of DataWindow features in the resulting HTML, or to
produce master/detail links between two Web DataWindow controls, see
HTMLGen.property.
DataWindow features that will not be rendered into HTML include:
• Graph, OLE, and RichText presentation styles and controls.
• Client-side expressions that include aggregate functions. Aggregate
functions cannot be evaluated in the browser. Instead, they will be
evaluated on the server and the resulting value included in the HTML.
• Resizable and movable controls.
HTMLGen.property
Description Settings that control the level of features incorporated into HTML generated
for the DataWindow.
Obsolete property
HTMLGen.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
296 PowerBuilder
CHAPTER 3 DataWindow Object Properties
298 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage Most of these properties are considered only when the HTMLDW property is
set to Yes.
Browser recognition The Browser and HTMLVersion properties are always
considered when HTML is generated, regardless of the HTMLDW setting.
Browser identification strings are sent by the client to the server in the HTTP
header. The server component can assign the HTTP_USER_AGENT value
from the HTTP header to the Browser property. If the string specifies a browser
that the DataWindow engine supports, the DataWindow will generate HTML
optimized for that browser. Browser-specific HTML is generated only for
Microsoft Internet Explorer and Netscape browsers.
300 PowerBuilder
CHAPTER 3 DataWindow Object Properties
If the browser is not recognized or not specified, then the generated HTML will
use the HTMLVersion and GenerateJavaScript properties to decide what
features to include. DataWindow HTML generation recognizes these
browsers:
Browser HTTP header string HTML features used
Netscape Mozilla/1.x ( No style sheets, no absolute positioning, no
JavaScript.
Mozilla/2.x ( JavaScript.
Mozilla/3.x ( No style sheets, no absolute positioning, no
regular expressions.
Mozilla/4.x ( Style sheets, JavaScript, regular expressions.
No absolute positioning.
Microsoft Internet Explorer Mozilla/1.22 (compatible; MSIE No style sheets, no absolute positioning, no
2.x; tab order, no JavaScript.
Mozilla/2.0 (compatible; MSIE 3.x; Style sheets, tab order, JavaScript.
No absolute positioning, no regular
expressions.
Mozilla/4.0 (compatible; MSIE 4.x, Style sheets, absolute positioning, tab order,
Mozilla/4.0 (compatible; MSIE 5.x; regular expressions.
Mozilla/4.0 (compatible; MSIE 6.x;
Opera Mozilla/3.0 (compatible; Opera 3.x; JavaScript, regular expressions.
No style sheets, no absolute positioning.
Once you generate these files, you can set the file names as values for the
CommonJSFile, DateJSFile, NumberJSFile, and/or StringJSFile properties.
When you set these properties, the methods defined in the referenced files will
not be generated with the HTML in any Web DataWindow pages that are sent
to the page server and client browser.
With JavaScript caching, you improve performance after the first Web
DataWindow page is generated—as long as the browser on the client computer
is configured to use cached files. With caching enabled, the browser loads the
JS files from the Web server into its cache, and these become available for all
the Web DataWindow pages in your application. There is no performance gain
if the browser does not find the JS files in its cache since, in this case, it reloads
the files from the Web server.
PagingMethod The PagingMethod property determines whether the control
uses the client-side script callback mechanism introduced in the .NET
Framework 2.0 to execute server-side code without posting and refreshing the
current page.
The default is to post back to the server (PostBack!).
The Callback! option uses script callbacks to retrieve the next page of XML
data. It corresponds to the Microsoft GridView control’s
EnableSortingAndPagingCallback property, but applies only to paging.
Client-side sorting is handled by another mechanism.
For the XML rendering format, the design of the Callback! option requires that
a reusable XSLT stylesheet be generated so that the browser can cache it. The
benefit from this requirement is that only the XML data for the next requested
page need be returned by the callback. This XML data is always trivial in size
(about a 1 to 20 ratio), resulting in significant bandwidth savings. This is unlike
other implementations, where the entire presentation is always regenerated and
downloaded again from every callback.
The generated XSLT stylesheet is not reusable, and therefore cannot be cached
by the browser, if the DataWindow layout is inconsistent page-to-page, or it
does not contain a complete first page of data. In these scenarios, the Callback!
option defers to PostBack! until a stylesheet can be generated that is reusable,
and can therefore be cached in the browser.
The XMLClientSide! option is only available with the XML rendering format.
It retrieves the entire XML result set and uses XSLT re-transformation of the
cached stylesheet to perform paging on the client. This option can currently be
used only if the presentation style is uniform from page to page. For example,
it cannot handle a summary band on the last page.
302 PowerBuilder
CHAPTER 3 DataWindow Object Properties
HTMLTable.property
Description Settings for the display of DataWindow data when displayed in HTML table
format. These settings simplify the transfer of data from a database to an
HTML page. They are particularly useful when used to create HTML pages
dynamically.
Obsolete property
HTMLTable.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Property for
HTMLTable Value
Border (exp) Border attribute for the HTMLTable element. The default is 1 (line around the
table).
CellPadding (exp) CellPadding attribute for the HTMLTable element. The default is 0.
CellSpacing (exp) CellSpacing attribute for the HTMLTable element. The default is 0.
GenerateCSS (exp) Controls whether the DataWindow HTMLTable property’s Table element
contains border, cellpadding, cellspacing, nowrap, and width attributes. Also controls
whether elements within the table contain CLASS references that control style sheet
use. The default is no.
304 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Property for
HTMLTable Value
NoWrap (exp) NoWrap attribute for the HTMLTable element. The default is to include this
attribute.
StyleSheet (exp) HTML cascading style sheet generated for the DataWindow.
Width Width attribute for the HTMLTable element. The default is 0.
Usage In the painter Set the value using the Properties view, HTML Table tab.
Examples dw1.Object.DataWindow.HTMLTable.Border = "2"
setting = dw1.Describe
("DataWindow.HTMLTable.StyleSheet")
dw1.Modify("DataWindow.HTMLTable.NoWrap = 'yes'")
ID
Description The number of the column or TableBlob.
Applies to Column and TableBlob controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.ID
Describe and Modify argument:
"controlname.ID"
Parameter Description
controlname The name of the column or TableBlob for which you want
the ID number
Identity
Description Whether the database is to supply the value of the column in a newly inserted
row. If so, the column is not updatable; the column is excluded from the
INSERT statement.
Not all DBMSs support the identity property. For more information see the
documentation for your DBMS.
Import.XML.Trace
Description Setting that determines whether import trace information is written to a log file.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Import.XML.Trace
Describe and Modify argument:
"DataWindow.Import.XML.Trace { = ' value ' }"
Parameter Description
value Whether trace information is written to a log file.
Values are:
• Yes – Trace information is written to a log file.
• No – Trace information is not written to a log file (default).
Usage If you want to collect trace information, this property should be set before you
call the ImportClipboard, ImportFile, or ImportString method to import data from
an XML document. The trace information is appended to the file you specify
using the Import.XML.TraceFile property. If no trace file is specified, trace
information is appended to a file named pbxmltrc.log in the current directory.
306 PowerBuilder
CHAPTER 3 DataWindow Object Properties
In the painter In the Data Import tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list, and type a
file name in the Trace File Name text box.
Examples This example specifies that trace information should be written to a file called
xmltrace.log in the C:\temp directory.
dw1.Modify("DataWindow.Import.XML.Trace = 'yes' ")
dw1.Modify("DataWindow.Import.XML.TraceFile =
'C:\temp\xmltrace.log' ")
See also Import.XML.TraceFile
Import.XML.TraceFile
Description Specifies the name and location of an import trace file.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Import.XML.TraceFile
Describe and Modify argument:
"DataWindow.Import.XML.TraceFile { = ' value ' }"
Parameter Description
value A string whose value is the name of the trace output file. If the
file does not exist, it is created.
Import.XML.UseTemplate
Description Setting that optionally controls the logical structure of the XML imported from
an XML file into a DataWindow object using the ImportFile method.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Import.XML.UseTemplate
Describe and Modify argument:
"DataWindow.Import.XML.UseTemplate { = ' value ' }"
Parameter Description
value (exp) A string specifying the name of an import template
previously saved in the DataWindow painter for the specified
DataWindow object
Usage This property should be set to specify the logical structure of the XML
imported before you call the ImportFile method to import data from an XML
document. An import template is not required if the XML document from
which data is imported corresponds to the DataWindow column definition.
If an export template for a DataWindow object exists, it can be used as an
import template. Only the mapping of column names to element attribute
names is used for import. The order of elements within the template is not
significant, because import values are located by name match and nesting
depth within the XML document. All other information in the template, such
as controls and comments, is ignored.
In the painter In the Data Import tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
a template from the Use Template list.
Examples This example sets the name of the current XML import template used in dw1
to t_import_report. If t_import_report does not exist, the current template is not
changed.
dw1.Modify("DataWindow.Import.XML.UseTemplate =
't_import_report' ")
See also Import.XML.UseTemplate
308 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Initial
Description The initial value of the column in a newly inserted row.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Initial
Describe and Modify argument:
"columnname.Initial { = ' initialvalue ' }"
Parameter Description
columnname A string containing the name of the column for which you
want to get or set the initial property.
initialvalue A string containing the initial value of the column. Special
values include:
Empty – A string of length 0
Null – No value
Spaces – All blanks
Today – Current date, time, or date and time
Ink.property
Description Properties that control the attributes of ink in an InkPicture control or a column
with the InkEdit edit style.
Applies to Column and InkPicture controls
Syntax PowerBuilder dot notation:
dw_control.Object.inkpicname.Ink.property
dw_control.Object.columnname.Ink.property
Describe and Modify argument:
"inkpicname.Ink.property { = value }"
"columnname.Ink.property { = value }"
Parameter Description
inkpicname The name of an InkPicture control.
columnname The name of a column that has the InkEdit edit style.
property A property for the InkPicture control or InkEdit column.
Properties and their settings are listed in the table below.
value The value to be assigned to the property.
310 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view, Ink or
InkPicture tab, InkAttributes section.
Examples dw1.Object.inkpic1.Ink.Antialiased = true
li_color = dw1.Describe("emp_status.Ink.Color")
See also InkEdit.property
InkPic.property
InkEdit.property
Description Properties that control the behavior of a column with the InkEdit edit style.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.InkEdit.property
Describe and Modify argument:
"columnname.InkEdit.property { = value }"
Parameter Description
columnname The name of a column that has the InkEdit edit style.
property A property for the InkEdit column. Properties and their settings
are listed in the table below.
value The value to be assigned to the property.
312 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage The following values for Factoid are available. After the Default and None
factoids, the drop-down list in the Properties view displays factoids for special
formats in alphabetical order, followed by single-character factoids and
Asian-language factoids. You can set multiple factoids by separating them with
the pipe ( | ) character.
Factoid Description
Default Returns recognizer to the default setting. For Western
languages, the default setting includes the user and system
dictionaries, various punctuation marks, and the Web and
Number factoids. For Eastern languages, the default setting
includes all characters supported by the recognizer.
None Disables all factoids, dictionaries, and the language model.
Currency Currency in pounds, dollars, euros, and yen.
Date Dates written in English; for example 8/19/2005, Aug 19,
2005, or Friday, August 19, 2005.
E-mail E-mail addresses.
Filename Windows file name paths. The name cannot include the
following characters: / : " < > |
Number Numeric values, including ordinals, decimals, separators,
common suffixes, and mathematical symbols. This factoid
includes the Currency and Time factoids.
Percent A number followed by the percent symbol.
Postal Code Postal codes as written in English, for example 01730 or
CT17 9PW.
System Dictionary Words in the system dictionary only.
Telephone Telephone numbers as written in English, for example
(555) 555 5555 or +44 1234 123456.
Time Times as written in English, for example 15:05 or 3:05 pm.
Web Various URL formats.
Factoid Description
Word List Words on the word list associated with the recognizer
context only.
Digit A single digit (0–9).
One Char A single ANSI character.
Upper Char A single uppercase character.
In the painter Select the control and set values in the Properties view, Ink tab
for properties relating to Ink, or the Edit tab for properties common to other edit
styles. The Style Type on the Edit tab must be set to InkEdit.
Examples string str
str = dw1.Object.emp_name.InkEdit.Factoid
dw1.Object.emp_name.InkEdit.Factoid = EMAIL
str = dw1.Describe("emp_bd.InkEdit.Factoid")
dw1.Modify("emp_bd.InkEdit.Factoid=EMAIL")
string str
str = dw1.Object.emp_name.InkEdit.AutoHScroll
dw1.Object.emp_name.InkEdit.Required = "no"
See also Ink.property
InkPic.property
Description Properties that control the behavior of ink in an InkPicture control.
Applies to InkPicture controls
Syntax PowerBuilder dot notation:
dw_control.Object.inkpicname.InkPic.property
Describe and Modify argument:
"inkpicname.InkPic.property { = value }"
314 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
inkpicname The name of an InkPicture control.
property A property for the InkPicture control. Properties and their
settings are listed in the table below.
value The value to be assigned to the property.
Usage In the painter Select the control and set values in the Properties view,
InkPicture tab.
Examples dw1.Object.inkpic1.InkPic.InkEnabled = true
li_color = dw1.Describe("inkpic1.InkPic.BackColor")
See also Ink.property
Invert
Description The way the colors in a Picture control are displayed, either inverted or normal.
Applies to Picture controls
Syntax PowerBuilder dot notation:
dw_control.Object.bitmapname.Invert
Describe and Modify argument:
"bitmapname.Invert { = ' number ' }"
316 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
bitmapname The name of the Picture control in the DataWindow for which
you want to invert the colors.
number (exp) A boolean number indicating whether the colors of the
picture will display inverted. Values are:
0 – (Default) No; do not invert the picture’s colors.
1 – Yes; display the picture with colors inverted.
Number can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Invert Image check box.
Examples string setting
setting = dw1.Object.bitmap_1.Invert
dw1.Object.bitmap_1.Invert="0~tIf(empstatus='A',0,1)"
setting = dw1.Describe("bitmap_1.Invert")
dw1.Modify( &
"bitmap_1.Invert='0~tIf(empstatus=~~~'A~~~',0,1)'")
JSGen.property
Description Settings that specify the physical path to which generated JavaScript is
published and the URL indicating the location of the generated JavaScript.
Obsolete property
JSGen.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Parameter Description
value (exp) PublishPath – A string that specifies the physical path of
the Web site folder to which PowerBuilder publishes the
generated JavaScript.
(exp) ResourceBase – A string that specifies the URL of the
generated JavaScript for performing client-side XSLT
transformation and instantiation of client-side data.
Usage The PublishPath folder must correspond to the URL specified in the
ResourceBase property. At runtime, after PowerBuilder generates JavaScript
to the PublishPath folder, it includes it in the final XHTML page by referencing
it with the value of the ResourceBase property in a <script> element.
In the painter In the JavaScript Generation tab in the Properties view for the
DataWindow object, select XHTML from the Format to Configure list and
specify the ResourceBase and Publish Path locations.
Examples These statements set the JSGen.ResourceBase and JSGen.PublishPath
properties:
dw1.Object.DataWindow.JSGen.ResourceBase= &
'http://www.myserver.com/xmlsource'
dw1.Object.DataWindow.JSGen.PublishPath= &
'C:\work\outputfiles\xmlsource'
Key
Description Whether the column is part of the database table’s primary key.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Key
Describe and Modify argument:
"columnname.Key { = value }"
Parameter Description
columnname The column for which you want to get or set primary key status.
value Whether the column is part of the primary key. Values are:
Yes – The column is part of the primary key
No – The column is not part of the key
Usage In the painter Set the value using the Rows menu, Update Properties.
318 PowerBuilder
CHAPTER 3 DataWindow Object Properties
KeyClause
Description An expression to be used as the key clause when retrieving the blob.
Applies to TableBlob controls
Syntax PowerBuilder dot notation:
dw_control.Object.tblobname.KeyClause
Describe and Modify argument:
"tblobname.KeyClause { = ' keyclause ' }"
Parameter Description
tblobname The name of the TableBlob for which you want to specify
a key clause.
keyclause (exp) A string that will be built into a key clause using the
substitutions provided. The key clause can be any valid
WHERE clause. Keyclause can be a quoted DataWindow
expression.
Usage In the painter Select the control and set the value in the Properties view,
Definition tab, Key Clause option.
Examples With the following setting, the value of key_col will be put in col2 when
PowerBuilder constructs the WHERE clause for the SELECTBLOB statement:
dw1.Modify(blob_1.KeyClause='Key_col = :col2'")
Label.property
Description Settings for a DataWindow whose presentation style is Label.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Label.property
Describe and Modify argument:
320 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the DataWindow object by deselecting all controls; then
set the value in the Properties view, General tab (when presentation style is
Label).
Examples string setting
setting = dw1.Object.DataWindow.Label.Sheet
dw1.Object.DataWindow.Label.Width = 250
setting = dw1.Describe("DataWindow.Label.Sheet")
dw1.Modify("DataWindow.Label.Width=250")
dw1.Modify("DataWindow.Label.Height=150")
dw1.Modify("DataWindow.Label.Columns=2")
dw1.Modify("DataWindow.Label.Width=250")
dw1.Modify("DataWindow.Label.Name='Address1'")
LabelDispAttr.fontproperty
See DispAttr.fontproperty.
LastRowOnPage
Description The last row currently visible in the DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.LastRowOnPage
Describe argument:
"DataWindow.LastRowOnPage"
Examples string setting
setting = dw1.Object.DataWindow.LastRowOnPage
setting = dw1.Describe("DataWindow.LastRowOnPage")
Left_Margin
Description The size of the left margin of the DataWindow object.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Left_Margin = value )
Parameter Description
value An integer specifying the size of the left margin in the units
specified for the DataWindow
Legend
Description The location of the legend in a Graph control in a DataWindow.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.Legend
Describe and Modify argument:
"graphname.Legend { = ' value ' }"
322 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
graphname The name of the graph control for which you want to specify the
location of the legend.
value (exp) A number indicating the location of the legend of a graph.
Values are:
0 – None
1 – Left
2 – Right
3 – Top
4 – Bottom
Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Legend option (applicable when the graph has more than one
series).
Examples string setting
setting = dw1.Object.graph_1.Legend
dw1.Object.graph_1.Legend = 2
setting = dw1.Describe("graph_1.Legend")
dw1.Modify("graph_1.Legend=2")
dw1.Modify("graph_1.Legend='2~tIf(dept_id=200,0,2)'")
Legend.DispAttr.fontproperty
See DispAttr.fontproperty.
Level
Description The grouping level.
Level is used in DataWindow syntax only for the Create method.
Applies to Group keywords
Syntax Group ( BY( colnum1, colnum2, ... ) ... Level = n ... )
LineRemove
Description (RichText presentation style only) Whether the line of text that contains the
input field for the column or computed field is removed when the input field is
empty. LineRemove is similar to the SlideUp property for controls in other
presentation styles.
Applies to Column and Computed Field controls in the RichText presentation style
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.LineRemove
Describe and Modify argument:
"controlname.LineRemove { = ' value ’ }"
Parameter Description
controlname The name of the column or computed field whose line of text
you want removed when the input field is empty.
value (exp) Whether the line of text is removed so that the rest of the
text slides up when the input field for controlname is empty.
Values are:
• Yes – The line of text will be removed when the input field
is empty.
• No – The line of text will not be removed.
Value can be a quoted DataWindow expression.
LinkUpdateOptions
Description When the OLE Object control is linked, the method for updating the link
information. If the user tries to activate the OLE object and PowerBuilder
cannot find the linked file, which breaks the link, LinkUpdateOptions controls
whether PowerBuilder automatically displays a dialog box prompting the user
to find the file. If you turn off the automatic dialog box, you can reestablish the
link by calling the LinkTo or LinkUpdateDialog in code.
Applies to OLE Object controls
324 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value in the Properties view,
Options tab, Link Update option.
Examples string ls_data
ls_data = dw1.Object.ole_report.LinkUpdateOptions
dw1.Object.ole_report.LinkUpdateOptions = 0
ls_data = dw1.Describe("ole_report.LinkUpdateOptions")
dw1.Modify("ole_report.LinkUpdateOptions='0'")
Message.Title
Description The title of the dialog box that displays when an error occurs.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Message.Title
Describe and Modify argument:
"DataWindow.Message.Title { = ' titlestring ' }"
SyntaxFromSql:
DataWindow(Message.Title = ' titlestring ' )
Parameter Description
titlestring A string containing the title for the title bar of the DataWindow
dialog box that displays when an error occurs
Moveable
Description Whether the specified control in the DataWindow can be moved at runtime.
Moveable controls should be in the DataWindow’s foreground.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, OLE, Oval,
Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Moveable
Describe and Modify argument:
"controlname.Moveable { = number }"
Parameter Description
controlname The control within the DataWindow for which you want to get
or set the Moveable property that governs whether the user can
move the control
number A boolean number specifying whether the control is moveable.
Values are:
0 – False, the control is not moveable.
1 – True, the control is moveable.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.bitmap_1.Moveable
dw1.Object.bitmap_1.Moveable = 1
setting = dw1.Describe("bitmap_1.Moveable")
dw1.Modify("bitmap_1.Moveable=1")
326 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Multiline
Description (RichText presentation style) Whether the column or computed field can
contain multiple lines. Multiline is effective only when Width.Autosize is set
to No.
Applies to Column and Computed Field controls in the RichText presentation style
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Multiline
Describe and Modify argument:
"controlname.Multiline { = ' value ' }"
Parameter Description
controlname The name of the column or computed field that will contain
multiple lines.
value (exp) Whether the input field can contain multiline lines. Values
are:
• Yes – The input field can contain multiple lines.
• No – The input field cannot contain multiple lines.
Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Input Field or Compute tab, MultiLine option.
To display the property sheet, click the input field (column or computed field)
to select it. Then right-click and select Properties from the pop-up menu.
Examples string setting
setting = dw1.Object.emp_street2.Multiline
dw1.Object.emp_street2.Multiline = true
setting = dw1.Describe("emp_street2.Multiline")
dw1.Modify("emp_street2.Multiline=yes")
Name
Description The name of the control.
Applies to Button, Column, Computed Field, Graph, GroupBox, InkPicture, Line, OLE,
Oval, Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text
controls
Usage In the painter Select the control and set the value in the Properties view,
General tab, Name option.
Examples setting = dw1.Object.#4.Name
setting = dw1.Describe("#4.Name")
Nest_Arguments
Description The values for the retrieval arguments of a nested report. The number of values
in the list should match the number of retrieval arguments defined for the
nested report.
Applies to Report controls
Syntax PowerBuilder dot notation:
dw_control.Object.reportname.Nest_Arguments
Describe and Modify argument:
"reportname.Nest_Arguments { = list } "
Parameter Description
reportname The name of the nested report for which you want to supply retrieval
argument values.
list A list of values for the retrieval arguments of the nested report. The
format for the list is:
( ("arg1") {,("arg2") {,("arg3") {,... } } } )
Usage The list is not a quoted string. It is surrounded by parentheses, and each
argument value within the list is parenthesized, surrounded with double quotes,
and separated by commas. If an argument is a literal string, use single quotes
within the double quotes.
328 PowerBuilder
CHAPTER 3 DataWindow Object Properties
When changing the values for the retrieval arguments, you must supply values
for all the retrieval arguments defined for the report. If you specify fewer or
more arguments, an error will occur at runtime when the DataWindow retrieves
its data.
To remove the report’s retrieval arguments, specify empty parentheses. If no
arguments are specified, the user is prompted for the values at runtime.
In the painter Select the control and set the value in the Properties view,
General tab.
Examples setting = dw1.Object.rpt_1.Nest_Arguments
dw1.Object.rpt_1.Nest_Arguments = &
"((~"cust_id~"),(~"'Eastern'~"))"
setting = dw1.Describe("rpt_1.Nest_Arguments")
dw1.Modify("rpt_1.Nest_Arguments" "=((~"cust_id~"),
(~"'Eastern'~"))")
dw1.Modify("rpt_1.Nest_Arguments=()")
Nested
Description Whether the DataWindow contains nested DataWindows. Values returned are
Yes or No.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Nested
Describe argument:
"DataWindow.Nested"
Examples string setting
setting = dw1.Object.DataWindow.Nested
setting = dw1.Describe("DataWindow.Nested")
Usage In the painter Select the Report control in the Composite presentation style
and set the value in the Properties view, General tab, New Page check box.
Examples string newpage_setting
newpage_setting = dw1.Object.rpt_1.NewPage
dw1.Object.rpt_1.NewPage = "Yes"
newpage_setting = dw1.Describe("rpt_1.NewPage")
dw1.Modify("rpt_1.NewPage=Yes")
NoUserPrompt
Description Determines whether message boxes are displayed to the user during
DataWindow processing.
330 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.NoUserPrompt
Describe and Modify argument:
"DataWindow.NoUserPrompt { = ' value ' }"
Parameter Description
value A string specifying whether any message box requiring user
intervention displays during DataWindow processing.
Values are:
Yes – No message box displays.
No – (Default) Message boxes display when invoked during
DataWindow processing.
Objects
Description A list of the controls in the DataWindow object. The names are returned as a
tab-separated list.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Objects
Describe argument:
"DataWindow.Objects"
Examples setting = dw1.Describe("DataWindow.Objects")
OLE.Client.property
Description Settings that some OLE server applications use to identify the client’s
information. The property values can be used to construct the title of the server
window.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.OLE.Client.property
Describe and Modify argument:
"DataWindow.OLE.Client.property { = ' value ' }"
Parameter Description
property An OLE client property, as shown in the table below.
value Values for the properties are shown in the table below. Value
cannot be a DataWindow expression.
Property for
OLE.Client Value
Class The client class for the DataWindow. The default is DataWindow.
Name The client name for the DataWindow. The default is Untitled.
Usage In the painter Select the control and set the value in the Properties view,
Definition tab.
Examples ls_data = dw1.Object.DataWindow.OLE.Client.Class
dw1.Object.DataWindow.OLE.Client.Class = "PB"
ls_data = dw1.Describe("DataWindow.OLE.Client.Class")
dw1.Modify("DataWindow.OLE.Client.Class = 'PB'")
OLEClass
Description The name of the OLE class for the TableBlob control.
Applies to TableBlob controls
Syntax PowerBuilder dot notation:
dw_control.Object.tblobname.OLEClass
Describe and Modify argument:
"tblobname.OLEClass { = ' oleclassname ' }"
332 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
tblobname The TableBlob column for which you want to get or set the class
of server application.
oleclassname (exp) A string specifying a class of an OLE server application
installed on your system. Oleclassname is quoted and can be a
DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Definition tab, OLE Class: Description option.
Examples setting = dw1.Object.blob_1.OLEClass
dw1.Object.blob_1.OLEClass = 'Word.Document'
setting = dw1.Describe("blob_1.OLEClass")
dw1.Modify("blob_1.OLEClass='Word.Document'")
OriginalSize
Description The property specifies whether the width and height of the picture are set to
their original values.
Applies to Button and Bitmap controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.OriginalSize
Describe and Modify argument:
"controlname.OriginalSize { = ‘value’} "
Parameter Description
controlname The control for which you want to set the value.
value A string specifying whether the control’s image is set to its
original size.
Values are:
True – The image displays at its original size.
False – The image height and width can be set to other
measurements.
Usage In the painter Select the control and then set the value in the Properties view,
General tab, Original Size check box.
In scripts The OriginalSize property takes a boolean value. The following
line sets the OriginalSize property to false:
dw_1.Object.p_empphoto.originalsize="false"
You should not try to change the width or height of a picture control when
OriginalSize is set to true, because it can lead to unexpected behavior.
Examples dw_1.Modify("p_empphoto.originalsize='true'")
dw_1.Modify("p_product.originalsize='false'")
dw_1.Modify("p_product.height='250'")
dw_1.Modify("p_product.width='250'")
OverlapPercent
Description The percentage of overlap for the data markers (such as bars or columns) in
different series in a graph.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.OverlapPercent
Describe and Modify argument:
"graphname.OverlapPercent { = ' integer ' }"
Parameter Description
graphname The name of the graph control in the DataWindow object for
which you want to get or set the percentage of overlap.
integer (exp) An integer specifying the percent of the width of the data
markers that will overlap. Integer can be a quoted DataWindow
expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, OverlapPercent option (applicable when a series has been
specified).
Examples string setting
setting = dw1.Object.graph_1.OverlapPercent
dw1.Object.graph_1.OverlapPercent = 25
setting = dw1.Describe("graph_1.OverlapPercent")
dw1.Modify("graph_1.OverlapPercent=25")
Pen.property
Description Settings for a line or the outline of a control.
Applies to Line, Oval, Rectangle, and RoundRectangle controls
334 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view,
General tab.
Examples string setting
setting = dw1.Object.line_1.Pen.Width
dw1.Object.line_1.Pen.Width = 10
setting = dw1.Describe("line_1.Pen.Width")
dw1.Modify("line_1.Pen.Width=10")
Perspective
Description The distance from the front of the window at which the graph appears.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.Perspective
Describe and Modify argument:
"graphname.Perspective { = ' integer ' }"
Parameter Description
graphname The name of the graph control in the DataWindow object for
which you want to get or set the perspective.
integer (exp) An integer between 1 and 100 specifying how far away the
graph appears. The larger the number, the greater the distance
and the smaller the graph appears. Integer can be a quoted
DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Perspective scroll bar (available when a 3D graph type is
selected).
Examples string setting
setting = dw1.Object.graph_1.Perspective
dw1.Object.graph_1.Perspective = 20
setting = dw1.Describe("graph_1.Perspective")
dw1.Modify("graph_1.Perspective=20")
Picture.property
Description Settings that control the background picture displayed in a DataWindow
object. Picture properties are not supported in RichText, Graph, or OLE
DataWindow presentation styles.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.datawindow.picture.property
Describe and Modify argument:
"DataWindow.picture.property { = value }"
336 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
property A property for the picture background. Properties and their
settings are listed in the table that follows. Picture properties are
used only when the datawindow.brushmode value is 6. These
properties are not available for RichText, Graph, or OLE
DataWindow objects.
value The value to be assigned to the property. For picture properties,
value can be a quoted DataWindow expression.
Usage In the painter Select the DataWindow object and set the value on the
Background tab of the Properties view.
If you save to an EMF or WMF, the properties on the Background tab are not
saved with the DataWindow.
This table explains the values for Picture.Mode:
Value Description
0 - Original Size The image is centered and not tiled to fit the DataWindow.
1 - Fit to Width The image is stretched or compressed (depending on the
aspect ratio) until its width matches that of the
DataWindow control).
2 - Fit to Height The image is stretch or compressed (depending on the the
aspect ratio) until its height matches that of the
DataWindow control.
3 - Preserve Aspect The image is stretched or compressed (without distortion)
Ratio/Max to Rect until its width or height matches that of the DataWindow
control without either of them exceeding the bounds of the
DataWindow control.
4 - Stretch to Fit The image is stretched to fill the DataWindow control,
without preserving the aspect ratio.
5 - Tile The image is tiled to fill the DataWindow. The number of
repetitions will be affected by the values of picture.scale.x,
picture.scale.y, and the picture.clip properties.
338 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Value Description
6 - Flip X The image is used to fill the DataWindow by tiling and
then it is flipped horizontally as you move from one tile to
the next in a row. The number of repetitions will be
affected by the values of picture.scale.x, picture.scale.y,
and the picture.clip properties.
7 - Flip Y The image is used to fill the DataWindow by tiling and
then it is flipped vertically as you move from one tile to the
next in a column. The number of repetitions will be
affected by the values of picture.scale.x, picture.scale.y,
and the picture.clip properties.
8 - Flip XY The image is used to fill the DataWindow by tiling and
then it is flipped horizontally as you move along the rows
and vertically as you move along the columns. The number
of repetitions will be affected by the values of
picture.scale.x, picture.scale.y, and the picture.clip
properties.
Examples dw_1.Modify("datawindow.brushmode=6")
dw_1.Object.datawindow.picture.File="MyPic.bmp"
Pie.DispAttr.fontproperty
See DispAttr.fontproperty.
PlotNullData
Description Whether a continuous line is drawn between tics in a line graph when there is
no data on the X and Y axes.
Applies to Graph controls, Graph DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.PlotNullData
Describe and Modify argument:
"graphname.PlotNullData { = ' value ' }"
Parameter Description
graphname The name of the graph control in the DataWindow object for
which you want to get or set the perspective.
Parameter Description
value A boolean number indicating whether a continuous line is
drawn between tics in a line graph when there is no data.
Values are:
0 – (False) The line is broken when there is no data.
1 – (True) The line is continuous.
Usage In the painter Set the value in the Properties view, General tab, PlotNullData
check box (available when a line graph type is selected).
Examples string setting
setting = dw1.Object.graph_1.PlotNullData
dw1.Object.graph_1.PlotNullData = 1
setting = dw1.Describe("graph_1.PlotNullData")
dw1.Modify("graph_1.PlotNullData=1")
Pointer
Description The image to be used for the mouse pointer when the pointer is over the
specified control. If you specify a pointer for the whole DataWindow,
PowerBuilder uses that pointer except when the pointer is over a control that
also has a Pointer setting.
Applies to DataWindow, Button, Column, Computed Field, Graph, GroupBox, Line,
OLE, Oval, Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text
controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Pointer
Describe and Modify argument:
"controlname.Pointer { = ' pointername ' }"
Parameter Description
controlname The name of the control in the DataWindow for which you want
to get or set the pointer. Specify DataWindow to specify the
pointer for the whole DataWindow.
pointername (exp) A string specifying a value of the Pointer enumerated
datatype or the name of a cursor file (.CUR) to be used for the
pointer. (See the SetPointer method for a list of Pointer values.)
Pointername can be a quoted DataWindow expression.
340 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value in the Properties view,
Pointer tab.
Examples setting = dw1.Object.graph_1.Pointer
dw1.Object.graph_1.Pointer = 'Cross!'
setting = dw1.Describe("graph_1.Pointer")
dw1.Modify("graph_1.Pointer = 'Cross!'")
dw1.Modify("graph_1.Pointer = 'c:\pb040\mycurs.cur'")
Print.Preview.property
Description Properties that control the print preview of a DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Print.Preview.property
Describe and Modify argument:
"DataWindow.Print.Preview.property { = value }"
SyntaxFromSql:
DataWindow ( Print.Preview.property = value )
Parameter Description
property A property for print preview. Properties and their settings are
listed in the table below.
value The value to be assigned to the property. Value cannot be a
DataWindow expression.
Property for
Print.Preview Value
Buttons Whether buttons display in print preview.
Values are:
Yes – Buttons are displayed.
No – (Default) Buttons are not displayed.
Painter: Display Buttons – Print Preview.
Property for
Print.Preview Value
Outline Whether a blue line displays to show the location of the margins.
Values are:
Yes – (Default) Margin outline is displayed.
No – Margin outline is not displayed.
Painter: Print Preview Shows Outline
Rulers Whether the rulers display when the DataWindow object displays in preview mode.
Values are:
Yes – Display the rulers.
No – (Default) Do not display the rulers.
You can view rulers in Preview mode in the DataWindow painter. With the Preview
view selected, select File>Print Preview, then File>Print Preview Rulers. However,
the setting is not used at runtime. To see rulers at runtime, set Print.Preview.Rulers in
code..
Zoom An integer indicating the zoom factor of the print preview. The default is 100%.
You can view different zoom percentages in Preview mode in the DataWindow
painter. With the Preview view selected, select File>Print Preview, then File>Print
Preview Zoom. However, the setting is not used at runtime. To change the zoom
factor at runtime, set Print.Preview.Zoom in code..
Usage In the painter Select the DataWindow by deselecting all controls; then set
values in the Properties view, Print Specifications tab.
Examples dw1.Object.DataWindow.Print.Preview.Buttons = 'Yes'
setting = dw1.Describe
("DataWindow.Print.Preview.Buttons")
dw1.Modify("DataWindow.Print.Preview.Buttons = 'Yes'")
dw1.Object.DataWindow.Print.Preview.Rulers = 'Yes'
setting = dw1.Describe
("DataWindow.Print.Preview.Rulers")
dw1.Modify("DataWindow.Print.Preview.Rulers = 'Yes'")
See also Print.property
Print.property
Description Properties that control the printing of a DataWindow.
Applies to DataWindows
342 PowerBuilder
CHAPTER 3 DataWindow Object Properties
344 PowerBuilder
CHAPTER 3 DataWindow Object Properties
346 PowerBuilder
CHAPTER 3 DataWindow Object Properties
348 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the DataWindow by deselecting all controls; then set
values in the Properties view, Print Specifications tab.
To specify a user-defined paper size, set the Paper.Size property to 255 or 256,
then set the Print.CustomPage.Length and Print.Custom.Page.Width properties
to the desired size. With Paper.Size set to 255, Length and Width are in the
units specified for the DataWindow on the General page in the Properties view.
For example:
// DataWindow Units set to 1/1000 inch
dw1.Modify("DataWindow.Print.Paper.Size=255")
//9.875 inches long
dw1.Modify("DataWindow.Print.CustomPage.Length=9875")
//7.375 inches wide
dw1.Modify("DataWindow.Print.CustomPage.Width=7375")
With Paper.Size set to 256, Length and Width are in millimeters:
dw1.Modify("DataWindow.Print.Paper.Size=256")
//25.4 centimeters long
dw1.Modify("DataWindow.Print.CustomPage.Length=254")
//19.5 centimeters wide
dw1.Modify("DataWindow.Print.CustomPage.Width=195")
Examples strData = dw1.Object.DataWindow.Print.Scale
dw1.Object.DataWindow.Print.Paper.Size = 3
strData = dw1.Describe("DataWindow.Print.Scale")
dw1.Modify("DataWindow.Print.Paper.Size = 3")
dw1.Modify("DataWindow.Print.Margin.Top=500")
dw1.Object.DataWindow.Print.Buttons = 'Yes'
setting = dw1.Describe("DataWindow.Print.Buttons")
dw1.Modify("DataWindow.Print.Buttons = 'Yes'")
See also Print.Preview.property
Printer
Description The name of the printer for printing the DataWindow as specified in the
system’s printer selection dialog box.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Printer = "printername"
Describe and Modify argument:
"DataWindow.Printer" { = printername }"
Parameter Description
printername Name of the printer you want to use for your DataWindow
Usage The printer you select for a DataWindow does not affect the PowerBuilder
default printer or the system default printer. To specify a network-connected
printer, you must use a fully specified network printer name:
dw1.Object.DataWindow.Printer = "\\net-print\pr-6"
If you specify a DataWindow printer, but the printer is not found, the
DataWindow engine does not attempt to print to a default device.
350 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Examples The following example changes the DataWindow printer (but does not affect
the system default printer device):
dw1.Modify ('DataWindow.Printer="My LaserJet 3" ')
You can display the DataWindow printer with either of the following calls:
string ls_dwprinter
ls_dwprinter = dw1.Object.DataWindow.Printer
ls_dwprinter = dw1.Describe("DataWindow.Printer")
Processing
Description The type of processing required to display the data in the selected presentation
style.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Processing
Describe argument:
"DataWindow.Processing"
Return values are:
0 – (Default) Form, group, n-up, or tabular
1 – Grid
2 – Label
3 – Graph
4 – Crosstab
5 – Composite
6 – OLE
7 – RichText
8 – TreeView
9 – TreeView with Grid
Examples string setting
setting = dw1.Object.DataWindow.Processing
setting = dw1.Describe("DataWindow.Processing")
Protect
Description The protection setting of a column. The Protect property overrides tab order
settings. When a column is protected, the user cannot edit it even if the
column’s tab order is greater than 0.
Applies to A column
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Protect
Describe and Modify argument:
"columnname.Protect { = ' integer ' }"
Parameter Description
columnname The name of the column for which you want to get or set the
protection.
integer (exp) A boolean integer specifying whether the column is
protected.
Values are:
0 – False, the column is not protected.
1 – True, the column is protected.
Integer can be a quoted DataWindow expression.
Usage A user cannot change a column value if any one of these conditions is true:
• TabSequence is 0
• Edit.DisplayOnly is Yes when the column has the Edit edit style
• Protect is 1
Only the Protect property allows you to specify a conditional expression that
protects some values in the column but not others.
In the painter Select the control and set the value in the Properties view,
General tab (using a conditional expression).
Examples string setting
setting = dw1.Object.emp_stat.Protect
dw1.Object.emp_stat.Protect=1
setting = dw1.Describe("emp_stat.Protect")
dw1.Modify("emp_stat.Protect=1")
dw1.Modify("emp_stat.Protect='1~tIf(IsRowNew(),0,1)'")
352 PowerBuilder
CHAPTER 3 DataWindow Object Properties
QueryClear
Description Removes the WHERE clause from a query. Note that the only valid setting is
Yes.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.QueryClear
Modify argument:
"DataWindow.QueryClear { = value }"
Parameter Description
value Remove the WHERE clause from a query.
Yes is the only valid value.
QueryMode
Description Whether the DataWindow is in query mode. In query mode, the user can
specify the desired data by entering WHERE criteria in one or more columns.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.QueryMode
Describe and Modify argument:
"DataWindow.QueryMode { = value }"
Parameter Description
value Whether the DataWindow is in query mode.
Values are:
Yes – Query mode is enabled.
No – Query mode is disabled.
Usage After the user specifies retrieval criteria in query mode, subsequent calls to
Retrieve can use the new criteria. To retrieve data based on user selection,
change the query mode back to No and use AcceptText to accept the user’s
specification before the next call to Retrieve.
Setting QuerySort to Yes also puts the DataWindow into query mode, changing
the QueryMode property’s value to Yes.
Query mode and secondary DataWindows When you are sharing data,
you cannot turn on query mode for a secondary DataWindow. Trying to set the
QueryMode or QuerySort properties results in an error.
Buffer manipulation and query mode A DataWindow cannot be in query
mode when you call the RowsCopy method.
Examples string setting
setting = dw1.Object.DataWindow.QueryMode
dw1.Object.DataWindow.QueryMode = "yes"
setting = dw1.Describe("DataWindow.QueryMode")
dw1.Modify("DataWindow.QueryMode=yes")
QuerySort
Description Whether the result set is sorted when the DataWindow retrieves the data
specified in query mode. When query sort is on, the user specifies sorting
criteria in the first row of the query form.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.QuerySort
Describe and Modify argument:
"DataWindow.QuerySort { = value }"
354 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value Whether the data retrieved from query mode specifications is
sorted.
Values are:
Yes – Sorting is enabled.
No – Sorting is disabled.
Usage If the DataWindow is not already in query mode, setting QuerySort to Yes also
sets QueryMode to Yes, putting the DataWindow in query mode.
When you set QuerySort to No, the DataWindow remains in query mode until
you also set QueryMode to No.
Query mode and secondary DataWindows When you are sharing data,
you cannot turn on query mode for a secondary DataWindow. Trying to set the
QueryMode or QuerySort properties results in an error.
Examples string setting
setting = dw1.Object.DataWindow.QuerySort
dw1.Object.DataWindow.QuerySort = "yes"
setting = dw1.Describe("DataWindow.QuerySort")
dw1.Modify("DataWindow.QuerySort=yes")
RadioButtons.property
Description Properties that control the appearance and behavior of a column with the
RadioButton edit style.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.RadioButtons.property
Describe and Modify argument:
"columnname.RadioButtons.property { = value }"
Parameter Description
columnname The name of the column that has the RadioButton edit style.
property A property for the RadioButton column. Properties and their
settings are listed in the table below.
value The value to be assigned to the property. For RadioButton
properties, value cannot be a DataWindow expression.
Property for
RadioButtons Value
3D or ThreeD Whether the radio buttons are 3D. Values are:
Yes – Make the buttons 3D.
No – Do not make the buttons 3D.
Painter: 3D Look option.
When using dot notation, use the term ThreeD instead of 3D.
Columns An integer constant specifying the number of columns of radio buttons.
Painter: Columns Across option.
LeftText Whether the text labels for the radio buttons are on the left side.
Values are:
Yes – The text is on the left of the radio buttons.
No – The text is on the right of the radio buttons.
Painter: Left Text option.
Scale Whether the circle is scaled to the size of the font. Scale has an effect only when 3D
is No.
Values are:
Yes – Scale the circles.
No – Do not scale the circles.
Painter: Scale Circles option.
Usage In the painter Select the control and set the value in the Properties view, Edit
tabwhen Style Type is RadioButtons.
Examples setting = dw1.Describe("empg.RadioButtons.LeftText")
dw1.Modify("emp_gender.RadioButtons.LeftText=no")
dw1.Modify("emp_gender.RadioButtons.3D=Yes")
dw1.Modify("emp_gender.RadioButtons.Columns=2")
string setting
setting = &
dw1.Object.emp_gender.RadioButtons.LeftText
dw1.Object.emp_gender.RadioButtons.LeftText = "no"
Range
Description The rows in the DataWindow used in the graph or OLE Object control. Range
can be all rows, the rows on the current page, a group that you have defined for
the DataWindow, or the current row (OLE Object controls only).
356 PowerBuilder
CHAPTER 3 DataWindow Object Properties
ReadOnly
Description Whether the DataWindow is read-only.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.ReadOnly
Describe and Modify argument:
"DataWindow.ReadOnly { = value }"
Parameter Description
value Whether the DataWindow is read-only.
Values are:
Yes – Make the DataWindow read-only.
No – (Default) Do not make the DataWindow read-only.
Render3D
Description Whether the GraphType is rendered in the DirectX 3D style.
Applies to Graph controls and Graph DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.Render3D
Describe and Modify argument:
"graphname.Render3D { = ' boolean ' }
Parameter Description
graphname The graph control for which you want to get or change the type.
Graph types that can use the new 3D rendering style are:
3 – Bar 3D 15 – Area3D
8 – Col3D 16 – Line3D
17 – Pie3D
boolean 0 = Original 3D style
1 = New 3D rendering style
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Examples The following statement sets a graph control to the DirectX 3D style.
gr_1.Render3D=true
The following statement sets a DataWindow in the graph presentation style to
the DirectX 3D style.
358 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw_1.Object.gr_1.Render3D=true
ReplaceTabWithSpace
Description Whether tab characters embedded in the data for a DataWindow display as
square boxes when the row is not the current row.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.ReplaceTabWithSpace
Describe and Modify argument:
"DataWindow.ReplaceTabWithSpace { = value }"
Parameter Description
value Whether tab characters embedded in the data for a DataWindow
are replaced with spaces.
Values are:
Yes – Replace each tab character with four spaces.
No – (Default) Do not replace tab characters.
Report
Description Whether the DataWindow is a read-only report.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Report = value )
Parameter Description
value Whether the DataWindow is a read-only report, similar to a
DataWindow created in the Report painter.
Values are:
Yes – The DataWindow is a read-only report.
No – The DataWindow is not read-only.
ResetPageCount
Description Specifies that a change in the value of the group column causes the page count
to begin again at 0.
Applies to Group keywords
Syntax SyntaxFromSql:
Group (col1 {col2 ...} ... ResetPageCount )
Examples SQLCA.SyntaxFromSQL(sql_syntax, &
"Style(Type=Group) " + &
"Group(#3 NewPage ResetPageCount)", &
errorvar)
Resizeable
Description Whether the user can resize the specified control.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, OLE, Oval,
Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Resizeable
Describe and Modify argument:
"controlname.Resizeable { = value }"
Parameter Description
controlname The control within the DataWindow whose Resizeable setting
you want to get or set.
360 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value A boolean number indicating whether controlname can be
resized.
Values are:
0 – (False) The control cannot be resized.
1 – (True) The control can be resized.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
When you make the control resizable, set the Border property to the resizable
border so the user knows it is resizable.
Examples string setting
setting = dw1.Object.graph_1.Resizeable
dw1.Object.graph_1.Resizeable = 1
setting = dw1.Describe("graph_1.Resizeable")
dw1.Modify("graph_1.Resizeable=1")
dw1.Modify("bitmap_1.Resizeable=0")
Retrieve
Description The SQL statement for the DataWindow.
Retrieve is set in DataWindow syntax only for the Create method.
Applies to Table keywords
Syntax Table ( ... Retrieve = selectstatement ... )
Retrieve.AsNeeded
Description Whether rows will be retrieved only as needed from the database. After the
application calls the Retrieve method to get enough rows to fill the visible
portion of the DataWindow, additional rows are “needed” when the user scrolls
down to view rows that have not been viewed yet.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Retrieve.AsNeeded
Describe and Modify argument:
RichEdit.property
Description Settings that affect the appearance and behavior of columns whose edit style is
RichText.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.RichEdit.property
Describe and Modify argument:
"columnname.RichEdit.property { = value }"
SyntaxFromSql:
Column ( RichEdit.property = value )
Parameter Description
columnname The column with the RichText edit style for which you want to
get or set property values. You can specify the column name or
a pound sign (#) and the column number.
property A property for the column’s Edit style. Properties and their
settings are listed in the table below. The table identifies the
properties you can use with SyntaxFromSql.
value The value to be assigned to the property.
362 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view, Edit
tab, when Style Type is RichText.
Examples string setting
setting = &
dw_1.Object.rte_description.RichEdit.AutoSelect
dw_1.Object.rte_description.RichEdit.VScrollBar="yes"
setting = dw_1.Describe(&
"rte_description.RichEdit.VScrollBar")
dw_1.Modify("rte_description.RichEdit.Required=no")
RichText.property
Description Properties for the DataWindow RichText presentation style.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.RichText.property
Describe and Modify argument:
"DataWindow.RichText.property { = value }"
Parameter Description
property A property for the DataWindow RichText presentation style.
Properties and appropriate values are listed in the table below.
value A value to be assigned to the property.
364 PowerBuilder
CHAPTER 3 DataWindow Object Properties
366 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the DataWindow by deselecting all controls; then set
the value in the Properties view, General tab, when the presentation style is
RichText.
Examples string setting
setting = &
dw1.Object.DataWindow.RichText.DisplayOnly
dw1.Object.DataWindow.RichText.PopMenu = "yes"
setting = &
dw1.Describe("DataWindow.RichText.DisplayOnly")
dw1.Modify("DataWindow.RichText.PopMenu = 'yes'")
RightToLeft
Description The RightToLeft property is used to set controls to read right-to-left. This
property is for use when you are developing an application for a language that
has right-to-left reading order.
Applies to Column
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.RightToLeft
Describe and Modify argument:
“controlname.RightToLeft { = integer }”
Parameter Description
controlname The name of the control for which you want to get or set the
right-to-left property.
integer Whether the control is set to right-to-left:
• 0 – (False) The control is not set to right-to-left
• 1 – (True) The control is set to right-to-left
Usage In the painter Select the control and set the value in the Properties view,
General tab.
Examples dw_1.Object.fname.RightToLeft=1
Rotation
Description The degree of left-to-right rotation for the graph control within the
DataWindow when the graph has a 3D type.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.Rotation
Describe and Modify argument:
"graphname.Rotation = { ' integer ' }"
Parameter Description
graphname The name of the Graph control for which you want to get or set
the rotation.
integer (exp) The degree of rotation for the graph. Effective values
range from -90 to 90. Integer can be a quoted DataWindow
expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Rotation scroll bar (enabled when a 3D graph type is selected).
Examples string setting
setting = dw1.Object.graph_1.Rotation
dw1.Object.graph_1.Rotation=25
setting = dw1.Describe("graph_1.Rotation")
dw1.Modify("graph_1.Rotation=25")
dw1.Modify("graph_1.Rotation='1~tHour(Now())'")
368 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Row.Resize
Description Whether the user can use the mouse to change the height of the rows in the
detail area of the DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Row.Resize
Describe and Modify argument:
"DataWindow.Row.Resize { = value } "
Parameter Description
value Whether the user can resize the rows in the detail area. Values are:
• 1 – Yes, the user can resize the rows.
• 0 – No, the user cannot resize the rows.
Usage In the painter Select the DataWindow by deselecting all controls; then set
the value in the Properties view, General tab, Row Resize option (available
when the presentation style is Grid or Crosstab).
Examples string setting
setting = dw1.Object.DataWindow.Row.Resize
dw1.Object.DataWindow.Row.Resize = 0
setting = dw1.Describe("DataWindow.Row.Resize")
dw1.Modify("DataWindow.Row.Resize=0")
Rows_Per_Detail
Description The number of rows in the detail area of an n-up DataWindow object. This
property should be 1 unless the Type property for the Style keyword is Tabular.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Rows_Per_Detail
Describe argument:
"DataWindow.Rows_Per_Detail"
SyntaxFromSql:
DataWindow ( ... Rows_Per_Detail = n ... )
Parameter Description
n A long specifying the number of rows in each column
Selected
Description A list of selected controls within the DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Selected
Describe and Modify argument:
"DataWindow.Selected = ' list ' "
Parameter Description
list A list of the controls you want to select. In the list you designate a
group of controls by specifying a range of row numbers and a range
of controls in the format:
startrow/endrow/startcontrol/endcontrol
To specify more than one group, separate each group with a
semicolon:
startrow1/endrow1/startobj1/endobj1;startrow2/endrow2/starto
bj2/endobj2;...
Do not include spaces in the string. You must use column names, not
column numbers.
370 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Selected.Data
Description A list describing the selected data in the DataWindow. Each column’s data is
separated by a tab and each row is on a separate line.
Applies to DataWindows (Crosstab and Grid presentation styles only)
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Selected.Data
Describe argument:
"DataWindow.Selected.Data"
Examples string setting
setting = dw1.Object.DataWindow.Selected.Data
setting = dw1.Describe("DataWindow.Selected.Data")
Selected.Mouse
Description Whether the user can use the mouse to select columns.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Selected.Mouse
Describe and Modify argument:
"DataWindow.Selected.Mouse { = value }"
Parameter Description
value Whether the user can use the mouse to select columns.
Values are:
• Yes – The mouse can be used.
• No – The mouse cannot be used.
Usage In the painter Select the DataWindow by deselecting all controls; then set
the value in the Properties view, General tab, Mouse Selection option
(available when the presentation style is Grid or Crosstab).
Examples string setting
setting = dw1.Object.DataWindow.Selected.Mouse
dw1.Object.DataWindow.Selected.Mouse = "Yes"
setting = dw1.Describe("DataWindow.Selected.Mouse")
dw1.Modify("DataWindow.Selected.Mouse = Yes")
Series
See Axis, Axis.property, and DispAttr.fontproperty.
ShadeColor
Description The color used for shading the back edge of the series markers when the
graph’s type is 3D. ShadeColor has no effect unless Series.ShadeBackEdge is
1 (Yes). If ShadeBackEdge is 0, the axis plane is the same color as the
background color of the graph.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.ShadeColor
Describe and Modify argument:
"graphname.ShadeColor { = ' long ' }"
Parameter Description
graphname The Graph control in the DataWindow for which you want to
shade color.
long (exp) A long number converted to a string specifying the color
of the shading for axes of a 3D graph.
You can use the RGB function in a DataWindow expression or
in PowerScript to calculate the desired color value. However, be
sure to convert the return value of the PowerScript function to
a string.
Long can be a quoted DataWindow expression.
Usage To set the shade color for individual series markers, such as bars or pie slices,
use the method SetDataStyle.
In the painter Select the control and set the value in the Properties view,
General tab, Shade Color option.
Examples string setting
setting = dw1.Object.graph_1.ShadeColor
dw1.Object.graph_1.ShadeColor = 16600000
setting = dw1.Describe("graph_1.ShadeColor")
dw1.Modify("graph_1.ShadeColor=16600000")
dw1.Modify("graph_1.ShadeColor=String(RGB(90,90,90)))
dw1.Modify("graph_1.ShadeColor='0~t" &
372 PowerBuilder
CHAPTER 3 DataWindow Object Properties
+ If(salary>50000," &
+ String(RGB(100,90,90)) &
+ "," &
+ String(RGB(90,90,100)) &
+ ")'")
ShowBackColorOnXP
Description Whether the background color that you select for a button displays on
Windows XP.
Applies to DataWindow objects
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.ShowBackColorOnXP
Describe and Modify argument:
"DataWindow.ShowBackColorOnXP{ = value }"
Parameter Description
value A boolean value that indicates whether the background color
that you select for a button displays on Windows XP.
Values are:
Yes – Display the background color.
No – Do not display the background color (default).
ShowBackground
Description Whether the background settings of the report display.
Applies to Report controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.ShowBackground
Describe and Modify argument:
"controlname.ShowBackground{ = ' value ' }"
Parameter Description
value A boolean value that indicates whether the report’s background
color settings display.
Values are:
Yes – Display the background settings.
No – Do not display the background settings (default).
Usage In the painter Select the control and set the value in the Properties view,
General tab, Show Background check box.
Examples dw1.Modify("r_orders_nested.ShowBackground = yes")
dw1.Object.DataWindow.ShowBackground = "yes"
ShowDefinition
Description Whether the DataWindow definition will display. The DataWindow will
display the column names instead of data.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.ShowDefinition
Describe and Modify argument:
"DataWindow.ShowDefinition { = ' value ' }"
Parameter Description
value (exp) Whether the column names will display.
Values are:
• Yes – Display the column names.
• No – Display the data, if any.
Value can be a quoted DataWindow expression.
374 PowerBuilder
CHAPTER 3 DataWindow Object Properties
SizeToDisplay
Description Whether the graph should be sized automatically to the display area.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.SizeToDisplay
Describe and Modify argument:
"graphname.SizeToDisplay { = ' value ' }"
Parameter Description
graphname The graph control in the DataWindow for which you want to get
or set adjustability.
value (exp) A boolean number specifying whether to adjust the size of
the graph to the display.
Values are:
• 0 – False, do not adjust the size of the graph.
• 1 – True, adjust the size of the graph.
Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Size To Display option.
Examples string setting
setting = dw1.Object.graph_1.SizeToDisplay
dw1.Object.graph_1.SizeToDisplay = 0
setting = dw1.Describe("graph_1.SizeToDisplay")
dw1.Modify("graph_1.SizeToDisplay=0")
SlideLeft
Description Whether the control moves to the left when other controls to the left leave
empty space available. This property is for use with read-only controls and
printed reports. It should not be used with data entry fields or controls.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, Oval, Picture,
Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.SlideLeft
Describe and Modify argument:
Usage In the painter Select the control and set the value in the Properties view,
Position tab, Slide Left check box.
Examples string setting
setting = dw1.Object.graph_1.SlideLeft
dw1.Object.emp_lname.SlideLeft = "yes"
setting = dw1.Describe("graph_1.SlideLeft")
dw1.Modify("emp_lname.SlideLeft=yes")
SlideUp
Description Whether the control moves up when other controls above it leave empty space
available. This property is for use with read-only controls and printed reports.
It should not be used with data entry fields or controls.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, Oval, Picture,
Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.SlideUp
Describe and Modify argument:
"controlname.SlideUp { = ' value ' }"
376 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
controlname The name of the control for which you want to get or set the
Slide setting.
value (exp) How the control slides up when there is empty space
above it.
Values are:
• AllAbove – Slide the control up if all the controls in the row
above it are empty.
• DirectlyAbove – Slide the column or control up if the
controls directly above it are empty.
• No – The control will not slide up.
Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab, Slide Up check box.
Examples string setting
setting = dw1.Object.graph_1.SlideUp
dw1.Object.emp_lname.SlideUp = "no"
setting = dw1.Describe("graph_1.SlideUp")
dw1.Modify("emp_lname.SlideUp=no")
Sort
Description Sort criteria for a newly created DataWindow. To specify sorting for existing
DataWindows, see the SetSort and Sort methods.
Applies to Table keywords in DataWindow syntax
Syntax DataWindow syntax for Create method:
Table ( ... Sort = stringexpression ... )
Parameter Description
stringexpression A string whose value represents valid sort criteria. See the
SetSort method for the format for sort criteria. If the criteria
string is null, PowerBuilder prompts for a sort specification
when it displays the DataWindow.
Spacing
Description The gap between categories in a graph.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Spacing option.
Examples string setting
setting = dw1.Object.graph_1.Spacing
dw1.Object.graph_1.Spacing = 120
setting = dw1.Describe("graph_1.Spacing")
dw1.Modify("graph_1.Spacing=120")
Sparse
Description The names of repeating columns that will be suppressed in the DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Sparse
Describe and Modify argument:
"DataWindow.Sparse { = ' list ' }"
Parameter Description
list (exp) A tab-separated list of column names to be suppressed.
List can be a quoted DataWindow expression.
378 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Set the value using Rows>Suppress Repeating Values.
Examples string setting
setting = dw1.Object.DataWindow.Sparse
dw1.Object.DataWindow.Sparse = 'col1~tcol2'
setting = dw1.Describe("DataWindow.Sparse")
dw1.Modify("DataWindow.Sparse='col1~tcol2'")
Storage
Description The amount of virtual storage in bytes that has been allocated for the
DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Storage
Describe argument:
"DataWindow.Storage"
Usage Canceling a query that uses too much storage You can check this
property in the script for the RetrieveRow event in the DataWindow control
and cancel a query if it is consuming too much storage.
Examples string setting
setting = dw1.Object.DataWindow.Storage
setting = dw1.Describe("DataWindow.Storage")
IF Long(setting) > 50000 THEN RETURN 1
StoragePageSize
Description The default page size for DataWindow storage.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.StoragePageSize
Describe and Modify argument:
"DataWindow.StoragePageSize { = ' size ' }"
Parameter Description
size Two values are provided to enable the DataWindow to use the
available virtual memory most efficiently in the current
environment:
• LARGE (Recommended)
• MEDIUM
Usage Set this property to avoid out of memory errors when performing large retrieve,
import, or RowsCopy operations. The property must be set before the operation
is invoked.
Examples dw1.Modify("datawindow.storagepagesize='LARGE'")
dw1.object.datawindow.storagepagesize='large'
Summary.property
See Bandname.property.
SuppressEventProcessing
Description Whether the ButtonClicked or ButtonClicking event is fired for this particular
button.
Applies to Button controls
Syntax PowerBuilder dot notation:
dw_control.Object.buttonname.SuppressEventProcessing
Describe and Modify argument:
"buttonname.SuppressEventProcessing { = ' value ' }"
Parameter Description
buttonname The name of the button control for which you want to suppress
event processing.
value Whether event processing is to occur.
Values are:
Yes – The event should not be fired.
No – The event should be fired (default).
Usage In the painter Select the control and set the value in the Properties view,
General tab.
380 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Syntax
Description The complete syntax for the DataWindow.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Syntax
Describe argument:
"DataWindow.Syntax"
Examples setting = dw1.Object.DataWindow.Syntax
setting = dw1.Describe("DataWindow.Syntax")
Syntax.Data
Description The data in the DataWindow object described in parse format (the format
required by the DataWindow parser).
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Syntax.Data
Describe argument:
"DataWindow.Syntax.Data"
Usage Use this property with the Syntax property to obtain the description of the
DataWindow object and the data. Using this information, you can create a
syntax file that represents both the structure and data of a DataWindow at an
instant in time. You can then use the syntax file as a DropDownDataWindow
containing redefined data at a single location or to mail this as a text object.
Syntax.Modified
Description Whether the DataWindow syntax has been modified by a function call or user
intervention. Calling the Modify, SetSort, or SetFilter method or changing the
size of the DataWindow grid automatically sets Syntax.Modified to Yes.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Syntax.Modified
Describe and Modify argument:
"DataWindow.Syntax.Modified { = value }"
Parameter Description
value Whether the DataWindow syntax has been modified.
Values are:
• Yes – DataWindow syntax has been modified.
• No – DataWindow has not been modified.
Usage Use this property in Modify to set Syntax.Modified to No after you cause a
change in the syntax that does not affect the user (such as setting preview on).
Examples string setting
setting = dw1.Object.DataWindow.Syntax.Modified
dw1.Object.DataWindow.Syntax.Modified = "No"
setting = dw1.Describe("DataWindow.Syntax.Modified")
dw1.Modify("DataWindow.Syntax.Modified=No")
382 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Caution
When you use this property to redefine the result set, you must redefine the
table section in its entirety.
You can call the GetItem and SetItem methods to access columns added using
this property, but the columns do not display in the DataWindow unless you
call Modify("create column(...)") to add them.
To redefine your table section:
1 Export your DataWindow object to a DOS file.
2 Copy only the table section into your script.
3 Modify the table section to meet your needs.
4 Put the new table definition into a string variable. Change existing double
quotation marks (") in the string to single quotation marks (') and change
the tilde quotation marks to tilde tilde single quotation marks (~~').
5 Call Modify. Modifying the table section of your DataWindow causes the
DataWindow to be reset.
6 (Optionally) Call Modify to add the column to the DataWindow display.
Usage In the painter Select the control and set the value in the Properties view,
Definition tab, Table option. For InkPicture controls, the table contains a large
binary column to store ink overlay data and a large binary column to hold a
background image for the InkPicture control. For TableBlob controls, the table
contains the large binary database object you want to insert into the
DataWindow.
Examples setting = dw1.Object.inkpic_1.Table
dw1.Object.inkpic_1.Table = "inkpictable"
setting = dw1.Describe("inkpic_1.Table")
dw1.Modify("inkpic_1.Table='inkpictable'")
setting = dw1.Object.blob_1.Table
dw1.Object.blob_1.Table = "emp_pictures"
setting = dw1.Describe("blob_1.Table")
dw1.Modify("blob_1.Table='emp_pictures'")
Table.property
Description Properties for the DataWindow’s DBMS connection.
You can also specify stored procedures for update activities. For information,
see Table.sqlaction.property.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Table.property
Describe and Modify argument:
"DataWindow.Table.property { = value }"
Parameter Description
property A property for the DataWindow’s DBMS connection.
Properties and appropriate values are listed in the table below.
value The value to be assigned to the property.
384 PowerBuilder
CHAPTER 3 DataWindow Object Properties
386 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Caution
When there are multiple rows in a DataWindow object and the user switches keys or
rows, updating in place might fail due to DBMS duplicate restrictions.
Table.sqlaction.property
Description The way data is updated in the database. When the Update method is executed,
it can send UPDATE, INSERT, and DELETE SQL statements to the DBMS. You
can specify that a stored procedure be used instead of the default SQL
statement for each type of data modification.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Table.sqlaction.property
Describe and Modify argument:
"DataWindow.Table.sqlaction.property { = value }"
Parameter Description
sqlaction The SQL statement that would ordinarily be executed as part of
a database update.
Values are:
• UPDATE
• INSERT
• DELETE
property A property for sqlaction. Properties and appropriate values are
listed in the table below.
value The value to be assigned to the property.
388 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Keyword for
valuetype Description
COLUMN The argument value will be taken from the table and column
named in valuesrc. Valuesrc has the form:
"tablename.column"
For COLUMN, you must also specify whether the data is the new
or original column value. Values for datasrc are:
• NEW The new column value that is being sent to the
database.
• ORIG The value that the DataWindow originally read from
the database.
You can also specify the type of stored procedure parameter.
Values for paramtype are:
• IN (Default) An input parameter for the procedure.
• OUT An output parameter for the procedure. The
DataWindow will assign the resulting value to the current row
and column (usually used for identity and timestamp columns).
• INOUT An input and output parameter.
A sample string for providing a column argument is:
("empid", COLUMN=("employee.empid", ORIG,
IN))
COMPUTE The computed field named in valuesrc is the source of the value
passed to the stored procedure.
A sample string for providing a computed field argument is:
("newsalary", COMPUTE=("salary_calc"))
EXPRESSION The expression specified in valuesrc is evaluated and passed to the
stored procedure.
A sample string for providing an expression argument is:
("dept_name",
EXPRESSION=("LookUpDisplay(dept_id)"))
UNUSED No value is passed to the stored procedure.
Usage In the painter Set the values using Rows>Stored Procedure Update. Select
the tab page for the SQL command you want to associate with a stored
procedure.
TabSequence
Description The number assigned to the specified control in the DataWindow’s tab order.
Applies to Button, Column, Computed Field, Graph, OLE Object, OLE Database Blob,
Picture, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.TabSequence
Describe and Modify argument:
"columnname.TabSequence { = number }"
Parameter Description
columnname The name of the column whose tab order you want to get or set.
number A number from 0 to 32000 specifying the position of the
column in the tab order. A value of 0 takes the column out of the
tab order and makes it read-only.
390 PowerBuilder
CHAPTER 3 DataWindow Object Properties
setting = dw1.Describe("emp_name.TabSequence")
dw1.Modify("emp_name.TabSequence = 10")
Tag
Description The tag value of the specified control. The tag value can be any text you see fit
to use in your application.
Applies to Button, Column, Computed Field, Graph, GroupBox, Oval, Picture, Rectangle,
Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Tag
Describe and Modify argument:
"controlname.Tag { = ' string ' }"
Parameter Description
controlname The name of a control in the DataWindow.
string (exp) A string specifying the tag for controlname. String is quoted
and can be a DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Tag option.
Examples setting = dw1.Object.blob_1.Tag
dw1.Object.graph_1.Tag = 'Graph of results'
setting = dw1.Describe("blob_1.Tag")
dw1.Modify("graph_1.Tag = 'Graph of results'")
Target
Description The columns and expressions whose data is transferred from the DataWindow
to the OLE object.
Applies to OLE Object controls
Syntax PowerBuilder dot notation:
dw_control.Object.oleobjectname.Target
Describe and Modify argument:
"oleobjectname.Target { = ' columnlist ' }"
Parameter Description
oleobjectname The name of the OLE Object control for which you want to get or
set the data to be transferred.
columnlist (exp) A list of the columns or expressions whose data is
transferred to the OLE object. If there is more than one, separate
them with commas. Columnlist can be a quoted DataWindow
expression.
Usage GroupBy and Range also affect the data that is transferred to the OLE object.
In the painter Select the control and set the value in the Properties view, Data
tab, Target Data option.
Examples setting = dw1.Object.ole_1.Target
dw1.Object.ole_1.Target = 'lname, Len(companyname)'
setting = dw1.Describe("ole_1.Target")
dw1.Modify("ole_1.Target = 'lname, Len(companyname)'")
Template
Description The name of a file that will be used to start the application in OLE.
Applies to TableBlob controls
Syntax PowerBuilder dot notation:
dw_control.Object.tblobname.Template
Describe and Modify argument:
"tblobname.Template { = ' string ' }"
Parameter Description
tblobname The name of a TableBlob control in the DataWindow.
string (exp) A string whose value is the file name of an application that
is to be the OLE template. String is quoted and can be a
DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Definition tab, File Template option.
Examples setting = dw1.Object.blob_1.Template
dw1.Object.blob_1.Template='Excel.xls'
setting = dw1.Describe("blob_1.Template")
dw1.Modify("blob_1.Template='Excel.xls'")
392 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Text
Description The text of the specified control.
Applies to Button, GroupBox, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.textname.Text
Describe and Modify argument:
"textname.Text { = ' string ' }"
Parameter Description
textname The name of a control in the DataWindow.
string (exp) A string specifying the text for textname. To specify an
accelerator key in the text, include an ampersand before the
desired letter. The letter will display underlined. String is
quoted and can be a DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab, Text option.
Examples setting = dw1.Object.text_1.Text
dw1.Object.text_1.Text = "Employee &Name"
setting = dw1.Describe("text_1.Text")
dw1.Modify("text_1.Text='Employee &Name'")
Timer_Interval
Description The number of milliseconds between the internal timer events. When you use
time in a DataWindow, an internal timer event is triggered at the interval
specified by Timer_Interval. This determines how often time fields are
updated.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Timer_Interval
Describe and Modify argument:
"DataWindow.Timer_Interval { = number }"
SyntaxFromSql:
DataWindow ( Timer_Interval = number )
Parameter Description
number An integer specifying the interval between timer events in
milliseconds. The default is 60,000 milliseconds or one minute.
The maximum value is 65,535 milliseconds.
Usage When a computed field uses Now as its expression value, it refreshes the
displayed value every time the timer interval period elapses.
In the painter Select the DataWindow by deselecting all controls; then set
the value in the Properties view, General tab, Timer Interval option.
Examples string setting
setting = dw1.Object.DataWindow.Timer_Interval
dw1.Object.DataWindow.Timer_Interval = 10000
setting = dw1.Describe("DataWindow.Timer_Interval")
dw1.Modify("DataWindow.Timer_Interval=10000")
Title
Description The title of the graph.
Applies to Graph controls
Syntax PowerBuilder dot notation:
dw_control.Object.graphname.Title
Describe and Modify argument:
"graphname.Title { = ' titlestring ' }"
Parameter Description
graphname In the DataWindow object, the name of the Graph control for
which you want to get or set the title
titlestring A string specifying the graph’s title
Usage In the painter Select the control and set the value in the Properties view,
General tab, Title option.
The default expression for the Title.DispAttr.DisplayExpression property is
"title", which refers to the value of the Title property. The display expression
can combine the fixed text of the Title property with other text, functions, and
operators. If the expression for Title.DispAttr.DisplayExpression does not
include the Title property, then the value of the Title property will be ignored.
For an example, see DispAttr.fontproperty.
394 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Title.DispAttr.fontproperty
See DispAttr.fontproperty.
Tooltip.property
Description Settings for tooltips for a column or control.
Applies to Button, Column, Computed Field, Graph, GroupBox, InkPicture, Line, OLE,
Blob OLE, Oval, Picture, Rectangle, Report, RoundRectangle, and Text
controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Tooltip.property
Describe and Modify argument:
"controlname.Tooltip.property { = ' value ' }"
SyntaxFromSql:
Column ( Tooltip.property = value )
Text ( Tooltip.property = value )
Parameter Description
controlname The control whose Tooltip properties you want to get or set.
When generating DataWindow syntax with SyntaxFromSql, the
Tooltip settings apply to all columns or all text controls.
property A property that applies to the tooltip of a control, as listed in the
Property table below.
value Values for the properties are shown below. Value can be a quoted
DataWindow expression.
Usage In the painter Select the control and set the value on the Tooltip tab of the
Properties view.
Not available for columns or controls in RichText, Graph, or OLE
DataWindow objects. If you want to add a tooltip to an InkPicture in a
DataWindow, that InkPicture must not be enabled.
Examples dw_1.Object.oval_1.Tooltip.Color = RGB(255, 0, 128)
ls_data = dw_1.Describe("oval_1.Tooltip.Color")
dw_1.Modify("emp_name.Tooltip.Color='11665407'")
SQLCA.SyntaxFromSQL(sql_syntax, &
"Style(...) Column(Tooltip.Delay.Visible=15 ...) &
...", ls_Errors)
396 PowerBuilder
CHAPTER 3 DataWindow Object Properties
SQLCA.SyntaxFromSQL(sql_syntax, &
"Style(...) Column(Tooltip.TextColor=11665407 ...)"&
, ls_Errors)
Trail_Footer
Description Whether the footer of a nested report is displayed at the end of the report or at
the bottom of the page. Trail_Footer applies only to reports in a composite
DataWindow. Setting Trail_Footer to No forces controls following the report
onto a new page.
Applies to Report controls
Syntax PowerBuilder dot notation:
dw_control.Object.reportname.Trail_Footer
Describe and Modify argument:
"reportname.Trail_Footer { = value }"
Parameter Description
reportname The name of the report control for which you want to get or set
Trail_Footer.
value Whether the report’s footer trails the last line of the report or
appears at the bottom of the page.
Values are:
Yes – The footer appears right after the last line of data in the
report.
No – The footer appears at the bottom of the page, forcing
any data following the report onto the following page.
Trailer.#.property
See Bandname.property.
Usage In the painter Select the control and set the value in the Font tab of the
Properties view.
398 PowerBuilder
CHAPTER 3 DataWindow Object Properties
dw_control.Object.controlname.Transparency
Describe and Modify argument:
"controlname.Transparency { = ' value ' }"
Parameter Description
controlname The name of the picture control in the DataWindow for which
you want to specify the percentage transparency.
value (exp) An integer in the range 0 to 100, where 0 means that the
picture is opaque and 100 that it is completely transparent.
Usage In the painter Select the control and set the value in the General tab of the
Properties view.
Examples dw_1.Object.p_1.Transparency = 50
Usage In the painter Select the DataWindow object and set the value on the
Background tab of the Properties view.
If you save to an EMF or WMF, the properties on the Background tab are not
saved with the DataWindow.
See also Brushmode
Color
Tree.property
Description Settings for a TreeView DataWindow.
Applies to TreeView DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Tree.property
Describe and Modify argument:
"DataWindow.Tree.property { = value } “
Parameter Description
property A property that controls the appearance or behavior of the
TreeView DataWindow. Properties and their settings are listed
in the table below.
value (exp) A string value for the file name of the tree node icon in the
detail band.
Value can be a quoted DataWindow expression.
400 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set values in the Properties view,
General tab.
Examples The following code sets and gets the long value that determines how many
levels of the TreeView are expanded by default:
long ll_expandlevel
dw1.Object.datawindow.tree.DefaultExpandToLevel = 1
ll_expandlevel = &
dw1.Object.DataWindow.Tree.DefaultExpandToLevel
The following code gets and sets the Indent value:
indentVal = dw1.Object.DataWindow.Tree.indent
dw1.Object.DataWindow.Tree.indent = 80
The following examples manipulate the SelectNodeByMouse property:
if cbx_selectnodebymouse.checked then
ls_selectnodebymouse='yes'
else
ls_selectnodebymouse='no'
end if
ls_ret=dw1.modify("datawindow.tree.selectnodebymouse='
"+ls_selectnodebymouse+"'")
402 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Tree.Leaf.TreeNodeIconName
Description The file name of the tree node icon in the detail band.
Applies to TreeView DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Tree.Leaf.TreeNodeIconName
Describe and Modify argument:
"DataWindow.Tree.Leaf.TreeNodeIconName { = value } “
Parameter Description
value (exp) A string value for the file name of the tree node icon in the
detail band.
Value can be a quoted DataWindow expression.
Usage In the painter Select the detail band by clicking the gray divider for the band.
Specify a file name and location in the Tree Node Icon File box on the General
tab in the Properties view. This property is disabled if Use Tree Node Icon is
not set on the General tab in the Properties view for the DataWindow.
Examples ls_LeafIcon = &
dw1.Object.DataWindow.Tree.Leaf.TreeNodeIconName
dw1.Object.DataWindow.Tree.Leaf.TreeNodeIconName = &
"c:\pictures\treenode.bmp"
Tree.Level.#.property
Description The file name of the icon for a TreeView node in a TreeView level band when
the icon is in either the expanded or collapsed state. You set the icon file name
separately for each TreeView level band.
Applies to TreeView DataWindows
Syntax Describe and Modify argument:
"DataWindow.Tree.Level.#.property { = value } “
Parameter Description
# The number of the level for which you want to specify an icon.
The level number must exist.
Parameter Description
property A property that indicates whether the icon specified is for the
expanded or collapsed state. Values are:
• CollapsedTreeNodeIconName
• ExpandedTreeNodeIconName
value (exp) A string value that is the file name of the tree node icon in
the selected TreeView level band.
Value can be a quoted DataWindow expression.
Usage In the painter Select the level by clicking the gray divider for the band.
Specify a file name and location in the Collapsed Tree Node Icon File and
Expanded Tree Node Icon File boxes on the General tab in the Properties view
for the band. These properties are disabled if Use Tree Node Icon is not
selected on the General tab in the Properties view for the DataWindow.
You cannot get or set these properties using dot notation.
Examples The following example gets the name of the icon used when a level 1 node is
collapsed:
string ls_ico
ls_ico = dw_tview.Describe &
("DataWindow.Tree.Level.1.CollapsedTreeNodeIconName")
Type
Description The type of the control (for Describe) or the type of presentation style (for
SyntaxFromSql).
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Type
Describe argument:
"controlname.Type"
404 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
controlname The name of the control for which you want the type. Valid
values are:
datawindow
bitmap (for Picture)
button
column
compute (for Computed Field)
graph
groupbox
line
ole
ellipse (for Oval)
rectangle
report
roundrectangle
tableblob
text
SyntaxFromSql:
Style ( Type = value )
Parameter Description
value A keyword specifying the presentation style for the
DataWindow object. Keywords are:
(Default) Tabular
Grid
Form (for the Freeform style)
Crosstab
Graph
Group
Label
Nested
Ole
RichText
Units
Description The unit of measure used to specify measurements in the DataWindow object.
You set this in the DataWindow Style dialog box when you define the
DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Units
Describe argument:
"DataWindow.Units"
SyntaxFromSql:
DataWindow ( Units = value )
Parameter Description
value The type of units for measurements in the DataWindow.
Values are:
0 – PowerBuilder units
1 – Display pixels
2 – 1/1000 of a logical inch
3 – 1/1000 of a logical centimeter
Usage PowerBuilder units and display pixels are adjusted for printing.
In the painter Select the DataWindow by deselecting all controls; then set
the value in the Properties view, General tab, Units option.
Examples string setting
setting = dw1.Object.DataWindow.Units
setting = dw1.Describe("DataWindow.Units")
Update
Description Whether the specified column is updatable. Each updatable column is included
in the SQL statement that the Update method sends to the database. All
updatable columns should be in the same database table.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Update
Describe and Modify argument:
406 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Set the value using Rows>Update Properties, Updateable
Columns option.
Examples string setting
setting = dw1.Object.emp_name.Update
dw1.Object.emp_name.Update = "No"
setting = dw1.Describe("emp_name.Update")
dw1.Modify("emp_name.Update=No")
Validation
Description The validation expression for the specified column. Validation expressions are
expressions that evaluate to true or false. They provide checking of data that the
user enters in the DataWindow.
To set the validation expression, you can also use the SetValidate method. To
check the current validation expression, use the GetValidate method.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.Validation
Describe and Modify argument:
"columnname.Validation { = ' validationstring ’ }"
Parameter Description
columnname The column for which you want to get or set the validation rule..
validationstring (exp) A string containing the rule that will be used to validate
data entered in the column. Validation rules are expressions that
evaluate to true or false. Validationstring is quoted and can be
a DataWindow expression.
Usage In the painter Set the value using the Column Specifications view,
Validation Expression option.
Use operators, functions, and columns to build an expression. Use Verify to test
it.
Examples string setting
setting = dw1.Object.emp_status.Validation
setting = dw1.Describe("emp_status.Validation")
ValidationMsg
Description The message that PowerBuilder displays instead of the default message when
an ItemError event occurs in the column.
Applies to Column controls
Syntax PowerBuilder dot notation:
dw_control.Object.columnname.ValidationMsg
Describe and Modify argument:
"columnname.ValidationMsg { = ' string ' }"
Parameter Description
columnname The column for which you want to get or set the error message
displayed when validation fails.
string (exp) A string specifying the error message you want to set.
String is quoted and can be a DataWindow expression.
Usage In the painter Set the value using the Column Specifications view,
Validation Message option.
Examples string setting
setting = dw1.Object.emp_salary.ValidationMsg
dw1.Object.emp_salary.ValidationMsg = &
"Salary must be between 10,000 and 100,000"
setting = dw1.Describe("emp_salary.ValidationMsg")
dw1.Modify("emp_salary.ValidationMsg = " &
"'Salary must be between 10,000 and 100,000'")
408 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select the control and set the value in the Properties view, Edit
tab.
When Style Type is DropDownListBox, fill in the Display Value and Data
Value columns for the code table.
When Style is Edit or EditMask, select the Use Code Table or Code Table
check box and fill in the Display Value and Data Value columns for the code
table.
Examples setting = dw1.Object.emp_status.Values
dw1.Object.emp_status.Values = &
"Active~tA/Part Time~tP/Terminated~tT"
setting = dw1.Describe("emp_status.Values")
dw1.Modify("emp_status.Values =
'Active~tA/Part Time~tP/Terminated~tT'")
Vertical_Size
Description The height of the columns in the detail area of the DataWindow object.
Vertical_Size is meaningful only when Type is Form (meaning the Freeform
style). When a column reaches the specified height, PowerBuilder starts a new
column to the right of the current column. The space between columns is
specified in the Vertical_Spread property.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Vertical_Size = value )
Parameter Description
value An integer specifying the height of the columns in the detail
area of the DataWindow object area in the units specified for the
DataWindow
Vertical_Spread
Description The vertical space between columns in the detail area of the DataWindow
object. Vertical_Spread is meaningful only when Type is Form (meaning the
Freeform style). The Vertical_Size property determines when to start a new
column.
Applies to Style keywords
Syntax SyntaxFromSql:
Style ( Vertical_Spread = value )
Parameter Description
value An integer specifying the vertical space between columns in the
detail area of the DataWindow object area in the units specified
for the DataWindow
410 PowerBuilder
CHAPTER 3 DataWindow Object Properties
VerticalScrollMaximum
Description The maximum height of the scroll box of the DataWindow’s vertical scroll bar.
This value is set by PowerBuilder based on the content of the DataWindow.
Use VerticalScrollMaximum with VerticalScrollPosition to synchronize
vertical scrolling in multiple DataWindow objects. The value is a long.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.VerticalScrollMaximum
Describe argument:
"DataWindow.VerticalScrollMaximum"
Examples string setting
setting = dw1.Object.DataWindow.VerticalScrollMaximum
setting =
dw1.Describe("DataWindow.VerticalScrollMaximum")
VerticalScrollPosition
Description The position of the scroll box in the vertical scroll bar. Use
VerticalScrollMaximum with VerticalScrollPosition to synchronize vertical
scrolling in multiple DataWindow objects.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.VerticalScrollPosition
Describe and Modify argument:
"DataWindow.VerticalScrollPosition { = scrollvalue }"
Parameter Description
scrollvalue A long specifying the position of the scroll box in the
vertical scroll bar of the DataWindow
sscroll = String(Long(smax)/2)
modstring = "DataWindow.VerticalScrollPosition=" + &
sscroll
dw1.Modify(modstring)
Visible
Description Whether the specified control in the DataWindow is visible.
Applies to Button, Column, Computed Field, Graph, GroupBox, Line, OLE, Oval,
Picture, Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Visible
Describe and Modify argument:
"controlname.Visible { = ' value ' }"
Parameter Description
controlname The name of the control for which you want to get or set the
Visible property.
value (exp) Whether the specified control is visible.
Values are:
0 – False; the control is not visible.
1 – True; the control is visible.
Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
General tab. The Visible property is not supported for column controls in
DataWindow objects with the Label presentation style.
Examples string setting
setting = dw1.Object.emp_status.Visible
dw1.Object.emp_status.Visible = 0
dw1.Object.emp_stat.Visible="0~tIf(emp_class=1,0,1)"
setting = dw1.Describe("emp_status.Visible")
dw1.Modify("emp_status.Visible=0")
dw1.Modify("emp_stat.Visible='0~tIf(emp_cls=1,0,1)'")
412 PowerBuilder
CHAPTER 3 DataWindow Object Properties
VTextAlign
Description The way text in a button is vertically aligned.
Applies to Button controls
Syntax PowerBuilder dot notation:
dw_control.Object.buttonname.VTextAlign
Describe and Modify argument:
"buttonname.VTextAlign { = ' value ' }"
Parameter Description
buttonname The name of the button for which you want to align text.
value An integer indicating how the button text is horizontally
aligned.
Values are:
0 – Center
1 – Top
2 – Bottom
3 – Multiline
Usage In the painter Select the control and set the value in the Properties view,
General tab, Vertical Alignment option.
Examples string setting
dw1.Object.b_name.VTextAlign = "0"
setting = dw1.Describe("b_name.VTextAlign")
dw1.Modify("b_name.VTextAlign ='0'")
Width
Description The width of the specified control.
Applies to Button, Column, Computed Field, Graph, GroupBox, OLE, Oval, Picture,
Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Width
Describe and Modify argument:
"controlname.Width { = ' value ' }"
Parameter Description
controlname The name of the control for which you want to get or set the
width.
value (exp) The width of the controlname in the units specified for the
DataWindow. Value can be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.emp_name.Width
dw1.Object.emp_name.Width = 250
setting = dw1.Describe("emp_name.Width")
dw1.Modify("emp_name.Width=250")
Width.Autosize
Description (RichText presentation style only) Whether the column or computed field input
field adjusts its width according to the data it contains.
The Width.Autosize and Multiline properties can be set together so that the
input field can display multiple lines.
Applies to Column and Computed Field controls in the RichText presentation style
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Width.Autosize
Describe and Modify argument:
"controlname.Width.Autosize { = ' value ' }"
Parameter Description
controlname The name of the column or computed field for which you want
to get or set the Autosize setting.
value (exp) Whether the width of the input field adjusts according to
the data it contains. Values are:
• Yes – The width adjusts according to the data.
• No – The width is fixed and is set to the value of the Width
property.
414 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter Select an input field so that it is flashing, then right-click and
select Properties from the pop-up menu. Set the value on the property sheet,
Input Field tab, Fixed Size option.
Examples string setting
setting = dw1.Object.emp_name.Width.Autosize
dw1.Object.emp_name.Width.Autosize = "yes"
setting = dw1.Describe("emp_name.Width.Autosize")
dw1.Modify("emp_name.Width.Autosize=yes")
Width.Autosize
Description (Grid presentation style only) Whether a column adjusts its width according to
the data it contains.
Applies to Column controls in the Grid presentation style
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Width.Autosize
Describe and Modify argument:
"controlname.Width.Autosize { = ' value ' }"
Parameter Description
controlname The name of the column for which you want to get or set the
Autosize setting.
value How the width of the column adjusts according to the data it
contains. Values are:
• 0 – None
• 1 – Widest shown
• 2 – Widest on page
• 3 – Widest retrieved from database
Usage In the painter Select a column control, then set the value in the Properties
view, Position tab, Autosize Width option.
X
Description The distance of the specified control from the left edge of the DataWindow
object.
Applies to Button, Column, Computed Field, Graph, GroupBox, OLE, Oval, Picture,
Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.X
Describe and Modify argument:
"controlname.X { = ' value ' }"
Parameter Description
controlname The name of the control for which you want to get or set the x
coordinate.
value (exp) An integer specifying the x coordinate of the control in the unit
of measure specified for the DataWindow object. Value can be a
quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.emp_name.X
dw1.Object.emp_name.X = 10
setting = dw1.Describe("emp_name.X")
dw1.Modify("emp_name.X=10")
X1, X2
Description The distance of each end of the specified line from the left edge of the line’s
band.
Applies to Line controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.X1
dw_control.Object.controlname.X2
Describe and Modify argument:
"controlname.X1 { = ' value ' }"
"controlname.X2 { = ' value ' }"
Parameter Description
controlname The name of the line for which you want to get or set one of the x
coordinates.
416 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
value (exp) An integer specifying the x coordinate of the line in the unit of
measure specified for the DataWindow object. Value can be a
quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.line_1.X1
dw1.Object.line_1.X1 = 10
dw1.Object.line_1.X2 = 1000
setting = dw1.Describe("line_1.X1")
dw1.Modify("line_1.X1=10")
dw1.Modify("line_1.X2=1000")
XHTMLGen.Browser
Description A string that identifies the browser in which XHTML generated within an
XSLT style sheet is displayed.
Obsolete property
XHTMLGen.browser is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Usage If the string specifies a browser that the DataWindow engine supports, the
DataWindow generates an XSLT style sheet and JavaScript for XHTML
transformation optimized for that browser. Browser-specific XSLT and
JavaScript are generated only for Microsoft Internet Explorer 5.0 and later and
Netscape 6.0 and later.
Browser identification strings are sent by the client to the server in the HTTP
header. The server component can assign the HTTP_USER_AGENT value
from the HTTP header to the Browser property.
The XML Web DataWindow generator recognizes these browsers:
Browser HTTP header string
Microsoft Internet Explorer Mozilla/4.0 (compatible; MSIE 5.0;
Mozilla/4.0 (compatible; MSIE 5.5;
Mozilla/4.0 (compatible; MSIE 6.x;
Netscape Mozilla/5.0(
In the painter On the Web Generation tab in the Properties view for the
DataWindow object, select XHTML from the Format to Configure list and
select a browser from the list.
XMLGen.property
Description Settings that specify how XML is generated, whether client-side, postback, or
callback paging is used, the physical path to which XML is published, and the
URL referenced by the JavaScript that transforms the XML to XHTML.
Obsolete property
XMLGen.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
418 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Parameter Description
property One of the following:
• Inline
• PublishPath
• ResourceBase
value (exp) Inline – A boolean that specifies whether the XML
generated for the XML Web DataWindow is generated
inline to the XSLT transformation script. Values are:
true – The XML is generated within the XSLT
transformation script.
false – (default) The XML is published to a separate
document.
(exp) PublishPath – A string that specifies the physical
path of the Web site folder to which PowerBuilder
publishes the generated XML document that contains the
XML Web DataWindow content.
(exp) ResourceBase – A string that specifies the URL of
the generated XML document that contains the XML Web
DataWindow content.
Usage Inline The XML published on the Internet in your XML Web DataWindow
could contain sensitive data, and this data might be exposed to Internet users
when published to a separate document. For increased security, if the Inline
property to set to true, the XML is generated “inline” to the XSLT
transformation script in the page that renders the control. If only authenticated
users have access to this script, the security of the XML is ensured. Setting this
property should have no adverse side effects on the caching efficiency of the
control.
PublishPath and ResourceBase The PublishPath folder must correspond
to the URL specified in the ResourceBase property. At runtime, after
PowerBuilder generates XML content to the PublishPath folder, client-side
JavaScript in a generated page downloads it using a reference to the
ResourceBase property. The JavaScript transforms the XML content to
XHTML using the generated XSLT style sheet.
In the painter On the Web Generation tab in the Properties view for the
DataWindow object, select XML from the Format to Configure list and select
the options you require.
Examples These statements set the XMLGen.ResourceBase and XMLGen.PublishPath
properties:
dw1.Object.DataWindow.XMLGen.ResourceBase= &
'http://www.myserver.com/xmlsource'
dw1.Object.DataWindow.XMLGen.PublishPath= &
'C:\work\outputfiles\xmlsource'
dw1.Modify("DataWindow.XMLGen.PublishPath=
'C:\Inetpub\wwwroot\MyWebApp\generatedfiles'")
dw1.Modify("DataWindow.XMLGen.ResourceBase=
'/MyWebApp/generatedfiles'")
This statement sets the XMLGen.Inline property so that XML is generated
inline:
dw1.Modify("DataWindow.XMLGen.Inline='1'")
XSLTGen.property
Description Settings that specify the physical path to which the generated XSLT style sheet
is published and the URL referenced by the JavaScript that transforms the
XML to XHTML.
Obsolete property
XSLTGen.property is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
420 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage The PublishPath folder must correspond to the URL specified in the
ResourceBase property. At runtime, after PowerBuilder generates the XSLT
style sheet to the PublishPath folder, client-side JavaScript in a generated page
downloads it using a reference to the ResourceBase property. The JavaScript
transforms the XML content to XHTML using the generated XSLT style sheet.
In the painter On the Web Generation tab in the Properties view for the
DataWindow object, select XSLT from the Format to Configure list and specify
the ResourceBase and Publish Path locations.
Examples These statements set the XSLTGen.ResourceBase and XSLTGen.PublishPath
properties:
dw1.Object.DataWindow.XSLTGen.ResourceBase= &
'http://www.myserver.com/xmlsource'
dw1.Object.DataWindow.XSLTGen.PublishPath= &
'C:\work\outputfiles\xmlsource'
Y
Description The distance of the specified control from the top of the control’s band.
Applies to Button, Column, Computed Field, Graph, GroupBox, OLE, Oval, Picture,
Rectangle, Report, RoundRectangle, TableBlob, and Text controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Y
Describe and Modify argument:
"controlname.Y { = ' value ' }"
Parameter Description
controlname The name of the control for which you want to get or set the y
coordinate.
value (exp) An integer specifying the y coordinate of the control in the
unit of measure specified for the DataWindow object. Value can be
a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.emp_name.Y
dw1.Object.emp_name.Y = 100
setting = dw1.Describe("emp_name.Y")
dw1.Modify("emp_name.Y=100")
Y1, Y2
Description The distance of each end of the specified line from the top of the line’s band.
Applies to Line controls
Syntax PowerBuilder dot notation:
dw_control.Object.controlname.Y1
dw_control.Object.controlname.Y2
Describe and Modify argument:
"controlname.Y1 { = ' value ' }"
"controlname.Y2 { = ' value ' }"
Parameter Description
controlname The name of the line for which you want to get or set one of the
y coordinates.
value (exp) An integer specifying the y coordinate of the line in the
unit of measure specified for the DataWindow object. Value can
be a quoted DataWindow expression.
Usage In the painter Select the control and set the value in the Properties view,
Position tab.
Examples string setting
setting = dw1.Object.line_1.Y1
dw1.Object.line_1.Y1 = 50
dw1.Object.line_1.Y2 = 50
setting = dw1.Describe("line_1.Y1")
dw1.Modify("line_1.Y1=50")
dw1.Modify("line_1.Y2=50")
Zoom
Description The scaling percentage of the DataWindow object.
Applies to DataWindows
Syntax PowerBuilder dot notation:
dw_control.Object.DataWindow.Zoom
422 PowerBuilder
CHAPTER 3 DataWindow Object Properties
Usage In the painter To see the effect of different zoom factors in Preview mode,
use Design>Zoom. The zoom factor you set in the painter is not used at
runtime.
Limitation
The zoom property is not supported for the Graph, RichText, and OLE
DataWindow styles.
424 PowerBuilder
C H A P T E R 4 Accessing Data in Code
About this chapter This chapter explains the syntax for constructing expressions that access
data in a DataWindow object.
Contents Page
Topic
Accessing data and properties in DataWindow programming 425
environments
Techniques for accessing data 426
Syntaxes for DataWindow data expressions 434
DataWindow property expressions These let you get and set the values of
properties of the DataWindow definition and of controls contained within the
definition, such as columns and text labels.
Property expressions take this form:
dwcontrol.Object.columnname.columnproperty = value
Where to find This chapter discusses techniques for accessing data with emphasis on data
information expressions.
For information on accessing properties using methods or property
expressions, see Chapter 5, Accessing DataWindow Object Properties in
Code.
426 PowerBuilder
CHAPTER 4 Accessing Data in Code
Exception
If you want to use a column’s name rather
than its number, and the name is not known
until runtime, use a method; methods allow
you to name the column dynamically.
More than one item, such as: An expression. Specifying the data you want
• All the data in a column in a single statement is much more efficient
than calling the methods repeatedly in a
• A block of data specified by
program loop.
ranges of rows and columns
• Data in selected rows
• All the data in the DataWindow
What’s in this section The rest of this section describes how to construct expressions for accessing
DataWindow data. The section Syntaxes for DataWindow data expressions on
page 434 provides reference information on the syntaxes for data expressions.
For information on For information about using methods for accessing data, see SetItem,
methods GetItemDate, GetItemDateTime, GetItemDecimal, GetItemNumber,
GetItemString, and GetItemTime in Chapter 9, Methods for the DataWindow
Control.
Returns a single value (for a specific row number) or an array of values (when
rownum is omitted) from the column.
See Syntax for one or all data items in a named column on page 435.
Selected items
dwcontrol.Object.columnname {.Primary }{.datasource }.Selected
Returns an array of values from the column with an array element for each
selected row.
See Syntax for selected data in a named column on page 437.
Range of items
dwcontrol.Object.columnname {.buffer } {.datasource } [ startrownum,
endrownum ]
Returns an array of values from the column with an array element for each row
in the range.
See Syntax for a range of data in a named column on page 439.
Data in numbered Single items
columns
dwcontrol.Object.Data {.buffer } {.datasource } [ rownum, colnum ]
Returns a single item whose datatype is the datatype of the column.
See Syntax for a single data item in a DataWindow on page 441.
Blocks of data involving a range of rows and columns
dwcontrol.Object.Data {.buffer } {.datasource } [ startrownum,
startcolnum, endrownum, endcolnum ]
Returns an array of structures or user objects. The structure elements match the
columns in the range. There is one array element for each row in the range.
See Syntax for data in a block of rows and columns on page 442.
Whole rows Single row or all rows
dwcontrol.Object.Data {.buffer } {.datasource } { [ rownum ] }
Returns one structure or user object (for a single row) or an array of them (for
all rows). The structure elements match the columns in the DataWindow
object.
See Syntax for data in a single row or all rows on page 444.
Selected rows
dwcontrol.Object.Data {.Primary } {.datasource } .Selected
428 PowerBuilder
CHAPTER 4 Accessing Data in Code
Returns an array of structures or user objects. The structure elements match the
columns in the DataWindow object. There is one array element for each
selected row.
See Syntax for all data from selected rows on page 445.
Summary of syntaxes This diagram summarizes the variations in data expression syntax:
Figure 4-1: Variations in data expression syntax
Data structures for Single row and column When your data expression refers to a single row
data and column, you can assign the data to a variable whose data matches the
column’s datatype. When the expression refers to a single column but can refer
to multiple rows, you must specify an array of the appropriate datatype.
More than one column When the expression refers to more than one
column, you can get or set the data with a structure or user object. When you
create the definition, you must assign datatypes to the fields (in a structure) or
instance variables (in a user object) that match the datatypes of the columns.
When your expression refers to multiple rows, you get an array of the structure
or user object.
Likewise, if you want to set data in the DataWindow control, you will set up
the data in structures or user objects whose elements match the columns
referred to in the expression. An array of those structures or user objects will
provide data for multiple rows.
Datatypes For matching purposes, the datatypes should be appropriate to the
data—for example, any numeric datatype matches any other numeric type.
Examples of data The following table presents some examples of data specified by an expression
structures and the type of data structures you might define for storing the data:
Table 4-2: Types of storage for data specified by an expression
Type of selection Sample data storage
A single item A single variable of the appropriate datatype.
A column of values An array of the appropriate datatype.
A row A structure whose elements have datatypes that
match the DataWindow object’s columns.
A user object whose instance variables match the
DataWindow object’s columns.
Selected rows or all rows An array of the structure or user object defined for a
row.
A block of values An array of structures or user objects whose elements
or instance variables match the columns included in
the selected range.
Assigning data to When a data expression is assigned to an array, values are assigned beginning
arrays with array element 1 regardless of the starting row number. If the array is larger
than the number of rows accessed, elements beyond that number are
unchanged. If it is smaller, a variable-size array will grow to hold the new
values. However, a fixed-size array that is too small for the number of rows will
cause an execution error.
430 PowerBuilder
CHAPTER 4 Accessing Data in Code
Any datatype and data The actual datatype of a DataWindow data expression is Any, which allows the
expressions compiler to process the expression even though the final datatype is unknown.
When data is accessed at runtime, you can assign the result to another Any
variable or to a variable, structure, or user object whose datatype matches the
real data.
Examples A single value This example gets a value from column 2, whose datatype is
string:
string ls_name
ls_name = dw_1.Object.Data[1,2]
A structure that matches DataWindow columns In this example, a
DataWindow object has four columns:
An ID (number)
A name (string)
A retired status (boolean)
A birth date (date)
A structure to hold these values has been defined in the Structure painter. It is
named str_empdata and has four elements whose datatypes are integer, string,
boolean, and date. To store the values of an expression that accesses some or
all the rows, you need an array of str_empdata structures to hold the data:
str_empdata lstr_currdata[]
lstr_currdata = dw_1.Object.Data
After this example executes, the upper bound of the array of structures, which
is variable-size, is equal to the number of rows in the DataWindow control.
A user object that matches DataWindow columns If the preceding
example involved a user object instead of a structure, then a user object defined
in the User Object painter, called uo_empdata, would have four instance
variables, defined in the same order as the DataWindow columns:
integer id
string name
boolean retired
date birthdate
Before accessing three rows, three array elements of the user object have been
created (you could use a FOR NEXT loop for this). The user object was not
defined with Autoinstantiate enabled:
uo_empdata luo_empdata[3]
luo_empdata[1] = CREATE uo_empdata
luo_empdata[2] = CREATE uo_empdata
luo_empdata[3] = CREATE uo_empdata
luo_empdata = dw_1.Object.Data[1,1,3,4]
432 PowerBuilder
CHAPTER 4 Accessing Data in Code
• When there are fewer array elements than target rows, the column(s) in the
extra target rows are filled with default values
If the target expression is all rows but not all columns, then:
• When there are more array elements than target rows, the extra array
elements are ignored
• When there are fewer array elements than target rows, only the first rows
up to the number of array elements are affected
If the target expression is all rows and all columns, then the source data
replaces all the existing rows, resetting the DataWindow control to the new
data.
Inserting new rows When you are setting data and you specify a range, then
if rows do not exist in that range, rows are inserted to fill the range. For
example, if the DataWindow control has four rows and your expression says to
assign data to rows 8 through 12, then eight more rows are added to the
DataWindow control. The new rows use the initial default values set up for
each column. After the rows are inserted, the array of source data is applied to
the rows as described above.
Examples These examples refer to a DataWindow object that has three columns: emp_id,
emp_lname, and salary. The window declares these arrays as instance variables
and the window’s Open event assigns four elements to each array:
integer ii_id[]
string is_name[]
double id_salary[]
uo_empdata iuo_data[]
uo_empid_name iuo_id[]
The uo_empdata user object has three instance variables: id, name, and salary.
The uo_empid_name user object has two instance variables: id and name.
This example sets emp_lname in the selected rows to the values of is_name, an
array with four elements. If two rows are selected, only the first two values of
the array are used. If six rows are selected, the last two rows of the selection
are set to an empty string:
dw_1.Object.emp_lname.Selected = is_name
This example sets salary in rows 8 to 12 to the values in the array id_salary. The
id_salary array has only four elements, so the extra row in the range is set to 0
or a default value:
dw_1.Object.salary[8,12] = id_salary
This statement resets the DataWindow control and inserts four rows to match
the array elements of iuo_data:
dw_1.Object.Data.Primary = iuo_data
This example sets columns 1 and 2 in rows 5 to 8 to the values in the array
iuo_id:
dw_1.Object.Data.Primary[5,1, 8,2] = iuo_id
This example sets emp_id in the first four rows to the values in the ii_id array.
Rows 5 through 12 are not affected:
dw_1.Object.emp_id.Primary = ii_id
434 PowerBuilder
CHAPTER 4 Accessing Data in Code
Return value The expression has a datatype of Any. The expression returns a single value
(for a specific row number) or an array of values (when rownum is omitted).
Each value has a datatype of columnname.
Usage Is the expression a DWObject or data? When you want to access all the
data in the column, remember to specify at least one of the other optional
parameters. Otherwise, the expression you specify refers to the column control,
not its data. This expression refers to the DWObject empname, not the data in
the column:
dw_1.Object.empname
In contrast, these expressions all refer to data in the empname column:
dw_1.Object.empname.Primary // All rows
dw_1.Object.empname[5] // Row 5
Row numbers for computed fields When you refer to a control in a band
other than the detail band (usually a computed field) you still specify a row
number. For the header, footer, or summary, specify a row number of 1. For the
group header or trailer, specify the group number:
dw_1.Object.avg_cf[1]
If you specify nothing after the computed field name, you refer to the computed
field DWObject, not the data. For a computed field that occurs more than once,
you can get all values by specifying buffer or datasource instead of rownum,
just as for columns.
When the expression is an array When the expression returns an array
(because there is no row number), you must assign the result to an array, even
if you know there is only one row in the result.
This expression returns an array, even if there is only one row in the
DataWindow control:
dw_1.Object.empname.Primary
This expression returns a single value:
dw_1.Object.empname[22]
Examples Because the default setting is current values in the primary buffer, the
following expressions are equivalent—both get the value in row 1 for the
emp_name column:
dw_1.Object.emp_name[1]
dw_1.Object.emp_name.Primary.Current[1]
This statement sets the emp_name value in row 1 to Wilson:
dw_1.Object.emp_name[1] = "Wilson"
This statement gets values for all the emp_name values that have been
retrieved and assigns them to an array of strings:
436 PowerBuilder
CHAPTER 4 Accessing Data in Code
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Current
This statement gets current values of emp_name from all rows in the filter
buffer:
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Filter
This statement gets original values of emp_name from all rows in the filter
buffer:
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Filter.Original
This statement gets the current value of emp_name from row 14 in the delete
buffer:
string ls_name
ls_name = dw_1.Object.emp_name.Delete[14]
This statement gets the original value of emp_name from row 14 in the delete
buffer:
string ls_name
ls_name = dw_1.Object.emp_name.Delete.Original[14]
This statement gets all the values of the computed field review_date:
string ld_review[]
ld_review = dw_1.Object.review_date.Original
Parameter Description
datasource The source of the data. Values are:
(optional) • Current – (Default) The current values in the
DataWindow control.
• Original – The values that were initially retrieved from
the database. For a computed field, you must specify
Original (because computed fields cannot be changed
and do not have current values).
Return value The datatype of the expression is Any. The expression returns an array of
values with the datatype of columnname.
Usage When you specify selected values, the expression always returns an array and
you must assign the result to an array, even if you know there is only one row
selected.
For selected rows, the primary buffer is the only applicable buffer. For
consistency, you can include Primary in this syntax but it is not necessary.
Examples Because the primary buffer is the only applicable buffer for selected data and
current data is the default, these expressions are all equivalent. They access
values in the emp_name column for selected rows:
dw_1.Object.emp_name.Selected
dw_1.Object.emp_name.Primary.Selected
dw_1.Object.emp_name.Current.Selected
dw_1.Object.emp_name.Primary.Current.Selected
These expressions both access original values for selected rows:
dw_1.Object.emp_name.Original.Selected
dw_1.Object.emp_name.Primary.Original.Selected
This example sets the emp_name value in the first selected row to an empty
string. The rest of the selected rows are set to a default value, which can be an
empty string:
string ls_empty[]
ls_empty[1] = ""
dw_1.Object.emp_lname.Selected = ls_empty
This statement gets the original emp_name values in selected rows and assigns
them to an array of strings:
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Original.Selected
438 PowerBuilder
CHAPTER 4 Accessing Data in Code
Return value The datatype of the expression is Any. The expression returns an array of
values with an array element for each row in the range. Each value’s datatype
is the datatype of columnname.
Usage When you specify a range, the expression always returns an array and you must
assign the result to an array, even if you know there is only one value in the
result. For example, this expression returns an array of one value:
dw_1.Object.empname[22,22]
Examples Because the primary buffer and current data are the default, these expressions
are all equivalent:
dw_1.Object.emp_name[11,20]
dw_1.Object.emp_name.Primary[11,20]
dw_1.Object.emp_name.Current[11,20]
dw_1.Object.emp_name.Primary.Current[11,20]
This example resets the emp_name value in rows 11 through 20 to an empty
string. Rows 12 to 20 are set to a default value, which may be an empty string:
string ls_empty[]
ls_empty[1] = ""
dw_1.Object.emp_name[11,20] = &
{"","","","","","","","","",""}
This statement gets the original emp_name values in rows 11 to 20 and assigns
them to elements 1 to 10 in an array of strings:
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Original[11,20]
This statement gets current values of emp_name from rows 5 to 8 in the Filter
buffer and assigns them to elements 1 to 4 in an array of strings:
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Filter[5,8]
This statement gets original values of emp_name instead of current values, as
shown in the previous example:
string ls_namearray[]
ls_namearray = &
dw_1.Object.emp_name.Filter.Original[5,8]
This statement gets current values of emp_name from rows 50 to 200 in the
delete buffer and assigns them to elements 1 to 151 in an array of strings:
string ls_namearray[]
ls_namearray = dw_1.Object.emp_name.Delete[50,200]
This statement gets original values of emp_name instead of current values, as
shown in the previous example:
string ls_namearray[]
ls_namearray = &
dw_1.Object.emp_name.Delete.Original[50,200]
440 PowerBuilder
CHAPTER 4 Accessing Data in Code
Return value The datatype of the expression is Any. The expression returns a single item in
the DataWindow control. Its datatype is the datatype of the column.
Examples These expressions both refer to a single item in row 1, column 2. The
expressions access current data in the primary buffer:
dw_1.Object.Data[1,2]
dw_1.Object.Data.Primary.Current[1,2]
This statement changes the value of the original data to 0 for the item in row 1,
column 2 in the Filter buffer. Column 2 holds numeric data:
dw_1.Object.Data.Filter.Original[1,2] = 0
Return value The datatype of the expression is Any. The expression returns an array of
structures or user objects. There is one structure element or user object instance
variable for each column in the designated range. The datatype of each element
matches the datatype of the corresponding column. There is one structure or
user object in the array for each row in the range of rows.
Usage When you specify a block, the expression always returns an array and you must
assign the result to an array, even if you know there is only one structure in the
result.
This expression returns an array of one structure from row 22:
dw_1.Object.data[22,1,22,4]
442 PowerBuilder
CHAPTER 4 Accessing Data in Code
This expression returns an array of one value from row 22, column 1:
dw_1.Object.data[22,1,22,1]
Examples These statements both refer to data in the first ten rows and first four columns
of the DataWindow object in the control dw_1. The primary buffer and current
data are the default:
dw_1.Object.Data[1,1,10,4]
dw_1.Object.Data.Primary.Current[1,1,10,4]
This example gets employee IDs and last names for all the rows in the delete
buffer. The IDs and names are the first two columns. It saves the information
in a structure, called str_namelist, of two elements: an integer called id and a
string called lastname. The structure was defined previously in the Structure
painter. The list of IDs and names is then saved in the file DELETED.TXT:
integer li_fileNum
long ll_deletedrows
str_namelist lstr_namelist[]
ll_deletedrows = dw_1.DeletedCount()
lstr_namelist = &
dw_1.Object.Data.Delete[1,1, ll_deletedrows,2]
SetNull(lstr_namelist[1].id)
SetNull(lstr_namelist[1].lastname)
Return value The datatype of the expression is Any. The expression returns one structure or
user object (for a single row) or an array of them (for all rows). There is one
structure element or instance variable for each column in the DataWindow
object. The datatype of each element matches the datatype of the
corresponding column.
Usage When you omit the row number, the expression always returns an array, and
you must assign the result to an array, even if you know there is only one row
in the DataWindow control.
Examples These statements both access current data for row 5 in the primary buffer in the
DataWindow object contained in the DataWindow control dw_1:
444 PowerBuilder
CHAPTER 4 Accessing Data in Code
dw_1.Object.Data[5]
dw_1.Object.Data.Primary.Current[5]
This example assigns all the data in dw_1 to the Any variable la_dwdata. The
value assigned to la_dwdata is an array of data structures whose members
match the column datatypes:
any la_dwdata
la_dwdata = dw_1.Object.Data
This example assigns all the data in the delete buffer for dw_1 to the Any
variable la_dwdata:
any la_dwdata
la_dwdata = dw_1.Object.Data.Delete
This example replaces all the data in the nested report in row 2 with data from
dw_2. The columns in the DataWindow object in dw_2 must match the
columns in the DataWindow object for the nested report:
dw_1.Object.NestRep[2].Object.Data = &
dw_2.Object.Data
Return values The datatype of the expression is Any. The expression returns an array of
structures or user objects. There is one structure element or instance variable
for each column in the DataWindow object. The datatype of each element
matches the datatype of the corresponding column.
Usage When you specify selected rows, the expression always returns an array, and
you must assign the result to an array even if you know there is only one row
selected.
Examples Because the primary buffer is the only applicable buffer for selected data and
current data is the default, these expressions are all equivalent. They access
data in the selected rows:
dw_1.Object.Data.Selected
dw_1.Object.Data.Primary.Selected
dw_1.Object.Data.Current.Selected
dw_1.Object.Data.Primary.Current.Selected
Both these expressions access original values for selected rows:
dw_1.Object.Data.Original.Selected
dw_1.Object.Data.Primary.Original.Selected
This example takes the values in the selected rows in dw_2 and populates a
DropDownDataWindow in dw_1 with the values, replacing existing data in the
DropDownDataWindow. The column with the DropDownDataWindow is
called useroptions. The columns of the DataWindow object in dw_2 must
match the columns of the DataWindow object for the DropDownDataWindow:
dw_1.Object.useroptions.Object.Data = &
dw_2.Object.Data.Selected
446 PowerBuilder
C H A P T E R 5 Accessing DataWindow Object
Properties in Code
About this chapter This chapter explains the syntax for constructing expressions that access
properties of controls within a DataWindow.
Contents
Topic Page
About properties of the DataWindow object and its controls 447
PowerBuilder: Modify and Describe methods for properties 457
PowerBuilder: DataWindow property expressions 460
JavaScript: Modify and Describe methods for properties 475
The properties of the DataWindow object and its controls store the information
that specifies the behavior of the DataWindow object. They are not properties
of the DataWindow control, but of the DataWindow object displayed in the
control.
Terminology
When you are programming for DataWindows, there are several types of
expressions involved.
A DataWindow expression is an expression assigned as a value to a
DataWindow property and is evaluated by the DataWindow engine. The
expression can refer to column data and can have a different value for each row
in the DataWindow.
A DataWindow property expression is an expression in your code that gets
or sets the value of a DataWindow property. Its effects are equivalent to what
the Describe and Modify methods do.
A DataWindow data expression is an expression in your code that gets or sets
data in the DataWindow. Its effects are similar to what the SetItem and several
GetItem methods do.
448 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
you are setting properties of the DataWindow object and its controls.
Properties for each Each control in the DataWindow (columns, text, drawing controls) has its own
control property sheets, because there are different sets of properties for each object.
To access individual property sheets, display the Properties view and then
select a control.
If several controls have the same property and you want them all to have the
same value, you can select all the controls so that the property sheet shows the
properties they have in common. When you change the property value, it is
applied to all selected controls.
DataWindow For many properties, you can specify a DataWindow expression in the
expressions for Properties view by clicking the Expression button beside the property. At
properties
runtime, the expression is evaluated for each row. When the expression
includes row-dependent information in the calculation (such as data), each row
can have a different value for the property. In the painter, you can see the results
in the Preview view. (You might need to close Preview and reopen it if you are
not seeing the settings you have made.)
For information about the components of expressions, see Using DataWindow
expression functions on page 17 and the Users Guide. For examples of
expressions, see Using DataWindow expressions as property values on page
451.
450 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
Examples In the painter This expression for a column called emp_lname is applied to
the Background.Color property. It causes the name’s background to be light
gray (15790320) if the current row (person) uses the day care benefit. If not,
the background color is set to white:
If(bene_day_care = 'Y', 15790320, 1677215)
In code The expression assigned to the Background.Color property includes
a default value. Nested quotes complicate the syntax:
PowerBuilder
dw_1.Object.emp_lname.Background.Color = "16777215 ~t
If(bene_day_care = 'Y', 15790320, 16777215)"
JavaScript
dw_1.Modify("emp_lname.Background.Color = \"16777215 \t
If(bene_day_care = 'Y', 15790320, 16777215)\");
452 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
454 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
If the string includes a third level of nested strings, you need to add another
tilde which must be accompanied by its own escape character, a second tilde.
This is the reason that tildes are usually specified in odd numbers (1, 3, or 5
tildes).
This Modify expression (entered on a single line in code) shows three levels of
nested strings:
dw_1.Modify(
"DataWindow.Color = '255 ~t If(state=
~'MA~',255,0)'")
This version of the expression has more tildes because there are no single
quotes:
dw_1.Modify("DataWindow.Color = ~"255 ~t If(state=
~~~"MA~~~",255,0)~"")
Common special Strings can also include special characters, as shown in the previous example.
characters This table lists the special characters that are most often used in DataWindow
expressions.
Escape sequence Meaning
~t Tab
~r Carriage return
~n Newline or linefeed
~" Double quote
~’ Single quote
~~ Tilde
456 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
dw_1.Modify("emp_id.Color=\"16777215 \t If
(emp_status=~\"A~\",255,16777215)\"");
dw_1.Modify("emp_id.Color=\"16777215 \t If
(emp_status='A',255,16777215)\"");
dw_1.Modify("emp_id.Color='16777215 \t If
(emp_status=\"A\",255,16777215)'");
The corresponding example in PowerBuilder is:
dw_1.Modify("emp_id.Color = ~"16777215 ~t If
(emp_status=~~~"A~~~",255,16777215)~"")
Special use of tilde A special case of specifying tildes involves the EditMask.SpinRange property,
whose value is two numbers separated by a tilde (not an escape character,
simply a tilde). In code, the value is in a nested string and needs a tilde escape
character. The two tildes are interpreted as a single tilde when parsed by the
DataWindow:
dw_1.modify("benefits.EditMask.SpinRange='0~~10'");
For example, the following code builds a string in which the default color value
and the two color values in the If function are determined in the script. Notice
how the single quotes around the expression are included in the first and last
pieces of the string:
red_amount = Integer(sle_1.Text)
modstring = "emp_id.Color='" + &
String(RGB(red_amount, 0, 0)) + &
"~tIf(emp_status=~~'A~~'," + &
String(RGB(255, 0, 0)) + &
"," + &
String(RGB(red_amount, 0, 0)) + &
")'"
Modify(modstring)
The resulting string when red_amount is set to 128 is:
emp_id.Color='128~tIf(emp_status=~'A~',255,128)'
The following is a simpler example without the If function. You do not need
quotes around the value if you are not specifying an expression. Here the String
and RGB functions result in a constant value in the resulting modstring:
Modify(ls_columnname + ".Color=" + &
String(RGB(red_amount, 255, 255)))
Drawbacks Setting several properties at once is possible but hard to debug
Although you can set several properties in a single method call, it is harder to
understand and debug scripts that do so.
For example, assume the following is entered on a single line in the script
editor:
rtn = dw_1.Modify("emp_id.Font.Italic=0
oval_1.Background.Mode=0
oval_1.Background.Color=255")
Less efficient than an expression Using a DWObject variable in several
property expressions is a little more efficient than setting several properties in
a single call to Describe or Modify. However, if you want to be able to name
controls dynamically, you might still choose to use Describe or Modify.
For examples of using a DWObject variable, see Using the DWObject variable
in PowerBuilder on page 462.
Can require complex quoted strings When you specify an expression for a
property value, it is difficult to specify nested quotes correctly—the code is
hard to understand and prone to error. For Describe, this is less of a drawback—
strings do not become as complex because they do not include an expression.
458 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
For more information For more information on syntax and usage, see Describe and Modify in Chapter
9, Methods for the DataWindow Control.
460 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
462 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
dwo_empsalary = dw_1.Object.emp_salary
dwo_empsalary = dw_1.Object.emp_salary
dwo_empsalary[1] // Incorrect: array of DWObject
dwo_empsalary.Primary[1] // Single data item
464 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
If the control is a column, you can get data from the whole column or from
specific rows. You must specify the buffer from which you want to retrieve
data. In this statement, row is another argument passed to the event so the value
in ls_data is the data in the row and column the user clicked. In this example,
if the column value is not a string, an error occurs (check ColType property to
get the column datatype):
ls_data = dwo.Primary[row]
This statement assigns a new value to the row and column the user clicked. The
assignment does not trigger the ItemChanged event and bypasses validation. If
the column is not numeric, an error occurs:
dwo.Primary[row] = 41
This statement gets all the data in the column the user clicked. The data is
stored as an array in the Any variable. An Any variable can hold all datatypes,
so no error occurs:
Any la_data
la_data = dwo
This statement gets data in the column from selected rows. The data is stored
as an array in the Any variable:
Any la_data
la_data = dwo.Selected
You can prevent the application from terminating by handling the error in the
DataWindow control’s Error event or by catching the error in a try-catch block.
Responding to errors The Error event’s arguments give you several options for responding to the
in the Error event error. You choose a course of action and set the action argument to a value of
script
the ExceptionAction enumerated datatype.
If you are trying to find out a property value and you know the expression
might cause an error, you can include code that prepares for the error by storing
a default value in an instance variable. Then the Error event script can return
that value in place of the failed expression.
There are three elements to this technique: the declaration of an instance
variable, the script that sets the variable’s default value and then accesses a
DataWindow property, and the Error event script. These elements are shown in
Example 2 below.
466 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
Responding to errors You can prevent the application from terminating by handling the DataWindow
in a try-catch block runtime error (DWRuntimeError) in a try-catch block. If you are trying to find
out a property value and you know the expression might cause an error, you can
include code that automatically assigns a valid default value that can be
substituted for the failed expression, as in Example 2 below.
Examples Example 1 This code displays complete information about the error in a
multilineedit mle_1.
The error event script:
mle_1.text = &
"error#: " + string(errornumber) + "~r~n" + &
"text: " + errortext + "~r~n" + &
"parent: " + errorwindowmenu + "~r~n" + &
"object: " + errorobject + "~r~n" + &
"line: " + string(errorline) + "~r~n"
action = ExceptionIgnore!
The try-catch block:
Try
... //DataWindow property expression
Catch (DWRuntimeError myExc)
mle_1.text = &
"error#: " + string(myExc.number) + "~r~n" +&
"text: " + myExc.text + "~r~n" + &
"script: " + myExc.routinename + "~r~n" + &
"object: " + myExc.objectname + "~r~n" + &
"line: " + string(myExc.line) + "~r~n"
End Try
If the correct evaluation of the expression is not critical to the application, the
application continues without terminating.
Example 2 This example provides a return value that will become the
expression’s value if evaluation of the expression causes an error.
There are three elements to code in the error event script. The instance variable
is a string:
string is_dwvalue
This script for a button or other control stores a valid return value in an instance
variable and then accesses a DataWindow property:
is_dwvalue = "5"
ls_border = dw_1.Object.id.Border
The Error event script uses the instance variable to provide a valid return value:
action = ExceptionSubstituteReturnValue!
returnvalue = is_dwvalue
The try-catch block:
try
ls_border = dw_1.Object.id.Border
catch (DWRuntimeError myDWError)
ls_border = "5"
end try
At runtime, if the id column does not exist or some other error occurs, then the
expression returns a valid border value—here the string "5". If you are using
the Error event instead of a try-catch block, you must first store the value in an
instance variable.
468 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
Argument Description
dwcontrolname a control within the DataWindow object. Possible values are
DataWindow (for properties that apply to the whole DataWindow)
or the name of a column, computed field, graph, line, oval,
picture, rectangle, roundrectangle, report, TableBlob, or text
control.
Datatype Any. The datatype of the expression is Any, but actual data is a string.
470 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
dw_1.Object.id.X = modstring
Example 5 This example makes three columns updatable and reports the
value of the Update property in the StaticText st_status. The reported value is
“yes,” not true:
dw_1.Object.id.Update = true
dw_1.Object.street.Update = true
dw_1.Object.last_name.Update = true
st_status.Text = &
"Updateable: id " + dw_1.Object.id.Update + &
", street " + dw_1.Object.street.Update + &
", last_name " + dw_1.Object.last_name.Update
Example 6 This example checks whether the id column is set up as a spin
control. If so, it sets the spin range to 0 through 10:
IF dw_1.Object.id.EditMask.Spin = "yes" THEN
dw_1.Object.id.EditMask.SpinRange = "0~~~~10"
END IF
Argument Description
nestedcontrolname The name of a DropDownDataWindow column, nested
report, or OLE Object control within the DataWindow
object in dwcontrol.
Datatype Any. The datatype of the expression is Any, but the actual data is a string.
For more information about the expression’s datatype, see Datatypes of
DataWindow property expressions in PowerBuilder on page 461.
472 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
Usage A nested report within a base report is usually in the detail band, and each
instance of the report is associated with a row. The property expression must
include a row number to identify which report to access. If the nested report is
in a band other than detail, there may be only one or a few instances of the
report, but it is still associated with a row. The expression must include a row
number that has an instance of the report.
The following table lists the band and the row that is associated with the report:
If the report is in this band This row is associated with the report
detail The specified row.
header The first row on the page. On screen, this is the
first row visible in the DataWindow body.
footer The last row on the page. On screen, this is the
last row visible in the DataWindow body.
header.n (group header) The first row of the group (where n is the group
number).
trailer.n (group trailer) The last row of the group (where n is the group
number).
summary The last row in the report.
Examples Example 1 Suppose that a DataWindow has the Composite presentation style
and includes a report called rpt_employee. The report includes a column
emp_id. This expression gets the validation expression for the column:
string ls_valid
ls_valid = dw_composite.Object.rpt_employee.&
Object.emp_id.Validation
Example 2 In a Composite DataWindow, one of the reports rpt_1 has a graph
gr_1. This example turns on grid lines for the category axis of that graph. The
example sets an instance variable to a default value of “not found.” If the
expression fails and triggers the Error event, the
ExceptionSubstituteReturnValue! action causes the text “not found” to be
returned so that the second assignment succeeds:
is_dwvalue = "not found"
dw_1.Object.rpt_1.Object.&
gr_1.Category.MajorGridline = 5
st_status.Text = dw_1.Object.rpt_1.Object.&
gr_1.Category.MajorGridline
The script for the Error event includes these lines:
action = ExceptionSubstituteReturnValue!
returnvalue = is_dwvalue
dw_emp.Object.rpt_salary[li_row].Object.&
salary.Background.Color = &
'255 ~t If(salary > 60000, 255, 0)'
dw_emp.Object.rpt_salary[li_row].Object.&
salary.Background.Mode = 0
END IF
NEXT
Example 4 In this example there is a graph in the summary band of a base
report called dw_emp. The graph is a nested report called rpt_graph_salaries.
Although the graph is not related to a particular row, you still need to provide
the row number associated with the summary band when you refer to its
properties. This statement turns on autoscaling for the values axis:
dw_emp.Object.rpt_graph_salaries.Object.&
gr_1.Values.AutoScale = 1
Example 5 If a column has a DropDownDataWindow edit style, there are
properties that affect the column’s appearance. Using nested object syntax, you
can also change properties of the child DataWindow for the column. In this
example, the DataWindow dw_gift allows a clerk at a nonprofit organization
to record donations. The clerk can pick a standard donation amount from a
drop-down DataWindow.
This example makes the drop-down DataWindow column called amount a
required value and changes the display format for the dollars column in the
child DataWindow:
474 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
dw_gift.Object.amount.dddw.Required = "Yes"
dw_gift.Object.amount.Object.dollars.Format = "$#,##0"
dw_1.Modify(modstring)
The resulting string when red_amount is set to 128 is:
emp_id.Color='128\tIf(emp_status=~'A~',255,128)'
The following is a simpler example without the If function. The Color property
for the column specified in ls_columnname is set to a constant value. You do
not need quotes around the value if you are not specifying an expression:
dw_1.Modify(ls_columnname + ".Color=255");
Drawbacks Setting several properties at once is possible but hard to debug
Although you can set several properties in a single method call, it is harder to
understand and debug scripts that do so.
For example, the code for setting three properties is not too complex because
there are no nested strings:
rtn = dw_1.Modify("emp_id.Font.Italic=0
oval_1.Background.Mode=0
oval_1.Background.Color=255");
Complex quoted strings are sometimes required When you specify an
expression for a property value, it is difficult to specify nested quotes
correctly—the code is hard to understand and prone to error. For Describe, this
is less of a drawback—strings will not become as complex because they do not
include an expression.
For example, this string entered on a single line in a script assigns a
DataWindow expression to the Color property:
Modify("emp_id.Color=\"16777215 \t
If(emp_status=~~\"A~~\",255,16777215)\"");
For more information about quoted strings, see the PowerScript Reference.
476 PowerBuilder
CHAPTER 5 Accessing DataWindow Object Properties in Code
You can use the error message to figure out what part of the string is incorrect.
This is most useful when you are testing your scripts. The error message, which
names the line and column number after which the string was not recognized,
may not be helpful after your application is deployed.
Describe When the string for Describe has an unrecognized property, Describe’s return
value ends with an exclamation point (!). It will return as many values as it
recognizes up to the incorrect one.
When you specify a valid property but that property doesn’t have a value
(either because it hasn’t been set or because its value is an expression that can’t
be evaluated), Describe returns a question mark (?) for that property. The
property’s actual value is null.
For more information For more information on syntax and usage, see Describe and Modify in Chapter
9, Methods for the DataWindow Control.
478 PowerBuilder
C H A P T E R 6 DataWindow Constants
About this chapter This chapter lists the PowerBuilder enumerated datatypes that provide
constants for setting DataWindow property values.
Contents
Topic Page
About DataWindow constants 479
Alphabetical list of DataWindow constants 480
AccessibleRole
Description Values for specifying the AccessibleRole property for DataWindows and
controls in DataWindows.
Values Use the numeric values with the AccessibleRole DataWindow object property
PowerBuilder enumerated value Numeric value
DefaultRole! 0
480 PowerBuilder
CHAPTER 6 DataWindow Constants
482 PowerBuilder
CHAPTER 6 DataWindow Constants
Alignment
Description Values for specifying the alignment of text in DataWindow columns or text
controls.
Values Use the numeric values with the Alignment DataWindow object property.
PowerBuilder
enumerated Numeric
value value Meaning
Left! 0 Text is left aligned.
Right! 1 Text is right aligned.
Center! 2 Text is centered.
Justify! 3 Wrapped text is justified. The last line of text is not
stretched to fill the area. So for a single line of text,
justified alignment will appear to have no effect.
Band
Description Values identifying the band containing the insertion point in a DataWindow
control.
In PowerBuilder, band values are returned by the Position method for a
RichTextEdit DataWindow.
Values
PowerBuilder Numeric
enumerated value value Meaning
Detail! 0 The detail band
Header! 1 The header band
Footer! 2 The footer band
Border
Description Values identifying the border style for a column in a DataWindow.
BorderStyle
Description Values for specifying the border style of the DataWindow control.
PowerBuilder only. Used for the Border property of the DataWindow control.
Values
PowerBuilder
enumerated Numeric
value value Meaning
StyleBox! 2 The DataWindow control is surrounded by a
rectangular box without any shading
StyleLowered! 5 The control has a 3D border with shading to make
it look lowered
StyleRaised! 6 The control has a 3D border with shading to make
it look raised
StyleShadowBox! 1 The control has a rectangular border with a drop
shadow
484 PowerBuilder
CHAPTER 6 DataWindow Constants
CharSet
Description Values for specifying the character set used in the DataWindow.
Generally, the value for CharSet is derived from the font selected for controls
within the DataWindow.
Values are used with the Font.CharSet DataWindow object property. Use the
numeric values, not the enumerated values, for DataWindow object properties.
Values
PowerBuilder Numeric
enumerated value value Meaning
— 1 The default character set for the specified font
CharSetAnsi! 0 Standard ANSI
CharSetUnicode! Unicode
CharSetAnsiHebrew! Right-to-left Hebrew
CharSetAnsiArabic! Right-to-left Arabic
CharSetDBCS- Double-byte Japanese
Japanese!
— 2 Symbol
— 128 Shift-JIS
— 255 OEM
DWBuffer
Description Values for specifying the DataWindow buffer containing the rows you want to
access.
Used in many DataWindow methods that access data.
Values
PowerBuilder
enumerated Numeric
value value Meaning
Primary! 0 The data in the primary buffer, meaning
data that has not been deleted or filtered
out. (Default value when argument is
optional.)
Delete! 1 Data in the delete buffer, meaning data
that has been deleted from the
DataWindow but has not been committed
to the database.
Filter! 2 Data in the filter buffer, meaning data that
has been removed from view.
DWConflictResolution
Description Values for specifying how to handle potential conflicts when synchronizing
DataWindows in a distributed application.
Values
PowerBuilder Numeric
enumerated value value Meaning
FailOnAnyConflict! 0 Prevents changes from being synchronized if
data in the source DataWindow has changed
since its state was captured. (Default value
when argument is optional.)
AllowPartialChanges! 1 Allows changes that are not in conflict to be
applied.
See also SetChanges on page 804 explains how to test whether conflicts exist.
DWItemStatus
Description Values for specifying how DataWindow data will be updated in the database.
486 PowerBuilder
CHAPTER 6 DataWindow Constants
Values
PowerBuilder
enumerated Numeric
value value Meaning
NotModified! 0 The information in the row or column is
unchanged from what was retrieved.
DataModified! 1 The information in the column or one of
the columns in the row has changed since
it was retrieved.
New! 2 The row is new but no values have been
specified for its columns. (Applies to rows
only, not to individual columns.)
NewModified! 3 The row is new, and values have been
assigned to its columns. In addition to
changes caused by user entry or the
SetItem method, a new row gets the status
NewModified when one of its columns has
a default value. (Apples to rows only, not
to individual columns.)
See also SetItemStatus on page 827 describes how to change individual item statuses
and how the status affects the SQL statements that update the database.
FillPattern
Description Values for the fill pattern of shapes (for example, bars or pie slices) in a graph
control.
Used in Get/SetSeriesStyle and Get/SetDataStyle methods for graph controls in
a DataWindow or PowerBuilder graph controls.
Values
PowerBuilder
enumerated Numeric
value value Meaning
Solid! 0 A solid color
Horizontal! 1 Horizontal lines
Vertical! 2 Vertical lines
FDiagonal! 3 Lines from upper left to lower right
BDiagonal! 4 Lines from lower left to upper right
PowerBuilder
enumerated Numeric
value value Meaning
Square! 5 A pattern of squares
Diamond! 6 A pattern of diamonds
grColorType
Description Values for specifying the purpose of a color in a graph, for example,
background or foreground.
Used in Get/SetSeriesStyle and Get/SetDataStyle methods for graph controls in
a DataWindow or for PowerBuilder graph controls.
Values
PowerBuilder
enumerated Numeric
value value Meaning
Foreground! 0 Text (fill color)
Background! 1 The background color
Shade! 2 The shaded area of three-dimensional graphics
LineColor! 3 The color of the line
grDataType
Description Values for specifying X or Y value when getting information about a scatter
graph.
488 PowerBuilder
CHAPTER 6 DataWindow Constants
grObjectType
Description Values that identify parts of a graph.
Used as the return value of the ObjectAtPointer method for graph controls in a
DataWindow or for PowerBuilder graph controls.
Values
PowerBuilder Numeric
enumerated value value Meaning
TypeGraph! 0 Any place within the graph control that isn’t
another grObjectType
TypeTitle! 4 The title of the graph
TypeLegend! 8 Within the legend box, but not on a series
label
TypeData! 2 A data point or other data marker
TypeCategory! 3 A label for a category
TypeCategoryAxis! 10 The category axis or between the category
labels
TypeCategoryLabel! 6 The label of the category axis
TypeSeries! 1 The line that connects the data points of a
series when the graph’s type is line or on the
series label in the legend box
TypeSeriesAxis! 9 The series axis of a 3D graph
TypeSeriesLabel! 5 The label of the series axis of a 3D graph
TypeValueAxis! 11 The value axis, including on the value labels
TypeValueLabel! 7 The user clicked the label of the value axis
grSymbolType
Description Values for the symbols associated with data points in a graph.
Used in Get/SetSeriesStyle and Get/SetDataStyle methods for graph controls in
a DataWindow or for PowerBuilder graph controls.
Values
PowerBuilder Numeric
enumerated value value Meaning
NoSymbol! 0 None
SymbolHollowBox! 1 A hollow box
SymbolX! 2 An X
SymbolStar! 3 A star
SymbolHollowUpArrow! 4 An outlined up arrow
SymbolHollowDownArrow! 5 An outlined down arrow
SymbolHollowCircle! 6 An outlined circle
SymbolHollowDiamond! 7 An outlined diamond
SymbolSolidBox! 8 A filled box
SymbolSolidDownArrow! 9 A filled down arrow
SymbolSolidUpArrow! 10 A filled up arrow
SymbolSolidDiamond! 11 A filled diamond
SymbolSolidCircle! 12 A filled circle
SymbolPlus! 13 A plus sign
LineStyle
Description Values for the pattern of lines in a graph.
Used in Get/SetSeriesStyle and Get/SetDataStyle methods for graph controls in
a DataWindow or for PowerBuilder graph controls.
490 PowerBuilder
CHAPTER 6 DataWindow Constants
Values
PowerBuilder
enumerated Numeric
value value Meaning
Continuous! 0 The line style is a solid line
Dash! 1 The line style is ----
DashDot! 2 The line style is -.-.-.
DashDotDot! 3 The line style is -..-..-..
Dot! 4 The line style is .....
Transparent! 5 The line allows the background shapes to show
through
MetaDataType
Description Values that specify whether metadata is saved when XML is exported from a
DataWindow object.
Values
PowerBuilder Numeric
enumerated value value Meaning
XMLNone! 0 Metadata (XML Schema or DTD) is not
generated when XML is exported
XMLSchema! 1 XML Schema is generated when XML is
exported
XMLDTD! 2 DTD is generated when XML is exported
RichTextToolbarActivation
Description Values for specifying when a font toolbar appears for a DataWindow.
Values
PowerBuilder Numeric
enumerated value value Meaning
RichTextToolbarActivation 0 Never displays a rich text toolbar.
Never!
RichTextToolbarActivation 1 Displays a rich text toolbar whenever a
OnEdit! column with the rich text edit style has
focus. This is the default setting.
RichTextToolbarActivation 2 Displays a rich text toolbar at all times
Always! when the DataWindow is visible.
RowFocusInd
Description Values for specifying the indicator for the current row in a DataWindow.
Used in the SetRowFocusIndicator method for DataWindow controls.
Values
PowerBuilder
enumerated Numeric
value value Meaning
Off! 0 There is no indicator for the current row
FocusRect! 1 The row with focus has a dotted rectangle around it
Hand! 2 A pointing hand appears in the left margin of the
DataWindow beside the row with focus
SaveAsType
Description Values for specifying a format for data you want to save.
Used in the SaveAs method for saving the data of a DataWindow, a graph
control in a DataWindow, or a PowerBuilder graph control.
Values
PowerBuilder Numeric
enumerated value value Meaning
Excel! 0 Microsoft Excel format.
492 PowerBuilder
CHAPTER 6 DataWindow Constants
PowerBuilder Numeric
enumerated value value Meaning
Text! 1 (Default) Tab-separated columns with a
return at the end of each row
CSV! 2 Comma-separated values
SYLK! 3 Microsoft Multiplan format
WKS! 4 Lotus 1-2-3 format
WK1! 5 Lotus 1-2-3 format
DIF! 6 Data Interchange Format
dBASE2! 7 dBASE-II format
dBASE3! 8 dBASE-III format
SQLInsert! 9 SQL syntax
Clipboard! 10 Save an image of the graph to the
clipboard
PSReport! 11 Powersoft Report (PSR) format
WMF! 12 Windows Metafile format
HTMLTable! 13 HTML TABLE, TR, and TD elements
Excel5! 14 Microsoft Excel Version 5 format
XML! 15 Extensible Markup Language (XML)
XSLFO! 16 Extensible Stylesheet Language
Formatting Objects (XSL-FO)
PDF! 17 Portable Document Format (PDF)
Excel8! 18 Microsoft Excel Version 8 and higher
format
EMF! 19 Enhanced Metafile Format
XLSX! 24 Microsoft Excel 2007 format for XML
data (requires .NET Framework 3.0 or
later)
XLSB! 25 Microsoft Excel 2007 format for binary
data (requires .NET Framework 3.0 or
later)
Obsolete values
The following SaveAsType values are considered to be obsolete and will be
removed in a future release: Excel!, WK1!, WKS!, SYLK!, dBase2!, WMF!.
Use Excel8!, XLSB!, or XLSX! for current versions of Microsoft Excel!, and
EMF! in place of WMF!.
SQLPreviewFunction
Description Values passed to the SQLPreview DataWindow event to indicate what method
triggered the event.
Values
PowerBuilder
enumerated Numeric
value value Meaning
PreviewFunction 1 The program called the DataWindow Retrieve
Retrieve! method
PreviewFunction 2 The program called the DataWindow
ReselectRow! ReselectRow method
PreviewFunction 3 The program called the Datawindow Update
Update! method
SaveMetaData
Description Values that specify how metadata is saved when it is generated with the XML
exported from a DataWindow object.
494 PowerBuilder
CHAPTER 6 DataWindow Constants
Values
PowerBuilder Numeric
enumerated value value Meaning
MetaDataInternal! 0 Metadata is saved into the generated XML
document or string. To save data using the
.Data.XML expression syntax, you must
use this value.
MetaDataExternal! 1 Metadata is saved as an external .xsd or
.dtd file (SaveAs method only).
SQLPreviewType
Description Values passed to the SQLPreview DataWindow event to indicate what SQL
statement is being sent to the DBMS.
Values
PowerBuilder
enumerated Numeric
value value Meaning
PreviewSelect! 1 A SELECT statement
PreviewInsert! 2 An INSERT statement
PreviewDelete! 3 A DELETE statement
PreviewUpdate! 4 An UPDATE statement
WebPagingMethod
Description Values that specify how the Web DataWindow handles paging requests.
Obsolete constant
WebPagingMethod is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Values
PowerBuilder Numeric
enumerated value value Meaning
Postback! 0 Post back to server to perform paging
operations
Callback! 1 Use script callbacks to retrieve the next
page of XML data
XMLClientside! 2 Retrieve entire result set and use XSLT
transformation of cached stylesheet to
perform paging operations on the client
496 PowerBuilder
C H A P T E R 7 Properties of the DataWindow
Control and DataStore
About this chapter The chapter lists the properties of the DataWindow control and DataStore.
These properties can be set in code to control the appearance and behavior
of the container for the DataWindow object.
498 PowerBuilder
CHAPTER 7 Properties of the DataWindow Control and DataStore
DataWindow
property Datatype Description
Enabled Boolean Specifies whether the control is enabled (can be selected). Values
are:
• True – Control is enabled.
• False – Control is not enabled.
Height Integer Specifies the height of the DataWindow control, in PowerBuilder
units.
HScrollBar Boolean Specifies whether a horizontal scroll bar displays in the control
when all the data cannot be displayed at one time. Values are:
• True – Horizontal scroll bar is displayed.
• False – Horizontal scroll bar is not displayed.
HSplitScroll Boolean Specifies whether the split bar displays in the control. Values are:
• True – Split bar is displayed.
• False – Split bar is not displayed.
Icon String Specifies the name of the ICO file that contains the icon that
displays when the DataWindow control is minimized.
LiveScroll Boolean Scrolls the rows in the DataWindow control while the user is
moving the scroll box.
MaxBox Boolean Specifies whether a Maximize Box displays in the DataWindow
control title bar. Values are:
• True – Maximize Box displays.
• False – Maximize Box does not display.
MinBox Boolean Specifies whether a Minimize Box displays in the DataWindow
control title bar. Values are:
• True – Minimize Box displays.
• False – Minimize Box does not display.
Object DWObject Used for the direct manipulation of controls within a DataWindow
object from a script. These controls could be, for example, columns
or text controls.
For information, see Chapter 4, Accessing Data in Code and
Chapter 5, Accessing DataWindow Object Properties in Code.
Resizable Boolean Specifies whether the DataWindow control is resizeable. Values
are:
• True – DataWindow is resizeable.
• False – DataWindow is not resizeable.
DataWindow
property Datatype Description
RightToLeft Boolean Specifies that characters should be displayed in right-to-left order.
The application must be running on a Hebrew or Arabic version of
PowerBuilder under an operating system that supports right-to-left
display. Values are:
• True – Characters display in right-to-left order.
• False – Characters display in left-to-right order.
TabOrder Integer Specifies the tab value of the DataWindow control within the
window or user object. (0 means the user cannot tab to the control.)
Tag String Specifies the tag value assigned to the DataWindow control.
Title String Specifies the text that displays in the DataWindow control title bar.
TitleBar Boolean Specifies whether a title bar displays in the DataWindow control.
The user can move the DataWindow control only if it has a title bar.
Values are:
• True – Title bar is displayed in control.
• False – No title bar is displayed in control.
Visible Boolean Specifies whether the DataWindow control is visible. Values are:
• True – Control is visible.
• False – Control is not visible.
VScrollBar Boolean Specifies whether a vertical scroll bar displays in the control when
not all the data can be displayed at one time. Values are:
• True – Vertical scroll bar is displayed.
• False – Vertical scroll bar is not displayed.
Width Integer Specifies the width of the DataWindow control, in PowerBuilder
units.
X Integer Specifies the X position (the distance from the left edge of the
window), in PowerBuilder units.
Y Integer Specifies the Y position (the distance from the top edge of the
window), in PowerBuilder units.
500 PowerBuilder
C H A P T E R 8 DataWindow Events
About this chapter This chapter describes what DataWindow objects are and the ways you
can use them in various programming environments.
Contents
Topic Page
About return values for DataWindow events 501
Categories of DataWindow events 502
DataWindow event cross-reference 503
Alphabetical list of DataWindow events 503
502 PowerBuilder
CHAPTER 8 DataWindow Events
RButtonDown
Printing PrintStart
PrintPage
PrintMarginChange
Printend
Rich Text RichTextCurrentStyleChanged
RichTextLoseFocus
RichTextLimitError
Scrolling ScrollHorizontal
ScrollVertical
TreeView actions Collapsed
Collapsing
Expanded
Expanding
TreeNodeSelected
TreeNodeSelecting
Miscellaneous Constructor
Destructor
Resize
GraphCreate for Graph controls and presentation styles
HTMLContextApplied (obsolete)
MessageText for crosstab DataWindows
BackTabOut
Description Occurs when the user presses Shift+Tab or, in some edit styles, the left arrow,
to move focus to the prior control in the Window or user object.
PowerBuilder event information
Event ID: pbm_dwnbacktabout
BackTabOut is not a standard PowerBuilder DataWindow event. To write a
script for this event, you must first define a user-defined event for the event ID
pbm_dwnbacktabout.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
ButtonClicked
Description Occurs when the user clicks a button inside a DataWindow object.
PowerBuilder event information
Event ID: pbm_dwnbuttonclicked
Argument Description
row Long by value. The number of the row the user clicked.
actionreturncode Long by value. The value returned by the action performed
by the button.
For information about return values, see the Action
DataWindow object property.
dwo DWObject by value. A reference to the control within the
DataWindow under the pointer when the user clicked.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The ButtonClicked event executes code after the action assigned to the button
has occurred.
This event is fired only if you have not selected Suppress Event Processing for
the button.
If Suppress Event Processing is on, only the Clicked event and the action
assigned to the button are executed when the button is clicked.
504 PowerBuilder
CHAPTER 8 DataWindow Events
If Suppress Event Processing is off, the Clicked event and the ButtonClicked
event are fired. If the return code of the ButtonClicking event is 0, the action
assigned to the button is executed and the ButtonClicked event is fired. If the
return code of the ButtonClicking event is 1, neither the action nor the
ButtonClicked event are executed.
Examples This statement in the ButtonClicked event displays the value returned by the
button’s action:
MessageBox(" ", actionreturncode)
This statement in the ButtonClicked event displays the value returned by the
button’s action:
String ls_Object
String ls_Win
ls_Object = String(dwo.name)
If ls_Object = "cb_close" Then
Close(Parent)
ButtonClicking
Description Occurs when the user clicks a button. This event occurs before the
ButtonClicked event.
PowerBuilder event information
Event ID: pbm_dwnbuttonclicking
Argument Description
row Long by value. The number of the row the user clicked.
dwo DWObject by value. A reference to the control within the
DataWindow under the pointer when the user clicked.
Return codes Set the return code to affect the outcome of the event:
0 Execute the action assigned to the button, then trigger the
ButtonClicked event
1 Prevent the action assigned to button from executing and the
ButtonClicked event from firing
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage Use the ButtonClicking event to execute code before the action assigned to the
button occurs. If the return code is 0, the action assigned to the button is then
executed and the ButtonClicked event is fired. If the return code is 1, the action
and the ButtonClicked event are inhibited.
This event is fired only if you have not selected Suppress Event Processing for
the button.
The Clicked event is fired before the ButtonClicking event.
506 PowerBuilder
CHAPTER 8 DataWindow Events
Examples This statement in the ButtonClicking event displays a message box before
proceeding with the action assigned to the button:
MessageBox(" ", "Are you sure you want to proceed?")
See also ButtonClicked
Clicked
Description Occurs when the user clicks anywhere in a DataWindow control.
PowerBuilder event information
Event ID: pbm_dwnlbuttonclk
Argument Description
xpos Integer by value. The distance of the pointer from the left
side of the DataWindow workspace. The distance is given
in pixels.
ypos Integer by value. The distance of the pointer from the top
of the DataWindow workspace. The distance is given in
pixels.
row Long by value. The number of the row the user clicked.
If the user does not click on a row, the value of the row
argument is 0. For example, row is 0 when the user clicks
outside the data area, or in the header, summary, or footer
area.
dwo DWObject by value. A reference to the control within the
DataWindow under the pointer when the user clicked.
Return codes Set the return code to affect the outcome of the event:
0 Continue processing
1 Prevent the focus from changing
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage The DataWindow Clicked event occurs when the mouse button is pressed
down.
The dwo, Name, or object argument provides easy access to the control the user
clicks within the DataWindow. You do not need to know the coordinates of
elements within the DataWindow to program control-specific responses to the
user’s clicks. For example, you can prevent editing of a column and use the
Clicked script to set data or properties for the column and row the user clicks.
A click can also trigger RowFocusChanged and ItemFocusChanged events. A
double-click triggers a Clicked event, then a DoubleClicked event.
For graphs in DataWindow controls, the ObjectAtPointer method provides
similar information about objects within the graph control.
PowerBuilder programming note The xpos and ypos arguments provide the
same values the functions PointerX and PointerY return when you call them for
the DataWindow control.
Examples This code highlights the row the user clicked.
This.SelectRow(row, true)
If the user clicks on a column heading, this code changes the color of the label
and sorts the associated column. The column name is assumed to be the name
of the heading text control without _t as a suffix.
string ls_name
ls_name = dwo.Name
ls_name = Left(ls_name, Len(ls_name) - 2)
508 PowerBuilder
CHAPTER 8 DataWindow Events
RButtonDown
RowFocusChanged
RowFocusChanging
Collapsed
Description Occurs when a node in a TreeView DataWindow has collapsed.
PowerBuilder event information
Event ID: pbm_dwncollapsed
Argument Description
row Long by value. The number of the first row in the group to be
collapsed.
grouplevel Long by value. The TreeView level of the group to be collapsed.
Collapsing
Description Occurs before a node in a TreeView DataWindow collapses.
PowerBuilder event information
Event ID: pbm_dwncollapsing
Argument Description
row Long by value. The number of the first row in the group to be
collapsed.
grouplevel Long by value. The TreeView level of the group to be collapsed.
Return codes Set the return code to affect the outcome of the event. Return 0 to continue
processing (collapse the selected node) or return any other value to cancel the
collapse.
Usage A TreeView node collapses when the user clicks the State icon (-) in the
TreeView DataWindow or uses any of the Collapse methods.
The Collapsing event occurs before the Collapsed event.
Examples The following statements in the Collapsing event script display a message box
that allows the user to cancel the operation. The message box does not display
if the Collapsing event was triggered by the CollapseAll or CollapseLevel
methods:
Integer li_ret
ELSE
RETURN 1
END IF
END IF
See also Collapsed
Expanding
Constructor
Description Occurs when the DataWindow control or DataStore object is created, just
before the Open event for the window that contains the control.
PowerBuilder event information
Event ID: pbm_constructor
510 PowerBuilder
CHAPTER 8 DataWindow Events
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage You can write code for the Constructor event to affect DataWindow properties
before it is displayed.
Examples This example retrieves data for the DataWindow dw_1 before its window is
displayed:
dw_1.SetTransObject(SQLCA)
dw_1.Retrieve( )
See also Destructor
DBError
Description Occurs when a database error occurs in the DataWindow or DataStore.
PowerBuilder event information
Event ID: pbm_dwndberror
Argument Description
sqldbcode Long by value. A database-specific error code.
See your DBMS documentation for information on the
meaning of the code.
When there is no error code from the DBMS, sqldbcode
contains one of these values:
-1 – Cannot connect to the database because of missing
values in the transaction object.
-2 – Cannot connect to the database.
-3 – The key specified in an Update or Retrieve no
longer matches an existing row. This can happen when
another user has changed the row after you retrieved it.
-4 – Writing a blob to the database failed.
sqlerrtext String by value. A database-specific error message.
sqlsyntax String by value. The full text of the SQL statement being
sent to the DBMS when the error occurred.
buffer DWBuffer by value. The buffer containing the row
involved in the database activity that caused the error.
For a list of valid values, see DWBuffer on page 485.
Argument Description
row Long by value.
The number of the row involved in the database activity
that caused the error (the row being updated, selected,
inserted, or deleted).
Return codes Set the return code to affect the outcome of the event:
0 Display the error message and trigger the Transaction object’s DBError
event if it is defined.
1 Do not display the error message, and trigger the Transaction object’s
DBError event if it is defined.
2 Display the error message and ignore the Transaction object’s DBError
event whether it is defined or not.
3 Do not display the error message and ignore the Transaction object’s
DBError event whether it is defined or not.
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage By default, when the DBError event occurs in a DataWindow control, it
displays a system error message. You can display your own message and
suppress the system message by specifying a return code of 1 in the DBError
event.
Since DataStores are nonvisual, a system message does not display when the
DBError event occurs in a DataStore. You must add code to the DBError event
to handle the error.
If the row that caused the error is in the Filter buffer, you must unfilter it if you
want the user to correct the problem.
512 PowerBuilder
CHAPTER 8 DataWindow Events
END CHOOSE
Destructor
Description Occurs when the DataWindow control or DataStore object is destroyed,
immediately after the Close event of a window or form.
PowerBuilder event information
Event ID: pbm_destructor
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The Destructor event destroys the DataWindow control or DataStore object
and removes it from memory. After it has been destroyed, you can no longer
refer to it in other event code. (If you do, a runtime error occurs.)
Restriction on methods
Calling a DataStore method that accesses the underlying DataStore internals
within this event is not a valid coding practice and can fail silently. Such
methods include RowCount, DBCancel, and Modify.
When you issue a DESTROY on a DataStore, the Destructor event is triggered
and a Windows WM_DESTROY message is added to the object’s message
queue. WM_DESTROY invalidates the memory for the DataStore. If the
WM_DESTROY message is handled before the method calls in the Destructor
event, methods that attempt to access the destroyed memory fail silently.
DoubleClicked
Description Occurs when the user double-clicks in a DataWindow control.
PowerBuilder event information
Event ID: pbm_dwnlbuttondblclk
Argument Description
xpos Integer by value. The distance of the pointer from the
left side of the DataWindow’s workspace. The distance
is given in pixels.
ypos Integer by value. The distance of the pointer from the
top of the DataWindow’s workspace. The distance is
given in pixels.
row Long by value. The number of the row the user double-
clicked.
If the user did not double-click on a row, the value of the
row argument is 0. For example, row is 0 when the user
double-clicks outside the data area, in text or spaces
between rows, or in the header, summary, or footer area.
dwo DWObject by value. A reference to the control within
the DataWindow the user double-clicked.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The dwo, Name, or DWObject argument provides easy access to the control the
user clicks. You do not need to know the coordinates of elements within the
DataWindow to program control-specific responses to the user’s clicks. For
example, you can prevent editing of a column and use the Clicked event to set
data or properties for the column and row the user clicks.
PowerBuilder programming note The xpos and ypos arguments provide
the same values the functions PointerX and PointerY return when you call them
for the DataWindow control.
Examples This example displays a message box reporting the row and column clicked
and the position of the pointer relative to the upper-left corner of the
DataWindow control:
string ls_columnname
514 PowerBuilder
CHAPTER 8 DataWindow Events
DragDrop
Description PowerBuilder only Occurs when the user drags an object onto the control
and releases the mouse button to drop the object.
PowerBuilder event information
Event ID: pbm_dwndragdrop
Argument Description
source DragObject by value. A reference to the control being
dragged.
row Long by value. The number of the row the pointer was over
when the user dropped the object.
If the pointer was not over a row, the value of the row
argument is 0. For example, row is 0 when the pointer is
outside the data area, in text or spaces between rows, or in
the header, summary, or footer area.
dwo DWObject by value. A reference to the control under the
pointer within the DataWindow when the user dropped the
object.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
DragEnter
Description PowerBuilder only Occurs when the user is dragging an object and enters
the control.
PowerBuilder event information
Event ID: pbm_dwndragenter
Argument Description
source DragObject by value. A reference to the control being
dragged.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage Obsolete methods in PowerBuilder You no longer need to call the
DraggedObject method in a drag event. Use the source argument instead.
See also DragDrop
DragLeave
DragWithin
516 PowerBuilder
CHAPTER 8 DataWindow Events
DragLeave
Description PowerBuilder only Occurs when the user is dragging an object and leaves
the control.
PowerBuilder event information
Event ID: pbm_dwndragleave
Argument Description
source DragObject by value. A reference to the control being
dragged.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage Obsolete methods in PowerBuilder You no longer need to call the
DraggedObject method in a drag event. Use the source argument instead.
Examples This example checks the name of the control being dragged and if it is dw_1,
it cancels the drag operation:
IF ClassName(source) = "dw_1" THEN
dw_1.Drag(Cancel!)
END If
See also DragDrop
DragEnter
DragWithin
DragWithin
Description PowerBuilder only Occurs when the user is dragging an object within the
control.
PowerBuilder event information
Event ID: pbm_dwndragleave
Argument Description
source DragObject by value. A reference to the control being
dragged.
Argument Description
row Long by value. The number of the row the pointer is over.
If the pointer is not over a row, the value of the row
argument is 0. For example, row is 0 when the pointer is
outside the data area, in text or spaces between rows, or in
the header, summary, or footer area.
dwo DWObject by value. A reference to the control under the
pointer within the DataWindow.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The DragWithin event occurs repeatedly as the mouse moves within the
control.
Obsolete methods in PowerBuilder You no longer need to call the
DraggedObject method in a drag event. Use the source argument instead.
See also DragDrop
DragEnter
DragLeave
DropDown
Description Occurs just before the list provided by a DropDownDataWindow is displayed.
Use this event to retrieve new data for the child DataWindow.
A DropDownDataWindow is a drop-down choice list whose data is provided
by retrieving data for another DataWindow. To create a
DropDownDataWindow, you assign the DropDownDataWindow edit style to
a column and associate it with another DataWindow that retrieves the data for
the choice list.
PowerBuilder event information
Event ID: pbm_dwndropdown
DropDown is not a standard PowerBuilder DataWindow event. To write a
script for this event, you must first define a user-defined event for the event ID
pbm_dwndropdown.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
518 PowerBuilder
CHAPTER 8 DataWindow Events
EditChanged
Description Occurs for each keystroke the user types in an edit control in the DataWindow.
PowerBuilder event information
Event ID: pbm_dwnchanging
Argument Description
row Long by value. The number of the row containing the item
whose value is being changed.
dwo DWObject by value. A reference to the column containing
the item whose value is being changed. Dwo is a reference
to the column control, not the name of the column.
data String by value. The current contents of the DataWindow
edit control.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Examples This example displays the row and column that the user is editing in a
StaticText control:
st_1.Text = "Row " + String(row) &
+ " in column " + dwo.Name
See also ItemChanged
Error
Description PowerBuilder Occurs when an error is found in a data or property expression
for an external object or a DataWindow object. Also occurs when a
communications error is found in a distributed application.
PowerBuilder event information
Event ID: None
Argument Description
errornumber Unsigned integer by value (PowerBuilder’s error number).
errortext String, read-only (PowerBuilder’s error message).
errorwindowmenu String, read-only. The name of the window or menu that is the
parent of the object whose script caused the error.
errorobject String, read-only. The name of the object whose script caused
the error.
Argument Description
errorscript String, read-only. The full text of the script in which the error
occurred.
errorline Unsigned integer by value. The line in the script where the
error occurred.
action ExceptionAction by reference.
A value you specify to control the application’s course of
action as a result of the error. Values are:
• ExceptionFail! – Fail as if this script were not
implemented. This is the default action. The error
condition triggers the SystemError event if you do not
handle the error in a Try-Catch block.
• ExceptionIgnore! – Ignore this error and return as if no
error occurred. Use this option with caution because the
conditions that caused the error can cause another error.
• ExceptionRetry! – Execute the function or evaluate the
expression again in case the OLE server was not ready.
This option is not valid for DataWindows.
• ExceptionSubstituteReturnValue! – Use the value
specified in the returnvalue argument instead of the value
returned by the OLE server or DataWindow and cancel the
error condition.
returnvalue Any by reference. A value whose datatype matches the
expected value that the OLE server or DataWindow would
have returned.
This value is used when the value of action is
ExceptionSubstituteReturnValue!.
520 PowerBuilder
CHAPTER 8 DataWindow Events
The Error event gives you an opportunity to substitute a default value when the
error is not critical to your application. Its arguments also provide information
that is helpful in debugging. For example, the arguments can help you debug
DataWindow data expressions that cannot be checked by the compiler—such
expressions can only be evaluated at runtime.
Expanded
Description Occurs when a node in a TreeView DataWindow has expanded.
PowerBuilder event information
Event ID: pbm_dwnexpanded
Argument Description
row Long by value. The number of the first row in the group that has been
expanded.
grouplevel Long by value. The TreeView level of the group that has been
expanded.
522 PowerBuilder
CHAPTER 8 DataWindow Events
Expanding
Description Occurs before a node in a TreeView DataWindow expands.
PowerBuilder event information
Event ID: pbm_dwnexpanding
Argument Description
row Long by value. The number of the first row in the group to be
expanded.
grouplevel Long by value. The TreeView level of the group to be expanded.
Return codes Set the return code to affect the outcome of the event. Return 0 to continue
processing (expand the selected node) or return any other value to cancel the
expansion.
Usage A TreeView node expands when the user clicks the State icon (+) in the
TreeView DataWindow or uses any of the Expand methods.
The Expanding event occurs before the Expanded event.
Examples The following statements in the Expanding event script display a message box
that allows the user to cancel the operation:
Integer li_ret
GetFocus
Description Occurs just before the control receives focus (before it is selected and becomes
active).
GraphCreate
Description Occurs after the DataWindow control creates a graph and populates it with
data, but before it has displayed the graph. In this event, you can change the
appearance of the data about to be displayed.
PowerBuilder event information
Event ID: pbm_dwngraphcreate
GraphCreate is not a standard PowerBuilder DataWindow event. To write a
script for this event, you must first define a user-defined event for the event ID
pbm_dwngraphcreate.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Examples The following statement sets to black the foreground (fill) color of the Q1
series in the graph gr_quarter, which is in the DataWindow control dw_report.
The statement is in the user event GraphCreate, which is associated with the
event ID pbm_dwngraphcreate:
dw_report.SetSeriesStyle("gr_quarter", "Q1", &
foreground!, 0)
See also GetFocus
HTMLContextApplied
Description Occurs when the SetHTMLAction method has been called to apply an action
to a DataWindow control or DataStore. The event occurs after the context has
been set but before the action is applied.
524 PowerBuilder
CHAPTER 8 DataWindow Events
Obsolete method
HTMLContextApplied is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Return codes Set the return code to affect the outcome of the event:
0 Continue processing (execute the action)
1 Prevent the action from being applied
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage Actions include navigating from page to page, inserting and deleting rows,
retrieving and updating data. Typically the HTMLContextApplied event is
used to call server-side methods for validating data that is about to be updated.
The SetHTMLAction method triggers the HTMLContextApplied event. If the
HTMLContextApplied event returns 1, then the SetHTMLAction method
returns -4 to indicate that the action was canceled.
See also SetHTMLAction method
ItemChanged
Description Occurs when a field in a DataWindow control has been modified and loses
focus (for example, the user presses Enter, the Tab key, or an arrow key or
clicks the mouse on another field within the DataWindow). It occurs before the
change is applied to the item. ItemChanged can also occur when the AcceptText
or Update method is called for a DataWindow control or DataStore object.
PowerBuilder event information
Event ID: pbm_dwnitemchange
Argument Description
row Long by value. The number of the row containing the item
whose value is being changed.
dwo DWObject by value. A reference to the column containing
the item whose value has been changed. Dwo is a reference
to the column control, not the name of the column.
data String by value. The new data the user has specified for the
item.
Return codes Set the return code to affect the outcome of the event:
0 (Default) Accept the data value
1 Reject the data value and do not allow focus to change
2 Reject the data value but allow the focus to change
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage The ItemChanged event does not occur when the DataWindow control itself
loses focus. If the user clicks on an Update or Close button, you will need to
write a script that calls AcceptText to see if a changed value should be accepted
before the button’s action occurs. For information on the right way to do this,
see AcceptText on page 556.
Examples This example uses the ItemChanged event to provide additional validation; if
the column is emp_name, it checks that only letters were entered in the column:
IF Dwo.name = "Emp_name" THEN
IF NOT Match(Data, "^[A-za-z]$") THEN
526 PowerBuilder
CHAPTER 8 DataWindow Events
RETURN 2
END IF
END IF
See also ItemError
ItemError
Description Occurs when a field has been modified, the field loses focus (for example, the
user presses Enter, Tab, or an arrow key or clicks the mouse on another field in
the DataWindow), and the data in the field does not pass the validation rules
for its column. ItemError can also occur when a value imported into a
DataWindow control or DataStore does not pass the validation rules for its
column.
PowerBuilder event information
Event ID: pbm_dwnitemvalidationerror
Argument Description
row Long by value. The number of the row containing the item
whose new value has failed validation.
dwo DWObject by value. A reference to the column containing
the item. Dwo is a reference to the column control, not the
name of the column.
data String by value. The new data the user specified for the
item.
Return codes Set the return code to affect the outcome of the event:
0 (Default) Reject the data value and show an error message box
1 Reject the data value with no message box
2 Accept the data value
3 Reject the data value but allow focus to change
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage If the return code is 0 or 1 (rejecting the data), the field with the incorrect data
regains the focus.
The ItemError event occurs instead of the ItemChanged event when the new
data value fails a validation rule. You can force the ItemError event to occur by
rejecting the value in the ItemChanged event.
Examples The following excerpt from an ItemError event script of a DataWindow control
allows the user to blank out a column and move to the next column. For
columns with datatypes other than string, the user cannot leave the value empty
(the empty string does not match the datatype). If the user tried to leave the
value blank, this code sets the value of the column to a null value of the
appropriate datatype.
string ls_colname, ls_datatype
ls_colname = dwo.Name
ls_datatype = dwo.ColType
// Reject the value if non-blank
IF Trim(data) <> "" THEN
RETURN 0
END IF
CASE "long"
integer null_num
SetNull(null_num)
This.SetItem(row, ls_colname, null_num)
RETURN 3
CASE "date"
date null_date
SetNull(null_date)
This.SetItem(row, ls_colname, null_date)
RETURN 3
528 PowerBuilder
CHAPTER 8 DataWindow Events
ItemFocusChanged
Description Occurs when the current item in the control changes.
PowerBuilder event information
Event ID: pbm_dwnitemchangefocus
Argument Description
row Long by value. The number of the row containing the item that just
gained focus.
dwo DWObject by value. A reference to the column containing the item.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage ItemFocusChanged occurs when focus is set to another column in the
DataWindow, including when the DataWindow is first displayed.
The row and column together uniquely identify an item in the DataWindow.
PowerBuilder programming note In the ItemFocusChanged event, dwo is
always a column control. Therefore, you can get more information about it by
examining any properties that are appropriate for columns such as dwo.id and
dwo.Name.
Examples This example reports the row and column that just gained focus and that just
lost focus. (The first time the event occurs, there is no item that just lost focus;
the script saves the row number and column name in two instance variables
called ii_row and is_colname so that the old item is known the next time the
event occurs.)
IF ii_row > 0 THEN
sle_olditem.Text = "Old row: " + String(ii_row) &
+ " Old column: " + is_colname
END IF
is_colname = dwo.Name
See also RowFocusChanged
RowFocusChanging
KeyDown
Description Occurs for each keystroke when the user is editing in the DataWindow edit
control.
PowerBuilder event information
Event ID: pbm_dwnkey
KeyDown is not a standard PowerBuilder DataWindow event. To write a script
for this event, you must first define a user-defined event for the event ID
pbm_dwnkey.
Argument Description
key Integer by value.
keyflags UnsignedLong by value. The modifier keys that are pressed. The
keyflags value is the sum of the values for all the pressed keys.
Key values are:
• 1 Shift key
• 2 Ctrl key
• 3 Shift + Ctrl keys
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
LoseFocus
Description Occurs just before a control loses focus (after it becomes inactive).
PowerBuilder event information
Event ID: pbm_dwnkillfocus
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage Write code for a control’s LoseFocus event if you want some processing to
occur when the user changes focus to another control.
PowerBuilder programming note Because the MessageBox function grabs
focus, you should not use it when focus is changing, such as in a LoseFocus
event. Instead, you might display a message in the window’s title or a
MultiLineEdit.
530 PowerBuilder
CHAPTER 8 DataWindow Events
When to call AcceptText You should not call AcceptText in the LoseFocus
event or from a user event posted from LoseFocus, unless the DataWindow
control no longer has focus. For information about the right way to call
AcceptText when the DataWindow control loses focus, see the AcceptText
method.
See also GetFocus
AcceptText method
MessageText
Description Occurs when a crosstab DataWindow generates a message. Typical messages
are Retrieving data and Building crosstab.
PowerBuilder event information
Event ID: pbm_dwnmessageText
MessageText is not a standard PowerBuilder DataWindow event. To write a
script for this event, you must first define a user-defined event for the event ID
pbm_dwnmessagetext.
Argument Description
text String by value. The message text.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Examples The following line in the user event for pbm_dwnmessagetext displays
informational messages as MicroHelp in an MDI application (w_crosstab is an
MDI frame window). The informational messages are displayed in the MDI
application’s MicroHelp as the crosstab is rebuilt:
w_crosstab.SetMicroHelp(text)
See also GetFocus
MouseMove
Description Occurs when the user moves the mouse pointer in a DataWindow control.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The dwo, Name, or DWObject argument provides easy access to the control the
user clicks. You do not need to know the coordinates of elements within the
DataWindow to program control-specific responses to the user’s clicks. For
example, you can prevent editing of a column and use the Clicked event to set
data or properties for the column and row the user clicks.
PowerBuilder programming note The xpos and ypos arguments provide
the same values the functions PointerX and PointerY return when you call them
for the DataWindow control.
See also Clicked
DoubleClicked
MouseUp
RButtonDown
MouseUp
Description Occurs when the user releases a mouse button in a DataWindow control.
532 PowerBuilder
CHAPTER 8 DataWindow Events
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The dwo, Name, or DWObject argument provides easy access to the control the
user clicks. You do not need to know the coordinates of elements within the
DataWindow to program control-specific responses to the user’s clicks. For
example, you can prevent editing of a column and use the Clicked event to set
data or properties for the column and row the user clicks.
PowerBuilder programming note The xpos and ypos arguments provide
the same values the functions PointerX and PointerY return when you call them
for the DataWindow control.
See also Clicked
DoubleClicked
MouseMove
OnSubmit
Description This event is triggered just before the Web DataWindow causes a submit.
Obsolete event
OnSubmit is obsolete and should not be used, because the Web DataWindow
technology is obsolete.
function dw_second_OnSubmit()
{
dw_second.submitForm.dw_first_context.value =
dw_first.GetFullContext();
dw_second.submitForm.dw_first_action.value = "";
}
</SCRIPT>
To enable the second DataWindow to create the required fields on the submit
form, each of the DataWindows must have two arguments defined in the
SelfLinkArgs property:
• dw_first must have dw_second_context and dw_second_action defined
• dw_second must have dw_first_context and dw_first_action defined
Printend
Description Occurs when the printing of a DataWindow or DataStore ends.
534 PowerBuilder
CHAPTER 8 DataWindow Events
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Examples This statement displays the number of pages that were printed after the Print
method was called to print the contents of the DataWindow control:
st_1.Text = String(pagesprinted) &
+ " page(s) have been printed."
See also PrintMarginChange
PrintPage
PrintStart
PrintMarginChange
Description Occurs when the print margins of the DataWindow change.
PowerBuilder event information
Event ID: pbm_dwnprintmarginchange
PrintMarginChange is not a standard PowerBuilder DataWindow event. To
write a script for this event, you must first define a user-defined event for the
event ID pbm_dwnprintmarginchange.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
See also Printend
PrintPage
PrintStart
PrintPage
Description Occurs before each page of the DataWindow or DataStore is formatted for
printing.
PowerBuilder event information
Event ID: pbm_dwnprintpage
Argument Description
pagenumber Long by value. The number of the page about to be printed.
copy Long by value. The number of the copy being printed.
Return codes Set the return code to affect the outcome of the event:
0 Do not skip the page
1 Skip the page
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage The PrintPage event for a DataWindow control recalculates DataWindow
pages before each page of a DataWindow object is formatted for printing.
However, you cannot use this event to modify the page number of the current
page or the remaining pages in the DataWindow.
Examples After a script prints a DataWindow control, you can limit the number of pages
to be printed by suppressing every page after page 50.
This statement in a CommandButton’s Clicked event script prints the contents
of the DataWindow control:
dw_1.Print()
This code in the PrintPage event of dw_1 cancels printing after reaching page
50:
IF pagenumber > 50 THEN This.PrintCancel()
If you know every fifth page of the DataWindow contains the summary
information you want, you can suppress the other pages with some arithmetic
and a RETURN statement:
IF Mod(pagenumber / 5) = 0 THEN
RETURN 0
ELSE
RETURN 1
END IF
See also Printend
PrintMarginChange
536 PowerBuilder
CHAPTER 8 DataWindow Events
PrintStart
PrintStart
Description Occurs when the printing of the DataWindow or DataStore starts.
PowerBuilder event information
Event ID: pbm_dwnprintstart
Argument Description
pagesmax Long by value. The total number of pages that will be
printed, unless pages are skipped.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage To skip printing some of the pages in the DataWindow or DataStore, write code
for the PrintPage event.
See also Printend
PrintMarginChange
PrintPage
ProcessEnter
Description Occurs when the user presses the Enter key when focus is in the DataWindow
or the DataWindow’s edit control.
PowerBuilder event information
Event ID: pbm_dwnprocessenter
ProcessEnter is not a standard PowerBuilder DataWindow event. To write a
script for this event, you must first define a user-defined event for the event ID
pbm_dwnprocessenter.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
RButtonDown
Description Occurs when the right mouse button is pressed on the DataWindow control.
PowerBuilder event information
Event ID: pbm_dwnrbuttondown
Argument Description
flags UnsignedLong by value. The modifier keys and mouse buttons
that are pressed. The flags value is the sum of the values for all
the pressed keys and buttons.
Key and button values are:
• 1 – Left mouse button
• 2 – Right mouse button
• 4 – Shift key
• 8 – Ctrl key
• 16 – Middle mouse button
In the RButtonDown event, the right mouse button is always
pressed, so 2 is always summed in the value of flags.
For information on evaluating the flags value, see Syntax 2 of
MouseMove in the PowerScript Reference.
xpos Integer by value. The distance of the pointer from the left edge
of the window’s workspace in pixels.
ypos Integer by value. The distance of the pointer from the top of the
window’s workspace in pixels.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
See also Clicked
Resize
Description Occurs when the user or a script opens or resizes the client area of a
DataWindow control.
PowerBuilder event information
Event ID: pbm_dwnresize
538 PowerBuilder
CHAPTER 8 DataWindow Events
Argument Description
sizetype UnsignedLong by value.
• 0 – (SIZE_RESTORED) The DataWindow has been
resized, but it was not minimized or maximized. The
user may have dragged the borders or a script may have
called the Resize method.
• 1 – (SIZE_MINIMIZED) The DataWindow has been
minimized.
• 2 – (SIZE_MAXIMIZED) The DataWindow has been
maximized.
newwidth Integer by value. The width of the client area of the
DataWindow control in pixels.
newheight Integer by value. The height of the client area of the
DataWindow control in pixels.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
RetrieveEnd
Description Occurs when the retrieval for the DataWindow or DataStore is complete.
PowerBuilder event information
Event ID: pbm_dwnretrieveend
Argument Description
rowcount Long by value. The number of rows that were retrieved.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The number of rows retrieved in the rowcount argument is an unfiltered value.
Examples This message box displayed in the RetrieveEnd event script tells the user the
number of rows just retrieved:
MessageBox("Total rows retrieved", String(rowcount))
See also RetrieveRow
RetrieveStart
SQLPreview
UpdateStart
RetrieveRow
Description Occurs after a row has been retrieved.
PowerBuilder event information
Event ID: pbm_dwnretrieverow
Argument Description
row Long by value. The number of the row that was just
retrieved
Return codes Set the return code to affect the outcome of the event:
0 Continue processing
1 Stop the retrieval
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage If you want to guard against potentially large queries, you can have code in the
RetrieveRow event check the row argument and decide whether the user has
reached a maximum limit. When row exceeds the limit, you can return 1 to
abort the retrieval (in which case the retrieval cannot be resumed).
A script in the RetrieveRow event (even a comment) can significantly increase
the time it takes to complete a query.
Obsolete methods in PowerBuilder Instead of calling SetActionCode, use
the RETURN statement with a return code instead.
Examples This code for the RetrieveRow event aborts the retrieval after 250 rows have
been retrieved.
IF ll_row > 250 THEN
MessageBox("Retrieval Halted", &
"You have retrieved 250 rows, the allowed &
maximum.")
RETURN 1
ELSE
RETURN 0
END IF
See also RetrieveEnd
RetrieveStart
540 PowerBuilder
CHAPTER 8 DataWindow Events
SQLPreview
UpdateStart
RetrieveStart
Description Occurs when the retrieval for the DataWindow or DataStore is about to begin.
PowerBuilder event information
Event ID: pbm_dwnretrievestart
Return codes Set the return code to affect the outcome of the event:
0 Continue processing
1 Do not perform the retrieval
2 Do not reset the rows and buffers before retrieving data
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage A return code of 2 prevents previously retrieved data from being cleared,
allowing the current retrieval process to append new rows to the old data.
Obsolete methods in PowerBuilder Instead of calling SetActionCode, use
the RETURN statement with a return code instead.
Examples This statement in the RetrieveStart event prevents a reset from taking place
(rows will be added to the end of the previously retrieved rows):
RETURN 2
This statement in the RetrieveStart event aborts the retrieval:
RETURN 1
This code allows rows to be retrieved only when a user has an ID between 101
and 200 inclusive (the ID was stored in the instance variable il_id_number
when the user started the application); all other IDs cannot retrieve rows:
CHOOSE CASE il_id_number
CASE IS < 100
RETURN 1
END CHOOSE
See also RetrieveEnd
RetrieveRow
SQLPreview
UpdateStart
RichTextCurrentStyleChanged
Description Occurs when a column with the RichText edit style has focus and the current
style of the selection or cursor position has changed.
PowerBuilder event information
Event ID: pbm_dwnrichtextcurrentstlechanged
Argument Description
row Long by value. The number of the row the user clicked.
dwo DWObject by value. A reference to the control within the
DataWindow under the pointer when the user clicked.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
RichTextLoseFocus
Description Occurs when a column with the RichText edit style loses focus.
PowerBuilder event information
Event ID: pbm_dwnrichtextlosefocus
Argument Description
row Long by value. The number of the row the user clicked.
dwo DWObject by value. A reference to the control within the
DataWindow under the pointer when the user clicked.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
542 PowerBuilder
CHAPTER 8 DataWindow Events
RichTextLimitError
Description Occurs when data in a column with the RichText edit style exceeds column
size.
PowerBuilder event information
Event ID: pbm_dwnrichtextlimiterror
Argument Description
row Long by value. The number of the row the user clicked.
dwo DWObject by value. A reference to the control within the
DataWindow under the pointer when the user clicked.
text String by value. Plain text of column the user edited.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
RowFocusChanged
Description Occurs when the current row changes in the DataWindow.
PowerBuilder event information
Event ID: pbm_dwnrowchange
Argument Description
currentrow Long by value. The number of the row that has just become
current.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Usage The SetRow method, as well as user actions, can trigger the RowFocusChanged
and ItemFocusChanged events.
In a read-only DataWindow, when you click on any column that is not in the
current row, the RowFocusChanging and RowFocusChanged events fire, but
the current column is not changed—the current column remains at 0, since no
column can have focus. DataWindows are read-only if updates are not allowed,
all tab orders are set to 0, or all tab columns are protected.
RowFocusChanging
Description Occurs when the current row is about to change in the DataWindow. (The
current row of the DataWindow is not necessarily the same as the current row
in the database.)
The RowFocusChanging event occurs just before the RowFocusChanged
event.
PowerBuilder event information
Event ID: pbm_dwnrowchanging
Argument Description
currentrow Long by value. The number of the row that is current
(before the row is deleted or its number changes). If the
DataWindow object is empty, currentrow is 0 to indicate
there is no current row.
544 PowerBuilder
CHAPTER 8 DataWindow Events
Argument Description
newrow Long by value. The number of the row that is about to
become current. If the new row is going to be an inserted
row, newrow is 0 to indicate that it does not yet exist.
Return codes Set the return code to affect the outcome of the event:
0 Continue processing (setting the current row)
1 Prevent the current row from changing
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage Typically the RowFocusChanging event is coded to respond to a mouse click
or keyboard action that would change the current row in the DataWindow
object. The following methods can also trigger the RowFocusChanging event,
as well as the RowFocusChanged and ItemFocusChanged events, when the
action changes the current row:
SetRow
Retrieve
RowsCopy
RowsMove
DeleteRow
RowsDiscard
In these cases, the RowFocusChanging event script can prevent the changing
of the DataWindow object’s current row only. The script cannot prevent the
data from being changed (for example, the rows still get moved).
When you use the ScrollToRow method to change focus, the
RowFocusChanging event is triggered before the scroll occurs, and the
RowFocusChanged event is triggered after the scroll occurs.
In a tabular DataWindow, if the user clicks to change rows, the row focus does
not change, and the row and DataWindow do not scroll. You can still scroll
programmatically or by using the scroll bar.
In a read-only DataWindow, when you click on any column that is not in the
current row, the RowFocusChanging and RowFocusChanged events fire, but
the current column is not changed—the current column remains at 0, since no
column can have focus. DataWindows are read-only if updates are not allowed,
all tab orders are set to 0, or all tab columns are protected.
ScrollHorizontal
Description Occurs when user scrolls left or right in the DataWindow with the TAB or arrow
keys or the scroll bar.
PowerBuilder event information
Event ID: pbm_dwnhscroll
Argument Description
scrollpos Long by value. The distance in PowerBuilder units of the scroll box
from the left end of the scroll bar (if the DataWindow is split, in the
pane being scrolled).
546 PowerBuilder
CHAPTER 8 DataWindow Events
Argument Description
pane Integer by value. The number of the pane being scrolled. (When the
DataWindow is split with two scroll bars, there are two panes.)
Values are:
• 1 – The left pane (if the scroll bar is not split, the only pane).
• 2 – The right pane.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Examples This example displays the customer ID of the current row (the cust_id column)
in a SingleLineEdit control when the pane being scrolled is pane 1 and the
position is greater than 100:
string ls_id
ls_id = ""
IF pane = 1 THEN
IF scrollpos > 100 THEN
ls_id = String(dw_1.Object.Id[dw_1.GetRow()])
END If
END IF
sle_message.Text = ls_id
RETURN 0
See also ScrollVertical
ScrollVertical
Description Occurs when user scrolls up or down in the DataWindow with the Tab or arrow
keys or the scroll bar.
PowerBuilder event information
Event ID: pbm_dwnvscroll
Argument Description
scrollpos Long by value. The distance in PowerBuilder units of the
scroll box from the top of the scroll bar.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
Examples As the user scrolls vertically, this script displays the range of rows currently
being displayed in the DataWindow:
long ll_numrows
string ls_firstrow, ls_lastrow
ll_numrows = dw_1.RowCount()
ls_firstrow = dw_1.Object.Datawindow.FirstRowOnPage
ls_lastrow = dw_1.Object.Datawindow.LastRowOnPage
RETURN 0
See also ScrollHorizontal
SQLPreview
Description Occurs immediately before a SQL statement is submitted to the DBMS.
Methods that trigger DBMS activity are Retrieve, Update, and ReselectRow.
PowerBuilder event information
Event ID: pbm_dwnsql
Argument Description
request SQLPreviewFunction by value. The function that initiated the
database activity.
For a list of valid values, see SQLPreviewFunction on page 494.
sqltype SQLPreviewType by value. The type of SQL statement being sent
to the DBMS.
For a list of valid values, see SQLPreviewType on page 495.
sqlsyntax String by value. The full text of the SQL statement.
buffer DWBuffer by value. The buffer containing the row involved in the
database activity.
For a list of valid values, see DWBuffer on page 485.
row Long by value. The number of the row involved in the database
activity, that is, the row being updated, selected, inserted, or
deleted.
Return codes Set the return code to affect the outcome of the event:
548 PowerBuilder
CHAPTER 8 DataWindow Events
0 Continue processing
1 Stop processing
2 Skip this request and execute the next request
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage Some uses for the sqlsyntax argument are:
• Changing the SQL to be executed (you can get the value of sqlsyntax,
modify it, and call SetSQLPreview)
• Keeping a record (you can write the SQL statement to a log file)
If the row that caused the error is in the Filter buffer, you must unfilter it if you
want the user to correct the problem.
Examples This statement in the SQLPreview event sets the current SQL string for the
DataWindow dw_1:
dw_1.SetSQLPreview( &
"INSERT INTO billings VALUES(100, " + &
String(Current_balance) + ")")
See also RetrieveStart
UpdateEnd
UpdateStart
TabDownOut
Description Occurs when the user presses Enter or the down arrow to change focus to the
next control in a window or user object.
PowerBuilder event information
Event ID: pbm_dwntabdownout
TabDownOut is not a standard PowerBuilder DataWindow event. To write a
script for this event, you must first define a user-defined event for the event ID
pbm_dwntabdownout.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
TabOut
Description Occurs when the user presses Tab or, in some edit styles, the right arrow, to
move to the next control in a window or user object.
PowerBuilder event information
Event ID: pbm_dwntabout
TabOut is not a standard PowerBuilder DataWindow event. To write a script
for this event, you must first define a user-defined event for the event ID
pbm_dwntabout.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
550 PowerBuilder
CHAPTER 8 DataWindow Events
TabUpOut
Description Occurs when the user presses Shift+Enter or the up arrow to move to the
previous control in a window or user object.
PowerBuilder event information
Event ID: pbm_dwntabupout
TabUpOut is not a standard PowerBuilder DataWindow event. To write a script
for this event, you must first define a user-defined event for the event ID
pbm_dwntabupout.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
TreeNodeSelected
Description Occurs after a node in a TreeView DataWindow is selected.
PowerBuilder event information
Event ID: pbm_dwntreenodeselected
Argument Description
row Long by value. The number of the first row in the group that has been
selected.
grouplevel Long by value. The level of the group that has been selected.
TreeNodeSelecting
Description Occurs before a node in a TreeView DataWindow is selected.
PowerBuilder event information
Event ID: pbm_dwntreenodeselecting
Argument Description
row Long by value. The number of the first row in the group to be
selected.
grouplevel Long by value. The TreeView level of the group to be selected.
Return codes Set the return code to affect the outcome of the event. Return 0 to continue the
selecting operation or return any other value to cancel the selecting operation.
Usage The TreeNodeSelecting event occurs before the user selects a TreeNode or uses
the SelectTreeNode method.
Examples The following statements in the TreeNodeSelecting event refresh the text box
value with the new node:
sle_row.text = string(row)
sle_level.text = string(grouplevel)
return 0
See also TreeNodeSelected
UpdateEnd
Description Occurs when all the updates to the database from the DataWindow (or
DataStore) are complete.
PowerBuilder event information
Event ID: pbm_dwnupdateend
Argument Description
rowsinserted Long by value. The number of rows inserted.
rowsupdated Long by value. The number of rows updated.
rowsdeleted Long by value. The number of rows deleted.
Return codes There are no special outcomes for this event. The only code is:
0 Continue processing
See also RetrieveStart
552 PowerBuilder
CHAPTER 8 DataWindow Events
SQLPreview
UpdateStart
UpdateStart
Description Occurs after a script calls the Update method and just before changes in the
DataWindow or DataStore are sent to the database.
PowerBuilder event information
Event ID: pbm_dwnupdatestart
Return codes Set the return code to affect the outcome of the event:
0 Continue processing
1 Do not perform the update
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
See also RetrieveStart
SQLPreview
UpdateEnd
WSError
Description Occurs when an error is returned for a DataWindow using a Web service data
source. The error can occur during any of the following operations: connect,
retrieve, delete, insert, update, or disconnect.
PowerBuilder event information
Event ID: pbm_dwnwserror
Argument Description
operation String for the type of operation (Retrieve, Update, Insert,
Delete, Connect, or Disconnect)
rownum Long for the row number or 0 if not applicable, such as
when an error occurs during connection to the Web service
buffername String for the name of the buffer being accessed while the
error occurred (Primary, Filter, or Delete)
Argument Description
wsinfo String for the WSDL file, the URL that defines the Web
service, or the assembly that is used access the Web
service
method String for the name of the Web service method invoked
errormessage String for the exception message returned from the method
Return codes Set the return code to affect the outcome of the event:
0 Display the error message
1 Do not display the error message
For information on setting the return code in a particular environment, see
About return values for DataWindow events on page 501.
Usage Because you cannot use the DBError event with a Web Service DataWindow,
you must use the WSError event to obtain any error information.
Examples The following code in a WSError event script causes information about an
error to display in a message box:
MessageBox("Error event", "Error in row " &
+ string(rownum) + ", Occurred during " + method &
+ "; the cause of the error is: "+ errormessage)
See also DBError
554 PowerBuilder
C H A P T E R 9 Methods for the DataWindow
Control
About this chapter This chapter documents the methods of the DataWindow control in the
PowerBuilder and Web environments. You will find syntax, notes, and
examples for all environments.
Methods for graphs are in Chapter 10, Methods for Graphs in the
DataWindow Control.
Contents The methods in this chapter are listed alphabetically.
Before you begin For methods (or functions) in the PowerBuilder environment that apply to
controls other than DataWindows and DataStores, see the PowerScript
Reference.
AboutBox
Description Displays a dialog identifying the DataWindow, including copyright and
version information.
Obsolete method
AboutBox is obsolete and should not be used, because the DataWindow
Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
AcceptText
Description Applies the contents of the DataWindow’s edit control to the current item
in the buffer of a DataWindow control or DataStore. The data in the edit
control must pass the validation rule for the column before it can be stored
in the item.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.AcceptText ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or
child DataWindow
Return value Returns 1 if it succeeds and –1 if it fails (for example, the data did not pass
validation).
If there is no DataWindow object assigned to the DataWindow control or
DataStore, this method returns 1.
Usage When a user moves from item to item in a DataWindow control, the
control validates and accepts data the user has edited.
How to call AcceptText When a user modifies a DataWindow item then
immediately changes focus to another control in the window, the
DataWindow control does not accept the modified data—the data remains
in the edit control. Use the AcceptText method in this situation to ensure
that the DataWindow object contains the data the user edited.
However, you must not call AcceptText in the LoseFocus event or in a user
event posted from LoseFocus if the DataWindow control still has focus. If
you do, an infinite loop can occur.
The problem Normally, new data is validated and accepted when the
user moves to a new cell in the DataWindow. If the new data causes an
error, a message box displays, which causes the DataWindow to lose
focus. If you have also coded the LoseFocus event or an event posted from
LoseFocus to call AcceptText to validate data when the control loses focus,
this AcceptText runs because of the message box and triggers an infinite
loop of validation errors.
556 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
The solution It is desirable to validate the last changed data when the
control loses focus. You can accomplish this by making sure AcceptText
gets called only when the DataWindow control really has lost focus. The
third PowerBuilder example illustrates how to use an instance variable to
keep track of whether the DataWindow control has focus. The posted
event calls AcceptText only when the DataWindow control does not have
focus.
This is a change from previous versions of PowerBuilder. Previously, the
posted user event would run while the message box for the validation error
was displayed. Now, it runs after the message box is dismissed, causing
another validation error to occur and another message box to be displayed,
resulting in an infinite loop.
Events AcceptText can trigger an ItemChanged or an ItemError event.
Examples In this example, the user is expected to enter a key value (such as an
employee number) in a column of the DataWindow object, then click the
OK button. This script for the Clicked event for the button calls AcceptText
to validate the entry and place it in the DataWindow control. Then the
script uses the item in the Retrieve method to retrieve the row for that key:
IF dw_emp.AcceptText() = 1 THEN
dw_emp.Retrieve(dw_emp.GetItemNumber &
(dw_emp.GetRow(), dw_emp.GetColumn()))
END IF
This script for the Clicked event for a CommandButton accepts the text in
the DataWindow dw_Emp and counts the rows in which the column
named balance is greater than 0:
integer i, Count
dw_employee.AcceptText()
FOR i = 1 to dw_employee.RowCount()
IF dw_employee.GetItemNumber(i,'balance') &
> 0 THEN
Count = Count + 1
END IF
NEXT
This example illustrates how to validate newly entered data when the
DataWindow control loses focus. An instance variable keeps track of
whether the DataWindow control has focus. It is set in the GetFocus and
LoseFocus events. The LoseFocus event posts the ue_acceptText event,
which calls the AcceptText method only if the DataWindow control does
not have focus.
The instance variable:
boolean dw_has_focus
The GetFocus event:
dw_has_focus = true
The LoseFocus event:
dw_has_focus = false
dw_1.event post ue_acceptText( )
CanUndo
Description Tests whether Undo can reverse the most recent edit in the editable control
over the current row and column.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
boolean dwcontrol.CanUndo ( )
Argument Description
dwcontrol A reference to a DataWindow control
Return value Returns true if the last edit can be reversed (undone) using the Undo
method and false if the last edit cannot be reversed.
558 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples These statements check to see if the last edit in the edit control of
dw_contact can be reversed; if yes the statements reverse it, and if no they
display a message:
IF dw_contact.CanUndo() THEN
dw_contact.Undo()
ELSE
MessageBox(Parent.Title, "Nothing to Undo")
END IF
See also Undo
ClassName
Description Provides the class (or name) of the specified object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
string dwcontrol.ClassName ( )
Argument Description
dwcontrol A reference to a DataWindow control
Return value Returns the class of dwcontrol, the name assigned to the control. Returns
the empty string (“”) if an error occurs.
Usage Method inherited from PowerObject. For use with variables in the
PowerBuilder environment, see ClassName in PowerScript Reference.
Clear
Description Deletes selected text in the edit control over the current row and column,
but does not store it in the clipboard.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.Clear ( )
Argument Description
dwcontrol A reference to a DataWindow control
Return value Returns the number of characters that Clear removed from dwcontrol. If no
text is selected, no characters are removed and Clear returns 0. If an error
occurs, Clear returns –1.
Usage To select text for deleting, the user can use the mouse or keyboard. You
can also call the SelectText method in a script.
To delete selected text and store it in the clipboard, use the Cut method.
PowerBuilder environment
For use with other PowerBuilder controls, see Clear in the PowerScript
Reference.
Examples If the user is editing the emp_name column in dw_emp and selects the text
Wilson, this statement clears Wilson from the edit control and returns 6:
long chars_returned
chars_returned = dw_emp.Clear( )
If the text in the edit control in dw_emp is Wilson, the first statement
selects the W and the second clears W from the edit control. The return
value would be 1:
dw_emp.SelectText(1,1)
dw_emp.Clear( )
See also Clear in the PowerScript Reference
Cut
Paste
ReplaceText
SelectText
560 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ClearValues
Description Deletes all the items from a value list or code table associated with a
DataWindow column. (A value list is called a code table when it has both
display and data values.) ClearValues does not affect the data stored in the
column.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.ClearValues ( string column )
integer dwcontrol.ClearValues ( integer column )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
column The column whose value list you want to delete. Column
can be a column number (integer) or a column name
(string).
Return value Returns 1 if it succeeds and –1 if an error occurs. The return value is
usually not used.
Usage The edit style of the column can be DropDownListBox, Edit, or
RadioButton. ClearValues has no effect when column has the EditMask or
DropDownDataWindow edit style.
Examples This statement clears all values from the drop-down list of
dw_Employee’s status column:
dw_Employee.ClearValues("status")
See also GetValue
SetValue
Collapse
Description Collapses a group in a TreeView DataWindow that has the specified
TreeView level and includes the specified row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.Collapse(long row, long groupLevel)
Argument Description
dw_control A reference to a TreeView-style DataWindow control
row The number of the row that belongs to the TreeView level of the
group to be collapsed
groupLevel The TreeView level of the group to be collapsed
Return value Returns 1 if the collapse operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
-5 One or more of the parameters are invalid
-16 DataWindow is not a TreeView DataWindow
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the Collapse method to
collapse a group in a TreeView DataWindow that includes a particular row
in a particular TreeView level.
The Collapse method triggers the Collapsing and Collapsed events.
Examples The following example collapses the group at TreeView level 2 that
includes row 3:
integer li_ret
li_ret = dw_treeview.Collapse(3,2)
See also CollapseAll
CollapseAllChildren
CollapseLevel
Expand
CollapseAll
Description Collapses all groups in a TreeView DataWindow.
562 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.CollapseAll( )
Argument Description
dw_control A reference to a TreeView-style DataWindow control
Return value Returns 1 if the CollapseAll operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
-16 DataWindow is not a TreeView DataWindow
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the CollapseAll method to
collapse all groups in a TreeView DataWindow.
The CollapseAll method triggers the Collapsing and Collapsed events with
row and level arguments of –1.
Examples The following example collapses all groups:
integer li_ret
li_ret = dw_treeview.CollapseAll()
See also Collapse
CollapseAllChildren
CollapseLevel
ExpandAll
CollapseAllChildren
Description Collapses a group in a TreeView DataWindow that has the specified
TreeView level and includes the specified row; also collapses all the
group’s children.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Return value Returns 1 if the expand operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
-5 One or more of the parameters are invalid
-16 DataWindow is not a TreeView DataWindow
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the CollapseAllChildren
method to collapse a group with a specified TreeView level in a TreeView
DataWindow and all of its children.
The CollapseAllChildren method triggers the Collapsing and Collapsed
events.
Examples The following example collapses the group in a TreeView DataWindow
that has TreeView level 2 and includes row 3 and all the group’s children:
integer li_ret
li_ret = dw_treeview.CollapseAllChildren(3,2)
See also Collapse
CollapseAll
CollapseLevel
ExpandAllChildren
CollapseLevel
Description Collapses all the groups in a TreeView DataWindow that have the
specified TreeView level.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
564 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Return value Returns 1 if the CollapseLevel operation succeeds and one of the
following negative values if it fails:
-1 DataWindow is null
-5 One or more of the parameters are invalid
-16 DataWindow is not a TreeView DataWindow
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the CollapseLevel method to
collapse all the groups in a TreeView DataWindow that have a particular
TreeView level.
The CollapseLevel method triggers the Collapsing and Collapsed events
with a row argument of –1.
Examples The following example collapses TreeView level 2:
integer li_ret
li_ret = dw_treeview.CollapseLevel(2)
See also Collapse
CollapseAll
CollapseAllChildren
ExpandLevel
Copy
Description Puts selected text from the current row and column of an edit control onto
the clipboard. Copy does not change the source text.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, OLE DWObject
Syntax PowerBuilder
integer objectref.Copy ( )
Argument Description
objectref A reference to a DataWindow control
or
The fully qualified name of a OLE DWObject within a
DataWindow control that contains the object you want to
copy to the clipboard.
The fully qualified name for a DWObject has this syntax:
dwcontrol.Object.dwobjectname
Return value Returns the number of characters that were copied to the clipboard. If no
text is selected in objectref, no characters are copied and Copy returns 0. If
an error occurs, Copy returns –1.
For OLE DWObjects, Copy returns 0 if it succeeds and one of the
following negative values if an error occurs:
–1 Container is empty
–2 Copy Failed
–9 Other error
If objectref is null, the method returns null.
Usage To select text for copying, the user can use the mouse or keyboard. You
can also call the SelectText method in a script. For the RichTextEdit
presentation style in PowerBuilder, there are several additional methods
for selecting text: SelectTextAll, SelectTextLine, and SelectTextWord.
To insert the contents of the clipboard into a control, use the Paste method.
Copy does not delete the selected text or OLE object. To delete the data,
use the Clear or Cut method.
PowerBuilder environment
For use with other PowerBuilder controls, see Copy in the PowerScript
Reference.
Examples Assuming the selected text in the edit control of dw_emp is Temporary
Address, these statements copy Temporary Address to the clipboard and
store 17 in copy_amt:
integer copy_amt
copy_amt = dw_emp.Copy()
See also Clear
Clipboard in the PowerScript Reference
566 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Cut
Paste
ReplaceText
SelectedText
CopyRTF
Description Returns the selected text, pictures, and input fields in a RichText
DataWindow as a string with rich text formatting. Bitmaps and input fields
are included in the string.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
string dwcontrol.CopyRTF ( { boolean selected {, Band band } } )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore object. The
DataWindow object in the DataWindow control or DataStore
must be a RichText DataWindow.
selected A value indicating whether to copy selected text only. Values
(optional) are:
• true – (Default) Copy selected text only.
• false – Copy the entire contents of the band.
band A value specifying the band from which to copy text. Values
(optional) for this enumerated datatype are listed in Chapter 6,
DataWindow Constants.
The default is the band that contains the insertion point.
PowerBuilder environment
For use with RichTextEdit controls, see CopyRTF in the PowerScript
Reference. For information about rich text format, see the chapter about
implementing rich text in Application Techniques.
Examples This statement returns the text that is selected in the RichText
DataWindow dw_letter and stores it in the string ls_richtext:
string ls_richtext
ls_richtext = dw_letter.CopyRTF()
This example copies the text in dw_1, saving it in ls_richtext, and pastes
it into dw_2. The user clicks the RadioButton rb_true to copy selected text
and rb_false to copy all the text. The number of characters pasted is saved
in ll_numchars reported in the StaticText st_status:
string ls_richtext
boolean lb_selected
long ll_numchars
ls_richtext = dw_1.CopyRTF(lb_selected)
ll_numchars = dw_2.PasteRTF(ls_richtext)
st_status.Text = String(ll_numchars)
See also Copy
CopyRTF in the PowerScript Reference
Cut
PasteRTF
568 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Create
Description Creates a DataWindow object using DataWindow source code and puts
that object in the specified DataWindow control or DataStore object. This
dynamic DataWindow object does not become a permanent part of the
application source library.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer dwcontrol.Create ( string syntax {, string errorbuffer } )
Argument Description
dwcontrol A reference to the DataWindow control or DataStore in which
PowerBuilder will create the new DataWindow object.
syntax A string whose value is the DataWindow source code that will
be used to create the DataWindow object.
errorbuffer The name of a string that will hold any error messages that are
(optional) generated. If you do not specify an error buffer, a message box
will display the error messages.
When you examine syntax for existing DataWindow objects, you will see
that the order of the syntax can vary. Release must be the first statement,
and DataWindow should be the next statement. If you change the order,
use care; the order can affect the results.
570 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dw_new.SetTransObject(SQLCA)
dw_new.Retrieve()
See also SyntaxFromSQL in PowerScript Reference
SetTrans
SetTransObject
CreateError
Description Returns the error messages that were generated during a previous call to
Create.
Obsolete method
CreateError is obsolete and should not be used, because the DataWindow
Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
string dwcontrol.CreateError ( )
Argument Description
dwcontrol A reference to the DataWindow control for which you just
called the Create method
Return value Returns a string whose value is the error message text that was generated
when attempting to create a DataWindow from source code. If no errors
occur, returns an empty string.
Usage Call CreateError immediately after the Create method to get error
messages generated by Create.
See also Create
CreateFrom
Description Creates a DataStore object from the passed ResultSet object.
Applies to
DataWindow type Method applies to
PowerBuilder DataStore object
Syntax PowerBuilder
integer dsobject.CreateFrom ( ResultSet rssource )
Argument Description
dsobject The name of the DataStore object into which you want to
place the data in the passed result set
rssource A ResultSet or ADOResultSet object that contains meta
data from which the DataStore object is created
572 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
li_rc = myconnect.CreateInstance(lcst_mybookstore)
IF li_rc <> 0 THEN
MessageBox("Create Instance", string(li_rc) )
myconnect.DisConnectServer()
RETURN
END IF
lrs_resultset = lcst_mybookstore.GetMajors()
CrosstabDialog
Description Displays the Crosstab Definition dialog box so the user can modify the
definition of a crosstab DataWindow at runtime. The dialog box is the one
you use in the DataWindow painter to define the crosstab.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer dwcontrol.CrossTabDialog ( )
Argument Description
dwcontrol A reference to a DataWindow control
574 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples This statement in the script for the CommandButton cb_define displays
the Crosstab Definition dialog so the user can modify the definition of the
crosstab DataWindow object in dw_1:
dw_1.CrosstabDialog()
Cut
Description Deletes selected text in the current row and column of an edit control and
stores it on the clipboard, replacing the clipboard contents with the deleted
text.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.Cut ( )
Argument Description
dwcontrol A reference to a DataWindow control. The text is cut from the
edit control over the current row and column.
Return value Returns the number of characters that were cut from dwcontrol and stored
in the clipboard. If no text is selected, no characters are cut and Cut returns
0. If an error occurs, Cut returns –1.
If dwcontrol is null, the method returns null.
Usage To select text for deleting, the user can use the mouse or keyboard. You
can also call the SelectText method in a script. For the RichTextEdit
presentation style in PowerBuilder, there are several additional methods
for selecting text: SelectTextAll, SelectTextLine, and SelectTextWord.
To insert the contents of the clipboard into a control, use the Paste method.
To delete selected text but not store it in the clipboard, use the Clear
method.
PowerBuilder environment
For use with other PowerBuilder controls, see Cut in the PowerScript
Reference.
Examples Assuming the selected text in the edit control of dw_emp is Temporary,
this statement deletes Temporary from the edit control, stores it in the
clipboard, and returns 9:
dw_emp.Cut()
See also Copy
Clear
Clipboard in the PowerScript Reference
Paste
DBCancel
Description Cancels the retrieval in process in a DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.DBCancel ( )
Argument Description
dwcontrol A reference to the DataWindow control, DataStore, or
child DataWindows
576 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
rc = dw_1.Retrieve()
The user can stop the retrieval by selecting Cancel from the menu. The
script for the Cancel menu item reads:
w_async1.wf_cancel()
The user function wf_cancel for the window w_async1 calls DBCancel
and sets a flag indicating that the retrieval is canceled. Other events for the
DataWindow will check this flag and abort the retrieval too. The variable
ib_cancel is an instance variable for the window:
ib_cancel = true
dw_1.DBCancel()
Scripts for the RetrieveStart and RetrieveRow events both check the
ib_cancel instance variable and, if it is true, stop the retrieval by returning
a value of 1. In order to cancel the retrieval, some code or comment in the
script for the RetrieveRow event is required:
IF ib_cancel = true THEN
RETURN 1
END IF
See also Retrieve
DBErrorCode
Description Reports the database-specific error code that triggered the DBError event.
Obsolete method
DBErrorCode is obsolete and will be discontinued in the future. You should
replace all use of DBErrorCode as soon as possible. The database error
code is available as an argument in the DBError event.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
long dwcontrol.DBErrorCode ( )
578 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow
Return value Returns an error code when a database error occurs in dwcontrol. Error
codes –1 through –4 are PowerBuilder codes. Other codes are database-
specific. Returns 0 if there is no error.
If dwcontrol is null, the method returns null.
PowerBuilder error codes are:
• –1 Can’t connect to the database because of missing values in the
transaction object.
• –2 Can’t connect to the database.
• –3 The key specified in an Update or Retrieve no longer matches an
existing row. (This can happen when another user has changed the
row after you retrieved it.)
• –4 Writing a blob to the database failed.
Usage When a database error occurs while a DataWindow control is interacting
with the database, PowerBuilder triggers the DBError event. Since
DBErrorCode is meaningful only if a database error has occurred, you
should call this method only in the DBError event.
Examples This statement returns the error code for dw_employee:
dw_employee.DBErrorCode()
Since this method is meaningful only in a DataWindow DBError event,
you can use the pronoun This instead of the DataWindow’s name:
This.DBErrorCode()
These statements check the error code for dw_employee and if it is -4,
perform some processing:
long ll_Error_Nbr
ll_Error_Nbr = This.DBErrorCode()
IF ll_Error_Nbr = - 4 THEN ...
When an error occurs in dw_Emp, the following statements in the
DBError event’s script will display the error number and message. A
return code of 1 suppresses the default error message:
long ll_Error_Nbr
ll_Error_Nbr = This.DBErrorCode()
DBErrorMessage
Description Reports the database-specific error message that triggered the DBError
event.
Obsolete method
DBErrorMessage is obsolete and will be discontinued in a future release.
You should replace all use of DBErrorMessage as soon as possible. The
database error message is available as an argument in the DBError event.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
string dwcontrol.DBErrorMessage ( )
Argument Description
dwcontrol A reference to a DataWindow control or child
DataWindow
580 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
err_msg = This.DBErrorMessage()
DeletedCount
Description Reports the number of rows that have been marked for deletion in the
database.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.DeletedCount ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns the number of rows that have been deleted from dwcontrol but not
updated in the associated database table.
Returns 0 if no rows have been deleted or if all the deleted rows have been
updated in the database table. DeletedCount returns –1 if it fails.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage An updatable DataWindow control or DataStore has several buffers. The
primary buffer stores the rows currently being displayed. The delete buffer
stores rows that the application has marked for deletion by calling the
DeleteRow method. These rows are saved until the database is updated.
You can use DeletedCount to find out if there are any rows in the delete
buffer.
If a DataWindow is not updatable, rows that are deleted are discarded—
they are not stored in the delete buffer. Therefore, DeletedCount returns 0
for a nonupdatable DataWindow unless a method, such as RowsCopy or
RowsMove, has been used to populate the delete buffer.
Examples Assuming two rows in dw_employee have been deleted but have not been
updated in the associated database table, these statements set ll_Del to 2:
Long ll_Del
ll_Del = dw_employee.DeletedCount( )
This example tests whether there are rows in the delete buffer, and if so,
updates the database table associated with dw_employee:
Long ll_Del
ll_Del = dw_employee.DeletedCount()
IF ll_Del <> 0 THEN dw_employee.Update()
See also DeleteRow
FilteredCount
ModifiedCount
RowCount
582 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
DeleteRow
Description Deletes a row from a DataWindow control, DataStore object, or child
DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.DeleteRow ( long row )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row you want to delete. To delete the
current row, specify 0 for row.
Return value Returns 1 if the row is successfully deleted and –1 if an error occurs.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null. If there is no DataWindow object assigned to the
DataWindow control or DataStore, this method returns –1.
Usage DeleteRow deletes the row from the DataWindow’s primary buffer.
If the DataWindow is not updatable, all storage associated with the row is
cleared. If the DataWindow is updatable, DeleteRow moves the row to the
DataWindow’s delete buffer; PowerBuilder uses the values in the delete
buffer to build the SQL DELETE statement.
The row is not deleted from the database table until the application calls
the Update method. After the Update method has updated the database and
the update flags are reset, the storage associated with the row is cleared.
These statements delete row 5 from dw_employee and then update the
database with the change:
dw_employee.DeleteRow(5)
dw_employee.Update()
See also DeletedCount
InsertRow
Describe
Description Reports the values of properties of a DataWindow object and controls
within the DataWindow object. Each column and graphic control in the
DataWindow has a set of properties (listed in Chapter 3, DataWindow
Object Properties). You specify one or more properties as a string, and
Describe returns the values of the properties.
Syntax PowerBuilder
string dwcontrol.Describe ( string propertylist )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
propertylist A string whose value is a blank-separated list of properties or
Evaluate functions.
For a list of valid properties, see Chapter 3, DataWindow
Object Properties.
Return value Returns a string that includes a value for each property or Evaluate
function. A newline character (~n or \n) separates the value of each item
in propertylist.
584 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Property syntax The syntax for a property in the property list is:
controlname.property
For the types of controls in a DataWindow and their properties with
examples, see Chapter 3, DataWindow Object Properties.
Properties whose value is a list When a property returns a list, the tab
character separates the values in the list. For example, the Bands property
reports all the bands in use in the DataWindow as a list.
header[tab]detail[tab]summary[tab]footer[tab]header.1[tab]trailer.1
If the first character in a property’s returned value list is a quotation mark,
it means the whole list is quoted and any quotation marks within the list
are single quotation marks.
586 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
You can call DataWindow control functions in a script to get data from the
DataWindow, but some painter functions (such as LookUpDisplay) cannot
be called in a script. Using Evaluate is the only way to call them. (See the
example Evaluating the display value of a DropDownDataWindow on
page 588.)
Sample property values To illustrate the types of values that Describe
reports, consider a DataWindow called dw_emp with one group level. Its
columns are named emp and empname, and its headers are named emp_h
and empname_h. The following table shows several properties and the
returned value. In the first example below, a sample command shows how
you might specify these properties for Describe and what it reports.
Table 9-2: Examples of return values for Describe method
Property Reported value
datawindow.Bands header[tab]detail[tab]summary[tab]footer[tab]header.1
[tab]trailer.1
datawindow.Objects emp[tab]empname[tab]emp_h[tab]empname_h
emp.Type column
empname.Type column
empname_h.Type text
emp.Coltype char(20)
state.Type ! (! indicates an invalid item—there is no column
named state)
empname_h.Visible ?
This example calls Describe with some of the properties shown in the
previous table. The reported values (formatted with tabs and newlines)
follow. Note that because state is not a column in the DataWindow,
state.type returns an exclamation point (!):
string ls_request, ls_report
ls_report = dw_1.Describe(ls_request)
Describe sets the value of ls_report to the following string:
header~tdetail~tsummary~tfooter~theader.1~ttrailer.
1~N emp~tempname~temp_h~tempname_h~N
"Employee~R~NName"~N text~N column~Nchar(20)~N!
These statements check the datatype of the column named salary before
using GetItemNumber to obtain the salary value:
string ls_data_type
integer li_rate
ls_data_type = dw_1.Describe("salary.ColType")
IF ls_data_type = "number" THEN
li_rate = dw_1.GetItemNumber(5, "salary")
ELSE
. . . // Some processing
END IF
Column name or number This statement finds out the column type of
the current column, using the column name:
s = This.Describe(This.GetColumnName()+ ".ColType")
For comparison, this statement finds out the same thing, using the current
column’s number:
s = This.Describe("#" + String(This.GetColumn()) &
+ ".ColType")
Scrolling and the current row This example, as part of the
DataWindow control’s ScrollVertical event, makes the first visible row the
current row as the user scrolls through the DataWindow:
s = This.Describe("DataWindow.FirstRowOnPage")
IF IsNumber(s) THEN This.SetRow(Integer(s))
Evaluating the display value of a DropDownDataWindow This
example uses Describe’s Evaluate function to find the display value in a
DropDownDataWindow column called state_code. You must execute the
code after the ItemChanged event, so that the value the user selected has
become the item value in the buffer. This code is the script of a custom user
event called getdisplayvalue:
string rownumber, displayvalue
rownumber = String(dw_1.GetRow())
displayvalue = dw_1.Describe( &
"Evaluate('LookUpDisplay(state_code) ', " &
+ rownumber + ")")
This code, as part of the ItemChanged event’s script, posts the
getdisplayvalue event:
588 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dw_1.PostEvent("getdisplayvalue")
Assigning null values based on the column’s datatype The
following excerpt from the ItemError event script of a DataWindow
control allows the user to blank out a column and move to the next column.
For columns with datatypes other than string, the user cannot leave the
value empty (which is an empty string and does not match the datatype)
without the return code. Data and row are arguments of the ItemError
event:
string s
s = This.Describe(This.GetColumnName() &
+ ".Coltype")
CHOOSE CASE s
CASE "number"
IF Trim(data) = "" THEN
integer null_num
SetNull(null_num)
This.SetItem(row, &
This.GetColumn(), null_num)
RETURN 3
END IF
CASE "date"
IF Trim(data) = "" THEN
date null_date
SetNull(null_date)
This.SetItem(row, &
This.GetColumn(), null_date)
RETURN 3
END IF
END CHOOSE
See also Create
Modify
Drag
Description Starts or ends the dragging of a control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.Drag ( DragMode dragvalue )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow.
dragvalue A value indicating the action you want to take on a control:
• Begin! – Put dwcontrol in drag mode.
• Cancel! – Stop dragging dwcontrol but do not cause a
DragDrop event.
• End! – Stop dragging dwcontrol and if dwcontrol is over a
target object, cause a DragDrop event.
Usage Inherited from DragObject. For information, see Drag in the PowerScript
Reference.
Expand
Description Expands a group in a TreeView DataWindow that has the specified
TreeView level and includes the specified row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.Expand(long row, long groupLevel)
Argument Description
dw_control A reference to a TreeView-style DataWindow control
row The number of the row that belongs to the TreeView level of the
group to be expanded
groupLevel The TreeView level of the group to be expanded
Return value Returns 1 if the expand operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
590 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ExpandAll
Description Expands all groups in a TreeView DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.ExpandAll( )
Argument Description
dw_control A reference to a TreeView-style DataWindow control
Return value Returns 1 if the ExpandAll operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
-16 DataWindow is not a TreeView DataWindow
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the ExpandAll method to
expand all groups in a TreeView DataWindow.
The ExpandAll method triggers the Expanding and Expanded events with
row and level arguments of –1.
Examples The following example expands all groups:
integer li_ret
li_ret = dw_treeview.ExpandAll()
See also Collapse
Expand
ExpandAllChildren
ExpandLevel
IsExpanded
ExpandAllChildren
Description Expands a group in a TreeView DataWindow that has the specified
TreeView level and includes the specified row; also expands all the
group’s children.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.ExpandAllChildren(long row, long groupLevel)
Argument Description
dw_control A reference to a TreeView-style DataWindow control
row The number of the row that belongs to the group to be expanded
groupLevel The TreeView level of the group to be expanded
Return value Returns 1 if the expand operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
-5 One or more of the parameters are invalid
-16 DataWindow is not a TreeView DataWindow
592 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the ExpandAllChildren method
to expand a group with a specified TreeView level in a TreeView
DataWindow and all of its children.
The ExpandAllChildren method triggers the Expanding and Expanded
events.
Examples The following example expands the group in a TreeView DataWindow
that has TreeView level 2 and includes row 3; it also expands all the
group’s children:
integer li_ret
li_ret = dw_treeview.ExpandAllChildren(3,2)
See also CollapseAllChildren
Expand
ExpandAll
ExpandLevel
IsExpanded
ExpandLevel
Description Expands all the groups in a TreeView DataWindow that have the specified
TreeView level.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.ExpandLevel (long groupLevel)
Argument Description
dw_control A reference to a TreeView-style DataWindow control
groupLevel The TreeView level of the group to be expanded
Return value Returns 1 if the ExpandLevel operation succeeds and one of the following
negative values if it fails:
-1 DataWindow is null
-5 One or more of the parameters are invalid
Filter
Description Displays rows in a DataWindow that pass the current filter criteria. Rows
that do not meet the filter criteria are moved to the filter buffer.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.Filter ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns 1 if it succeeds and -1 if an error occurs. The return value is
usually not used.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
594 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage Filter causes all rows to be retrieved and then it applies the filter. Even
when the Retrieve As Needed option is set, the Filter method retrieves all
rows before applying the filter.
Filter uses the current filter criteria for the DataWindow. To change the
filter criteria, use the SetFilter method. The SetFilter method is equivalent
to using the Filter command on the Rows menu of the DataWindow
painter. If you do not call SetFilter to assign or change criteria before
calling the Filter method, the DataWindow will default to use the criteria
in the object definition.
When the Retrieve method retrieves data for the DataWindow,
PowerBuilder applies the filter that was defined for the DataWindow
object, if any. You only need to call Filter after you change the filter criteria
with SetFilter or if the data has changed because of processing or user
input.
Filter has no effect on the DataWindows in a composite report.
For information on removing the filter or letting the user specify a filter
expression, see SetFilter.
Examples This statement displays rows in dw_Employee based on its current filter
criteria:
dw_Employee.SetRedraw(false)
dw_Employee.Filter()
dw_Employee.SetRedraw(true)
See also FilteredCount
RowCount
SetFilter
FilteredCount
Description Reports the number of rows that are not displayed in the DataWindow
because of the current filter criteria.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.FilteredCount ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns the number of rows in dwcontrol that are not displayed because
they do not meet the current filter criteria. Returns 0 if all rows are
displayed and -1 if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage A DataWindow object can have a filter as part of its definition. After the
DataWindow retrieves data, the filter is applied and rows that do not meet
the filter criteria are moved to the filter buffer. You can change the filter
criteria by calling the SetFilter method, and you can apply the new criteria
with the Filter method.
Examples These statements retrieve data in dw_Employee, display employees with
area code 617, and then test to see if any other data was retrieved. If the
filter criteria specifying the area code was part of the DataWindow
definition, it would be applied automatically after calling Retrieve and you
would not need to call SetFilter and Filter:
dw_Employee.Retrieve()
dw_Employee.SetFilter("AreaCode=617")
dw_Employee.SetRedraw(false)
dw_Employee.Filter()
dw_Employee.SetRedraw(true)
596 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dw_Employee.SetFilter("Left(emp_lname, 1)=~"B~"")
dw_Employee.SetRedraw(false)
dw_Employee.Filter()
dw_Employee.SetRedraw(true)
Find
Description Finds the next row in a DataWindow or DataStore in which data meets a
specified condition.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.Find ( string expression, long start, long end )
Argument Description
dwcontrol A reference to the DataWindow control, DataStore, or child
DataWindow in which you want to search the detail band.
expression A string whose value is a boolean expression that you want to
use as the search criterion. The expression includes column
names.
start A value identifying the row location at which to begin the
search. Start can be greater than the number of rows.
end A value identifying the row location at which to end the search.
End can be greater than the number of rows. To search
backward, make end less than start.
Return value Returns the number of the first row that meets the search criteria within the
search range. Returns 0 if no rows are found and one of these negative
numbers if an error occurs:
–1 General error
–5 Bad argument
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage PowerBuilder environment
For use with a RichTextEdit control or presentation style, see Find in the
PowerScript Reference.
but not:
"O’Connor" or "O~"OConnor"
When the last row satisfies the search criteria If you use Find in a
loop that searches through all rows, you may end up with an endless loop
if the last row satisfies the search criteria. When the start value becomes
greater than end, the search reverses direction and Find would always
succeed, resulting in an endless loop.
To solve this problem, you could make the end value 1 greater than the
number of rows (see the examples). Another approach, shown below,
would be to test within the loop whether the current row is greater than the
row count and, if so, exit. This PowerBuilder code illustrates how:
long ll_find = 1, ll_end
ll_end = dw_main.RowCount()
ll_find = dw_main.Find(searchstr, ll_find, ll_end)
DO WHILE ll_find > 0
... // Collect found row
598 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ll_find++
// Prevent endless loop
IF ll_find > ll_end THEN EXIT
ll_find = dw_main.Find(searchstr, ll_find,
ll_end)
LOOP
Examples This statement searches for the first row in dw_status in which the value
of the emp_salary column is greater than 100,000. The search begins in
row 3 and continues until it reaches the last row in dw_status:
long ll_found
ll_found = dw_status.Find("emp_salary > 100000", &
3, dw_status.RowCount())
To test values in more than one column, use boolean operators to join
conditional expressions. The following statement searches for the
employee named Smith whose salary exceeds 100,000:
long ll_found
ll_found = dw_status.Find( &
"emp_lname = 'Smith' and emp_salary >
100000", &
1, dw_status.RowCount())
These statements search for the first row in dw_emp that matches the value
that a user entered in the SingleLineEdit called Name (note the single
quotes embedded in the search expression around the name):
string ls_lname_emp
long ll_nbr, ll_foundrow
ll_nbr = dw_emp.RowCount()
ELSE
dw_status.Update()
END IF
END IF
The following script attached to a Find Next command button searches for
the next row that meets the specified criteria and scrolls to that row. Each
time the button is clicked, the number of the found row is stored in the
instance variable il_found. The next time the user clicks Find Next, the
search continues from the following row. When the search reaches the end,
a message tells the user that no row was found. The next search begins
again at the first row.
Note that although the search criteria are hard-coded here, a more realistic
scenario would include a Find button that prompts the user for search
criteria. You could store the criteria in an instance variable, which Find
Next could use:
long ll_row
600 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
// Search again
ll_find++
ll_find = dw_main.Find("Pos(last_name,'a') &
> 0", ll_find, ll_end )
LOOP
See also FindGroupChange
FindRequired
FindGroupChange
Description Searches for the next break for the specified group. A group break occurs
when the value in the column for the group changes. FindGroupChange
reports the row that begins the next section.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.FindGroupChange ( long row, integer level )
Argument Description
dwcontrol A reference to a DataWindow control or the DataStore.
row A value identifying the row at which you want to begin
searching for the group break.
Argument Description
level The number of the group for which you are searching. Groups
are numbered in the order in which you defined them.
Return value Returns the number of the row whose group column has a new value,
meaning that it begins a new group. Returns 0 if the value in the group
column did not change and a negative number if an error occurs.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
The return value observes these rules based on the value of row. If the
starting row is:
• The first row in a group, then FindGroupChange returns the starting
row number
• A row within a group, other than the last group, then
FindGroupChange returns the row number of the first row of the next
group
• A row in the last group, other than the first row of the last group, then
FindGroupChange returns 0
Usage If the starting row begins a new section at the specified level, then that row
is the one returned. To continue searching for subsequent breaks,
increment the starting row so that the search resumes with the second row
in the group.
Examples This statement searches for the first break in group 2 in dw_regions. The
search begins in row 5:
dw_regions.FindGroupChange(5, 2)
This code finds the number of the row at which a break occurs in group 1.
It then checks whether the department number is 121. The search begins
at row 0:
boolean lb_found
long ll_breakrow
lb_found = false
ll_breakrow = 0
602 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
FindNext
Description Finds the next occurrence of text in a RichTextEdit DataWindow control
and highlights it, using criteria set up in a previous call of the Find method.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer dwcontrol.FindNext ( )
Argument Description
dwcontrol A reference to a DataWindow control containing a
DataWindow with the RichTextEdit presentation style
Return value Returns the number of characters found. FindNext returns 0 if no matching
text is found and -1 if the DataWindow’s presentation style is not
RichTextEdit or an error occurs.
Examples This example searches the DataWindow control dw_1 for text the user
specifies in the SingleLineEdit sle_search. The search proceeds forward
from the cursor position, is case-insensitive, and is not limited to whole
words:
integer li_charsfound
li_charsfound = dw_1.Find(sle_search.Text, &
true, true, false, true)
A second button labeled Find Next would have a script like this:
dw_1.FindNext()
See also Find
FindRequired
Description Reports the next row and column that is required and contains a null value.
The method arguments that specify where to start searching also store the
results of the search. You can speed up the search by specifying that
FindRequired check only inserted and modified rows.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer dwcontrol.FindRequired ( DWBuffer dwbuffer, long row,
integer colnbr, string colname, boolean updateonly )
Argument Description
dwcontrol A reference to the DataWindow control or DataStore in which
you want to find required columns that have null values.
dwbuffer A value indicating the DataWindow buffer you want to search
for required columns. Valid buffers are:
• Primary!
• Filter!
604 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
row A value identifying the first row to be searched. Row also
stores the number of the found row. FindRequired increments
the row number automatically after it validates each row’s
columns. When it finds a row with a required column that
contains a null value, the row number is stored in row. After
FindRequired validates the last column in the last row, it sets
row to 0.
PowerBuilder The row argument must be a variable so it
can return a value for the found row.
colnbr A value identifying the first column to be searched. Colnbr
also stores the number of the found column. After validating
the last column, FindRequired sets colnbr to 1 and
increments row. When it finds a required column that contains
a null value, the column number is stored in colnbr.
PowerBuilder The colnbr argument must be a variable so it
can return a value for the found column.
colname A string in which you want to store the name of the required
column that contains a null value (the name of colnbr).
PowerBuilder The colname argument must be a variable so
it can hold a value for the name of the found column.
updateonly A value indicating whether you want to validate all rows and
columns or only rows that have been inserted or modified:
• true – Validate only those rows that have changed. Setting
updateonly to true enhances performance in large
DataWindows.
• false – Validate all rows and columns.
Return value Returns 1 if FindRequired successfully checked the rows and –1 if an error
occurs.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage For FindRequired to report an empty required column, the column’s value
must actually be null, not an empty string.
To make a column required, set the Required property to true in a script or
check the Required check box for the column in the DataWindow painter.
New rows have null values in their columns, unless the columns have
default values. If updateonly is false, FindRequired reports empty required
columns in new rows. If updateonly is true, FindRequired does not check
new rows because new, empty rows are not updated in the database.
When the user modifies a row and leaves a column empty, the new value
is an empty string, unless the column’s edit style has the Empty String Is
null check box checked. FindRequired does not report empty required
columns in modified rows unless this property is set.
Examples The following code makes a list of all the row numbers and column names
in dw_1 in which required columns are missing values. The list is
displayed in the MultiLineEdit mle_required:
long ll_row = 1
integer colnbr = 0
string colname
mle_required.Text = ""
DO WHILE ll_row <> 0
colnbr++ // Continue searching at next column
// If there's an error, exit
IF dw_1.FindRequired(Primary!, &
ll_row, colnbr, &
colname, false) < 0 THEN EXIT
606 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
IF adw_control.AcceptText() = -1 THEN
adw_control.SetFocus()
RETURN -2
END IF
FindRequiredColumn
Description Returns the column number that the FindRequired method found. The
column is being reported because it is a required column but contains a
null value. You must call FindRequired first to search for the required but
missing information.
Obsolete method
FindRequiredColumn is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
FindRequiredColumnName
Description Returns the column name that the FindRequired method found. The
column is being reported because it is a required column but contains a
null value. You must call FindRequired first to search for the required but
missing information.
608 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Obsolete method
FindRequiredColumnName is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
FindRequiredRow
Description Returns the row number that the FindRequired method found. The row is
being reported because it contains a required column that has a null value.
You must call FindRequired first to search for the required but missing
information.
Obsolete method
FindRequiredRow is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
Generate
Description Creates HTML syntax for the Web DataWindow.
Obsolete method
Generate is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
610 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
The contents of the page of data can be affected by user actions in the
client control. The page server calls the SetAction method before calling
Generate to apply the user’s actions.
GenerateHTMLForm
Description Creates an HTML Form element containing columns for one or more rows
in a DataWindow control or DataStore. This method also returns an
HTML Style element containing style sheet information.
Obsolete method
GenerateHTMLForm is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
612 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GenerateResultSet
Description Generates a result set from data in a DataStore or DataWindow control.
In PowerBuilder, when the result set is generated in a component on a
transaction server, the format of the result set is ADO Recordset on MTS.
Applies to
DataWindow type Method applies to
PowerBuilder DataStore object
Syntax PowerBuilder
integer dsobject.GenerateResultSet (REF ResultSet rsdest {
,dwBuffer dwbuffer } )
Argument Description
dsobject The name of the DataStore object that contains the data to be
returned in the result set.
rsdest The ResultSet object into which the data in the DataStore is
written. This value is passed by reference.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
(optional) DataWindow buffer containing the data for the result set. The
default is the primary buffer.
For a list of valid values, see DWBuffer on page 485.
Return value Returns 1 if it succeeds and –1 if it fails. If any argument is null, it returns
null.
Usage How to use it Result sets are intended for exchanging data between a
DataStore and some data-aware application that does not use DataWindow
technology. With result sets, the receiving end does not support updating
of the data.
Examples In this example, a DataStore object is created and data is retrieved into it,
and then the GenerateResultSet method is used to create a result set that
can be returned to a client.
datastore ds_datastore
resultset lrs_resultset
integer li_rc
614 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ds_datastore.SetTransObject (SQLCA)
IF ds_datastore.Retrieve() = -1 THEN
... // report error and return
END IF
li_rc =
ds_datastore.GenerateResultSet(lrs_resultset)
IF li_rc <> 1 THEN
... // report error and return
END IF
return lrs_resultset
See also CreateFrom
SetRecordSet in PowerScript Reference
GenerateXHTML
Description Generates the inline content of the Web DataWindow in XHTML.
Obsolete method
GenerateXHTML is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
dwGen.Modify("DataWindow.CSSGen.ResourceBase = '" +
resourceBase + "/css'");
dwGen.Modify("DataWindow.CSSGen.PublishPath = '" +
publishPath + "css'");
dwGen.Modify("DataWindow.JSGen.ResourceBase = '" +
resourceBase + "/js'");
dwGen.Modify("DataWindow.JSGen.PublishPath = '" +
publishPath + "js'");
616 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GenerateXMLWeb
Description Generates the XML content and the XSLT and CSS style sheets for a Web
DataWindow, which is transformed to XHTML on the client side.
Obsolete method
GenerateXMLWeb is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
dwGen.Modify("DataWindow.XMLGen.ResourceBase = '" +
resourceBase + "/xml'");
dwGen.Modify("DataWindow.XMLGen.PublishPath = '" +
publishPath + "xml'");
dwGen.Modify("DataWindow.XSLTGen.ResourceBase = '"
+
resourceBase + "/xsl'");
dwGen.Modify("DataWindow.XSLTGen.PublishPath = '" +
publishPath + "xsl'");
dwGen.Modify("DataWindow.CSSGen.ResourceBase = '" +
resourceBase + "/css'");
dwGen.Modify("DataWindow.CSSGen.PublishPath = '" +
publishPath + "css'");
dwGen.Modify("DataWindow.JSGen.ResourceBase = '" +
resourceBase + "/js'");
dwGen.Modify("DataWindow.JSGen.PublishPath = '" +
publishPath + "js'");
At runtime, the client browser displays an XHTML page that it transforms
from XML using XSLT applied with CSS and JS files that it gets initially
from the server. However, in most cases, after the initial loading of the
page, the client does not need to go back to the server to obtain layout
(XSLT) or styling (CSS) information, as these remain in the browser’s
cache. This provides greater efficiency and scalability for your Web
applications.
Examples In the following example, the Web DataWindow component generates the
XML document, XSLT and CSS style sheets, and JS files for the content,
structure, styling, and client-side functionality of the Web DataWindow:
dwGen.GenerateXMLWeb();
See also Generate
GenerateXHTML
618 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetBandAtPointer
Description Reports the band in which the pointer is currently located, as well as the
row number associated with the band. The bands are the headers, trailers,
and detail areas of the DataWindow and correspond to the horizontal areas
of the DataWindow painter.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
string dwcontrol.GetBandAtPointer ( )
Argument Description
dwcontrol A reference to a DataWindow control.
Return value Returns a string that names the band in which the pointer is located,
followed by a tab character and the number of the row associated with the
band (see the table in Usage). Returns the empty string (“ ”) if an error
occurs.
If dwcontrol is null, the method returns null.
Usage The following table lists the band names, where the pointer is when a
given band is reported, and the row that is associated with the band.
Band Location of pointer Associated row
detail In the body of the The row at the pointer. If rows do not fill
DataWindow object the body of the DataWindow object
because of a group with a page break,
then the first row of the next group. If
the body is not filled because there are
no more rows, then the last row.
header In the header of the The first row visible in the DataWindow
DataWindow object body.
header.n In the header of group The first row of the group.
level n
trailer.n In the trailer of group The last row of the group.
level n
footer In the footer of the The last row visible in the DataWindow
DataWindow object body.
summary In the summary of the The last row before the summary.
DataWindow object
You can parse the return value by searching for the tab character (ASCII
09). In PowerBuilder, search for ~t. For an example that parses a string that
includes a tab, see GetValue.
Examples These statements set the string named band to the location of the pointer
in DataWindow dw_rpt:
String band
band = dw_rpt.GetBandAtPointer()
Some possible return values are:
Table 9-3: Example return values for the GetBandAtPointer method
Return value Meaning
detail[tab]8 In row 8 of the detail band of dw_rpt
header[tab]10 In the header of dw_rpt; row 10 is the first visible row
header.2[tab]1 In the header of group level 2 for row 1
trailer.1[tab]5 In the trailer of group level 1 for row 5
footer[tab]111 In the footer of dw_rpt; the last visible row is 111
summary[tab]23 In the summary of dw_rpt; the last row is 23
GetBorderStyle
Description Reports the border style of a column in a DataWindow control or
DataStore object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
border dwcontrol.GetBorderStyle ( integer column )
border dwcontrol.GetBorderStyle ( string column )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column for which you want to obtain the border style.
Column can be a column number or a column name.
620 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Return value Returns the border style of column in dwcontrol as a value of the Border
enumerated datatype. For a list of possible values, see Border on page 483.
Returns null if it fails. If any argument is null, the method returns null.
Examples This code gets the border style for the current column:
border B2
B2 = dw_emp.GetBorderStyle(dw_emp.GetColumn())
This code tests the border of column 2 in dw_emp and, if there is no
border, displays a shadow box border:
border B2
B2 = dw_emp.GetBorderStyle(2)
IF B2 = NoBorder! THEN
dw_emp.SetBorderStyle(2, ShadowBox!)
END IF
See also SetBorderStyle
GetChanges
Description Retrieves changes made to a DataWindow or DataStore as a blob. This
method is used primarily in distributed applications.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.GetChanges ( REF blob changeblob {, blob cookie }
)
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
changeblob A variable into which the returned DataWindow changes will
be placed.
cookie A read-only blob created by GetStateStatus that is compared
(obsolete) with the changeblob to determine the likely success of a
subsequent call to SetChanges.
This argument is obsolete and will be disabled in a future
release.
Return value Returns the number of rows in the DataWindow change blob if it succeeds
and one of the following values if it fails:
• –1 An internal error occurred.
• –2 There is a conflict between the state of the DataWindow change
blob and the state of the DataWindow from which the cookie was
created; an attempt to use this blob in a SetChanges call against the
DataWindow will fail.
• –3 There is a conflict between the state of the DataWindow change
blob and the state of the DataWindow from which the cookie was
created; but partial changes from the change blob can be applied.
If any argument is null, the method returns null.
Usage GetChanges is used in conjunction with SetChanges to synchronize two or
more DataWindows or DataStores. GetChanges retrieves data buffers and
status flags for changed rows in a DataWindow or DataStore and places
this information in a blob. SetChanges then applies the contents of this
blob to another DataWindow or DataStore.
The change blob created by GetChanges includes only those rows that
have a status of New!, NewModified!, or DataModified!.
For information about status values, see DWItemStatus on page 486.
Examples These statements use GetChanges to capture changes to a DataWindow
control on a client. If GetChanges succeeds, the client calls a remote object
function that applies the changes to a DataStore on the server and updates
the database:
blob lblb_changes
long ll_rv
622 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ll_rv = dw_employee.GetChanges(lblb_changes)
IF ll_rv = -1 THEN
MessageBox("Error", "GetChanges call
failed!")
ELSE
iuo_employee.UpdateData(lblb_changes)
END IF
See also GetFullState
GetStateStatus
SetChanges
SetFullState
GetChangesBlob
Description Returns changes made to a DataWindow or DataStore. You must call
GetChanges first to set up the change information. This method is used
primarily in distributed applications.
Obsolete method
GetChangesBlob is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
Return value Returns a string whose value is the DataWindow change blob set up by
GetChanges.
ll_rv = dw_employee.GetChanges(lblb_changes)
IF ll_rv = -1 THEN
MessageBox("Error", "GetChanges call
failed!")
ELSE
iuo_employee.UpdateData(lblb_changes)
END IF
See also GetFullState
GetStateStatus
SetChanges
SetFullState
GetChild
Description Provides a reference to a child DataWindow or to a report in a composite
DataWindow, which you can use in DataWindow functions to manipulate
that DataWindow or report.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer dwcontrol.GetChild (string name, REF DataWindowChild
dwchildvariable )
Argument Description
dwcontrol A reference to the DataWindow control or DataStore that
contains the child DataWindow or report.
624 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
name A string that names the column containing the child
DataWindow or that names the report in the composite
DataWindow.
dwchildvariable A variable in which you want to store the reference to the
child DataWindow or report.
Return value Returns 1 if it succeeds and –1 if an error occurs—for example, if the child
object does not exist.
If any argument is null, in PowerBuilder and JavaScript the method returns
null.
Usage A child DataWindow is a DropDownDataWindow in a DataWindow
object.
A report is a DataWindow that is part of a composite DataWindow. A
report is read-only. When you define the composite DataWindow in the
DataWindow painter, each report is given a name. You can see the name
in the Name option of the Properties view. You must use the report name
(not the name of the DataWindow object in which the report has been
placed) when calling GetChild.
Use GetChild when you need to explicitly retrieve data for a child
DataWindow or report. Although PowerBuilder automatically retrieves
data for the child or report when the main DataWindow is displayed, you
need to explicitly retrieve data when there are retrieval arguments or when
conditions change and you want to retrieve new rows.
When you insert a row or retrieve data in the main DataWindow,
PowerBuilder automatically retrieves data for the child DataWindow. If
the child DataWindow has retrieval arguments, PowerBuilder displays a
dialog box asking the user for values for those arguments. To suppress the
dialog box, you can explicitly retrieve data for the child before changing
the main DataWindow (see the example).
Nested reports
You cannot use GetChild to get a reference to a report in a composite
DataWindow when the report itself is a composite or nested DataWindow.
Changing property values with the Modify method can cause the reference
returned by GetChild to become invalid. After setting such a property, call
GetChild again. If a property causes this behavior, this is noted in its
description in Chapter 3, DataWindow Object Properties.
Examples This example retrieves data for the child DataWindow associated with the
column emp_state before retrieving data in the main DataWindow. The
child DataWindow expects a region value as a retrieval argument. Because
you populate the child DataWindow first, specifying a value for its
retrieval argument, there is no need for PowerBuilder to display the
retrieval argument dialog box:
DataWindowChild state_child
integer rtncode
626 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetChildObject
Description Gets the reference to a child object for a Web ActiveX DataWindow.
Obsolete method
GetChildObject is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
window.dw_1.GetChild ("dept_id");
ldwc = window.dw_1.GetChildObject();
ls = ldwc.Describe ("Datawindow.Table.Select");
window.alert(ls);
See also GetChild
GetClickedColumn
Description Obtains the number of the column the user clicked or double-clicked in a
DataWindow control or DataStore object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.GetClickedColumn ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore object, or child
DataWindow
Return value Returns the number of the column that the user clicked or double-clicked
in dwcontrol. Returns 0 if the user did not click or double-click a column
(for example, the user double-clicked outside the data area, in text or
spaces between columns, or in the header, summary, or footer area).
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage Call GetClickedColumn in the Clicked or DoubleClicked event for a
DataWindow control.
When the user clicks on the column, that column becomes the current
column after the Clicked or DoubleClicked event is finished. During those
events, GetColumn and GetClickedColumn can return different values.
If the user arrived at a column by another means, such as tabbing,
GetClickedColumn cannot identify that column. Use GetColumn instead to
identify the current column.
Examples These statements return the number of the column the user clicked or
double-clicked in dw_employee:
integer li_ColNbr
li_ColNbr = dw_employee.GetClickedColumn()
See also GetClickedRow
GetColumn
GetClickedRow
Description Obtains the number of the row the user clicked or double-clicked in a
DataWindow control or DataStore object.
628 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.GetClickedRow ( )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore object
Return value Returns the number of the row that the user clicked or double-clicked in
dwcontrol. Returns 0 if the user did not click or double-click a row (for
example, the user double-clicked outside the data area, in text or spaces
between rows, or in the header, summary, or footer area).
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage Call GetClickedRow in the Clicked or DoubleClicked event for a
DataWindow control.
When the user clicks on the row, that row becomes the current row after
the Clicked or DoubleClicked event is finished. During those events,
GetRow and GetClickedRow can return different values.
Examples These statements return the number of the row the user clicked or
double-clicked in dw_Employee:
long li_RowNbr
li_RowNbr = dw_employee.GetClickedRow()
See also GetClickedColumn
GetRow
GetColumn
Description Obtains the number of the current column. The current column is the
column that has focus.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.GetColumn ( )
Argument Description
dwcontrol A reference to a DataWindow control DataStore, or child
DataWindow
Return value Returns the number of the current column in dwcontrol. Returns 0 if no
column is current (because all the columns have a tab value of 0, making
all of them uneditable), and –1 if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage GetColumn and GetClickedColumn, when called in the Clicked or
DoubleClicked event, can return different values. The column the user
clicked does not become current until after the event.
Use GetColumnName (instead of GetColumn) when you need the column’s
name. Use SetColumn to change the current column.
PowerBuilder environment
For use with PowerBuilder ListView controls, see GetColumn in the
PowerScript Reference.
630 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetColumnName
Description Obtains the name of the current column. The current column is the column
that has the focus.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetColumnName ( )
Argument Description
dwcontrol A reference to a DataWindow control DataStore, or child
DataWindow
Return value Returns the name of the current column in dwcontrol. Returns the empty
string (“”) if no column is current or if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage For information on the current column, see GetColumn on page 630.
Examples These statements return the name of the current column in dw_Employee:
string ls_ColName
ls_ColName = dw_employee.GetColumnName()
See also GetColumn
GetRow
SetColumn
SetRow
GetContextService
Description Returns a reference to a context-specific instance of the specified service.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer objectname.GetContextService ( string servicename,
PowerObject servicereference )
Argument Description
objectname A reference to an object or control for which you want a
service.
servicename String specifying the service object. Valid values include:
• ContextInformation – Context information service
• Internet – Internet service
• ContextKeyword – Context keyword service
servicereference PowerObject into which the method places a reference to
the service object specified by servicename. This argument
is passed by reference.
GetFormat
Description Obtains the display format assigned to a column in a DataWindow control
or DataStore object.
632 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetFormat ( string column )
string dwcontrol.GetFormat ( integer column )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column for which you want the display format. Column can
be a column number (integer) or a column name (string).
Return value Returns the display format specification for column in dwcontrol. If an
error occurs, GetFormat returns the empty string (“ ”).
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage If you want to change the display format of a column temporarily, you can
use GetFormat to save the current format.
Examples These statements save the format of column salary of dw_employee before
changing it to a new format:
string OldFormat, NewFormat = "$##,###.00"
OldFormat = dw_employee.GetFormat("salary")
dw_employee.SetFormat("salary", NewFormat)
See also SetFormat
GetFullContext
Description This method returns a string representing the context of the client-side
control to be passed on a form submit.
Obsolete method
GetFullContext is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Client control
function dw_second_OnSubmit()
{
dw_second.submitForm.dw_first_context.value
=
dw_first.GetFullContext();
dw_second.submitForm.dw_first_action.value =
"";
}
</SCRIPT>
To enable the second DataWindow to create the required fields on the
submit form, each of the DataWindows must have two arguments defined
in the SelfLinkArgs property:
dw_first must have dw_second_context and dw_second_action
defined
dw_second must have dw_first_context and dw_first_action defined
634 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetFullState
Description Retrieves the complete state of a DataWindow or DataStore as a blob.
This method is used primarily in distributed applications.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.GetFullState ( blob dwasblob )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
dwasblob A variable into which the returned DataWindow will be placed.
Return value Returns the number of rows in the DataWindow blob if it succeeds and –
1 if an error occurs. GetFullState will return –1 if the DataWindow control
or DataStore does not have a DataWindow object associated with it.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage GetFullState retrieves the entire state of a DataWindow or DataStore,
including the DataWindow object specification, the data buffers, and the
status flags. When you call SetFullState to apply the blob created by
GetFullState to another DataWindow, the target DataWindow has enough
information to recreate the source DataWindow.
Because the blob created by GetFullState contains the DataWindow object
specification, a subsequent call to SetFullState will overwrite the
DataWindow object for the target DataWindow control or DataStore. If the
target of SetFullState does not have a DataWindow object associated with
it, the blob will assign one. In this case, SetFullState has the effect of
setting the DataObject property for the target.
When you use GetFullState and SetFullState to synchronize a DataWindow
control on a client with a DataStore on a server, you need to make sure that
the DataWindow object for the DataStore contains the presentation style
you want to display on the client.
Examples These statements retrieve data into a DataStore and use GetFullState to
retrieve the complete state of the DataStore into a blob:
// Instance variables:
// datastore ids_datastore
// blob blb_data
long ll_rv
GetFullStateBlob
Description Returns the state of a DataWindow or DataStore. You must call
GetFullState first to set up the state information. This method is used
primarily in distributed applications.
Obsolete method
GetFullStateBlob is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Applies to
DataWindow type Method applies to
Web ActiveX DataWindow control
Return value Returns a string whose value is the DataWindow state blob set up by
GetFullState.
636 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ll_rv = dw_employee.GetChanges(lblb_changes)
IF ll_rv = -1 THEN
MessageBox("Error", "GetChanges call
failed!")
ELSE
iuo_employee.UpdateData(lblb_changes)
END IF
See also GetFullState
GetStateStatus
SetChanges
SetFullState
GetItem
Description Gets the value of an item for the specified row and column in a Web
DataWindow client control. Use one of the datatype-specific methods
such as GetItemString for other types of DataWindow control. GetItem
returns the value available in the data available to the client. This is
equivalent to the primary buffer in other environments.
Obsolete method
GetItem is obsolete and should not be used, because the Web DataWindow
technology is obsolete.
Applies to
DataWindow type Method applies to
Web Client control
Return value Returns the value in the specified row and column. The datatype of the
returned data corresponds to the datatype of the column. Returns null if the
column value is null. Returns the empty string (“”) if an error occurs.
If any argument value is null, the method returns null.
Usage Use GetItem to get data that has been accepted by the DataWindow. In a
script for the ItemChanged or ItemError event, you can use the newValue
argument to find out what the user entered before the data is accepted.
Examples This statement sets LName to the value for row 3 of the emp_name column
in the DataWindow dw_employee:
var LName = dw_employee.GetItem(3, "emp_name");
See also SetItem
GetItemDate
Description Gets data whose type is Date from the specified buffer of a DataWindow
control or DataStore object. You can obtain the data that was originally
retrieved and stored in the database from the original buffer, as well as the
current value in the primary, delete, or filter buffers.
638 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
date dwcontrol.GetItemDate ( long row, string column
{, DWBuffer dwbuffer , boolean originalvalue } )
date dwcontrol.GetItemDate ( long row, integer column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row location of the data.
column The column location of the data. The datatype of the column
must be date. Column can be a column number or a column
name. The column number is the number of the column as it is
listed in the Column Specification view of the DataWindow
painter—not necessarily the number of the column in the
Design view.
To get the contents of a computed field, specify the name of
the computed field for column. Computed fields do not have
numbers.
dwbuffer A value identifying the DataWindow buffer from which you
(optional) want to get the data.
For a list of valid values, see DWBuffer on page 485.
originalvalue A boolean indicating whether you want the original or current
(optional) values for row and column:
• True – Returns the original values (the values initially
retrieved from the database).
• False – (Default) Returns the current values.
If you specify dwbuffer, you must also specify originalvalue.
Return value Returns the date value in the specified row and column. Returns null if the
column value is null or if there is no DataWindow object assigned to the
DataWindow control or DataStore. Returns 1900-01-01 if any other error
occurs.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage Use GetItemDate when you want to get information from the
DataWindow’s buffers. To find out what the user entered in the current
column before that data is accepted, use GetText. In the ItemChanged or
ItemError events, use the data argument.
To access a row in the original buffer, specify the buffer that the row
currently occupies (primary, delete, or filter) and the number of the row in
that buffer. When you specify true for originalvalue, the method gets the
original data for that row from the original buffer.
An execution error occurs when the datatype of the DataWindow column
does not match the datatype of the method; in this case, date.
640 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
These statements set hiredate to the current Date data in the third row of
the filter buffer in the column named first_day of dw_employee:
Date hiredate
hiredate = dw_employee.GetItemDate(3, &
"first_day", Filter!, false)
These statements set hiredate to original Date data in the third row of the
primary buffer in the column named hdate of dw_employee:
Date hiredate
hiredate = dw_employee.GetItemDate(3, &
"hdate", Primary!, true)
See also GetItemDateTime
GetItemDecimal
GetItemNumber
GetItemString
GetItemTime
GetText
SetItem
SetText
GetItemDateTime
Description Gets data whose type is DateTime from the specified buffer of a
DataWindow control or DataStore object. You can obtain the data that was
originally retrieved and stored in the database from the original buffer, as
well as the current value in the primary, delete, or filter buffers.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
DateTime dwcontrol.GetItemDateTime ( long row, string column
{, DWBuffer dwbuffer, boolean originalvalue } )
DateTime dwcontrol.GetItemDateTime ( long row, integer column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to the DataWindow control, DataStore, or child
DataWindow in which you want to obtain the DateTime data
contained in a specific row and column.
row A value identifying the row location of the data.
column The column location of the data. The datatype of the column
must be DateTime. Column can be a column number or a
column name. The column number is the number of the column
as it is listed in the Column Specification view of the
DataWindow painter—not necessarily the number of the
column in the Design view.
To get the contents of a computed field, specify the name of the
computed field for column. Computed fields do not have
numbers.
dwbuffer A value identifying the DataWindow buffer from which you
(optional) want to get the data.
For a list of valid values, see DWBuffer on page 485.
originalvalue A boolean indicating whether you want the original or current
(optional) values for row and column:
• True – Returns the original values, that is, the values initially
retrieved from the database.
• False – (Default) Returns the current values.
If you specific dwbuffer, you must also specify originalvalue.
Return value Returns the DateTime or Timestamp value in the specified row and
column. Returns null if the column value is null or if there is no
DataWindow object assigned to the DataWindow control or DataStore.
Returns 1900-01-01 00:00:00.000000 if any other error occurs.
If any argument value is null, in PowerBuilder the method returns null.
Usage Use GetItemDateTime when you want to get information from the
DataWindow’s buffers. To find out what the user entered in the current
column before that data is accepted, use GetText. In the ItemChanged or
ItemError events, use the data argument.
To access a row in the original buffer, specify the buffer that the row
currently occupies (primary, delete, or filter) and the number of the row in
that buffer. When you specify true for originalvalue, the method gets the
original data for that row from the original buffer.
642 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Datatype mismatch
An execution error occurs when the datatype of the DataWindow column
does not match the datatype of the method—in this case, DateTime.
GetItemDecimal
Description Gets data whose type is decimal from the specified buffer of a
DataWindow control or DataStore object. You can obtain the data that was
originally retrieved and stored in the database from the original buffer, as
well as the current value in the primary, delete, or filter buffers.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
decimal dwcontrol.GetItemDecimal ( long row, integer column
{, DWBuffer dwbuffer, boolean originalvalue } )
decimal dwcontrol.GetItemDecimal ( long row, string column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
row A value identifying the row location of the decimal data.
column The column location of the data. The datatype of the column
must be one of type decimal. Column can be a column number
or a column name. The column number is the number of the
column as it is listed in the Column Specification view of the
DataWindow painter—not necessarily the number of the
column in the Design view.
To get the contents of a computed field, specify the name of the
computed field for column. Computed fields do not have
numbers.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
(optional) DataWindow buffer from which you want to get the data. For
a list of valid values, see DWBuffer on page 485.
originalvalue A boolean indicating whether you want the original or current
(optional) values for row and column:
• True – Returns the original values, that is, the values
initially retrieved from the database.
• False – (Default) Returns the current values.
If you specify dwbuffer, you must also specify originalvalue.
Return value Returns the decimal value in the specified row and column. Returns null if
the column value is null or if there is no DataWindow object assigned to
the DataWindow control or DataStore. Triggers the SystemError event and
returns –1 if any other error occurs (see Handling errors on page 645).
If any argument value is null, the method returns null.
Usage Use GetItemDecimal when you want to get information from the
DataWindow’s buffers. To find out what the user entered in the current
column before that data is accepted, use GetText. In the ItemChanged or
ItemError events, use the data argument.
644 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
To access a row in the original buffer, specify the buffer that the row
currently occupies (primary, delete, or filter) and the number of the row in
that buffer. When you specify true for originalvalue, the method gets the
original data for that row from the original buffer.
Handling errors The return value is a valid value from the database
unless the SystemError event is triggered. When the value cannot be
converted because the column’s datatype does not match the method’s
datatype, an execution error occurs, which triggers the SystemError event.
The default error processing halts the application.
If you write a script for the SystemError event, it should also halt the
application. Therefore, the error return value is seldom used.
Examples These statements set salary_amt to the current decimal data in the primary
buffer for row 4 of the column named emp_salary of dw_employee:
decimal salary_amt
salary_amt = &
dw_employee.GetItemDecimal(4, "emp_salary")
These statements set salary_amt to the current decimal data in the filter
buffer for row 4 of the column named emp_salary of dw_employee:
decimal salary_amt
salary_amt = dw_employee.GetItemDecimal(4, &
"emp_salary", Filter!, false)
These statements set salary_amt to the original decimal data in the primary
buffer for row 4 of the column named emp_salary of dw_employee:
decimal salary_amt
salary_amt = dw_employee.GetItemDecimal(4, &
"emp_salary", Primary!, true)
See also GetItemDate
GetItemDateTime
GetItemNumber
GetItemString
GetItemTime
SetItem
GetItemFormattedString
Description Gets and formats data whose type is String from the specified buffer of a
DataWindow control or DataStore object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetItemFormattedString ( long row, integer
column
{, DWBuffer dwbuffer, boolean originalvalue } )
string dwcontrol.GetItemFormattedString ( long row, string column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row location of the string data.
column The column location of the data. The datatype of the column
must be String. Column can be a column number or a column
name. The column number is the number of the column as it is
listed in the Column Specification view of the DataWindow
painter—not necessarily the number of the column in the
Design view.
To get the contents of a computed field, specify the name of the
computed field for column. Computed fields do not have
numbers.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
(optional) DataWindow buffer from which you want to get the data. For a
list of valid values, see DWBuffer on page 485.
originalvalue A boolean indicating whether you want the original or current
(optional) values for row and column:
• True – Returns the original values (the values initially
retrieved from the database).
• False – (Default) Returns the current values.
If you specify dwbuffer, you must also specify originalvalue.
646 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples These statements set LName to the current string in the primary buffer for
row 3 of in the column named emp_name in the DataWindow
dw_employee. The retrieved value is formatted with the display format of
the column:
String LName
LName = dw_employee.GetItemFormattedString(3,
"emp_name")
See also GetItemString
GetItemUnformattedString
GetItemNumber
Description Gets numeric data from the specified buffer of a DataWindow control or
DataStore object. You can obtain the data that was originally retrieved and
stored in the database from the original buffer, as well as the current value
in the primary, delete, or filter buffers.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
numeric dwcontrol.GetItemNumber ( long row, string column
{, DWBuffer dwbuffer, boolean originalvalue } )
numeric dwcontrol.GetItemNumber ( long row, integer column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row location of the numeric data.
column The column location of the numeric data. The datatype of
the column must be one of a numeric datatype. Column can
be a column number or a column name. The column number
is the number of the column as it is listed in the Column
Specification view of the DataWindow painter—not
necessarily the number of the column in the Design view.
To get the contents of a computed field, specify the name of
the computed field for column. Computed fields do not have
numbers.
Argument Description
dwbuffer A value identifying the DataWindow buffer from which you
(optional) want to get the data. For a list of valid values, see DWBuffer
on page 485.
originalvalue A boolean indicating whether you want the original or
(optional) current values for row and column:
• True – Return the original values (the values initially
retrieved from the database).
• False – (Default) Return the current values.
If you specify dwbuffer, you must also specify
originalvalue.
Return value Returns the numeric value in the specified row and column (decimal,
double, integer, long, or real). Returns null if the column value is null or if
there is no DataWindow object assigned to the DataWindow control or
DataStore. Triggers the SystemError event and returns –1 if any other error
occurs (see Handling errors on page 648).
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage Use GetItemNumber to get information from the DataWindow’s buffers.
To find out what the user entered in the current column before that data is
accepted, use GetText. In the ItemChanged or ItemError events, use the
data argument.
To access a row in the original buffer, specify the buffer that the row
currently occupies (primary, delete, or filter) and the number of the row in
that buffer. When you specify true for originalvalue, the method gets the
original data for that row from the original buffer.
Handling errors The return value is a valid value from the database
unless the SystemError event is triggered. When the value cannot be
converted because the column’s datatype does not match the method’s
datatype, an execution error occurs, which triggers the SystemError event.
The default error processing halts the application. If you write a script for
the SystemError event, it should also halt the application. Therefore, the
error return value is seldom used.
Examples These statements set EmpNbr to the current numeric data in the primary
buffer for row 4 of the column named emp_nbr in dw_employee:
integer EmpNbr
EmpNbr = dw_employee.GetItemNumber(4, "emp_nbr")
648 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
These statements set EmpNbr to the current numeric data in the filter
buffer for row 4 of the column named salary of dw_employee:
integer EmpNbr
EmpNbr = dw_employee.GetItemNumber(4, &
"salary", Filter!, false)
These statements set EmpNbr to the original numeric data in the primary
buffer for row 4 of the column named salary of dw_Employee:
integer EmpNbr
EmpNbr = dw_Employee.GetItemNumber(4, &
"salary", Primary!, true)
See also GetItemDate
GetItemDateTime
GetItemDecimal
GetItemString
GetItemTime
SetItem
GetItemStatus
Description Reports the modification status of a row or a column within a row. The
modification status determines the type of SQL statement the Update
method will generate for the row or column.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
DWItemStatus dwcontrol.GetItemStatus ( long row, integer column,
DWBuffer dwbuffer )
DWItemStatus dwcontrol.GetItemStatus ( long row, string column,
DWBuffer dwbuffer )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row for which you want the status.
Argument Description
column The column for which you want the status. Column can be a
column number or a column name. The column number is the
number of the column as it is listed in the Column Specification
view of the DataWindow painter—not necessarily the number
of the column in the Design view.
Specify 0 to get the status of the whole row.
dwbuffer A value identifying the DataWindow buffer containing the row
for which you want status. For a list of valid values, see
DWBuffer on page 485.
Return value A value of the dwItemStatus enumerated datatype. The return value
identifies the status of the item at row, column of dwcontrol in dwbuffer.
For a list of status values, see DWItemStatus on page 486.
If column is 0, GetItemStatus returns the status of row. If there is no
DataWindow object assigned to the DataWindow control or DataStore,
GetItemStatus returns null.
650 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetItemString
Description Gets data whose type is String from the specified buffer of a DataWindow
control or DataStore object. You can obtain the data that was originally
retrieved and stored in the database from the original buffer, as well as the
current value in the primary, delete, or filter buffers.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetItemString ( long row, integer column
{, DWBuffer dwbuffer, boolean originalvalue } )
string dwcontrol.GetItemString ( long row, string column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row location of the string data.
column The column location of the data. The datatype of the column
must be String. Column can be a column number or a column
name. The column number is the number of the column as it is
listed in the Column Specification view of the DataWindow
painter—not necessarily the number of the column in the
Design view.
To get the contents of a computed field, specify the name of the
computed field for column. Computed fields do not have
numbers.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
(optional) DataWindow buffer from which you want to get the data. For a
list of valid values, see DWBuffer on page 485.
Argument Description
originalvalue A boolean indicating whether you want the original or current
(optional) values for row and column:
• True – Returns the original values (the values initially
retrieved from the database).
• False – (Default) Returns the current values.
If you specify dwbuffer, you must also specify originalvalue.
Return value Returns the string value in the specified row and column. Returns the
empty string (“ ”) if there is no DataWindow object assigned to the
DataWindow control or DataStore or if any other error occurs.
If any argument value is null, in PowerBuilder the method returns null.
Usage Use GetItemString to get information from the DataWindow’s buffers. To
find out what the user entered in the current column before that data is
accepted, use GetText. In the ItemChanged or ItemError events, use the
data argument.
To access a row in the original buffer, specify the buffer that the row
currently occupies (primary, delete, or filter) and the number of the row in
that buffer. When you specify true for originalvalue, the method gets the
original data for that row from the original buffer.
GetItemString returns a formatted value in the case of a computed column,
and an unformatted value in the case of a noncomputed column. For
PowerBuilder DataWindows, you can use the GetItemFormattedString
method to return a formatted value, or the GetItemUnformattedString
method to return an unformatted value, for any type of column.
Mismatched datatypes
An execution error occurs when the datatype of the DataWindow column
does not match the datatype of the method—in this case, String.
Examples These statements set LName to the current string in the primary buffer for
row 3 of the column named emp_name in the DataWindow dw_employee:
String LName
LName = dw_employee.GetItemString(3, "emp_name")
These statements set LName to the current string in the delete buffer for
row 3 of the column named emp_name of dw_employee:
String LName
LName = dw_employee.GetItemString(3, &
652 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetItemTime
Description Gets data whose type is Time from the specified buffer of a DataWindow
control or DataStore object. You can obtain the data that was originally
retrieved and stored in the database from the original buffer, as well as the
current value in the primary, delete, or filter buffers.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
time dwcontrol.GetItemTime ( long row, string column
{, DWBuffer dwbuffer, boolean originalvalue } )
time dwcontrol.GetItemTime ( long row, integer column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row location of the data.
column The column location of the data. The datatype of the column
must be time. Column can be a column number or a column
name. The column number is the number of the column as it is
listed in the Column Specification view of the DataWindow
painter—not necessarily the number of the column in the
Design view.
To get the contents of a computed field, specify the name of the
computed field for column. Computed fields do not have
numbers.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
(optional) DataWindow buffer from which you want to get the data. For
a list of valid values, see DWBuffer on page 485.
originalvalue A boolean indicating whether you want the original or current
(optional) values for row and column:
• True – Return the original values (the values initially
retrieved from the database).
• False – (Default) Return the current values.
If you specify dwbuffer, you must also specify originalvalue.
Return value Returns the time value in the specified row and column. Returns null if the
column value is null or if there is no DataWindow object assigned to the
DataWindow control or DataStore. Returns 00:00:00.000000 if an error
occurs.
If any argument value is null, in PowerBuilder the method returns null.
Usage Use GetItemTime to get information from the DataWindow’s buffers. To
find out what the user entered in the current column before that data is
accepted, use GetText. In the ItemChanged or ItemError events, use the
data argument.
To access a row in the original buffer, specify the buffer that the row
currently occupies (primary, delete, or filter) and the number of the row in
that buffer. When you specify true for originalvalue, the method gets the
original data for that row from the original buffer.
654 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples These statements set Start to the current Time data in the primary buffer
for row 3 of the column named title in dw_employee:
Time Start
Start = dw_employee.GetItemTime(3, "title")
These statements set Start to the current Time data in the filter buffer for
row 3 of the column named start_time of dw_employee:
Time Start
Start = dw_employee.GetItemTime(3, &
"start_time", Filter!, false)
These statements set Start to the original Time data in the primary buffer
for row 3 of the column named start_time of dw_employee:
Time Start
Start = dw_employee.GetItemTime(3, &
"start_time", Primary!, true)
See also GetItemDate
GetItemDateTime
GetItemDecimal
GetItemNumber
GetItemString
GetText
SetItem
SetText
GetItemUnformattedString
Description Gets raw (unformatted) data whose type is String from the specified buffer
of a DataWindow control or DataStore object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetItemUnformattedString ( long row,
integer column {, DWBuffer dwbuffer, boolean originalvalue } )
string dwcontrol.GetItemUnformattedString ( long row, string
column
{, DWBuffer dwbuffer, boolean originalvalue } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or
child DataWindow.
row A value identifying the row location of the string data.
column The column location of the data. The datatype of the
column must be String. Column can be a column number
or a column name. The column number is the number of
the column as it is listed in the Column Specification
view of the DataWindow painter—not necessarily the
number of the column in the Design view.
To get the contents of a computed field, specify the name
of the computed field for column. Computed fields do
not have numbers.
dwbuffer (optional) A value of the dwBuffer enumerated datatype
identifying the DataWindow buffer from which you
want to get the data. For a list of valid values, see
DWBuffer on page 485.
656 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
originalvalue A boolean indicating whether you want the original or
(optional) current values for row and column:
• True – Returns the original values (the values initially
retrieved from the database).
• False – (Default) Returns the current values.
If you specify dwbuffer, you must also specify
originalvalue.
GetLastError
Description Returns the error code of the last database error that occurred in the Web
DataWindow server component.
Obsolete method
GetLastError is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Argument Description
dwcontrol A reference to the DataWindow server component
Return value Returns a numeric error code for the last database error that occurred.
If dwcontrol is null, the method returns null.
Usage Call GetLastError and GetLastErrorString to get information about database
errors that caused SetAction, Update, Retrieve, and RetrieveEx to return –1.
Examples This code in a page server script calls Retrieve for the Web DataWindow
server component called dwComponent and gets information about the
database error if Retrieve fails:
retVal = dwComponent.Retrieve( );
if (retVal < 0) {
Response.Write("Retrieval error: "
+ dwComponent.GetLastError( )
+ "<BR>"
+ dwComponent.GetLastErrorString( )
+ "<BR>");
}
See also GetLastErrorString
Retrieve
Update
GetLastErrorString
Description Returns the text of the error message for the last database error that
occurred in the Web DataWindow server component.
Obsolete method
GetLastErrorString is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
658 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Return value Returns a string containing an error message for the last database error that
occurred.
If dwcontrol is null, the method returns null.
Usage Call GetLastError and GetLastErrorString to get information about database
errors that caused SetAction, Update, Retrieve, and RetrieveEx to return –1.
Examples This code in a page server script calls Retrieve for the Web DataWindow
server component called dwComponent and gets information about the
database error if Retrieve fails:
retVal = dwComponent.Retrieve( );
if (retVal < 0) {
Response.Write("Retrieval error: "
+ dwComponent.GetLastError( )
+ "<BR>"
+ dwComponent.GetLastErrorString( )
+ "<BR>");
}
See also GetLastError
Retrieve
Update
GetMessageText
Description Obtains the message text generated by a crosstab DataWindow object in a
DataWindow control. Only crosstab DataWindows generate messages.
Obsolete method
GetMessageText is obsolete and will be discontinued in a future release.
You should replace all use of GetMessageText as soon as possible. The
message text is available as an argument in a user event defined for
pbm_dwnmessagetext in a DataWindow control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
string dwcontrol.GetMessageText ( )
Argument Description
dwcontrol A reference to the DataWindow control for which you want the
message text
Return value Returns the text of the message generated by dwcontrol. If there is no text
or an error occurs, GetMessageText returns the empty string (“”).
If dwcontrol is null, the method returns null.
Usage To use GetMessageText, you must first define a user-defined event for the
event ID pbm_dwnmessagetext; then you call this method in the script for
that event.
Typical messages are Retrieving data and Building crosstab.
Examples This statement is part of a script for a user-defined event with the ID
pbm_dwmessagetext. The style of the DataWindow object in the
DataWindow control is crosstab. The statement sets the MicroHelp of the
MDI frame window w_crosstab:
w_crosstab.SetMicroHelp(This.GetMessageText())
GetNextModified
Description Reports the next row that has been modified in the specified buffer.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.GetNextModified (long row, DWBuffer dwbuffer )
Argument Description
dwcontrol A name of the DataWindow control, DataStore, or child
DataWindow in which you want to locate the modified row.
660 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
row A value identifying the row location after which you want to
locate the modified row. To search from the beginning, specify
0.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
DataWindow buffer in which you want to locate the modified
row. For a list of valid values, see DWBuffer on page 485.
Return value Returns the number of the first row that was modified after row in
dwbuffer in dwcontrol. Returns 0 if there are no modified rows after the
specified row.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage PowerBuilder stores the update status of rows and columns in the
DataWindow. The status settings indicate whether a row or column is new
or has been modified. GetNextModified reports rows with the status
NewModified! and DataModified!.
For more information on the status of rows and columns, see GetItemStatus
and SetItemStatus.
Using GetNextModified on the delete buffer will return rows that have been
modified and then deleted. The DeletedCount method will report the total
number of deleted rows.
GetNextModified begins searching in the row after the value you specify in
row. This is different from the behavior of Find, FindGroupChange, and
FindRequired, which begin searching in the row you specify.
Examples These statements count the number or rows that were modified in the
primary buffer for dw_status and then display a message reporting the
number modified:
integer rc
long NbrRows, ll_row = 0, count = 0
dw_status.AcceptText()
NbrRows = dw_status.RowCount()
DO WHILE ll_row <= NbrRows
ll_row = dw_status.GetNextModified(ll_row,
Primary!)
IF ll_row > 0 THEN
count = count + 1
ELSE
ll_row = NbrRows + 1
END IF
LOOP
MessageBox("Modified Count", &
String(count) &
+ " rows were modified.")
See also DeletedCount
FindRequired
GetNextModified
ModifiedCount
SetItemStatus
GetObjectAtPointer
Description Reports the control within the DataWindow object and row number under
the pointer. Controls include columns, labels, and other graphic controls,
such as lines and pictures.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
string dwcontrol.GetObjectAtPointer ( )
Argument Description
dwcontrol A reference to a DataWindow control
Return value Returns the string whose value is the name of the control under the pointer,
followed by a tab character and the row number. Returns the empty string
(“”) if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
662 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage If the object doesn’t have a name, neither a name nor a row is reported.
Since PowerBuilder 7, the painter gives names to all controls. In earlier
versions, only columns and column labels got default names in the
DataWindow painter and you could name other controls yourself.
You can parse the return value by searching for the tab character (ASCII
09). In PowerBuilder, search for ~t. For an example that parses a string that
includes a tab, see GetValue.
For information on the rows associated with bands and therefore with
controls in those bands, see GetBandAtPointer.
Examples These statements obtain the name of the control under the pointer in the
DataWindow dw_emp:
String dwobjectname
dwobjectname = dw_emp.GetObjectAtPointer()
Some possible return values are:
Table 9-4: Example return values for the GetObjectAtPointer
method
Return value Meaning
salary~t23 The control named salary in row 23.
salary_h~t15 The control named salary_h, which is in the header. Row
15 is the first visible row below the header.
GetParent
Description Obtains the parent of the specified object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
PowerObject objectname.GetParent ( )
Argument Description
objectname A control in a window or user object or an item on a menu for
which you want the parent object
GetRichTextAlign
Description Gets the current alignment setting for editing columns with the RichText
edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.GetRichTextAlign ( REF alignment align )
Argument Description
dwcontrol A reference to the DataWindow control
align Current alignment setting of the selected text
Return value Returns an integer to indicate whether the column that you selected has the
RichText edit style and whether the content has one or more alignment
types applied.
0 Success
-1 No RichText column is being edited
-2 The selected text is a mix of alignment types
Usage You can call this method from a button in a custom toolbar that you use to
obtain current font settings for columns with the RichText edit style.
Examples This example obtains the current alignment setting to be used for editing
columns with the RichText edit style:
Integer li_integer
Alignment l_align
li_integer = dw_1.GetRichTextAlign(l_align)
See also GetRichTextColor
GetRichTextFaceName
GetRichTextSize
GetRichTextStyle
SetRichTextAlign
664 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetRichTextColor
Description Gets the current color setting for editing columns with the RichText edit
style.
Applies to DataWindow control
Syntax Integer dwcontrol.GetRichTextColor ( REF long color )
Argument Description
dwcontrol A reference to the DataWindow control
color A long used to define the color
Return value Returns an integer to indicate whether the column that you selected has the
RichText edit style and whether the content has one or more colors
applied.
0 Success
-1 No RichText column is being edited
-2 The selected text is a mix of colors
Usage If the color for columns with the RichText edit style is white, background
transparency and gradient and text transparency will not work properly.
You can call this method from a button in a custom toolbar that you use to
obtain current font settings for columns with the RichText edit style.
Examples This example obtains the current color setting of the font to be used for
editing columns with a RichText edit style:
Integer li_integer
Long l_long
li_integer = dw_1.GetRichTextColor(l_long)
See also GetRichTextAlign
GetRichTextFaceName
GetRichTextSize
GetRichTextStyle
SetRichTextColor
GetRichTextFaceName
Description Gets the current typeface setting for editing columns with the RichText
edit style.
Return value Returns an integer to indicate whether the column that you selected has the
RichText edit style and whether the content has one or more fonts applied.
0 Success
-1 No RichText column is being edited
-2 The selected text is a mix of fonts
Usage You can call this method from a button in a custom toolbar that you use to
obtain current font settings for columns with the RichText edit style.
Examples This example obtains the typeface of the font to be used for editing
columns with a RichText edit style:
Integer li_integer
String ls_string
li_integer = dw_1.GetRichTextFaceName(ls_string)
If Tahoma font is selected when the above script is called, ls_string is
Tahoma and the method returns 0. If a mix of fonts is selected, ls_string is
blank and the method returns –2.
See also GetRichTextAlign
GetRichTextColor
GetRichTextSize
GetRichTextStyle
SetRichTextFaceName
GetRichTextSize
Description Gets the current font size setting for editing columns with the RichText
edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.GetRichTextSize ( REF integer size )
666 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol A reference to the DataWindow control
size Value indicating the point size of the font; if the selected
text is a mix of sizes, the value is 0
Return value Returns an integer to indicate whether the column that you selected has the
RichText edit style and whether the content has one or more sizes applied.
0 Success
-1 No RichText column is being edited
-2 The selected text is a mix of sizes
Usage You can call this method from a button in a custom toolbar that you use to
obtain current font settings for columns with the RichText edit style.
Examples This example obtains the current size setting of the font to be used for
editing columns with a RichText edit style:
Integer li_integer
Integer li_textsize
li_integer = dw_1.GetRichTextSize(li_textsize)
If 10 point text is selected when the above script is called, li_textsize is 10
and the method returns 0. If a mix of sizes is selected, li_textsize is 0 and
the method returns –2.
See also GetRichTextAlign
GetRichTextColor
GetRichTextFaceName
GetRichTextStyle
SetRichTextSize
GetRichTextStyle
Description Determines whether selected text or text at the cursor in a RichText
column has a specified formatting.
Applies to DataWindow control
Syntax Integer dwcontrol.GetRichTextStyle ( TextStyle style, REF boolean state
)
Argument Description
dwcontrol A reference to the DataWindow control
Argument Description
style Value for specifying a text style. Allowable values are:
bold!
italic!
strikeout!
subscript!
superscript!
underlined!
state Indicates whether the selected text or text at the cursor
position has a style applied to it
Return value Returns an integer to indicate whether the column that you selected has the
RichText edit style and whether the content has one or more styles applied.
0 Success
-1 No RichText column is being edited
-2 The selected text is a mix of styles
Usage You can call this method from a button in a custom toolbar that you use to
obtain the current font settings for columns with the RichText edit style.
Examples This example determines whether a bold font is the current style setting for
editing columns with a RichText edit style.
Integer li_style
Boolean lb_state
li_style = dw_1.GetRichTextStyle(bold!, lb_state)
If bold text is selected when the above script is called, the lb_state
argument is true, and the method returns 0. If mixed text is selected, such
as bold and italic, lb_state is true, and the method returns –2.
See also GetRichTextAlign
GetRichTextColor
GetRichTextFaceName
GetRichTextSize
SetRichTextStyle
GetRow
Description Reports the number of the current row in a DataWindow control or
DataStore object.
668 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.GetRow ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or the child
DataWindow
Return value Returns the number of the current row in dwcontrol. Returns 0 if no row is
current and -1 if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Examples This statement returns the number of the current row in dw_Employee:
dw_employee.GetRow()
See also GetColumn
SetColumn
SetRow
GetRowFromRowId
Description Gets the row number of a row in a DataWindow control or DataStore
object from the unique row identifier associated with that row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
Return value Returns the row number in buffer. Returns 0 if the row number is not in the
current buffer and –1 if an error occurs.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage This method allows you to use a unique row identifier to retrieve the
associated DataWindow or DataStore row number. The row identifier is
not affected by operations (such as Insert, Delete, or Filter) that might
change the original order (and consequently the row numbers) of the rows
in the DataWindow or DataStore.
Row identifiers
The row identifier is relative to the DataWindow that currently owns the
row.
Examples This example uses the row identifier previously obtained using the
GetRowIdFromRow method to retrieve the row’s number after the original
order of the rows in the DataWindow has changed.
long ll_rowid
long ll_rownumber
ll_rowid = dw_1.GetRowIdFromRow(dw_1.GetRow())
// suppose original order of rows changes...
ll_rownumber = dw_1.GetRowFromRowId(ll_rowid)
See also GetRow
GetRowIdFromRow
670 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetRowIdFromRow
Description Gets the unique row identifier of a row in a DataWindow control or
DataStore object from the row number associated with that row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.GetRowIdFromRow (long rownumber {, DWBuffer
buffer } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or the child
DataWindow.
rownumber A number specifying the row number for which you want the
associated row identifier.
buffer A value of the dwBuffer enumerated datatype identifying the
(optional) DataWindow buffer that contains the row. For a list of valid
values, see DWBuffer on page 485.
Return value Returns the row identifier in buffer. Returns 0 if the row identifier is not in
the current buffer and –1 if an error occurs.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage The row identifier value is not the same as the row number value used in
many DataWindow and DataStore function calls and should not be used
for the row number value. Instead you should first convert the unique row
identifier into a row number by calling GetRowFromRowId.
Row identifiers
The row identifier is relative to the DataWindow that currently owns the
row.
GetSelectedRow
Description Reports the number of the next highlighted row after a specified row in a
DataWindow control or DataStore object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.GetSelectedRow ( long row )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the location of the row after which you want
to search for the next selected row. Specify 0 to begin searching
at the first row.
Return value Returns the number of the first row that is selected after row in dwcontrol.
Returns 0 if no row is selected after the specified row.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage Rows are not automatically selected—that is, highlighted—when they
become current. You can select a row by calling the SelectRow method.
GetSelectedRow begins its search after the specified row. It does not
matter whether row itself is selected.
Examples This statement returns the number of the first row that is selected in
dw_Employee:
dw_employee.GetSelectedRow(0)
This statement returns the number of the first row that is selected
beginning with row 25 in dw_Employee:
dw_employee.GetSelectedRow(25)
See also SelectRow
672 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetSQLPreview
Description Reports the SQL statement that the DataWindow control is currently
submitting to the database.
Obsolete method
GetSQLPreview is obsolete and will be discontinued in a future release.
You should replace all references to GetSQLPreview as soon as possible.
The SQL syntax is available as an argument in the DBError and
SQLPreview events.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetSQLPreview ( )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow
Return value Returns the current SQL statement for dwcontrol. Returns the empty string
(“”) if an error occurs.
If dwcontrol is null, the method returns null.
See also SetSQLPreview
GetSQLSelect
Description Reports the SQL SELECT statement associated with a DataWindow if its
data source is one that accesses a SQL database (such as SQL Select,
Quick Select, or Query).
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetSQLSelect ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns the current SQL SELECT statement for dwcontrol. GetSQLSelect
returns the empty string (“”) if it cannot return the statement.
If dwcontrol is null, the method returns null.
Usage When you want to change the SQL SELECT statement for a DataWindow
or DataStore at runtime, you can use GetSQLSelect to save the current
SELECT statement before making the change.
674 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetStateStatus
Description Retrieves the current status of the internal state flags for a DataWindow
and places this information in a blob.
This method is used primarily in distributed applications.
Obsolete method
GetStateStatus is obsolete and will be discontinued in a future release. You
should remove all use of GetStateStatus as soon as possible. This method
was originally added to PowerScript to allow you to synchronize a source
DataWindow with multiple target DataWindows. This technique is no
longer supported.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.GetStateStatus ( blob cookie )
Argument Description
dwcontrol A reference to the DataWindow control or DataStore for which
you want to get state status
cookie A variable in which you want to store a cookie that contains state
information for the DataWindow
676 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetText
Description Obtains the value in the edit control over the current row and column.
When the user changes a value in a DataWindow, it is available in the edit
control before it is accepted into the column.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetText ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns the value in the edit control over the current row and column in
dwcontrol. The value might or might not have been accepted into the row
and column. Returns the empty string (“ ”) if no column is currently
selected in dwcontrol.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage The values in the rows and columns of a DataWindow are items in the
DataWindow’s buffer. When a user edits a value in a row and column, the
item value is transferred as text to an edit control in which the user can
change the value. When the user leaves the column or when a script calls
AcceptText, the text in the edit control is accepted into the column and
becomes the value of the item in the buffer.
You do not need to call GetText in the script for the ItemChanged or
ItemError event. To check the value entered in the edit control over the
current row and column before allowing it to be accepted into the column,
use the data argument.
To obtain the value stored in the DataWindow’s buffer for the row and
column, use the GetItem method that corresponds with the datatype of the
column.
Examples This statement returns the text held in the edit control for the currently
selected cell in dwEmp to the string variable selectedCell. The text might
be a name or address for a column with the Edit edit style, Y or N for a
column with the CheckBox edit style, or M or F for a column with the
RadioButtons edit style that represents gender:
string selectedCell
selectedCell = dwEmp.GetText()
See also SetText
GetTrans
Description Gets the values for the DataWindow control or DataStore object’s internal
transaction object and stores these values in the programmer-specified
transaction object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.GetTrans ( transaction transaction )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
transaction The name of the transaction object into which you want to put the
values
Return value Returns 1 if it succeeds and –1 if an error occurs. The return value is
usually not used.
If any argument value is null, the method returns null.
Usage The SetTrans method (not the SetTransObject method) sets the internal
transaction object. If you have not called SetTrans, GetTrans will fail.
Use GetTrans when you want to get the values for the transaction object in
order to modify them, as shown in the last example.
678 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetUpdateStatus
Description Reports the row number and buffer of the row that is currently being
updated in the database. When called because of an error, GetUpdateStatus
reports the row that caused the error.
Obsolete method
GetUpdateStatus is obsolete and will be discontinued in a future release.
You should replace all references to GetUpdateStatus as soon as possible.
The update status is available as an argument in the DBError and
SQLPreview events.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.GetUpdateStatus (long row, DWBuffer dwbuffer )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow.
row A variable that will store the number of the row that will be
updated or for which an update was attempted.
dwbuffer A value of the dwBuffer enumerated datatype identifying the
DataWindow buffer that contains the row being updated. For a
list of valid values, see DWBuffer on page 485.
Return value Returns 1 if it succeeds and –1 if an error occurs. The number and buffer
of the row currently being updated are stored in row and dwbuffer.
If any argument value is null, the method returns null.
680 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples These statements in the script for the DBError event for a DataWindow
control obtain the text of the error message, display a message box with
the number of the row in which the error occurred and the error message,
and then make the row with the error the current row.
Additional code in the IF statement considers the case of the bad row being
in the filter or delete buffer. If the row is in the filter buffer, the script
changes the filter so that the user can edit the row in the primary buffer. If
the row is in the delete buffer, the message box displays a slightly different
title:
long row_number, row_key
dwBuffer buffer_type
string message_text, message_title, old_filter
END IF
// Display the location of the error and the error
// message.
MessageBox(message_title + &
String(row_number), message_text)
row.
This.ScrollToRow(row_number)
END IF
// Return 1 from the DBError event
// (do not display error message) because we've
// already displayed a message
RETURN 1
See also GetItemStatus
GetValidate
Description Obtains the validation rule for a column in a DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetValidate ( string column )
string dwcontrol.GetValidate ( integer column )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column for which you want the validation rule. Column can
be a column number or a column name. The column number is the
number of the column as it is listed in the Column Specification
view of the DataWindow painter—not necessarily the number of
the column in the Design view.
Return value Returns the validation rule for column in dwcontrol. Returns the empty
string (“”) if no validation criteria are defined for the column.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage You can use GetValidate to save the current validation rule before calling
SetValidate to change the rule temporarily.
Examples These statements change the validation rule for column 7 in the
DataWindow control dw_Employee to Rule2:
682 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
GetValue
Description Obtains the value of an item in a value list or code table associated with a
column in a DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.GetValue ( string column, integer index )
string dwcontrol.GetValue ( integer column, integer index )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column for which you want the item. Column can be a
column number (integer) or a column name (string).
index The number of the item in the value list or the code table for the
edit style.
Return value Returns the item identified by index in the value list or the code table
associated with column of dwcontrol. If the item has a display value that
is not the actual value, GetValue returns a tab-separated string consisting
of:
displayvalue[tab]codevalue
Returns the empty string (“ ”) if the index is not valid or the column does
not have a value list or code table.
If any argument value is null, in PowerBuilder and JavaScript the method
returns null.
Usage You can use GetValue to find out the values associated with the following
edit styles: CheckBox, RadioButton, DropDownListBox, Edit Mask, and
Edit. If the edit style has a code table in which each value in the list has a
display value and a data value, GetValue reports both values.
GetValue does not get values from a DropDownDataWindow code table.
You can parse the return value by searching for the tab character (ASCII
09). In PowerBuilder, search for ~t.
Examples If the value list for column 7 of dw_employee contains Full Time, Part
Time, Retired, and Terminated, these statements return the value of item 3
(Retired):
string Status
Status = dw_employee.GetValue(7,3)
If the value list for the column named product of dw_employee is
Widget[tab]1, Gadget[tab]2, the following code returns Gadget[tab]2 and
saves the display value in a string variable:
string ls_prodinfo, ls_prodname, ls_prodnum
integer li_tab
ls_prodinfo = dw_employee.GetValue("product", 2)
GroupCalc
Description Recalculates the breaks in the grouping levels in a DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.GroupCalc ( )
684 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Hide
Description Makes an object or control invisible. Users cannot interact with an
invisible object. It does not respond to any events, so the object is also, in
effect, disabled.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer objectname.Hide ( )
Argument Description
objectname The name of the object or control you want to make invisible
ImportClipboard
Description Inserts data into a DataWindow control or DataStore object from tab-
separated, comma-separated, or XML data on the clipboard.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.ImportClipboard ( {saveastype importtype}, { long
startrow {, long endrow {, long startcolumn {, long endcolumn {, long
dwstartcolumn } } } } } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
importtype An enumerated value of the SaveAsType DataWindow
(optional for constant or a number representing that value (see
PowerBuilder) SaveAsType on page 492). Valid import type arguments for
ImportClipboard are:
Text!
CSV!
XML!
If you want to generate an XML trace file, the XML!
argument is required.
startrow The number of the first detail row in the clipboard that you
(optional for want to copy. The default is 1.
PowerBuilder) For default XML import, if startrow is supplied, the first N
(startrow -1) elements are skipped, where N is the
DataWindow row size.
For template XML import, if startrow is supplied, the first
(startrow -1) occurrences of the repetitive row mapping
defined in the template are skipped.
686 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
endrow The number of the last detail row in the clipboard that you
(optional for want to copy. The default is the rest of the rows.
PowerBuilder) For default XML import, if endrow is supplied, import stops
when N * endrow elements have been imported, where N is
the DataWindow row size.
For template XML import, if endrow is supplied, import
stops after endrow occurrences of the repetitive row
mapping defined in the template have been imported.
startcolumn The number of the first column in the clipboard that you
(optional for want to copy. The default is 1.
PowerBuilder) For default XML import, if startcolumn is supplied, import
skips the first (startcolumn - 1) elements in each row.
This argument has no effect on template XML import.
endcolumn The number of the last column in the clipboard that you
(optional for want to copy. The default is the rest of the columns.
PowerBuilder) For default XML import, if endcolumn is supplied and is
smaller than N, where N is the DataWindow row size,
import skips the last (N - endcolumn) elements in each row.
This argument has no effect on template XML import.
dwstartcolumn The number of the first column in the DataWindow control
(optional for or DataStore that should receive data. The default is 1. This
PowerBuilder) argument is supported for default and template XML
import.
Return value Returns the number of rows that were imported if it succeeds and one of
the following negative integers if an error occurs:
-1 No rows or startrow value supplied is greater than the number of rows
in the string
-3 Invalid argument
-4 Invalid input
-11 XML Parsing Error; XML parser libraries not found or XML not
well formed
-12 XML Template does not exist or does not match the DataWindow
-13 Unsupported DataWindow style for import
-14 Error resolving DataWindow nesting
688 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ImportFile
Description Inserts data into a DataWindow control or DataStore from a file. The data
can be tab-separated text, comma-separated text, XML, or dBase format 2
or 3.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.ImportFile ( {saveastype importtype}, string filename
{, long startrow {, long endrow {, long startcolumn {, long endcolumn
{, long dwstartcolumn } } } } } )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore
importtype An enumerated value of the SaveAsType DataWindow
(optional for constant or a number representing that value (see
PowerBuilder) SaveAsType on page 492). If this argument is specified, the
filename argument can be specified without an extension.
Valid type arguments for ImportFile are:
Text!
CSV!
XML!
DBase2!
DBase3!
filename A string whose value is the name of the file from which you
want to copy data. The file must be an ASCII, tab-separated
file (TXT) or a comma-separated file (CSV), Extensible
Markup Language file (XML), or dBase format 2 or 3 file
(DBF). Specify the file’s full name. If the optional
importtype is not specified, the name must end in the
appropriate extension.
If filename is an empty string, or if it is null, ImportFile
displays the File Open dialog box and allows the user to
select a file. The remaining arguments are ignored.
Argument Description
startrow The number of the first detail row in the file that you want
(optional for to copy. The default is 1.
PowerBuilder) For default XML import, if startrow is supplied, the first N
(startrow -1) elements are skipped, where N is the
DataWindow row size.
For template XML import, if startrow is supplied, the first
(startrow -1) occurrences of the repetitive row mapping
defined in the template are skipped.
endrow The number of the last detail row in the file that you want to
(optional for copy. The default is the rest of the rows.
PowerBuilder) For default XML import, if endrow is supplied, import stops
when N * endrow elements have been imported, where N is
the DataWindow row size.
For template XML import, if endrow is supplied, import
stops after endrow occurrences of the repetitive row
mapping defined in the template have been imported.
startcolumn The number of the first column in the file that you want to
(optional for copy. The default is 1.
PowerBuilder) For default XML import, if startcolumn is supplied, import
skips the first (startcolumn - 1) elements in each row.
This argument has no effect on template XML import.
endcolumn The number of the last column in the file that you want to
(optional for copy. The default is the rest of the columns.
PowerBuilder) For default XML import, if endcolumn is supplied and is
smaller than N, where N is the DataWindow row size, import
skips the last (N - endcolumn) elements in each row.
This argument has no effect on template XML import.
dwstartcolumn The number of the first column in the DataWindow control
(optional for or DataStore that should receive data. The default is 1. This
PowerBuilder) argument is supported for default and template XML
import.
690 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
-4 Invalid input
-5 Could not open the file
-6 Could not close the file
-7 Error reading the text
-8 Unsupported file name suffix (must be *.txt, *.csv, *.dbf or *.xml)
-10 Unsupported dBase file format (not version 2 or 3)
-11 XML Parsing Error; XML parser libraries not found or XML not
well formed
-12 XML Template does not exist or does not match the DataWindow
-13 Unsupported DataWindow style for import
-14 Error resolving DataWindow nesting
-15 File size exceeds limit
Usage The format of the file can be indicated by specifying the optional
importtype parameter, or by including the appropriate file extension.
The file should consist of rows of data. If the file includes column
headings or row labels, set the startrow and startcolumn arguments to skip
them. The datatypes and order of the DataWindow object’s columns must
match the columns of data in the file.
The startcolumn and endcolumn arguments control the number of columns
imported from the file and the number of columns in the DataWindow that
are affected. The dwstartcolumn argument specifies the first DataWindow
column to be affected. The following formula calculates the last
DataWindow to be affected.
dwstartcolumn + (endcolumn - startcolumn)
To let users select the file to import, specify a null string for filename.
PowerBuilder displays the Select Import File dialog box. A drop-down list
lets the user select the type of file to import.
692 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
The following statements are equivalent. Both import the contents of the
XML file named myxmldata:
dw_control.ImportFile("myxmldata.xml")
dw_control.ImportFile(XML!, "myxmldata")
This statement imports rows 1 to 200 of employee.xml, ignoring any
template mappings before column 5:
dw_employee.ImportFile(XML!,"D:\TMP\EMPLOYEE.XML",
1, 200, 0, 0, 5)
This statement inserts the data from the file D:\TMP\EMPLOYEE.TXT
into the DataWindow dw_employee. It copies rows 2 through 30 and
columns 3 through 8 in the file to the DataWindow beginning in column
5. The result is 29 rows added to the DataWindow with data in columns 5
through 10:
dw_employee.ImportFile("D:\TMP\EMPLOYEE.TXT", &
2, 30, 3, 8, 5)
See also ImportClipboard
ImportString
ImportString
Description Inserts data into a DataWindow control or DataStore from tab-separated,
comma-separated, or XML data in a string.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.ImportString ( {saveastype importtype}, string string
{, long startrow {, long endrow {,long startcolumn {, long endcolumn
{, long dwstartcolumn } } } } } )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
importtype An enumerated value of the SaveAsType DataWindow
(optional for constant or a string or number representing that value (see
PowerBuilder) SaveAsType on page 492). Valid type arguments are:
Text!
CSV!
XML!
If you want to generate an XML trace file, the XML!
argument is required.
string A string from which you want to copy the data. The string
should contain tab-separated or comma-separated columns
or XML with one row per line (see Usage).
startrow The number of the first detail row in the string that you
(optional for want to copy. The default is 1.
PowerBuilder) For default XML import, if startrow is supplied, the first N
(startrow -1) elements are skipped, where N is the
DataWindow row size.
For template XML import, if startrow is supplied, the first
(startrow -1) occurrences of the repetitive row mapping
defined in the template are skipped.
endrow The number of the last detail row in the string that you want
(optional for to copy. The default is the rest of the rows.
PowerBuilder) For default XML import, if endrow is supplied, import
stops when N * endrow elements have been imported,
where N is the DataWindow row size.
For template XML import, if endrow is supplied, import
stops after endrow occurrences of the repetitive row
mapping defined in the template have been imported.
startcolumn The number of the first column in the string that you want
(optional for to copy. The default is 1.
PowerBuilder) For default XML import, if startcolumn is supplied, import
skips the first (startcolumn - 1) elements in each row.
This argument has no effect on template XML import.
endcolumn The number of the last column in the string that you want
(optional for to copy. The default is the rest of the columns.
PowerBuilder) For default XML import, if endcolumn is supplied and is
smaller than N, where N is the DataWindow row size,
import skips the last (N - endcolumn) elements in each row.
This argument has no effect on template XML import.
694 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwstartcolumn The number of the first column in the DataWindow control
(optional for or DataStore that should receive data. The default is 1. This
PowerBuilder) argument is supported for default and template XML
import.
"100~tMarsh~tMarsha~tApr89~tJan92~t35~tG~r~n"
ls_text = ls_text + &
"100~tJames~tHarry~tAug88~tMar93~t22~tM~r~n"
...
ls_text = ls_text + &
696 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
"100~tWorth~tFrank~tSep87~tJun94~t55~tE~r~n"
dw_employee.ImportString(ls_text, 2, 10, 2, 5, 5)
This statement imports rows 1 to 200 of the data in the XML string ls_emp,
ignoring any template mappings before column 5:
dw_employee.ImportString(ls_emp, 1, 200, 0, 0, 5)
See also ImportClipboard
ImportFile
InsertDocument
Description Inserts a rich text format or plain text file into a DataWindow control or
DataStore object.
The new content is added in one of two ways:
• The new content can be inserted at the insertion point.
• The new content can replace all existing content.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer dwcontrol.InsertDocument ( string filename, boolean
clearflag, FileType filetype)
Argument Description
dwcontrol A reference to a DataWindow control or DataStore object. The
DataWindow object in the DataWindow control or DataStore
must be a RichTextEdit DataWindow.
filename A string whose value is the name of the file you want to display
in the RichTextEdit control. Filename can include the file’s
path.
clearflag A boolean value specifying whether the new file will replace
the current contents of the control. Values are:
• True – Replace the current contents with the file.
• false – Insert the file into the existing contents at the
insertion point.
Argument Description
filetype A value of the FileType enumerated datatype specifying the
type of file being opened. Values are:
• FileTypeRichText! – (Default) The file being opened is in
rich text format (RTF).
• FileTypeText! – The file being opened is plain ASCII text
(TXT).
• FileTypeHTML! – The file being opened is in HTML
format (HTM or HTML)
• FileTypeDoc! – The file being opened is in Microsoft Word
format (DOC)
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, InsertDocument returns null.
Usage When the control supports headers and footer (the HeaderFooter property
is set to true), inserting a document can replace, but not add to, existing
header and footer text. You must set clearflag to true to replace the existing
header and footer text with header and footer text from the inserted
document.
Not all RTF formatting is supported. PowerBuilder supports version 1.6 of
the RTF standard, except for the following:
• No support for formatted tables
• No drawing controls
Any unsupported formatting is ignored.
PowerBuilder environment
For use with other PowerBuilder RichTextEdit controls, see
InsertDocument in the PowerScript Reference.
698 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
InsertRow
Description Inserts a row in a DataWindow or DataStore. If any columns have default
values, the row is initialized with these values before it is displayed.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.InsertRow ( long row )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row before which you want to insert a
row. To insert a row at the end, specify 0.
Return value Returns the number of the row that was added if it succeeds and –1 if an
error occurs.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null. If there is no DataWindow object assigned to the
DataWindow control or DataStore, this method returns –1.
Usage InsertRow simply inserts the row without changing the display or the
current row. To scroll to the row and make it the current row, call
ScrollToRow. To simply make it the current row, call SetRow.
A newly inserted row (with a status flag of New!) is not included in the
modified count until data is entered in the row (its status flag becomes
NewModified!).
Examples This statement inserts an initialized row before row 7 in dw_Employee:
dw_Employee.InsertRow(7)
This example inserts an initialized row after the last row in dw_employee,
then scrolls to the row, which makes it current:
long ll_newrow
ll_newrow = dw_employee.InsertRow(0)
dw_employee.ScrollToRow(ll_newrow)
See also DeleteRow
Update
IsExpanded
Description Performs a test to see whether a group in a TreeView DataWindow with
the specified TreeView level is expanded, and whether the group includes
the specified row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Boolean dw_control.IsExpanded(long row, long groupLevel)
Argument Description
dw_control A reference to a TreeView-style DataWindow control
row The number of the row that belongs to the group
groupLevel The TreeView level of the group
Return value Returns true if the group is expanded and false if the group is not expanded.
IsExpanded also returns false if the DataWindow is not a TreeView
DataWindow or the row or groupLevel is invalid.
Usage A TreeView DataWindow has several TreeView level bands (groups) that
can be expanded and collapsed. You can use the IsExpanded method to test
whether or not a group in a TreeView DataWindow is expanded.
Examples The following example performs a test to determine whether the group
that contains row 3 at TreeView level 2 is expanded:
boolean lb_expanded
lb_expanded = dw_treeview.IsExpanded(3,2)
See also Expand
ExpandAll
ExpandAllChildren
ExpandLevel
IsRowSelected
Description Determines whether a row is selected in a DataWindow. A selected row is
highlighted using reverse video.
700 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Obsolete method
IsRowSelected is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Client control
Return value Returns true if row in dwcontrol is selected and false if it is not selected. If
row is greater than the number of rows in dwcontrol or is 0 or negative,
IsRowSelected also returns false.
Usage You can call IsRowSelected in a script for the Clicked event to determine
whether the row the user clicked was selected. With IsRowSelected and
SelectRow, you can highlight a row on the client without causing a
postback.
Examples This code calls IsRowSelected to test whether the clicked row is selected.
If the row is selected, SelectRow deselects it; if it is not selected, SelectRow
selects it:
if (rowNumber > 0)
{
if (dw_1.IsRowSelected(rowNumber))
dw_1.SelectRow(rowNumber, false);
else
dw_1.SelectRow(rowNumber, true);
}
See also SelectRow
IsSelected
Description Determines whether a row is selected in a DataWindow or DataStore. A
selected row is highlighted using reverse video.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
boolean dwcontrol.IsSelected ( long row )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
row A value identifying the row you want to test to see if it is selected
Return value Returns true if row in dwcontrol is selected and false if it is not selected. If
row is greater than the number of rows in dwcontrol or is 0 or negative,
IsSelected also returns false.
CurRow = dw_employee.GetRow()
result = dw_employee.IsSelected(CurRow)
IF result THEN
dw_employee.SelectRow(CurRow, false)
ELSE
dw_employee.SelectRow(CurRow, true)
END IF
This code uses the NOT operator on the return value of IsSelected to
accomplish the same result as the IF/THEN/ELSE statement above:
integer CurRow
702 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
boolean result
CurRow = dw_employee.GetRow()
dw_employee.SelectRow(CurRow, &
NOT dw_employee.IsSelected(CurRow))
See also SelectRow
LineCount
Description Determines the number of lines in an edit control that allows multiple
lines.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.LineCount ( )
Argument Description
dwcontrol A reference to a DataWindow control
Return value Returns the number of lines in dwcontrol if it succeeds and –1 if an error
occurs. If dwcontrol is null, LineCount returns null.
Usage LineCount counts each visible line, whether it was the result of wrapping
or carriage returns.
When you call LineCount for a DataWindow, it reports the number of lines
in the edit control over the current row and column. A user can enter
multiple lines in a DataWindow column only if it has a text datatype and
its box is large enough to display those lines.
The size of the column’s box determines the number of lines allowed in
the column. When the user is typing, lines do not wrap automatically; the
user must press Enter to type additional lines.
PowerBuilder environment
For use with other PowerBuilder controls, see LineCount in the
PowerScript Reference.
ModifiedCount
Description Reports the number of rows that have been modified but not updated in a
DataWindow or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.ModifiedCount ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns the number of rows that have been modified in the primary buffer.
Returns 0 if no rows have been modified or if all modified rows have been
updated in the database table. Returns –1 if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage ModifiedCount reports the number of rows that are scheduled to be added
or updated in the database table associated with a DataWindow or
DataStore. This includes rows in the primary and filter buffers.
704 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
A newly inserted row (with a status flag of New!) is not included in the
modified count until data is entered in the row (its status flag becomes
NewModified!).
The DeletedCount method counts the number of rows in the deleted buffer.
The RowCount method counts the total number of rows in the primary
buffer.
Examples If five rows in dw_Employee have been modified but not updated in the
associated database table or filtered out of the primary buffer, the
following code sets ll_Rows equal to 5:
long ll_Rows
ll_Rows = dw_Employee.ModifiedCount()
If any rows in dw_Employee have been modified but not updated in the
associated database table, this statement updates the database table
associated with the dw_employee DataWindow control:
IF dw_employee.ModifiedCount() > 0 THEN &
dw_employee.Update()
See also DeleteRow
DeletedCount
FilteredCount
Retrieve
RowCount
Update
Modify
Description Modifies a DataWindow object by applying specifications, given as a list
of instructions, that change the DataWindow object’s definition.
You can change appearance, behavior, and database information for the
DataWindow object by changing the values of properties. You can add and
remove controls from the DataWindow object by providing specifications
for the controls.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
string dwcontrol.Modify ( string modstring )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
modstring A string whose value is the specifications for the modification.
See Usage for appropriate formats.
Return value Returns the empty string (“”) if it succeeds and an error message if an error
occurs. The error message takes the form "Line n Column n incorrect
syntax". The character columns are counted from the beginning of the
compiled text of modstring.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage Modify lets you make many of the same settings in a script that you would
make in the DataWindow painter. Typical uses for Modify are:
• Changing colors, text settings, and other appearance settings of
controls
• Changing the update status of different tables in the DataWindow so
that you can update more than one table
• Modifying the WHERE clause of the DataWindow object’s SQL
SELECT statement
706 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
708 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
"~tIf(emp_status=~~'A~~'," + &
String(RGB(255, 0, 0)) + &
"," + &
String(RGB(red_amount, 255, 255)) + &
")'"
The following is a simpler example without the If function. You do not
need quotes around the value if you are not specifying an expression. Here
the String and RGB functions produce in a constant value in the resulting
modstring:
modstring = "emp_id.Color=" + &
String(RGB(red_amount, 255, 255))
You can set several properties with a single call to Modify by including
each property setting in modstring separated by spaces. For example,
assume the following is entered on a single line in the script editor:
rtn = dw_1.Modify("emp_id.Font.Italic=0
oval_1.Background.Mode=0
oval_1.Background.Color=255")
However, it is easier to understand and debug a script in which each call
to Modify sets one property.
Debugging tip
If you build your modstring and store it in a variable that is the argument
for Modify, you can look at the value of the variable in Debug mode. When
Modify’s error message reports a column number, you can count the
characters as you look at the compiled modstring.
"salary.Color='0~tIf(salary>90000,255,65280)'")
This statement nests one If function within another to provide three
possible colors. The setting causes the DataWindow dw_cust to display
the department ID in green if the ID is 200, in red if it is 100, and in black
if it is neither:
dw_cust.Modify("dept_id.Color='0~t " &
710 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
+
"If(dept_id=200,65380,If(dept_id=100,255,0))'")
The following example uses a complex expression with nested If functions
to set the background color of the salary column according to the salary
values. Each portion of the concatenated string is shown on a separate line.
See the pseudocode in the comments for an explanation of what the nested
If functions do. The example also sets the background mode to opaque so
that the color settings are visible.
The example includes error checking, which displays Modify’s error
message, if any:
string mod_string, err
long color1, color2, color3, default_color
err = dw_emp.Modify("salary.Background.Mode=0")
IF err <> "" THEN
MessageBox("Status", &
"Change to Background Mode Failed " + err)
RETURN
END IF
mod_string = &
"salary.Background.Color = '" &
+ String(default_color) &
+ "~tIf(salary < 10000," &
+ String(color1) &
+ ",If(salary < 20000," &
+ String(color2) &
+ ",If(salary < 30000," &
+ String(color3) &
+ "," &
+ String(default_color) &
+ ")))'"
err = dw_emp.Modify(mod_string)
IF err <> "" THEN
MessageBox("Status", &
"Change to Background Color Failed " +
err)
RETURN
END IF
This example sets the text color of a RadioButton column to the value of
color1 (red) if the column’s value is Y; otherwise, the text is set to black.
As above, each portion of the concatenated string is shown on a separate
line:
integer color1, default_color
string mod_string, err
712 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
IF rc = 1 THEN
//Turn off update for department columns.
dw_1.Modify("department_dept_name.Update =
No")
dw_1.Modify("department_dept_id.Update =
No")
dw_1.Modify("department_dept_id.Key = No")
dw_1.Modify("employee_emp_fname.Update =
Yes")
dw_1.Modify("employee_emp_lname.Update =
Yes")
dw_1.Modify("employee_emp_id.Key = Yes")
714 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
rtn =
dw_1.Modify("DataWindow.QueryMode=YES")
716 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Prompt for criteria is another way of letting the user specify retrieval
criteria. You set it on a column-by-column basis. When a script retrieves
data, PowerBuilder displays the Specify Retrieval Criteria window, which
gives the user a chance to specify criteria for all columns that have been
set.
In a script that is run before you retrieve data, for example, in the Open
event of the window that displays the DataWindow control, the following
settings would make the columns emp_name, emp_salary, and dept_id
available in the Specify Retrieval Criteria dialog when the Retrieve
method is called:
dw_1.Modify("emp_name.Criteria.Dialog=YES")
dw_1.Modify("emp_salary.Criteria.Dialog=YES")
dw_1.Modify("dept_id.Criteria.Dialog=YES")
There are other Criteria properties that affect both query mode and prompt
for criteria. For details, see the Criteria DataWindow object property in
Chapter 3, DataWindow Object Properties.
Retrieve as needed In this example, the DataWindow object has been
set up with Retrieve Only As Needed selected. When this is on,
PowerBuilder retrieves enough rows to fill the DataWindow, displays
them quickly, then waits for the user to try to display additional rows
before retrieving more rows. If you want the fast initial display but do not
want to leave the cursor open on the server, you can turn off Retrieve Only
As Needed with Modify.
After you have determined that enough rows have been retrieved, the
following code in the RetrieveRow event script changes the
Retrieve.AsNeeded property, which forces the rest of the rows to be
retrieved:
dw_1.Modify("DataWindow.Retrieve.AsNeeded=NO")
Changing the data source This example changes the data source of a
DataWindow object from a SQL SELECT statement to a stored procedure.
This technique works only if the result set does not change (that is, the
number, type, and order of columns is the same for both sources).
When you define the DataWindow object, you must define all possible
DataWindow retrieval arguments. In this example, the SELECT statement
defined in the painter has three arguments, one of type string, one of type
number, and one of type date. The stored procedure has two arguments,
both of type string. So, in the painter, you need to define four DataWindow
arguments, two of type string, one of type number, and one of type date.
(Note that you do not have to use all the arguments you define.)
string rc, mod_string, name_str = "Watson"
integer dept_num = 100
718 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dw_cust.Modify("destroy logo")
This statement deletes the column named salary from the DataWindow
dw_cust. Note that this example includes the keyword column, so the
column in the DataWindow and the data are both deleted:
dw_cust.Modify("destroy column salary")
This example adds a rectangle named rect1 to the header area of the
DataWindow dw_cust (with the value of modstring entered as a single
line):
string modstring
dw_cust.Modify(modstring)
These statements add a bitmap named logo to the header area for grouping
level 1 in the DataWindow dw_cust (with the value of modstring entered
as a single line):
string modstring
dw_cust.Modify(modstring)
SetFilter
SetFormat
SetPosition
SetRowFocusIndicator
SetSeriesStyle
SetSQLPreview
SetSQLSelect
SetTabOrder
SetValidate
Move
Description Moves a control or object to another position relative to its parent window,
or for some window objects, relative to the screen.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integerobjectname.Move ( integer x, integer y )
Argument Description
objectname A reference to an object or control you want to move
x The x coordinate of the new location in PowerBuilder units
y The y coordinate of the new location in PowerBuilder units
720 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
OLEActivate
Description Activates Object Linking and Embedding (OLE) for the specified object
and sends the specified command verb to the OLE server application.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.OLEActivate ( long row, integer column, integer
verb )
integer dwcontrol.OLEActivate ( long row, string column, integer
verb )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow.
row A long identifying the row location of the Database Blob control
in the DataWindow object.
column The column location of the Database Blob. Column can be a
column number (integer) or a column name (string).
verb Usually 0, but the verb is dependent on the OLE server.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, OLEActivate returns null.
Usage The user can activate OLE by double-clicking an OLE blob column in a
DataWindow. Use OLEActivate when you want to activate OLE in
response to some other event or action—for example, when the user clicks
a button.
The verb you specify determines what action occurs when the OLE server
application is invoked. The default verb (0) generally means you want to
edit the document. Each OLE application has its own particular set of
supported verbs. To find out what verbs the application supports, consult
the documentation for the application, or look for the application name in
the HKEY_LOCAL_MACHINE\SOFTWARE\Classes section of the
Windows registry and find its Protocol\ StdFileEditing\Verb key. For
example, the AVIFile class has three verbs, 0, 1, and 2, for Play, Edit, and
Open.
OneTrip
Description Generates HTML syntax for the Web DataWindow after setting values that
refresh the state of the server component so that it is in sync with user
actions.
Obsolete method
OneTrip is obsolete and should not be used, because the Web DataWindow
technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Argument Description
dwcomponent A reference to a Web DataWindow server component
722 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
htmlobjectname A string specifying a name used in generated code for the
Web DataWindow client control, page parameters, and
client side events. You must specify a unique object name
when there is more than one Web DataWindow on a Web
page.
retrievalargs A string that contains the values of the retrieval arguments
expected by the DataWindow object associated with the
server component (see Usage note).
browser A string identifying the browser and version. The value
should match the browser information passed to the Web
server in the HTTP header. The corresponding server
variable is HTTP_USER_AGENT.
Sets the value of the HTMLGen.Browser property for the
DataWindow object associated with the server component.
For information on recognized browsers, see
HTMLGen.property.
selflink The URL for the current page. It cannot include parameters.
Parameters from selflinkargs may be added when HTML is
generated.
The server component uses SelfLink to generate URLs for
navigation buttons that obtain additional rows from the
result set.
Sets the value of the HTMLGen.SelfLink property for the
DataWindow object associated with the server component.
selflinkargs A string in the form:
argname='exp'{ | argname = 'exp' } ...
Argname is an argument passed to the server.
Exp is a DataWindow expression whose value is a string.
The DataWindow in the server component evaluates it,
converts it using URL encoding, and includes in the
selflinkargs string.
Sets the value of the HTMLGen.SelfLinkArgs property for
the DataWindow object associated with the server
component.
action A string describing an action associated with a button click
or method call in a Web DataWindow client control on a
Web page. The value of action is stored in a page parameter
called htmlobjectname_action.
Argument Description
context A string describing the context of action in the Web
DataWindow client control. The string is generated by a
Web DataWindow script and the value is stored in a page
parameter called htmlobjectname_context.
The format is not documented and subject to change.
Return value Returns the generated HTML if it succeeds and an error message if any of
the requested settings fails.
Usage OneTrip and OneTripEx perform the tasks of SetSelfLink, SetBrowser,
Retrieve, SetAction, and Generate in a single method. They are meant to be
used with a server component that has been previously configured with a
DataWindow definition and transaction information. Using OneTrip
produces maximum performance for the Web DataWindow client while
allowing the server component to remain stateless.
Use OneTripEx instead of OneTrip if you need to specify retrieval
arguments. The retrievalargs string in the OneTripEx syntax has the format:
value1 \n value2 \n value3... \n value16
The values of the retrieval arguments must be separated by newline
characters (\n) and individual values cannot contain newline characters as
part of the value. The Web DataWindow supports up to 16 retrieval
arguments.
You can specify an array for the value of a retrieval argument by separating
the array values with a tab character (\t). For example, if the DataWindow
expected an array for the second retrieval argument, the syntax would be:
value1 \n value2a\t value2b \t value2c \n value3...
If the script gets the values for the retrieval arguments from page
parameters, you must also specify the retrieval arguments as selflinkargs
expressions, so that the values will be available as page parameters when
the page is reloaded.
The evaluated selflinkargs expressions are included in the generated
HTML as hidden fields and are available to server-side scripts as page
parameters. You can use the arguments to supply information that the
server component needs to render additional pages of the result set, such
as retrieval arguments. Selflinkargs can also be used to keep login
information or other data available that was passed in the original call to
the page.
724 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetAction
SetBrowser
SetSelfLink
Paste
Description Inserts (pastes) the contents of the clipboard into the specified control. If
no text is selected in the control, the text on the clipboard is pasted at the
insertion point. If text is selected, Paste replaces the selected text with the
text on the clipboard.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.Paste ( )
Argument Description
dwcontrol A reference to a DataWindow control. Text is pasted into the
edit control over the current row and column.
Return value Returns the number of characters that were pasted into the edit control for
dwcontrol. If nothing has been cut or copied (the clipboard is empty),
Paste does not change the contents of the edit control and returns 0. If the
clipboard contains nontext data (for example, a bitmap or OLE object) and
the control cannot accept that data, Paste does not change the contents and
returns 0.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage The text is pasted into the edit control over the current row and column. If
the clipboard contains more text that is allowed for that column, the text is
truncated. If the clipboard text does not match the column’s datatype, all
the text is truncated, so that any selected text is replaced with an empty
string.
To insert a specific string in dwcontrol or to replace selected text with a
specific string, use the ReplaceText method.
726 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
PowerBuilder environment
For use with other PowerBuilder controls, see Paste in the PowerScript
Reference.
Examples If the clipboard contains “Proposal good for 90 days” and no text is
selected in the edit control of dw_rpt, this statement pastes “Proposal good
for 90 days” at the insertion point in the edit control and returns 25:
dw_rpt.Paste()
If the clipboard contains the string “Final Edition”, the edit control in
dw_rpt contains “This is a Preliminary Draft”, and the text in edit control
is selected, this statement deletes “This is a Preliminary Draft”, replaces it
with “Final Edition”, and returns 13:
dw_rpt.Paste()
See also Copy
Cut
ReplaceText
PasteRTF
Description Pastes rich text data from a string into a DataWindow control or DataStore
object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long rtename.PasteRTF ( string richtextstring, { Band band } )
Argument Description
rtename A reference to a DataWindow control or DataStore object.
The DataWindow object in the DataWindow control or
DataStore must be a RichTextEdit DataWindow.
richtextstring A string whose value is data with rich text formatting.
Argument Description
band A value specifying the band into which the rich text data is
(optional) pasted. Valid values for this enumerated datatype are listed in
Chapter 6, DataWindow Constants.
The default is the band that contains the insertion point.
Examples This statement pastes rich text in the string ls_richtext into the header of
the RichTextEdit rte_message:
string ls_richtext
rte_message.PasteRTF(ls_richtext, Header!)
See also CopyRTF
PointerX
Description Determines the distance of the pointer from the left edge of the specified
object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer objectname.PointerX ( )
728 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
objectname The name of the control or window for which you want the
pointer’s distance from the left edge. If you do not specify
objectname, PointerX reports the distance from the left edge of
the current sheet or window.
Return value Returns the pointer’s distance from the left edge of objectname in
PowerBuilder units if it succeeds and –1 if an error occurs.
Usage Inherited from DragObject. For information, see PointerX in the
PowerScript Reference.
PointerY
Description Determines the distance of the pointer from the top of the specified object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer objectname.PointerY ( )
Argument Description
objectname The name of the control or window for which you want the
pointer’s distance from the top. If you do not specify
objectname, PointerY reports the distance from the top of the
current sheet or window.
Return value Returns the pointer’s distance from the top of objectname in PowerBuilder
units if it succeeds and –1 if an error occurs.
If objectname is null, PointerY returns null.
Usage Inherited from DragObject. For information, see PointerY in the
PowerScript Reference.
Position
Reports the position of the insertion point in a DataWindow.
To report Use
The position of the insertion point in a DataWindow that does Syntax 1
not have a RichTextEdit presentation style
The position of the insertion point or the start and end of Syntax 2
selected text in a DataWindow whose object has the
RichTextEdit presentation style
Syntax PowerBuilder
long editname.Position ( )
Argument Description
editname A reference to a DataWindow control in which you want to find
the location of the insertion point
Return value Returns the location of the insertion point in editname if it succeeds and –
1 if an error occurs. If editname is null, Position returns null.
Usage Position reports the position number of the character immediately
following the insertion point. For example, Position returns 1 if the cursor
is at the beginning of editname. If text is selected in editname, Position
reports the number of the first character of the selected text.
Position reports the insertion point’s position in the edit control over the
current row and column.
PowerBuilder environment
For use with other PowerBuilder controls, see Position in the PowerScript
Reference.
730 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Syntax PowerBuilder
band rtename.Position ( long fromline, long fromchar {, long toline,
long tochar }
Argument Description
rtename A reference to a DataWindow control. The DataWindow object
in the DataWindow control must be a RichTextEdit
DataWindow.
fromline A variable in which you want to save the number of the line
where the insertion point or the start of the selection is.
fromchar A variable in which you want to save the number in the line of
the first character in the selection or after the insertion point.
toline A variable in which you want to save the number of the line
(optional) where the selection ends.
tochar A variable in which you want to save the number in the line of
(optional) the character before which the selection ends.
Return value Returns the band containing the selection or insertion point. The returned
value is a value of the Band enumerated datatype (Detail!, Header!, or
Footer!).
Usage Position reports the position of the insertion point if you omit the toline and
tochar arguments. If text is selected, the insertion point can be at the
beginning or the end of the selection. For example, if the user dragged
down to select text, the insertion point is at the end.
If there is a selection, a character argument can be set to 0 to indicate that
the selection begins or ends at the start of a line, with nothing else selected
on that line. When the user drags up, the selection can begin at the start of
a line and fromchar is set to 0. When the user drags down, the selection
can end at the beginning of a line and tochar is set to 0.
Selection or insertion point To find out whether there is a selection or
just an insertion point, specify all four arguments. If toline and tochar are
set to 0, then there is no selection, only an insertion point. If there is a
selection and you want the position of the insertion point, you will have to
call Position again with only two arguments. This difference is described
next.
The position of the insertion point and end of selection can differ
When reporting the position of selected text, the positions are inclusive—
Position reports the first line and character and the last line and character
that are selected. When reporting the position of the insertion point,
Position identifies the character just after the insertion point. Therefore, if
text is selected and the insertion point is at the end, the values for the
insertion point and the end of the selection differ.
To illustrate, suppose the first four characters in line 1 are selected and the
insertion point is at the end. If you request the position of the insertion
point:
rte_1.Position(ll_line, ll_char)
Then:
• ll_line is set to 1
• ll_char is set to 5, the character following the insertion point
If you request the position of the selection:
rte_1.Position(ll_startline, ll_startchar, &
ll_endline, ll_endchar)
• ll_startline and ll_startchar are both set to 1
• ll_endline is 1 and ll_endchar is set to 4, the last character in the
selection
732 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
integer rtn
long l1, c1, l2, c2, linsert, cinsert
long l1select, c1select, l2select, c2select
l1select = l1
c1select = c1
l2select = l2 + 1 // Add 1 to end line
c2select = c2
734 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
c1select = c2
c2select = c1
END IF
END IF
PostEvent
Description Adds an event to the end of the event queue of an object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
boolean objectname.PostEvent ( TrigEvent event, { long word, long
long } )
boolean objectname.PostEvent ( TrigEvent event, { long word,
string long } )
Argument Description
objectname The name of any PowerBuilder object or control (except an
application) that has events associated with it.
event A value of the TrigEvent enumerated datatype that identifies a
PowerBuilder event (for example, Clicked!, Modified!, or
DoubleClicked!) or a string whose value is the name of an
event. The event must be a valid event for objectname and a
script must exist for the event in objectname.
word A value to be stored in the WordParm property of the system’s
(optional) Message object. If you want to specify a value for long, but not
for word, enter 0. (For cross-platform compatibility, WordParm
and LongParm are both longs.)
Argument Description
long A value that you want to store in the LongParm property of the
(optional) system’s Message object. When you specify a string, a pointer
to the string is stored in the LongParm property, which you can
access with the String function (see Usage).
Return value Returns true if it is successful and false if the event is not a valid event for
objectname or no script exists for the event in objectname.
If any argument’s value is null, PostEvent returns null.
Usage Inherited from PowerObject. For information, see PostEvent in the
PowerScript Reference.
Print
Sends data to the current printer (or spooler, if the user has a spooler set
up). There are two syntaxes that you can use with DataWindows:
To Use
Send the contents of a DataWindow control or DataStore to the Syntax 1
printer as a print job.
Include a visual object, such as a window or a graph control, in Syntax 2
a print job. For the PowerBuilder environment only.
For a description of PowerBuilder system print commands, see
the PowerScript Reference.
Syntax PowerBuilder
integer dwcontrol.Print ( { boolean canceldialog {, showprintdialog }
})
736 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol The name of the DataWindow control, DataStore, or child
DataWindow that contains the information to be printed.
canceldialog A boolean value indicating whether you want to display a
(optional) nonmodal dialog that allows the user to cancel printing.
Values are:
• True – (Default) Display the dialog.
• false – Do not display the dialog.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value
is null, Print returns null.
Usage Printed output uses the same fonts and layout that appear on screen for the
DataWindow object.
When the DataWindow object’s presentation style is RichTextEdit, each
row begins a new page in the printed output.
PowerBuilder environment
PowerBuilder manages print jobs by opening the job, sending data, and
closing the job. When you use Syntax 1, print job management happens
automatically. You do not need to use the PrintOpen and PrintClose
functions.
Use Syntax 1 to print the contents of a DataWindow object. The Print
method prints all the rows that have been retrieved. To print several
DataWindows as a single job, do not use Print. Instead, open the print job
with PrintOpen, call the PowerScript system function PrintDataWindow for
each DataWindow, and close the job.
Examples The following statements are equivalent. Each sends the contents of
dw_employee to the current printer. The Cancel dialog box displays,
allowing the user to cancel the printing, but the Print dialog box does not:
dw_employee.Print()
dw_employee.Print(true)
dw_employee.Print(true, false)
This statement sends the contents of dw_employee to the current printer.
The Print dialog box displays but the Cancel dialog box does not:
dw_employee.Print(false, true)
See also PrintDataWindow in the PowerScript Reference
Syntax PowerBuilder
integer objectname.Print ( long printjobnumber, integer x, integer y
{, integer width, integer height } )
Argument Description
objectname The name of the object that you want to print. The object
must either be a window or an object whose ancestor type is
DragObject, which includes all the controls that you can
place in a window.
printjobnumber The number the PrintOpen function assigns to the print job
738 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
x An integer whose value is the x coordinate on the page of
the left corner of the object, in thousandths of an inch.
y An integer whose value is the y coordinate on the page of
the left corner of the object, in thousandths of an inch.
width An integer specifying the printed width of the object in
(optional) thousandths of an inch. If omitted, PowerBuilder uses the
object’s original width.
height An integer specifying the printed height of the object in
(optional) thousandths of an inch. If omitted, PowerBuilder uses the
object’s original height.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, Print returns null.
Usage PowerBuilder manages print jobs by opening the job, sending data, and
closing the job. When you use Syntax 2, you must call the PrintOpen
function and the PrintClose or PrintCancel functions yourself to manage the
process. For more information, see the PowerScript Reference.
Examples This example prints the CommandButton cb_close in its original size at
location 500, 1000:
long Job
Job = PrintOpen( )
cb_close.Print(Job, 500,1000)
PrintClose(Job)
This example opens a print job, which defines a new page, then prints a
title using the third syntax of Print. Then it uses this syntax of Print to print
a graph on the first page and a window on the second page:
long Job
Job = PrintOpen( )
Print(Job, "Report of Year-to-Date Sales")
gr_sales1.Print(Job, 1000,PrintY(Job)+500, &
6000,4500)
PrintPage(Job)
w_sales.Print(Job, 1000,500, 6000,4500)
PrintClose(Job)
See also Print in the PowerScript Reference
PrintCancel
PrintClose in the PowerScript Reference
PrintOpen in the PowerScript Reference
PrintScreen in the PowerScript Reference
PrintCancel
Cancels printing and deletes the spool file, if any. There are two syntaxes.
To Use
Cancel printing of a DataWindow or DataStore printed with the Syntax 1
Print function.
Cancel a print job that you began with the PrintOpen function. Syntax 2
For the PowerBuilder environment only.
For a description of PowerBuilder system print commands, see
the PowerScript Reference.
Syntax PowerBuilder
integer dwcontrol.PrintCancel ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore object, or
child DataWindow.
740 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
PowerBuilder environment
When you use the Print method to print the DataWindow or DataStore,
without using PrintOpen, use Syntax 1 to cancel printing. When you use
the PowerScript system function PrintDataWindow to print a DataWindow
as part of a print job, use Syntax 2 to cancel printing.
Syntax PowerBuilder
integer PrintCancel ( long printjobnumber )
Argument Description
printjobnumber The number the PrintOpen function assigned to the print
job.
Usage PrintCancel cancels the specified print job by deleting the spool file, if any,
and closing the job. Because PrintCancel closes the print job, do not call
the PrintClose function after you call PrintCancel.
Examples In this example, a script for a Print button opens a print job and then opens
a window with a cancel button. If the user clicks on the cancel button, its
script sets a global variable that indicates that the user wants to cancel the
job. After each printing command in the Print button’s script, the code
checks the global variable and cancels the job if its value is true.
The definition of the global variable is:
boolean gb_printcancel
The script for the Print button is:
long job, li
gb_printcancel = false
job = PrintOpen("Test Page Breaks")
IF job < 1 THEN
MessageBox("Error", "Can't open a print
job.")
RETURN
END IF
Open(w_printcancel)
PrintClose(job)
Close(w_printcancel)
The script for the cancel button in the second window is:
gb_printcancel = true
Close(w_printcancel)
See also Print
PrintCancel in the PowerScript Reference
PrintClose in the PowerScript Reference
PrintOpen in the PowerScript Reference
742 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ReplaceText
Description Replaces selected text in the edit control for the current row and column
with a specified string.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long editname.ReplaceText ( string string )
Argument Description
editname A reference to a DataWindow control
string The string that replaces the selected text
Return value Returns the number of characters in string and –1 if an error occurs.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage If there is no selection, ReplaceText inserts the replacement text at the
cursor position.
To use the contents of the clipboard as the replacement text, call the Paste
method instead of ReplaceText.
PowerBuilder environment
For use with other PowerBuilder controls, see ReplaceText in the
PowerScript Reference.
Examples If the DataWindow edit control contains “Offer Good for 3 Months” and
the selected text is “3 Months”, this statement replaces “3 Months” with
“60 Days” and returns 7. The resulting text in the edit control is “Offer
Good for 60 Days”:
dw_salesoffer.ReplaceText("60 Days")
If there is no selected text, this statement inserts “New product” at the
cursor position in the edit control for dw_products:
dw_products.ReplaceText("New product")
See also Copy
Cut
Paste
ReselectRow
Description Accesses the database to retrieve values for all columns that can be
updated and refreshes all timestamp columns in a row in a DataWindow
control or DataStore. The values from the database are redisplayed in the
row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.ReselectRow ( long row )
Argument Description
dwcontrol A reference to the DataWindow control, DataStore, or child
DataWindow in which you want to reselect a row
row A value identifying the row to reselect
Return value Returns 1 if it is successful and –1 if the row cannot be reselected (for
example, the DataWindow object cannot be updated or the row was
deleted by another user).
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage ReselectRow is supported for SQLSelect DataWindows. Use ReselectRow
to discard values the user changed and replace them with values from the
database after an update fails (due to a concurrent access error, for
example).
744 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Note If you are using ShareData and then use ReselectRow on the primary
DataWindow, the secondary DataWindow resets back to row 1, column 1.
Reset
Description Clears all the data from a DataWindow control or DataStore object.
For the syntax to use for deleting graphs within a DataWindow object that
have an external data source, see Reset on page 955. For the syntax to use
with other PowerBuilder controls, see Reset in the PowerScript Reference.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.Reset ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns 1 if it succeeds and –1 if an error occurs. The return value is
usually not used.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage Reset is not the same as deleting rows from the DataWindow object or
child DataWindow. Reset affects the application only, not the database. If
you delete rows and then call the Update method, the rows are deleted from
the database table associated with the DataWindow object. If you call
Reset and then call Update, no changes are made to the table.
PowerBuilder environment
If you call Reset when the Retrieve As Needed option is set, Reset will
clear the rows that have been retrieved. However, because Retrieve As
Needed is on, the DataWindow immediately retrieves the next set of rows.
To prevent the rows from being retrieved, call DBCancel before calling
Reset. If all the rows have been retrieved (the cursor has been closed and
the RetrieveEnd event has occurred), then when Reset clears the
DataWindow, it stays empty.
ResetInk
Description Clears ink from an InkPicture control in a DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
746 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ResetTransObject
Description Stops a DataWindow control or DataStore from using the programmer-
specified transaction object that is currently in effect through a call to the
SetTransObject method. After you call the ResetTransObject method, the
DataWindow control or DataStore uses its internal transaction object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.ResetTransObject ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns 1 if it succeeds and –1 if an error occurs. The return value is
usually not used.
ResetUpdate
Description Clears the update flags in the primary and filter buffers and empties the
delete buffer of a DataWindow or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.ResetUpdate ( )
Argument Description
dwcontrol The name of the DataWindow control, DataStore, or child
DataWindow in which you want to reset the update flags
748 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage When a row is changed, inserted, or deleted, its update flag is set, making
it marked for update. By default the Update method turns these flags off.
If you want to coordinate updates of more than one DataWindow or
DataStore, however, you can prevent Update from clearing the flags. Then,
after you verify that all the updates succeeded, you can call ResetUpdate
for each DataWindow to clear the flags. If one of the updates failed, you
can keep the update flags, prompt the user to fix the problem, and try the
updates again.
You can find out which rows are marked for update with the GetItemStatus
method. If a row is in the delete buffer or if it is in the primary or filter
buffer and has NewModified! or DataModified! status, its update flag is
set. After update flags are cleared, all rows have the status NotModified!
or New! and the delete buffer is empty.
Examples These statements coordinate the update of two DataWindow objects:
int rtncode
CONNECT USING SQLCA;
dw_cust.SetTransObject(SQLCA)
dw_sales.SetTransObject(SQLCA)
Resize
Description Resizes an object or control by setting its Width and Height properties and
then redraws the object.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer objectname.Resize (integer width, integer height )
Argument Description
objectname A reference to the object or control you want to resize
width The new width in PowerBuilder units
height The new height in PowerBuilder units
Examples This statement changes the Width and Height properties of gb_box1 and
redraws gb_box1 with the new properties:
gb_box1.Resize(100, 150)
This statement doubles the width and height of the picture control p_1:
p_1.Resize(p_1.Width*2, p_1.Height*2)
Retrieve
Description Retrieves rows from the database for a DataWindow control or DataStore.
If arguments are included, the argument values are used for the retrieval
arguments in the SQL SELECT statement for the DataWindow object or
child DataWindow.
750 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.Retrieve ( { any argument, any argument . . . } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
argument One or more values that you want to use as retrieval arguments
(optional with in the SQL SELECT statement defined in dwcontrol.
Retrieve, required
with RetrieveEx)
Return value Returns the number of rows displayed (that is, rows in the primary buffer)
if it succeeds and –1 if it fails. If there is no DataWindow object assigned
to the DataWindow control or DataStore, this method returns –1.
This method always returns –1 if the data source is external. Use a method
such as ImportFile to populate the DataWindow.
Usage After rows are retrieved, the DataWindow object’s filter is applied.
Therefore, any retrieved rows that do not meet the filter criteria are
immediately moved to the filter buffer and are not included in the return
count.
Before you can retrieve rows for a DataWindow control or DataStore, you
must specify a transaction object with SetTransObject or SetTrans. If you
use SetTransObject, you must also use a SQL CONNECT statement to
establish a database connection.
Normally, when you call Retrieve, any rows that are already in the
DataWindow control or DataStore are discarded and replaced with the
retrieved rows. You can return the code 2 in the RetrieveStart event to
prevent this. In this case, Retrieve adds any retrieved rows to the ones that
already exist in the buffers.
Retrieval arguments If arguments are expected but not specified, the
user is prompted for the retrieval arguments.
A retrieval argument can be null if the SELECT statement is designed to
handle null values. For example, if a two-part WHERE clause is separated
by OR, then either part can be null while the other matches values in the
database.
752 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ll_rows = dw_main.Retrieve()
IF ll_rows < 1 THEN MessageBox( &
"Database Error", &
"No rows retrieved.")
This example illustrates the use of retrieval arguments. Assume that
:Salary and :Region are declared as arguments in the DataWindow painter
and dw_emp has this SQL SELECT statement:
SELECT Name, emp.sal, sales.rgn From Employee, Sales
WHERE emp.sal > :Salary and sales.rgn =
:Region
Then this statement causes dw_emp1 to retrieve employees from the
database who have a salary greater than $50,000 and are in the northwest
region:
dw_1.Retrieve(50000, "NW")
This example also illustrates retrieval arguments. Assume dw_EmpHist
contains this SQL SELECT statement and emps is defined as a number
array:
SELECT EmpNbr, Sal, Rgn From Employee
WHERE EmpNbr IN (:emps)
These statements cause dw_EmpHist to retrieve Employees from the
database whose employee numbers are values in the array emps:
Double emps[3]
emps[1] = 100
emps[2] = 200
emps[3] = 300
dw_EmpHist.Retrieve(emps)
The following example illustrates how to use Retrieve twice to get data
meeting different criteria. Assume the SELECT statement for the
DataWindow object requires one argument, the department number. Then
these statements retrieve all rows in the database in which department
number is 100 or 200.
The script for the RetrieveStart event in the DataWindow control sets the
return code to 2 so that the rows and buffers of the DataWindow control
are not cleared before each retrieval:
RETURN 2
The script for the Clicked event for a Retrieve CommandButton retrieves
the data with two function calls. The Reset method clears any previously
retrieved rows, normally done by Retrieve.
RowCount
Description Obtains the number of rows that are currently available in a DataWindow
control or DataStore. To determine the number of rows available, the
RowCount method checks the primary buffer.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
long dwcontrol.RowCount ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns the number of rows that are currently available in dwcontrol, 0 if
no rows are currently available, and –1 if an error occurs.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
754 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage The primary buffer for a DataWindow control or DataStore contains the
rows that are currently available for display or printing. These are the rows
counted by RowCount. The number of currently available rows equals the
total number of rows retrieved minus any deleted or filtered rows plus any
inserted rows. The deleted and filtered rows are stored in the
DataWindow’s delete and filter buffers.
Examples This statement returns the number of rows currently available in
dw_Employee:
long NbrRows
NbrRows = dw_Employee.RowCount()
This example determines when the user has scrolled to the end of a
DataWindow control. It compares the row count with the DataWindow
property LastRowOnPage:
dw_1.ScrollNextPage()
IF dw_1.RowCount() = Integer(dw_1.Describe( &
"DataWindow.LastRowOnPage")) THEN
... // Appropriate processing
END IF
See also DeleteRow
DeletedCount
Filter
FilteredCount
InsertRow
ModifiedCount
SetFilter
Update
RowsCopy
Description Copies a range of rows from one DataWindow control (or DataStore
object) to another, or from one buffer to another within a single
DataWindow control (or DataStore).
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
756 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples This statement copies all the rows starting with the current row in dw_1 to
the beginning of the primary buffer in dw_2:
dw_1.RowsCopy(dw_1.GetRow(), &
dw_1.RowCount(), Primary!, dw_2, 1, Primary!)
This example copies all the rows starting with the current row in dw_1 to
the beginning of the primary buffer in the drop-down DataWindow
state_id in dw_3:
datawindowchild dwc
dw_3.GetChild("state_id", dwc)
dw_1.RowsCopy(dw_1.GetRow(), &
dw_1.RowCount(), Primary!, dwc, 1, Primary!)
This example copies all the rows starting with the current row in dw_1 to
the beginning of the primary buffer in the nested report d_employee:
datawindowchild dwc
dw_composite.GetChild("d_employee", dwc)
dw_1.RowsCopy(dw_1.GetRow(), &
dw_1.RowCount(), Primary!, dwc, 1, Primary!)
See also RowsDiscard
RowsMove
RowsDiscard
Description Discards a range of rows in a DataWindow control. Once a row has been
discarded using RowsDiscard, you cannot restore the row. You have to
retrieve it again from the database.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.RowsDiscard (long startrow, long endrow,
DWBuffer buffer )
Argument Description
dwcontrol The reference to a DataWindow control or child DataWindow.
startrow The number of the first row you want to discard.
endrow The number of the last row you want to discard.
buffer A value of the dwBuffer enumerated datatype specifying the
DataWindow buffer containing the rows to be discarded.
For a list of valid values, see DWBuffer on page 485.
758 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Suppose you have a DataWindow with two rows. If the current row is row
1 and RowsDiscard discards row 1, row 2 becomes the current row, but its
row number also changes from 2 to 1. The events are not fired because the
current row number is still row 1. If the current row is row 2 and
RowsDiscard discards row 1, the events are fired because the current row
number has changed from row 2 to row 1.
Examples This statement discards all the rows in the delete buffer for dw_1. As a
result if the application later calls dw_1.Update(), the DataWindow will
not submit SQL DELETE statements to the DBMS for these rows:
dw_1.RowsDiscard(1, dw_1.DeletedCount(), Delete!)
See also Reset
RowsCopy
RowsMove
RowsMove
Description Clears a range of rows from one DataWindow control (or DataStore) and
inserts them in another. Alternatively, RowsMove moves rows from one
buffer to another within a single DataWindow control (or DataStore).
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.RowsMove ( long startrow, long endrow,
DWBuffer movebuffer, datawindow targetdw, long beforerow,
DWBuffer targetbuffer )
integer dwcontrol.RowsMove ( long startrow, long endrow,
DWBuffer movebuffer, datastore targetdw, long beforerow,
DWBuffer targetbuffer )
integer dwcontrol.RowsMove ( long startrow, long endrow,
DWBuffer movebuffer, datawindowchild targetdw,
long beforerow, DWBuffer targetbuffer )
Argument Description
dwcontrol The name of a DataWindow control, DataStore, or child
DataWindow from which you want to move rows.
startrow The number of the first row you want to move.
Argument Description
endrow The number of the last row you want to move.
movebuffer A value of the dwBuffer enumerated datatype identifying
the DataWindow buffer from which you want to move the
rows.
For a list of valid values, see DWBuffer on page 485.
targetdw The name of the DataWindow control or DataStore to
which you want to move the rows. Targetdw can be the
same DataWindow control (or DataStore) or a different
DataWindow control (or DataStore), but it cannot be a
child DataWindow.
beforerow The number of the row before which you want to insert
the moved rows. To insert after the last row, use any value
that is greater than the number of existing rows.
targetbuffer A value of the dwBuffer enumerated datatype identifying
the target buffer for the rows.
For a list of valid values, see DWBuffer on page 485.
760 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Suppose you have a DataWindow with two rows. If the current row is row
1 and RowsMove moves row 1, row 2 becomes the current row, but its row
number also changes from 2 to 1. The events are not fired because the
current row number is still row 1. If the current row is row 2 and
RowsMove moves row 1, the events are fired because the current row
number has changed from row 2 to row 1.
When you use RowsMove, data is not automatically retrieved for drop-
down DataWindows in the target DataWindow, as it is when you call
InsertRow. You must explicitly call Retrieve for child DataWindows in the
target.
When you use RowsCopy or RowsMove to populate another DataWindow,
the copied data is not automatically processed by filters or sort criteria in
effect on the target DataWindow. You might be required to call the Filter,
GroupCalc, or Sort methods to properly process the data.
Examples This statement moves all the rows starting with the first row in the delete
buffer for dw_1 to the primary buffer for dw_1, thereby undeleting these
rows:
dw_1.RowsMove(1, dw_1.DeletedCount(), Delete!, &
dw_1, 1, Primary!)
See also RowsCopy
RowsDiscard
SaveAs
Description Saves the contents of a DataWindow or DataStore in the format you
specify.
For syntax to save the contents of graphs in DataWindows and DataStores,
see SaveAs on page 957. For syntax to save objects in OLE controls and
OLE storage, see SaveAs in the PowerScript Reference.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SaveAs ( { string filename, saveastype
saveastype,
boolean colheading { , encoding encoding } } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
filename A string whose value is the name of the file in which to save
(optional for the contents. If you omit this argument, or specify an empty
PowerBuilder) string ("") for filename but include valid values for the
saveastype and colheading arguments, the DataWindow
prompts end users for a file name.
762 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
encoding Character encoding of the file to which the data is saved. This
(optional for parameter applies only to the following formats: TEXT, CSV,
PowerBuilder) SQL, HTML, and DIF. If you do not specify an encoding
parameter, the file is saved in ANSI format. Values are:
• EncodingANSI! (default)
• EncodingUTF8!
• EncodingUTF16LE!
• EncodingUTF16BE!
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, SaveAs returns null.
Usage If you do not specify any arguments for SaveAs, PowerBuilder displays
the Save As dialog box. A drop-down list lets the user specify the format
of the saved data.
Report format (PSReport! value of SaveAsType) is the best choice if the
DataWindow is a composite report. Choosing PSReport! has no effect if
the DataWindow object has the RichText presentation style.
For XML!, the XML logical structure used is based on the current XML
export template for the DataWindow object. You can change the export
template by setting the value of the Export.XML.UseTemplate property. If
no export template is specified, the default template is used.
If you use date formats in your report, you must verify that yyyy is the
Short Date Style for year in the Regional Settings of the user’s Control
Panel. Your program can check this with the RegistryGet function. If the
setting is not correct, you can ask the user to change it manually or to have
the application change it (by calling the RegistrySet function). The user
might need to reboot after the setting is changed.
When you save the contents of a DataWindow to a text file, double quotes
are handled in a way that enables the ImportFile method to produce the
same DataWindow when the text file is imported back into PowerBuilder.
Any field that is enclosed in a pair of double quotes is wrapped with three
pairs of double quotes in the saved text file. Double quotes at the
beginning of a text field that have no matching double quotes at the end of
the field are also replaced by three double quotes in the saved text file.
However, a double quote elsewhere in the field is saved as one double
quote.
764 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SaveAsAscii
Description Saves the contents of a DataWindow or DataStore into a standard ANSI
text file.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.SaveAsAscii ( string filename {, string
separatorcharacter {,string quotecharacter {, string lineending {,
boolean retainnewlinechar } } } } )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
filename A string whose value is the name of the file in which to
save the contents.
separatorcharacter A string whose value is the character to be used to
(optional) delimit values. If you omit separatorcharacter, the
default is a tab character.
quotecharacter A string whose value is the character to be used to wrap
(optional) values. If you omit quotecharacter, the default is double
quote.
lineending A string whose value is placed at the end of each line. If
(optional) you omit lineending, the default is a carriage return plus
a newline character (~r~n).
retainnewlinechar A boolean value that determines whether line feed and
(optional) carriage return characters contained within the row are
converted to white space. Values are:
True – line feed and carriage return characters within
the row are not converted to white space
False (default) – line feed and carriage return
characters within the row are converted to white
space
SaveAsFormattedText
Description Saves the contents of a DataWindow or DataStore into a standard text file
with custom formatting.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.SaveAsFormattedText ( string filename {, string
encoding {, string separatorcharacter {,string quotecharacter {, string
lineending {, boolean retainnewlinechar } } } } )
766 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
filename A string whose value is the name of the file in which to
save the contents.
encoding (optional) Character encoding of the file to which the data is saved.
If you do not specify an encoding parameter, the file is
saved in ANSI format. Values are:
• EncodingANSI! (default)
• EncodingUTF8!
• EncodingUTF16LE!
• EncodingUTF16BE!
separatorcharacter A string whose value is the character to be used to
(optional) delimit values. If you omit separatorcharacter, the
default is a tab character.
quotecharacter A string whose value is the character to be used to wrap
(optional) values. If you omit quotecharacter, the default is double
quote.
lineending A string whose value is placed at the end of each line. If
(optional) you omit lineending, the default is a carriage return plus
a newline character (~r~n).
retainnewlinechar A boolean value that determines whether line feed and
(optional) carriage return characters contained within the row are
converted to white space. Values are:
True – line feed and carriage return characters within
the row are not converted to white space
False (default) – line feed and carriage return
characters within the row are converted to white
space
SaveInk
Description Saves overlay ink to a file or blob from an InkPicture control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer dwcontrol.SaveInk ( string name, long rownumber, blob blob
)
integer dwcontrol.SaveInk ( string name, long rownumber,
string filename {, inkpersistenceformat format {,
inkcompressionmode mode } } )
Argument Description
dwcontrol A reference to a DataWindow control.
name The name of the InkPicture control from which you want to
save the ink.
rownumber The number of the row that contains the ink to be saved.
blob The name of a blob passed by reference that will hold the ink
in the control.
filename A string containing the name and location of a file that will
hold the ink in the control.
768 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
format A value of the InkPersistenceFormat enumerated variable that
(optional) specifies the format in which you want to save the ink. Values
are:
• Base64GIFFormat!
• Base64InkSerializedFormat!
• GIFFormat!
• InkSerializedFormat! (default)
mode A value of the InkCompressionMode enumerated variable that
(optional) specifies the compression mode in which you want to save the
ink. Values are:
• DefaultCompression! (default)
• MaximumCompression!
• NoCompression!
SaveInkPic
Description Saves a picture and optionally overlay ink to a file from an InkPicture
control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer dwcontrol.SaveInkPic ( string name, long rownumber, string
filename , integer format {, boolean withink } )
Argument Description
dwcontrol A reference to a DataWindow control.
name The name of the InkPicture control from which you want to
save the picture.
rownumber The number of the row that contains the picture to be saved.
770 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
filename A string containing the name and location of a file that will
hold the picture in the control.
format An integer specifying the format in which the picture is to be
saved. Values are:
0 – BMP (bitmap)
1 – JPEG (Joint Photographic Experts Group)
2 – GIF (Graphics Interchange Format)
3 – TIFF (Tagged Image File Format)
4 – PNG (Portable Network Graphics)
withink A boolean specifying whether overlay ink should be saved
(optional) with the picture. Values are:
True – overlay ink is saved with the picture (default)
False – overlay ink is not saved with the picture
Scroll
Description Scrolls the edit control of a DataWindow a specified number of lines up or
down.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.Scroll ( long number )
Argument Description
dwcontrol A reference to a DataWindow control. Scroll affects the edit
control of the DataWindow.
number A value specifying the direction and number of lines you want to
scroll. To scroll down, use a positive value. To scroll up, use a
negative value.
Return value Scroll returns the line number of the first visible line in dwcontrol if it
succeeds. Scroll returns –1 if an error occurs. If any argument’s value is
null, Scroll returns null.
Usage If the number of lines left in the list is less than the number of lines that
you want to scroll, then Scroll will scroll to the beginning or end,
depending on the direction specified.
Examples This statement scrolls mle_Employee down 4 lines:
mle_Employee.Scroll(4)
This statement scrolls mle_Employee up 4 lines:
mle_Employee.Scroll(-4)
See also The following related methods implement scrolling in a DataWindow or a
PowerBuilder RichTextEdit control:
ScrollNextPage
ScrollNextRow
ScrollPriorPage
ScrollPriorRow
ScrollToRow
ScrollFirstPage
Description Scrolls a Web DataWindow control to the first page, displaying the result
set’s first group of rows in the Web page. (A page is the number of rows
that are displayed in the DataWindow control at one time.) ScrollFirstPage
changes the current row, but not the current column.
772 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Obsolete method
ScrollFirstPage is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Client control
ScrollLastPage
Description Scrolls a Web DataWindow control to the last page, displaying the result
set’s last group of rows in the Web page. (A page is the number of rows
that are displayed in the DataWindow control at one time.) ScrollLastPage
changes the current row, but not the current column.
Obsolete method
ScrollLastPage is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Client control
Return value Returns 1 if it succeeds and –1 if an error occurs. If dwcontrol is null, the
method returns null.
Usage Calling ScrollLastPage causes the page to be reloaded with another set of
rows from the result set.
If the DataWindow object has retrieval arguments, they must be specified
in the HTMLGen.SelfLinkArgs property. For more information, see the
HTMLGen.property and the Retrieve method.
All methods that reload the page perform an AcceptText before sending
data back to the server. If the method fails (returns –1), this means that
pending data changes were not accepted and nothing was sent back to the
server. In this situation the ItemError event occurs.
Events ScrollNextPage may trigger these events:
ItemChanged
ItemError
ItemFocusChanged
RowFocusChanged
RowFocusChanging
774 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ScrollNextPage
Scrolls to the next page in a DataWindow.
To scroll Use
To the next group of rows in a DataWindow (when the Syntax 1
DataWindow does not have the RichTextEdit presentation
style)
A RichTextEdit DataWindow to view the next page within Syntax 2
the document (PowerBuilder only)
Syntax PowerBuilder
long dwcontrol.ScrollNextPage ( )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow
Return value Returns the number of the row displayed at the top of the DataWindow
control when the scroll finishes or tries to scroll past the last row.
ScrollNextPage returns 1 with nested or composite reports and child
DataWindows since, in these cases, the current row cannot be changed.
ScrollNextPage returns –1 if an error occurs.
Syntax PowerBuilder
integer rtedwname.ScrollNextPage ( )
776 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
rtedwname A reference to a DataWindow control. The DataWindow object
in the DataWindow control must be a RichTextEdit
DataWindow.
Examples This statement scrolls to the next page of the RichText document in the
DataWindow control dw_rpt. If there are multiple instances of the
document, it can scroll to the next instance:
dw_rpt.ScrollNextPage()
See also Scroll
ScrollNextRow
ScrollPriorPage
ScrollPriorRow
ScrollNextRow
Scrolls to the next row in a DataWindow control.
To scroll Use
To the next row in a DataWindow, making the row current Syntax 1
(when the DataWindow does not have the RichTextEdit
presentation style)
To the next instance of a document associated with a row in a Syntax 2
RichTextEdit DataWindow (PowerBuilder only)
Syntax PowerBuilder
long dwcontrol.ScrollNextRow ( )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow
Return value Returns the number of the row displayed at the top of the DataWindow
control when the scroll finishes or tries to scroll past the last row.
ScrollNextRow returns –1 if an error occurs.
778 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ScrollToRow
SelectRow
Syntax PowerBuilder
integer rtename.ScrollNextRow ( )
Argument Description
rtename A reference to a DataWindow control in which you want to scroll
to the next document instance. Each instance is associated with a
DataWindow row.
The DataWindow object in the DataWindow control must be a
RichTextEdit DataWindow.
Examples This statement scrolls to the next instance of the RichText document in the
DataWindow control dw_rpt. (Each document instance is associated with
a row of data):
dw_rpt.ScrollNextRow()
ScrollPriorPage
Scrolls to the prior page in a DataWindow control.
To scroll Use
To the prior group of rows in a DataWindow (when the Syntax 1
DataWindow does not have the RichTextEdit presentation style)
A RichTextEdit DataWindow to view the prior page within the Syntax 2
document (PowerBuilder only)
Syntax PowerBuilder
long dwcontrol.ScrollPriorPage ( )
Argument Description
dwcontrol The name of the DataWindow control or child DataWindow
you want to page (scroll) to the prior page
Return value Returns the number of the row displayed at the top of the DataWindow
control when the scroll finishes or tries to scroll past the first row.
ScrollPriorPage returns -1 if an error occurs.
780 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage ScrollPriorPage does not highlight the current row. Use SelectRow to let the
user know what row is current.
Events ScrollPriorPage can trigger these events:
ItemChanged
ItemError
ItemFocusChanged
RowFocusChanged
RowFocusChanging
Examples This statement scrolls dw_employee backward one page:
dw_employee.ScrollPriorPage()
See also Scroll
ScrollFirstPage
ScrollLastPage
ScrollNextPage
ScrollNextRow
ScrollPriorRow
ScrollToRow
SelectRow
Syntax PowerBuilder
integer rtename.ScrollPriorPage ( )
Argument Description
rtename The name of the DataWindow control in which you want to scroll
to the prior page.
The DataWindow object in the DataWindow control must be a
RichTextEdit DataWindow.
Examples This statement scrolls to the prior page of the RichText document in the
DataWindow control dw_rpt. If there are multiple instances of the
document, it can scroll to the prior instance:
dw_rpt.ScrollPriorPage()
See also Scroll
ScrollNextPage
ScrollNextRow
ScrollPriorRow
ScrollPriorRow
Scrolls to the prior row in a DataWindow control.
To scroll Use
To the prior row in a DataWindow, making the row current (when Syntax 1
the DataWindow does not have the RichTextEdit presentation style)
To the prior instance of a document associated with a row in a Syntax 2
RichTextEdit control or RichTextEdit DataWindow
Syntax PowerBuilder
long dwcontrol.ScrollPriorRow ( )
782 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol A reference to a DataWindow or child DataWindow
Return value Returns the number of the row displayed at the top of the DataWindow
control when the scroll finishes or tries to scroll past the first row.
ScrollPriorRow returns –1 if an error occurs.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer rtename.ScrollPriorRow ( )
Argument Description
rtename The name of the DataWindow control in which you want to scroll
to the prior document instance. Each instance is associated with
a DataWindow row.
The DataWindow object in the DataWindow control must be a
RichTextEdit DataWindow
Examples This statement scrolls to the prior instance of the RichText document in the
DataWindow control dw_1. (Each document instance is associated with a
row of data):
dw_rpt.ScrollPriorRow()
See also Scroll
ScrollNextPage
ScrollNextRow
ScrollPriorPage
784 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ScrollToRow
Description Scrolls a DataWindow control to the specified row. ScrollToRow changes
the current row but not the current column.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.ScrollToRow ( long row )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow.
row A value identifying the row to which you want to scroll. If row
is 0, ScrollToRow scrolls to the first row. If row is greater than
the last row number, it scrolls to the last row. If row is visible
without scrolling, the DataWindow does not scroll.
Return value Returns the number of the row to which the DataWindow scrolls if it
succeeds and –1 if an error occurs.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage After you call ScrollToRow, the specified row becomes the new current
row. If that row is already visible, the displayed rows do not change. If the
row is not visible, the displayed rows change to display the row.
ScrollToRow does not highlight the row. Use SelectRow to let the user know
what row is current.
Events ScrollToRow can trigger these events:
ItemChanged
ItemError
ItemFocusChanged
RowFocusChanged
Examples This statement scrolls to row 10 and makes it current in the DataWindow
control dw_employee:
dw_employee.ScrollToRow(10)
See also Scroll
ScrollNextPage
ScrollNextRow
ScrollPriorPage
ScrollPriorRow
SelectRow
SelectedLength
Description Determines the total number of characters in the selected text in an edit
control, including spaces and line endings.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.SelectedLength ( )
Argument Description
dwcontrol A reference to a DataWindow control. SelectedLength reports
the length of the selected text in the edit control over the current
row and column.
Return value Returns the length of the selected text in dwcontrol. If no text is selected,
SelectedLength returns 0. If an error occurs, it returns –1.
RichText DataWindows
For rich text controls, a carriage return plus a line feed always count as a
single character when calculating the text length.
PowerBuilder environment
For use with other PowerBuilder controls, see SelectedLength in the
PowerScript Reference.
786 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples If the selected text in the DataWindow dw_Contact is John Smith, then this
example sets the variable to 10, the number of selected characters:
integer li_length
li_length = dw_Contact.SelectedLength()
See also SelectedLine
SelectedStart
TextLine
SelectedLine
Description Obtains the number of the line that contains the insertion point in an
editable control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.SelectedLine ( )
Argument Description
dwcontrol A reference to a DataWindow control. It reports the line number
in the edit control over the current row and column.
Return value Returns the number of the line containing the insertion point in dwcontrol.
If an error occurs, SelectedLine returns –1. If dwcontrol is null,
SelectedLine returns null.
Usage The insertion point can be at the beginning or end of the selection.
Therefore, SelectedLine can return the first or last selected line, depending
on the position of the insertion point.
PowerBuilder environment
For use with other PowerBuilder controls, see SelectedLine in the
PowerScript Reference.
li_SL = mle_Contact.SelectedLine()
In this example, the line the user selects in the MultiLineEdit
mle_winselect determines which window to open:
integer li_SL
li_SL = mle_winselect.SelectedLine()
IF li_SL = 1 THEN
Open(w_emp_data)
ELSEIF li_SL = 2 THEN
Open(w_dept_data)
END IF
See also Position
SelectedText
TextLine
SelectedStart
Description Reports the position of the first selected character in the edit control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
long dwcontrol.SelectedStart ( )
Argument Description
dwcontrol A reference to a DataWindow control. It reports the starting
position in the edit control over the current row and column.
Return value Returns the starting position of the selected text in dwcontrol. If no text is
selected, SelectedStart returns the position of the character immediately
following the insertion point. If an error occurs, SelectedStart returns –1.
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage SelectedStart counts from the start of the text and includes spaces and line
endings.
788 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
PowerBuilder environment
For use with RichTextEdit and other PowerBuilder controls, see
SelectedStart in the PowerScript Reference.
Examples If the edit control for the DataWindow control dw_rpt contains Closed for
Vacation July 3 to July 10, and Vacation is selected, then this example sets
the variable to 12 (the position of the first character in Vacation):
integer li_Start
li_Start = dw_rpt.SelectedStart()
See also Position
SelectedLength
SelectedLine
SelectedText
Description Obtains the selected text in the edit control of a DataWindow control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
string dwcontrol.SelectedText ( )
Argument Description
dwcontrol A reference to a DataWindow control. The method reports the
selected text in the edit control over the current row and column.
Return value Returns the selected text in dwcontrol. If there is no selected text or if an
error occurs, SelectedText returns the empty string (“”).
If dwcontrol is null, in PowerBuilder and JavaScript the method returns
null.
Usage PowerBuilder environment
For use with RichTextEdit and other PowerBuilder controls, see
SelectedText in the PowerScript Reference.
Examples If the text in the edit control of the DataWindow dw_rpt is James B. Smith
and James B. is selected, these statements set the value of the string
variable to James B:
string ls_emp_fname
ls_emp_fname = dw_rpt.SelectedText()
See also SelectText
SelectRow
Description Highlights or removes highlights from rows in a DataWindow control or
DataStore. You can select all rows or a single row. SelectRow does not
affect which row is current. It does not select rows in the database.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SelectRow ( long row, boolean select )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row A value identifying the row you want to select or deselect.
Specify 0 to select or deselect all rows.
select A boolean value that determines whether the row is selected or
not selected:
• True – Select the row(s) so that they are highlighted.
• False – Deselect the row(s) so that they are not highlighted.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null. If there is
no DataWindow object assigned to the DataWindow control or DataStore,
the method returns 1.
Usage If a row is already selected and you specify that it be selected (boolean is
true), it remains selected. If a row is not selected and you specify that it not
be selected (boolean is false), it remains unselected.
Examples This statement selects the fifteenth row in dw_employee:
790 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dw_employee.SelectRow(15, true)
As the script for a DataWindow’s Clicked event, this example removes
highlighting from all rows and then highlights the row the user clicked.
Row is an argument passed to the event script:
This.SelectRow(0, false)
This.SelectRow(row, true)
See also IsSelected
SelectText
Selects text in an edit control.
To select text in Use
A DataWindow when the DataWindow does not have the Syntax 1
RichTextEdit presentation style, or a RichText edit-style
column in such a DataWindow
A DataWindow whose object has the RichTextEdit presentation Syntax 2
style (PowerBuilder only)
Syntax PowerBuilder
long dwcontrol.SelectText ( long start, long length )
Argument Description
dwcontrol A reference to a DataWindow control.
start A numeric value specifying the position at which you want to
start the selection.
Argument Description
length A numeric value specifying the number of characters you want to
select. If length is 0, no text is selected but SelectText moves the
insertion point to the location specified in start.
Return value Returns the number of characters selected. If an error occurs, SelectText
returns –1.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage If the control does not have the focus when you call SelectText, then the
text is not highlighted until the control has focus. To set focus on the
control so that the selected text is highlighted, call the SetFocus function.
To select text in a DataWindow with the RichTextEdit presentation style,
use Syntax 2.
PowerBuilder environment
For use with other PowerBuilder controls, see SelectText in the
PowerScript Reference.
Examples This statement sets the insertion point at the end of the text in the
DataWindow edit control:
dw_1.SelectText(dw_1.GetText(), 0)
This statement selects the entire contents of the DataWindow edit control:
792 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dw_1.SelectText(1, Len(dw_1.GetText()))
The rest of these examples assume the DataWindow edit control contains
Boston Street.
The following statement selects the string ost and returns 3:
dw_1.SelectText(2, 3)
The next statement selects the string oston Street and returns 12:
dw_1.SelectText(2, Len(dw_1.GetText()))
These statements select the string Bos, returns 3, and sets the focus to the
DataWindow control so that Bos is highlighted:
dw_1.SelectText(1, 3)
dw_1.SetFocus()
See also Position
SelectedText
TextLine
Syntax PowerBuilder
long rtedwcontrol.SelectText ( long fromline, long fromchar, long
toline, long tochar { band band } )
Argument Description
rtedwcontrol A reference to the DataWindow control in which you want to
select text. The DataWindow object in the DataWindow control
must have the RichText presentation style.
fromline A value specifying the line number where the selection starts.
fromchar A value specifying the number in the line of the first character
in the selection.
toline A value specifying the line number where the selection ends. To
specify an insertion point, set toline and tochar to 0.
tochar A value specifying the number in the line of the character before
which the selection ends.
Argument Description
band A value of the Band enumerated datatype specifying the band in
(optional) which to make the selection. Values are:
• Detail!
• Header!
• Footer!
The default is the band that contains the insertion point.
Return value Returns the number of characters selected. A carriage return with a line
feed counts as a single character. If an error occurs SelectText returns –1.
If any argument’s value is null, it returns null.
Usage The insertion point is at the “to” end of the selection—that is, the position
specified by toline and tochar. If toline and tochar are before fromline and
fromchar, then the insertion point is at the beginning of the selection.
You cannot specify 0 for a character position when making a selection.
You cannot always use the values returned by Position to make a selection.
Position can return a character position of 0 when the insertion point is at
the beginning of a line.
To select an entire line, set the insertion point and call SelectTextLine. To
select the rest of a line, set the insertion point and call SelectText with a
character position greater than the line length.
PowerBuilder environment
For use with other PowerBuilder controls, see SelectText in the
PowerScript Reference.
Examples SelectText is used in the same way for RichTextEdit controls and RichText
DataWindow controls. For sample code, see the examples for the
RichTextEdit control in the PowerScript Reference.
See also SelectedText
SelectTextAll
SelectTextLine
SelectTextWord
794 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SelectTextAll
Description Selects all the contents of a RichTextEdit control including any special
characters such as carriage return and end-of-file markers.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer rtename.SelectTextAll ( band band )
Argument Description
rtename A reference to a DataWindow control in which you want to select
all the contents. The DataWindow object in the DataWindow
control must be a RichTextEdit DataWindow.
band A value of the Band enumerated datatype specifying the band in
(optional) which you want to select all the text. Values are:
• Detail!
• Header!
• Footer!
The default is the band that contains the insertion point.
Return value Returns the number of characters selected. A carriage return with a line
feed counts as a single character. If an error occurs, SelectTextAll returns –
1.
Usage PowerBuilder RichTextEdit control
You can use the same syntax with a PowerBuilder RichTextEdit control.
See SelectTextAll in the PowerScript Reference.
Examples This statement selects all the text in the detail band:
dw_1.SelectTextAll()
This statement selects all the text in the header band:
dw_1.SelectTextAll(Header!)
See also SelectedText
SelectText
SelectTextLine
SelectTextWord
SelectTextLine
Description Selects the line containing the insertion point in a RichTextEdit control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer rtename.SelectTextLine ( )
Argument Description
rtename A reference to a DataWindow control. The DataWindow object
in the DataWindow control must be a RichTextEdit DataWindow.
Return value Returns the number of characters selected if it succeeds and –1 if an error
occurs.
Usage If the RichTextEdit control contains a selection, the insertion point can be
at the beginning or end of the selection. The way the text was selected
determines the location.
If the user made the selection by dragging toward the end, then calling
SelectTextLine selects the line at the end of the selection. If the user
dragged back, then SelectTextLine selects the line at the beginning of the
selection.
SelectTextLine does not select the line-ending characters (carriage return
and linefeed).
796 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SelectTextWord
Description Selects the word containing the insertion point in a RichTextEdit control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer rtename.SelectTextWord ( )
Argument Description
rtename A reference to a DataWindow control in which you want to select
a word. The DataWindow object in the DataWindow control
must be a RichTextEdit DataWindow.
Return value Returns the number of characters selected if it succeeds and –1 if a word
cannot be selected or an error occurs.
Usage A word is any group of alphanumeric characters. A word can include
underscores and single quotes but doesn’t include punctuation and special
characters such as $ or #.
If punctuation or special characters follow the selected word, they are not
selected. If the character after the insertion point is a space, punctuation,
special character, or end-of-line mark, SelectTextWord does not select
anything and returns –1.
Examples The following statement selects the word containing the insertion point:
dw_1.SelectTextWord()
For more examples, see examples for the RichTextEdit control in the
PowerScript Reference.
See also SelectedText
SelectText
SelectTextAll
SelectTextLine
SelectTreeNode
Description Selects or deselects a TreeView node in a TreeView DataWindow.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
Integer dw_control.SelectTreeNode(long row, long groupLevel,
boolean bSelect)
Argument Description
dw_control A reference to a TreeView-style DataWindow control
row The number of the row that belongs to the group
groupLevel The TreeView level of the group
bSelect Indicates whether the TreeView node is selected or not
Return value Returns 1 if the SelectTreeNode operation succeeds and one of the
following negative values if it fails:
-1 DataWindow is null
-5 One or more of the parameters are invalid
-16 DataWindow is not a TreeView DataWindow
Usage A TreeView DataWindow has several TreeView nodes that can be selected
or deselected. You can use the SelectTreeNode method to select or deselect
a TreeView node in a TreeView DataWindow that has a particular
TreeView level.
The SelectTreeNode method triggers the TreeNodeSelecting and
TreeNodeSelected events with a row argument of –1.
Examples The following example selects the node specified by the text box values:
long row
long level
row=long(sle_row.text)
level=long(sle_level.text)
dw_1.SelectTreeNode(row,level,true)
798 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetAction
Description Accepts action and context information about user interaction with the
Web DataWindow client control in a Web browser so that generated
HTML reflects any requested changes.
Obsolete method
SetAction is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns 1 if it succeeds and one of these negative values if an error occurs:
-1 Reloading the current context failed
-2 The action was attempted but it failed
-3 The action could not be performed (for example, the action was
InsertRow but the DataWindow has no editable fields for entering
new data)
-4 The action was aborted by the HTMLContextApplied event
Usage When the user clicks a button in the Web DataWindow client control, the
JavaScript for the control stores the action in a page parameter called
HTMLGenObjectName_action, and it stores the context in a page
parameter called HTMLGenObjectName_context. These parameters are
passed to the page server which uses them to call the SetAction method for
the server component.
The SetAction method uses the SetHTMLAction method of the
DataWindow.
Call GetLastError and GetLastErrorString to get information about database
errors that cause SetAction, Update, Retrieve, and RetrieveEx to return –1.
Examples This JSP example calls SetAction for the server component called dwGen:
int retVal;
String dw_1_action =(String)request.GetParameter
("dw_1_action");
String dw_1_context = (String)request.GetParameter
("dw_1_context");
if (dw_1_context == null){
dw_1_context = " ";
}
// Check if we need to perform the action
if (dw_1_action!=null){
retVal = dwGen.SetAction(dw_1_action,
dw_1_context);
if (retVal < 0 ) {
out.print("Error on SetAction: "+ retVal +
"<BR>");
out.print(dwGen.GetLastErrorString()+ "<BR>");
}
}
See also GetLastError
GetLastErrorString
SetHTMLAction
SetActionCode
Description Sets the action code for an event in a DataWindow control. The action
code determines the action that PowerBuilder takes following the event.
The default action code is 0.
800 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.SetActionCode ( long code )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow.
code A value specifying the action you want to take in the
DataWindow control. The meaning of the action code depends
on the event.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, SetActionCode returns null.
Usage Use SetActionCode to change the action that occurs following a
DataWindow event. Not all DataWindow events have action codes, only
those events that can have different outcomes.
Examples In the ItemChanged event script for dw_Employee, these statements set
the action code in dw_Employee to reject data that is less than the
employee’s age:
integer a, age
age = Integer(sle_Age.Text)
a = Integer(dw_Employee.GetText())
IF a < age THEN dw_Employee.SetActionCode(1)
This example shows a script for the DBError event script that displays a
version of the error message to the user. Because PowerBuilder also
displays a message to the user after the event, the script calls
SetActionCode to set the action code to 1, which suppresses the
PowerBuilder error message:
integer errnum
errnum = dw_emp.DBErrorCode()
SetBorderStyle
Description Sets the border style of a column in a DataWindow control or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetBorderStyle ( integer column, border
borderstyle )
integer dwcontrol.SetBorderStyle ( string column, border
borderstyle )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column in which you want to change the border style.
Column can be a column number or a column name.
borderstyle A value of the Border enumerated datatype identifying the border
style you want to use for the column.
For a list of valid values, see Border on page 483.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Examples This example checks the border of column 2 in dw_emp and, if there is no
border, gives it a shadow box border:
Border B3
B3 = dw_emp.GetBorderStyle(2)
802 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetBrowser
Description Specifies the Web browser for which you want to generate optimized
HTML.
Obsolete method
SetBrowser is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns an empty string if successful and the syntax error message from
the Modify method if it fails.
Usage If the DataWindow recognizes the browser identifier, it will generate
HTML optimized for that browser. A server-side script can get the browser
identifier from the server variable HTTP_USER_AGENT.
This method calls the Modify method of the server component’s DataStore
to set the property.
Examples This JSP example identifies the current browser for the component called
dwGen:
String browser = (String)request.getHeader
("User-Agent");
dwGen.SetBrowser(browser);
In ASP, you can use the ServerVariables method of the Request object to
get the HTTP_USER_AGENT value:
var clientbrowser =
Request.ServerVariables("HTTP_USER_AGENT");
dwGen.SetBrowser(clientbrowser);
See also Generate
Modify
SetAction
HTMLGen.property
SetChanges
Description Applies changes captured with GetChanges to a DataWindow or
DataStore. This method is used primarily in distributed applications.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.SetChanges ( blob changeblob {,
dwConflictResolution resolution } )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
changeblob A read-only change blob created with GetChanges from which
you want to apply changes.
resolution A value of the dwConflictResolution enumerated datatype
(obsolete) indicating how conflicts should be resolved:
• FailOnAnyConflict! (default)
• AllowPartialChanges!
This argument is obsolete and will be disabled in a future
release.
804 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
If you call GetChanges on a DataWindow and apply the data passed in the
changeblob argument to another DataWindow using SetChanges, you
must call GetChanges on the second DataWindow before you reapply
changes to it from the first DataWindow. The GetChanges call on the
second DataWindow updates the original timestamp on that DataWindow
so that it matches the current timestamp. (You cannot use the Reset,
ResetUpdate, or AcceptText calls to update the original timestamp.) If you
try to reapply changes without first calling GetChanges on the second
DataWindow, you will get an error due to the conflict between the state of
the DataWindow changeblob and the state of the second DataWindow.
Examples The following example is a script for a remote object function. The script
uses SetChanges to apply changes made to a DataWindow control on a
client to a DataStore on a server. The changes made on the client are
contained in a change blob that is passed as an argument to the function.
After applying changes to the DataStore, the server updates the database:
// Instance variable:datastore ids_datastore
// Function argument: blob ablb_data
long ll_rv
ids_datastore.SetChanges(ablb_data)
ll_rv = ids_datastore.Update()
SetColumn
Description Sets the current column in a DataWindow control or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetColumn ( string column)
integer dwcontrol.SetColumn ( integer column)
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column you want to make current. Column can be a column
number or a column name.
Return value Returns 1 if it succeeds and –1 if an error occurs. If column is less than 1
or greater than the number of columns, SetColumn fails.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage SetColumn moves the cursor to the current column but does not scroll the
DataWindow control.
806 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Only an editable column can be current. (A column is editable when its tab
order value is greater than 0.) Do not try to set a noneditable column as the
current column.
PowerBuilder environment
For use with PowerBuilder ListView controls, see SetColumn in the
PowerScript Reference.
Examples This statement makes the 15th column in dw_Employee the current
column:
dw_Employee.SetColumn(15)
See also GetColumn
GetRow
SetRow
SetColumnLink
Description Specifies information used for constructing hyperlinks for data in a
column in generated HTML.
Obsolete method
SetColumnLink is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns an empty string if successful and the syntax error message from
the Modify method if it fails.
808 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage This method calls the Modify method of the server component’s DataStore
to set the property.
Examples This JavaScript example for a server-side script sets up hyperlinks for data
in the empid column. The data links to a detailed employee report in an
HTML template called empdetail.stm.
The employee id is passed as a page parameter so the empdetail scripts can
use it as a retrieval argument. The column name is specified as the
expression. Empid is a numeric column so its value has to be converted to
a string for the page parameter value. When the server component
generates the HTML, it evaluates empid for each row and includes the data
value as the link argument:
dwMine.SetColumnLink ("empid", "empdetail.stm",
"pagearg_empid=’String(empid)’", "");
See also Generate
Modify
SetAction
HTML.property
SetCultureFormat
Description The culture format set by this function does not affect the DataWindow
display. It is used only for rendering HTML, XHTML, and XML for the
DataWindow control.
Applies to
Syntax PowerBuilder
integer dwcontrol.SetCultureFormat( string cultureStr )
Argument Description
dwcontrol A reference to a DataWindow control for which you want to set
the culture format.
Argument Description
cultureStr A string that defines the formats for displaying information. For
example:
sDecimal=,sTime=:sThousand= sShortDate=dd/MM/yyyy
iDate=1sDate=/sLongDate=dddd d MMMM yyyy
sCurrency=€iCurrDigits=2iNegCurr=8iCurrency=3
iMeasure=0iTime=1
sDecimal is the symbol used to indicate the decimal place.
sTime is the symbol used to separate the hours and minutes in
time displays.
sThousand is
Each definition is delimited by a tab.
Return value Returns 1 if successful and -1 if it fails. Does not work for .NET targets,
and will always return -1 if used in a target of that type.
SetDetailHeight
Description Sets the height of each row in the specified range to the specified value.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetDetailHeight ( long startrow, long endrow ,
long height )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore for which you
want to set the height of one or more rows in the detail area
startrow The first row in the range of rows for which you want to set the
height
endrow The last row in the range of rows for which you want to set the
height
height The height of the detail area for the specified rows in the units
specified for the DataWindow object
810 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
dwc.SetTransObject(SQLCA)
dwc.Retrieve( )
dwc.SetDetailHeight(2, 3, 0)
SetDWObject
Description Specifies the DataWindow library and object that the Web DataWindow
server component will use for generating HTML.
Obsolete method
SetDWObject is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
SetFilter
Description Specifies filter criteria for a DataWindow control or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
812 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
814 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
string DWfilter2
DWfilter2 = "cust_qty > 100 and cust_code >30"
dw_Employee.SetFilter(DWfilter2)
dw_Employee.Filter( )
The following statements define a filter so that emp_state of
dw_Employee displays only if it is equal to the value of var1 (in this case
ME for Maine). The filter expression passed to SetFilter is emp_state =
ME:
string Var1
Var1 = "ME"
dw_Employee.SetFilter("emp_state = '"+ var1 +" '")
The following statements define a filter so that column 1 must equal the
value in min_qty and column 2 must equal the value in max_qty to pass
the filter. The resulting filter expression is:
#1=100 and #2=1000
The sample code is:
integer max_qty, min_qty
min_qty = 100
max_qty = 1000
dw_inv.SetFilter("#1="+ String( min_qty) &
+ " and #2=" + String(max_qty))
The following example sets the filter expression to null, which causes
PowerBuilder to display the Specify Filter dialog box. Then it calls Filter,
which applies the filter expression the user specified:
string null_str
SetNull(null_str)
dw_main.SetFilter(null_str)
dw_main.Filter()
See also Filter
SetFormat
Description Specifies a display format for a column in a DataWindow control or
DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetFormat ( string column, string format )
integer dwcontrol.SetFormat ( integer column, string format )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column for which you are specifying the display format.
Column can be a column number or a column name.
format A string whose value is the display format for the DataWindow
column.
Return value Returns 1 if it succeeds and –1 if an error occurs. The return value is
usually not used.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage For information on valid display formats for different datatypes, see the
Users Guide.
If you are specifying the display format for a number, the format must use
U.S. notation. For example, comma (,) represents the thousands delimiter
and period (.) represents the decimal place. At runtime, the locally correct
symbols will be displayed.
An EditMask edit style supersedes any display format applied to the
column. When the column has an EditMask edit style, calling SetFormat
has no effect.
Examples These statements define the display format for column 15 of dw_employee
to the contents of format1:
string format1
format1 = "$#,##0.00"
dw_employee.SetFormat(15, format1)
See also GetFormat
816 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetFullState
Description Applies the contents of a DataWindow blob retrieved by GetFullState to a
DataWindow or DataStore.
This method is used primarily in distributed applications.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
long dwcontrol.SetFullState ( blob dwasblob )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore
dwasblob A blob that contains the state information you want to apply to the
DataWindow control or DataStore
Return value Returns –1 if an error occurs and one of the following values if it succeeds:
1 DataWindow objects match; old data and state overwritten.
2 DataWindow objects do not match; old object, data, and state
replaced.
3 No DataWindow object associated with DataWindow control or
DataStore; the DataWindow object associated with the blob is used.
The value of the DataObject property remains an empty string.
Null If any argument’s value is null in PowerBuilder or JavaScript, the
method returns null.
If any argument’s value is null, in PowerBuilder and JavaScript the method
returns null.
Usage GetFullState retrieves the entire state of a DataWindow or DataStore into a
blob, including the DataWindow object specification, the data buffers, and
the status flags. When you use SetFullState to apply the blob created by
GetFullState to another DataWindow, the target DataWindow has enough
information to recreate the source DataWindow.
Because the blob created by GetFullState contains the DataWindow object
specification, a subsequent call to SetFullState will overwrite the
DataWindow object for the target DataWindow control or DataStore. If the
target of SetFullState does not have a DataWindow object associated with
it, the DataWindow object associated with the blob is used. The value of
the DataObject property remains null.
blob lblb_data
long ll_rv
myconnect.CreateInstance(iuo_employee)
iuo_employee.RetrieveData(lblb_data)
ll_rv = dw_empdata.SetFullState(lblb_data)
IF ll_rv = -1 THEN
MessageBox("Error", "SetFullState failed!")
END IF
See also GetChanges
GetFullState
GetStateStatus
SetChanges
818 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetHTMLAction
Description Accepts action and context information about user interaction with the
Web DataWindow client control in a Web browser so that newly generated
HTML can reflect any requested changes.
Obsolete method
SetHTMLAction is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer dwcontrol.SetHTMLAction ( string action, string context )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
action A string describing an action associated with a button click or
method call in a Web DataWindow client control on a Web page.
The value is stored in a page parameter called
HTMLGenObjectName_action. action must be a valid action and
cannot be an empty string or the value none.
context A string describing the context of action in the Web DataWindow
client control. The string is generated by a Web DataWindow
script and the value is stored in a page parameter called
HTMLGenObjectName_context.
The format is not documented and subject to change.
Return value Returns 1 if it succeeds and one of these negative values if an error occurs:
-1 Reloading the current context failed.
-2 The action was attempted but it failed.
-3 The action could not be performed (for example, the action was
InsertRow but the DataWindow has no editable fields for entering
new data).
-4 The action was aborted by the HTMLContextApplied event.
-5 The action is invalid.
SetHTMLObjectName
Description Specifies a name for the Web DataWindow client control.
Obsolete method
SetHTMLObjectName is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns an empty string if successful and the syntax error message from
the Modify method if it fails.
Usage You must specify a unique object name when there will be more than one
Web DataWindow on a Web page so names will not conflict.
This method calls the Modify method of the server component’s DataStore
to set the property.
820 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples This example specifies a name to be used in generated HTML for the
server component called webDW:
webDW.SetHTMLObjectName ("dwMine");
See also Generate
Modify
OneTrip
HTMLGen.property
SetItem
Description Sets the value of a row and column in a DataWindow control or DataStore
to the specified value.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetItem ( long row, integer column, any value )
integer dwcontrol.SetItem ( long row, string column, any value )
Argument Description
dwcontrol The name of the DataWindow control, DataStore, or child
DataWindow in which you want to set a specific row and
column to a value.
row The row location of the data.
column The column location of the data. Column can be a column
number or a column name. The column number is the number
of the column as it is listed in the Column Specification view of
the DataWindow painter—not necessarily the number of the
column in the Design view.
value The value to which you want to set the data at the row and
column location. The datatype of the value must be the same
datatype as the column.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Usage SetItem sets a value in a DataWindow buffer. It does not affect the value
currently in the edit control over the current row and column, which is the
data the user has changed or might change. The value in the edit control
does not become the value of the DataWindow item until it is validated and
accepted (see AcceptText). In a script, you can change the value in the edit
control with the SetText method.
You can use SetItem when you want to set the value of an item in a
DataWindow control or DataStore that has script as the source.
Displaying data in character columns When you use SetItem (or dot
notation) to assign a value to a character column that is defined to have 512
characters or less, the actual size of the column in the DataWindow
definition is ignored. If the assigned value has more than 512 characters,
the value displayed in the DataWindow is truncated at 512 characters. If
the DataWindow column is defined to have more than 512 characters, its
size is respected. For example, if the DataWindow column is defined to
have 1, 10, or 100 characters, up to 512 characters of the assigned value
are displayed. If the DataWindow column is defined to have 1000
characters, up to 1000 characters are displayed.
Group and TreeView DataWindows In Group and TreeView
DataWindow objects, you must call GroupCalc after you call SetItem to
display data correctly.
Using SetItem in the ItemChanged and ItemError events In the
ItemChanged and ItemError events, you can call SetItem to set the value
of an item when the data the user entered is not valid. If you want the user
to have an opportunity to enter a different value, after calling SetItem you
can call SetText to put that same value in the edit control so that the user
sees the value too. In the script, use a return code that rejects the value in
the edit control, avoiding further processing, but does not allow the focus
to change. To retain focus and display an error message, return 1 for
ItemChanged or 0 for ItemError.
When you use a return code that rejects the data the user entered but allows
the focus to change (a return code of 2 in the script for the ItemChanged
event or 3 in the ItemError event), you do not need to call SetText because
the value set with SetItem displays.
If PowerBuilder cannot properly convert the string the user entered, you
must include statements in the script for the ItemChanged or ItemError
event to convert the data and use SetItem with the converted data. For
example, if the user enters a number with commas and a dollar sign (for
example, $1,000), PowerBuilder is unable to convert the string to a
number and you must convert it in the script.
822 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
PowerBuilder environment
For use with PowerBuilder ListView and TreeView controls, see SetItem
in the PowerScript Reference.
Examples This statement sets the value of row 3 of the column named hire_date of
the DataWindow control dw_order to 2003-06-07:
dw_order.SetItem(3, "hire_date", 2003-06-07)
When a user starts to edit a numeric column and leaves it without entering
any data, PowerBuilder tries to assign an empty string to the column. This
fails the datatype validation test. In this example, code in the ItemError
event sets the column’s value to null and allows the focus to change.
This example assumes that the datatype of column 2 is numeric. If it is
date, time, or datetime, replace the first line (integer null_num) with a
declaration of the appropriate datatype:
integer null_num //to contain null value
SetNull(null_num)
NEXT
This.SetItem(row, dwo.ID, Long(snum))
RETURN 3
See also GetItemDate
GetItemDateTime
GetItemNumber
GetItemString
GetItemTime
GetText
SetText
SetItemDate
Description Sets the value of a row and column in a DataWindow control to the
specified value.
Obsolete method
SetItemDate is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component (see SetItem for equivalent client
control method)
824 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage Although JavaScript does not distinguish between the Date, DateTime,
and Time datatypes, the DataStore will give an error if the wrong type is
passed. You can use the SetItemDateTime and SetItemTime methods to set
values in columns with the DateTime and Time datatypes.
Because the Web DataWindow server component does not support
overloading, you must use the SetItemDateByColNum variant instead of the
standard SetItemDate method when you want to refer to the column by
number.
See also SetItem
SetItemDateTime
SetItemTime
SetItemDateTime
Description Sets the value of a row and column in a DataWindow control to the
specified value.
Obsolete method
SetItemDateTime is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component (see SetItem for equivalent client
control method)
Argument Description
value The value to which you want to set the data at the row and
column location.
Usage Although JavaScript does not distinguish between the Date, DateTime,
and Time datatypes, the DataStore will give an error if the wrong type is
passed. You can use the SetItemDate and SetItemTime methods to set
values in columns with the Date and Time datatypes.
Because the Web DataWindow server component does not support
overloading, you must use the SetItemDateTimeByColNum variant instead
of the standard SetItemDateTime method when you want to refer to the
column by number.
See also SetItem
SetItemDate
SetItemTime
SetItemNumber
Description Sets the value of a row and column in a DataWindow control to the
specified value.
Obsolete method
SetItemNumber is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component (see SetItem for equivalent client
control method)
826 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol The name of the Web DataWindow control in which you want
to set a specific row and column to a value.
row The row location of the data.
column The column location of the data. Column can be a column
number or a column name.
value The value to which you want to set the data at the row and
column location.
Usage Because the Web DataWindow server component does not support
overloading, you must use the SetItemNumberByColNum variant instead of
the standard SetItemNumber method when you want to refer to the column
by number.
See also SetItem
SetItemStatus
Description Changes the modification status of a row or a column within a row. The
modification status determines the type of SQL statement the Update
method will generate for the row.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetItemStatus ( long row, integer column,
dwbuffer dwbuffer, dwitemstatus status )
integer dwcontrol.SetItemStatus ( long row, string column,
dwbuffer dwbuffer, dwitemstatus status )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
row The row location in which you want to set the status.
column The column location in which you want to set the status. Column
can be a column number or a column name. To set the status for
the row, enter 0 for column.
Argument Description
dwbuffer A value identifying the DataWindow buffer that contains the row.
For a list of valid values, see DWBuffer on page 485.
status A value of the dwItemStatus enumerated datatype specifying the
new status.
For a list of valid values, see DWItemStatus on page 486.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Usage How statuses are set There are four DataWindow item statuses, two of
which apply only to rows:
Table 9-6: Possible statuses for DataWindow items
Status Applies to
New! Rows
NewModified! Rows
NotModified! Rows and columns
DataModified! Rows and columns
828 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
In the table, Yes means the change is valid. For example, issuing
SetItemStatus on a row that has the status NotModified! to change the
status to New! does change the status to New!. No means that the change
is not valid and the status is not changed.
Issuing SetItemStatus to change a row status from NewModified! to
NotModified! actually changes the status to New!. Issuing SetItemStatus
to change a row status from DataModified! to New! actually changes the
status to NewModified!.
Changing a row’s status to NotModified! or New! causes all columns in
that row to be assigned a column status of NotModified!. Change the
column’s status to DataModified! to ensure that an update results in a SQL
UPDATE.
830 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetItemString
Description Sets the value of a row and column in a DataWindow control to the
specified value.
Obsolete method
SetItemString is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component (see SetItem for equivalent client
control method)
Argument Description
dwcontrol The name of the Web DataWindow control in which you want
to set a specific row and column to a value.
row The row location of the data.
column The column location of the data. Column can be a column
number or a column name.
value The value to which you want to set the data at the row and
column location.
Usage Because the Web DataWindow server component does not support
overloading, you must use the SetItemStringByColNum variant instead of
the standard SetItemString method when you want to refer to the column
by number.
See also SetItem
SetItemTime
Description Sets the value of a row and column in a DataWindow control to the
specified value.
Obsolete method
SetItemTime is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component (see SetItem for equivalent client
control method)
832 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
row The row location of the data.
column The column location of the data. Column can be a column
number or a column name.
value The value to which you want to set the data at the row and
column location.
Usage Although JavaScript does not distinguish between the Date, DateTime,
and Time datatypes, the DataStore will give an error if the wrong type is
passed. You can use the SetItemDate and SetItemDateTime methods to set
values in columns with the Date and DateTime datatypes. Because the
Web DataWindow server component does not support overloading, you
must use the SetItemTimeByColNum variant instead of the standard
SetItemTime method when you want to refer to the column by number.
See also SetItem
SetItemDate
SetItemDateTime
SetPageSize
Description Specifies the number of rows to include in a generated Web page for the
Web DataWindow.
Obsolete method
SetPageSize is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Argument Description
dwcomponent A reference to a Web DataWindow server component.
pagesize The number of rows of data to include in a generated Web
page. If the Web page does not include all available rows, you
can include Button controls in the DataWindow object for
navigating other subsets of rows. To include all available rows
in the page, specify 0 for PageSize.
Sets the value of the HTMLGen.PageSize property for the
DataWindow object associated with the server component.
Return value Returns an empty string if successful and the syntax error message from
the Modify method if it fails.
Usage This method calls the Modify method of the server component’s DataStore
to set the property. It is particularly useful for the XML Web DataWindow
where you typically want to limit the number of rows per page.
Examples This example specifies that the HTML generated by the webDW
component will have 20 rows of data:
webDW.SetPageSize(20);
See also Generate
Modify
HTMLGen.property
SetPosition
Description Moves a control within the DataWindow to another band or changes the
front-to-back order of controls within a band.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetPosition ( string controlname, string band ,
boolean bringtofront )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
834 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
controlname The name of the control within the DataWindow that you want
to move. You assign names to the controls in the DataWindow
painter.
band A string whose value is the name of the band or layer in which
you want to position controlname. Layer names are
background and foreground.
Band names are detail, header, footer, summary, header.#, and
trailer.#, where # is the group level number. Enter the empty
string (“”) if you do not want to change the band.
bringtofront A boolean indicating whether you want to bring controlname
to the front within the band:
• True – Bring it to the front.
• False – Do not bring it to the front.
Return value Returns 1 when it succeeds and –1 if an error occurs. If any argument’s
value is null, in PowerBuilder and JavaScript the method returns null.
Usage PowerBuilder environment
For setting the position of controls in the front-to-back order of a
PowerBuilder window, see SetPosition in the PowerScript Reference.
Examples This statement moves oval_red in dw_rpt to the header and brings it to the
front:
dw_rpt.SetPosition("oval_red", "header", true)
This statement does not change the position of oval_red , but does bring it
to the front:
dw_rpt.SetPosition("oval_red", "", true)
This statement moves oval_red to the footer, but does not bring it to the
front:
dw_rpt.SetPosition("oval_red", "footer", false)
SetRedraw
Description Controls the automatic redrawing of an object or control after each change
to its properties.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer objectname.SetRedraw ( boolean redraw )
Argument Description
objectname The name of the object or control for which you want to change
the redraw setting.
redraw A boolean value that controls whether PowerBuilder redraws
an object automatically after a change. Values are:
• True – Automatically redraw the object or control after each
change to its properties.
• False – Do not redraw after each change.
PowerBuilder environment
Inherited from DragObject. For more details on use with PowerBuilder
objects, see SetRedraw in the PowerScript Reference.
SetRichTextAlign
Description Sets the alignment value to use while editing columns with the RichText
edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.SetRichTextAlign ( Alignment sAlign )
Argument Description
dwcontrol A reference to the DataWindow control
836 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
sAlign Value for specifying the alignment that you want to set
for columns with the RichText edit style. Allowable
values are:
Left!
Right!
Center!
Justified!
Return value Returns 0 if it succeeds and –1 if an error occurs. If the argument’s value
is null, SetRichTextAlign returns null.
0 Success
-1 No RichText column is being edited
Usage You can call this method from a button in a custom toolbar that you use to
set display characteristics of columns with the RichText edit style.
Examples This example sets the alignment value for editing columns that have a
RichText edit style:
Integer ll_temp
Alignment l_align
l_align = Right!
ll_temp = dw_1.SetRichTextAlign(l_align)
See also GetRichTextAlign
GetRichTextColor
GetRichTextFaceName
GetRichTextSize
GetRichTextStyle
SetRichTextColor
Description Sets the color to use while editing columns with the RichText edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.SetRichTextColor ( long color )
Argument Description
dwcontrol A reference to the DataWindow control
color A long value specifying the color that you want to set for
editing columns with the RichText edit style
Return value Returns 0 if it succeeds and –1 if an error occurs. If the argument’s value
is null, SetRichTextColor returns null.
0 Success
-1 No RichText column is being edited
Usage If the color for columns with the RichText edit style is white, background
transparency and gradient and text transparency will not work properly.
You can call this method from a button in a custom toolbar that you use to
set display characteristics of columns with the RichText edit style.
Examples This example sets green as the current color to use for editing columns that
have a RichText edit style:
Integer l_rtn
Long l_color
l_color = RGB(0, 255, 0)
l_rtn = dw_1.SetRichTextColor(l_color)
See also GetRichTextColor
GetRichTextAlign
GetRichTextFaceName
GetRichTextSize
GetRichTextStyle
SetRichTextFaceName
Description Sets the typeface to use while editing columns with the RichText edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.SetRichTextFaceName ( string typeface )
Argument Description
dwcontrol A reference to the DataWindow control
typeface A string value for the typeface that you want to set for
editing columns with the RichText edit style
Return value Returns 0 if it succeeds and –1 if an error occurs. If the argument’s value
is null, SetRichTextFaceName returns null.
0 Success
-1 No RichText column is being edited
838 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage You can call this method from a button in a custom toolbar that you use to
set display characteristics of columns with the RichText edit style.
Examples This example sets Arial as the current typeface to use for editing columns
that have a RichText edit style:
Integer li_rtn
li_rtn = dw_1.SetRichTextFaceName("Arial")
See also GetRichTextFaceName
GetRichTextAlign
GetRichTextColor
GetRichTextSize
GetRichTextStyle
SetRichTextSize
Description Sets the size of the font to use while editing columns with the RichText
edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.SetRichTextSize ( long size )
Argument Description
dwcontrol A reference to the DataWindow control
size A long value for the point size of the font that you want
to set for editing columns with the RichText edit style
Return value Returns 0 if it succeeds and –1 if an error occurs. If the argument’s value
is null, SetRichTextSize returns null.
0 Success
-1 No RichText column is being edited
Usage You can call this method from a button in a custom toolbar that you use to
set display characteristics of columns with the RichText edit style.
Examples This example sets 16 as the current point size to use for editing columns
that have a RichText edit style:
Integer li_rtn
li_rtn = dw_1.SetRichTextSize(16)
See also GetRichTextSize
GetRichTextAlign
GetRichTextColor
GetRichTextFaceName
GetRichTextStyle
SetRichTextStyle
Description Sets the style of the font to use while editing columns with the RichText
edit style.
Applies to DataWindow control
Syntax Integer dwcontrol.SetRichTextStyle ( boolean bold, boolean underline,
boolean italic, boolean strikeout, )
Argument Description
dwcontrol A reference to the DataWindow control
bold A boolean for the bold style
underline A boolean for the underlined style
italic A boolean for the italic style
strikeout A boolean for the strikeout style
Return value Returns 0 if it succeeds and –1 if an error occurs. If the argument’s value
is null, SetRichTextStyle returns null.
0 Success
-1 No RichText column is being edited
Usage You can call this method from a button in a custom toolbar that you use to
set display characteristics of columns with the RichText edit style.
Examples This example sets an underlined, bolded font as the current font for editing
columns with a RichText edit style:
Integer li_rtn
li_rtn = dw_1.SetRichTextStyle(true, false, false, &
false)
See also GetRichTextStyle
GetRichTextAlign
GetRichTextColor
GetRichTextFaceName
GetRichTextSize
840 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetRow
Description Sets the current row in a DataWindow control or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetRow ( long row )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow in which you want to set the current row
row The row you want to make current
Return value Returns 1 if it succeeds and –1 if an error occurs. If row is less than 1 or
greater than the number of rows, SetRow fails.
If any argument’s value is null, in PowerBuilder and JavaScript the
method returns null.
Usage SetRow moves the cursor to the current row but does not scroll the
DataWindow control or DataStore.
Events SetRow can trigger these events:
ItemChanged
ItemError
ItemFocusChanged
RowFocusChanged
dw_employee.SetRow(15)
dw_employee.SelectRow(15, true)
See also GetColumn
GetRow
SetColumn
SetRowFocusIndicator
SetRowFocusIndicator
Description Specifies the visual indicator that identifies the current row in the
DataWindow control. You can use the standard dotted-line rectangle of
Windows, PowerBuilder’s pointing hand, or an image stored in a
PowerBuilder Picture control.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.SetRowFocusIndicator ( RowFocusInd
focusindicator
{, integer xlocation {, integer ylocation } } )
integer dwcontrol.SetRowFocusIndicator ( Picture picturename
{, integer xlocation {, integer ylocation } } )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow
in which you want to set the row focus indicator.
focusindicator The visual indicator for the current row. In PowerBuilder, a
or picturename value of the RowFocusInd enumerated datatype or the name
of a PowerBuilder Picture control whose image you want to
use.
For a list of valid enumerated datatype values, see
RowFocusInd on page 492.
xlocation The x coordinate in PowerBuilder units of the position of the
(optional) hand or bitmap relative to the upper-left corner of the row.
ylocation The y coordinate in PowerBuilder units of the position of the
(optional) hand or bitmap relative to the upper-left corner of the row.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, SetRowFocusIndicator returns null.
842 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage Sets the current row indicator in dwcontrol to focusindicator. If you select
Hand or a Picture control as the indicator, PowerBuilder displays the
indicator at the left side of the body of the DataWindow unless you specify
location coordinates (xlocation, ylocation). The default location is 0,0 (the
left side of the body of the DataWindow control).
You must assign a DataWindow object to the DataWindow control before
you call SetRowFocusIndicator. If you change the DataWindow object at
runtime, you must call SetRowFocusIndicator again to reset the indicator.
Examples This statement sets the row focus indicator in dw_employee to the
pointing hand:
dw_employee.SetRowFocusIndicator(Hand!)
If p_arrow is a Picture control in the window, the following statement sets
the row focus indicator in dw_employee to p_arrow:
dw_employee.SetRowFocusIndicator(p_arrow)
See also GetRow
SetRow
SetSelfLink
Description Specifies the URL and page parameters for the current page of the Web
DataWindow.
Obsolete method
SetSelfLink is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns an empty string if successful and the syntax error message from
the Modify method if it fails.
Usage This method calls the Modify method of the server component’s DataStore
to set the property.
Reason for self-link information The first time the client browser
requests the page template, it can pass page specific information using
GET or POST and the page can use those values in the server-side scripts.
However, when the page is reloaded because of user interactions with the
Web DataWindow, that information will not be passed to the page
automatically.
To make the information available, you specify a selflinkargs string that
becomes page parameters in the reloaded page. Typically, you would use
self-link parameters to provide:
• Login information from another page
844 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples This server-side script specifies hyperlink information for the page. The
value of the empid column is stored in the page parameter EMPID:
webDW.SetSelfLink("mydwpage.html", "EMPID =
'String(empid)'");
This hyperlink information refers to the JSP page by name. The page is
regenerated by calling the template again. There are no link arguments:
webDW.SetSelfLink("salesrpt.jsp", "");
This ASP example uses the ServerVariables method of the Request object
to get the SCRIPT_NAME variable:
var pageName =Request.ServerVariables(
"SCRIPT_NAME" );
webDW.SetSelfLink(pageName,"");
In JSP you must parse the return value from a request.getRequestURI call.
This example also sets up a page parameter for the reloaded page using the
page parameter Logname:
String URI = request.getRequestURI();
String [] myArray = URI.split ("/");
String pageName = myArray [myArray.length-1];
String logname = (String)
request.getParameter("Logname");
String linkargs =
"Logname='\"" + logname + "\"'";
webDW.SetSelfLink( pageName, linkargs);
See also Generate
Modify
SetAction
HTMLGen.property
SetServerServiceClasses
Description Tells the server component to trigger custom events defined in user objects
for data validation. These user objects, referred to as service classes, must
be defined in the PBL or PBD containing the DataWindow object for the
server component.
846 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Obsolete method
SetServerServiceClasses is obsolete and should not be used, because the
Web DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns 1 if it succeeds and –1 if a specified service class does not exist.
Usage The main use of service classes is to provide data validation using server-
side business logic.
Service classes implement one or more user-defined events with these
names and signatures:
long dberror ( long sqldbcode, string sqlerrtext, string sqlsyntax,
dwbuffer buffer, long row, datastore ds )
long retrievestart ( datastore ds )
long retrieveend ( long rowcount, datastore ds )
long sqlpreview ( sqlpreviewfunction request, sqlpreviewtype
sqltype, string sqlsyntax, dwbuffer buffer, long row, datastore ds )
long updatestart ( datastore ds )
long updateend ( long rowsinserted, long rowsupdated, long
rowsdeleted, datastore ds )
long htmlcontextapplied ( string action, datastore ds )
The custom events can use the same return codes as the corresponding
standard DataWindow events documented in Chapter 8, DataWindow
Events. By setting a return code, a custom event can cause the event action
to be canceled in the server component.
When the standard DataWindow event occurs in the server component, the
component triggers the custom event in each of the listed service classes.
One or more of the components can implement the event. A service class
only needs to implement the events whose outcome it wants to influence.
Any of the service classes can set an event return code that cancels the
event action in the server component.
Runtime errors
Instantiated service objects run in the same objects space as the server
component. If a runtime error occurs in the service object, it could cause
HTML generation to fail.
Examples This JavaScript example for a server-side script specifies a list of service
classes that implement events:
dwMine.SetServerServiceClasses(
"uo_update;uo_retrieve;uo_dberror" );
See also Events:
HTMLContextApplied
DBError
RetrieveStart
RetrieveEnd
SQLPreview
UpdateStart
UpdateEnd
SetServerSideState
Description Tells the server component whether to attempt to maintain its state by
saving the retrieved data and leaving the transaction open. Keeping the
retrieved data means that the component does not need to reconnect and
retrieve data every time a method is called.
Obsolete method
SetServerSideState is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
848 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Applies to
DataWindow type Method applies to
Web Server component
Return value Returns an empty string if it succeeds and an error message from server if
it fails.
Usage How state is maintained for a stateless component The Web
DataWindow can run in a fully stateless server environment. Variables in
the Web page keep information about the rows being viewed and changes
the user makes and this information is communicated to the server
component as needed so the component can restore its state each time it is
called. Restoring its state includes retrieving data from the database each
time the page is reloaded, including each time the user navigates to another
page.
Performance impact of a stateless component Operating in a
stateless mode minimizes use of server resources but can decrease
performance. The client maintains the state of the server component in
string form and the information is sent back and forth with every request.
Also, when state is not maintained on the server, the component must
connect to the database and retrieve data each time it is called. If the
component server does not do connection caching, response time for the
client could be very slow.
Maintaining state on the server You can increase performance by
maintaining state on the server. To maintain state, the page server’s session
object keeps a reference to the server component.
Maintaining state on the server will provide faster response time if the
same component is accessed again. However, it also increases the server
resources used for each client connection.
To minimize impact on server resources, a short timeout on a session lets
the server get rid of a component that might not be requested again. If the
component is called again, its state can be restored from the client state
information.
You can also increase performance by calling Update frequently.
Examples This example specifies that the server component should maintain state:
webDW.SetServerSideState( true );
See also Update
SetSort
Description Specifies sort criteria for a DataWindow control or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetSort ( string format )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
format A string whose value is valid sort criteria for the DataWindow
(see Usage). The expression includes column names or numbers.
A column number must be preceded by a pound sign (#). If
format is null, PowerBuilder prompts you to enter the sort
criteria.
850 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
The sort criteria for a column have one of the forms shown in the following
table, depending on whether you specify the column by name or number.
Table 9-9: Examples for specifying sort order
Syntax for sort order Examples
columnname order "emp_lname A"
"emp_lname asc, dept_id desc"
# columnnumber order "#3 A"
The following table shows the recognized values for order. These values
are case insensitive. For example, as, s, AS, or S all specify a case-
sensitive sort in ascending order.
Table 9-10: Recognized values for sort order
Order value Resulting sort order
a, asc, ascending, ai, i Case-insensitive ascending
d, desc, descending, di Case-insensitive descending
as, s Case-sensitive ascending
ds Case-sensitive descending
This example defines sort criteria to sort the status column in ascending
order and the salary column in descending order within status. Both sorts
are case-sensitive. After assigning the sort criteria to the DataWindow
control dw_emp, it sorts dw_emp:
string newsort
newsort = "emp_status as, emp_salary ds"
dw_emp.SetSort(newsort)
dw_emp.Sort( )
The following example sets the sort criteria for dw_main to null, causing
PowerBuilder to display the Specify Sort Columns dialog so that the user
can specify sort criteria. The Sort method applies the criteria the user
specifies:
string null_str
SetNull(null_str)
dw_main.SetSort(null_str)
dw_main.Sort( )
See also Sort
SetSQLPreview
Description Specifies the SQL statement for a DataWindow control or DataStore that
PowerBuilder is about to send to the database.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetSQLPreview ( string sqlsyntax )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
sqlsyntax A string whose value is valid SQL syntax for the SQL statement
that will be submitted to the database server
Return value Returns 1 if it succeeds and 0 if an error occurs. If any argument’s value is
null, in PowerBuilder and JavaScript the method returns null.
852 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage Use SetSQLPreview to modify syntax before you update the database with
changes in the DataWindow object.
To obtain the current SQL statement in the SQLPreview event, look at the
sqlsyntax argument.
Examples This statement sets the current SQL string for the DataWindow dw_1:
dw_1.SetSQLPreview( &
"INSERT INTO billings VALUES(100, " + &
String(Current_balance) + ")")
See also GetSQLPreview
GetUpdateStatus
SetSQLSelect
Description Specifies the SQL SELECT statement for a DataWindow control or
DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetSQLSelect ( string statement )
Argument Description
dwcontrol The name of the DataWindow control, DataStore, or child
DataWindow for which you want to change the SELECT
statement.
statement A string whose value is the SELECT statement for the
DataWindow object. The statement must structurally match the
current SELECT statement (that is, it must return the same
number of columns, the columns must be the same datatype, and
the columns must be in the same order).
854 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples If the current SELECT statement for dw_emp retrieves no rows, the
following statements replace it with the syntax in NewSyn:
string OldSyn, NewSyn
OldSyn = &
'SELECT employee.EMP_Name FROM employee' &
+ 'WHERE salary < 70000'
NewSyn = 'SELECT employee.EMP_Name FROM employee' &
+ 'WHERE salary < 100000'
IF dw_emp.Retrieve( ) = 0 THEN
dw_emp.SetSQLSelect(NewSyn)
dw_emp.Retrieve()
END IF
See also Modify
Retrieve
SetTrans
SetTransObject
Update
SetTabOrder
Description Changes the tab sequence number of a column in a DataWindow control
to the specified value.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object
Syntax PowerBuilder
integer dwcontrol.SetTabOrder ( integer column, integer tabnumber
)
integer dwcontrol.SetTabOrder ( string column, integer tabnumber )
Argument Description
dwcontrol A reference to a DataWindow control or child DataWindow in
which you want to define the tab order.
column The column to which you are assigning a tab value. Column can
be a column number or a column name. The column number is
the number of the column as it is listed in the Column
Specification view of the DataWindow painter—not necessarily
the number of the column in the Design view.
Argument Description
tabnumber The tab sequence number (0 - 9999) you want to assign to the
DataWindow column. 0 removes the column from the tab order,
which makes it read-only.
Return value Returns the previous tab value of the column if it succeeds and –1 if an
error occurs. If any argument’s value is null, in PowerBuilder and
JavaScript the method returns null.
Usage You can change a column in a DataWindow object to read-only by
changing the tab sequence number of the column to 0.
Examples This statement changes column 4 of dw_Employee to read-only:
dw_Employee.SetTabOrder(4, 0)
These statements change column 4 of dw_employee to read-only and later
restore the column to its original tab value with read/write status:
integer OldTabNum
// Set OldTabNum to the previous tab order value
OldTabNum = dw_employee.SetTabOrder(4, 0)
... // Some processing
// Return column 4 to its previous tab value.
dw_employee.SetTabOrder(4, OldTabNum)
SetText
Description Replaces the text in the edit control over the current row and column in a
DataWindow control or DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataStore object
Syntax PowerBuilder
integer dwcontrol.SetText ( string text )
Argument Description
dwcontrol The name of the DataWindow control or DataStore in which you
want to specify the text in the current row and column.
text A string whose value you want to put in the current row and
column. The value must be compatible with the datatype of the
column.
856 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Usage SetText only sets the value in the edit control. When the user changes
focus to another row and column, PowerBuilder accepts the text as the
item in the row and column.
Using SetText in the ItemChanged and ItemError events In the
ItemChanged or ItemError event, PowerBuilder or your own script might
determine that the value in the edit control is invalid or that it needs further
processing. You can call SetItem to specify a new item value for the row
and column.
If you want the user to have an opportunity to enter a different value, after
calling SetItem you can call SetText to put that same value in the edit
control so that the user sees the value too. You can also call SetText without
calling SetItem. In the script, use a return code that rejects the value in the
edit control, avoiding further processing, but does not allow the focus to
change. To retain focus and display an error message, return 1 for
ItemChanged or 0 for ItemError.
When you use a return code that rejects the data the user entered but allows
the focus to change (a return code of 2 in the script for the ItemChanged
event or 3 in the ItemError event), you do not need to call SetText because
the value set with SetItem displays when the focus changes.
Examples These statements replace the value of the current row and column in
dw_employee with Tex and then call AcceptText to accept and move Tex
into the current column. (Do not use this code in the ItemChanged or
ItemError event because it calls AcceptText.)
dw_employee.SetText("Tex")
dw_employee.AcceptText()
This example converts a number that the user enters in the column called
credit to a negative value and sets both the item and the edit control’s text
to the negative number. This code is the script for the ItemChanged event.
The data argument holds the newly entered value:
integer negative
SetTrans
Description Sets the values in the internal transaction object for a DataWindow control
or DataStore to the values from the specified transaction object. The
transaction object supplies connection settings, such as the database name.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetTrans ( transaction transaction )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow in which you want to set the values of the internal
transaction object
transaction The name of the transaction object from which you want
dwcontrol to get values
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, the method returns null.
Usage In most cases, use the SetTransObject method to specify the transaction
object. It is more efficient and allows you to control when changes get
committed to the database.
858 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples This statement sets the values in the internal transaction object for
dw_employee to the values in the default transaction object SQLCA:
dw_employee.SetTrans(SQLCA)
SetTransObject
Description Causes a DataWindow control or DataStore to use a programmer-specified
transaction object. The transaction object provides the information
necessary for communicating with the database.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetTransObject ( transaction transaction )
860 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow in which you want to use a programmer-specified
transaction object rather than the DataWindow control’s internal
transaction object
transaction The name of the transaction object you want to use in the
dwcontrol
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Usage Transaction objects in PowerBuilder A programmer-specified
transaction object gives you more control over the database transactions
and provides efficient application performance. You control the database
connection by using SQL statements such as CONNECT, COMMIT, and
ROLLBACK.
Since the DataWindow control does not have to connect to the database for
every RETRIEVE and UPDATE statement, these statements run faster. You
are responsible for committing and rolling back transactions after you call
the Update method, using code like the following:
IF dw_Employee.Update()>0 THEN
COMMIT USING emp_transobject;
ELSE
ROLLBACK USING emp_transobject;
END IF
You must set the parameters required to connect to your DBMS in the
transaction object before you can use the transaction object to connect to
the database. PowerBuilder provides a global transaction object called
SQLCA, which is all you need if you are connecting to one database. You
can also create additional transaction objects, as shown in the examples.
To use SetTransObject, write code that does the following tasks:
1 Set up the transaction object by assigning values to its fields (usually
in the application’s Open event).
2 Connect to the database using the SQL CONNECT statement and the
transaction object (in the Open event for the application or window).
3 Call SetTransObject to associate the transaction object with the
DataWindow control or DataStore (usually in the window’s Open
event).
4 Check the return value from the Update method and follow it with a
SQL COMMIT or ROLLBACK statement, as appropriate.
If you change the DataWindow object associated with the DataWindow
control (or DataStore) or if you disconnect and reconnect to a database, the
connection between the DataWindow control (or DataStore) and the
transaction object is severed. You must call SetTransObject again to
reestablish the connect.
Examples This statement causes dw_employee to use the default transaction object
SQLCA:
dw_employee.SetTransObject(SQLCA)
This statement causes dw_employee to use the programmer-defined
transaction object emp_TransObj. In this example, emp_TransObj is an
instance variable, but your script must allocate memory for it with the
CREATE statement before you use it:
emp_TransObj = CREATE transaction
... // Assign values to the transaction object
dw_employee.SetTransObject(emp_TransObj)
This example has two parts. The first script, for the application’s Open
event, reads database parameters from an initialization file called
MYAPP.INI and stores the values in the default transaction object
(SQLCA). The Database section of MYAPP.INI has the same keywords as
PowerBuilder’s own PB.INI file. The parameters shown are for a SQL
Server or Oracle database. The second script, for the window’s Open
event, establishes a connection and retrieves data from the database.
The application’s Open event script populates SQLCA:
862 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
SetValidate
Description Sets the input validation rule for a column in a DataWindow control or
DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetValidate ( string column, string rule )
integer dwcontrol.SetValidate ( integer column, string rule )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
column The column for which you want to set the input validation rule.
Column can be a column number or a column name.
rule A string whose value is the validation rule for validating the data.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Usage Validation rules are boolean expressions that usually compare the value in
the column’s edit control to some other value. When data the user enters
fails to meet the criteria established in the validation rule, an ItemError
event occurs.
You can specify validation rules in the Database painter or the
DataWindow painter, and you can change the rules in scripts using
SetValidate. A validation rule can include any DataWindow painter
function. For more information, see the Users Guide.
If you want to change a column’s validation rule temporarily, you can use
GetValidate to get and save the current rule. To include the value the user
entered in the validation rule, use the GetText method. You can compare its
return value to the validation criteria.
864 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
OldRule = dw_employee.GetValidate("emp_state")
dw_employee.SetValidate("emp_state", NewRule)
... //Process data using the new rule.
SetValue
Description Sets the value of an item in a value list or code table for a column in a
DataWindow control or DataStore. (A value list is called a code table
when it has both display and data values.) SetValue does not affect the data
stored in the column.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetValue ( string column, integer index, string
value )
integer dwcontrol.SetValue ( integer column, integer index, string
value )
Argument Description
dwcontrol A reference to a DataWindow control or DataStore.
column The column that contains the value list or code table. Column can
be a column number or a column name.
The edit style of the column can be DropDownListBox, Edit, or
RadioButton. SetValue has no effect when column has the
EditMask or DropDownDataWindow edit style.
index The number of the item in the value list or code table for which
you want to set the value.
value A string whose value is the new value for the item. For a code
table, use a tab (~t in PowerBuilder) to separate the display value
from the data value ("Texas~tTX"). The data value must be a
string that can be converted to the datatype of the column.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value
is null, in PowerBuilder and JavaScript the method returns null.
Examples This statement sets the value of item 3 in the value list for the column
emp_state of dw_employee to Texas:
dw_employee.SetValue("emp_state", 3, "Texas")
This statement sets the display value of item 3 in the code table for the
column named emp_state of dw_employee to Texas and the data value to
TX:
dw_employee.SetValue("emp_state", 3, "Texas~tTX")
866 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
OPEN prodcur;
IF SQLCA.SQLCode <> 0 THEN
MessageBox("Status","Cursor Open Failed " &
+ SQLCA.SQLErrText)
RETURN
END IF
DO WHILE SQLCA.SQLCode = 0
dw_products.SetValue("product_col", i, &
prod_name + "~t" + String(prod_code))
i = i + 1
FETCH prodcur INTO :prod_name, :prod_code;
LOOP
CLOSE prodcur;
DISCONNECT USING SQLCA;
See also GetValue
SetWeight
Description Specifies the types of JavaScript code that will be included in the
generated HTML or XHTML.
Obsolete method
SetWeight is obsolete and should not be used, because the Web
DataWindow technology is obsolete.
Applies to
DataWindow type Method applies to
Web Server component
868 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
events Specifies whether the generated HTML will include code
for triggering events. Values are:
• True – The generated HTML has scripts that trigger
events.
• False – The generated HTML does not trigger events.
Sets the value of the HTMLGen.ClientEvents property for
the DataWindow object associated with the server
component.
The available events are listed in the DataWindow event
cross-reference on page 503.
clientscriptable Specifies whether the generated HTML allows client-side
scripts to call methods of the client control. Values are:
• True – The generated HTML includes methods that the
client scripts can call.
• False – The generated HTML does not include methods.
This option adds approximately 100K to the generated
HTML.
Sets the value of the HTMLGen.ClientScriptable property
for the DataWindow object associated with the server
component.
clientformatting Specifies whether the generated HTML will include scripts
for formatting data the user enters. The scripts implement
display formats defined in the DataWindow object. Values
are:
• True – The generated HTML has scripts that format user-
entered data.
• False – The generated HTML does not format user-
entered data.
Sets the value of the HTMLGen.ClientFormatting property
for the DataWindow object associated with the server
component.
Return value Returns an empty string if successful and the syntax error message from
the Modify method if it fails.
Usage When code for more features is included, the Web DataWindow becomes
a more robust tool for data entry and manipulation, allowing data
validation, formatting, and client-side scripts that react to user actions.
However, if your application does not use some of these features, you can
decrease the size of the generated code by setting the appropriate options
to false.
This method calls the Modify method of the server component’s DataStore
to set the properties.
These properties can also be set in the DataWindow painter so that the
settings are part of the DataWindow object definition.
Examples This example specifies updating of data is not supported in the server
component webDW, but events are supported so client-side scripts can
respond to user actions:
webDW.SetWeight( false, false, true, true, false );
This example specifies that all features are supported except client-side
scripting. Scripts in the Web page will not be able to call Web
DataWindow client methods:
webDW.SetWeight( true, true, true, false, true );
This example specifies that all features are supported:
webDW.SetWeight( true, true, true, true, true );
See also Generate
Modify
SetAction
HTMLGen.property
SetWSObject
Description Causes a DataWindow control or DataStore to use a programmer-specified
Web service connection object. The connection object provides the
information necessary for communicating with a Web service data source.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.SetWSObject ( wsconnection wsobject )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow in which you want to use a programmer-specified
Web service connection object
870 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Argument Description
wsobject The name of the connection object you want to use in the
dwcontrol
ShareData
Description Shares data retrieved by one DataWindow control (or DataStore), which is
referred to as the primary DataWindow, with another DataWindow control
(or DataStore), referred to as the secondary DataWindow.
The controls do not share formatting; only the data is shared, including
data in the primary buffer, the delete buffer, the filter buffer, and the sort
order.
Note If you are using ShareData and then use ReselectRow on the primary
DataWindow, the secondary DataWindow resets back to row 1, column 1.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwprimary.ShareData ( datawindow dwsecondary )
integer dwprimary.ShareData ( datastore dwsecondary )
integer dwprimary.ShareData ( datawindowchild dwsecondary )
Argument Description
dwprimary The name of the primary DataWindow. The primary
DataWindow is the owner of the data. When you destroy this
DataWindow, the data disappears. Dwprimary can be a child
DataWindow but it cannot be a report in a composite
DataWindow object or a Crosstab DataWindow object.
dwsecondary The name of the secondary DataWindow with which the control
dwprimary will share the data. The secondary DataWindow can
be a child DataWindow or a report in a composite DataWindow
object but it cannot be a Crosstab DataWindow object.
You could also share data with a DataWindow object that has an external
data source and columns defined to be like the columns in the primary. To
share data between a primary DataWindow and more than one secondary
DataWindow control, call ShareData for each secondary DataWindow
control.
872 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Examples In this example, the programmer wants to allow the user to view two
portions of the same data retrieved from the database and uses the
ShareData method to accomplish this in the script for the Open event for
the window.
The SELECT statement for both DataWindow objects is the same, but the
DataWindow object in dw_dept displays only two of the five columns
displayed in dw_employee:
CONNECT USING SQLCA;
dw_employee.SetTransObject(SQLCA)
dw_employee.Retrieve()
dw_employee.ShareData(dw_dept)
874 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ShareDataOff
Description Turns off the sharing of data buffers for a DataWindow control or
DataStore.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.ShareDataOff ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Show
Description Makes an object or control visible, if it is hidden. If the object is already
visible, Show brings it to the top.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer objectname.Show ( )
Argument Description
objectname The name of the object or control you want to make visible
(show)
876 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
ShowHeadFoot
Description Displays the panels for editing the header and footer in a RichTextEdit
control or hides the panels and returns to editing the main text.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control with RichTextEdit
presentation style
Syntax PowerBuilder
integer rtename.ShowHeadFoot ( boolean editheadfoot,
{headerfooter} )
Argument Description
rtename A reference to the DataWindow control for which you want to
edit header and footer information. The DataWindow must have
a RichTextEdit presentation style.
editheadfoot A boolean value specifying the editing panel to display. Values
are:
• True – Display the header and footer editing panels.
• False – Display the detail editing panel for the document
body.
headerfooter A boolean value specifying whether the insertion point (caret)
(optional) for editing the header/footer panel is in the header or the footer
section. Values are:
• True Caret is in the header section.
• False Caret is in the footer section.
Sort
Description Sorts the rows in a DataWindow control or DataStore using the
DataWindow’s current sort criteria.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.Sort ( )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow
Return value Returns 1 if it succeeds and –1 if an error occurs. If dwcontrol is null, Sort
returns null.
Usage Sort uses the current sort criteria for the DataWindow. To change the sort
criteria, use the SetSort method. The SetSort method is equivalent to using
the Sort command on the Rows menu of the DataWindow painter. If you
do not call SetSort to set the sort criteria before you call Sort, Sort uses the
sort criteria specified in the DataWindow object definition.
When the Retrieve method retrieves data for the DataWindow,
PowerBuilder applies the sort criteria that were defined for the
DataWindow object, if any. You need to call Sort only after you change the
sort criteria with SetSort or if the data has changed because of processing
or user input.
For information on letting the user specify sort criteria using the built-in
dialog box, see SetSort.
878 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
When you sort a DataWindow on a specified column, rows with null data
remain at the top, regardless of whether you choose ascending or
descending order for your sort criteria. The sort order is performed on a
result set returned from a database, but is not necessarily the same sort
order used by the database (to return the result set) when an ORDER BY
clause is used in a SQL query.
The Sort method uses a typical lexical sort, with symbols, such as a hyphen
or underline, ranked higher than alphanumeric characters. It compares
characters in the same manner as does a dictionary.
When the Retrieve As Needed option is set, the Sort method cancels its
effect. Sort causes all rows to be retrieved so that they are sorted correctly.
It also changes the current row to 1 without causing the
RowFocusChanged or RowFocusChanging events to fire. These events
should be triggered programmatically after the Sort method is called.
Sort has no effect on the DataWindows in a composite report.
PowerBuilder environment
For use with PowerBuilder ListView and TreeView controls, see Sort in
the PowerScript Reference.
dw_depts.SetRedraw(true)
See also GroupCalc
SetSort
TextLine
Description Obtains the text of the line that contains the insertion point. TextLine
works for controls that can contain multiple lines.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
string editname.TextLine ( )
Argument Description
editname A reference to a DataWindow control
Return value Returns the text on the line with the insertion point in editname. If an error
occurs, TextLine returns the empty string (“”). If editname is null, TextLine
returns null.
Usage TextLine reports information about the edit control over the current row
and column.
PowerBuilder environment
For use with other PowerBuilder controls, see TextLine in the PowerScript
Reference.
880 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
TriggerEvent
Description Triggers an event associated with the specified object, which executes the
script for that event immediately.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer objectname.TriggerEvent ( trigevent event {, long word,
long long } )
integer objectname.TriggerEvent ( trigevent event {, long word,
string long } )
Argument Description
objectname The name of any PowerBuilder object or control that has events
associated with it.
event A value of the TrigEvent enumerated datatype that identifies a
PowerBuilder event (for example, Clicked!, Modified!, or
DoubleClicked!) or a string whose value is the name of an
event. The event must be a valid event for objectname and a
script must exist for the event in objectname.
word A value to be stored in the WordParm property of the system’s
(optional) Message object. If you want to specify a value for long, but not
word, enter 0. (For cross-platform compatibility, WordParm and
LongParm are both longs.)
long A value or a string that you want to store in the LongParm
(optional) property of the system’s Message object. When you specify a
string, a pointer to the string is stored in the LongParm property,
which you can access with the String function (see Usage).
Return value Returns 1 if it is successful and the event script runs and –1 if the event is
not a valid event for objectname, or no script exists for the event in
objectname. If any argument’s value is null, TriggerEvent returns null.
Usage Inherited from PowerObject. For information, see TriggerEvent in the
PowerScript Reference.
See also Post in the PowerScript Reference
PostEvent in the PowerScript Reference
Send in the PowerScript Reference
TypeOf
Description Determines the type of an object or control, reported as a value of the
Object enumerated datatype.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
object objectname.TypeOf ( )
Argument Description
objectname The name of the object or control for which you want the type
Undo
Description Cancels the last edit in an edit control, restoring the text to the content
before the last change.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control
Syntax PowerBuilder
integer editname.Undo ( )
Argument Description
editname A reference to a DataWindow control. Reverses the last edit in
the edit control over the current row and column.
Return value Returns 1 when it succeeds and –1 if an error occurs. If editname is null,
Undo returns null.
882 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Usage To determine whether the last action can be canceled, call the CanUndo
method.
PowerBuilder environment
For examples and for use with other PowerBuilder controls, see Undo in
the PowerScript Reference.
Update
Description Updates the database with the changes made in a DataWindow control or
DataStore. Update can also call AcceptText for the current row and column
before it updates the database.
Applies to
DataWindow type Method applies to
PowerBuilder DataWindow control, DataWindowChild object,
DataStore object
Syntax PowerBuilder
integer dwcontrol.Update ( { boolean accept {, boolean resetflag } } )
Argument Description
dwcontrol A reference to a DataWindow control, DataStore, or child
DataWindow.
accept A boolean value specifying whether the DataWindow control or
(optional) DataStore should automatically perform an AcceptText prior to
performing the update:
• True – (Default) Perform AcceptText. The update is canceled
if the data fails validation.
• False – Do not perform AcceptText.
resetflag A boolean value specifying whether dwcontrol should
(optional) automatically reset the update flags:
• True – (Default) Reset the flags.
• False – Do not reset the flags.
Return value Returns 1 if it succeeds and –1 if an error occurs. If any argument’s value
is null, Update returns null. If there is no DataWindow object assigned to
the DataWindow control or DataStore, this method returns 1.
Usage In PowerBuilder, you must use the SetTrans or the SetTransObject method
to specify the database connection before the Update method will execute.
When you use SetTransObject, the more efficient of the two, you must do
your own transaction management, which includes issuing the SQL
COMMIT or ROLLBACK statement to finalize the update.
884 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
Caution
If you call Update in an ItemChanged event, be sure to set the accept
argument to false to avoid an endless loop and a stack fault. Because
AcceptText triggers an ItemChanged event, you cannot call it in that event
(see AcceptText).
If you call Update in the ItemChanged event, then the item’s old value is
updated in the database, not the newly entered value. The newly entered
value in the edit control is still being validated and does not become the
item value until the ItemChanged event is successfully completed. If you
want to include the new value in an update in the ItemChanged event, use
the appropriate SetItem method first.
Examples This example connects to the database, specifies a transaction object for
the DataWindow control with SetTransObject, and then updates the
database with the changes made in dw_employee. By default, AcceptText
is performed on the data in the edit control for the current row and column
and the status flags are reset:
CONNECT USING SQLCA;
dw_employee.SetTransObject(SQLCA)
... // Some processing
dw_employee.Update()
This example connects to the database, specifies a transaction object for
the DataWindow control with SetTransObject, and then updates the
database with the changes made in dw_employee. The update resets the
status flags but does not perform AcceptText before updating the database:
CONNECT USING SQLCA;
dw_employee.SetTransObject(SQLCA)
... // Some processing
dw_Employee.Update(false, true)
As before, this example connects to the database, specifies a transaction
object for the DataWindow control with SetTransObject, and then updates
the database with the changes made in dw_employee. After Update is
executed, the example checks the return code and, depending on the
success of the update, executes a COMMIT or ROLLBACK:
integer rtn
IF rtn = 1 THEN
COMMIT USING SQLCA;
ELSE
ROLLBACK USING SQLCA;
END IF
See also AcceptText
Modify
ResetUpdate
Print
SaveAs
SetTrans
SetTransObject
886 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
888 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
890 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
892 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
894 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
896 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
898 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
900 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
902 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
904 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
906 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
908 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
910 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
912 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
914 PowerBuilder
CHAPTER 9 Methods for the DataWindow Control
916 PowerBuilder
C H A P T E R 1 0 Methods for Graphs in the
DataWindow Control
About this chapter This chapter documents the methods that you can use to manipulate
DataWindow graphs in the PowerBuilder and Web environments. You
will find syntax, notes, and examples for both environments.
Other methods for DataWindows and DataStores are in a separate chapter.
Contents The graph methods are in alphabetical order.
CategoryCount
Description Counts the number of categories on the category axis of a graph.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.CategoryCount ( string graphcontrol )
Argument Description
dwcontrol A reference to a DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the
DataWindow for which you want the number of categories
Return value Returns the count if it succeeds and -1 if an error occurs. If any argument’s
value is null, CategoryCount returns null.
Examples These statements get the number of categories in the graph gr_revenues in
the DataWindow control dw_findata:
integer li_count
li_count = &
dw_findata.CategoryCount("gr_revenues")
See also DataCount
SeriesCount
CategoryName
Description Obtains the category name associated with the specified category number.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
string dwcontrol.CategoryName ( string graphcontrol, integer
categorynumber )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the
DataWindow for which you want the name of a specific
category
categorynumber The number of the category for which you want the name
Return value Returns the name of categorynumber in the graph named in graphcontrol. If an
error occurs, it returns the empty string (“”). If any argument’s value is null,
CategoryName returns null.
Usage Categories are numbered consecutively, from 1 to the value returned by
CategoryCount. When you delete a category, the categories are renumbered to
keep the numbering consecutive. You can use CategoryName to find out the
named category associated with a category number.
Examples These statements obtain the name of category 5 in the graph gr_revenues in the
DataWindow control dw_findata:
string ls_name
ls_name = &
dw_findata.CategoryName("gr_revenues", 5)
See also CategoryCount
SeriesName
Clipboard
Description Replaces the contents of the system clipboard with a bitmap image of a graph.
You can paste the image into other applications.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
918 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
Clipboard returns null.
Examples This statement copies the graph gr_employees in the DataWindow control
dw_emp_data to the clipboard:
dw_emp_data.Clipboard("gr_employees")
See also Clipboard in the PowerScript Reference
Copy
DataCount
Description Reports the number of data points in the specified series in a graph.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
long dwcontrol.DataCount ( string graphcontrol, string seriesname )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol The name of the graph in the DataWindow control
seriesname A string whose value is the name of the series for which you want
the number of data points
Return value Returns the number of data points in the specified series if it succeeds and -1 if
an error occurs. If any argument’s value is null, DataCount returns null.
Examples These statements store in ll_count the number of data points in the series
named Salary in the graph gr_dept in the DataWindow control dw_employees:
long ll_count
ll_count = &
dw_employees.DataCount("gr_dept", "Salary")
See also SeriesCount
FindCategory
Description Obtains the number of a category in a graph when you know the category’s
label. The category values label the category axis.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.FindCategory ( string graphcontrol,
date categoryvalue )
integer dwcontrol.FindCategory ( string graphcontrol,
datetime categoryvalue )
integer dwcontrol.FindCategory ( string graphcontrol,
double categoryvalue )
integer dwcontrol.FindCategory ( string graphcontrol,
string categoryvalue )
integer dwcontrol.FindCategory ( string graphcontrol,
time categoryvalue )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the DataWindow
control.
categoryvalue A value that is the category for which you want the number. The
value you specify must be the same datatype as the datatype of
the category axis.
Return value Returns the number of the category named in categoryvalue in the graph. If an
error occurs, FindCategory returns -1. If any argument’s value is null,
FindCategory returns null.
Usage Most of the category manipulation functions require a category number, rather
than a name. However, when you delete and insert categories, existing
categories are renumbered to keep the numbering consecutive. Use
FindCategory when you know only a category’s label or when the numbering
might have changed.
Examples These statements obtain the number of the category named Qty in the graph
gr_computers in the DataWindow control dw_equipment:
integer CategoryNbr
CategoryNbr = &
dw_equipment.FindCategory("gr_computers", "Qty")
See also FindSeries
920 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
FindSeries
Description Obtains the number of a series in a graph when you know the series’ name.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.FindSeries ( string graphcontrol, string seriesname )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the DataWindow
control
seriesname A string whose value is the name of the series for which you want
the number
Return value Returns the number of the series named in seriesname in the graph. If an error
occurs, FindSeries returns -1. If any argument’s value is null, FindSeries returns
null.
Usage Most of the series manipulation functions require a series number, rather than
a name. Use FindSeries when you know only a series’ name or when the
numbering might have changed.
Examples These statements obtain the number of the series named PCs in the graph
gr_computers in the DataWindow control dw_equipment and store it in
SeriesNbr:
integer SeriesNbr
SeriesNbr = &
dw_equipment.FindSeries("gr_computers", "PCs")
See also FindCategory
GetData
Description Gets the value of a data point in a series in a graph when the values axis has
numeric values.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
double dwcontrol.GetData ( string graphcontrol, integer seriesnumber,
long datapoint , { grDataType datatype } )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number that identifies the series from which you want
data.
datapoint The number of the data point for which you want the value.
datatype A value of the grDataType enumerated datatype (in
(scatter graph only) PowerBuilder) specifying whether you want the x or y value
(optional) of the data point in a scatter graph.
Values are:
• xValue! – The x value of the data point.
• yValue! – (Default) The y value of the data point.
For more information, see grDataType on page 488.
Return value Returns the value of the data in datapoint if it succeeds, 0 if the series does not
exist, and -1 if an error occurs. If any argument’s value is null, GetData returns
null.
Usage You can use GetData only for graphs whose values axis is numeric. For graphs
with other types of values axes, use the GetDataValue method instead.
Examples These statements obtain the data value of data point 3 in the series named Costs
in the graph gr_computers in the DataWindow control dw_equipment:
integer SeriesNbr
double data_value
922 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
GetDataDateVariable
Description Returns the value associated with a data point in a graph in a DataWindow
object when the values axis has the date datatype. You must call GetDataDate
first to retrieve the line style information. (GetDataDate is based on
GetDataValue and is documented in that entry.)
Obsolete method
GetDataDateVariable is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Return value Returns a date value associated with a data point in a graph.
Usage To find out the value of a data point, call one of the GetData methods to retrieve
the information, then immediately afterward, call one of the GetDataVariable
methods and examine the return value.
For a values axis of Call this method to set Then call this method
type up the value to return the value
Date, DateTime, or time GetDataDate GetDataDateVariable
Number or double GetDataNumber GetDataNumberVariable
String GetDataString GetDataStringVariable
GetDataLabelling
Description Determines whether the data at a given data point is labeled in a DirectX 3D
graph.
Applies to DataWindow control
Syntax integer dwcontrol.GetDataLabelling (string graphcontrol, string series, int
datapoint, REF boolean value)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
series The string that identifies the series in which you want the data
labelling value.
datapoint The data point for which you want to obtain a label.
value Boolean passed by reference to indicate whether the data point
has a label.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
GetDataLabelling returns null.
Usage GetDataLabelling determines whether a data label is set for data points from
DirectX 3D Area, Bar, Col, or Line graphs. You cannot use this method with
DirectX 3D Pie graphs.
Examples In a DataWindow Clicked event, these statements obtain the number of the
series and data point clicked by the user and determine whether the label is set
for that data point.
integer SeriesNbr, ItemNbr
boolean refB
grObjectType clickedtype
924 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
GetDataNumberVariable
Description Returns the value associated with a data point in a graph in a DataWindow
object when the values axis has a numeric datatype. You must call
GetDataNumber first to retrieve the line style information. (GetDataNumber is
based on GetDataValue and is documented in that entry.)
Obsolete method
GetDataNumberVariable is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Return value Returns a number value associated with a data point in a graph.
Usage To find out the value of a data point, call one of the GetData methods to retrieve
the information, then immediately afterward, call one of the GetDataVariable
methods and examine the return value.
For a values axis of Call this method to set Then call this method
type up the value to return the value
Date, DateTime, or time GetDataDate GetDataDateVariable
Number or double GetDataNumber GetDataNumberVariable
String GetDataString GetDataStringVariable
GetDataPieExplode
Description Reports the percentage of the pie graph’s radius that a pie slice is moved away
from the center of the pie graph. An exploded slice is moved away from the
center of the pie in order to draw attention to the data.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.GetDataPieExplode ( string graphcontrol, integer
series, integer datapoint, REF integer percentage )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the
DataWindow control
series The number that identifies the series
datapoint The number of the exploded data point (that is, the pie slice)
percentage An integer variable in which you want to store the percentage
that the pie slice is exploded
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
GetDataPieExplode returns null.
Examples This example reports the percentage that a pie slice is exploded when the user
clicks on that slice. The code checks whether the graph is a pie graph using the
property GraphType. It then finds out whether the user clicked on a pie slice by
checking the series and data point values set by ObjectAtPointer. The script is
for the DoubleClicked event of a graph control:
integer series, datapoint
grObjectType clickedtype
integer percentage
percentage = 50
IF (This.GraphType <> PieGraph! and &
This.GraphType <> Pie3D!) THEN RETURN
clickedtype = This.ObjectAtPointer(series, &
datapoint)
926 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
GetDataPieExplodePercentage
Description Returns the percentage value that a slice is exploded in a pie graph in a
DataWindow object. You must call GetDataPieExplode first to retrieve the
information and then call this method to get the value.
Obsolete method
GetDataPieExplodePercentage is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Return value Returns a number specifying how much the pie slice is exploded.
Usage To find out the percentage of the pie graphs’s radius that a pie slice is moved
away from the center of the pie graph, call GetDataPieExplode to retrieve the
information, then immediately afterward, call GetDataPieExplodePercentage
and examine the return value.
See also GetDataPieExplode
SetDataPieExplode
GetDataStringVariable
Description Returns the value associated with a data point in a graph in a DataWindow
object when the values axis has the string datatype. You must call
GetDataString first to retrieve the line style information. (GetDataString is based
on GetDataValue and is documented in that entry.)
Obsolete method
GetDataStringVariable is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Return value String. Returns a string value associated with a data point in a graph.
Usage To find out the value of a data point, call one of the GetData methods to retrieve
the information, then immediately afterward, call one of the GetDataVariable
methods and examine the return value.
For a values axis of Call this method to set Then call this method
type up the value to return the value
Date, DateTime, or time GetDataDate GetDataDateVariable
Number or double GetDataNumber GetDataNumberVariable
String GetDataString GetDataStringVariable
GetDataStyle
Finds out the appearance of a data point in a graph. Each data point in a series
can have individual appearance settings. There are different syntaxes,
depending on what settings you want to check.
To get the Use
Data point’s colors (called GetDataStyleColor in JavaScript) Syntax 1
Line style and width used by the data point (called Syntax 2
GetDataStyleLine in JavaScript)
Fill pattern for the data point (called GetDataStyleFill in Syntax 3
JavaScript)
Symbol for the data point (called GetDataStyleSymbol in Syntax 4
JavaScript)
928 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
The graph stores style information for properties that do not apply to the
current graph type. For example, you can find out the fill pattern for a data
point or a series in a 2-dimensional line graph, but that fill pattern will not be
visible.
long color_nbr
integer SeriesNbr
Syntax 2 For the line style and width used by a data point
Description Obtains the line style and width for a data point in a graph.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.GetDataStyle ( string graphcontrol, integer
seriesnumber, integer datapointnumber, REF LineStyle linestyle, REF
integer linewidth )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number of the series in which you want the line style and
width of a data point.
datapointnumber The number of the data point for which you want the line style
and width.
linestyle In PowerBuilder, a variable of type LineStyle in which you
want to store the line style.
For a list of line style values, see LineStyle on page 490.
linewidth In PowerBuilder, an integer variable in which you want to
store the width of the line. The width is measured in pixels.
930 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Return value Returns 1 if it succeeds and -1 if an error occurs. In PowerBuilder, for the
specified series and data point, GetDataStyle stores its line style in linestyle and
the line’s width in linewidth. If any argument’s value is null, GetDataStyle
returns null.
Examples This example gets the line style and width for data point 6 in the series entered
in the SingleLineEdit sle_series in the graph gr_depts in the DataWindow
control dw_employees. The information is stored in the variables line_style
and line_width:
integer SeriesNbr, line_width
LineStyle line_style
Argument Description
datapointnumber The number of the data point for which you want the fill
pattern.
fillvariable In PowerBuilder, a variable of type FillPattern in which you
want to store the fill pattern value.
For a list of values, see FillPattern on page 487.
932 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number of the series in which you want the symbol type
of a data point.
datapointnumber The number of the data point for which you want the symbol
type.
symbolvariable In PowerBuilder, a variable of type grSymbolType in which
you want to store the symbol type.
For a list of values, see grSymbolType on page 490.
Return value Returns 1 if it succeeds and -1 if an error occurs. Stores, according to the type
of symbolvariable, a value of that enumerated datatype representing the
symbol used for the specified data point. If any argument’s value is null,
GetDataStyle returns null.
Examples These statements store the symbol for a data point in the variable symbol_type.
The data point is the sixth point in the series named in the SingleLineEdit
sle_series in the graph gr_depts in the DataWindow control dw_employees:
integer SeriesNbr
grSymbolType symbol_type
GetDataStyleColorValue
Description Returns the color value associated with a data point in a graph in a
DataWindow object. You must call GetDataStyleColor first to retrieve the color
information. (See GetDataStyle for information about this method.)
Obsolete method
GetDataStyleColorValue is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
The color for a data point overrides the color setting for the series.
See also GetDataStyle
GetDataStyleFillPattern
Description Returns the fill pattern associated with a data point in a graph in a DataWindow
object. You must call GetDataStyleFill first to retrieve the fill information. (See
GetDataStyle for information about this method.)
Obsolete method
GetDataStyleFillPattern is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
934 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
number dwcontrol.GetDataStyleFillPattern ( )
Argument Description
dwcontrol A reference to a DataWindow control containing the graph
The fill pattern for a data point overrides the fill pattern setting for the series.
See also GetDataStyle
GetDataStyleLineStyle
Description Returns the line style associated with a data point in a graph in a DataWindow
object. You must call GetDataStyleLine first to retrieve the line style
information. (See GetDataStyle for information about this method.)
Obsolete method
GetDataStyleLineStyle is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
The line style for a data point overrides the setting for the series.
See also GetDataStyle
GetDataStyleLineWidth
Description Returns the line width associated with a data point in a graph in a DataWindow
object. You must call GetDataStyleLine first to retrieve the line style
information. (See GetDataStyle for information about this method.)
Obsolete method
GetDataStyleLineWidth is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
GetDataStyleSymbolValue
Description Returns the symbol associated with a data point in a graph in a DataWindow
object. You must call GetDataStyleSymbol first to retrieve the symbol
information. (See GetDataStyle for information about this method.)
936 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Obsolete method
GetDataStyleSymbolValue is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Return value Returns an integer representing data point’s symbol. For a list of values and
their meanings, see grSymbolType on page 490.
Usage To find out the symbol associated with a data point, call GetDataStyleSymbol to
retrieve the information, then immediately afterward, call
GetDataStyleSymbolValue and examine the return value.
The symbol for a data point overrides the setting for the series.
See also GetDataStyle
GetDataTransparency
Description Obtains the transparency percentage of a data point in a DirectX 3D graph
(those with 3D rendering).
Applies to DataWindow control
Syntax integer dwcontrol.GetDataTransparency ( string graphcontrol, integer
seriesnumber, int datapoint, REF int transparency)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number that identifies the series from which you want
data.
datapoint The number of the data point for which you want the
transparency value.
Argument Description
transparency Integer value for percent transparency. A value of 0 means that
the data point is opaque and a value of 100 means that it is
completely transparent.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
GetDataTransparency returns null.
Usage GetDataTransparency retrieves data from any DirectX 3D graph (those with 3D
rendering).
Examples These statements obtain the transparency percentage of data point 3 in the
series named Costs in the graph gr_computers in the DataWindow control
dw_equipment:
integer SeriesNbr, rtn, transp_value
GetDataValue
Description Obtains the value of a data point in a series in a graph.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.GetDataValue ( string graphcontrol,
integer seriesnumber, long datapoint, REF date datavariable
{, grDataType XorY } )
integer dwcontrol.GetDataValue ( string graphcontrol,
integer seriesnumber, long datapoint, REF datetime datavariable
{, grDataType XorY } )
integer dwcontrol.GetDataValue ( string graphcontrol,
integer seriesnumber, long datapoint, REF double datavariable
{, grDataType XorY } )
938 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
GetDataValue returns null.
Usage GetDataValue retrieves data from any graph. The data is stored in datavariable,
whose datatype must match the datatype of the graph’s values axis, or returned
by a method that corresponds to the axis datatype. If the values axis is numeric,
you can also use the GetData function.
Calling GetDataValue when the datatype of datavariable is not the same as the
datatype of the data produces undefined results.
If a variable’s datatype is non-numeric and the datatype of datavariable is
double, GetDataValue returns the number of the datapoint in datavariable.
GetSeriesLabelling
Description Determines whether the data for a given series is labeled in a DirectX 3D
graph.
Applies to DataWindow control
Syntax integer dwcontrol.GetSeriesLabelling (string graphcontrol, string series,
REF boolean value)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
series The string that names the series in which you want the series
label setting.
value A boolean passed by reference to indicate whether the series
has labels.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
GetSeriesLabelling returns null.
Usage GetSeriesLabelling retrieves the data from DirectX 3D Area, Bar, Col, or Line
graphs. You cannot use this method with DirectX 3D Pie graphs.
Examples These statements obtain the number of the series and data point for the graph
gr_1 in the DataWindow control dw_employee and then get the series label
setting.
integer SeriesNbr, ItemNbr
boolean refB
string ls_SeriesName
940 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
grObjectType clickedtype
GetSeriesStyle
Finds out the appearance of a series in a graph. The appearance settings for
individual data points can override the series settings, so the values obtained
from GetSeriesStyle might not reflect the current state of the graph. There are
several syntaxes, depending on what settings you want.
To Use
Get the series’ colors Syntax 1
Get the line style and width used by the series Syntax 2
Get the fill pattern for the series Syntax 3
Get the symbol for data points in the series Syntax 4
Find out if the series is an overlay (a series shown as a line on top of Syntax 5
another graph type)
GetSeriesStyle provides information about a series. The data points in the series
can have their own style settings. Use SetSeriesStyle to change the style values
for a series. Use GetDataStyle to get style information for a data point and
SetDataStyle to override series settings and set style information for individual
data points.
The graph stores style information for properties that do not apply to the
current graph type. For example, you can find out the fill pattern for a data
point or a series in a two-dimensional line graph, but that fill pattern will not
be visible.
942 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
SetDataStyle
SetSeriesStyle
dw_equipment.SeriesName("gr_product_data", &
SeriesNbr)
944 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
FillPattern data_pattern
grObjectType MouseHit
dw_employees.GetSeriesStyle("gr_depts" , &
SeriesName, data_pattern)
946 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesname A string whose value is the name of the series for which you
want the overlay status.
overlayindicator In PowerBuilder, a boolean variable in which you want to
store a value indicating whether the series is an overlay.
GetSeriesStyle sets overlayindicator to true if the series is an
overlay and false if it is not.
GetSeriesStyleColorValue
Description Returns the color value associated with a series in a graph in a DataWindow
object. You must call GetSeriesStyleColor first to retrieve the color information.
(See GetSeriesStyle for information about this method.)
Obsolete method
GetSeriesStyleColorValue is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Since data points in a series can have their own style settings, the color setting
for a series might not match the color for a specific data point within that series.
See also GetSeriesStyle
GetSeriesStyleFillPattern
Description Returns the fill pattern associated with a series in a graph in a DataWindow
object. You must call GetSeriesStyleFill first to retrieve the fill information.
(See GetSeriesStyle for information about this method.)
Obsolete method
GetSeriesStyleFillPattern is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Since data points in a series can have their own style settings, the fill pattern
for a series might not match the fill pattern for a specific data point within that
series.
See also GetSeriesStyle
948 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
GetSeriesStyleLineStyle
Description Returns the line style associated with a series in a graph in a DataWindow
object. You must call GetSeriesStyleLine first to retrieve the line style
information. (See GetSeriesStyle for information about this method.)
Obsolete method
GetSeriesStyleLineStyle is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
GetSeriesStyleLineWidth
Description Returns the line width associated with a series in a graph in a DataWindow
object. You must call GetSeriesStyleLine first to retrieve the line style
information. (See GetSeriesStyle for information about this method.)
Obsolete method
GetSeriesStyleLineWidth is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
GetSeriesStyleOverlayValue
Description Returns a value indicating whether a series is an overlay, that is, whether it is
shown on top of another graph type. You must call GetSeriesStyleOverlay first
to retrieve the overlay information. (See GetSeriesStyle for information about
this method.)
Obsolete method
GetSeriesStyleOverlayValue is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
950 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Argument Description
dwcontrol A reference to a DataWindow control containing the graph
Return value Returns true if the series is an overlay and false if it is not.
Usage To find out whether a series is an overlay, call GetSeriesStyleOverlay to retrieve
the information, then immediately afterward, call GetSeriesStyleOverlayValue
and examine the return value.
See also GetSeriesStyle
GetSeriesStyleSymbolValue
Description Returns the symbol associated with a series in a graph in a DataWindow object.
You must call GetSeriesStyleLine first to retrieve the line style information.
(See GetSeriesStyle for information about this method.)
Obsolete method
GetSeriesStyleOverlayValueGetSeriesStyleSymbolValue is obsolete and should
not be used, because the DataWindow Web Control for ActiveX technology is
obsolete.
Since data points in a series can have their own style settings, the symbol for a
series might not match the symbol for a specific data point within that series.
See also GetSeriesStyle
GetSeriesTransparency
Description Obtains the transparency percentage of a series in a DirectX 3D graph (those
with 3D rendering).
Applies to DataWindow control
Syntax integer dwcontrol.GetSeriesTransparency ( string graphcontrol, string
series, REF int transparency)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
series The string that identifies the series from which you want the
transparency value.
transparency Integer value for percent transparency. A value of 0 means that
the series is opaque and a value of 100 means that it is
completely transparent.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
GetSeriesTransparency returns null.
Usage GetSeriesTransparency retrieves data from any DirectX 3D graph (those with
3D rendering).
Examples These statements obtain the transparency percentage of the series named Costs
in the graph gr_computers in the DataWindow control dw_equipment:
integer SeriesNbr, rtn, ser_transp_value
952 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
ObjectAtPointer
Description Finds out where the user clicked in a graph. ObjectAtPointer reports the region
of the graph under the pointer and stores the associated series and data point
numbers in the designated variables.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
grObjectType dwcontrol.ObjectAtPointer ( string graphcontrol, REF
integer seriesnumber, REF integer datapoint )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the DataWindow
control.
seriesnumber In PowerBuilder, an integer variable in which you want to store the
number of the series under the pointer.
datapoint In PowerBuilder, an integer variable in which you want to store the
number of the data point under the pointer.
Return value Returns a value of the grObjectType enumerated datatype identifying the type
of object under the pointer if the user clicks anywhere in the graph (including
an empty area) and a null value if the user clicks outside the graph.
For a list of type values, see grObjectType on page 489.
Usage The ObjectAtPointer function allows you to find out how the user is interacting
with the graph. The function returns a value of the grObjectType enumerated
datatype identifying the part of the graph. When the user clicks in a series, data
point, or category, ObjectAtPointer stores the series and/or data point numbers
in designated variables.
When the user clicks a data point (or other data mark, such as line or bar), or
on the series labels in the legend, ObjectAtPointer stores the series number in
the designated variable. When the user clicks on a data point or category
tickmark label, ObjectAtPointer stores the data point number in the designated
variable.
When the user clicks in a series, but not on the actual data point,
ObjectAtPointer stores 0 in datapoint and when the user clicks in a category,
ObjectAtPointer stores 0 in seriesnumber. When the user clicks other parts of
the graph, ObjectAtPointer stores 0 in both variables.
Examples PowerBuilder These statements store the series number and data point
number at the pointer location in the graph named gr_computers in the
DataWindow control dw_equipment in SeriesNbr and ItemNbr:
integer SeriesNbr, ItemNbr
dw_equipment.ObjectAtPointer("gr_computers", &
SeriesNbr, ItemNbr)
ObjectAtPointerDataPoint
Description Returns the number of the data point under the pointer. You must call
ObjectAtPointer first to retrieve the pointer position information.
Obsolete method
ObjectAtPointerDataPoint is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
ObjectAtPointerSeries
Description Returns the number of the series under the pointer. You must call
ObjectAtPointer first to retrieve the pointer position information.
954 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Obsolete method
ObjectAtPointerSeries is obsolete and should not be used, because the
DataWindow Web Control for ActiveX technology is obsolete.
Reset
Description Deletes the data, the categories, or the series from a graph.
Reset is for graphs within a DataWindow object with an external data source.
It does not apply to other graphs in DataWindow objects because their data
comes directly from the DataWindow.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.Reset ( grResetType graphresettype )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
Argument Description
graphresettype A value of the grResetType enumerated datatype specifying
whether you want to delete only data values or all series and
all data values:
• All! – Delete all series, categories, and data in dwcontrol.
• Category! – Delete categories and data in dwcontrol.
• Data! – Delete data in dwcontrol.
• Series! – Delete the series and data in dwcontrol.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
Reset returns null. The return value is usually not used.
Usage Use Reset to clear the data in a graph before you add new data.
Examples PowerBuilder This statement deletes the series and data, but leaves the
categories, in the graph gr_product_data in the DataWindow dw_prod. The
DataWindow object has an external data source:
dw_prod.Reset("gr_product_data", Series!)
ResetDataColors
Description Restores the color of a data point to the default color for its series.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.ResetDataColors ( string graphcontrol, integer
seriesnumber, long datapointnumber )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the
DataWindow control
seriesnumber The number of the series in which you want to reset the color
of a data point
datapointnumber The number of the data point for which you want to reset the
color
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
ResetDataColors returns null.
956 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Examples PowerBuilder These statements change the color of data point 10 in the
series named Costs in the graph gr_computers in the DataWindow control
dw_equipment to the color for the series:
SeriesNbr = dw_equipment.FindSeries("gr_computers", &
"Costs")
dw_equipment.ResetDataColors("gr_computers", &
SeriesNbr, 10)
See also GetDataStyle
GetSeriesStyle
SetDataStyle
SetSeriesStyle
SaveAs
Description Saves the data in a graph in the format you specify.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.SaveAs ( string graphcontrol {, string filename,
SaveAsType saveastype, boolean colheading { , encoding } } )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the DataWindow
control.
filename A string whose value is the name of the file in which you want to
(optional) save the data in the graph. If you omit filename or specify an empty
string (“”), the user is prompted for a file name.
saveastype A value of the SaveAsType enumerated datatype (in
(optional) PowerBuilder) specifying the format in which to save the data
represented in the graph.
For a list of values, see SaveAsType on page 492.
Argument Description
colheading A boolean value indicating whether you want column headings
(optional) with the saved data. The default value is true. This argument is
used for the following formats: Clipboard, CSV, Excel, and Text.
For most other formats, column headings are always saved.
encoding Character encoding of the file to which the data is saved. This
(optional) parameter applies only to the following formats: TEXT, CSV,
SQL, HTML, and DIF. If you do not specify an encoding
parameter, the file is saved in ANSI format. Values are:
• EncodingANSI! (default)
• EncodingUTF8!
• EncodingUTF16LE!
• EncodingUTF16BE!
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SaveAs returns null.
If you do not specify any arguments, PowerBuilder saves the DataWindow data
rather than the data in the graph control. In this case, or in the case where you
specify only the graph control name as an argument, PowerBuilder displays the
Save As dialog box, letting the user specify the format of the saved data.
Examples PowerBuilder This statement saves the contents of gr_computers in the
DataWindow control dw_equipmt to the file G:\INVENTORY\SALES.XLS.
The format is comma-separated values with column headings:
dw_equipmt.SaveAs("gr_computers", &
"G:\INVENTORY\SALES.XLS", CSV!, true)
See also Print
SaveAs
SeriesCount
Description Counts the number of series in a graph.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.SeriesCount ( string graphcontrol )
958 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the
DataWindow control
Return value Returns the number of series in the graph if it succeeds and -1 if an error occurs.
If any argument’s value is null, SeriesCount returns null.
Examples PowerBuilder These statements store in the variable li_series_count the
number of series in the graph gr_computers in the DataWindow control
dw_equipment:
integer li_series_count
li_series_count = &
dw_equipment.SeriesCount("gr_computers")
See also CategoryCount
DataCount
SeriesName
Description Obtains the series name associated with the specified series number.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.SeriesName ( string graphcontrol, integer
seriesnumber )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph
graphcontrol A string whose value is the name of the graph in the
DataWindow control
seriesnumber The number of the series for which you want to obtain the
name
Return value Returns the name assigned to the series. If an error occurs, it returns the empty
string (“”). If any argument’s value is null, SeriesName returns null.
Usage Series are numbered consecutively, from 1 to the value returned by
SeriesCount. When you delete a series, the series are renumbered to keep the
numbering consecutive. You can use SeriesName to find out the name of the
series associated with a series number.
SetDataLabelling
Description Set the data label for a DirectX 3D graph.
Applies to DataWindow control
Syntax integer dwcontrol.SetDataLabelling (string graphcontrol, int seriesnumber,
int datapoint, boolean value)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number that identifies the series in which you want to set
the data labelling value.
datapoint The datapoint.
value Indicates whether to label the data with its value.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataLabelling returns null.
Usage SetDataLabelling is used to indicate whether or not to label the data with the
numbers for data in DirectX 3D Area, Bar, Col, or Line graphs. You cannot use
this method with DirectX 3D Pie graphs.
Examples These statements obtain the series and datapoint for the graph gr_1 in the
DataWindow control dw_employee.
integer SeriesNbr, ItemNbr
grObjectType clickedtype
960 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
SeriesNbr, ItemNbr)
SetDataPieExplode
Description Explodes a pie slice in a pie graph. The exploded slice is moved away from the
center of the pie, which draws attention to the data. You can explode any
number of slices of the pie.
Applies to PowerBuilder DataWindow DataWindow control
Syntax PowerBuilder
integer dwcontrol.SetDataPieExplode ( string graphcontrol, integer
seriesnumber, integer datapoint, integer percentage )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number that identifies the series.
datapoint The number of the data point (that is, the pie slice) to be
exploded.
percentage A number between 0 and 100 that is the percentage of the
radius that the pie slice is moved away from the center. When
percentage is 100, the tip of the slice is even with the
circumference of the pie’s circle.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataPieExplode returns null.
Usage If the graph is not a pie graph, SetDataPieExplode has no effect.
Examples PowerBuilder This example explodes the pie slice under the pointer to 50%
when the user double-clicks within the graph. The code checks the property
GraphType to make sure the graph is a pie graph. It then finds out whether the
user clicked on a pie slice by checking the series and data point values set by
ObjectAtPointer. The script is for the DoubleClicked event of the DataWindow
control:
integer series, datapoint
grObjectType clickedtype
integer percentage
percentage = 50
IF (This.GraphType <> PieGraph! AND &
This.GraphType <> Pie3D!) THEN RETURN
SetDataStyle
Specifies the appearance of a data point in a graph. The data point’s series has
appearance settings that you can override with SetDataStyle.
To Use
Set the data point’s colors Syntax 1
Set the line style and width for the data point Syntax 2
Set the fill pattern for the data point Syntax 3
Set the symbol for the data point Syntax 4
962 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Syntax PowerBuilder
integer dwcontrol.SetDataStyle ( string graphcontrol, integer
seriesnumber, integer datapointnumber, grColorType colortype, long
color )
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number of the series in which you want to set the color of
a data point.
datapointnumber The number of the data point for which you want to set the
color.
colortype A value of the grColorType enumerated datatype (in
PowerBuilder) specifying the aspect of the data point for
which you want to set the color.
For a list of values, see grColorType on page 488.
color A long whose value is the new color for colortype.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataStyle returns null.
Usage To change the appearance of a series, use SetSeriesStyle. The settings you make
for the series are the defaults for all data points in the series.
To reset the color of individual points back to the series color, call
ResetDataColors.
You can specify the appearance of a data point in the graph before the
application draws the graph. To do so, define a user event for
pbm_dwngraphcreate and call SetDataStyle in the script for that event. The
event pbm_dwngraphcreate is triggered just before a graph is created in a
DataWindow object.
Examples PowerBuilder These statements set the text (foreground) color to black for
data point 6 in the series named Salary in the graph gr_depts in the
DataWindow control dw_employees:
integer SeriesNbr
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataStyle returns null.
Usage To change the appearance of a series, use SetSeriesStyle. The settings you make
for the series are the defaults for all data points in the series.
964 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
You can specify the appearance of a data point in the graph before the
application draws the graph. To do so, define a user event for
pbm_dwngraphcreate and call SetDataStyle in the script for that event. The
event pbm_dwngraphcreate is triggered just before a graph is created in a
DataWindow object.
Examples PowerBuilder This example checks the line style used for data point 10 in the
series named Costs in the graph gr_computers in the DataWindow control
dw_equipment. If it is dash-dot, the SetDataStyle sets it to continuous. The line
width stays the same:
integer SeriesNbr, line_width
LineStyle line_style
Argument Description
seriesnumber The number of the series in which you want to set the
appearance of a data point.
datapointnumber The number of the data point for which you want to set the
appearance.
fillvalue A value of the FillPattern enumerated datatype (in
PowerBuilder) specifying the fill pattern for the data point.
For a list of values, see FillPattern on page 487.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataStyle returns null.
Usage To change the appearance of a series, use SetSeriesStyle. The settings you make
for the series are the defaults for all data points in the series.
You can specify the appearance of a data point in the graph before the
application draws the graph. To do so, define a user event for
pbm_dwngraphcreate and call SetDataStyle in the script for that event. The
event pbm_dwngraphcreate is triggered just before a graph is created in a
DataWindow object.
966 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Argument Description
seriesnumber The number of the series in which you want to set the
appearance of a data point.
datapointnumber The number of the data point for which you want to set the
appearance.
symbolvalue A value of the grSymbolType enumerated datatype (in
PowerBuilder) specifying the symbol for the data point.
For a list of values, see grSymbolType on page 490.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataStyle returns null.
Usage To change the appearance of a series, use SetSeriesStyle. The settings you make
for the series are the defaults for all data points in the series.
You can specify the appearance of a data point in the graph before the
application draws the graph. To do so, define a user event for
pbm_dwngraphcreate and call SetDataStyle in the script for that event. The
event pbm_dwngraphcreate is triggered just before a graph is created in a
DataWindow object.
SetDataTransparency
Description Sets the transparency percentage for a data point in a series in a DirectX 3D
graph.
Applies to DataWindow control
Syntax integer dwcontrol.SetDataTransparency ( string graphcontrol, integer
seriesnumber, int datapoint, int transparency)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
Argument Description
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
seriesnumber The number that identifies the series in which you want to set
the transparency value of a data point.
datapoint The number of the data point for which you want to set a
transparency value.
transparency Integer value for percent transparency. A value of 0 means that
the data point is opaque and a value of 100 means that it is
completely transparent.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetDataTransparency returns null.
Usage SetDataTransparency sets the transparency value of a data point in any DirectX
3D graph (those with 3D rendering).
Examples These statements set the transparency percentage to 50% for data point 3 in the
series named Costs in the graph gr_1 in the DataWindow control dw_employee:
integer SeriesNbr, ItemNbr, TransNbr
grObjectType clickedtype
// Get the number of the series and datapoint
clickedtype = this.ObjectAtPointer("gr_1", &
SeriesNbr, ItemNbr)
//The following statement sets Transparency to 50%
TransNbr = 50
dw_employee.SetDataTransparency("gr_1", &
SeriesNbr, ItemNbr, TransNbr)
See also FindSeries
GetDataTransparency
GetSeriesTransparency
SetSeriesTransparency
SetSeriesLabelling
Description Set the series label for a DirectX 3D graph.
Applies to DataWindow control
968 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesLabelling returns null.
Usage SetDataLabelling is used to indicate whether or not to label the series with the
data numbers for data in DirectX 3D Area, Bar, Col, or Line graphs. You
cannot use this method with DirectX 3D Pie graphs.
Examples These statements obtain the series and datapoint of graph gr_1 and the
DataWindow control dw_employee.
integer SeriesNbr, ItemNbr
string ls_SeriesName
grObjectType clickedtype
SetSeriesStyle
Specifies the appearance of a series in a graph. There are several syntaxes,
depending on what settings you want to change.
To Use
Set the series’ colors Syntax 1
Set the line style and width Syntax 2
Set the fill pattern for the series Syntax 3
Set the symbol for the series Syntax 4
Specify that the series is an overlay Syntax 5
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesStyle returns null.
Usage Data points in a series can have their own style settings. Settings made with
SetDataStyle set the style of individual data points and override series settings.
The graph stores style information for properties that do not apply to the
current graph type. For example, you can set the fill pattern in a
two-dimensional line graph or the line style in a bar graph, but that fill pattern
or line style will not be visible.
970 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
You can specify the appearance of a series in the graph before the application
draws the graph. To do so, define a user event for pbm_dwngraphcreate and
call SetSeriesStyle in the script for that event. The event pbm_dwngraphcreate
is triggered just before a graph is created in a DataWindow object.
Examples PowerBuilder This statement sets the background color of the series named
Salary in the graph gr_depts in the DataWindow control dw_employees to
black:
dw_employees.SetSeriesStyle("gr_depts", &
"Salary", Background!, 0)
These statements in the Clicked event of the graph control gr_product_data
coordinate line color between it and the graph gr_sales_data. The script stores
the line color for the series under the mouse pointer in the graph
gr_product_data in the variable line_color. Then it sets the line color for the
series Northeast in the graph gr_sales_data within the DataWindowcontrol
dw_sales to that color:
string SeriesName
integer SeriesNbr, Series_Point
long line_color
grObjectType MouseHit
MouseHit = This.ObjectAtPointer( &
SeriesNbr,Series_Point)
gr_product_data.GetSeriesStyle(SeriesName, &
LineColor!, line_color)
dw_sales.SetSeriesStyle("gr_sales_data", &
"Northeast", LineColor!, line_color)
END IF
See also GetDataStyle
GetSeriesStyle
SetSeriesStyle
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesStyle returns null.
Usage Data points in a series can have their own style settings. Settings made with
SetDataStyle set the style of individual data points and override series settings.
The graph stores style information for properties that do not apply to the
current graph type. For example, you can set the fill pattern in a
two-dimensional line graph or the line style in a bar graph, but that fill pattern
or line style will not be visible.
You can specify the appearance of a series in the graph before the application
draws the graph. To do so, define a user event for pbm_dwngraphcreate and
call SetSeriesStyle in the script for that event. The event pbm_dwngraphcreate
is triggered just before a graph is created in a DataWindow object.
Examples PowerBuilder This statement sets the line style and width for the series
named Costs in the graph gr_product_data in the DataWindow dw_prod:
dw_prod.SetSeriesStyle("gr_product_data", "Costs", &
Dot!, 5)
See also GetDataStyle
GetSeriesStyle
SetDataStyle
972 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesStyle returns null.
Usage Data points in a series can have their own style settings. Settings made with
SetDataStyle set the style of individual data points and override series settings.
The graph stores style information for properties that do not apply to the
current graph type. For example, you can set the fill pattern in a
two-dimensional line graph or the line style in a bar graph, but that fill pattern
or line style will not be visible.
You can specify the appearance of a series in the graph before the application
draws the graph. To do so, define a user event for pbm_dwngraphcreate and
call SetSeriesStyle in the script for that event. The event pbm_dwngraphcreate
is triggered just before a graph is created in a DataWindow object.
Examples PowerBuilder This statement sets the fill pattern used for the series named
Costs in the graph gr_computers in the DataWindow control dw_equipment to
Horizontal:
dw_equipment.SetSeriesStyle("gr_computers", &
"Costs", Horizontal!)
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesStyle returns null.
Usage Data points in a series can have their own style settings. Settings made with
SetDataStyle set the style of individual data points and override series settings.
The graph stores style information for properties that do not apply to the
current graph type. For example, you can set the fill pattern in a
two-dimensional line graph or the line style in a bar graph, but that fill pattern
or line style will not be visible.
You can specify the appearance of a series in the graph before the application
draws the graph. To do so, define a user event for pbm_dwngraphcreate and
call SetSeriesStyle in the script for that event. The event pbm_dwngraphcreate
is triggered just before a graph is created in a DataWindow object.
974 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Examples PowerBuilder This statement sets the symbol for the series named Costs in
the graph gr_computers in the DataWindow control dw_equipment to X:
dw_equipment.SetSeriesStyle("gr_computers", &
"Costs", SymbolX!)
See also GetDataStyle
GetSeriesStyle
SetDataStyle
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesStyle returns null.
Usage You can specify the appearance of a series in the graph before the application
draws the graph. To do so, define a user event for pbm_dwngraphcreate and
call SetSeriesStyle in the script for that event. The event pbm_dwngraphcreate
is triggered just before a graph is created in a DataWindow object.
dw_employees.GetSeriesStyle("gr_depts", &
SeriesName, overlay_style)
SetSeriesTransparency
Description Sets the transparency percentage of a series in a DirectX 3D type graph.
Applies to DataWindow control
Syntax integer dwcontrol.SetSeriesTransparency ( string graphcontrol, stringseries,
int transparency)
Argument Description
dwcontrol A reference to the DataWindow control containing the graph.
graphcontrol A string whose value is the name of the graph in the
DataWindow control.
series The string that identifies the series in which you want to set
the transparency value.
976 PowerBuilder
CHAPTER 10 Methods for Graphs in the DataWindow Control
Argument Description
transparency Integer value for percentage transparency. A value of 0 means
that the series is opaque and a value of 100 means that it is
completely transparent.
Return value Returns 1 if it succeeds and -1 if an error occurs. If any argument’s value is null,
SetSeriesTransparency returns null.
Usage SetSeriesTransparency sets the transparency value for a series in a DirectX 3D
graph (those with 3D rendering).
Examples These statements set the transparency percentage to 50% for the series named
Costs in the graph gr_1 in the DataWindow control dw_employee:
integer SeriesNbr, ItemNbr, TransNbr
string ls_SeriesName
grObjectType clickedtype
dw_employee.SetSeriesTransparency("gr_1", &
ls_SeriesName, TransNbr)
See also FindSeries
GetSeriesTransparency
GetDataTransparency
SetDataTransparency
978 PowerBuilder
Symbols
= (relational) 6
Numerics
3D (Checkbox.property) 209
3D (RadioButtons.property) 355
A
Abs function 29
absolute value 29
Accelerator property 179
AcceptText method
about 556
calling from Update 883
AccessibleDescription property 180
AccessibleName property 180
AccessibleRole enumerated datatype 480
AccessibleRole property 181
ACos function 29
action code 800
Action property 182
Activation property 184
addition operator 5
ADO Recordset 613
aggregate functions
Avg 33
Count 40
CrosstabMax 48
CrosstabMaxDec 50
CrosstabMin 51
CrosstabMinDec 53
CrosstabSum 54
CrosstabSumDec 55
CumulativePercent 56
CumulativeSum 58
First 70
Large 83
Last 85
980 PowerBuilder
retrieval 750
Arguments (Table.property) 384
Arguments (Table.sqlaction.property) 388
Arguments property 186
arithmetic operators 5
Asc function 30
AscA function 31
ASCII values, converting characters to 30, 31
ASin function 31
asterisks (*), in text patterns 95
ATan function 32
Attributes property 187
average value
columns 33
crosstabs 42, 46
Avg function 33
AutoErase (InkPic.property) 314
AutoHScroll (dddw.property) 231
AutoHScroll (ddlb.property) 235
AutoHScroll (Edit.property) 244
AutoHScroll (InkEdit.property) 311
AutoRetrieve (dddw.property) 231
AutoScale (Axis.property) 188
AutoSelect (Edit.property) 244
AutoSelect (InkEdit.property) 311
Autosize Height property 811
Autosize Height property for bands 199
AutoSkip (EditMask.property) 248
AutoVScroll (Edit.property) 244
AutoVScroll (InkEdit.property) 311
Axis properties 188
Axis property 187
axis, categories in graphs 917
B
BackColor (InkPic.property) 314
BackColor property 193
982 PowerBuilder
determining distance from 728, 729
determining style 620
setting style, for columns 802
Border (HTMLTable.property) 304
Border enumerated data type 483
Border property (DataWindow object)
examples of setting 448
Border property (DataWindow object), about 203
BorderStyle enumerated data type 484
bottom layer of DataWindow 834
Box border style 620
Box constant 483
brackets in text patterns 95
breaks 684
Browser (HTMLGen.property) 296
Brush properties 205
buffer, DataWindow
copying rows 756
editing items 677
moving rows 759
of updated row 680
retrieving data 638, 643, 647, 651, 653
returning modified rows 660
setting values of rows and columns 821, 832
sharing data 871, 875
Button controls, table of DataWindow object properties 164
ButtonClicked event 504
ButtonClicking event 506
Buttons (Print.Preview.property) 341
Buttons (Print.property) 342
C
cancellation
of edits 882
of printing 740
of row retrieval 576
CanUndo method 558
984 PowerBuilder
CharSet enumerated data type 485
CharSetANSI constant 485
CharSetArabic constant 485
CharSetDBCSJapanese constant 485
CharSetHebrew constant 485
CharSetUnicode constant 485
CheckBox property 209
child windows, retrieving data for 624
ClassName method 559
Clear method 560
clearing text 560
ClearValues method 561
Clicked event 507, 627, 628, 702
client control methods
DeletedCount 581
DeleteRow 583
GetColumn 630
GetItemStatus 649
GetRow 668
InsertRow 699
ModifiedCount 704
Retrieve 750
RowCount 754
SetColumn 806
SetItem 821
SetRow 841
SetSort 850
Sort 878
Update 883
ClientComputedFields (HTMLGen.property) 296
ClientEvents (HTMLGen.property) 296
ClientFormatting (HTMLGen.property) 296
ClientName property 210
ClientScriptable (HTMLGen.property) 296
ClientValidation (HTMLGen.property) 296
clipboard
986 PowerBuilder
when importing data from files 691
when inserting a string 695
Column.Count property 214
columns
average value 33
checking for null value 80
clicked 627
computed 854
counting null values, example 20
cumulative percent 56
cumulative sum 58
current 630, 631, 806
data 435
deleting values 561
determining border style 620
determining insertion point position 730
display value 93
first value 70
format of 632, 815
in DataWindow expressions 451
initializing 699
large value 83
last value 85
maximum value 96
median value 98
minimum value 102
modification status of 649, 827
most frequently occurring value 105
number of rows 40
pasting text into 726
percent of range 114
properties of 584, 588
range of data 439
reading from database 744
replacing text 856
retrieving dates from 638, 641
988 PowerBuilder
computed fields, expressions 17
concatenation operator 10
conditional expressions
DataWindow example 22, 23, 27
with Evaluate 14
conditional expressions, IF function 76
configuration settings, reading 119, 120
constants for DataWindows
about 479
list 480
Constructor event 510
ContentsAllowed property 214
Continuous constant 490
continuous line style
setting for data points 490
setting for series 972
controls
determining type 882
dragging 589
hiding 685, 720
moving 720
redrawing 835
resizing 749
conventions xvii
Copies (Print.property) 342
Copy method 565
copying
importing from clipboard 686
range of rows 755
to clipboard 565
CopyRTF method 567
Cos function 39
cosine 39
count
of data points in a series 919
of rows marked for deletion 581
990 PowerBuilder
currency, and rows 74
current
column 806
row 668, 790, 841
row and scrolling 777, 781, 782, 785
row before inserting 699
cursor
and current row 841
hand pointer 842
CustomPage.Length (Print.property) 342
CustomPage.Width (Print.property) 342
Cut method 575
cutting, to clipboard 575
D
Dash constants for graphs 490
dash line style
about 490, 972
setting for series 972
data
accessing all 444
block or range 439, 442
column 435, 437, 439
computed field 435, 437, 439
converting to type long 92
counting nulls 20
finding in DataWindow 597
importing 686
retrieving for child window or report 625
retrieving from buffers 638, 641, 643, 647, 651, 653
rows 444
selected 437, 445
sharing 871, 875
single items 435, 441
validating 864
data expressions
defined 448
992 PowerBuilder
real 122
string 142
time 147
Data.HTML property 221
Data.HTMLTable property 222
Data.Storage (Table.property) 384
Data.XHTML property 223
Data.XML property 225
Data.XMLDTD property 225
Data.XMLSchema property 226
Data.XMLWeb property 226
Data.XSLFO property 228
Database painter, validation rules 3
databases
canceling row retrieval 576
communicating with 860, 870
deleted rows 581
modified rows 704
preventing deletion on update 758
reading 744
reporting errors 580
retrieving data 638, 641, 643, 647, 651, 653, 750
returning error codes 578
SQL statement 673, 852, 853
updating 680, 883
DataColumn (dddw.property) 231
DataModified constant 486
DataModified item status
about 660
setting 749
DataObject property 228
DataStore methods
AcceptText 556
ClearValues 561
CopyRTF 567
Create 569
994 PowerBuilder
GetStateStatus 675
GetText 677
GetTrans 678
GetValidate 682
GetValue 683
GroupCalc 684
Import Clipboard 686
ImportFile 689
ImportString 693
InsertDocument 697, 699
IsSelected 702
ModifiedCount 704
Modify 705
ReselectRow 744
Reset 745
ResetTransObject 747
ResetUpdate 748
Retrieve 750
RowCount 754
RowsCopy 755
RowsDiscard 758
SaveAsAscii 765
SaveAsFormattedText 766
SetBorderStyle 802
SetChanges 804
SetColumn 806
SetDetailHeight 810
SetFilter 812
SetFormat 815
SetFullState 817
SetItem 821
SetItemStatus 827
SetPosition 834
SetRow 841
SetSort 850
SetSQLPreview 852
996 PowerBuilder
CumulativePercent in painter expressions 56
CumulativeSum in painter expressions 58
Date in painter expressions 61
DateTime in painter expressions 62
Day in painter expression 63
DayName in painter expressions 63
DayNumber in painter expressions 64
DaysAfter in painter expressions 65
Dec in painter expressions 66
Describe in painter expressions 67
Exp in painter expressions 67
Fact in painter expressions 68
Fill in painter expressions 68, 69
First in painter expressions 70
GetPaintDC in painter expressions 71
GetPaintRectHeight in painter expressions 72
GetPaintRectWidth in painter expressions 73
GetPaintRectX in painter expressions 73
GetPaintRectY in painter expressions 74
GetRow in painter expressions 74
Hour in painter expressions 75
If in painter expressions 76
in DataWindow expressions 451
Int in painter expressions 77
Integer in painter expressions 78
IsDate in painter expressions 78
IsNull in painter expressions 80
IsNumber in painter expressions 80
IsRowModified in painter expressions 81
IsRowNew in painter expressions 81
IsSelected in painter expressions 82
IsTime in painter expressions 83
Large in painter expressions 83
Last in painter expressions 85
Left in painter expressions 88, 89
LeftTrim in painter expressions 89
998 PowerBuilder
RowCount in painter expressions 130
RowHeight in painter expressions 131
Round in painter expressions 130
Second in painter expressions 132
SecondsAfter in painter expressions 132
Sign in painter expressions 133
Sin in painter expressions 133
Small in painter expressions 134
Space in painter expressions 136
Sqrt in painter expressions 136
StDev in painter expressions 137
StDevP in painter expressions 139
String in painter expressions 142
StripRTF in painter expressions 144
Sum in painter expressions 144
Tan in painter expressions 146
Time in painter expressions 147
Today in painter expressions 148
Trim in painter expressions 148
Truncate in painter expressions 149
Var in painter expressions 150
VarP in painter expressions 153
WordCap in painter expressions 155
Upper in painter expressions 149
Year in painter expressions 156
DataWindow expressions 1
as values for properties 448
defined 448
examples 452
format in painter versus code 451
in property expressions 469
DataWindow methods
AcceptText 556
CanUndo 558
ClassName 559
Clear 560
1000 PowerBuilder
GetContextService 632
GetFormat 632
GetFullState 635
GetItemDate 638
GetItemDateTime 641
GetItemDecimal 643
GetItemNumber 647
GetItemStatus 649
GetItemString 651
GetItemTime 653
GetMessageText 659
GetNextModified 660
GetObjectAtPointer 662
GetParent 663
GetRow 668
GetRowFromRowId 669
GetRowIdFromRow 671
GetSelectedRow 672
GetSQLPreview 673
GetSQLSelect 673
GetStateStatus 675
GetText 677
GetTrans 678
GetValidate 682
GetValue 683
GetUpdateStatus 680
GroupCalc 684
Hide 685
ImportClipboard 686
ImportFile 689
ImportString 693
InsertDocument 697
InsertRow 699
IsExpanded 700
IsSelected 702
LineCount 703
1002 PowerBuilder
SelectedStart 788
SelectedText 789
SelectRow 790
SelectText 791
SelectTreeNode 798
SetActionCode 800
SetBorderStyle 802
SetChanges 804
SetColumn 806
SetCultureFormat 809
SetDetailHeight 810
SetFilter 812
SetFormat 815
SetFullState 817
SetItem 821
SetItemStatus 827
SetItemTime 832
SetPosition 834
SetRedraw 835
SetRow 841
SetRowFocusIndicator 842
SetSort 850
SetSQLPreview 852
SetSQLSelect 853
SetTabOrder 855
SetText 856
SetTransObject 860
SetValidate 864
SetValue 866
SetWSObject 870
ShareData 871
ShareDataOff 875
Show 876
ShowHeadFoot 877
Sort 878
TextLine 880
1004 PowerBuilder
Year 156
DateJSFile (HTMLGen.property) 296
dates
checking string 78
converting to 61
DateTime data type 62
day of week 63, 64
determining interval 65
obtaining current 148
obtaining day of month 63
retrieving from buffer 638, 641
DateTime data type, retrieving from buffers 641
DateTime function 62
Day function 63
DayName function 63
DayNumber function 64
DaysAfter function 65
dbAlias property 229
dBASE constants 492
dBase file
importing data from 689, 693
saving to 762
DBCancel method 576
DBError event 511, 578, 580, 673, 680
DBErrorCode method 578
DBErrorMessage method 580
DBMS
setting connection parameters 859, 861
timestamp support 745
dbName property 230
DDCal_AlignRight (EditMask.property) 248
DDCal_BackColor (EditMask.property) 248
DDCalendar (EditMask.property) 248
DDCal_TextColor (EditMask.property) 248
DDCal_TitleBackColor (EditMask.property) 248
DDCal_TitleTextColor (EditMask.property) 248
1006 PowerBuilder
setting row height 811
Detail constant 483
Detail properties. See Bandname properties
Detail_Bottom_Margin property 239
Detail_Top_Margin property 239
diagonal fill pattern 487
Dialog (Criteria.property) 216
dialog, defining crosstabs 574
Diamond constant 487
diamond fill pattern 487
DIF constant 492
DIF file 762
DISCONNECT statement 858
DispAttr (Axis.property) 188
DispAttr font properties 240
display format
of columns 632, 815
display formats
applying to strings 142
DisplayColumn (dddw.property) 231
displayed value from code table 93
DisplayEveryNLabels (Axis.property) 188
DisplayOnly (Edit.property) 244
DisplayOnly (InkEdit.property) 311
DisplayType property 243
distributed applications
GetChanges method 621
GetFullState method 635
GetStateStatus method 675
SetChanges method 804
SetFullState method 817
division 105
division operator 5
DocumentName (Print.property) 342
dollar sign in text patterns 95
Dot constant 490
1008 PowerBuilder
determining insertion point position 730
obtaining value in 677
replacing text 743
selected text 786, 788
setting value of 856
Edit properties 244
EditChanged event 519
EditMask properties 248
EditMode (InkPic.property) 314
Elevation property 252
EllipseHeight property 252
EllipseWidth property 253
Enabled property 254
EncodeSelfLinkArgs (HTMLGen.property) 296
enumerated data types for DataWindows
about 479
list 480
EraserMode (InkPic.property) 314
EraserWidth (InkPic.property) 314
Error event 553
about 519
property expressions 466
error handling
DataWindow properties in JavaScript 476
Describe and Modify methods 459
property expressions 466
reporting on database 578, 580
update 680
escape character
backslash 456
tilde 454
escape keyword 7, 814
escape sequences 737
Evaluate function 12, 586
events
adding to queue 735
1010 PowerBuilder
F
Fact function 68
Factoid (InkEdit.property) 311
Factoid property 313
FailOnAnyConflict constant 486
FDiagonal constant 487
Filename (Print.property) 342
files, importing data from 689
Fill function 68
fill patterns 931, 965
FillA function 69
FillPattern enumerated data type 487
Filter (Table.property) 384
filter buffer
modified rows 704
resetting update flags 748
retrieving data from 638, 641, 643, 647, 651, 653
returning modified rows 660
sharing data 871, 875
Filter constant 485
Filter method 594
FilteredCount method 595
filters
applying 751
functions in expressions for 17
setting criteria 812
Find method 597
FindCategory method 920
FindGroupChange method 601
FindNext method 603
FindRequired method 604
FindSeries method 921
First function 70
FirstRowOnPage property 272
flags, update 748
focus
1012 PowerBuilder
GenerateDDDWFrames (HTMLGen.property) 296
GenerateHTMLForm method 612
GenerateJavaScript (HTMLGen.property) 296
GetBandAtPointer method 619
GetBorderStyle method 620
GetChanges method 621
GetChild method 624
GetClickedColumn method 627
GetClickedRow method 628
GetColumn method 630
GetColumnName method 631
GetContextService method 632
GetData method 921
GetDataPieExplode method 925
GetDataStyle function 928
GetDataTransparency method 937
GetDataValue method 938
GetFocus event 523
GetFormat method 632
GetFullState method 635
GetItemDate method 638
GetItemDateTime method 641
GetItemDecimal method 643
GetItemFormattedString method 646
GetItemNumber method 647
GetItemStatus method 649
GetItemString method 651
GetItemTime method 653
GetItemUnformattedString method 656
GetMessageText method 659
GetNextModified method 660
GetObjectAtPointer method 662
GetPaintDC function 71
GetPaintRectHeight function 72
GetPaintRectWidth function 73
GetPaintRectX function 73
1014 PowerBuilder
GetSeriesTransparency 952
ObjectAtPointer 953
Reset 955
ResetDataColors 956
SaveAs 957
SeriesCount 958
SeriesName 959
SetDataPieExplode 961
SetDataStyle 962
SetDataTransparency 967
SetSeriesStyle 970
SetSeriesTransparency 976
GraphCreate event 524
graphics
properties of 584
under pointer 662
graphs, overlay 946
GraphType property 279, 358
grColorType enumerated data type 488
grDataType enumerated data type 488, 922
greater than operator 6
greater than or equal to operator 6
Grid.ColumnMove property 279
Grid.Lines property 280
GridColumns (Table.property) 384
grObjectType enumerated data type 489
Group keyword, table of DataWindow object properties 171
GroupBox controls, table of DataWindow object properties 170
GroupBy property 281
GroupCalc method 684
groups
filtering 595
recalculating levels 684
sorting 879
grResetType enumerated data type 956
grSymbolType enumerated data type 490
1016 PowerBuilder
HScrollBar (Edit.property) 244
HScrollBar (InkEdit.property) 311
HSplitScroll (dddw.property) 231
HTextAlign property 292
HTML generation properties 296, 417
HTML link generation properties 292
HTMLContextApplied event 524
HTMLDW property 294
HTMLGen properties 296
HTMLTable constant 492
HTMLTable properties 304
HTMLVersion (HTMLGen.property) 296
J
ID property 305
Identity property 305
If function 76
IgnorePressure (Ink.property) 309
image
in computed field 35
setting row focus indicator 842
Import.XML.Trace property 306
Import.XML.TraceFile property 307
Import.XML.UseTemplate property 308
ImportClipboard method 686
ImportFile method 689
importing, data 689, 693
ImportString method 693
IN operator 6
Indent (Tree.property) 400
InfoMaker functions
Len 90
Mid 102
Pos 118
Right 128
Initial property 309
initialization files, reading 119, 120
1018 PowerBuilder
ItemError event 527, 557, 677
ItemFocusChanged event 529
items
editing 677
setting value of 866
Justify constant 483
K
Key property 318
keyboard, selecting text 566
KeyClause property 319
KeyDown event 530
L
Label (Axis.property) 188
Label properties 319
label, under pointer 662
LabelDispAttr (Axis.property) 188
LabelDispAttr font properties. See DispAttr font properties
language escape character, versus DataWindow escape character 456
Large function 83
Last function 85
LastRowOnPage property 322
Left constant 483
Left function 88
LeftA function 89
Left_Margin property 322
LeftText (Checkbox.property) 209
LeftText (RadioButtons.property) 355
LeftTrim function 89
Legend property 322
Legend.DispAttr font properties. See DispAttr font properties
Len function 90
LenA function 90
length
selected text 786
string 90
less than operator 6
1020 PowerBuilder
LogTen function 92
Long function 92
LongParm, posting events 736
longs, converting to 92
LookUpDisplay function 93
loops, avoiding infinite 807, 841, 885
LoseFocus event 530, 557
Lotus 1-2-3 format 762
Lower function 93
lowercase 93
Lowered constant 483
M
MajorDivisions (Axis.property) 188
MajorGridLine (Axis.property) 188
MajorTic (Axis.property) 188
Margin (Print.property) 342
Mask (EditMask.property) 248
masks, matching 94
Match function 94
Max function 96
maximum value
below a limit 77
columns 96
crosstabs 48, 50
MaximumValue (Axis.property) 188
Median function 98
Message.Title property 325
messages
database error 580
retrieving text 659
MessageText event 531
metacharacters 94
MetaDataType enumerated datatype 491
Method (Table.sqlaction.property) 388
Microsoft Multiplan format 762
Mid function 101
1022 PowerBuilder
Nest_Arguments property 328
nested objects, property expressions 471
Nested property 329
nested reports
associated row number 473
property expression syntax 471
nested strings
about 454
JavaScript 456
PowerBuilder 454
NetscapeLayers (HTMLGen.property) 296
New constant 486
New item status, resetting 749
newline character in PowerBuilder 455
NewModified constant 486
NewModified item status
resetting 749
returning next row with 660
NewPage property 329, 330
NilIsNull (dddw.property) 231
NilIsNull (ddlb.property) 235
NilIsNull (Edit.property) 244
NilIsNull (InkEdit.property) 311
NoBorder border style 620
NoBorder constant 483
NoSymbol constant 490
NOT BETWEEN operator 6, 7
not equal operator 6
NOT IN operator 6, 8
NOT LIKE operator 6
NOT operator 6, 9
NotModified constant 486
NotModified item status, resetting 749
Now function 108
NoWrap (HTMLTable.property) 304
NoUserPrompt property 330
1024 PowerBuilder
Rand 122
Round 130
Sign 133
Sin 133
Sqrt 136
Tan 146
Truncate 149
numeric values, property expressions 461
O
Object property
data expressions 427
in property expressions 460
ObjectAtPointer method 953
ObjectName (HTMLGen.property) 296
objects
changing position 834
deleting and adding 718
determining type 882
hiding 685
naming 586
parent object 663
posting events 735
redrawing 835
specifying as a column 586
triggering events 881
under pointer 662, 953
Objects property 331
Off (Checkbox.property) 209
Off constant 492
OLE Object controls, table of DataWindow object properties 172
OLE.Client properties 332
OLEActivate method 721
OLEClass property 332
On (Checkbox.property) 209
OneTripEx method 722
operators
1026 PowerBuilder
Paint function 113
Paper (Print.property) 342
parameters, setting in transaction object 859, 861
parsing strings 88, 89, 117, 118
Password (Edit.property) 244
Paste method 726
PasteRTF method 727
pasting, from clipboard 726
pattern matching 94
pbm_dwngraphcreate event 970
PBSELECT statement 585, 673
Pen properties 334
Pentip (Ink.property) 309
Percent function 114
PercentWidth (dddw.property) 231
performance
and SetTrans method 859
and SetTransObject method 861
and transaction objects 748
DWObject variables 463
getting DataWindow data 426
Modify method versus property expression 458
period in text patterns 95
Perspective property 336
Pi function 117
pictures
as row focus indicators 843
in computed fields 25, 35
PictureSizeMode (InkPic.property) 314
pie graphs 925, 961
Pie.DispAttr font properties. See DispAttr font properties
PlotNullData property 339
plus sign in text patterns 95
pointer
determining distance from edge 728
distance from top 729
1028 PowerBuilder
Print 736
PrintCancel 740
Print properties 342
Print.Preview properties 341
PrintCancel method 740
PrintEnd event 534
Printer property 350
PrinterName (Print.property) 342
PrintMarginChange event 535
PrintPage event 536
PrintPreview display 706
PrintStart event 537
Procedure (Table.property) 384
ProcessEnter event 537
Processing property 351
profile files, reading 119, 120
ProfileInt function 119
ProfileString function 120
Prompt (Print.property) 342
Prompt For Criteria 706, 715
properties
about 447
conditional values using expressions 450
DataWindow 709
DataWindow expressions as property values 448
examples of setting 448
in expressions 67
null value 459
reporting values of 584
setting width and height 749
syntax 585
values in code 448, 450
values in painter 448, 449
property expressions
Any data type 461
boolean values 461
1030 PowerBuilder
InsertRow 699
ModifiedCount 704
Modify 705
ReselectRow 744
Reset 745
ResetUpdate 748
Retrieve 750
RowCount 754
RowsDiscard 758
SaveAs 762
SetColumn 806
SetDetailHeight 810
SetFilter 812
SetFormat 815
SetItem 821
SetItemStatus 827
SetItemTime 832
SetPosition 834
SetRow 841
SetSort 850
SetSQLSelect 853
SetValidate 864
SetValue 866
Sort 878
Update 883
PublishPath (CSSGen.property) 217
PublishPath (JSGen.property) 317
PublishPath (XMLGen.property) 418
PublishPath (XSLTGen.property) 420
Q
Quality (Print.property) 342
Query mode 706, 715
QueryClear property 353
QueryMode property 354
QuerySort property 354
question mark
1032 PowerBuilder
Required (Criteria.property) 216
Required (dddw.property) 231
Required (ddlb.property) 235
Required (Edit.property) 244
Required (EditMask.property) 248
Required (InkEdit.property) 311
ReselectRow method 744
reset flag argument 884
Reset method 745, 955
ResetDataColors method 956
ResetInk method 746
ResetPageCount property 360
ResetTransObject method 747
ResetUpdate method 748
Resize event 538
Resize method 749
Resizeable property 360
ResizeBorder constant 483
ResourceBase (CSSGen.property) 217
ResourceBase (HTMLGen.property) 296
ResourceBase (JSGen.property) 317
ResourceBase (XMLGen.property) 418
ResourceBase (XSLTGen.property) 420
Retrieve method 750
Retrieve Only As Needed 706, 717
Retrieve property 361
RETRIEVE statement 861
Retrieve.AsNeeded property 361
RetrieveEnd event 539
RetrieveRow event 540, 577
RetrieveStart event 541, 751
return codes for events 501
return count 751
return values, SQL 861
RGB function 126
rich text
1034 PowerBuilder
Row.Resize property 369
RowCount function 130
RowCount method 754
RowFocusChanged event 543
RowFocusChanging event 544
RowFocusInd enumerated data type 492
RowHeight function 131
Round function 130
RoundRectangle controls, table of DataWindow object properties 173, 174
RoundTo (Axis.property) 188
RoundToUnit (Axis.property) 188
rows
and bands 74
canceling retrieval 576
checking if modified 81
checking if new 81
clicked 628
copying 755
data 444
deleting 581, 583
determining insertion point position 730
displaying in DataWindow 594
getting current 25, 74, 668
getting from ID 669
getting ID 671
height 131
hiding 811
importing 686, 689, 693
in primary buffer 130, 754
inserting 699
modification status 81, 649, 660, 680, 704, 827
moving 759
refreshing timestamp columns 744
replacing text 856
reporting number not displayed 595
retrieving data from 638, 641, 643, 647, 651, 653
1036 PowerBuilder
Scroll method 771
ScrollHorizontal event 546
scrolling methods
Scroll 771
ScrollNextPage 775
ScrollNextRow 777
ScrollPriorPage 780
ScrollPriorRow 782
ScrollToRow 699, 785
ScrollNextPage method 775
ScrollNextRow method 777
ScrollPriorPage method 780
ScrollPriorRow method 782
ScrollToRow method 785
ScrollVertical event 547
searching
rich text 603
rows 597
Second function 132
secondary DataWindow control 872, 875
SecondaryLine (Axis.property) 188
SecondsAfter function 132
Select (Table.property) 384
selected data 437, 445
Selected property 370
Selected.Data property 371
Selected.Mouse property 371
SelectedLength method 786
SelectedLine method 787
SelectedStart method 788
SelectedText method 789
selection, of rows 82, 702
SelectNodeByMouse (Tree.property) 400
SelectRow method 790
SelectText method
about 791
1038 PowerBuilder
SetItemNumberByColNum method 826
SetItemStatus method 827
SetItemStringByColNum method 831
SetItemTime method 832
SetItemTimeByColNum method 832
SetPosition method 834
SetRedraw method 835
SetRichTextAlign method 836
SetRichTextColor method 837
SetRichTextFaceName method 838
SetRichTextSize method 839
SetRichTextStyle method 840
SetRow method 841
SetRowFocusIndicator method 842
SetSeriesStyle method 970
SetSeriesTransparency method 976
SetSort method 850
SetSQLPreview method 852
SetSQLSelect method 853
SetTabOrder method 855
SetText method 856
SetTransObject method 860
SetValidate method 864
SetValue method 866
SetWSObject method 870
shade
data points 963
series 942, 970
Shade constant 488
ShadeBackEdge (Axis.property) 188
ShadeColor property 372
ShadowBox border style 620
ShadowBox constant 483
ShareData method 871
ShareDataOff method 875
sharing data 871
1040 PowerBuilder
Spacing property 377
Sparse property 378
special characters in strings 454
Specify filter dialog box 813
Specify Sort Columns dialog 851
Spin (EditMask.property) 248
SpinIncr (EditMask.property) 248
SpinRange (EditMask.property) 248
SQL Anywhere 715
SQL statements
and modification status 649
and SetTrans method 858
and SetTransObject method 861
and Update method 884
changing during execution 852, 853
CONNECT 751
modifying WHERE clause of SELECT 706
previewing 673
saving DataWindow SQL 762
SELECT and sharing data 871
SELECT, obtaining 585
specifying retrieval arguments 750
SQLCA 861
SQLInsert constant 492
SQLPreview event 548, 673, 680, 852
SQLPreviewFunction enumerated data type 494
SQLPreviewType enumerated data type 495
SQLSelect (Table.property) 384
Sqrt function 136
Square constant 487
square fill pattern 487
square root 136
stack faults, avoiding 807, 885
standard deviation 137, 139
StateIconAlignMode (Tree.property) 400
StaticMode (Crosstab.property) 217
1042 PowerBuilder
comparing 8
concatenating 10
converting 61, 92, 109, 122
deleting leading spaces 89
detecting contents 78, 80, 83
extracting 101, 102
finding substrings 117, 118
importing data from 693
lowercase 93
retrieving from buffers 651
uppercase 149
StripRTF function 144
structure of DataWindow 585
Style (Edit.property) 244
Style (Pen.property) 334
Style keyword, table of DataWindow object properties 176
style, border 620
StyleBox constant 484
StyleLowered constant 484
StyleRaised constant 484
StyleShadowBox constant 484
StyleSheet (HTMLTable.property) 304
substring
extracting 101, 102
finding 117, 118
replacing 124, 125
subtraction operator 5
Sum function 144
Summary properties. See Bandname properties
summary, moving objects to 834
Suppress (Bandname.property) 197
SuppressEventProcessing property 380
SYLK constant 492
Symbol constants for graphs 490
symbol types in graphs, for data points 931, 965, 966
Syntax property 381
1044 PowerBuilder
finding substrings 117, 118
importing data from string 693
metacharacters 94
obtaining current line 880
on clipboard 566, 575
pasting over 726
replacing 743, 856
restoring 882
selecting 786, 789, 791
setting color of 126
Text (Checkbox.property) 209
Text constant 492
Text controls, table of DataWindow object properties 177
text file
importing data from 689
saving to 762, 957
Text property 393
TextLine method 880
Texture properties 336
tilde character
about 708
escape sequence in PowerBuilder 455
in nested strings 454, 456
SpinRange property 455, 457
time
checking string 83
converting to data type 147
DateTime data type 62
minutes 104
now 108
relative 123
retrieving data from 641
retrieving from buffers 653
seconds 132
Time function 147
Timer_Interval property 393
1046 PowerBuilder
Collapse 561
CollapseAll 562
CollapseAllChildren 563
CollapseLevel 564
Expand 590
ExpandAll 591
ExpandAllChildren 592
ExpandLevel 593
IsExpanded 700
SelectTreeNode 798
TrigEvent enumerated data type 735
TriggerEvent method 881
Trim function 148
Truncate function 149
truth table for boolean expressions 9
Type (Table.sqlaction.property) 388
Type property 404
TypeOf method 882
Types of graphs, constants 489
typographical conventions xvii
W
ValidateCode (Edit.property) 244
Validation property 407
validation rules
and SetItem method 822
checking on update 884
obtaining 682
setting 864
validation rules, and expressions 17
ValidationMsg property 408
ValueIsHTML (HTML.property) 292
values
checking for null 80
data points 938
detecting numeric 80
edit control 677
1048 PowerBuilder
Undo
providing capability 761
testing 559
Undo method 882
Units property 406
units, distance from edge 728
WordCap function 155
WordParm field, posting events 736
Update (Table.property) 384
update flags 748
Update method 883
Update property 406
update status
after row copy 756
and Update method 649
changing 706, 827
resetting flags 748
UpdateEnd event 552
UpdateKeyInPlace (Table.property) 384
UpdateStart event 553
UpdateTable (Table.property) 384
UpdateWhere (Table.property) 384
UpdateWhere (Table.sqlaction.property) 388
Upper function 149
uppercase 149
VScrollBar (dddw.property) 231
VScrollBar (ddlb.property) 235
VScrollBar (Edit.property) 244
VScrollBar (InkEdit.property) 311
UseAsBorder (dddw.property) 231
UseAsBorder (ddlb.property) 235
UseEllipsis (Edit.property) 247
UseEllipsis (EditMask.property) 251
UseFormat (EditMask.property) 248
UseMouseForInput (InkEdit.property) 311
user events, pbm_dwngraphcreate 970
1050 PowerBuilder