ADM2 Reference
ADM2 Reference
ADM2 Reference
ADM 2 Reference
©
2002 Progress Software Corporation. All rights reserved.
Progress® software products are copyrighted and all rights are reserved by Progress Software Corporation. This manual is also
copyrighted and all rights are reserved. This manual may not, in whole or in part, be copied, photocopied, translated, or reduced
to any electronic medium or machine-readable form without prior consent, in writing, from Progress Software Corporation.
The information in this manual is subject to change without notice, and Progress Software Corporation assumes no responsibility
for any errors that may appear in this document.
The references in this manual to specific platforms supported are subject to change.
Progress, Powered by Progress, Progress Fast Track, Progress Profiles, Partners in Progress, Partners en Progress, Progress en
Partners, Progress in Progress, P.I.P., Progress Results, ProVision, ProCare, ProtoSpeed, SmartBeans, SpeedScript, and
WebSpeed are registered trademarks of Progress Software Corporation in the U.S. and other countries. A Data Center of Your
Very Own, Allegrix, Apptivity, AppsAlive, AppServer, ASPen, ASP-in-a-Box, Empowerment Center, Fathom, Future Proof,
IntelliStream, OpenEdge, PeerDirect, POSSE, POSSENET, Progress Dynamics, Progress Software Developers Network,
SectorAlliance, SmartObjects and WebClient are trademarks or service marks of Progress Software Corporation in the U.S. and
other countries.
SonicMQ is a registered trademark of Sonic Software Corporation in the U.S. and other countries.
Vermont Views is a registered trademark of Vermont Creative Software in the U.S. and other countries.
Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries.
Any other trademarks and/or service marks contained herein are the property of their respective owners.
Progress Software Corporation acknowledges the use of Raster Imaging Technology copyrighted by Snowbound Software 1993-
1997, the IBM XML Parser for Java Edition, and software developed by the Apache Software Foundation (http://
www.apache.org/).
© IBM Corporation 1998-1999. Allrights reserved. U.S. Government Users Restricted Rights — Use, duplication or disclosure
restricted by GSA ADP Schedule Contract with IBM Corp.
Progress is a registered trademark of Progress Software Corporation and is used by IBM Corporation in the mark Progress/400
under license. Progress/400 AND 400® are trademarks of IBM Corporation and are used by Progress Software Corporation
under license.
The implementation of the MD5 Message-Digest Algorithm used by Progress Software Corporation in certain of its products is
derived from the RSA Data Security, Inc. MD5 Message-Digest Algorithm.
May 2002
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Audience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Organization Of This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii
How To Use This Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
Typographical Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
Syntax Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
Example Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv
Progress Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxvii
Other Useful Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix
Getting Started . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxix
Development Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xl
Reporting Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xli
4GL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii
Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliii
DataServers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliii
SQL-89/Open Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv
SQL-92 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xliv
Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv
WebSpeed. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlv
Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlvi
iv
Contents
actionEnableRulex (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
actionGroups (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
actionHideRule (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
actionHideRuleX (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
actionImage (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
actionImageAlternate (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
actionImageAlternateRule (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
actionInitCode (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
actionIsMenu (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
actionIsParent (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
actionLabel (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
actionLabel (toolbar.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
actionLink (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
actionLogicalObjectName (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
actionName (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
actionOnChoose (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
actionParameter (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
actionParent (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
actionPhysicalObjectName (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
actionPublishCreate (toolbar.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
actionRefresh (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
actionRunAttribute (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
actionSecondImage (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
actionSecuredToken (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
actionSubstituteProperty (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
actionTarget (toolbar.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
actionTooltip (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
actionTooltip (toolbar.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
actionType (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
activeTarget (panel.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
addDataTarget (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
addLink (smart.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
addMessage (smart.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
addNavigationSource (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
addNode (treeview.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
addQueryWhere (query.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
addQueryWhere (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
addRecord (browser.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
addRecord (datavis.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
addRecord (viewer.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
addRow (data.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
addRow (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
adjustActions (toolbar.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
adjustTabOrder (smart.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
anyKey (combo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
v
Contents
anyKey (lookup.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
anyKey (select.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
anyMessage (smart.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
appendContainedObjects (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
applyCellEntry (browser.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
applyEntry (browser.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
applyEntry (smart.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
applyFilter (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
applyLayout (visual.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
assignActionAccelerator (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
assignActionAccessType (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
assignActionAlternateImageRule (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
assignActionCaption (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
assignActionDescription (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
assignActionDisableRule (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
assignActionEnableRule (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
assignActionHideRule (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
assignActionImage (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
assignActionLabel (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
assignActionName (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
assignActionOrder (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
assignActionParent (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
assignActionSecondImage (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
assignActionTooltip (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
assignAttribute (xml.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
assignColumn (action.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
assignColumnColumnLabel (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
assignColumnFormat (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
assignColumnFormat (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
assignColumnHelp (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
assignColumnHelpId (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
assignColumnLabel (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
assignColumnLabel (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
assignColumnOperatorStyle (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
assignColumnPrivateData (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
assignColumnTooltip (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
assignColumnValExp (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
assignColumnValMsg (dataextcols.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
assignColumnWidth (filter.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
assignContainedProperties (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
assignCurrentMappedObject (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
assignDBRow (query.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
assignLinkProperty (smart.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
assignMaxGuess (browser.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
assignMaxGuess (sbo.p) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
vi
Contents
vii
Contents
viii
Contents
ix
Contents
x
Contents
xi
Contents
xii
Contents
xiii
Contents
xiv
Contents
xv
Contents
xvi
Contents
xvii
Contents
xviii
Contents
xix
Contents
xx
Contents
xxi
Contents
xxii
Contents
xxiii
Contents
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index–1
xxiv
Contents
Figures
Figure 1: ADM2 Class Tree Diagram Showing Inheritance Relationships . . . . . 4
Figure 2: Commented Source Code Of GET Pseudo-function . . . . . . . . . . . . . . 32
xxv
Contents
Tables
Table 1: SmartObjects and Their Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Table 2: Public Properties By Name: A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Table 3: Public Properties By Name: B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Table 4: Public Properties By Name: C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 5: Public Properties By Name: D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 6: Public Properties By Name: E . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Table 7: Public Properties By Name: F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 8: Public Properties By Name: G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 9: Public Properties By Name: H . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 10: Public Properties By Name: I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 11: Public Properties By Name: J . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Table 12: Public Properties By Name: K . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Table 13: Public Properties By Name: L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Table 14: Public Properties By Name: M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Table 15: Public Properties By Name: N . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Table 16: Public Properties By Name: O . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Table 17: Public Properties By Name: P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Table 18: Public Properties By Name: Q . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Table 19: Public Properties By Name: R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Table 20: Public Properties By Name: S . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Table 21: Public Properties By Name: T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Table 22: Public Properties By Name: U . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Table 23: Public Properties By Name: V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Table 24: Public Properties By Name: W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
xxvi
Preface
Purpose
This manual is an API reference manual for the Progress Application Development Model
(ADM2). It describes the procedures and functions that define the default behavior of Progress
SmartObjects.
Audience
This book is intended for Progress ADM2 application developers. It presumes a reasonably
thorough knowledge of the underlying 4GL language and Progress ProVision™.
Provides a brief discussion of the ADM architecture, illustration of the class hierarchy tree,
each of the current SmartObjects and the files that define them, the two syntaxes for
property reads and writes, and tables showing properties defined in each of the class files.
Offers a brief description, including calling sequence, of each of the routines in the various
super-procedure files. The listing includes the get/set property routines as a convenience,
although their names can virtually always be predicted from the name of the property on
which they operate.
Progress ADM 2 Reference
Provides a brief introduction to the SmartObjects for WebSpeed and the files that define
them.
Gives a brief description, including calling sequence, of each of the routines in the various
WebSpeed super-procedure files.
“Properties Glossary”
Provides a listing of the ADM2 properties that can be accessed with the {get} and {set}
pseudo-functions.
Parameters:
Parameter description.
Returns: return_value
Notes:
Examples:
xxviii
Preface
Typographical Conventions
This manual uses the following typographical conventions:
– New terms
– Code examples
– System output
• Small capitals are used for Progress key functions and generic keyboard keys.
END-ERROR, GET, GO
ALT, CTRL, SPACEBAR, TAB
• When you have to press a combination of keys, they are joined by a dash. You press and
hold down the first key, then press the second key.
CTRL-X
• When you have to press and release one key, then press another key, the key names are
separated with a space.
ESCAPE H
ESCAPE CURSOR-LEFT
xxix
Progress ADM 2 Reference
Syntax Notation
The syntax for each component follows a set of conventions:
• Uppercase words are keywords. Although they are always shown in uppercase, you can
use either uppercase or lowercase when using them in a procedure.
SYNTAX
• Italics identify options or arguments that you must supply. These options can be defined
as part of the syntax or in a separate syntax identified by the name in italics. In the
ACCUM function above, the aggregate and expression options are defined with the
syntax for the ACCUM function in the Progress Language Reference.
• You must end all statements (except for DO, FOR, FUNCTION, PROCEDURE, and
REPEAT) with a period. DO, FOR, FUNCTION, PROCEDURE, and REPEAT
statements can end with either a period or a colon, as in this example:
• Square brackets ([ ]) around an item indicate that the item, or a choice of one of the
enclosed items, is optional.
SYNTAX
In some instances, square brackets are not a syntax notation, but part of the language.
xxx
Preface
For example, this syntax for the INITIAL option uses brackets to bound an initial value
list for an array variable definition. In these cases, normal text brackets ( [ ] ) are used:
SYNTAX
• Braces ({ }) around an item indicate that the item, or a choice of one of the enclosed
items, is required.
In this example, you must specify the items BY and expression and can optionally specify
the item DESCENDING, in that order:
SYNTAX
{ BY expression [ DESCENDING ] }
In some cases, braces are not a syntax notation, but part of the language.
For example, a called external procedure must use braces when referencing arguments
passed by a calling procedure. In these cases, normal text braces ( { } ) are used:
SYNTAX
{ &argument-name }
In this example, EACH, FIRST, and LAST are optional, but you can only choose one:
SYNTAX
xxxi
Progress ADM 2 Reference
SYNTAX
• Ellipses (...) indicate that you can choose one or more of the preceding items. If a group
of items is enclosed in braces and followed by ellipses, you must choose one or more of
those items. If a group of items is enclosed in brackets and followed by ellipses, you can
optionally choose one or more of those items.
In this example, you must include two expressions, but you can optionally include more.
Note that each subsequent expression must be preceded by a comma:
SYNTAX
In this example, you must specify MESSAGE, then at least one of expression or SKIP, but
any additional number of expression or SKIP is allowed:
SYNTAX
In this example, you must specify {include-file, then optionally any number of argument
or &argument-name = "argument-value", and then terminate with }:
SYNTAX
{ include-file
[ argument | &argument-name = "argument-value" ] ... }
• In some examples, the syntax is too long to place in one horizontal row. In such cases,
optional items appear individually bracketed in multiple rows in order, left-to-right and
top-to-bottom. This order generally applies, unless otherwise specified. Required items
also appear on multiple rows in the required order, left-to-right and top-to-bottom. In cases
where grouping and order might otherwise be ambiguous, braced (required) or bracketed
(optional) groups clarify the groupings.
xxxii
Preface
SYNTAX
In this example, ASSIGN requires one of two choices: either one or more of field, or one
of record. Other options available with either field or record are grouped with braces and
brackets. The open and close braces indicate the required order of options:
SYNTAX
xxxiii
Progress ADM 2 Reference
Example Procedures
This manual provides numerous example procedures that illustrate syntax and concepts.
Examples use the following conventions:
• If they are available online, the name of the procedure appears above the left corner of the
box and starts with a prefix associated with the manual that references it, as follows:
If the name does not start with a listed prefix, the procedure is not available online.
• If they are not available online, they compile as shown, but might not execute for lack of
completeness.
1 ♦ From the Control Panel or the Progress Program Group, double-click the Proenv icon.
Running Proenv sets the DLC environment variable to the directory where you installed
Progress (by default, C:\Program Files\Progress). Proenv also adds the DLC
environment variable to your PATH environment variable and adds the bin directory
(PATH=%DLC%;%DLC%\bin;%PATH%).
xxxiv
Preface
3 ♦ Enter the following command at the proenv prompt to create the text file prodoc.txt
which contains the file listing for the prodoc.pl library.
1 ♦ From the Control Panel or the Progress Program Group, double-click the Proenv icon.
Running Proenv sets the DLC environment variable to the directory where you installed
Progress (by default, C:\Program Files\Progress). Proenv also adds the DLC
environment variable to your PATH environment variable and adds the bin directory
(PATH=%DLC%;%DLC%\bin;%PATH%).
3 ♦ Enter the following command at the proenv prompt to create the prodoc directory in your
Progress working directory (by default, C:\Progress\Wrk):
MKDIR prodoc
MKDIR prodoc\langref
5 ♦ To extract all examples in a procedure library directory, run the PROLIB utility. Note that
you must use double quotes because “Program Files” contains an embedded space:
xxxv
Progress ADM 2 Reference
To extract one example, run PROLIB and specify the file that you want to extract as it is
stored in the procedure library:
install-dir/dlc/bin/proenv
Running proenv sets the DLC environment variable to the directory where you installed
Progress (by default, /usr/dlc). The proenv utility also adds the bin directory under the
DLC environment variable to your PATH environment variable
(PATH=$DLC/bin:$PATH).
2 ♦ At the proenv prompt, create the prodoc directory in your Progress working directory:
mkdir prodoc
mkdir prodoc/proghand
4 ♦ To extract all examples in a procedure library directory, run the PROLIB utility:
xxxvi
Preface
To extract one example, run PROLIB and specify the file that you want to extract as it is
stored in the procedure library:
Progress Messages
Progress displays several types of messages to inform you of routine and unusual occurrences:
• Compile messages inform you of errors found while Progress is reading and analyzing a
procedure prior to running it (for example, if a procedure references a table name that is
not defined in the database).
• Startup messages inform you of unusual conditions detected while Progress is getting
ready to execute (for example, if you entered an invalid startup parameter).
• Continues execution, subject to the error-processing actions that you specify, or that are
assumed, as part of the procedure. This is the most common action taken following
execution messages.
• Returns to the Progress Procedure Editor so that you can correct an error in a procedure.
This is the usual action taken following compiler messages.
• Halts processing of a procedure and returns immediately to the Procedure Editor. This
does not happen often.
Progress messages end with a message number in parentheses. In this example, the message
number is 200:
xxxvii
Progress ADM 2 Reference
On the Windows platform, use Progress online help to get more information about Progress
messages. Many Progress tools include the following Help menu options to provide information
about messages:
• Choose Help→Messages, then enter the message number to display a description of any
Progress message. (If you encounter an error that terminates Progress, make a note of the
message number before restarting.)
On the UNIX platfrom, use the Progress PRO command to start a single-user mode character
Progress client session and view a brief description of a message by providing its number.
Follow these steps:
install-dir/dlc/bin/pro
3 ♦ Type the message number, and press ENTER. Details about that message number appear.
4 ♦ Press F4 to close the message, press F3 to access the Procedure Editor menu, and choose
File→Exit.
xxxviii
Preface
Getting Started
Progress Electronic Documentation Installation and Configuration Guide (Hard copy only)
A booklet that describes how to install the Progress EDOC viewer and collection on UNIX
and Windows.
A manual that describes how to install and set up Progress Version 9.1 for the UNIX
operating system.
A manual that describes how to install and set up Progress Version 9.1 for all supported
Windows and Citrix MetaFrame operating systems.
A bulletin that provides a list of new and changed features by release, a list and description
of changes to documentation by release, and critical information about product changes
that might require changes to existing code and configurations.
This bulletin also provides information about where to go for detailed information about
the new and changed features and documentation.
xxxix
Progress ADM 2 Reference
Progress Language Tutorial for Windows and Progress Language Tutorial for Character
Platform-specific tutorials designed for new Progress users. The tutorials use a
step-by-step approach to explore the Progress application development environment using
the 4GL.
Progress Master Glossary for Windows and Progress Master Glossary for Character (EDOC
only)
Platform-specific master glossaries for the Progress documentation set. These books are
in electronic format only.
Progress Master Index and Glossary for Windows and Progress Master Index and Glossary for
Character (Hard copy only)
Platform-specific master indexes and glossaries for the Progress hard-copy documentation
set.
A reference manual that describes the Progress startup and shutdown commands that you
use at the command line, and the startup parameters that you use for Progress processes.
This guide also provides information about parameter usage and parameter files.
A booklet that explains how Progress software and media are packaged. An icon-based
map groups the documentation by functionality, providing an overall view of the
documentation set. Welcome to Progress also provides descriptions of the various services
Progress Software Corporation offers.
Development Tools
Progress ADM 2 Guide
A programmer’s guide to using the Progress AppBuilder visual layout editor. AppBuilder
is a Rapid Application Development (RAD) tool that can significantly reduce the time and
effort required to create Progress applications.
xl
Preface
Progress Basic Database Tools (Character only; information for Windows is in online help)
A guide for the Progress Database Administration tools, such as the Data Dictionary.
Progress Basic Development Tools (Character only; information for Windows is in online help)
A guide for the Progress development toolset, including the Progress Procedure Editor and
the Application Compiler.
A guide for the Progress Application Debugger. The Debugger helps you trace and correct
programming errors by allowing you to monitor and modify procedure execution as it
happens.
A guide that describes how to develop and integrate an online help system for a Progress
application.
A guide that describes how to use the Progress Translation Manager tool to manage the
entire process of translating the text phrases in Progress applications.
A guide that describes how to use the Progress Visual Translator tool to translate text
phrases from procedures into one or more spoken languages.
Reporting Tools
Progress Report Builder Deployment Guide (Windows only)
An administration and development guide for generating Report Builder reports using the
Progress Report Engine.
A tutorial that provides step-by-step instructions for creating eight sample Report Builder
reports.
xli
Progress ADM 2 Reference
A guide for system administrators that describes how to set up and maintain the Results
product in a graphical environment. This guide also describes how to program, customize,
and package Results with your own products. In addition, it describes how to convert
character-based Results applications to graphical Results applications.
Progress Results User’s Guide for Windows and Progress Results User’s Guide for Unix
Platform-specific guides for users with little or no programming experience that explain
how to query, report, and update information with Results. Each guide also helps advanced
users and application developers customize and integrate Results into their own
applications.
4GL
Building Distributed Applications Using the Progress AppServer
A guide to developing Progress applications for markets worldwide. The guide covers
both internationalization—writing an application so that it adapts readily to different
locales (languages, cultures, or regions)—and localization—adapting an application to
different locales.
A three-volume reference set that contains extensive descriptions and examples for each
statement, phrase, function, operator, widget, attribute, method, and event in the Progress
language.
xlii
Preface
A manual that describes how to use the new WebClient, AppServer Internet Adapter,
SmartObjects, and SonicMQ Adapter to create applications tailored for Internet, intranet,
and extranet environments.
Database
Progress Database Design Guide
A guide that uses a sample database and the Progress Data Dictionary to illustrate the
fundamental principles of relational database design. Topics include relationships,
normalization, indexing, and database triggers.
This guide describes Progress database administration concepts and procedures. The
procedures allow you to create and maintain your Progress databases and manage their
performance.
DataServers
Progress DataServer Guides
These guides describe how to use the DataServers to access non-Progress databases. They
provide instructions for building the DataServer modules, a discussion of programming
considerations, and a tutorial.
xliii
Progress ADM 2 Reference
The Enterprise DataServer for ODBC includes MERANT ODBC drivers for all the
supported data sources. For configuration information, see the MERANT documentation,
which is available as a PDF file in installation-path\odbc. To read this file you must
have the Adobe Acrobat Reader Version installed on your system. If you do not have the
Adobe Acrobat Reader, you can download it from the Adobe Web site at:
http://www.adobe.com/products/acrobat/readstep.html.
SQL-89/Open Access
Progress Embedded SQL-89 Guide and Reference
A guide that describes how to write, build, and deploy Java and ActiveX applications, and
Java applets that run as clients of the Progress AppServer. This guide includes information
about how to expose the AppServer as a set of Java classes or as an ActiveX server, and
how to choose an Open Client distribution package for run time.
A user guide and reference for programmers who use interactive Progress/SQL-89. It
includes information on all supported SQL-89 statements, SQL-89 Data Manipulation
Language components, SQL-89 Data Definition Language components, and supported
Progress functions.
SQL-92
Progress Embedded SQL-92 Guide and Reference
xliv
Preface
A guide to the Java Database Connectivity (JDBC) interface and the Progress SQL-92
JDBC driver. It describes how to set up and use the driver and details the driver’s support
for the JDBC interface.
A guide to the ODBC interface and the Progress SQL-92 ODBC driver. It describes how
to set up and use the driver and details the driver’s support for the ODBC interface.
A user guide and reference for programmers who use Progress SQL-92. It includes
information on all supported SQL-92 statements, SQL-92 Data Manipulation Language
components, SQL-92 Data Definition Language components, and Progress functions. The
guide describes how to use the Progress SQL-92 Java classes and how to create and use
Java stored procedures and triggers.
Deployment
Progress Client Deployment Guide
A guide that describes the client deployment process and application administration
concepts and procedures.
A guide to using the Developer’s Toolkit. This guide describes the advantages and
disadvantages of different strategies for deploying Progress applications and explains how
you can use the Toolkit to deploy applications with your selected strategy.
A guide that explains how to use the Progress toolset to build applications that are portable
across all supported operating systems, user interfaces, and databases, following the
Progress programming model.
WebSpeed
Getting Started with WebSpeed
Provides an introduction to the WebSpeed Workshop tools for creating Web applications.
It introduces you to all the components of the WebSpeed Workshop and takes you through
the process of creating your own Intranet application.
xlv
Progress ADM 2 Reference
Provides instructions for installing WebSpeed on Windows and UNIX systems. It also
discusses designing WebSpeed environments, configuring WebSpeed Brokers,
WebSpeed Agents, and the NameServer, and connecting to a variety of data sources.
Provides a complete overview of WebSpeed and the guidance necessary to develop and
deploy WebSpeed applications on the Web.
A booklet that provides a brief description of each new feature of the release. The booklet
also explains where to find more detailed information in the documentation set about each
new feature.
A booklet that explains how WebSpeed software and media are packaged. Welcome to
WebSpeed! also provides descriptions of the various services Progress Software
Corporation offers.
Reference
Pocket Progress (Hard copy only)
A reference that lets you quickly look up information about the Progress language or
programming environment.
A reference that lets you quickly look up information about the SpeedScript language or
the WebSpeed programming environment.
xlvi
ADM2 SmartObject API Reference
The behavior of each type of SmartObject is defined by some set of procedures and functions.
These routines are grouped into one or more classes of super-procedure files. Functionally,
super-procedure files are comparable to dynamically-linked run-time libraries. They are loaded
into memory as required by an application, and typically make their internal routines available
to callers for the duration of a session.
This reference describes the set of ADM2 classes, procedures, and functions that are supplied
in the current release of Progress.
For information specifically about the Progress ADM and about creating or modifying
SmartObjects, see the Progress ADM 2 Guide. For information about creating applications
using SmartObjects, see the Progress AppBuilder Developer’s Guide.
ADM2 SmartObject API Reference
Objects defined under the original ADM standard (Version 8) continue to be supported. You
can find their files by changing adm2 to adm (or web2 to web) in the paths shown.
2
ADM2 SmartObject API Reference
Source-file Types
Each ADM class is defined by a group of ten or more files. Some of the files define the base
class as distributed by Progress. Others—they have the substring “custom” in their names—are
supplied as a convenience to you and stored in src\adm2\custom. Use those when you write
custom extensions or modifications. By doing so, you reduce the risk of accidently destroying
your work when you update your Progress distribution.
The naming convention for all files is: classname+filetype.extension. The classname portion
can be spelled out in one filename but abbreviated in another within the same group, usually
depending on total length. There is no convention for these abbreviations.
The standard files and their roles are:
3
ADM2 SmartObject API Reference
Smart
AppServer Consumer
Producer
XML
Query Containr
Router B2B
Data SBO
Action
Select
4
ADM2 SmartObject API Reference
5
ADM2 SmartObject API Reference
6
ADM2 SmartObject API Reference
Simple SmartObject
The Simple SmartObject is essentially a template you can use when defining other objects. It
has no special class identity of its own; it is an expression of the class Smart.
The file %DLC%/src/adm2/smart.p is the super procedure supporting the unimproved Simple
SmartObject. The syntax for loading this file is:
SYNTAX
RUN start-super-proc("adm2/smart.p":U).
7
ADM2 SmartObject API Reference
Simple SmartContainer
The Simple SmartContainer provides all functionality from the class Container without the
overhead of a visible run-time representation. It has no special class or super-procedure file of
its own; it is an expression of the Container class and uses containr.p as its super-procedure
file. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/containr.p":U).
– – Instance containrdefscustom.i
8
ADM2 SmartObject API Reference
AppServer Class
If the macro {&APP-SERVER-VARS} is defined, the Container and Query classes will inherit from
the AppServer class, represented by the super procedure appserver.p. To force the macro to be
defined, set the AppServer-Aware check box in the Procedure Settings dialog box for the object.
If there is no such check box, or it is disabled, then you cannot force the definition. The syntax
for loading appserver.p is:
SYNTAX
RUN start-super-proc("adm2/appserver.p":U).
– – Instance appserverdefscustom.i
SmartBusinessObject
The SmartBusinessObject integrates up to 20 SmartDataObjects. It is a special-purpose
organizer object and a member of the class Container. SmartBusinessObjects provide a single
point of contact for other objects, and allow you to synchronize updates on multiple
SmartDataObjects in a single server-side transaction.
The class name of the object is SBO. It is a user-defined class. The file
%DLC%/src/adm2/sbo.p is the super procedure file for the SBO class. The syntax for loading
that file is:
SYNTAX
RUN start-super-proc("adm2/sbo.p":U).
9
ADM2 SmartObject API Reference
Additional updtabledefs.i – –
Method Files updparam.i
updtablecase.i
rupdflds.i
SmartB2BObject
The SmartB2BObject transforms data between XML and 4GL based on an agreed-upon XML
schema mapped to local data representations. It performs this service on behalf of other
SmartObjects, particularly the SmartBusinessObject and SmartDataObject.
A single instance transforms either inbound or outbound messages, but not both. Two instances
of this object are required when transforming both inbound and outbound messages.
The class name of the object is B2B, and it inherits from classes MsgHandler and XML. All are
user-defined classes.
The file %DLC%/src/adm2/b2b.p is the super procedure for the SmartB2BObject class. It
contains logic that uses the XML mapping schema to read or store data in data objects. The
syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/b2b.p":U).
10
ADM2 SmartObject API Reference
– – Instance b2bdefscustom.i
MsgHandler Class
The MsgHandler class is represented by the super procedure msghandler.p. The syntax for
loading that file is:
SYNTAX
RUN start-super-proc("adm2/msghandler.p":U).
– – Instance msghandlerdefscustom.i
11
ADM2 SmartObject API Reference
XML Class
Xml.p presents a simplified DOM API by encapsulating the 4GL DOM statements so that
x-noderef handles never need to be exposed to b2b.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/xml.p":U).
– – Instance xmldefscustom.i
SmartCombo
The SmartCombo extends ADM2 Smart technology to the Combo Box level.
The class Combo is a user-defined class. The syntax for loading the super-procedure file is:
SYNTAX
RUN start-super-proc("adm2/combo.p":U).
12
ADM2 SmartObject API Reference
– – Instance combodefscustom.i
SmartConsumer
See the “SmartProducer, SmartConsumer”section.
SmartDataBrowser
The SmartDataBrowser displays multiple virtual records in a simple, tabular row/column
format. It obtains and updates the data in cooperation with a SmartDataObject or
SmartBusinessObject. This object is supplied in both dynamic and customizable versions.
The class name of the object is Browser. It is a Progress class, and the file
%DLC%/src/adm2/sbo.p is its super procedure. Browser inherits from Progress class DataVis.
The syntax for loading sbo.p is:
SYNTAX
RUN start-super-proc("adm2/browser.p":U).
13
ADM2 SmartObject API Reference
SmartDataField
The SmartDataField brings Smart technology down to the field level. You can create a
SmartDataField object using any visualization you desire, and insert it as a replacement for one
of the standard Fill-ins that make up a SmartDataViewer.
The class name of the object is Field. It is a Progress class, and the file
%DLC%/src/adm2/field.p is its super procedure. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/field.p":U).
14
ADM2 SmartObject API Reference
– – Instance fielddefscustom.i
SmartDataObject
The SmartDataObject is a data pump. It creates and manages a data stream based on the terms
of a query that you define within it. You can often avoid complicated JOINs by linking
SmartDataObjects together, each managing a single table. If your application will run in a
distributed environment, you can update multiple SmartDataObjects on an AppServer by
linking them inside a SmartBusinessObject.
The class name of the SmartDataObject is Data, and it inherits from class Query. Both are
Progress classes, and the file %DLC%/src/adm2/data.p is Data’s super procedure. The syntax
for loading that file is:
SYNTAX
RUN start-super-proc("adm2/data.p":U).
15
ADM2 SmartObject API Reference
Additional cltorsvr.i – –
Method Files robjflds.i
Query Class
The super-procedure file for class Query is query.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/query.p":U).
16
ADM2 SmartObject API Reference
Additional delrecst.i – –
Method Files tblprep.i
NOTE: If the macro {&APP-SERVER-VARS} is defined, the Query class will inherit from the
AppServer class, represented by the super procedure appserver.p. To force the
macro to be defined, set the AppServer-Aware check box in the Procedure Settings
dialog box for your object. If there is no such check box, or it is disabled, then you
cannot force the definition in that instance.
For the list of files defining the AppServer class, see the “AppServer Class” section.
SmartDataViewer
The SmartDataViewer displays a single virtual record at a time using a combination of basic
fill-ins and, if you choose, SmartDataFields. It obtains and updates the data in cooperation with
a SmartDataObject or SmartBusinessObject.
Its class is Viewer, a Progress class, for which the file %DLC%/src/adm2/data.p is its super
procedure. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/viewer.p":U).
17
ADM2 SmartObject API Reference
– – Instance viewerdefscustom.i
SmartDialog
The SmartDialog is a special type of Frame object supported by a dedicated Window. One of
several expressions of the class Container, it is a modal object. Because modal objects
completely own the focus while open, they are best used to capture data without which the
application cannot continue.
The SmartDialog has no class of its own; the file %DLC%/src/adm2/containr.p is its super
procedure. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/containr.p":U).
18
ADM2 SmartObject API Reference
SmartFilter
The SmartFilter allows the user to reduce a data stream to a more manageable size, in real time.
Logically, SmartFilter resides between some SmartDataObject and some visualization object
such as a SmartDataBrowser. By choosing different setups for the Filter, you can give the
eventual user more or less control over the contents of the data stream being displayed.
This object’s class is Filter, a Progress class, and its super-procedure file is
%DLC%/src/adm2/filter.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/filter.p":U).
19
ADM2 SmartObject API Reference
– – Instance filterdefscustom.i
SmartFolder
The SmartFolder implements a version of the now-standard tabbed-folders metaphor.
SmartFolder is an expression of the Visual class, and has only a template file of its own. The
super-procedure file for the Visual class is %DLC%/src/adm2/visual.p. The syntax for loading
that file is:
SYNTAX
RUN start-super-proc("adm2/visual.p":U).
Definition – Super –
Method – Method –
Property – Property –
Prototype – Prototype –
– – Instance –
20
ADM2 SmartObject API Reference
SmartFrame
The SmartFrame provides a platform for constructing reusable subsystems. Like the
SmartDialog and the SmartWindow, the SmartFrame has no special class of its own: it is an
expression of the Container class, for which the super-procedure file is
%DLC%/src/adm2/containr.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/containr.p":U).
Definition – Super –
Method – Method –
Property – Property –
Prototype – Prototype –
– – Instance –
SmartLookup
The SmartLookup is a faster but less-general version of the SmartSelect. It provides quick,
read-only lookup using a focused, dynamic query.
The class Lookup is a user-defined class. The syntax for loading the super-procedure file is:
SYNTAX
RUN start-super-proc("adm2/lookup.p":U).
21
ADM2 SmartObject API Reference
– – Instance lookupdefscustom.i
SmartPanel
The SmartPanel presents an array of related buttons. Several such arrays, dedicated to different
purposes, are supplied with AppBuilder. These arrays are all members of the Progress class
Panel. Panel inherits from class Visual, and its super-procedure file is
%DLC%/src/adm2/panel.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/panel.p":U).
22
ADM2 SmartObject API Reference
– – Instance paneldefscustom.i
SmartProducer, SmartConsumer
The SmartMessageProducer sends messages using some message-transport system. At present,
the only transport system supported is SonicMQ.
On demand, SmartMessageProducer creates a message body of the appropriate kind, passes it
back to the requesting object—such as a SmartB2BObject or SmartSender—to be filled in, and
finally inserts the message into the outbound message-transport queue. If it receives a reply to
a message, it accepts it and passes it upstream for processing.
The SmartConsumer handles inbound traffic from some message-transport system. It accepts
incoming messages and passes them on for processing by some other object such as a
SmartB2BObject or SmartReceiver. It also sends reply messages when required.
The class names of the objects are Producer and Consumer, respectively. They are Progress
classes derived from the Messaging class.
The file %DLC%/src/adm2/producer.p is the super procedure for the class SmartProducer. The
syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/producer.p":U).
23
ADM2 SmartObject API Reference
The file %DLC%/src/adm2/consumer.p is the super procedure for the class SmartConsumer.
The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/consumer.p":U).
– – Instance producerdefscustom.i
– – Instance consumerdefscustom.i
24
ADM2 SmartObject API Reference
Messaging Class
The file %DLC%/src/adm2/messaging.p is the super procedure for the class Messaging. The
syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/messaging.p":U).
– – Instance messagingdefscustom.i
SmartReceiver
See the “SmartSender, SmartReceiver” section.
SmartRouter
The SmartRouter is a utility object. Its role is to route incoming documents to the appropriate
SmartB2BObject for transformation. Its class is Router, a user-defined class whose
super-procedure file is %DLC%/src/adm2/router.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/router.p":U).
25
ADM2 SmartObject API Reference
– – Instance routerdefscustom.i
SmartSelect
The SmartSelect object is a type of SmartDataField. It represents a self-populating Selection
List. Its class is a Progress-type class, Select, whose super-procedure file is
%DLC%/src/adm2/select.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/select.p":U).
– – Instance selectdefscustom.i
26
ADM2 SmartObject API Reference
SmartSender, SmartReceiver
These message-handling objects can usually be substituted for the SmartB2BObject when you
do not need to perform protocol-based transformation between XML and 4GL. To use these
objects, you must complete their handler routines to suit your customer’s business needs. You
can make the handler functions as simple or complex as you like.
The SmartSender and SmartReceiver objects are based on the msghandler class, whose super
procedure is msghandler.p. The Msghandler class is derived from the class Smart. The syntax
for loading that file is:
SYNTAX
RUN start-super-proc("adm2/msghandler.p":U).
– – Instance msghandlerdefscustom
.i
SmartToolbar
The SmartToolbar object is related to the SmartPanel, combining a menu component with a tool
bar. The default SmartToolbar can replace all the dedicated SmartPanels that are also distributed
with AppBuilder.
Both the menu and the toolbar can be turned off. If you turn off the toolbar, you can use
SmartPanels to supply the same capabilities. If you turn off the menu, however, you have no
menu at all. You cannot use the menu that is available through the SmartWindow properties
dialog box. The two menu designs are not compatible.
27
ADM2 SmartObject API Reference
The SmartToolbar is an expression of the Progress Toolbar class, descended from the Panel
class through the Actions class. The Toolbar super-procedure file is
%DLC%/src/adm2/toolbar.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/toolbar.p":U).
Action Class
The super-procedure file for the Action class is %DLC%/src/adm2/action.p. The syntax for
loading that file is:
SYNTAX
RUN start-super-proc("adm2/action.p":U).
28
ADM2 SmartObject API Reference
– – Instance actiondefscustom.i
SmartWindow
The SmartWindow object is the leading member of the Container class. Unlike other members
of that class, SmartWindows are extremely general and versatile. SmartWindow, like
SmartFrame and SmartDialog, does not have a special class of its own. It is an expression of the
Container class. The super-procedure file for the Container class is
%DLC%/src/adm2/containr.p. The syntax for loading that file is:
SYNTAX
RUN start-super-proc("adm2/containr.p":U).
29
ADM2 SmartObject API Reference
30
ADM2 SmartObject API Reference
• get — The get function identifier takes the form getpropname. The function accepts no
arguments, and returns the current value of the property. It can also perform other
processing, if needed.
• set — The set function identifier takes the form setpropname. It accepts a single
argument—the new value for the property—and returns TRUE/FALSE depending on
whether it succeeded in changing the value. It can perform additional processing, if
needed.
A very small number of these functions vary slightly from the model described here, but these
differences are not significant.
Where propname is the property name in the TARGET-PROCEDURE object and returnvar is
the variable into which the value is to be returned. If the property does not belong to the
TARGET-PROCEDURE object, provide the appropriate handle in ownerhandle.
The {set} syntax is very similar:
The only difference between {get} and {set} syntax is that the second {set} argument is the new
value for the property.
31
ADM2 SmartObject API Reference
32
ADM2 SmartObject API Reference
• X — If marked, an xppropname token has been defined, allowing use of the {get}/{set}
pseudo-functions. This syntax should be used from within SmartObjects.
AddFunction 1
, 2 CHARACTER panlprop.i X X X X
33
ADM2 SmartObject API Reference
AutoCommit 10
, 11 LOGICAL dataprop.i X X X –
1
Initial value "One-Record".
2 The set function is defined in pupdsav.w.
3
Because the SBO (SmartBusinessObject) is designed to integrate many SDOs (SmartDataObjects), most SDO
properties have counterparts in the SBO.
4
The Division property. Possible values are "Client", "Server", "Both", or the empty string.
5
Identifies where the caller is running. Possible values are "Client", "Server", or the empty string meaning the
application is not distributed.
6 The handle of the copy running on the AppServer. This is the persistent procedure handle, used when invoking
procedures and functions.
7 The string, if any, used as a parameter during connection to the AppService.
8
The list of updatable columns whose names have been modified in the SDO.
9
TRUE if the supporting code should prompt for a username/password when connecting to the AppService.
10
TRUE if updates automatically commit. If the SDO is in an SBO, this property is set to FALSE.
11
A set function exists in query.p also, though the property is not declared in qryprop.i. That set function is
overridden by the set function in dataext.p.
34
ADM2 SmartObject API Reference
12
Defaults to FALSE. When set to TRUE, updates automatically commit.
13
Property declared, but not currently in use.
14
Actions available in the calling Toolbar object. This list and the list in the AvailToobarActions property are
displayed in the instance-properties dialog box. The selected actions are saved as ActionGroups.
35
ADM2 SmartObject API Reference
1 The handle of the rectangle, if any, that provides the visual border of a SmartPanel.
2
Information to be displayed when the ViewAs property is BROWSE.
36
ADM2 SmartObject API Reference
CommitTargetEvents 7
, 8 CHARACTER panlprop.i X X X –
37
ADM2 SmartObject API Reference
1
Set to TRUE if the value in the browse is not to be selected on exit. Should be TRUE when ExitBrowseOnAction
is TRUE because if the user exits the browse with a value selected, the Close button can function as a Cancel.
2
Determines whether data will be retrieved from a dependent SDO when the parent SDO has more than one row in
its current dataset. Defaults to TRUE.
3
Optional event to publish on value-changed. Be sure to define the corresponding SUBSCRIBE in the container.
4 TRUE if the SDO should determine whether the record being updated has changed by some other object.
5
TRUE if a get-last should be performed. See the code for detailed information.
6 Declared in messprop.i; defined as an instance property in consprop.i and prodprop.i.
7
The list of events in the respective SOURCE or TARGET object to which this object subscribes.
8
Separate get and set functions are defined in pcommit.w and in toolbar.p. None are defined in panel.p.
9
An inclusive list of all the columns being served by all the SDOs in this SBO. Columns for an SDO are
comma-delimited. Columns belonging to different SDOs are separated by a semicolon. The groups of columns are
in the same order as the SDOs listed in the ContainedDataObjects property.
10
A list of handles to all SDOs in this SBO.
11 Handle of the caller’s parent container widget (window or frame).
12
Identifies the caller’s container type. Possible values are "Window", "Frame", or the empty string if the caller is
not a container.
13 A list of handles to the fields that should be enabled for an Add or Copy operation on a record.
14
The ID from the last sendMessage with ReplyRequired set.
38
ADM2 SmartObject API Reference
39
ADM2 SmartObject API Reference
40
ADM2 SmartObject API Reference
1
An inclusive list of all the columns being served by all the SDOs in this SBO, each qualified by the ObjectName of
its SDO. Columns are comma-delimited. This is the same information stored in the ContainedDataColumns
property, but organized differently.
2
Comma-delimited list of all column names in the SDO. The get/set functions have truncated names:
getDataColumns/setDataColumns.
3
Returns the handle of the appropriate RowObject query.
4
Indicates whether there is an unsaved modification to some SCREEN-VALUE. A set function is also defined in
browser.p.
5
The ordered list of ObjectNames of contained SDOs. This property is not normally changed under program control.
6
The mapping of the programmer-defined update order onto the AppBuilder-defined Update Tables.
7
TRUE if this SDO’s data stream is already assigned to a browser. Essentially a lock to prevent conflicts.
8
A list of the events in the respective SOURCE or TARGET to which this object subscribes. See notes in the code
header for additional details.
41
ADM2 SmartObject API Reference
9
Optional filter expression to be applied to the DATA-SOURCE.
10
Typically used in connection with pass-through links.
11
TRUE if the object requires a local database connection.
12
TRUE if a persistent trigger defined on ANY-KEY. Only used for a fill-in generated for the view-as-browse option.
13
Field being displayed in the selection
14
Comma-separated list of the columns being displayed by the data-display object.
15
Returns the value displayed by the SmartSelect. This is not necessarily the same as the value to be stored.
16
Storage declared, xp token, and get/set defined in messprop.i, but defined as instance property in consprop.i
and prodprop.i.
42
ADM2 SmartObject API Reference
1
Returns the list of enabled fields in the display object that have counterparts in the SDO’s data stream.
2
The handles are to the enabled fields in the display object.
3
The fields in this list are not associated with data fields.
4
The handles are to widgets not associated with data fields.
5
TRUE if selecting a value in the browse exits the browse. Triggered by DEFAULT-ACTION (RETURN or
double-click).
43
ADM2 SmartObject API Reference
1
Temp-table first-row number.
2
Not currently in use.
3 Comma-separated list of pairs: local database field name, source temp-table field name, local database field name,
source.... Used for opening dependent queries.
44
ADM2 SmartObject API Reference
4
CHR(1)-separated, formatted strings representing the most received foreign-field values.
5
Overridden format, used when view-as is BROWSE and data displayed as fill-in.
1
Comma-separated list of events to which this object subscribes in the respective source/target.
45
ADM2 SmartObject API Reference
1
Path to the image within the file system.
46
ADM2 SmartObject API Reference
1
The label string if defined locally, "?" if defined in the data source, or the empty string if not defined.
47
ADM2 SmartObject API Reference
1
The master data object is the SDO whose changes control behavior in other SDOs.
2
TRUE if the menu component is active.
48
ADM2 SmartObject API Reference
1
Comma-separated list of the events to which this object subscribes in the respective source/target.
2
Possible values: "Add", "Copy", and "No".
49
ADM2 SmartObject API Reference
50
ADM2 SmartObject API Reference
1
The state HIDDEN is a logical rather than visual state; it can be applied to a nonvisible object to indicate it is, for
example, inactive.
2
Intended for internal-use only. Comma-separated list of handle pairs in the form
sourceA,targetA,sourceB,targetB,.... The source is an SDO inside the SBO; the target is the object that serves as its
DATA-TARGET and, possibly, its UPDATE-SOURCE.
3
A string representing the ADM version. For Version 9 and later objects, the string will be "ADM2.0" or later.
4
Original WHERE clause set at design time, set as the value of the OPEN-QUERY macro. By using this value as the
argument to Query-Prepare, run-time modifications made under program control can be discarded.
5
TRUE if the character field evaluates to BLANK.
51
ADM2 SmartObject API Reference
1
The list of all objects not assigned to Page 0. Do not manipulate this property by hand, as it has a special format. Call
addLink instead.
2
Valid values: "UPDATE", "NAVIGATION".
3
Identifies the dialog procedure that sets instance properties. Normally only used internally.
52
ADM2 SmartObject API Reference
1
TRUE if the object manages a local query. Note that local queries are deprecated except in objects, such as the SDO,
dedicated to data access.
2
Valid values are "FirstRecord", "LastRecord", "NotFirstOrLast", "OnlyRecord", and "NoRecordAvailable".
53
ADM2 SmartObject API Reference
1
TRUE if the RowObject temp-table should be rebuilt whenever an attempt is made to point at a record outside the
current dataset.
2
TRUE if the data-source is to be repositioned whenever the object experiences the VALUE-CHANGED event. Not
needed for the view-as-browse option. Set this to true when the data-source also serves other objects, if they need to
be refreshed when this object experiences VALUE-CHANGED.
3
RowIdent for current record in RowObject temp-table. Takes the form of a comma-delimited string composed of the
ROWID of the temp-table record followed by the ROWIDs of the records from which the temp-table record was
made.
4
Handle of the RowObject buffer.
5
TRUE if uncommitted updates present. Valid values are "NoUpdates" and "RowUpdated"
6
Handle of buffer where updates are stored.
54
ADM2 SmartObject API Reference
1
TRUE if a 3D border should be displayed around buttons and as RULE delimiters.
2
List of KeyLabels/KeyFunctions that start the browse if DefineAnyKeyTrigger is TRUE.
55
ADM2 SmartObject API Reference
1 Comma-delimited list of events in the respective source/target to which this object subscribes.
2
List of handles to this object’s TableIO-Targets.
3
List of handles to the object’s TableIO-Targets.
56
ADM2 SmartObject API Reference
4
List of database tables in the QueryObject. Get function defined in both query.p and data.p.
5
TRUE if toolbar is to be created.
1
TRUE if application is under control of AppBuilder (UIB—User-Interface Builder—was an earlier name for
AppBuilder). Valid values are "Design", "Design-Child", and the empty string.
57
ADM2 SmartObject API Reference
1
String defining how the SmartSelect is to display. Valid values are "Browse", "Selection-list", "Radio-set:H",
"Radio-set:V", "Combo-box:Drop-down-List" (the default), and "Combo-box:Simple".
58
Alphabetical Listing of API Routines
This listing includes all routines except those specific to the WebSpeed environment (see the
“Alphabetical Listing Of WebSpeed-specific API Routines” chapter).
The filename in parentheses that follows the identifier indicates where you can find the source
for the routine.
actionAccelerator (action.p)
actionAccelerator (action.p)
Returns the accelerator string, if any, for some action.
Parameters:
Returns: CHARACTER
Notes: None
actionAccessType (action.p)
Returns the access type, if any, for some action.
Parameters:
Returns: CHARACTER
Notes: None
actionCanRun (toolbar.p)
Returns TRUE if the target is valid and the procedure exists in it.
Parameters:
Returns: LOGICAL
Notes: Called from buildMenu and createToolbar.
60
actionCaption (action.p)
actionCaption (action.p)
Returns the caption for some action, or the empty string if there is no caption defined.
Parameters:
Returns: CHARACTER
Notes: None
actionCaption (toolbar.p)
Override action class and caption.
Parameters:
Returns: CHARACTER
Notes: None.
actionCategory (action.p)
Returns the category value for the action identified in the argument.
Parameters:
Returns: CHARACTER
Notes: None.
61
actionCategoryIsHidden (toolbar.p)
actionCategoryIsHidden (toolbar.p)
Returns TRUE if the action’s category is hidden
Parameters:
Returns: LOGICAL
Notes: None.
actionChecked (toolbar.p)
Returns TRUE if its call to getpropname returns a value that matches the actions checked.
Parameters:
Returns: LOGICAL
Notes: Currently we only support logical values. If the get function does not exist, or
the object is not valid, this function returns the undefined value.
62
actionChildren (action.p)
actionChildren (action.p)
Returns a comma-separated list of all children of some action.
Parameters:
Returns: CHARACTER
Notes: Class actions are shared by all instances, so class actions are meant to be
returned first for the sake of consistency. However, if you define instance
actions before class actions, they have a lower order and are returned first in
the first realization of the object. This discrepancy is automatically corrected
as the object is realized again and again. You can manipulate the order using
insertMenu() and createToolbar (in toolbar.p).
actionControlType (action.p)
Returns the control-type value for the action identified in the argument.
Parameters:
Returns: CHARACTER
Notes: None.
63
actionCreateEvent (action.p)
actionCreateEvent (action.p)
Returns the createEvent for some action.
Parameters:
Returns: CHARACTER
Notes: Cannot be changed.
actionDescription (action.p)
Returns the description value for some action.
Parameters:
Returns: CHARACTER
Notes: None
actionDisabled (action.p)
Returns TRUE if the action identified in the argument has been disabled.
Parameters:
Returns: LOGICAL
Notes: None.
64
actionEnableRule (action.p)
actionEnableRule (action.p)
Returns the EnableRule value for the action passed as the argument.
Parameters:
Returns: CHARACTER
Notes: None.
actionEnableRulex (action.p)
Assembles and returns some query string, depending on the argument.
Parameters:
Valid values are ‘reset’, ‘add’, ‘copy’, ‘delete’, ‘save’, ‘cancel’, ‘first’, ‘prev’, ‘next’, and
‘last’.
Returns: CHARACTER
Notes: None.
actionGroups (action.p)
Returns a comma-separated lists of actions, grouped.
Parameters: None
Returns: CHARACTER
Notes: None
65
actionHideRule (action.p)
actionHideRule (action.p)
Returns the value of HideRule for the action supplied as the argument.
Parameters:
Returns: CHARACTER
Notes: None.
actionHideRuleX (action.p)
Returns some string depending on the argument. The empty string is returned if the argument is
not valid.
Parameters:
Returns: CHARACTER
Notes: None.
actionImage (action.p)
Returns the Image value for some action.
Parameters:
Returns: CHARACTER
Notes: None
66
actionImageAlternate (action.p)
actionImageAlternate (action.p)
Returns the value for Image2, for the action identified by the argument.
Parameters:
Returns: CHARACTER
Notes: None.
actionImageAlternateRule (action.p)
Returns the value for ImageAlternateRule, for the action identified by the argument.
Parameters:
Returns: CHARACTER
Notes: None.
actionInitCode (action.p)
Returns the string value of the InitCode column for some action.
Parameters:
Returns: CHARACTER
Notes: None
67
actionIsMenu (action.p)
actionIsMenu (action.p)
Returns TRUE if the action is a menu. Actions defined as a menu are considered to be a constant
part of the toolbar and are not selectable. This means that the action is always available. The
action needs to be added to a toolbar with createToolbar or insertMenu(). It will not appear as
a selectable action in the instance property dialog even if actionIsParent returns a TRUE status.
Parameters:
Returns: LOGICAL
Notes: None
actionIsParent (action.p)
Returns TRUE if the identified action is a parent.
Parameters:
Returns: LOGICAL
Notes: Traverses the actions table testing whether any action has this action as its
parent.
actionLabel (action.p)
Returns the label on the action’s button
Parameters:
Returns: CHARACTER
Notes: actionLabel is an alias for actionName
68
actionLabel (toolbar.p)
actionLabel (toolbar.p)
Overrides an action’s label.
Parameters:
Returns: CHARACTER
Notes: None.
actionLink (action.p)
Returns the Link value for some action.
Parameters:
Returns: LOGICAL
Notes: None
actionLogicalObjectName (action.p)
Returns the LogicalObjectName value for some action.
Parameters:
Returns: CHARACTER
Notes: None.
69
actionName (action.p)
actionName (action.p)
Returns the Name value for some action.
Parameters:
Returns: LOGICAL
Notes: None
actionOnChoose (action.p)
Returns the OnChoose value for some action.
Parameters:
Returns: LOGICAL
Notes: None
actionParameter (action.p)
Returns the RunParameter value for some action.
Parameters:
Returns: CHARACTER
Notes: None.
70
actionParent (action.p)
actionParent (action.p)
Returns the Parent value for some action.
Parameters:
Returns: LOGICAL
Notes: None
actionPhysicalObjectName (action.p)
Returns the PhysicalObjectName value for some action.
Parameters:
Returns: CHARACTER
Notes: None.
71
actionPublishCreate (toolbar.p)
actionPublishCreate (toolbar.p)
Subscribes create events to objects.
Parameters:
Returns: LOGICAL
Notes:
• Subscribes both active and inactive/hidden objects. Target links are considered as
multiple, source links as single.
actionRefresh (action.p)
Returns TRUE if some action can be refreshed.
Parameters:
Returns: LOGICAL
Notes: None
72
actionRunAttribute (action.p)
actionRunAttribute (action.p)
Returns the RunAttribute value for some action.
Parameters:
Returns: CHARACTER
Notes: None.
actionSecondImage (action.p)
Returns the Image2 value for some action.
Parameters:
Returns: CHARACTER
Notes: None.
actionSecuredToken (action.p)
Returns the SecurityToken value for some action.
Parameters:
Returns: CHARACTER
Notes: None.
73
actionSubstituteProperty (action.p)
actionSubstituteProperty (action.p)
Returns the SubstituteProperty value for some action
Parameters:
Returns: CHARACTER
Notes: None.
actionTarget (toolbar.p)
Returns the handle of the target, by default the handle of CONTAINER-SOURCE.
Parameters:
Returns: HANDLE
Notes: Called by actions of type "RUN" and "PROPERTY".
actionTooltip (action.p)
Returns some other value depending on the value of TranslatedActionTooltip for some action.
The values that might be returned are: TranslatedActionMLabel, TranslatedActionLabel, or
Tooltip.
Parameters:
Returns: CHARACTER
Notes: None.
74
actionTooltip (toolbar.p)
actionTooltip (toolbar.p)
Overrides a action’s tooltip.
Parameters:
Returns: CHARACTER
Notes: None.
actionType (action.p)
Returns the Type value for some action.
Parameters:
Returns: LOGICAL
Notes: None
75
activeTarget (panel.p)
activeTarget (panel.p)
Return the targets of some link type.
Parameters:
Returns: HANDLE
Notes:
• The toolbar only supports one active object in these, but it might be linked to inactive
objects on hidden pages. If more than one target this procedure returns the active hidden
object where ObjectHidden = FALSE for some link type.
76
addDataTarget (sbo.p)
addDataTarget (sbo.p)
Updates the ObjectMapping property. This property is used to broker messages between the
contained objects and outside objects in communication with them. It is also used to set
DataSourceNames and UpdateTargetNames in the data-targets.
Parameters:
• DataSourceNames might be specified by the user in which case it actually specifies how
to generate the ObjectMapping. If it is not set, both it and UpdateTargetNames are always
set here so that colValues, addRow, deleteRow, updateRow, etc. can identify the intended
target or source without looping through all the fields again and again.
• Objects built against RowObject must find ALL columns in ONE of the
ContainedDataObjects in order to become mapped.
• ObjectMapping versus DataSourceNames. There is some overlap here and add-, copy- and
deleteRow with ObjectMapping could be used instead of DataSourceNames. But since
both cases require knowing the requester, there is not much advantage to only using the
ObjectMapping. A way to distinguish between UpdateTargets and DataSources is
necessary, and having them implemented similarly makes it all a bit easier to use.
Ideally, the SBO should not have to know about or deal with the object mapping. That
should happen at the visual level instead, so the way mapping works might change in some
future release.
77
addLink (smart.p)
addLink (smart.p)
Adds a link between two objects by setting property values in each.
Parameters:
Link name.
• Normally addLink is run from code generated by the AppBuilder in the internal procedure
adm–create–objects, in response to the developer adding links to a SmartContainer at
design time. Additional calls to addLink can be written into an application when additional
links are needed at run time.
• If the link is not in the SupportedLinks list for either object, then the link name will be
treated as a single subscription in the “Target” for an event of that name in the “Source”.
See the first example below.
• If the link is in the list of PassThroughLinks, and the object at one end or the other of the
new link is a SmartContainer, addLink checks to see if a link of the same type exists for
that container. If so, the two links are combined, or chained together, into a single link that
connects the original Source with the final Target, bypassing the Container. Refer to
documentation for ADM@ or Progress AppBuilder for more information about
PassThrough links.
• If the link name is of the type “PageN", where N is an integer, then the caller is defining
the Target to be on logical page n of the Source, which must be a SmartContainer. The
addLink procedure will add the Target to the special link name PageNTargets in the
Source.
78
addLink (smart.p)
• For each entry in an object’s SupportedLinks, there must be a property that stores the
handle(s) of the object(s) at the other end of the link, and functions to set and get that
property. There must also be a property that stores a list of the named events which are
associated with that link. For example, if Navigation–Source is one of a SmartPanel’s
SupportedLinks, and Navigation–Target is one of a SmartDataObject’s SupportedLinks,
in executing the second example above, addLink adds hdCust to the NavigationTarget
property of the SmartPanel, and hSmartPanel to the NavigationSource property of the
SmartDataObject. The addLink procedure checks the RETURN data type of the “get”
property functions for these properties: a RETURN type of HANDLE means that only a
single object is supported on that end of the link and that the property value is stored as a
value of type HANDLE. If the RETURN type is CHARACTER, multiple objects are
supported on that end of the link and the object handle is added to a property value stored
as a comma-separated list of object handles. For example, the NavigationTarget property
is CHARACTER, because a panel may have multiple Navigation–Targets. The
NavigationSource property is HANDLE because an SmartDataObject may have only one
Navigation–Source. The NavigationSourceEvents property for the SmartDataObject
stores a list of the events to be subscribed to in the Source (see second example below).
Examples:
79
addMessage (smart.p)
addMessage (smart.p)
Inserts the message text into a data message log along with its Field, and Table if known.
Parameters:
The field name for which the message occurred, if it was related to a specific field.
The database table for which the message occurred, if it was related to an update to a
database table.
• If pcText is unknown (?), that signals that this function should retrieve messages from the
error–status system handle.
• The message log is a character string in a special format intended to be decoded with the
functions fetchMessages or showDataMessages.
• Message texts that are intended to be seen by end users can be enabled for translation into
other languages by putting them into the application code as quoted strings, and then using
the Translation Manager tool. Generally, ADM messages which are expected to be seen
by developers, for example, messages that indicate errors in the application design, are
entered into the ADM super procedures as quoted strings with the :U suffix so that they
will not be seen by the Translation Manager tool.
80
addNavigationSource (sbo.p)
• If the unknown value (?) is passed as the message text value, then addMessage will
retrieve as many error messages as are stored in the ERROR–STATUS handle using the
GET–MESSAGE method. This would be appropriate, for example, after executing a
database access statement NO–ERROR, then checking the value of
ERROR–STATUS:ERROR.
Examples:
/* This example adds a specific message to the log for the SDO field
whose name is stored in the variable cField, for no particular
database table. */
addNavigationSource (sbo.p)
Adds a NavigationSource to the ObjectMapping property that is used to broker messages
between contained objects and the outside objects with which they communicate.
Parameters:
81
addNode (treeview.p)
addNode (treeview.p)
Adds a node to the tree.
Parameters:
Handle to buffer of temp-table tTreeData, used to defined the node. The temp-table
includes the following fields: (as defined in TVController.i)
private_data Information stored for the node in the node's TAG property
node_sort If TRUE, sort node (This must be specified for all nodes
within the same level). Default is FALSE.
82
addQueryWhere (query.p)
addQueryWhere (query.p)
Adds some string-expression to the query’s WHERE clause and stores the result in the
QueryString property. It returns TRUE if successful, FALSE if an appropriate buffer name for
the WHERE-clause cannot be located.
Parameters:
Specifies the operator that is used to add the new expression to an existing expression or
expressions, either AND (the default) or OR.
Returns: LOGICAL
Notes:
• Returns FALSE if it cannot find a buffer name to associate with the WHERE clause.
• This procedure is designed to run on the client in order to be called possibly multiple times
(to add multiple phrases to the where-clause) before the full where-clause is used to reopen
the query, and will operate on the attribute QueryString. openQuery takes care of the
preparation of the QueryString attribute.
83
addQueryWhere (sbo.p)
addQueryWhere (sbo.p)
SmartBusinessObject version of this where-clause function. It simply passes the parameters on
to the SmartDataObject named in the pcBuffer argument.
Parameters:
Returns: LOGICAL
Notes: Currently the pcBuffer argument must be specified.
addRecord (browser.p)
SmartDataBrowser version of addRecord. Initiates the creation of a new record. Inserts a new
row below the current row, if any. The ROW–ENTRY trigger in the SmartDataBrowser
(%DLC%/src/adm2/brsentry.i) displays initial values.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Sets the BrowseInitted property to FALSE. This property is used in the ROW–ENTRY
trigger where the actual display of initial values takes place to make sure that the
initialization logic for add is executed once.
84
addRecord (datavis.p)
• Invoked when an Add is initiated (typically by choosing the Add button in an Update
SmartPanel, or the Add button or Add menu item in a SmartToolbar).
• Customized when additional processing is needed at the start of an Add operation. When
an addRecord override is invoked, the new record has not yet been created, and there is no
transaction active.
addRecord (datavis.p)
Initiates the creation of a new record. First verifies that there is no update pending. If there is an
update pending, notifies the user that current values must be saved or cancelled before the Add
operation takes place, then it displays initial values.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Publishes updateState “Update” to signal related objects that the update is in progress.
• Is invoked when an Add is initiated (typically by choosing the Add button in an Update
SmartPanel, or the Add button or Add menu item in a SmartToolbar).
85
addRecord (viewer.p)
• Is customized when additional processing is needed in the visual SmartObject at the start
of an Add operation. When an addRecord override is invoked, the new record has not yet
been created, and there is no transaction active. If you want to customize the Add operation
for the SmartDataObject that manages the table being shown in the visualization, you can
override addRow to customize the processing at the time the new row is added to the
RowObject temp–table, or override submitRow to customize the saving of the newly
added row.
Examples:
PROCEDURE addRecord:
/*
** Code placed here will execute PRIOR to standard behavior.
*/
RUN SUPER.
/*
** Code placed here will execute AFTER standard behavior.
*/
iRecTotal = iRecTotal + 1.
DISPLAY iRecTotal WITH FRAME {&FRAME-NAME}.
END PROCEDURE.
addRecord (viewer.p)
Initiates the creation of a new record in the RowObject temp-table. Initial values for the new
record are displayed in the viewer’s frame. Keeps a running total of the records added.
Parameters: None
Returns: Nothing (procedure).
Notes:
• addRow() is invoked in the update target, which creates the new RowObject temp-table
record and returns the column values. When the SmartDataViewer is a GroupAssign
target, its GroupAssign source has already added the record, therefore only the values of
the columns are retrieved.
• Column values are passed to displayFields, which displays the values in the viewer’s
frame.
• The record is not actually created in the database until it is committed. This is done in
assignDBRow procedure.
86
addRow (data.p)
• For Add and Copy, it is important that key fields, and any other fields assigned by the
CREATE trigger, not be set to updateable in the SmartDataObject and enabled for data
entry. If they are, the screen values are assigned on top of the key values set by the trigger,
with an error as the likely result.
• applyEntry is run to apply entry to the first field in the frame after the initial column values
are displayed.
• addRecord is invoked when an Add is initiated, typically by choosing the Add button in
an Update SmartPanel, or the Add button or Add menu item in a SmartToolbar.
• addRecord republishes the addRecord event to handle the Add for GroupAssign targets.
• addRecord can be customized when additional processing is needed at the start of an Add
operation. Keep in mind that when an addRecord override is invoked, the new record has
not yet been created, and there is no transaction active.
addRow (data.p)
Creates a new RowObject temp-table record, initializes it, and returns a list of
ColumnName/Value pairs to be displayed by the SmartDataViewer that called this procedure.
Parameters:
Returns: CHARACTER
Notes: None
87
addRow (sbo.p)
addRow (sbo.p)
SmartBusinessObject version of the function. It passes the column list on to the contained
SmartDataObject that manages that data.
Parameters:
Returns: CHARACTER
Notes: None
adjustActions (toolbar.p)
Called after realization of toolbar to adjust sizes
Parameters: None.
Returns: LOGICAL
Notes: Returns TRUE if change succeeded. Currently changes width of all actions in
a horizontal toolbar to maxwidth encountered during realization.
adjustTabOrder (smart.p)
Changes the tab order of SmartObjects.
Parameters:
Handle of either another SmartObject procedure or a widget-handle of the object that will
anchor the SmartObject.
88
anyKey (combo.p)
/* This example will make sure that the tab order position of a
SmartPanel in a SmartWindow is immediately before the fill-in field
FIELD-1 in that window. */
anyKey (combo.p)
Stub routine that can be used to trap a keypress and scroll to the first entry beginning with that
key character. Add your code to complete.
Parameters: None
Returns: Nothing (procedure)
Notes: Use LAST-EVENT:FUNCTION for testing keypress.
anyKey (lookup.p)
Routine that can be used to trap a keypress and display a single-value return by going directly
to the query.
Parameters: None
Returns: Nothing (procedure)
Notes: Use LAST-EVENT:FUNCTION for testing keypress.
89
anyKey (select.p)
anyKey (select.p)
Runs persistently on any key of the selection fill-in.
Parameters: None
Returns: Nothing (procedure)
Notes: Used only with the view-as browse option. The persistent trigger that calls
this is defined if DefineAnyKeyTrigger is true. The user could define an
override of this in selectcustom.p if more sophisticated interactions with the
data-source are required without starting the browse. For example:
anyMessage (smart.p)
Returns a flag indicating whether there is any message in the error message log.
Parameters: None
Returns: LOGICAL
Notes: Error messages generated during the execution of SmartObjects (especially
SmartDataObjects) are normally saved in a message log (actually just a
specially formatted character string). This assures that multiple messages can
be accumulated for multiple errors that occur during an update, and that they
will be returned properly to the client when the errors occur in a separate
Progress session on an AppServer. If using a SmartDataObject as the
data-source, check BOTH in the SmartDataObject and internally, because
WebSpeed-specific errors are always stored internally.
Examples:
IF anyMessage() THEN
/* code for unsuccessful update */
ELSE
/* code for successful update */
90
appendContainedObjects (sbo.p)
appendContainedObjects (sbo.p)
Builds the list of ContainedObjects in top-down Data-link order.
Parameters:
applyCellEntry (browser.p)
Applies "ENTRY" to the first enabled column in the browse, or to the column passed as an input
parameter.
Parameters:
INPUT pcCellName AS CHARACTER
Either the name of the browse column on which to put focus or a question mark (?)
to indicate the first column.
• Used internally to reposition to the correct column, for example, when a validation fails
for that column.
91
applyEntry (browser.p)
applyEntry (browser.p)
SmartDataBrowser version of applyEntry. Applies "ENTRY" to the first enabled column in the
browse if columns are enabled, or to the first enabled object in the SmartDataBrowser.
Parameters:
Either the name of the browse column on which to put focus or the name of an object part
of the SmartDataBrowser.
• Invoked when the ADM code needs to give focus to a SmartDataBrowser. The applyEntry
procedure runs applyCellEntry to do browse-specific repositioning to the proper browse
cell.
92
applyEntry (smart.p)
applyEntry (smart.p)
Applies “ENTRY” to the first enabled and visible object in the default frame (unless pcField is
specified) or in the first child that is a Frame.
Parameters:
An optional field name; if specified (that is, if this parameter is not blank or unknown), the
frame field of that name is positioned to.
/* This example will move focus to the first enabled and visible field in
the SmartDataViewer vCust. The handle hvCust would normally be
available in the SmartDataViewer’s container. This statement could
follow a message indicating that values needed to be entered for the
current record, for example.*/
93
applyFilter (filter.p)
applyFilter (filter.p)
Applies filter criteria to the filter-target.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The procedure parses the dynamic filter fields and builds a list of fields, operators and
values to pass to the query. The fields are only added to the list if the field or the operator
is MODIFIED. (A better mechanism to identify values that need to be added to the query
might become necessary). If columnQuerySelection returns any criteria for the field with
an operator that is not in the list to add, it will be added to a list of fields and operators to
remove from the query.
applyLayout (visual.p)
Applies the Master or an alternate layout for a SmartObject that has multiple layouts.
Parameters: None
Returns: Nothing (procedure)
Notes:
• applyLayout is invoked from initializeObject to set the correct layout during SmartObject
initialization. Runs the Layout procedure to apply the Master layout if it is already current
(in order to reset the user interface to its original state), and then runs the Layout procedure
(determined by the LayoutVariable property that is storing the LAYOUT–VARIABLE
preprocessor value) to apply the new layout.
94
assignActionAccelerator (action.p)
assignActionAccelerator (action.p)
Associates an accelerator with an action.
Parameters:
The action.
The accelerator.
Returns: LOGICAL
Notes: None
assignActionAccessType (action.p)
Associates an access type with an action.
Parameters:
The action.
Returns: LOGICAL
Notes: None
95
assignActionAlternateImageRule (action.p)
assignActionAlternateImageRule (action.p)
Returns TRUE if able to successfully assign some value to the AlternateImageRule for some
action.
Parameters:
Returns: LOGICAL
Notes: None.
assignActionCaption (action.p)
Associates a caption with an action.
Parameters:
The action.
The caption.
Returns: LOGICAL
Notes: None
96
assignActionDescription (action.p)
assignActionDescription (action.p)
Associates a descriptor with an action.
Parameters:
The action.
The descriptor.
Returns: LOGICAL
Notes: None
assignActionDisableRule (action.p)
Returns TRUE if able to assign some value to DisableRule for some action.
Parameters:
Returns: LOGICAL
Notes: None.
97
assignActionEnableRule (action.p)
assignActionEnableRule (action.p)
Returns TRUE if able to assign some value to EnableRule for some action
Parameters:
Returns: LOGICAL
Notes: None.
assignActionHideRule (action.p)
Returns TRUE if able to assign some value to HideRule for some action
Parameters:
Returns: LOGICAL
Notes: None.
98
assignActionImage (action.p)
assignActionImage (action.p)
Associates an image with an action.
Parameters:
The action.
The image.
Returns: LOGICAL
Notes: None
assignActionLabel (action.p)
A passive wrapper for the assignActionName function.
Parameters:
Returns: LOGICAL
Notes: actionLabel is an alias for actionName
99
assignActionName (action.p)
assignActionName (action.p)
Associates a name with an action
Parameters:
The action.
The name.
Returns: LOGICAL
Notes: None
assignActionOrder (action.p)
Associates an integer order number with an action.
Parameters:
The action.
The order.
Returns: LOGICAL
Notes: None
100
assignActionParent (action.p)
assignActionParent (action.p)
Associates a parent with an action.
Parameters:
The action.
The parent.
Returns: LOGICAL
Notes: None
assignActionSecondImage (action.p)
Returns TRUE if able to assign a new value to Image2 for some action
Parameters:
Returns: LOGICAL
Notes: None.
101
assignActionTooltip (action.p)
assignActionTooltip (action.p)
Returns TRUE if able to assign a new value to Tooltip for some action.
Parameters:
Returns: LOGICAL
Notes: None.
assignAttribute (xml.p)
Looks for the pdOwner node and assigns pcValue to the attribute pcName.
Parameters:
Returns: LOGICAL
Notes: None
102
assignColumn (action.p)
assignColumn (action.p)
Determines whether some action exists and, if so, associates a particular column with it.
Parameters:
Returns: LOGICAL
Notes: PRIVATE function.
assignColumnColumnLabel (dataextcols.p)
Sets the ColumnLabel text of some column.
Parameters:
Returns: LOGICAL
Notes: None
103
assignColumnFormat (dataextcols.p)
assignColumnFormat (dataextcols.p)
Sets the Progress format text of a specified column.
Parameters:
The name of the column that will have its FORMAT string changed.
Returns: LOGICAL
Notes: None
assignColumnFormat (filter.p)
Overrides the default format of a column.
Parameters:
Returns: LOGICAL
Notes: The value is stored with all overridden formats in the FieldFormats property.
The private insertFieldProperty function adds the field to the correct position
in the internal list. The columnFormat function uses the private fieldProperty
function to retrieve it again.
104
assignColumnHelp (dataextcols.p)
assignColumnHelp (dataextcols.p)
Sets the Progress Help text of a specified column.
Parameters:
The name of the column that will have its HELP text changed.
Returns: LOGICAL
Notes: None
assignColumnHelpId (filter.p)
Stores the HelpID for a column.
Parameters:
The HelpID.
Returns: LOGICAL
Notes: The value will be stored with all defined HelpIds in the internal FieldHelpIds
property. The private insertFieldProperty function will add the field to the
correct position in the internal list, and the private function fieldProperty must
be used to retrieve it.
105
assignColumnLabel (dataextcols.p)
assignColumnLabel (dataextcols.p)
Sets the Progress Column Label text of a specified column.
Parameters:
The name of the column that will have its Column Label changed.
Returns: LOGICAL
Notes: None
assignColumnLabel (filter.p)
Overrides the default label of a column.
Parameters:
Returns: LOGICAL
Notes: The value is stored with all overridden labels in the internal Label property.
The private functions insertFieldProperty and fieldProperty are used to store
and retrieve values.
106
assignColumnOperatorStyle (filter.p)
assignColumnOperatorStyle (filter.p)
Overrides the default OperatorStyle of a column.
Parameters:
Returns: LOGICAL
Notes: The value is stored in the internal FieldOperatorStyles property with all other
fields similarly overridden. The private insertFieldProperty and fieldProperty
functions are used to store and retrieve it.
assignColumnPrivateData (dataextcols.p)
Sets the Progress Private-data attribute of a specified column.
Parameters:
The name of the column that will have its Private-data string changed.
Returns: LOGICAL
Notes: None
107
assignColumnTooltip (filter.p)
assignColumnTooltip (filter.p)
Stores the tooltip for a column.
Parameters:
Returns: LOGICAL
Notes: This value will be stored with all other defined tooltips in the FieldToolTips
property. The private functions insertFieldProperty and fieldProperty are
used to store and retrieve the value.
assignColumnValExp (dataextcols.p)
Sets the Progress Validation Expression of a specified column.
Parameters:
The name of the column that will have its Validation Expression changed.
Returns: LOGICAL
Notes: This will not actually change the column’s validation, which is set
irrevocably at compile time. However, it can be retrieved by an object and
then used to generate validation code for the column.
108
assignColumnValMsg (dataextcols.p)
assignColumnValMsg (dataextcols.p)
Sets the Progress validation message text of a specified column.
Parameters:
The name of the column that will have its validation message changed.
Returns: LOGICAL
Notes: This does not actually change the column’s message, which is set irrevocably
at compile time. However, it can be retrieved by an object and then used to
generate a message on some sort of dynamic validation.
assignColumnWidth (filter.p)
Overrides the default width of a column.
Parameters:
Returns: LOGICAL
Notes: The default width is stored in the DefaultWidth or DefaultCharWidth
properties. The value is stored in the internal FieldWidths with all other
overridden widths. The private functions insertFieldProperty and
fieldProperty are used to store and retrieve it.
109
assignContainedProperties (sbo.p)
assignContainedProperties (sbo.p)
Sets properties in contained objects using the returned value of the containedProperties
function.
Parameters:
Returns: LOGICAL
Notes: None
assignCurrentMappedObject (sbo.p)
Identifies the current contained Data Object for purposes of Navigation or other access by the
caller.
Parameters:
Returns: LOGICAL
Notes: This function maps the caller to the specified SmartDataObject using the
ObjectMapping property.
110
assignDBRow (query.p)
assignDBRow (query.p)
Copies modified values from the RowObject row to the database records (which for an Update
have already been retrieved and locked).
If the RowMod field is “A” for Add or “C” for Copy, the procedure creates the database records
first and then does the assign.
Parameters:
assignLinkProperty (smart.p)
Sets a property value in one or more SmartObjects at the other end of a specified link, relative
to the TARGET–PROCEDURE.
Parameters:
Link type.
Property name.
Property value.
111
assignMaxGuess (browser.p)
Notes:
• If the property function is not there or is invalid, or if any of the set-functions fail, this
function returns FALSE.
Examples:
/* This example code from the updateRecord procedure makes sure that when
an update completes, and the DataModified property is turned off in
the SmartDataViewer which initiated the update, it is also turned off
in all other Viewers which may be linked in a GroupAssign. */
assignMaxGuess (browser.p)
Adds the argument value to the Browse widget’s MAX-DATA-GUESS attribute.
Parameters:
assignMaxGuess (sbo.p)
Gets the assignMaxGuess event from some contained SDO and passes it on to the appropriate
Data-Target
Parameters:
112
assignNodeValue (xml.p)
assignNodeValue (xml.p)
Assigns the value of a node. Looks at the node type and calls assignAttribute() or createText()
as appropriate.
Parameters:
Returns: LOGICAL
Notes: This adds the attribute in the document to its owner.
assignPageProperty (containr.p)
Sets the specified property in all objects on the CurrentPage of a SmartContainer. If some object
on the page does not have the property, it is ignored without error.
Parameters:
• This variation on assignLinkProperty is necessary because the notion of paging does not
fit well with PUBLISH/SUBSCRIBE. This is because there is a single property
(PageNTargets) that stores the handles of all of a SmartContainer’s objects that are not on
page 0 in a specially delimited list.
• The pcValue parameter is specified in CHARACTER form but can be used to assign
values to noncharacter properties.
113
assignQuerySelection (query.p)
• All objects in a Container will subscribe to initializeObject, etc., but the paging performs
the operation on subsets of those objects at a time. That is, the container will not publish
initializeObject to objects on a page other than zero until that page is first viewed. So
properties such as HideOnInit, which are set as part of initialization, must be set
page-by-page.
Examples:
/*
** Sets the DataModified property to "no"
*/
RUN assignPageProperty (‘DataModified’:U, ‘no’:U).
assignQuerySelection (query.p)
Assigns selection criteria to the query and distributes the column/value pairs to the
corresponding buffer’s where-clause. Each buffer’s expression will always be enclosed in
parentheses.
Parameters:
Returns: LOGICAL
114
assignQuerySelection (sbo.p)
Notes:
• This procedure is designed to run on the client and to be called possibly multiple times to
build up the query’s WHERE clause (storing intermediate results in the QueryString
property) before it is finally used in a Query–Prepare method.
• The QueryColumns property is used to ensure that each column and operator will be added
only once to the QueryString. The property is also used to store the offset and length of the
corresponding values.
assignQuerySelection (sbo.p)
SmartBusinessObject version of this where-clause function. It separates the Columns by
SmartDataObject and appropriately passes on the columns, their values, and operators.
Parameters:
Returns: LOGICAL
Notes: All columns must be qualified by their SmartDataObject Objectname as
TableName; this will be replaced with RowObject when the columns are
passed on to the SmartDataObject.
115
assignUnsubscribe (consumer.p)
assignUnsubscribe (consumer.p)
Changes the unsubscribe-on-close flag for a persistent subscription.
Parameters:
bandActions (toolbar.p)
Returns the available menu band for this toolbar master.
Parameters:
Returns: CHARACTER
Notes: Used in the Instance Property dialog to select MenuBands
bandSubmenuLabel (toolbar.p)
Returns the label for a specific child band, currently used for the instance-properties dialog.
Parameters:
Returns: CHARACTER
Notes: Currently used for instance property dialog
116
bandSubmenus (toolbar.p)
bandSubmenus (toolbar.p)
Returns the available child bands on a specific band
Parameters:
Band name. If the empty string, the menubar of the Toolbar master.
Returns: CHARACTER
Notes: Used in the Instance Property dialog to select MenuBands
batchServices (data.p)
Groups a sequence of SmartDataObject service requests into a single request and thereby
minimizes network messaging and improves performance.
Parameters:
A CHR(1)-delimited list of CHR(2)-delimited strings of output values that result from the
execution of the services listed in pcServices (above). There is a one-to-one
correspondence between the CHR(1)-delimited list of Services in pcServices (above) and
the CHR(1)-delimited list in pcValues. Procedures with no output parameters have a
NULL entry. The return values of functions appear as the first entry of the corresponding
CHR(2)-delimited list, followed by any output parameters.
117
beginTransactionValidate (datalogic.i)
beginTransactionValidate (datalogic.i)
Wrapper routine called automatically on entry into a transaction block.
Parameters: None
Returns: Nothing (procedure)
Notes: None
bindServer (appserver.p)
Binds the object to the server, as does getASHandle. However, bindServer does not expose the
handle, making it a better choice for outside callers.
Parameters: None
Returns: None (procedure)
Notes: None
blankField (filter.p)
Fully blanks some field and sets MODIFIED to FALSE.
Parameters:
118
blankFields (filter.p)
Returns: LOGICAL
Notes: Called by blankFields and resetFields. The special blankFillIn function
ensures that fill-in widgets are fully blanked.
blankFields (filter.p)
Restores all filter fields to the empty, unmodified state.
Parameters: None
Returns: Nothing (procedure)
Notes: None
blankFillIn (filter.p)
Makes a fill-in appear blank by manipulating its format string.
Parameters:
Returns: LOGICAL
Notes: Utility function called by blankFields and blankField.
119
browseHandler (select.p)
browseHandler (select.p)
Sets the properties in the newly started Browse widget.
Parameters:
bufferCompareDBToRO (query.p)
Performs a BUFFER-COMPARE of a database buffer and a RowObjUpd buffer.
Parameters:
Comma-separated list of field pairs to be compared individually. The pairs are mappings
from the target/source buffers where the field names differ.
Returns: LOGICAL
Notes: The primary purpose of this function is to detect when individual array fields
are referred to in the assign-list (pcAssigns) from the database buffer and
ensure that they are compared properly.
120
bufferCopyDBToRO (query.p)
bufferCopyDBToRO (query.p)
Performs a BUFFER–COPY of a database buffer to a row object buffer. In particular, if an
assign–list is used to map individual array elements from the database buffer to the row object
buffer, this procedure will ensure that the values are copied properly.
Parameters:
Handle to the row object buffer that is to be the target of the BUFFER–COPY.
Comma-delimited list of field pairs to be individually copied. The field pairs are mappings
of fields from the target/source buffers where the field names differ.
121
bufferHandle (action.p)
bufferHandle (action.p)
Returns the handle of the Actions temp-table, if the argument is "Action". Else returns an
undefined handle.
Parameters:
Returns: HANDLE
Notes: None
bufferWhereClause (query.p)
Returns the complete WHERE clause for a specified buffer, including leading blanks and
trailing blanks before the period, but excluding commas, the period, and trailing blanks after the
period. Returns the empty string if there is no WHERE clause found.
Parameters:
The query-prepare string, which might be "?" if the original string is meant to be used.
Returns: CHARACTER
Notes:
122
buildAllMenus (toolbar.p)
buildAllMenus (toolbar.p)
Builds all submenu branches before the persistent trigger Menu-Drop creates them at the mouse
click. Thus, accelerators (keyboard shortcuts) will be enabled as from startup.
Parameters: None
Returns: Nothing (procedure)
Notes: None
buildList (select.p)
Builds the list of fields to display and the corresponding SCREEN-VALUE for the widget.
Parameters: None
Returns: CHARACTER PRIVATE
Notes: Loops through all the rows in the data-source, building the list.
buildMenu (toolbar.p)
Builds one branch of a menu.
Parameters:
The name of the submenu that this menu will use as its parent.
Returns: LOGICAL
Notes: Called from onMenuDrop().
calcWidth (browser.p)
Calculates the exact width of the Browse in the dynamic SmartDataBrowser based on the
columns being displayed by it.
Parameters: None
Returns: Nothing (procedure)
Notes: Called by initializeObject.
123
callOutParams (b2b.p)
callOutParams (b2b.p)
Looks through a table and calls zero or more methods based on the value of pdNode.
Parameters:
Returns: LOGICAL
Notes: None
cancelNew (browser.p)
Deletes a currently selected NEW row from the Browse’s viewport.
Parameters: None
Returns: Nothing (procedure)
Notes: Published from dataSource on cancel of a new row. This works for the case
of an SBO where the SDO has no updateSource and the SBO has several. Too
much work is involved to have some kind of property to keep track of this.
Publish seems to be a more future-proof and dynamic way to do this, as it
should also work when supporting multiple/switchable updateSources for
SDOs. As the method ensures that this really is new, this should ensure that
the query only can have one browse.
cancelNew (sbo.p)
Receives the cancelNew event from a contained SDO and passes it on to the appropriate
DATA-TARGET.
Parameters: None
Returns: Nothing (procedure)
Notes: None
124
cancelObject (containr.p)
cancelObject (containr.p)
Cancels an object.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
• If this is the window container or a virtual container then override and do not call SUPER.
If not a window/virtual container, cancel and undo all containertargets and then destroy.
Published from containerTargets or called directly
• There is a slight overhead in this construct as destroyObject (called from exitObject - >
apply ‘close’) does a publish ‘confirmExit’, which really is unnecessary after this has
published ‘confirmCancel’. The reason is that destroyObject might be called directly.
cancelObject (datavis.p)
Passes an cancel request to its container
Parameters: None.
Returns: Nothing (procedure).
Notes: The convention is that the standard routine always passes an cancel, ok, or
exit request to its CONTAINER-SOURCE. The container that is actually able
to initiate the cancel should override this and not call SUPER.
125
cancelRecord (browser.p)
cancelRecord (browser.p)
SmartDataBrowser version of cancelRecord. Cancels an Update, Add, or Copy operation. For
a cancel of an add or copy, deletes the previously added row from the RowObject temp–table
in the associated SmartDataObject, and redisplays the previously current record. For a cancel of
an update, redisplays the field values of the previous row. Sets the value of the NewRecord
property back to “No”.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Invoked when an update is cancelled, usually by choosing the Cancel button in an Update
SmartPanel or the Cancel button or Cancel menu item in a SmartToolbar.
• Customized when additional processing is needed when a record Add, Copy, or Update is
cancelled. You might want to do this to restore other related nondatabase fields or other
objects to their original values, or to undo some action that was taken when the Add, Copy,
or Update was initiated.
cancelRecord (datavis.p)
Cancels an Update, Add, or Copy operation. For a cancel of an add or copy, resets the fields in
their previous state. If no record was available before the add, the fields are disabled.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Invokes the cancelRow() function in the update target of the visualization to delete the row
created for add or copy.
– Add or Copy — The new record is erased and the previously current record is
redisplayed.
– Update — The Update is cancelled and the record’s original values are redisplayed.
126
cancelRecord (viewer.p)
• Invoked when an update is cancelled, usually by choosing the Cancel button in an Update
SmartPanel or the Cancel button.
• Customized when additional processing is needed when a record Add, Copy, or Update is
cancelled. You might want to do this to restore other related nondatabase fields or other
objects to their original values, or to undo some action that was taken when the Add, Copy,
or Update was initiated.
cancelRecord (viewer.p)
Cancels an Update, Add, or Copy operation.
Parameters: None
Returns: Nothing (procedure)
Notes:
– Add or Copy — The new record is erased and the previously current record is
redisplayed.
– Update — The Update is cancelled and the record’s original values are redisplayed.
• cancelRecord republishes the “cancelRecord” event to handle the cancel for GroupAssign
targets.
• cancelRecord can be customized when additional processing is needed when a record Add,
Copy, or Update is canceled. You might want to do this to restore other related
nondatabase fields or other objects to their original values, or to undo some action that was
taken when the Add, Copy, or Update was initiated.
127
cancelRow (data.p)
cancelRow (data.p)
Cancels an Add, Copy, or Save operation.
Parameters: None
Returns: CHARACTER
Notes: Calls to cancelRow in turn callUndoUpdate, which restores the original
values of a modified row from the RowObjUpd record then deletes the
RowObjUpd record. In the cases of an Add or a Copy, both the new
RowObject and the RowObjUpd records are deleted. After all of this work
has been done, doUndoUpdate repositions the RowObject temp-table to what
was previously the current row. This is all done in doUndoUpdate because
direct access to the tables in the data.i include file greatly simplifies the
code.
cancelRow (sbo.p)
SmartBusinessObject version of this function. It passes the cancel request on to the appropriate
contained SmartDataObject, which does the actual work.
Parameters: None
Returns: CHARACTER
Notes: See the entry for data.p.
canFindAction (action.p)
Returns TRUE if an action exists.
Parameters:
Returns: LOGICAL
Notes: None
128
canFindCategory (action.p)
canFindCategory (action.p)
Calls findCategory to determine whether some category exists in TARGET-PROCEDURE.
Parameters:
Returns: LOGICAL
Notes: None.
canFindModRow (data.i)
Returns TRUE if some rowIdent value can be found in the ModeRowIdent temp-table.
Parameters:
Returns: LOGICAL
Notes: None
canNavigate (data.p)
Returns TRUE if this object has no children or its children have no commits pending. Children
with uncommitted updates prevent navigation by the parent.
Parameters: None
Returns: LOGICAL
Notes: This routine publishes isUpdatePending because that includes
rowObjectState in the check. Navigation objects receive updateState from the
objects they navigate and must perform this check in the source of any
updateComplete message. The updateComplete message can come from a
branch of a data-link tree; publishing isUpdatePending checks the whole tree.
129
canNavigate (datavis.p)
canNavigate (datavis.p)
Returns TRUE if the object can allow a navigation.
Parameters: None.
Returns: LOGICAL
Notes:
canNavigate (sbo.p)
Acts as a pass-through for the same function in some contained SDO, passing the result back to
the caller to which the SDO is mapped. An SDO can navigate if it has no children or its children
have no commits pending. Children with uncommitted updates prevent navigation by the
parent.
Parameters: None
Returns: LOGICAL
Notes: This routine publishes isUpdatePending because that includes
rowObjectState in the check. Navigation objects receive updateState from the
objects they navigate and must perform this check in the source of any
updateComplete message. The updateComplete message can come from a
branch of a data-link tree; publishing isUpdatePending checks the whole tree.
130
categoryActions (toolbar.p)
categoryActions (toolbar.p)
Returns the available actions for a specific category on this toolbar master.
Parameters:
The category of interest. "*" means “all”; the empty string means “uncategorized”.
Returns: CHARACTER
Notes: Used in the Instance Property dialog to select MenuBands
categoryLink (action.p)
Returns the value of Link for some category.
Parameters:
Returns: CHARACTER
Notes: None.
changeCursor (smart.p)
Sets the cursor on all windows and on any dialog box frames that are currently on the screen.
Parameters:
131
changePage (containr.p)
changePage (containr.p)
Views (and creates if necessary) objects on a newly selected page in a Container when
CurrentPage is reset.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The changePage procedure is normally used internally, called from either selectPage or
viewPage. It can be customized to perform some application-specific task each time a page
is changed, but developers must note that if it is called from selectPage (the normal case
for switching pages within a Container), the previous page will already have been hidden.
• The changePage procedure expects the CurrentPage property to have been set to the new
page before it is called.
• The changePage procedure does not hide the previously selected page. This will be done
before it is called from selectPage. If it is called from viewPage, the previous page is not
hidden first. This would be the case if the new page is a SmartWindow to be viewed in
addition to the current page in its container.
• If the new page is not page zero (which is always initialized at startup), and the objects on
the page have not yet been created, changePage runs createObjects to create all the
SmartObjects on the new page. If the SmartContainer itself has been initialized, it also
publishes “initializeObject” to initialize the new objects, and publishes “viewObject” to
view them.
Examples:
/* Display the current page number in a fill-in field whenever the page is
changed.*/
PROCEDURE changePage:
RUN SUPER. /* Perform the standard code first. */
FILL-IN-1:SCREEN-VALUE IN FRAME {&FRAME-NAME} =
STRING(DYNAMIC-FUNCTION("getCurrentPage":U)).
END PROCEDURE.
132
characterValue (b2b.p)
characterValue (b2b.p)
Traps the event of a text node being parsed.
Parameters:
checkRule (panel.p)
Check the rule of an action against the target
Parameters:
The activeTarget
Returns: LOGICAL
Notes: None.
133
clearActionCache (action.p)
clearActionCache (action.p)
Clears cached data by emptying the ttCategory and ttAction temp-tables.
Parameters: None.
Returns: Nothing (procedure).
Notes: Called by instance clearCache as well as directly by the Session Manager
clearCache (action.p)
Clears cached data in ttCategory and ttAction by calling clearActionCache.
Parameters: None.
Returns: Nothing (procedure).
Notes: Toolbar override deletes toolbar class tables
clearCache (toolbar.p)
Clear cached data by Emptying temp-tables
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
clearLogicRows (logic.i)
Cleans up tables, including RowObjUpd.
Parameters: None
Returns: Nothing (procedure)
Notes: None
134
clearToolbarCache (toolbar.p)
clearToolbarCache (toolbar.p)
Clear cached data by Empty temp-tables
Parameters: None.
Returns: Nothing (procedure).
Notes: Called from instance clearCache but also directly from session manager
clientSendRows (data.p)
Client-side routine called by sendRows when operating in n-tier mode (client, AppServer).
Calls its counterpart routine (serverSendRows) on the AppServer to assemble and retrieve a
batch of records.
Parameters:
The RowNum value of the record to start the batch to return. Typically piStartRow is ? as
a flag to use pcRowIdent instead of piStartRow.
The RowIdent of the first record of the batch to return. Can also be "FIRST" or "LAST"
to force the retrieval of the first (or last) batch of RowObject records.
The actual number of rows returned. This number will always be <= piRowsToReturn.
135
closeQuery (data.p)
Notes:
• All of the parameters are simply received from the caller and passed through to
serverSendRows on the AppServer. If piStartRow is not 0 or ? then pcRowIdent is
ignored. plNext is ignored if pcRowIdent is "FIRST" or "LAST".
• The most common use of piRowsReturned is to indicate that the entire result list has been
returned when it is less than piRowToReturn.
closeQuery (data.p)
Closes the RowObject temp-table query (on both the client side and the server side if the
SmartDataObject is split), then RUNs SUPER, which invokes closeQuery in query.p, to close
the database query.
Parameters: None
Returns: LOGICAL
Notes: None
closeQuery (query.p)
Closes the database query.
Parameters: None
Returns: LOGICAL
Notes: closeQuery should not be executed on the client side of a split
SmartDataObject because the database query only exists on the server side.
No harm will be done, but nothing will be closed.
136
collectChanges (datavis.p)
collectChanges (datavis.p)
Collects the screen values from the screen to assign them to the appropriate record. Values are
collected as a character value of a list form.
Parameters:
A comma-delimited list with three entries per object containing the number of fields
changed, the page number of the object, and its handle. This allows the proper page to be
viewed and focus applied to the proper field in the event of an error.
• Only values of fields that are modified are collected. (The MODIFIED attribute is used to
determine if the field is modified or not.)
137
columnColumnLabel (dataextcols.p)
columnColumnLabel (dataextcols.p)
Returns the label of some column.
Parameters:
This can take any of three forms: unqualified column name of the RowObject field;
column name of the RowObject field qualified with "RowObject"; qualified database field
name, if the field is mapped to the SDO.
Returns: CHARACTER
Notes: None
columnColumnLabel (sbo.p)
Returns the Progress Column Label of the column identified by the argument.
SmartBusinessObject version of the same SmartDataObject function.
Parameters:
INPUT pcColumn AS CHARACTER
Column name of the RowObject field being queried, qualified by the ObjectName of the
SmartDataObject.
Returns: CHARACTER
Notes: If no Column Label has been specified, then the Label is returned.
138
columnDataType (dataextcols.p)
columnDataType (dataextcols.p)
Returns the Progress data type of a specified column.
Parameters:
A column name. This can be either a RowObject field name or a qualified database field
name of a table in the database query.
Returns: CHARACTER
Notes: columnDataType recognizes that pcColumn is a qualified database field
name based on the presence of a period ("."). If pcColumn is a qualified
database field name and columnDataType is called on the client side of the
SmartDataObject, an attempt is made to resolve this on the client. The first
attempt is by using the mapped SmartDataObject name in a recursive call to
columnDataType. If this fails, and there is a ForeignFields property, the
corresponding data source field is queried by this function. As a last resort,
columnDataType is called on the Server side.
columnDataType (filter.p)
Returns the data type of some column.
Parameters:
Returns: CHARACTER
Notes: The field will always appear as type CHARACTER at design time, because
there is no target available.
139
columnDataType (query.p)
columnDataType (query.p)
Returns the data type of a database column.
Parameters:
Returns: CHARACTER
Notes: In the case of a field name with an extent, columnDataType is capable of
processing a pcColumn specified with brackets.
columnDataType (sbo.p)
Takes a column name, either unqualified or qualified by the SmartDataObject ObjectName, and
returns its data type by passing the request along to the appropriate Data Object. If the column
name is not qualified by the SmartDataObject ObjectName, the one with the first matching
column name is chosen.
Parameters:
140
columnDbColumn (query.p)
columnDbColumn (query.p)
Returns the qualified database name (DataBase.Table.FieldName) mapped to the RowObject
column specified in pcColumn.
Parameters:
Returns: CHARACTER
Notes: None
columnDbColumn (sbo.p)
SmartBusinessObject version of this function. It returns the qualified database name
(DatabaseName.TableName.FieldName) mapped to the RowObject column identified by
pcColumn.
Parameters:
Returns: CHARACTER
Notes: None
columnExtent (dataextcols.p)
Returns the Progress extent of a specified column.
Parameters:
Returns: INTEGER
Notes: None
141
columnExtent (sbo.p)
columnExtent (sbo.p)
Returns the extent of the specified RowObject column. SmartBusinessObject version of the
SmartDataObject function.
Parameters:
Returns: INTEGER
Notes: The SDO columnDataType option of permitting a name qualified by database
table name is not supported.
columnFilterTarget (filter.p)
Returns the Filter-Target of some column.
Parameters:
Returns: HANDLE
Notes: Currently, this presumes that all columns have the same Filter-Target. This
might be changed. Always use this function to determine the Filter-Target of
a specific field.
columnFormat (dataextcols.p)
Returns the Progress format of a specified column.
Parameters:
Returns: CHARACTER
Notes: None
142
columnFormat (filter.p)
columnFormat (filter.p)
Returns the format string of some column in the Filter-Target.
Parameters:
Returns: CHARACTER
Notes:
• If the format is overridden, the string will be found in the CHR(1)-separated FieldFormats
property.
• If there is a valid Filter-Target, it will query that object and pass through the string it
returns. Otherwise, it will return the evaluation of {&CHARFORMAT}.
columnFormat (sbo.p)
Returns the format of the specified RowObject column. SmartBusinessObject version of the
SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: The SDO columnDataType option of permitting a name qualified by database
table name is not supported.
143
columnHandle (dataextcols.p)
columnHandle (dataextcols.p)
Returns the handle of some RowObject column.
Parameters:
The column name, possibly qualified with "RowObject", or the qualified database field
name, if the field is mapped to the SDO.
Returns: HANDLE
Notes: None
columnHelp (dataextcols.p)
Returns the Progress Help text of a specified column.
Parameters:
Returns: CHARACTER
Notes: None
columnHelp (sbo.p)
Returns the Help text for the specified RowObject column. SmartBusinessObject version of the
SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: The SDO columnDataType option of permitting a name qualified by database
table name is not supported.
144
columnHelpId (filter.p)
columnHelpId (filter.p)
Returns the HelpId of some column.
Parameters:
Returns: INTEGER
Notes: The actual value is stored in the FieldHelpIds property.
columnInitial (dataextcols.p)
Returns the initial value for a specified field as a character string with the field FORMAT
applied.
Parameters:
Returns: CHARACTER
Notes: For example, if the value of a numeric field is 123456789 and the format is
"999-99-9999", columnInitial would return a character string containing
"123-45-6789".
145
columnInitial (sbo.p)
columnInitial (sbo.p)
Returns the initial value for a specified field as a character string with the field FORMAT
applied. SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes:
• For example, if the value of a numeric field is 123456789, and the format is
“999-99-9999”, columnInitial() would return a character string containing
“123-45-6789”—the result of imposing the format on the value.
• The SDO columnDataType option of permitting a name qualified by database table name
is not supported.
columnLabel (dataextcols.p)
Returns the Progress Column label of a specified column.
Parameters:
Returns: CHARACTER
Notes:
• If no column-label has been specified for pcColumn, then the Label is returned instead.
• If no column-label and no label have been specified, then the column name is returned.
146
columnLabel (filter.p)
columnLabel (filter.p)
Returns the label of some column in the Filter-Target or the empty string if no label is defined.
Parameters:
Returns: CHARACTER
Notes: If the label is overridden it will be found in the CHR(1)-separated FieldLabels
property.
columnLabel (sbo.p)
Takes a column name, either unqualified or qualified by the SmartDataObject ObjectName, and
returns its Label by passing the request along to the appropriate SmartDataObject. If the column
name is not qualified by the SmartDataObject ObjectName, the first matching column name is
used to identify the recipient SmartDataObject.
Parameters:
Returns: CHARACTER
Notes: None
columnLabelDefault (filter.p)
Design-time function. Returns TRUE if the label for some Filter-Target column is overridden.
Parameters:
Returns: LOGICAL
Notes: Only used at design time because columnLabel returns the overridden value.
147
columnMandatory (sbo.p)
columnMandatory (sbo.p)
Returns TRUE or FALSE depending on whether a specified RowObject field is mandatory.
SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: LOGICAL
Notes: The SDO columnDataType option of permitting a name qualified by database
table name is not supported.
columnModified (dataextcols.p)
Returns TRUE if a specified column has been modified in the RowObject record.
Parameters:
Returns: LOGICAL
Notes: The only way to do this is to see if the row has been modified and then
compare the changed and unchanged copies; there is no MODIFIED attribute
on the BUFFER–FIELD.
148
columnModified (sbo.p)
columnModified (sbo.p)
Returns TRUE or FALSE depending on whether a specified RowObject field has been
modified. SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: LOGICAL
Notes:
• The SDO columnDataType option of permitting a name qualified by database table name
is not supported.
columnObjectHandle (sbo.p)
Takes an unqualified SmartDataObject column name and returns the procedure handle of the
first SmartDataObject in this SmartBusinessObject that has that column name.
Parameters:
Returns: HANDLE
Notes: Column Name requests for SmartBusinessObjects should normally be
qualified by their SmartDataObject ObjectName. This function is used to
identify a SmartDataObject when only the column name is known.
149
columnOperatorStyle (filter.p)
columnOperatorStyle (filter.p)
Returns the operator style for some field, derived either from FieldOperatorStyles or the
OperatorStyle property.
Parameters:
Returns: CHARACTER
Notes: At present, the function behaves in a restricted way:
• If the value from FieldOperatorStyles is "Inline", the function returns the OperatorStyle
property.
columnPrivateData (dataextcols.p)
Returns the Progress Private-Data attribute of a specified column.
Parameters:
Returns: CHARACTER
Notes: None
150
columnPrivateData (sbo.p)
columnPrivateData (sbo.p)
Returns the PrivateData attribute of the specified RowObject field. SmartBusinessObject
version of the SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: None
columnProperty (sbo.p)
Identifies the SDO in which some columnpropname retrieval function should run, runs the
function in that SDO, and returns the value so obtained. Internal utility function.
Parameters:
Procedure handle.
151
columnProps (data.p)
columnProps (data.p)
Returns a list of all requested properties for all the requested columns of the RowObject table.
If the pcColList parameter is ”*”, then returns all the columns in the RowObject Column List.
Parameters:
A comma-separated list of properties to be returned. Valid list items are DataType, Extent,
Format, Help, Initial, Label, Mandatory, Modified, PrivateData, QuerySelection,
ReadOnly, StringValue,ValExp, ValMsg, and Width.
Returns: CHARACTER
Notes: Returns a character string of <col1Props> CHR(3) <col2Props> ... where
each <colnProps> is of the form: <columnName> CHR(4) Prop1Value>
CHR(4) Prop2Value ...
columnQuerySelection (dataextcols.p)
Returns a CHR(1)- separated string with ALL operators and values that have been added to the
Query for this column using the assignQuerySelection method.
Parameters:
Returns: CHARACTER
Notes: The data returned represents the query string, which can represent the current
query, but is really what will be used in the next openQuery.
152
columnQuerySelection (query.p)
columnQuerySelection (query.p)
Returns a CHR(1)-separated string with ALL operators and values that have been added to the
Query for this column using the assignQuerySelection method.
Parameters:
Returns: CHARACTER
Notes:
• The data returned is derived from the QueryString property, so there is no guarantee that
the query has been opened yet.
153
columnQuerySelection (sbo.p)
columnQuerySelection (sbo.p)
Returns CHR(1)-separated string with all operators and values—but not the fieldnames—that
have been added to the Query for this column by assignQuerySelection(). SmartBusinessObject
version of the SmartDataObject function.
Parameters:
Name of the column of interest, qualified with the ObjectName of the owning
SmartDataObject.
Returns: CHARACTER
Notes:
• For example, if the query contains "custnum > 5 and custnum < 9", then this function will
return: ">#5#<#9" (the "#" represents the CHR(1) character). The field name "custnum"
is not included in the return.
• This override is needed to take a RowObject column as input and pass the mapped
database column to the super procedure in query.p. The data returned reflects the
QueryString/QueryColumns properties maintained by the assignQuerySelection. These
values might not have been used in an openQuery yet.
columnReadOnly (dataextcols.p)
Returns TRUE if a specified column is READ–ONLY in the SmartDataObject, that is, if it is
not in the list of updateable Columns.
Parameters:
Returns: LOGICAL
Notes: A visualization can use this dynamically to determine whether the field
should be updateable on the screen. Even still, there might be circumstances
where it is desirable to have it updateable on the screen but if it is
READ–ONLY in the SmartDataObject, any changes sent back to the
SmartDataObject will not be made in the RowObject temp-table and,
therefore, in the database.
154
columnReadOnly (sbo.p)
columnReadOnly (sbo.p)
Returns TRUE or FALSE depending on whether the specified column is READ-ONLY in the
owning SmartDataObject. SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: LOGICAL
Notes:
• A visualization can use this function dynamically to determine whether the field should be
updateable on the screen. There might be circumstances where it is desirable to have some
field updateable on the screen, but if the field is READ-ONLY in the SmartDataObject,
updates made to the values on the screen will be discarded without notice by the
SmartDataObject.
• The SDO columnDataType option of permitting a name qualified by database table name
is not supported.
columnStringValue (action.p)
Returns the BUFFER-VALUE of the identified column, if it exists.
Parameters:
Returns: CHARACTER
Notes: PRIVATE function
155
columnStringValue (dataextcols.p)
columnStringValue (dataextcols.p)
Returns the STRING–VALUE of a specified column in the SmartDataObject RowObject
buffer. The STRING–VALUE is the value of a field expressed as a character string formatted
according to the columns FORMAT expression.
Parameters:
Returns: CHARACTER
Notes: None
columnStringValue (sbo.p)
Returns the STRING-VALUE of some column in the SmartDataObject RowObject buffer. The
STRING-VALUE is a character string formed by imposing the column’s FORMAT expression
on the column’s value. SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: None
156
columnStyleDefault (filter.p)
columnStyleDefault (filter.p)
Returns TRUE if the column’s style is overridden.
Parameters:
Returns: LOGICAL
Notes: Only used at design time because the columnOperatorStyle function returns
the overridden value.
columnTable (dataextcols.p)
Returns the name of the table mapped to some RowObject column.
Parameters:
The identifier of interest, which can be a column name from RowObject or a qualified
column name from a database.
Returns: CHARACTER
Notes: Returns the empty string if not found, "?" if ambiguous. Called on the server
as a last resort when dealing with unmapped fields.
157
columnTable (query.p)
columnTable (query.p)
Returns the associated table name, possibly qualified with the database name, for a column.
Parameters:
The name of the field of interest. Can take any of the forms DB.TBL.FLD, TBL.FLD, or
FLD. Unless fully qualified, matches the first found.
Returns: CHARACTER
Notes:
• Call to ensure and fix a column reference according to the query’s use of database
qualification.
• calls this function only for qualified fields; it overrides it for unqualified
Data.p
RowObject columns.
columnTable (sbo.p)
Returns the database table name of a column. SmartBusinessObject version of the
SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: None
158
columnTooltip (filter.p)
columnTooltip (filter.p)
Returns the tooltip for some column in the Filter-Target.
Parameters:
Returns: CHARACTER
Notes: The actual value is returned from the FieldTooltips property.
columnValExp (dataextcols.p)
Returns the validation expression for a specified column.
Parameters:
Unqualified column name of the RowObject field; column name qualified with
"RowObject"; qualified database field name, if the field is mapped to the SDO.
Returns: CHARACTER
Notes: None.
columnValExp (sbo.p)
Returns the validation expression for some column in a RowObject temp-table.
SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: None
159
columnValMsg (dataextcols.p)
columnValMsg (dataextcols.p)
Returns the Progress Validation message for a specified column of the SmartDataObjects
RowObject temp-table.
Parameters:
Returns: CHARACTER
Notes: None
columnValMsg (query.p)
Returns the validation message for a specified database column.
Parameters:
The name of the field of interest. Can take any of the forms DB.TBL.FLDNM,
TBL.FLDNM, or FLDNM. Unless fully qualified, matches the first found.
Returns: CHARACTER
Notes: This function can handle a bracketed argument.
columnValMsg (sbo.p)
Returns the validation message for some column in a RowObject temp-table.
SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: None
160
columnValue (dataextcols.p)
columnValue (dataextcols.p)
Returns the raw (unformatted) character value of some column in a SmartDataObject
RowObject buffer.
Parameters:
Returns: CHARACTER
Notes: This is different from columnStringValue, which returns the formatted value.
columnValue (sbo.p)
Returns the raw (unformatted) character value of some field in a RowObject temp-table.
SmartBusinessObject version of the SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: None
161
columnWidth (dataextcols.p)
columnWidth (dataextcols.p)
Returns the width (in character units) of a specified column in the SmartDataObjects
RowObject temp-table.
Parameters:
Returns: DECIMAL
Notes:
• The width is settable inside of the column editor when editing the fields of the
SmartDataObject. However, its default is based on the number of characters needed to
satisfy the FORMAT expression assigned to the field.
• The width can be used as a reference by the visualization, but the visualization does not
necessarily use the same width.
columnWidth (filter.p)
Returns the width (in character units) of a specified column.
Parameters:
Returns: DECIMAL
Notes:
• Checks the internal FieldWidths property to see if the width is overridden. If not, it returns
the default widths from the DefaultCharWidth or DefaultWidth properties.
• The field widget is not used because this value needs to be read before or while the object
is created.
162
columnWidth (sbo.p)
columnWidth (sbo.p)
Returns the width in character units of the named column. SmartBusinessObject version of the
SmartDataObject function.
Parameters:
Returns: DECIMAL
Notes: None
columnWidthDefault (filter.p)
Returns TRUE if the width is overridden.
Parameters:
Returns: LOGICAL
Notes: Only used in design-time because the columnWidth function returns the
overridden value.
163
colValues (browser.p)
colValues (browser.p)
Formats the values in the current row of the SmartDataBrowser query for the specified column
list. SmartDataBrowser version of colValues.
Parameters:
• Only used when the SmartDataBrowser has its own database query defined.
• Passes back a CHR(1)-delimited list with the RowIdent as the first value in all cases and
fields values (in the order they are requested).
colValues (data.p)
Returns a CHR(1)-delimited list of values for the requested columns (in pcViewColList) of the
current row of the RowObject. The first value is the RowObject ROWID and RowIdent (the
RowIDs of the database records from which the RowObject row is derived) separated with a
comma. Subsequent values are formatted according to each column’s FORMAT expression.
Parameters:
Returns: CHARACTER
Notes: The form of the first value is: <RowObject ROWID>,<DB Buffer1
ROWID>,<DB Buffer2 ROWID>,... This is used as a key to uniquely
identify the row and its origins in the database.
164
colValues (query.p)
colValues (query.p)
Formats into character strings (using the field format specification) a row of values from the
current row of the database Query for the specified column list.
Parameters:
Returns: CHARACTER
Notes: Passes back a CHR(1)-separated list of formatted values preceded by the
RowIdent code (a comma-separated list of rowids of the database records
from which the row is derived) as the first value in all cases.
colValues (sbo.p)
Locates requested columns in contained Data Objects and assembles a list of their values.
SmartBusinessObject version of the similar SmartDataObject function.
Parameters:
Returns: CHARACTER
Notes: If values are requested from only one SmartDataObject, then the RowIdent
entry returned as the head of the return value will be the RowIdent from that
SmartDataObject (its tt rowid + db rowids). Otherwise, a list is returned of all
the tt rowids without their db rowids. This will allow submitRow() to send
the correct rowid on to each contained SmartDataObject on
update.columnWidth (sbo.p).
165
Commit (data.i)
Commit (data.i)
Client-side part of the Commit function. Copies changed records into an update temp-table and
sends it to the serverCommit procedure.
Parameters: None
Returns: LOGICAL
Notes:
commitTransaction (data.p)
This event procedure receives the Commit message from a Commit panel or other Commit
source. It then invokes the Commit function to actually commit the changes. After the Commit
function finishes, commitTransaction handles any error messages by calling
showDataMessages.
Parameters: None
Parameters: Nothing (procedure)
Notes: A transaction block is opened in serverCommit (called by the commit
function) only if the SmartDataObject is running C/S. That is, no transaction
block occurs on the client side of a split SmartDataObject.
commitTransaction (sbo.p)
Client-side event procedure that receives the Commit event, gathers up the updates from
contained SmartDataObjects, and passes them on to the server.
Parameters: None
Returns: Nothing (procedure)
Notes: None
166
compareDBRow (query.p)
compareDBRow (query.p)
Does a buffer–compare of the current RowObjUpd row to the database records it is derived
from. If any fields have been changed, the name of the first table with changed fields is returned
in the RETURN–VALUE of the procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: The dynamic buffer–compare does not return the names of fields that were
changed, so this information is not available to put into a message. The
procedure returns the first table name that has fields that do not match.
confirmCancel (containr.p)
Make sure unsaved changes are cancelled and uncommitted data are undone before allowing its
container to initiate a “destroy” operation.
Parameters:
• The name confirm is used as it is in family with the other confirm methods, but this does
not ask any questions Invoked at the top by cancelObject.
167
confirmCancel (datavis.p)
confirmCancel (datavis.p)
Verifies that no data will be lost before allowing its container to initiate a destroy operation.
Parameters:
If TRUE on output, there is a problem and you should cancel the destroy operation
confirmCommit (datavis.p)
Checks to be sure there are no unsaved changes before allowing the data-source to start a
commitTransaction operation.
Parameters:
confirmCommit (query.p)
Checks the state of all data-targets to see if it can commit. If there are unsaved changes, the I-O
parameter should return cancel = TRUE. The visual objects (visual.p) will, however, offer the
user the opportunity to save/cancelRecord in order to be able to commit.
Parameters:
168
confirmContinue (datavis.p)
confirmContinue (datavis.p)
Checks to make sure there are no unsaved or uncommitted data changes before allowing its
data-source to start an "Apply filter" operation.
Parameters: None
Returns: LOGICAL
Notes: None
confirmContinue (query.p)
Asks all data-targets whether they have changes pending.
Parameters:
Returns: LOGICAL
Notes:
• If any data-target reports a pending change, this routine returns pioCancel = TRUE to its
caller. The caller then must handle the discrepancy, typically by reporting the unsaved
changes to the user and requesting disposition instructions (Save, Discard, etc.).
• This method should be called from any method that might change the result set somewhere
in the data-source chain like openQuery or navigation actions. Currently called from the
filter-source to see if new criteria can be applied. (Currently the Navigation actions are
disabled whenever a state that might disallow continuation is set to TRUE, but if a less
modal dialog could be achieved by calling this from one of the fetch methods.)
169
confirmContinue (sbo.p)
confirmContinue (sbo.p)
If called with a value of FALSE, asks all contained SDOs whether they have changes pending.
Parameters:
Returns: LOGICAL
Notes: If any SDO reports a pending change, this routine returns pioCancel = TRUE
to the caller. The caller then must handle the discrepancy, typically by
reporting the unsaved changes to the user and requesting disposition
instructions (Save, Discard, etc.).
confirmDelete (datavis.p)
Hook that allows you to force the user to confirm a pending deletion so that it can be aborted if
not intended.
Parameters:
170
confirmExit (containr.p)
confirmExit (containr.p)
Passes this event on to its descendents, to check whether it is OK to exit (that is, there are no
unsaved changes).
Parameters:
If field values have been modified and not saved, it returns TRUE and the destroyObject
is cancelled.
confirmExit (datavis.p)
Data visualization version of confirmExit. Checks the value of the DataModified and
RowObjectState properties to make sure there are not unsaved or uncommitted changes before
allowing its container to initiate a "destroy" operation.
Parameters:
If field values have been modified and not saved, it returns TRUE and the destroyObject
will be cancelled.
• A SmartContainer publishes this event to all its container targets before initiating
destroyObject. If data are modified in one of its container targets, the destroyObject is
cancelled.
• The first object where updates are uncommitted will display the message “Unsaved
changes. Exit operation cancelled.”.
• Used internally. Could be customized to add additional checks before allowing an Exit, or
to modify the message displayed.
171
confirmOk (containr.p)
confirmOk (containr.p)
Make sure unsaved changes are saved and uncommitted data is committed before allowing its
container to initiate a “destroy” operation.
Parameters:
• This routine is named ‘confirm’ because it is similar to the other confirm methods, though
this does not ask any questions.
confirmOk (datavis.p)
Make sure unsaved changes are saved and uncommitted data is committed before allowing its
container to carry out a destroy operation.
Parameters: None.
Returns: Nothing (procedure).
Notes: The name confirm is used as it is in family with the other confirm methods,
but this does not ask any questions
172
confirmUndo (datavis.p)
confirmUndo (datavis.p)
Checks to make sure there are no unsaved changes before allowing its data-source to start an
undoTransaction operation.
Parameters:
confirmUndo (query.p)
If called with a FALSE argument, publishes confirmUndo all data-targets to see whether any
are Modified or in AddMode. Returns TRUE if the undo should be cancelled. The visual objects
(visual.p) will warn the user that unsaved changes will be cancelled.
Parameters:
constructMenu (toolbar.p)
Runs from initializeMenu when toolbar instance is first instantiated. Returns TRUE if
successful.
Parameters: None
Returns: LOGICAL
Notes: This procedure must only be run ONCE and must be run before buildToolbar.
173
constructMenuBand (toolbar.p)
constructMenuBand (toolbar.p)
Constructs a menu band from Repository data. Returns TRUE if successful.
Parameters:
Returns: LOGICAL
Notes: The band submenu must exist as a handle
constructObject (containr.p)
RUN from adm-create-objects to RUN a SmartObject, and to establish its parent and initial
property settings.
Parameters:
174
constructObjectMenus (toolbar.p)
constructObjectMenus (toolbar.p)
Builds some group of menu bands from Repository data.
Parameters:
The identifier
A placeholder action
Returns: LOGICAL
Notes: None.
constructToolbar (toolbar.p)
Construct the toolbar from Repository data.
Parameters: None.
Returns: LOGICAL
Notes: This will realize bands read from the repository. Non-repository toolbars are
created with createToolbar. Both use createToolbarAction to realize the
actions/widgets.
175
containedProperties (sbo.p)
containedProperties (sbo.p)
Returns a CHR(3)-delimited list where the first entry is the passed query parameter. The rest of
the entries consists of paired objectNames and CHR(4)-delimited properties. For “plDeep”
queries the ObjectName will be colon separated to uniquely identify levels in the tree. The
second in each pair is a chr(4)-separated list of values where each entry corresponds to the
Propertlist for that object. For example:
<pcQueryProps>CHR(3)<ObjectName1>CHR(3)<PropAvalue>CHR(4)<PropBvalue>CHR(
3)<ObjectName2>CHR(3)<PropAvalue>CHR(4)<PropBvalue>.
Parameters:
If TRUE, continue query in children of children. If FALSE, query only one level down.
This parameter is not currently used.
Returns: CHARACTER
Notes: The FORMAT of the returned string is INTERNAL and intended to be
transported as is (across servers) to be passed into assignContainedProperties.
copyColumns (data.p)
Called from copyRow to move column values to the new row.
Parameters:
176
copyRecord (browser.p)
copyRecord (browser.p)
Initiates creation of a new record starting with a copy of the previously displayed record.
SmartDataBrowser version of copyRecord.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Invokes copyRecord in datavis.p (RUN SUPER), which in turn will invoke the
copyRow function in the associated SmartDataObject to add a new row to the RowObject
temp–table.
• For a SmartDataBrowser, a new blank row will be inserted below the currently selected
one. Values that are copied from copyRecord are not displayed here, they are displayed
from the ROW–ENTRY trigger (%DLC%/src/adm2/brsentry.i).
• Sets the BrowseInitted property to FALSE. This property is used in the ROW–ENTRY
trigger where the actual display of the copied record takes place to make sure the
“initialization logic” for copy is executed once.
• Invoked when a Copy operation is initiated, usually by choosing the Copy button in an
Update SmartPanel or in a SmartToolbar.
177
copyRecord (datavis.p)
copyRecord (datavis.p)
Initiates creation of a new record, starting with a copy of the previously displayed record.
Parameters: None
Returns: Nothing (procedure)
Notes:
• copyRow() is invoked in the update target, which creates the new RowObject temp-table
record and copies the current row to it.
• Displays the previously displayed record’s values and allows data entry. The new record
is not actually created until it is committed in serverCommit. See the addRecord reference
entry for additional notes.
• Invoked when a Copy operation is initiated, usually by choosing the Copy button.
copyRecord (viewer.p)
Initiates creation of a new record starting with a copy of the previously displayed record.
Parameters: None
Returns: Nothing (procedure)
Notes:
• copyRecord displays the previously displayed record’s values and allows data entry. The
new record is not actually created until it is committed in serverCommit. See the
addRecord reference entry for additional notes.
• copyRow() is invoked in the update target, which creates the new RowObject temp-table
record and copies the current row to it.
• copyRecord is invoked when a Copy operation is initiated, usually by choosing the Copy
button from an Update SmartPanel or the Copy button or Copy menu item from a
SmartToolbar.
178
copyRow (data.p)
• copyRecord republishes the “copyRecord” event to handle the Copy operation for any
GroupAssign targets.
copyRow (data.p)
Creates a new RowObject temp-table record, copies all of the current row values to it. The
return value of this function is a CHR(1)-delimited list of the values of the current row as
specified in the input parameter pcViewColList. The first value of this return value is the
RowIdent of the newly created row.
Parameters:
A comma-separated list of columns whose values are to be returned for the newly created
row.
Returns: CHARACTER
Notes: None
copyRow (sbo.p)
Passes the column list on to the contained DataObject that manages that data.
SmartBusinessObject version of this function.
Parameters:
Returns: CHARACTER
Notes: Qualify all columns or no columns.
179
countButtons (panel.p)
countButtons (panel.p)
Walks the widget tree of the frame, counts all the buttons, and sets the ButtonCount property.
Parameters: None
Returns: Nothing (procedure)
Notes: This sets the Panel property ButtonCount. For internal use only.
create3DRule (toolbar.p)
Creates a separator in the form of a rectangle between toolbar actions.
Parameters:
Returns: HANDLE
Notes: None
createAttribute (xml.p)
Creates an Attribute in an element and returns its unique id.
Parameters:
NodeId of OwnerElement.
180
createButton (toolbar.p)
AttributeValue.
Returns: DECIMAL
Notes: The attribute is not added to the actual element if pcValue is undefined.
createButton (toolbar.p)
Creates a tool button in the toolbar.
Parameters:
Parent frame.
Returns: HANDLE
Notes: Creates a persistent trigger ON CHOOSE that runs onChoose( pcName ).
181
createConsumers (consumer.p)
createConsumers (consumer.p)
Creates message consumers for normal message retrieval, shutdown message retrieval, and
error handling.
Parameters: None
Returns: Nothing (procedure)
Notes: A message consumer for normal message delivery is created for each
destination temp-table record. A message consumer is created to receive a
shutdown message if the ShutDown property has a value. And a message
consumer is created to handle errors.
createControls (smart.p)
Default action for SmartObject-specific initialization of ActiveX Controls. Runs
adm–create–controls, an AppBuilder-generated procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: A localization of this behavior should be placed in a procedure called
createControls in the SmartObject. The Version 8-style name
adm–create–controls for the standard behavior is maintained in order to allow
a localization in the same procedure file.
createDocument (router.p)
Creates an empty document.
Parameters: None
Returns: LOGICAL
Notes: Override of xml.p that does not delete the current document.
182
createDocument (xml.p)
createDocument (xml.p)
Creates an empty document.
Parameters: None
Returns: LOGICAL
Notes: None
createElement (xml.p)
Creates an Element in the document and returns its unique id.
Parameters:
NodeId of Parent.
Returns: DECIMAL
Notes: None
createField (filter.p)
Create the Filter for one field.
Parameters:
Frame handle.
183
createField (filter.p)
Datatype to use.
View-as.
Format.
Tooltip text.
Help ID.
Row.
Column.
Height. (If this is an editor, a height > 2 will be used to set inner-lines instead of height,
and the editor will have word-wrap and a vertical scrollbar.)
Width.
Returns: HANDLE
Notes: PRIVATE function.
184
createLabel (combo.p)
createLabel (combo.p)
Creates the label for the Combo Box.
Parameters:
Returns: HANDLE
Notes: This function is separated in order to be able to create the label in
design-mode. The label is defined in the parent Frame.
createLabel (filter.p)
Creates the label for the filter-field.
Parameters:
Returns: HANDLE
Notes: PRIVATE function.
185
createLabel (lookup.p)
createLabel (lookup.p)
Creates the label for the Lookup.
Parameters:
Returns: HANDLE
Notes: This function is separated in order to create the label in design-mode. The
label is defined in the parent Frame.
createLabel (select.p)
Creates the label of the selection. The label is added to the parent frame.
Parameters:
Returns: HANDLE
Notes:
• Instance properties:
– Shows label when label is set from the data-source. The dialog knows the
Data-Source, but this super procedure cannot find it because the link is not
implemented.
186
createMenuAction (toolbar.p)
createMenuAction (toolbar.p)
Creates a menu and returns its handle.
Parameters:
Returns: HANDLE
Notes: None.
createMenuBar (toolbar.p)
Creates an empty menu bar object on the window and returns its handle.
Parameters: None
Returns: HANDLE
Notes: None
187
createMenuItem (toolbar.p)
createMenuItem (toolbar.p)
Creates a menu item with an ON CHOOSE trigger defined.
Parameters:
Parent frame.
Action accelerator.
Returns: HANDLE
Notes: Creates a persistent trigger ON CHOOSE that runs onChoose( pcName ).
createMenuTable (toolbar.p)
Creates a temp-table for a menu.
Parameters:
The unique action name of already-created parent. If blank, the table belongs to the menu
bar.
A unique name.
188
createMenuTable2 (toolbar.p)
TARGET-PROCEDURE
createMenuTable2 (toolbar.p)
Create the temp-table for a menu.
Parameters:
The unique action name of an existing parent, or the empty string if the new menu is the
menu bar
Where to create it
189
createMenuToggle (toolbar.p)
createMenuToggle (toolbar.p)
Creates a menu item that is toggled with an ON CHOOSE trigger.
Parameters:
Parent frame.
Action accelerator.
Returns: HANDLE
Notes: Creates a persistent ON VALUE-CHANGED trigger that runs
onValueChanged(pcName).
190
createNode (xml.p)
createNode (xml.p)
Creates a Node in the document and returns its id.
Parameters:
NodeId of Parent.
Returns: DECIMAL
Notes: None
191
createObjects (containr.p)
createObjects (containr.p)
Standard code for running the objects in a Container. It runs the AppBuilder-generated
procedure named adm–create–objects for compatibility with Version 8.
Parameters: None
Returns: Nothing (procedure)
Notes:
Examples:
PROCEDURE createObjects:
/* Purpose: Add some extra objects to key pages. Note that because these
objects are being created by custom code, they will not appear in the
AppBuilder at design time. */
192
createOperator (filter.p)
createOperator (filter.p)
Creates the widget to use as operator or fill-in for the range option.
Parameters:
Column position.
Column width.
Returns: HANDLE
Notes: None
193
createRow (data.p)
createRow (data.p)
Accepts a list of values to create a new row in a RowObject temp-table.
Parameters:
Returns: LOGICAL
Notes:
• Committing the changes back to the database is a separate step, which will be invoked
from here if AutoCommit is set on.
createRule (toolbar.p)
Creates a rule (separator) menu item.
Parameters:
Returns: HANDLE
Notes: None
createSchemaAttributes (b2b.p)
Returns a new query handle for the schema temp-table to use for navigation through a schema
node’s children.
Parameters:
Returns: HANDLE
Notes: At present, the caller is responsible for deleting the object.
194
createSchemaChildren (b2b.p)
createSchemaChildren (b2b.p)
Returns a new query handle for the schema temp-table to use for navigation through a schema
node’s children.
Parameters:
Returns: HANDLE
Notes: At present, the caller is responsible for deleting the object.
createSchemaPath (b2b.p)
Returns a new query handle for the schema temp-table to use for navigation through a schema
node’s children.
Parameters:
Returns: HANDLE
Notes: At present, the caller is responsible for deleting the object.
195
createSubMenu (toolbar.p)
createSubMenu (toolbar.p)
Creates a submenu item with an ON MENU-DROP trigger.
Parameters:
The parent.
Returns: HANDLE
Notes: Creates a persistent ON MENU-DROP trigger that runs
onMenuDrop(pcName).
createText (xml.p)
Creates a Text Node in the document and returns its unique id.
Parameters:
Returns: DECIMAL
Notes: None
196
createToolBar (toolbar.p)
createToolBar (toolbar.p)
Create a toolbar object.
Parameters:
Comma-separated list of actions or action groups. The action RULE specifies a delimiter.
Returns: LOGICAL
Notes: None
createToolbarAction (toolbar.p)
Create a toolbar button.
Parameters:
The action name. The button will be created even if no action is available in the class.
Returns: HANDLE
Notes: Create the local temp-table record and call createButton or create3dRule to
create the actual widget.
197
createToolbar (toolbar.p)
createToolbar (toolbar.p)
Create a toolbar from non-Repository data
Parameters:
Returns: LOGICAL
Notes: None.
createToolbarBorder (toolbar.p)
Adds a border to the toolbar.
Parameters: None.
Returns: LOGICAL
Notes: None.
currentMappedObject (sbo.p)
Returns the object name that is currently mapped to the calling routine.
Parameters:
Returns: CHARACTER
Notes: The value is derived from the ObjectMapping property in the
SmartDataObject.
198
dataAvailable (browser.i)
dataAvailable (browser.i)
SmartDataBrowser version of dataAvailable. Repositions the SmartDataBrowser to a specific
row in response to a query reposition in its Data source.
Parameters:
Indicates the relative query position in which to reposition. For the current version of
dataAvailable, valid values are “First”, “Last”, “Prev”, “Next”, and “Repos.” The values
“Same” and “Different” used by other forms of this procedure are simply passed to the
super procedure and do not cause a reposition of the browse.
dataAvailable (data.p)
Sets the QueryPosition property for the SmartDataObject when the current record changes in
some way. Possible settings for the QueryPosition property are “FirstRecord” (the new record
is the first record of the RowObject dataset), “LastRecord” (the new record is the last record of
the RowObject dataset, “NotFirstOrLast”, “NoRecordAvailable” or “OnlyRecord”.
Parameters:
A flag to indicate the state of the current record. It can be SAME, to indicate that the
current record has been updated. In that case, DataAvailable is published to notify other
objects that need to redisplay the record with its modified values; for example, a
SmartDataViewer showing that record. Other objects, such as a SmartDataBrowser that is
showing related records (for example, Orders of a modified Customer), ignore the event
because the parent customer record has been modified, not repositioned to a different
customer. Therefore, this version of dataAvailable will not change anything because the
new record is the same as the old current record.
199
dataAvailable (datavis.p)
For other values of pcRelative, dataAvailable will RUN SUPER if there are ForeignFields,
meaning that this is a dependent query to be reopened; the super procedure query.p will do this.
Otherwise the SmartDataObject’s QueryPosition property is reset depending on the new
relative position. It then republishes “dataAvailable” to let other related objects know that the
record has changed.
Returns: Nothing (procedure)
Notes: This version of dataAvailable only sets the QueryPosition property to
FirstRecord, LastRecord, or NotFirstOrLast. It relies on other procedures to
set the other possible values.
dataAvailable (datavis.p)
Data visualization version of dataAvailable. Requests that data columns be displayed in
the Data source that the data visualization object is connected to, and displays them.
Parameters:
A flag that signals whether this is a different row than was previously sent; this version of
dataAvailable does not care; it will display the row in any case.
• Invokes colValues( ) in its Data source and displayFields in itself to display the data.
200
dataAvailable (filter.p)
dataAvailable (filter.p)
Subscribed to the filter-target in order to make sure that the filter reflects ForeignFields and
values.
Parameters:
Not used
dataAvailable (query.p)
dataAvailable is an event procedure that generates a dependent query dynamically based on the
ForeignFields property. This event occurs when a data-source publishes “dataAvailable”
because it has been repositioned to a different row in its query, and a dependent object needs to
react.
Parameters:
• “SAME”— The current record is being resent because it has been updated. This
procedure ignores this value.
201
dataAvailable (sbo.p)
dataAvailable (sbo.p)
Notifies other objects (Data-Targets) that the current row has been changed. If the DataSource
is an external object, uses the Foreign Fields property to get the key-field values. Uses the
key-field values to reopen the Master object’s query.
SmartBusinessObject version of the SmartDataObject routine.
Parameters:
dataAvailable (select.p)
Logic to receive data from the data-source when the view-as is a fill-in.
Parameters:
Not used
202
dataObjectHandle (sbo.p)
dataObjectHandle (sbo.p)
Given the ObjectName (logical name) of a contained SmartDataObject, returns its handle.
Parameters:
Returns: HANDLE
Notes: None
dataSource (b2b.p)
Returns the handle of the data source identified by the argument.
Parameters:
Returns: HANDLE
Notes: None
dataValue (filter.p)
Returns the RowObject fieldname of a database fieldname.
Parameters:
Returns: CHARACTER
Notes: None
203
dbColumnDataName (query.p)
dbColumnDataName (query.p)
Returns the RowObject field name of a database field name.
Parameters:
Returns: CHARACTER
Notes: The passed fieldname must match the SmartDataObject’s definition in
regards to qualifying with database name or not.
dbColumnHandle (query.p)
Returns the handle of a database column.
Parameters:
The column whose handle is wanted. Can be unqualified (column), partly qualified
(table.column), or fully qualified (database.table.column). If not fully qualified, the first
match is returned.
Returns: HANDLE
Notes: Is capable of processing a pcColumn specified with brackets. Used by
columnDataType, ColumnValMsg, and ColumnTable.
defaultAction (browser.p)
Runs persistently from default action.
Parameters: None
Returns: Nothing (procedure)
Notes: The trigger is defined in setActionEvent.
204
defineAction (action.p)
defineAction (action.p)
Creates a temp-table entry defining an action, possibly overwriting the existing definition.
Parameters:
Returns: LOGICAL
Notes: If “Instance” is one of the listed fields, the action is created as an instance
class and the target-procedure stored in the temp-table.
defineDestination (consumer.p)
Creates a tDestination temp-table record for use by createConsumers( ) for creating message
consumers.
Parameters:
Returns: LOGICAL
Notes: This can be called from an override of processDestinations( ) to explicitly
create tDestination temp-table records rather than using instance properties.
205
defineMapping (b2b.p)
defineMapping (b2b.p)
Creates a tMapping temp-table record.
Parameters:
Returns: LOGICAL
Notes: This can be called from an override of processMappings( ) to explicitly create
tMapping temp-table records rather than using instance properties.
deleteComplete (browser.p)
Deletes the currently selected row from the viewport of the browse when that row has been
deleted from the RowObject dataset.
Parameters: None
Returns: Nothing (procedure)
Notes: Invoked from the SmartDataObject. The SmartDataBrowser is connected to
synchronize the viewport with the current contents of the RowObject
temp-table being browsed. If the SmartDataBrowser has its own query and is
updatable, it will be invoked from deleteRecord, which in this case does
nothing as the row has already been deleted.
deleteComplete (sbo.p)
Receives the deleteComplete event from a contained SDO and passes it on to the appropriate
DATA-TARGET.
Parameters: None
Returns: Nothing
Notes: None
206
deleteDocument (xml.p)
deleteDocument (xml.p)
Deletes the document and cleans up all the temp-tables.
Parameters: None
Returns: LOGICAL
Notes: None
deleteMenu (toolbar.p)
Deletes the dynamic menu, including all menu items and submenus.
Parameters: None
Returns: LOGICAL
Notes: None
deleteNode (treeview.p)
Removes an individual node from the tree
Parameters:
deleteObjects (filter.p)
Deletes all dynamic widgets.
Parameters: None
Returns: LOGICAL
Notes: Called at design-time every time the Instance Properties are changed.
207
deletePage (containr.p)
deletePage (containr.p)
Deletes all the objects on the specified page.
Parameters:
• The deletePage procedure is not run from any standard ADM code; it can be run from
application code to delete a page when no longer needed, or for other reasons.
• The deletePage procedure publishes deleteFolderPage to remove the folder tab for the
page, if any.
Examples:
ON CHOOSE OF Btn_Delete_Page
DO:
DEFINE VARIABLE lAnswer AS LOGICAL NO-UNDO.
DEFINE VARIABLE iPage AS INTEGER NO-UNDO.
/* Get the current page number, and delete it. */
iPage = getCurrentPage().
MESSAGE "OK to delete page" STRING(iPage) + "?"
VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO UPDATE lAnswer.
IF lAnswer THEN RUN deletePage(iPage).
END.
208
deleteRecord (browser.p)
deleteRecord (browser.p)
Deletes the current record. SmartDataBrowser version of deleteRecord. Invoked when the
delete button is chosen in an Update SmartPanel or in a SmartToolbar.
Parameters: None
Returns: Nothing (procedure)
Notes: Invokes deleteRecord in datavis.p (RUN SUPER), which in turn will run
deleteRow in the associated SmartDataObject to delete the row from the
RowObject dataset. Makes sure a row is selected in the SmartDataBrowser
before deleting the row. Runs deleteComplete when the SmartDataBrowser
has its own database query. Typically customized when you want to add a
message to confirm the deletion.
deleteRecord (datavis.p)
Initiates the deletion of the current record in the associated SmartDataObject. Invoked when the
delete button is chosen in an Update SmartPanel or in a SmartToolbar.
Parameters: None
Returns: Nothing (procedure)
Notes: Invokes deleteRow( ) in the update target the data visualization object is
connected to. If the deleteRow( ) fails, error messages are displayed by
invoking showDataMessages( ). Typically customized when you want to add
a message to confirm the deletion.
Examples:
PROCEDURE deleteRecord:
/* Purpose: Super Override*/
/* Code placed here will execute PRIOR to standard behavior. */
MESSAGE “Are you sure you want to delete this record?”
VIEW-AS ALERT-BOX QUESTION BUTTONS YES-NO
UPDATE lAnswer AS LOGICAL.
IF lAnswer THEN
RUN SUPER.
/* Code placed here will execute AFTER standard behavior. */
END PROCEDURE.
209
deleteRecordStatic (query.i)
deleteRecordStatic (query.i)
Deletes a record from the specified table in the query.
Parameters:
Returns: LOGICAL
Notes: This function is necessary in order to work around a limitation with the
BUFFER-DELETE( ) method for buffer handles. The method will fail if
there is delete validation defined on the target table. The workaround is to use
a static “DELETE {table}.” statement instead.
deleteRow (data.p)
Submits a row for deletion. Returns FALSE if an error occurs.
Parameters:
Returns: LOGICAL
Notes: If auto-commit is on, the row will immediately be sent back to the database
for deletion.
deleteRow (sbo.p)
Passes the rowident on to the contained DataObject that manages that data.
SmartBusinessObject version of this function.
Parameters:
Returns: LOGICAL
Notes: None
210
deleteToolbar (toolbar.p)
deleteToolbar (toolbar.p)
Delete the dynamic toolbar and its buttons.
Parameters: None
Returns: LOGICAL
Notes: None
deleteTree (treeview.p)
This procedure can be called to remove nodes from the Tree.
Parameters:
describeSchema (data.p)
Returns a temp-table with a schema description in it, assembled by this routine.
Parameters:
211
destroyCombo (combo.p)
destroyCombo (combo.p)
Cleanup all dynamically created objects.
Parameters: None.
Returns: LOGICAL
Notes: None.
destroyLookup (lookup.p)
Destroys associated lookups, labels, and buttons.
Parameters: None
Returns: LOGICAL
Notes: None.
destroyObject (action.p)
Destroys a SmartToolbar’s instance actions as part of the cleanup process.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyObject (appserver.p)
Disconnects the AppServer connection if present before invoking the standard destroy code.
Parameters: None
Returns: Nothing (procedure)
Notes: None
212
destroyObject (b2b.p)
destroyObject (b2b.p)
Overrides in order to delete the schema temp-table.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyObject (browser.p)
SmartDataBrowser version of destroyObject. Besides invoking the standard behavior in
datavis.p, destroyObject informs the SmartDataObject (and any attached SmartDataBrowser)
that it is no longer being browsed.
Parameters: None
Returns: Nothing (procedure)
Notes: To ensure that a SmartDataObject can only be browsed by one
SmartDataObject at a time, when a SmartDataBrowser is destroyed,
destroyObject informs the associated SmartDataObject that it is no longer
browsed.
destroyObject (combo.p)
Local override of destroyObject. Deletes dynamic Combo Box objects by calling
destroyCombo.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
213
destroyObject (consumer.p)
destroyObject (consumer.p)
This is the message consumer’s version of destroyObject. It deletes the message consumers and
cancels any durable subscriptions that need to be cancelled.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyObject (containr.p)
Destroys a container object
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
destroyObject (data.p)
Override to get rid of the datalogicobject
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
destroyObject (design.p)
Destroy all design-time SDO’s
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
214
destroyObject (lookup.p)
destroyObject (lookup.p)
local override of destroyObject; delete created widgets
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
destroyObject (messaging.p)
Deletes the JMS session if no other messaging object instances are using it. This routine is used
by all messaging objects.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyObject (producer.p)
Deletes the Reply and Error message consumers. SmartProducer’s version of destroyObject.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyObject (select.p)
Local override of destroyObject; deletes created widgets.
Parameters: None
Returns: Nothing (procedure)
Notes: None
215
destroyObject (smart.p)
destroyObject (smart.p)
Cleans up and deletes the current object procedure and its descendents, if any.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Checks first to see if any object is not prepared to be destroyed (for example, if
DataModified is set). This is done by publishing the named event “confirmExit”, which is
implemented for example in datavis.p for visual data objects which can return FALSE if
their DataModified property is set, indicating that they have unsaved changes to the
current record. Because of this possible error return, application code that runs
destroyObject should check ERROR–STATUS:ERROR to see whether the operation
succeeded or not.
• The standard ADM construct for a SmartWindow is to have the CLOSE trigger run
destroyObject. Therefore the statements APPLY CLOSE to hSmartWin and RUN
destroyObject IN hSmartWin will normally have equivalent results. You should use
APPLY CLOSE so as to catch any other effects of this event. For other SmartObjects, RUN
destroyObject is the recommended way to destroy the object.
destroyObject (toolbar.p)
Destroys dynamic widgets when the object supporting them is destroyed.
Parameters: None
Returns: Nothing (procedure)
Notes: None
216
destroyObject (xml.p)
destroyObject (xml.p)
Destroys the document. Override this routine to delete the document and temp-table.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroySelection (select.p)
Cleans up all dynamically created objects.
Parameters: None
Returns: LOGICAL PRIVATE
Notes: None
destroyServerObject (appserver.p)
Destroys the server object.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Objects that need to keep context overrides this with calls to the server that both destroys
and returns context.
destroyServerObject (data.p)
Destroys the server object and retrieves its context.
Parameters: None
Returns: Nothing (procedure)
Notes: Called from unbindServer when stateless.
217
destroyServerObject (sbo.p)
destroyServerObject (sbo.p)
Fetch context from the server-side procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: unbindServer is the public interface to this procedure.
disable_UI (combo.p)
Purges THIS-PROCEDURE, if persistent.
Parameters: None.
Returns: Nothing (procedure).
Notes: Clean up the user-interface. This routine is usually called after execution
completes.
disable_UI (lookup.p)
Disables the user interface and releases memory, typically at the end of a session.
Parameters: None.
Returns: Nothing (procedure).
Notes: Here we cleanup the user interface by deleting dynamic widgets we have
created and/or hiding Frames.
disableActions (panel.p)
Disable some list of actions
Parameters:
Returns: LOGICAL
Notes: This function is used internally to turn actions on/off depending on the state.
Use modifyDisabledActions or setDisabledActions to override enabling.
218
disable_UI (select.p)
disable_UI (select.p)
Disables the user interface parameters.
Parameters: None
Returns: Nothing (procedure)
Notes: Clean up the user interface by deleting dynamic widgets that have been
created or by hiding frames, as appropriate. This procedure is usually called
when ready to clean up after running.
disableButton (lookup.p)
In certain instances, for example when we modify a specific record, we don’t want a user to use
a specific Lookup to find another record and potentially modify another record. For this reason
we would just disable the specific Lookup’s button and Browser to prevent the use of the
Lookup.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
disableButton (select.p)
Disables a SmartSelect’s controls. Used to prevent finding and perhaps unintentionally
changing a second record when an update is pending.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
219
disableField (combo.p)
disableField (combo.p)
Sets SENSITIVE and FieldEnabled to FALSE.
Parameters: None.
Returns: Nothing (procedure).
Notes: The SmartDataViewer container will call this procedure if a widget of type
PROCEDURE is encountered in disableFields
disableField (lookup.p)
Disable Lookup field in a Viewer
Parameters: None.
Returns: Nothing (procedure).
Notes: The SmartDataViewer will call this procedure if a widget of type
PROCEDURE is encountered in disableFields.
disableField (select.p)
Disables SmartSelection component.
Parameters: None
Returns: Nothing (procedure)
Notes: The SmartDataViewer container will call this procedure if a widget of type
PROCEDURE is encountered in disableFields.
220
disableFields (browser.p)
disableFields (browser.p)
Sets the READ–ONLY attribute of the browse control to TRUE. This is the SmartDataBrowser
version of disableFields.
Parameters:
• It is not possible to disable only a subset of columns. The "Create" option is intended to
support disabling fields that are enabled only for an Add or Copy operation; this is not yet
supported.
disableFields (datavis.p)
Uses the {set} pseudo-function to set the value ‘View’ for ObjectMode.
Parameters: None.
Returns: Nothing (procedure).
Notes: Viewer and browser classes have complete override for disabling. The
ObjectMode is also set in updateMode, but users might call this directly.
disableFields (filter.p)
Disables fields in the ENABLED-FIELDS list.
Parameters: None
Returns: Nothing (procedure)
Notes: None
221
disableFields (viewer.p)
disableFields (viewer.p)
Disables the fields in a list represented by the AppBuilder generated preprocessor value
{&ENABLED–FIELDS}.
Parameters:
• The ENABLED–FIELDS preprocessor value contains a list of RowObject fields that are
enabled in a SmartDataViewer. At initialization time, this is turned into the
EnabledHandles property, which stores a list of the widget handles of the enabled fields in
the SmartDataViewer’s frame, allowing efficient access to them.
• The pcFieldType parameter can have a value of “All” or “Create”. This allows disabling
of all the fields or only fields that were used to create (add/copy) a new record. The
“Create” option is not yet supported.
• When a field in the list is a SmartObject itself (for example, a SmartField object),
disableField is run in the SmartObject to disable it.
• For editor fields, READ–ONLY is turned on rather than making the field insensitive since
editors need to be sensitive for scrolling.
• disableFields can be customized when you require additional processing when RowObject
fields are disabled. You might want to do this to disable or hide other widgets not
associated with RowObject fields.
222
disableObject (treeview.p)
disableObject (treeview.p)
TreeView version of disableObject.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
disableObject (visual.p)
Disables all enabled objects in a frame, including RowObject fields.
Parameters: None
Returns: Nothing (procedure)
Notes:
disablePagesInFolder (containr.p)
Disables the specified folder pages
Parameters:
Returns: LOGICAL
Notes: None.
223
disconnectObject (appserver.p)
disconnectObject (appserver.p)
Disables fields in the ENABLED-FIELDS list
Parameters: None
Returns: Nothing (procedure)
Notes: If Asbound is TRUE, an explicit destroyObject is done on the AppServer to
give the object an opportunity to clean up. This procedure is invoked from
destroyObject, but can also be run directly to disconnect without exiting.
displayActions (action.p)
Utility procedure to put up a dialog showing all the Actions currently defined.
Parameters: None
Returns: Nothing (procedure)
Notes: Can be executed by selecting displayActions from the ProTools procedure
object viewer for the desired SmartContainer.
displayCombo (combo.p)
This is published from the SmartViewer containing the SmartDataField to populate the Combo
with the evaluated query data, if the query was successful. It is published from displayfields in
the viewer. The queries are initially built in getComboQuery.
Parameters:
224
displayFields (browser.p)
displayFields (browser.p)
Displays the current row values by moving them to the screen values of the browse. Invokes
displayObjects to display the values of any other objects that are in the SmartDataBrowser.
This is the SmartDataBrowser version of displayFields.
Parameters:
CHR(1)-delimited list of field values. The first entry in the list represents the RowIdent of
the row being displayed.
• Ordinarily the columns in each row of a browse are displayed automatically just by the
opening of the query with which the browse is associated. Therefore this procedure is only
invoked after changes that have been made to a row are saved or undone, necessitating the
redisplay of the current row.
• For special display (modifying the value of a column in each row of the browse, for
example), use the ROW–DISPLAY trigger of the SmartDataBrowser.
• Runs displayObjects to display any object values that are part of the SmartDataBrowser.
These would be additional fields which have been placed into the Frame along with the
browse widget.
displayFields (viewer.p)
Displays the current row values by moving them to the viewer’s frame screen-values.
Parameters:
CHR(1)-delimited list of the STRING–VALUEs of the requested columns; the first value
of this list is the RowIdent value of the corresponding record to be displayed.
225
displayFields (viewer.p)
Notes:
• The pcColValues input parameter contains the field values to be displayed in the
SmartDataViewer.
226
displayFields (viewer.p)
Examples:
PROCEDURE displayFields:
/*------------------------------------------------------------------------
Purpose: Super Override
This SmartDataViewer gets the handle of its container. If
this is a window, then the title of the window is changed
to reflect the current record.
Parameters:
Notes:
------------------------------------------------------------------------*/
PROCEDURE displayFields:
/*------------------------------------------------------------------------
Purpose: Super Override
If the value of the country field is ’France’ in this
SmartDataViewer, then make the background color of this
field red. Otherwise leave it the its default color.
Parameters:
Notes:
------------------------------------------------------------------------*/
227
displayLinks (smart.p)
displayLinks (smart.p)
Utility procedure to put up a dialog showing all the ADM links for a given container object.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Can be executed by selecting displayLinks from the PRO*Tools procedure object viewer
for the desired SmartContainer.
• As noted, this is a utility procedure that is not executed by any standard ADM code and is
not intended to be called from a SmartObject application.
displayLookup (lookup.p)
Finds and displays a Lookup. This routine is published by the SmartViewer to populate the
Lookup with the evaluated query data, if the query was successful. The queries were initially
built in getLookupQuery.
Parameters:
• This allows all lookup queries to be built at the cost of a single AppServer call.
• Note that this is not run at all in ADD mode, unless the Lookup is manually fired.
228
displayObjects (datavis.i)
displayObjects (datavis.i)
Displays values for nondatabase-related fields.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Displays the values of the fields that are listed in the AppBuilder-maintained preprocessor
variable {&DISPLAYED–OBJECTS}. These are fill-ins and other frame fields that are
not associated with fields in the associated SmartDataObject.
• This procedure is located in the datavis.i include file rather than the super procedure
datavis.p in order to provide access to the DISPLAYED–OBJECTS preprocessor value.
Therefore, to override this procedure, it is necessary to define a local version of
displayedObjects in an individual visual SmartObject and then define the
EXCLUDE–displayedObjects preprocessor, which will remove the standard version from
the compilation.
displayRecord (datavis.p)
Displays the current datasource's rows
Parameters: None
Returns: Nothing (procedure)
Notes: None
229
doBuildUpd (data.i)
doBuildUpd (data.i)
Transfers changed rows into the Update Temp-Table and returns it to the caller (the Commit
function).
Parameters: None
Returns: Nothing (procedure)
Notes:
• This code must be inside the SmartDataObject itself to allow the BUFFER-COPY
operations. They can be specialized by defining like-named procedures in another support
procedure.
• For each existing row to be updated, there is already a “before” copy in the RowObjUpd
table, so create an “after” row.
• There is already a row in RowObjUpd for each Added/Copied row, so just update it with
the latest values.
• There is already a row in RowObjUpd for each Deleted row, so there is no need to do
anything for these rows.
230
doCreateUpdate (data.i)
doCreateUpdate (data.i)
FINDs the specified row to be updated and saves a copy into the RowObjUpd table, to support
Undo. Run from submitRow when it receives a set of value changes from a UI object.
Parameters:
doEmptyModTable (data.i)
Empties the ModRowIdent temp-table.
Parameters: None
Returns: Nothing (procedure)
Notes: ModRowIdent keeps track of records added/modified since the last call to
openQuery(). It contains the rowIdents of records already on the client
process. Its purpose is to prevent sending duplicate records in upcoming
batches.
231
doEmptyTempTable (data.i)
doEmptyTempTable (data.i)
Empties the RowObject temp-table when the query is reopened while a transaction is active.
Parameters: None
Returns: Nothing (procedure)
Notes: This routine is only needed when a transaction is active. In other cases, use
the faster EMPTY-TEMP-TABLE method.
doReturnUpd (data.i)
Runs from Commit on the client side. Obtains the latest state of the records in RowObjUpd from
the server for refreshing data-display objects.
Parameters:
List of any RowObject ROWIDs for which changes were rejected by a commit. Takes the
form of RowNum/ADM-ERROR-STRING pairs, CHR(3) separators inside the pairs,
comma separators between the pairs.
• If not autocommit, also reposition here. Otherwise, the caller has both the rowident and
more information, (submitCommit knows whether a reopen is required; deleteRow just
uses fetchNext if required).
232
doUndoDelete (data.i)
doUndoDelete (data.i)
Restores deleted rows.
Parameters: None.
Returns: Nothing (procedure).
Notes: This is separated because:
• A failed commit should restore this, otherwise the user has to undo to correct
mistakes.
doUndoRow (data.i)
Restores the row using the saved image of the unchanged RowObjUpd record.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
doUndoTrans (data.i)
Performs the buffer delete and copy operations needed to restore the RowObject temp-table
when an Undo occurs. Added or copied records are deleted, modified and deleted records are
restored. The RowObjUpd table is emptied.
Parameters:
INPUT cUndoIds
List of any RowObject ROWIDs for which changes were rejected by a commit. Takes the
form of RowNum/ADM-ERROR-STRING pairs, CHR(3) separators inside the pairs,
comma separators between the pairs.
233
doUndoUpdate (data.i)
doUndoUpdate (data.i)
Supports cancelRow by copying the current RowObjUpd record back to the current RowObject
record.
Parameters: None
Returns: Nothing (procedure)
Notes: None
editInstanceProperties (smart.p)
Runs the dialog to get run-time property settings.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Generally run by the AppBuilder in design mode to bring up the dialog procedure that has
been defined in the object property include file as the ADM–PROPERTY–DLG
preprocessor value. Normally there will be one such standard program per template,
whose name is specified in the template. This dialog allows application designers to define
values for SmartObject properties that are appropriate to assign when an instance of the
object is created.
• You can create special InstanceProperty programs for specific types of SmartObjects (a
particular SmartDataViewer with extra run-time Properties, for example). No assumptions
are made about the structure or functionality of the dialog program except that it sets each
of the modified Instance Properties by executing their set property functions. The existing
Instance Property dialog procedures in the src/adm2/support directory can be used as
models for building new ones or extending existing ones.
• Application code could invoke this procedure (by adding a double-click trigger to a
widget, for example), to allow the InstanceProperty dialog to be invoked at run time.
234
emptyTree (treeview.p)
Examples:
PROCEDURE editInstanceProperties:
emptyTree (treeview.p)
Clears all nodes on the TreeView.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
enableActions (panel.p)
Enable a list of actions
Parameters:
Returns: LOGICAL
Notes: This function is used internally to turn actions on/off depending on the state.
Use modifyDisabledActions or setDisabledActions to override enabling.
235
enableButton (lookup.p)
enableButton (lookup.p)
If you disable the Lookup button to prevent the user from using it, call this routine to re-enable
the button again.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
enableButton (select.p)
Undoes the action of disableButton.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
enableField (combo.p)
Enables a Combo field. The SmartDataViewer will call this procedure if a widget of type
PROCEDURE is encountered in enableFields.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
enableField (lookup.p)
Enables a Lookup Field. The SmartDataViewer will call this routine if a widget of type
PROCEDURE is encountered in enableFields.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
236
enableField (select.p)
enableField (select.p)
Enables SmartSelection component.
Parameters: None
Returns: Nothing (procedure)
Notes: The SmartDataViewer Container will call this procedure if a widget of type
PROCEDURE is encountered in enableFields.
enableFields (browser.p)
SmartDataBrowser version of enableFields. Enables columns in a SmartDataBrowser by
turning off the READ–ONLY attribute for the browse object.
Parameters: None
Returns: Nothing (procedure)
Notes:
• If no Update target is present, or if no record is available, the columns in the browse are
not enabled.
• Customized when you require additional processing when RowObject fields are enabled.
You might want to do this to enable or hide other widgets not associated with RowObject
fields.
enableFields (datavis.p)
Sets the value of ObjectMode to ‘Modify’ if the value is not ‘Update’.
Parameters: None.
Returns: Nothing (procedure).
Notes: Viewer and browser classes have complete override for enabling. The
ObjectMode is also set in updateMode, but users might call this directly.
237
enableFields (filter.p)
enableFields (filter.p)
Enables fields in the ENABLED-FIELDS list.
Parameters: None
Returns: Nothing (procedure)
Notes: None
enableFields (viewer.p)
Enables fields in the ENABLED-FIELDS list AppBuilder generated preprocessor.
Parameters: None
Returns: Nothing (procedure)
Notes:
• When the frame field is a SmartObject (for example, a SmartField), enableField is run in
the SmartObject.The ENABLED–FIELDS preprocessor value contains a list of
RowObject fields that are enabled in a SmartDataViewer. At object initialization, this is
turned into the EnabledHandles property, which holds a list of the widget handles of the
enabled fields in the SmartDataViewer’s frame, for efficient access.
• enableFields can be customized when you require additional processing when RowObject
fields are enabled. You might want to do this to enable or hide other widgets not associated
with RowObject fields.
238
enableObject (panel.p)
enableObject (panel.p)
Restores the panel buttons to their previous state whenever the panel is re-enabled.
Parameters: None
Returns: Nothing (procedure)
Notes: The “correct” state is the state that the buttons were in before the SmartPanel
was disabled. This might not be the “initial” state. If a SmartPanel has been
disabled because the page it is on was hidden, its previous state must be
restored when the page is viewed again.
enableObject (treeview.p)
TreeView version of enableObject.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
enableObject (visual.p)
Enables an object. Includes all components except RowObject fields. They are enabled using
EnableFields().
Parameters: None
Returns: Nothing (procedure)
Notes:
• Note that enableObject and disableObject are not completely opposite in their effects.
disableObject always invokes disableFields because it is not meaningful to have a
SmartObject disabled while RowObject fields inside it are enabled. On the other hand,
enableObject does not invoke enableFields; this is done separately to allow enabling of a
SmartObject’s RowObject fields independently of other basic widgets it contains.
239
enablePagesInFolder (containr.p)
enablePagesInFolder (containr.p)
Enables the specified folder pages
Parameters:
Returns: LOGICAL
Notes: None.
endClientDataRequest (data.p)
Contains logic to retrieve data properties from the Appserver after a data request. Both queries
and commit are considered as data requests.
Parameters: None
Returns: Nothing (procedure)
Notes: The purpose of this function is to encapsulate the logic for stateless and
state-aware requests in one call.
endClientDataRequest (sbo.p)
Contains logic to retrieve data properties from the Appserver after a data request. Both queries
and commits are considered as data requests.
Parameters: None
Returns: Nothing (procedure)
Notes: The purpose of this function is to encapsulate the logic for stateless and
state-aware requests in one call.
240
endDocument (b2b.p)
endDocument (b2b.p)
Traps the document-processed event and passes all the collected data that has been stored on
other events during the processing.
Parameters: None
Returns: Nothing (procedure)
Notes: Collect all the data to ensure that all the updates are done in the order in which
the mapped objects are linked to nodes. It is too early on startEvent and even
on endEvent because child nodes end before parent nodes (do not save
orderlines before the order).
endElement (b2b.p)
Traps the XML-element-processed event. Stub routine meant to be overridden.
Parameters:
241
endMove (combo.p)
endMove (combo.p)
Moves the label whenever the field is moved in design mode.
Parameters: None.
Returns: Nothing (procedure).
Notes: Defined as PERSISTENT on END-MOVE of the frame of the widget.
endMove (lookup.p)
Move the label when the field is moved, in design-mode/
Parameters: None.
Returns: Nothing (procedure).
Notes: Defined as PERSISTENT on END-MOVE of the frame of the widget.
endMove (select.p)
In design mode, moves the label when the field is moved.
Parameters: None
Returns: Nothing (procedure)
Notes: Defined as PERSISTENT on END-MOVE of the frame of the widget.
endTransactionValidate (datalogic.i)
The optional validation routine called automatically by serverCommit after completing all
updates, but before exiting the transaction block.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
242
enterCombo (combo.p)
enterCombo (combo.p)
Trigger fired on entry into a Combo field to store the current screen value of the displayed field.
Parameters: None.
Returns: Nothing (procedure).
Notes: The typical case is that the displayed field will not be the same as the keyfield.
In that case, we can fire logic when the displayed field is changed in the leave
trigger to see if the new value keyed in actually exists as a unique record, and
if so, avoid having to use the combo.
enterLookup (lookup.p)
Trigger fired on entry of lookup field
Parameters: None.
Returns: Nothing (procedure).
Notes: This trigger stores the current screen value of the displayed field in the
Lookup. When the displayed and key fields are not the same, and the
displayed field is changed in the leave trigger, code can be run to check
whether the value entered actually exists as a unique record. If it does, the
Lookup need not be used.
enterSelect (select.p)
Trigger fired on entry of SmartSelect field. Copies the screen value to the object so that the
lookup can be avoided if the new value actually exists as a unique record.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
243
errorHandler (consumer.p)
errorHandler (consumer.p)
This is the SmartConsumer’s version of initializeObject. It fetches messages to get and display
from the SUPER version of ErrorHandler.
Parameters:
errorHandler (messaging.p)
Handles asynchronous errors, if any.
Parameters:
errorMessage (action.p)
Displays an error message.
Parameters:
244
excludeColumns (query.p)
excludeColumns (query.p)
Returns a comma-separated list of columns that should be used as the exclude parameter for
BUFFER-COPY and BUFFER-COMPARE from the database.
Parameters:
Returns: CHARACTER
Notes:
• This protects the target from being unintentionally overwritten by unmapped and not used
columns of the same name that are supposed to be referencing a previously copied or
compared table, or nothing at all. Remove all the columns that represent the table copied.
• Excludes calculated fields in the last entry. Used by refetchDbRow, transferDbRow, and
compareDbRow.
245
exitObject (smart.p)
exitObject (smart.p)
Passes an exit request to its container.
Parameters: None
Returns: Nothing (procedure)
Notes:
• exitObject could be customized when you want behavior other than, or in addition to,
invoking exitObject in the ContainerSource. As noted, the default localization in
SmartWindows is to APPLY CLOSE to initiate a destroyObject sequence. A local version
of this, in an object other than a SmartWindow, could do additional custom cleanup. Note
that because exitObject is defined in the SmartWindow template, a localization of it in a
SmartWindow must exclude the standard code to prevent a duplicate procedure definition.
Examples:
/* This example is taken from the standard code for the “Done” button in
the AppBuilder palette. If the object containing the button is a
SmartWindow, then the code executes the standard convention for
destroying a SmartWindow, APPLY "CLOSE". If not, the code runs
exitObject to pass the event up to its Container, otherwise the effect
would be to destroy only the SmartPanel or other SmartObject
containing the button, which is probably not what is intended. */
246
fetchBatch (data.p)
fetchBatch (data.p)
Transfers another batch of rows from the database query to the RowObject temp-table query,
without changing the current record position.
Parameters:
TRUE if you want to retrieve the block of rows that follow the current row, FALSE if you
want to retrieve the block preceding the current row.
• Run from a Browser to get another batch of rows from the database query appended to the
RowObject temp-table query (when the browser scrolls to the end and not all rows have
been retrieved).
• fetchBatch does some checking and sets up the proper parameters to sendRows, but
sendRows is called to do the actual work.
fetchBatch (sbo.p)
Returns the next batch of rows to a browse object, communicating with its SmartDataObject.
Parameters:
247
fetchContainedData (sbo.p)
fetchContainedData (sbo.p)
Gets a set of data from the server, given a where-clause for (currently) the top-level
SmartDataObject. Client-side procedure.
Parameters:
If specified, then fetch data sets from that Object down only.
fetchContainedRows (sbo.p)
A client-side procedure that gets a batch of data from one SmartDataObject and all the tables
from SmartDataObjects lower in the data-link chain or tree.
Parameters:
248
fetchDataSet (browser.p)
fetchDataSet (browser.p)
Changes or resets the state of a Browse, depending on which action occurs.
Parameters:
INPUT pcState AS CHARACTER
The character value of one of the supported states. Possible values include: "BatchStart",
"BatchEnd", "NextStart", "NextEnd", "PrevStart", "PrevEnd".
fetchDBRowForUpdate (query.p)
Retrieves (with EXCLUSIVE–LOCK) the database records associated with the current
RowObjUpd record, as identified by a list of RowIds in the RowIdent field of that record. If the
RowMod field is “D” for Delete, it deletes the database records.
Parameters: None
Returns: Nothing (procedure)
Notes: If one or more of the database records cannot be locked (for any reason, most
likely because it is locked by another user, but perhaps because it has been
deleted), the table name of the first unlockable record is returned as the return
value.
fetchDOProperties (sbo.p)
Retrieves any properties from the server-side SmartBusinessObject and its SmartDataObjects,
and sets them in the contained SmartDataObjects on the client.
Parameters: None
Returns: Nothing (procedure)
Notes: Currently retrieves the OpenQuery property, which is set only on the server
but needed on both sides.
249
fetchFirst (data.p)
fetchFirst (data.p)
Repositions the RowObject temp-table to the first record, or to the row matching the
QueryRowIdent property, if set. If the first record has not yet been fetched (from the database),
it calls sendRows to get the first batch of RowObject records of the SmartDataObject, then it
repositions the RowObject Temp-Table to the first row.
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchFirst (query.p)
Repositions the database query to the first row.
Parameters: None
Returns: Nothing (procedure)
Notes: Requests rows to be transferred from the database query if the RowObject
query is empty.
fetchFirst (sbo.p)
Retrieves the first row in one of the ContainedDataObjects. It uses the ObjectMapping
SmartBusinessObject property to match the caller to its Target, or uses the MasterDataObject
by default. It is a SmartBusinessObject version of this event procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: Uses the MasterDataObject by default.
250
fetchLast (data.p)
fetchLast (data.p)
Repositions the RowObject query to the last row of the dataset. If the last row has not yet been
retrieved from the database, then fetchLast gets the last batch of RowObject records for the
SmartDataObject, and then repositions the RowObject query to the last row.
Parameters: None
Returns: Nothing (procedure)
Notes:
• If the SmartDataObject property RebuildOnReposition is false, and the last row from the
database query has not yet been fetched, fetchLast keeps asking for batches of rows until
the last batch is received. This is required, otherwise there would be a discontinuous set of
rows in the RowObject temp-table.
• If RebuildOnReposition is true, and the last row from the database query has not yet been
fetched, all RowObject records are discarded and just the last batch is fetched. In this case,
the RowNum of the last row becomes 2000000 (just to start with a high value so that all
RowNum values will continue to be positive integers), and all other records have smaller
numbers (except for additions.)
fetchLast (query.p)
Repositions the Query to the last row.
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchLast (sbo.p)
Retrieves the last row in one of the ContainedDataObjects. It uses the ObjectMapping
SmartBusinessObject property to match the caller to its Target or uses the MasterDataObject by
default. It is a SmartBusinessObject version of this event procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: Uses the MasterDataObject by default.
251
fetchMessages (smart.p)
fetchMessages (smart.p)
Returns a delimited list of all messages in their raw form. The message log is cleared.
Parameters: None
Returns: CHARACTER (specially formatted message string)
Notes:
• The fetchMessage procedure is not normally expected to be used by application code. The
showDataMessages function can be used—and customized if desired—to parse this
specially formatted message string into a series of error messages.
• The message list is delimited by CHR(3); within each message, the Message Text, the
Field (if any), and the Table (if any) are delimited by CHR(4).
• As noted, the fetchMessages function clears the message log; it is therefore the
responsibility of the calling procedure to display the messages or otherwise deal with
them. Use the similar function reviewMessages to read messages without deleting them.
fetchNext (data.p)
Repositions the RowObject query to the next row. If a new batch is required to do so, then
sendRows is called to get the new batch.
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchNext (query.p)
Repositions the Query to the next row.
Parameters: None
Returns: Nothing (procedure)
Notes: None
252
fetchNext (sbo.p)
fetchNext (sbo.p)
Retrieves the next row in one of the ContainedDataObjects. It uses the ObjectMapping
SmartBusinessObject property to match the caller to its Target, or uses the MasterDataObject
by default. SmartBusinessObject version of this event procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: Uses the MasterDataObject by default.
fetchPrev (data.p)
Repositions the RowObject query to the previous row. If a new batch is needed to do so, then
sendRows is called to get the new batch. (Getting a new batch will only be necessary when the
RebuildOnReposition property is set to true.)
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchPrev (query.p)
Repositions the Query to the previous row.
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchPrev (sbo.p)
Retrieves the previous row in one of the ContainedDataObjects. It uses the ObjectMapping
SmartBusinessObject property to match the caller to its Target, or uses the MasterDataObject
by default. SmartBusinessObject version of this event procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: Uses the MasterDataObject by default.
253
fetchRow (data.p)
fetchRow (data.p)
Repositions the Row Object’s query to the desired row (indicated by piRow) and returns that
row’s values (as specified in pcViewColList). The return value is a CHR(1)-delimited list of
values (formatted according to each columns FORMAT expression). The first value in the list
is the RowIdent of the fetched row.
Parameters:
Returns: CHARACTER
Notes: None
254
fetchRowIdent (data.p)
fetchRowIdent (data.p)
Repositions the RowObject’s query to the desired row, based on the corresponding database
record ROWID (specified by pcRowIdent), and returns that row’s values (as specified in
pcViewColList). The return value is a CHR(1)-delimited list of values (formatted according to
each column’s FORMAT expression.) The first value in the list is the RowIdent of the fetched
row. If that row is not in the RowObject table, it repositions the database query to that row and
resets the RowObject table.
Parameters:
The desired rowids within the result set, expressed as a comma-separated list of database
rowids.
Returns: CHARACTER
Notes: If called with unknown or nonexisting rowid the query is closed and the SDO
will be in a bad state (fetchNext and Prev do not work). The application needs
to call fetchRowident with a valid value or fetchFirst, fetchLast, or
openQuery to get back to normal.
fieldLookup (filter.p)
Finds the LOOKUP position of the corresponding value to the field in a CHR(1) list of fields
and values.
Parameters:
Fieldname.
255
fieldProperty (filter.p)
fieldProperty (filter.p)
Finds the actual value of the corresponding value to the field in a CHR(1) list of fields and
values.
Parameters:
Fieldname.
filterActive (browser.p)
Calls updateState in the toolbar to set the filter tick on or off, depending on the argument.
Parameters:
256
filterContainerHandler (query.p)
filterContainerHandler (query.p)
Adds the Filter link between itself and a Filter container. It is called from startFilter after the
Filter container is constructed.
Parameters:
phFilterContainer AS HANDLE
filterState (toolbar.p)
Published from NAVIGATION-TARGET to tell the panel to enable filter action when it is
linked.
Parameters:
findAction (action.p)
Returns TRUE if some action exists.
Parameters:
Action of interest.
257
findCategory (action.p)
Search space.
findCategory (action.p)
Calls FIND FIRST on the ttCategory table to determine whether some category pcCategory
exists.
Parameters:
Returns: LOGICAL
Notes: None.
findDataRow (b2b.p)
Finds a row of a mapped DataObject. If any of the KeyFields are blank, use ForeignFields from
the object’s DataSource.
Parameters:
CHR(1)-separated list with the exact same number of entries as the KeyFields property of
the object.
Returns: LOGICAL
Notes: None
258
findRow (data.p)
findRow (data.p)
Finds a row and repositions to it using a key.
Parameters:
Returns: LOGICAL
Notes: None
findRowObjUpd (data.p)
Returns TRUE if the RowObjUpd buffer corresponding to the RowObject record is
AVAILABLE.
Parameters:
Returns: LOGICAL
Notes: Called from deleteRow to check for a RowObjUpd for a row being deleted
before creating a new one.
259
findRowWhere (data.p)
findRowWhere (data.p)
Finds a row and repositions to it.
Parameters:
Column names (comma separated); fieldname of a table in the query in the form of
TBL.FLDNM or DB.TBL.FLDNM (only if qualified with db), (RowObject.FLDNM
should be used for SDOs). If the fieldname is not qualified, it checks the tables in the
TABLES property and assumes the first is a match.
• Blank—Defaults to (EQ).
Returns: LOGICAL
Notes: The logic is in the query.p super.
firstBufferName (query.p)
Returns the first buffer reference in a where-clause expression.
Parameters:
A string expression.
260
firstRowIds (data.p)
firstRowIds (data.p)
Returns the ROWID (converted to a character string) of the first database query row satisfying
the passed query prepare string.
Parameters:
A complete query WHERE clause that matches the database query’s buffers.
Returns: CHARACTER
Notes: Used by rowidwhere, findRow, and findRowWhere.
firstRowIds (query.p)
Returns the ROWID (converted to a character string) of the first database query row satisfying
the passed query prepare string.
Parameters:
A complete query WHERE clause that matches the database query's buffers.
Returns: CHARACTER
Notes: Used by rowidwhere, findRow, and findRowWhere.
261
fixQueryString (smart.p)
fixQueryString (smart.p)
Conventionalizes decimal delimiters in query strings to be full-stops.
Parameters:
Returns: CHARACTER
Notes: Wherever a query prepare is being used, call this routine immediately to
resolve conventional differences in the query string, such as decimal
formatting. The main issues arise when the query string contains stringed
decimal values.
formattedValue (select.p)
Returns the formatted value of a passed value according to the SmartSelects format.
Parameters:
Returns: CHARACTER
Notes: Used internally in order to ensure that unformatted data can be applied to
screen-value (setDataValue), or used as a lookup in list-item-pairs in
(getDisplayValue).
262
genContextList (data.p)
genContextList (data.p)
Generates a list of properties and their values needed to save (and restore) the context of a
stateless SmartDataObject between invocations.
Parameters:
hasActiveAudit (browser.p)
If there is a valid DataSource, return the result of hasActiveAudit.
Parameters: None.
Returns: LOGICAL
Notes: None.
hasActiveAudit (data.p)
Parameters: None.
Returns: LOGICAL
Notes: None.
263
hasActiveComments (browser.p)
hasActiveComments (browser.p)
If there is a valid DataSource, return the result of hasActiveComments.
Parameters: None.
Returns: LOGICAL
Notes: None.
hasActiveComments (data.p)
Parameters: None.
Returns: LOGICAL
Notes: None.
hasActiveGaTarget (panel.p)
Checks if any group assign targets are active.
Parameters:
hasForeignKeyChanged (data.p)
Returns TRUE if the dataSource Foreign fields are different from the current ForeignValues.
Parameters: None
Returns: LOGICAL
Notes: Used by SBO commitTransaction.
264
hasOneToOneTarget (data.p)
hasOneToOneTarget (data.p)
Returns TRUE if this DataObject has DataTargets that are updated as part of this.
Parameters: None
Returns: LOGICAL
Notes: None
hideObject (combo.p)
Uses the {get} pseudo-function to get the value of LabelHandle, hides the label, and finally calls
RUN SUPER.
Parameters: None
Returns: Nothing (procedure)
Notes: For sizing reasons, the label is not really a part of the object, but added as a
text widget to the parent frame.
hideObject (lookup.p)
Uses the {get} pseudo-function to get the value of LabelHandle, hides the label, and finally calls
RUN SUPER.
Parameters: None
Returns: Nothing (procedure)
Notes: For sizing reasons, the label is not really a part of the object, but added as a
text widget to the parent frame.
hideObject (select.p)
Overrides to ensure that the label is hidden.
Parameters: None
Returns: Nothing (procedure)
Notes: For sizing reasons, the label is not really a part of the object, but added as a
text widget to the parent frame.
265
hideObject (smart.p)
hideObject (smart.p)
Hides the current object if it is a visual object and sets the ObjectHidden property to true to
indicate the state of the object.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The “Hide” concept is a logical one here; nonvisual objects might also be “hidden”,
meaning that they are not currently active; this might affect whether code in some event
procedures is executed. For example, SmartDataObjects will not respond to events such
as fetchNext and fetchLast if they are logically “hidden”, even though they have no
visualization. This allows certain SmartLinks to be effectively deactivated when the object
at one end or the other is hidden.
• When a SmartContainer is hidden, it is not necessary for all of the objects it contains to be
individually hidden because they will be hidden along with the container. For this reason,
hideObject, when executed for a SmartContainer, will set the property ContainerHidden
in each contained SmartObject without actually running hideObject in each object. The
setContainerHidden function will, in turn, set the ObjectHidden property to TRUE so that
it can be queried successfully. Not running hideObject in each individual SmartObject
improves performance when SmartObjects are being paged (alternately hidden and
viewed), and can eliminate problems with “flashing” of visual objects or problems
restoring proper frame order when objects are hidden and viewed.
• The hideObject procedure can be localized when behavior in addition to the default is
needed when a SmartObject is hidden, for example to decide whether a hidden component
should actually be destroyed to conserve memory.
266
hideObject (toolbar.p)
Examples:
hideObject (toolbar.p)
Hides the object.
Parameters: None
Returns: Nothing (procedure)
Notes: For sizing reasons, the label is not really a part of the object, but added as a
text widget to the parent frame.
hidePage (containr.p)
Cycles through all objects on a page, hiding them.
Parameters: None
Returns: Nothing (procedure)
Notes: None
267
imageName (toolbar.p)
imageName (toolbar.p)
Returns the name of some button image.
Parameters:
Returns: CHARACTER
Notes: This is published thru the container link and are used mainly to validate that
a false value received in updateActive can be used to set UpdateActive. This
is NOT intended to be called directly, but part of the logic that updates
UpdateActive. These are the steps: (1) Updating objects publishes
updateActive (true or false) to their container targets. (2) If the value is
FALSE the container turns around and publishes this to ALL
ContainerTargets before it is stored in UpdateActive. This way the value is
only stored as false if ALL contained objects are inactive.
indexInformation (query.p)
Returns indexInformation for all buffers in the query. Each index is separated with CHR(1).
Field information is either qualified with db and table or the CHR(2) is used as a table separator.
Parameters:
Returns: CHARACTER
Notes: None
268
initAction (action.p)
initAction (action.p)
Defines all default actions for the SmartToolbar.
Parameters: None
Returns: Nothing (procedure)
Notes: Called once from initializeObject
initDataObjectOrdering (sbo.i)
Initializes the mapping of the AppBuilder-generated order of Upd tables to the
developer-defined update order.
Parameters: None
Returns: CHARACTER
Notes: This is used in commitTransaction and serverCommitTransaction to order the
table parameters properly.
initializeBrowse (lookup.p)
Initializes the lookup browser window.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeBrowse (select.p)
Code to initialize a browse. Starts a browse to show the Data-source data. The browse procedure
is specified in the BrowseProcedure property and defaults to the dynamic SmartDataBrowser.
A dynamic SmartWindow (BrowseContainer) is started first and the browse procedure is started
with the containers constructObject.
Parameters: None
Returns: Nothing (procedure)
Notes: None
269
initializeCombo (combo.p)
initializeCombo (combo.p)
Runs as part of initializeObject to set up the combo.
Parameters: None
Returns: Nothing (procedure)
Notes: Defaults keyfield to actual field if not defined. Defaults displayed field to
keyfield if not defined. Assumes a datatype of decimal for keyfield and
character for displayed field if different.
initializeLogicObject (datalogic.i)
Loads the data logic procedure as a super procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeLookup (lookup.p)
Runs as part of initializeObject to set up the lookup
Parameters: None
Returns: Nothing (procedure)
Notes: Defaults keyfield to actual field if not defined. Defaults displayed field to
keyfield if not defined. Assumes a datatype of decimal for keyfield and
character for displayed field if different.
initializeObject (action.p)
Calls initAction to define the set of actions used by SmartToolbars.
Parameters: None
Returns: Nothing (procedure)
Notes: None
270
initializeObject (b2b.p)
initializeObject (b2b.p)
Loads schema.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeObject (browser.p)
SmartDataBrowser version of initializeObject. Part of the general initialization process. Sets
certain property values.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Starting with Version 9.1A, dynamically creates columns of the SmartDataBrowser when
the Dynamic SmartDataBrowser is used.
• Might create a “Search Field” for searching in the SmartDataBrowser if the corresponding
SearchField property is set (also new as part of dynamic SmartDataBrowser support for
Version 9.1).
271
initializeObject (consumer.p)
initializeObject (consumer.p)
SmartMessageConsumer version of initializeObject.
Parameters: None
Returns: Nothing (procedure)
Notes: This redirects output to a log file when running in batch mode. If a JMS
Session is started without errors, processDestinations is run to get the
destinations needed for creating message consumers. When running in batch
mode, startWaitFor is invoked to start the Adapter’s waitForMessages.
initializeObject (containr.p)
Does container-specific initialization. If the container is a SmartFrame or nonvisual container,
createObjects is run at this time. It is not run for a SmartFrame when it is first created to avoid
creating objects that are not needed until after startup. If there is a StartPage (a first page to
position to other than page 0), it is selected. If the HideOninit or DisableOnInit property is set
for the Container, it is propagated to all contained objects before they are initialized. Then the
container publishes “initializeObject” to initialize all its contents. Finally it does RUN SUPER
to execute the initialization code in smart.p.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeObject (data.p)
Performs SmartDataObject-specific initialization. Specifically, starts the server-side copy of
this object if the AppService (partition) is defined.
Parameters: None
Returns: Nothing (procedure)
Notes: None
272
initializeObject (datavis.p)
initializeObject (datavis.p)
Data visualization version of initializeObject. Performs initialization appropriate to visual
objects that display data values. Part of the general initialization process. Sets certain property
values and displays if any nondatabase-related fields.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Invokes displayObjects to display nondatabase fields that might be present in the data
visualization object.
initializeObject (field.p)
Special code for initializing SmartDataFields.
Parameters: None
Returns: Nothing (procedure)
Notes: This procedure stores the procedure handle of the SmartDataField in the
PRIVATE-DATA of its Frame, in order that the procedure can be located
from the frame. It also adds itself to the DisplayedFields property of its
containing SmartDataViewer if the DisplayField logical property is TRUE,
and, if EnableField is TRUE, to the EnabledFields property as well.
273
initializeObject (filter.p)
initializeObject (filter.p)
Filters object initialization code.
Parameters: None
Returns: Nothing (procedure)
Notes: Dynamic widgets are created for the list of fields specified in
DisplayedFields. The deleteObjects() function is called to clean up to reflect
changes in the Instance Property dialog. WordIndexedFields property is
never checked again. Operator objects will assume that CONTAINS is
allowed if the filter field object type is EDITOR. UseContains will also only
work together with EDITOR fields. RANGE will not be used for
word-indexed fields unless UseContains is FALSE.
initializeObject (messaging.p)
Initializes objects of class Messaging.
Parameters: None
Returns: Nothing (procedure)
Notes: Creates the JMS session and sets the Broker URL in the session. Also gets and
sets the user, password, and clientID in the session before starting the session.
274
initializeObject (panel.p)
initializeObject (panel.p)
SmartPanel-specific initialization.
Parameters: None
Returns: Nothing (procedure)
Notes:
initializeObject (producer.p)
Initializes objects of class Producer.
Parameters: None
Returns: Nothing (procedure)
Notes: None
275
initializeObject (query.p)
initializeObject (query.p)
Initialization code for query objects.
Parameters: None
Returns: Nothing (procedure)
Notes: The query is not opened if it has a datasource. This is because a datasource
means the object is dependent on data from another object. In this case the
Data–Target (this procedure) waits until the dataAvailable event tells it to
open its query. Instead, this procedure RUNs dataAvailable to see if its
datasource is already running with a row available for it; in that case the
dataAvailable will open the query.
initializeObject (router.p)
Initializes objects of class Router.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeObject (sbo.p)
Initializes objects of class SBO. Sets the MasterDataObject property to the leading
SmartDataObject.
Parameters: None
Returns: Nothing (procedure)
Notes: Later this procedure must also establish the AppServer connection and other
tasks.
276
initializeObject (select.p)
initializeObject (select.p)
Overrides initializeObject in order to subscribe to the ChangedEvent, if defined, and to
initializeSelection.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeObject (smart.p)
Performs general initialization common to all objects.
Parameters: None
Returns: Nothing (procedure)
Notes:
• There is a version of initializeObject in virtually every Super procedure; each performs the
initialization appropriate to that class of objects. This top-level version runs the
createControls and control_load procedures, if they exist, to initialize ActiveX Controls in
the object, and sets the ObjectInitialized property to TRUE.
• Initialization of SmartObjects takes place in two phases. In the first phase, the
constructObject procedure is run (normally from the AppBuilder-generated procedure
adm–create–objects) for each SmartObject in a SmartWindow or other container. This
runs the Progress persistent procedures which instantiates the object, and initializes
Instance Properties for which values have been defined. adm–create–objects then creates
links between objects. Once this is complete, the container will run initializeObject. This
passes the initializeObject event down through all the contained objects. Thus any version
of initializeObject can assume that all the SmartObjects and SmartLinks in a container
have been established; thus it can check, for example, whether there is a link to some other
particular kind of object. Code should not, however, assume the order in which
SmartObjects will be initialized. For example, a SmartDataObject will open its query and
publish “dataAvailable” to signal that to other objects. A SmartDataViewer will run
dataAvailable in itself to see if there is already a row waiting for display, which would
happen if the associated SmartDataObject was initialized first.
277
initializeObject (toolbar.p)
initializeObject (toolbar.p)
Initializes the toolbar by creating all dynamic buttons and menus.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeObject (tvcontroller.p)
TreeViewController initialization procedure.
Parameters:
Returns: Nothing (procedure).
Notes: None.
initializeObject (viewer.p)
Enables fields in the list represented by the AppBuilder generated preprocessor value
{&ENABLED–FIELDS}.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The ENABLED–FIELDS preprocessor value contains a list of RowObject fields that are
enabled in a SmartDataViewer. At object initialization, this is turned into the
EnabledHandles property, which holds a list of the widget handles of the enabled fields in
the SmartDataViewer’s frame, for efficient access.
278
initializeObject (visual.p)
• enableFields can be customized when you require additional processing when RowObject
fields are enabled. You might want to do this to enable or hide other widgets not associated
with RowObject fields.
initializeObject (visual.p)
Initialization code specific to visualizations.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Reads through the list of enabled objects (which does not include RowObject fields) and
gets their handles to store in EnabledObjHdls property.
• Invokes applyLayout to change the object to the correct layout if there are multiple
layouts.
initializeSelection (select.p)
Unless the view-as is specified to be a browse, creates a selection widget and populates it with
data.
Parameters: None
Returns: Nothing (procedure)
Notes: None
279
initializeServerObject (appserver.p)
initializeServerObject (appserver.p)
Initializes the server object after it has been started or restarted.
Parameters: None
Returns: Nothing (procedure)
Notes: This is an internal “event” that is called from runServerObject after a
successful run on server. It silently ignores any calls when not bound.
initializeServerObject (data.p)
Initializes and sets context in the serverObject after it has been started or restarted.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeServerObject (sbo.p)
Sets context and initializes the server object.
Parameters: None
Returns: Nothing (procedure)
Notes: None
initializeVisualContainer (containr.p)
Translates window title and tab folder page labels and checks security for page labels.
Parameters: None
Returns: Nothing (procedure)
Notes: None
280
initPages (containr.p)
initPages (containr.p)
Initializes one or more pages, which are not yet being viewed, in order to establish links or to
prepare for the pages being viewed.
Parameters:
• The initPages procedure can be run by application code to initialize more pages than those
that are initially viewed, either in order to reduce the startup time for pages later on, or to
communicate with objects on pages not yet selected.
• Ordinarily only objects on page 0 and on the StartPage (if any) are created when the
SmartContainer is created. Objects on other pages are created when the page they are on
is first selected.
281
initProps (query.i)
Examples:
PROCEDURE initializeObject:
PROCEDURE createObjects:
initProps (query.i)
During initialization, sets all the object’s properties that are related to the Query.
Parameters: None
Returns: Nothing (procedure)
Notes: None
282
insertExpression (combo.p)
insertExpression (combo.p)
Inserts an expression into ONE buffer’s WHERE clause.
Parameters:
A complete WHERE clause with or without the FOR keyword, and without leading or
trailing commas.
• The new expression is embedded in parentheses, but no parentheses are placed around the
existing expression.
283
insertExpression (lookup.p)
insertExpression (lookup.p)
PRIVATE function. Inserts an expression into one buffer’s WHERE clause.
Parameters:
A complete WHERE clause with or without the FOR keyword, and without leading or
trailing commas.
• The new expression is embedded in parentheses, but no parentheses are placed around the
existing expression.
insertExpression (query.p)
Inserts an expression into a buffer’s WHERE clause.
Parameters:
Complete WHERE clause with or without the FOR keyword, but without commas.
284
insertFieldProperty (filter.p)
Specifies what operator is used to add the new expression to existing ones, either AND
(the default) or OR.
• The new expression is embedded in parentheses, but no parentheses are placed around the
existing expression.
insertFieldProperty (filter.p)
Inserts or adds a fields property to the CHR(1)-separated internal property that holds fields and
values.
Parameters:
Fieldname.
285
insertMenu (toolbar.p)
insertMenu (toolbar.p)
Creates a set of menu items or submenus under a parent menu.
Parameters:
The unique action name of an already-inserted parent. Blank means this is the menu bar
itself.
If TRUE, all actions in the action group are added under this parent. If FALSE, action
groups are created as submenus.
Returns: LOGICAL
Notes: None
instancePropertyList (smart.p)
Returns a list of the values of the names of the object’s InstanceProperties, that is, those
properties that can be set to initial values in design mode. These can be set in the AppBuilder to
determine the object instance’s behavior at run time.
Parameters:
Optional list of properties wanted. If this parameter is blank, the default is all of the
instance properties. Other valid options are "*"(all properties), or a list of the specific
properties wanted.
286
internalSchemaFile (router.p)
Notes:
• The properties are returned in a string delimited by CHR(3) between property name/value
pairs, and CHR(4) between the name and the value.
• Normally used internally by the AppBuilder at application design time to retrieve a list of
property names and values to insert into the generated code in the adm–create–objects
procedure.
• If the input parameter is the special value "*", then all object properties are returned with
their values. A list of object properties is determined by identifying all the get property
functions for the object (functions beginning "get" with no following hyphen, taking no
input parameters), plus all dynamic properties stored in the UserProperty string.
• If the input parameter is a comma-separated list of property names, just those properties
and their values are returned.
internalSchemaFile (router.p)
Returns the internal Schema filename based on the external and internal file reference
definitions.
Parameters:
Target Namespace, the XMLNS attribute from the incoming XML document.
287
isNodeExpanded (treeview.p)
isNodeExpanded (treeview.p)
Returns TRUE if some node is expanded.
Parameters:
Returns: LOGICAL
Notes: None.
isObjQuoted (smart.p)
Returns TRUE if the object number in the query string is represented as a quoted (sub)string.
European-format (999,99) numbers must not be reformatted (999.99) if represented as a string.
Parameters:
Returns: LOGICAL
Notes: This is needed when running the application using European format.
288
isUpdateActive (containr.p)
isUpdateActive (containr.p)
Received from container source to check if contained objects have unsaved or uncommitted
changes (including addMode).
Parameters:
isUpdateActive (data.p)
Received as a publication from container source to check whether contained objects have
unsaved or uncommitted changes, including addMode.
Parameters:
• This is published thru the container link from canExit for close logic (ok, cancel, exit). It
is very similar to canNavigate -> isUpdatePending, which is published thru the data link.
• We currently ONLY check rowObjectState as the other states are checked in the visual
objects.
289
isUpdateActive (datavis.p)
isUpdateActive (datavis.p)
Received from container source to check whether contained objects have unsaved or
uncommitted changes, including addMode.
Parameters:
isUpdatePending (data.p)
If no updates are known to be pending (RowObjectState is not RowUpdated, neither NewRow
nor DataModified are TRUE), publishes isUpdatePending to data-targets to check. Otherwise
returns without action.
Parameters:
290
isUpdatePending (sbo.p)
isUpdatePending (sbo.p)
Published through data-targets to check if any updates are pending. This SBO version of the
event turns around and RUNS it in the SDO to which the caller is mapped. If no pending updates
are found, it publishes isUpdatePending to its targets.
Parameters:
• This routine is called from canNavigate, which is used by navigating objects to check
whether they can trust an updateState("UpdateComplete") message.
291
launchFolderWindow (browser.p)
launchFolderWindow (browser.p)
Calls launchContainer in the session manager to start a folder window, if there is not already
one available.
Parameters:
leaveCombo (combo.p)
Trigger fired on leave of combo field. It stores the current screen value in the combo.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
leaveLookup (lookup.p)
This procedure is fired on leave of a lookup field.
Parameters: This procedure handles the situation where a value is manually entered rather
than using the lookup key. When that happens, we need to see whether the
screen value has been changed. If it has, see if the changed screen value is a
valid record. If it is, reset the keyvalue thus avoiding having to use the lookup.
Returns: Nothing (procedure).
Notes:
292
leaveSelect (select.p)
leaveSelect (select.p)
This procedure, fired on leave of a SmartSelect field, determines whether the lookup can be
avoided because the new value exists as a unique record.
Parameters:
Returns: Nothing (procedure).
Notes: This works only if the displayed field is in the first buffer of the linked SDO.
linkHandles (design.p)
Returns a comma-separated list of linked objects at design time
Parameters:
Returns: CHARACTER
Notes: None.
293
linkHandles (smart.p)
linkHandles (smart.p)
Takes a link name and returns a list of handles of objects at the other end of that link, relative
to the TARGET–PROCEDURE.
Parameters:
• If the link type does not exist in the object, then the empty string ("") is returned.
• The procedure handle list is returned as a character string because (if the link type
requested supports multiple objects at that end of the link) there might be multiple
SmartObjects connected by that link type, so these come back as a comma-separated list.
The developer must check the NUM–ENTRIES in the returned list (which might be zero,
one, or more), and apply the WIDGET–HANDLE function to each entry to derive the
procedure’s handle.
294
linkHandles (smart.p)
Examples:
/*
** Here, a pass-through link is created from a SmartDataObject in a parent
** SmartWindow, through the SmartWindow containing this code, to a
** SmartDataBrowser contained in this window. The Data link from the SDO will
** go both to the SmartWindow and to the Browser. There is no standard
** implementation of the ‘dataAvailable’ event that is published whenever a
** new row is selected in the parent SDO, but this local version will intercept
** that event and use it to modify the title of the window.
*/
PROCEDURE dataAvailable:
/* This input parameter is defined but we don’t look at it. */
DEFINE INPUT PARAMETER cType AS CHARACTER NO-UNDO.
DEFINE VARIABLE hDataSource AS HANDLE NO-UNDO.
DEFINE VARIABLE cValues AS CHAR NO-UNDO.
DEFINE VARIABLE hWindow AS HANDLE NO-UNDO.
/* We can convert the return value directly to a handle because we know
there is only one
Data Source. */
hDataSource = WIDGET-HANDLE(dynamic-function(‘linkHandles’:U,
‘Data-Source’:U)).
/* Ask for the Customer Name field from a Customer SDO. */
cValues = dynamic-function(‘colValues’:U IN hDataSource, INPUT
‘Name’:U).
/* Get the widget handle of the window itself. */
hWindow = dynamic-function(‘getContainerHandle’:U).
/* First value returned from colValues is always the RowIdent, so
skip it. */
hWindow:TITLE = “Orders for Customer “ + ENTRY(2, cValues, CHR(1)).
END PROCEDURE.
295
linkProperty (smart.p)
linkProperty (smart.p)
Returns the value of the requested property in the object at the other end of the specified link,
relative to TARGET–PROCEDURE.
Parameters:
• The value is returned in character format, regardless of its native datatype. If there is not
exactly one object at the other end of the link, or that object is no longer there, the unknown
value is returned.
Examples:
296
linkState (panel.p)
linkState (panel.p)
Receives a message whenever a linked object becomes active (typically when it is viewed) or
inactive (hidden).
Parameters:
linkState (toolbar.p)
Receives messages when an object linked to this one becomes active (typically when it is
viewed) or inactive (hidden). Resets buttons accordingly.
Parameters:
loadActions (action.p)
Calls getActions in the Repository Manager to load the actions listed in the argument.
Parameters: None.
297
loadBands (action.p)
loadBands (action.p)
Calls getToolbarBandActions in the Repository Manager to load data for one or more bands.
Parameters:
loadCategories (action.p)
Load specified actions.
Parameters:
298
loadImage (treeview.p)
loadImage (treeview.p)
Returns the index of some image file in the ImageList, first loading it if necessary. If the load
fails, the function returns 0 (zero).
Parameters:
loadObjectBands (action.p)
Calls getToolbarBandActions to load bands and actions for one or more objects
Parameters:
299
loadPanel (panel.p)
loadPanel (panel.p)
Loads actions.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
loadProducerSchema (b2b.p)
Returns the result of identifying and loading the appropriate producer schema.
Parameters: None
Returns: LOGICAL
Notes: None
loadSchema (b2b.p)
Loads the schema temp-table.
Parameters:
Returns: LOGICAL
Notes: None
loadToolbar (toolbar.p)
Loads toolbar, bands and actions for the toolbar object.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
300
loadToolbarBands (action.p)
loadToolbarBands (action.p)
Load bands and actions for a toolbar
Parameters:
301
mapNode (b2b.p)
mapNode (b2b.p)
Maps a node to a procedure, function, or column in a data object.
Parameters:
Returns: DECIMAL
Notes: If the node is mapped to more than one parameter of the Data-Source method,
the mapping is stored in storeParameters and the data will be processed in
callOutParams().
302
mappedEntry (smart.p)
mappedEntry (smart.p)
Returns the other entry in a separated list of paired entries. This is required to ensure that the
lookup does not find a matching entry in the wrong part of the pair.
Parameters:
Entry to lookup.
If TRUE, lookup first and return second. If FALSE, lookup second and return first.
Delimiter of pcList.
Returns: CHARACTER
Notes: Used to find mapped RowObject or database column in assignList. In other
cases, such as the ObjectMapping property of SBOs, an entry might occur
more than once in the list, in which case a list of matching values is returned,
using the same delimiter as the list.
menuHandle (toolbar.p)
Returns the handle of a menu.
Parameters:
Returns: HANDLE
Notes: PRIVATE function.
303
messageHandler (consumer.p)
messageHandler (consumer.p)
Runs when a message is received. It handles the incoming message by calling appropriate
procedures in its INMESSAGE-TARGET.
Parameters:
304
messageNumber (smart.p)
messageNumber (smart.p)
Returns the message text given a message number. Allows these messages to be translated and
tracked in one place.
Parameters:
Returns: CHARACTER
Notes:
• In order to allow certain messages to be translated, it is helpful to group them into a single
file, since the ADM super procedure source files are not otherwise regarded as part of a
translatable application. To facilitate this, messages that are expected to be seen by end
users and, therefore, should be translated are located in a single include file
(src/adm2/admmsgs.i) in the form of a character array. This allows a translated version
of this single file to be substituted and smart.p, which includes admmsgs.i, to be
recompiled or run through the Translation Manager tool in order to translate end-user
messages that are raised from code located in super procedures.
• The ADM convention is that error messages that are expected to be seen only by
developers or application testers (errors indicating errors in application construction, for
example, caused by missing links or the like) are not translated, and, therefore, appear in
the super procedures as literal strings with the ":U" suffix.
Examples:
/* This example retrieves the text for message number 4 ("Current values
must be saved or cancelled before Commit.") and passes it to the
addMessage procedure to add that message to the error message log. */
305
modifyDisabledActions (toolbar.p)
modifyDisabledActions (toolbar.p)
Modifies the DisabledActions property and makes it possible to permanently disable actions
independent of state changes.
Parameters:
If "ADD", adds the actions to the DisabledActions. If "REMOVE", removes the actions
from the DisabledActions.
Returns: LOGICAL
Notes: If pcMode = "ADD", the actions will be immediately disabled and
subsequent calls to enableActions will not enable them again. If pcMode =
"REMOVE", the actions that are removed from the list will be enabled the
next time they are called with enableActions.
modifyListProperty (smart.p)
Allows values to be added to or deleted from any object property that is a comma-separated list.
Parameters:
"ADD" or "REMOVE".
306
modifyListProperty (smart.p)
Notes:
• This is the ADM 2 equivalent of what was modify–list–attribute in the Version 8 ADM.
• Normally the first argument will be the handle THIS–PROCEDURE, if the property value
is to be changed for the current SmartObject. However, this can be another procedure
handle if the property is to be modified in another object.
• The modifyListProperty procedure first runs the getpropname function to retrieve the
current value of the property. If a new value is being added, and is already contained in the
list, or if a value to be removed is not present in the list, modifyListProperty simply returns
without error. Otherwise, the change to the list is made and the setpropname function is run
to reset the value of the list property. Both the get and set functions must exist; otherwise,
modifyListProperty will return without error.
• There are many ADM Properties that are expressed as comma-separated lists of handles
or other values. All of these should be maintained using the modifyListProperty
procedure. Using the setpropname function will reset the entire list to the value, which is
normally not what is desired.
Examples:
/* This code adds the specified source procedure handle to the list of
"Source"s for the specified link in the specifed Target procedure
handle (from addLink). */
307
modifyUserLinks (smart.p)
modifyUserLinks (smart.p)
Maintains a delimited list of user-defined links (that is, links that are not in the SupportedLinks
list for an object), and the handles of the objects at the other end of the links.
Parameters:
"ADD" or "REMOVE".
The procedure handle of the object at the other end of the link.
• Run from addLink and removeLink; used primarily by the linkHandles function. When
addLink encounters a link that is not in the list of SupportedLinks, it defines a single
SUBSCRIBE for an event of that name (see addLink). Because there are no properties
where the objects at either end of a nonsupported (or “dynamic”) link can be stored, they
are stored in this list so that functions such as linkHandles, which returns the handle of an
object at the other end of a link, can keep track of what the relationships are.
• The list is the third entry in ADM–DATA, delimited by CHR(1). Each entry in the list
consists of a link name followed by CHR(4) followed by a comma-separated list of one or
more handles. The list entries are delimited by CHR(3). Users should not be concerned
about the specific format and location of the list, which might be subject to change; using
this procedure to access the list will preserve compatibility with any possible changes.
308
movebuttons (toolbar.p)
movebuttons (toolbar.p)
Calculates start positions for left, right, and centre aligned bands in the toolbar according to the
current width of the toolbar frame, then move the existing buttons into their new positions. This
is called from resizeObject so it is always current for the actual size of the toolbar frame.
Parameters:
moveMenu (toolbar.p)
Moves and re-parents some child menu. Creates a new tree and deletes the existing tree so make
sure the next-sibling is available before this is called if this is done in a widget-tree loop (or use
moveMenuChildren).
Parameters:
Returns: HANDLE
Notes: None.
309
moveMenuChildren (toolbar.p)
moveMenuChildren (toolbar.p)
Moves and re-parents some group of child menus by calling moveMenu in a loop.
Parameters:
Returns: LOGICAL
Notes: None.
newDataObjectRow (sbo.p)
Tells one or more contained SDOs to prepare to create (add or copy) a new record.
Parameters:
The list of SDOs to be notified. These might be qualified with the ObjectName.
Returns: CHARACTER
Notes: Called by addRow and copyRow.
310
newQueryString (combo.p)
newQueryString (combo.p)
Returns a new query string to the passed query. The tables in the passed query must match
getQueryTables(). Adds column / value pairs to the corresponding buffer’s where-clause. Each
buffer’s expression will always be embedded in parenthesis.
Parameters:
A complete query string. This must be qualified correctly and match the queried tables. If
"?", the base query is presumed.
The operator that defines how the new clause is appended, for each buffer, to the query in
pcQueryString. Valid values are "AND" and "OR".
Returns: CHARACTER
Notes: This was taken from query.p but changed for Combos to work without an
SDO.
311
newQueryString (lookup.p)
newQueryString (lookup.p)
Returns a new query string to the passed query. The tables in the passed query must match
getQueryTables(). Adds column/value pairs to the corresponding buffer’s WHERE clause.
Each buffer’s expression will always be enclosed in parentheses.
Parameters:
A complete, fully-qualified query string matching the queries tables. If "?", use the base
query.
How to relate the new expression to the existing query (for each buffer). Valid values are
"AND" and "OR".
Returns: CHARACTER
Notes: This was taken from query.p but changed for lookups to work without an
SDO.
312
newQueryString (query.p)
newQueryString (query.p)
Returns a new query string to the passed query. The tables in the passed query must match
getTables(). Adds column/value pairs to the corresponding buffer’s WHERE clause. Each
buffer’s expression will always be embedded in parentheses.
Parameters:
Operator for all columns. Blank defaults to EQ. Use a slash to define an alternative string
operator. Comma-separated for each column/value.
AND or OR decides how the new expression is appended to the passed query (for each
buffer).
Returns: CHARACTER
Notes: None
313
newQueryValidate (query.p)
newQueryValidate (query.p)
Inserts a new expression to the passed prepare string if the buffer reference, usually extracted
from the expression, is valid. Returns ? if error (after an error message has been shown).
Parameters:
The new expression to add to the query. The first field reference is used as buffer reference
unless pcBuffer is defined.
Operator used to append if query string already has an expression. Default is "=".
Returns: CHARACTER
Notes:
The function avoids duplicate logic in add and setQueryWhere and acts as a wrapper for
newWhereClause with some significant additions and differences:
• The buffer reference is validated and qualification does not need to match the
original query.
• Displays error message and returns "?" if the buffer is unknown or ambiguous.
314
newQueryWhere (query.p)
newQueryWhere (query.p)
Returns a new query.
Parameters:
Returns: CHARACTER
Notes: For internal use only. This functions exists only to have the same logic in
setQueryWhere in data.p and query.p. Returns unknown if the buffer
reference is invalid.
newRowObject (data.p)
Assigns some general RowObject fields and updates LastRowNum and FirstRowNum when a
new RowObject has been created.
Parameters:
Returns: LOGICAL
Notes:
• The main purpose for this procedure is to ensure that copy and add behaves similarly.
315
newWhereClause (combo.p)
newWhereClause (combo.p)
Inserts a new expression to query’s prepare string for a specified buffer.
Parameters:
The buffer
The operator used to relate the new expression to the existing query. Valid values are
"AND" (default) and "OR".
Returns: CHARACTER
Notes: This is a utility function that doesn’t use any properties.
316
newWhereClause (lookup.p)
newWhereClause (lookup.p)
Appends a new expression to the query’s prepare string for a specified buffer.
Parameters:
The operator with which to append the new expression: ‘AND’ (default) or ‘OR’
Returns: CHARACTER
Notes: This is a utility function that doesn’t use any properties.
newWhereClause (query.p)
Inserts a new expression to a specified buffer’s WHERE clause.
Parameters:
Buffer.
317
nodeHandle (xml.p)
Specifies what operator is used to add the new expression to existing expressions, either
AND (the default) or OR.
Returns: CHARACTER
Notes: This is supported as a utility function that does not use any properties.
However, if target-procedure = super, the passed buffer’s qualification must
match the query’s. If target-procedure <> super, the buffer will be corrected
if it exists in the object’s query. Otherwise, it needs to match.
nodeHandle (xml.p)
Returns the handle of the node identified by the pdId argument.
Parameters:
Returns: CHARACTER
Notes: None
nodeType (xml.p)
Returns the type of the node identified by pdId.
Parameters:
Returns: CHARACTER
Notes: None
normalizeActionData (action.p)
Removes duplicate entries from temp-tables after loading some set of actions.
Parameters: None.
Returns: LOGICAL
Notes: The procedure handle is used to identify data to be kept or purged
318
NotFoundError (b2b.p)
NotFoundError (b2b.p)
Returns a useful ‘Record not found’ error message with keyfields.
Parameters:
DataSource
Returns: CHARACTER
Notes: None.
notifyPage (containr.p)
Invokes the specified procedure in all objects on the CurrentPage of A SmartContainer.
Parameters:
• This procedure is necessary because the notion of paging does not fit well with
PUBLISH/SUBSCRIBE. All objects in a Container will, for example, subscribe to
initialize (and so on), but the paging performs the operation on subsets of those objects.
• The notifyPage procedure will run an event procedure in all the objects on the current
page, determined from the PageNtargets property.
319
numParameters (b2b.p)
Examples:
numParameters (b2b.p)
Returns the number of parameters for a method.
Parameters:
Returns: INTEGER
Notes: None
obtainInMsgTarget (router.p)
Gets the handle of the incoming message and starts some container (containing, for example, a
SmartB2BObject and a business object such as a SmartDataObject). It then returns the handle
of the INMESSAGE-TARGET from that container.
Parameters:
320
.offEnd (browser.p)
.offEnd (browser.p)
Triggers code for OFF-END trigger of SmartDataBrowse.
Parameters: None
Returns: Nothing (procedure)
Notes: None
offHome (browser.p)
Triggers code for OFF-HOME trigger of SmartDataBrowse.
Parameters: None
Returns: Nothing (procedure)
Notes: None
okObject (containr.p)
Save and close an object (Ok action)
Parameters: None.
Returns: Nothing (procedure).
Notes:
• If this is the window container or a virtual container then override and do not call SUPER.
If not, then save and commit all Container-Targets and destroy if no errors occurred.
Published from containerTargets or called directly.
• There is a slight overhead in this construct as destroyObject (called from exitObject ->
apply “close”) does a publish “confirmExit”, which really is unnecessary after this has
published “confirmOk”. The reason is that destroyObject might be called directly.
321
okObject (datavis.p)
okObject (datavis.p)
Passes an ok request to its container
Parameters: None.
Returns: Nothing (procedure).
Notes: The convention is that the standard routine always passes an cancel, ok, or
exit request to its CONTAINER-SOURCE. The container that is actually able
to initiate the OK should override this and NOT call SUPER.
okToContinueProcedure (datavis.p)
Check whether the visual object has modified screen data or its data-source has uncommitted
changes. If either of these conditions is true we issue Yes-No-Cancel questions allowing the
user to choose how to proceed. The choices are: save/commit and continue; cancel/undo and
continue; not continue.
Parameters:
322
onChoose (panel.p)
onChoose (panel.p)
Read action and parameter from Action class (Repository) and publishes the call built from
them.
Parameters:
onChoose (toolbar.p)
Persistent trigger code for dynamic menu and toolbar objects.
Parameters:
oneObjectLinks (smart.p)
Adds linkage for some object.
Parameters:
323
onMenuDrop (toolbar.p)
onMenuDrop (toolbar.p)
Logic to execute when a submenu is dropped.
Parameters:
onValueChanged (toolbar.p)
Persistent trigger for toggle menu-items.
Parameters:
Name of action.
openDataQuery (data.p)
Opens the SmartDataObject’s database query based on the current WHERE clause.
Parameters: None
"First" or "Last".
Returns: LOGICAL
Notes: Currently used by SBOs after new temp-tables have been fetched.
324
openQuery (data.p)
openQuery (data.p)
Opens the DataQuery.
Parameters: None
Returns: LOGICAL
Notes: None
openQuery (query.p)
General logic for opening the database query either for a DataObject or for another query object.
Parameters: None
Returns: LOGICAL
Notes: The QueryString property that is modified by the addQueryWhere,
assignQuerySelection and setQuerySort methods will be used (if it is not
blank) in the QUERY–PREPARE method before opening the query.
openQuery (sbo.p)
As a wrapper for fetchContainedData(), allows you to use the familiar SmartDataObject calling
sequence.
Parameters: None
Returns: LOGICAL
Notes: None
ownerElement (xml.p)
Returns the OwnerElement corresponding to pdAttributeNode.
Parameters:
Returns: DECIMAL
Notes: None
325
pageNTargets (containr.p)
pageNTargets (containr.p)
Returns a comma-separated list of the objects on the specified page for this container.
Parameters:
Returns: CHARACTER
Notes:
• The actual property pageNTarget keeps track of SmartObject page assignments within a
Container. It is stored as a comma-separated list of entries, where each entry consists of an
object handle in string format and its page number, separated by a vertical bar. The
Target-Procedure is passed as a parameter because this function is only invoked locally,
not in the Target-procedure.
parentNode (xml.p)
Returns the ID of pdNode’s parent.
Parameters:
326
passThrough (containr.p)
passThrough (containr.p)
Acts as an intermediary for dynamic links that need the pass-through mechanism, either to get
an event from an object outside a container to one inside it or vice versa.
Parameters:
populateTree (treeview.p)
Controls the population of the TreeView. Creates the node given in the argument and all its
descendents.
Parameters:
327
populateTree (treeview.p)
Notes:
• The temp-table tTreeData includes the following fields: (as defined in tvcontroller.i)
– private_data — Information stored for the node in the node’s TAG property
– node_insert — Specifies where to insert the node, relative to the parent node:
4 - As child of parent_node_key
– node_sort — TRUE if the node is to be shown sorted within its sibling group. All of
this node’s siblings must have this option set for sorting to be complete. Default is
FALSE.
328
postCreateObjects (sbo.p)
postCreateObjects (sbo.p)
Runs at the end of createObjects(), after all contained Objects have been created but before they
have been initialized. Sets various properties that are dependent on knowing the handles and
Instance Properties of all contained objects, and fetches property settings from the server-side
SmartBusinessObject.
Parameters: None
Returns: Nothing (procedure)
Notes: None
postTransactionValidate (datalogic.i)
The optional validation procedure called automatically by serverCommit after all updates
complete and the transaction block ends.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
prepareErrorsForReturn (data.i)
Appends the RETURN-VALUE to the list of logged errors, formats the string for return to the
client. Called from serverCommit.
Parameters:
329
prepareErrorsForReturn (sbo.p)
prepareErrorsForReturn (sbo.p)
Appends the RETURN-VALUE from the user-defined transaction validation procedure or other
update-related error to the list of any errors already in the log. Formats this string to prepare for
returning it to the client.
Parameters:
prepareQueriesForFetch (sbo.p)
Prepares queries in SmartDataObjects for a fetch of data from the server.
Parameters:
• This procedure exists in order to have common logic for fetchContainedData and
fetchContainedRows.
• Cannot be used across sessions because temp-table handles are concatenated in a list. Tests
indicate that it is faster to add all the handles to a list than have a procedure with 20 output
parameters for the temp-table handles.
330
prepareQuery (data.p)
prepareQuery (data.p)
Prepares the SmartDataObject's database query based on the passed parameter. This procedure
isolates the query preparation for client/server, keeping it away from the logic needed to clean
and track the QueryString property.
Parameters:
Returns: LOGICAL
Notes: This function simplifies certain behavior in previous releases.
prepareQuery (query.p)
Internal function. Prepares the database query for some querying object such as a
SmartDataObject.
Parameters:
Returns: LOGICAL
Notes:
The main purpose for this is to prepare a query on an AppServer. You can do this in two
different ways:
• setQueryWhere will call this method and blank properties used by 1 in order to make
openQuery NOT call this.
331
preTransactionValidate (datalogic.i)
preTransactionValidate (datalogic.i)
The optional validation procedure called automatically by serverCommit and before entering
the transaction block.
Parameters: None.
Returns: Nothing (procedure).
Notes: Use this in place of TransactionValidate (maintained for backward
compatibility).
printToCrystal (data.p)
Transfers the data from the SDO to Crystal.
Parameters:
332
processAction (visual.p)
processAction (visual.p)
Generic procedure to process keyboard and mouse actions for visual objects.
Parameters:
processCDataSection (xml.p)
Processes a CDATA-Section node.
Parameters:
processComment (xml.p)
Processes a comment node.
Parameters:
333
processDestinations (consumer.p)
processDestinations (consumer.p)
Creates tDestination temp-table records from the Destinations, Subscriptions, and Selectors
property values.
Parameters: None
Returns: Nothing (procedure)
Notes: createConsumers() uses tDestination temp-table records when creating the
consumers that will monitor the individual destinations. You can override this
with a version of processDestinations() that creates its own tDestination
temp-table records rather than using the property values.
processDocument (xml.p)
Starts the processing of the current document.
Parameters: None
Returns: Nothing (procedure)
Notes: None
334
processElement (xml.p)
processElement (xml.p)
Processes an element document.
Parameters:
Current Documentpath (This is the logical path and not the numbered XPath.)
• Calls startEvent before the children are processed and endEvent after.
• Attributes are NOT processed in xml.p, but all the attribute’s names are passed as
parameters to the startEvent. The developer or super-procedure extension is responsible
for processing data from attributes.
processFileRefs (router.p)
Creates tFileReference temp-table records from ExternalRefList and InternalRefList property
values.
Parameters: None
Returns: Nothing (procedure)
Notes: None
processMappings (b2b.p)
Creates tMapping temp-table records from DirectionList, NameList, SchemaList,
DocTypeList, DestinationList, ReplyReqList, and ReplySelectorList property values.
Parameters: None
Returns: Nothing (procedure)
Notes: None
335
processMessages (b2b.p)
processMessages (b2b.p)
Called from receiveHandler() when an error occurs.
Parameters:
processRoot (xml.p)
Starts processing the elements of the document.
Parameters: None
Returns: Nothing (procedure)
Notes: This is just a starting point without events.
processText (xml.p)
Processes a text node.
Parameters:
336
produceAttributes (b2b.p)
produceAttributes (b2b.p)
Produces attributes of schema nodes.
Parameters:
produceChildren (b2b.p)
Produces all child nodes of an element/document.
Parameters:
produceDocument (b2b.p)
Creates a document and runs produceChildren() on it.
Parameters: None
Returns: Nothing (procedure)
Notes: None
337
propertyType (smart.p)
propertyType (smart.p)
Locates the "set" property function for the specified property name either locally or in a
SUPER procedure, and returns its data type.
Parameters:
Property name.
pushTableAndValidate (data.i)
When running from a SmartBusinessObject, acts as a wrapper for preTransactionValidate and
postTransactionValidate procedures.
Parameters:
Type of procedure needing the wrapper. Valid values are "Pre" and "Post."
Returns: RETURN-VALUE
Notes: None
338
putParam (tvcontroller.p)
putParam (tvcontroller.p)
Parameters:
Returns: CHARACTER
Notes: None.
queryOpened (select.p)
Subscribes to dataSource parameters.
Parameters: None
Returns: Nothing (procedure)
Notes: SmartSelect needs to know that the query has changed, since this cannot be
detected through an ordinary publish with "dataAvailable."
339
queryPosition (datavis.p)
queryPosition (datavis.p)
Captures “state” events for the associated query in the object’s data source.
Parameters:
Possible values are: FirstRecord (first record); NotFirstOrLast (not the first or last record);
LastRecord (last record); NoRecordAvailable (no record); OnlyRecord (only one record)
• When any state begins "NoRecordAvail" it means to disable; all others (FirstRecord,
NotFirstOrLast, LastRecord, OnlyRecord) mean to enable if in "Save" mode (SaveSource
property is set to yes).
queryPosition (panel.p)
Captures “state” events for the associated Query in the Panel’s NavigationTarget. Invokes the
setPanelState function, which stores the new state in the object’s PanelState property and then
invokes the setButtons procedure to change the Panel.
Parameters:
Panel State
340
queryPosition (sbo.p)
queryPosition (sbo.p)
Receives the queryPosition event from a contained SmartDataObject and passes it on to the
appropriate Navigation-Source or other object.
Parameters:
queryPosition (toolbar.p)
Captures state events for the associated query in the Panel’s NAVIGATION-TARGET. Invokes
the setPanelState() function to store the new state in the object’s PanelState property. Then
invokes the setButtons procedure to change the Panel.
Parameters:
receiveHandler (b2b.p)
Handles receiving a message.
Parameters:
341
receiveHandler (xml.p)
receiveHandler (xml.p)
Handles receiving a message
Parameters:
receiveReplyHandler (xml.p)
Handles any reply to a message that has been sent.
Parameters:
342
refetchDBRow (query.p)
refetchDBRow (query.p)
Re-reads the current database records to get any field values that might have been changed by
update triggers, and repopulates the RowObjUpd row with those values.
Parameters:
The handle of the Update temp-table buffer to be used. Note that this is required because
the caller uses two different buffers in some cases.
refreshBrowse (browser.p)
Published from dataSource when APPEND display is not enough or not required.
Parameters: None
Returns: Nothing (procedure)
Notes: None
refreshBrowse (sbo.p)
Receives the refreshBrowse event from a contained SDO and passes it on to the appropriate
DataTarget.
Parameters:
343
refreshChildDependancies (combo.p)
refreshChildDependancies (combo.p)
Refreshes any children of the Combo identified in the argument.
Parameters:
refreshCombo (combo.p)
Runs displayCombo in TARGET-PROCEDURE. This is usually triggered from a
value-changed event of a parent combo.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
registerLinkedObjects (sbo.p)
Register objects in the ObjectMapping and other properties. This currently applies to
navigationSources and Datatargets. Currently we assume that UpdateSources are DataTargets
also.
Parameters: None.
Returns: Nothing (procedure).
Notes: This procedure is used to register objects that have already been initialized
when the SBO is initialized. The SBO also subscribes to ‘registerObject’ in
these objects, which they publish at initialization.
344
refreshObject (select.p)
refreshObject (select.p)
Refreshes the data in a SmartSelect.
Parameters: None
Returns: Nothing (procedure)
Notes: openQuery in the datasource publishes “queryOpened” which is Subscribed
to run this (in initializeSelection). Also defined as PERSISTENT trigger on
F5 of the selection widget.
refreshRow (data.p)
Retrieves the current database values for a row already in the RowObject table.
Parameters: None
Returns: Nothing (procedure)
Notes: PUBLISHes dataAvailable ("SAME") to cause a SmartDataViewer or
Browser to display the latest values. Since the database records are never
locked on read, this procedure can be used to fetch the latest values upon a
request from an application, but cannot guarantee that they will not change
before an update is done.
refreshRowident (query.p)
Returns a refreshed list of rowids for the read-only tables in the current query.
Parameters:
Returns: CHARACTER
Notes:
345
registerObject (sbo.p)
• Only one copy of the record that is being updated in the query, which means one-to-one
updates if many updatable records. There are several changes that still require an open
query to be reflected.
• Changes in a child record that changes or makes a parent relationship invalid is not
reflected and requires a complete open query.
• Changes that make an inner-join invalid will blank out Rowids for all read-only tables,
even if some of them were still valid. Note that if the query was reopened, this row would
disappear from the query. Normally an application would check that no invalid keys are
entered, but a value could also be changed so that it was filtered away.
• Two updatable tables will not reflect changes in the relationship to each other.
registerObject (sbo.p)
A general purpose “register” event published from objects at initialization. This object defines
this as navigationSourceEvent and dataTargetEvent. The event is used to register objects in
ObjectMapping and other properties. (Currently, assume that updateSources are also
DataTargets.)
Parameters: None
Returns: Nothing (procedure)
Notes: None
releaseDBRow (query.p)
Releases the database records following an update.
Parameters: None
Returns: Nothing (procedure)
Notes: None
346
ReleaseDC (treeview.i)
ReleaseDC (treeview.i)
Defined as EXTERNAL "user32".
Releases some device context.
Parameters:
removeAllLinks (smart.p)
Removes all links for a SmartObject, normally as part of destroying a SmartObject procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: Run automatically as part of destroyObject. Not normally expected to be run
by user application code (see removeLink for a procedure to remove a single
specific link).
removeForeignKey (query.p)
Removes the ForeignKey from the query string.
Parameters: None
Returns: LOGICAL
Notes: The ForeignKey consists of ForeignKeys and ForeignValues.
347
removeLink (smart.p)
removeLink (smart.p)
Removes a specific link between two objects.
Parameters:
• This procedure both removes the handles of both Source and Target from the appropriate
SmartObject properties (see addLink) and also does an UNSUBSCRIBE for each named
event associated with the link.
• All SmartObject links are removed when an object is destroyed. This procedure could be
used in application code to remove a specific link based on application requirements.
Examples:
/* This example removed the Update link between a visual SmartObject such
as a SmartDataViewer and its associated SmartDataObject, perhaps in
response to an application event or security check which should make
‘Update-Target’:U)).
IF VALID-HANDLE(hTarget) THEN
RUN removeLink(THIS-PROCEDURE, ‘Update’:U, hTarget).
348
removePageNTarget (containr.p)
removePageNTarget (containr.p)
Removes an object from the list of Targets on a page.
Parameters:
removeQuerySelection (query.p)
Removes query selection criteria from the QueryString property that were added by
assignQuerySelection.
Parameters:
A comma-separated list of column names that are the subject part of a phrase to be
removed.
Returns: LOGICAL
349
removeQuerySelection (sbo.p)
Notes: This procedure modifies the QueryString property and is designed to run on
the client and called several times before QueryString is used in a
QUERY–PREPARE method to modify the database query. openQuery will
prepare the query using the QueryString property. The removal of the
expression is done by finding the value of which position and length is stored
in the QueryColumns property.
removeQuerySelection (sbo.p)
Separates the Columns by SmartDataObject and passes columns and operators on to the
appropriate SmartDataObjects. SmartBusinessObject version of this where-clause function.
Parameters:
Comma-separated list of column names, qualified by their ObjectNames, that are the
subject part of a phrase to be removed.
Returns: LOGICAL
Notes: All columns must be qualified by their SmartDataObject ObjectName as
TableName; this will be replaced with RowObject when the columns are
passed on to the SmartDataObject.
350
removeSpace (filter.p)
removeSpace (filter.p)
Backspaces, deletes, and sets the field to unmodified. Keeps it out of the selection criteria.
Parameters: None
Returns: Nothing (procedure)
Notes: Start persistent in initializeObject. Note that filter.i has the following
trigger anywhere on frame: on value-changed > u10 > unblankFillin trigger
resets format when all fields have been blanked (emptied).
replyHandler (producer.p)
Handles replies to messages.
Parameters:
repositionDataSource (select.p)
Repositions the current dataSource according to the key field. Conditionally called from
setDataValue() and valueChanged().
Parameters:
Returns: LOGICAL
Notes: None
351
repositionObject (smart.p)
repositionObject (smart.p)
Adjusts the position of container objects.
Parameters:
repositionObject (toolbar.p)
Overrides default reposition. Because the coordinates are NOT assigned in design, the position
only changes through direct manipulation and not when dropped in the container.
Parameters:
repositionObject (treeview.p)
Super override for Treeview object repositioning.
Parameters:
New row
New column
352
repositionRowObject (data.p)
repositionRowObject (data.p)
Positions the current-record pointer to the record passed as argument. Used during updates to
prevent errors caused by the user moving the current-record pointer before completing the
update.
Parameters:
Returns: LOGICAL
Notes: We need to use entry 1 of the rowident which is the rowid of the rowobject
temp-table record. This is NOT using reposition because we do not want the
browser to reposition. This can fail only if the query has been reopened and
the rowobject temp-table rebuilt, meanwhile, changing the rowids. It is to be
hoped that this would not happen.
repositionRowObject (sbo.p)
Passes the rowident on to the contained DataObject that manages that data. SBO version of the
routine.
Parameters:
Semicolon-separated list, one entry for each ContainedDataObject. The visual object’s
getRowIdent returns this correctly.
Returns: LOGICAL
Notes: None.
resetCommit (panel.p)
Resets the commit target actions.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
353
resetFields (filter.p)
resetFields (filter.p)
Resets all the fields to the previously applied filter values.
Parameters: None
Returns: Nothing (procedure)
Notes: The field values and operator values are retrieved form the actual filter-targets
query.
resetNavigation (panel.p)
Resets the navigation target actions.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
resetQuery (sbo.p)
Resets the query for the identified SmartDataObject. If the query being reset belongs to the
Master object, the operation brings it to its default state (Open Query). If the query belongs to
some other object, the reset operation clears the QueryString property.
If pcObject is not specified, this routine resets the queries for all contained SmartDataObjects.
Parameters:
SmartDataObject ObjectName.
Returns: LOGICAL
Notes: This function is here because setQueryWhere is not supported for
SmartBusinessObjects, and running setQueryWhere(") would be the way to
do it otherwise.
354
resetRecord (browser.p)
resetRecord (browser.p)
SmartDataBrowser version of resetRecord. Redisplays the original field values retrieved from
the SmartDataObject.
Parameters: None
Returns: Nothing (procedure)
Notes:
resetRecord (datavis.p)
A general code for reset operation. Redisplays the original field values retrieved from the
SmartDataObject by invoking the colValues() function for the fields that are displayed.
Parameters: None
Returns: Nothing (procedure)
Notes:
355
resetTableio (panel.p)
resetTableio (panel.p)
Encapsulate ALL tableio settings
Parameters: None.
Returns: Nothing (procedure).
Notes: Can probably replace ALL other events except
• linkChanged(‘inactive’).
resetTargetActions (panel.p)
Resets action sensitivity and visibility.
Parameters:
resetTargetActions (toolbar.p)
Resets target actions of some kind for an object.
Parameters:
356
resetToolbar (toolbar.p)
resetToolbar (toolbar.p)
Resets toolbar actions by calling resetTargetActions.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
resizeBrowse (browser.p)
Changes the size of the BROWSER WIDGET-HANDLE IN APPEND SmartDataBrowser.
Parameters:
resizeObject (browser.p)
Changes the size of the SmartDataBrowser.
Parameters:
357
resizeObject (combo.p)
Notes:
• Invoked at design time when the SmartDataBrowser is resized. Can be invoked at run time
to change the size of the SmartDataBrowser.
• The presence of the resizeObject procedure causes the AppBuilder to generate a statement
in the adm–create–objects procedure for a SmartContainer setting the size of a contained
SmartDataBrowser. The presence of resizeObject also signals the AppBuilder to allow the
SmartDataBrowser to be resized at design time.
resizeObject (combo.p)
Resizes the Combo by deleting the widget, resizing the frame, and recreating the widget in the
new size.
Parameters:
358
resizeObject (field.p)
resizeObject (field.p)
Resizes the field by looping through all fields in the Frame and resizing any that do not have
‘NO-RESIZE’ in the PRIVATE-DATA property.
Parameters:
New height
New width
resizeObject (lookup.p)
Resize the Lookup by deleting the widget, resizing the Frame, and recreating the widget.
Parameters:
359
resizeObject (panel.p)
resizeObject (panel.p)
Changes the size and shape of the panel. This routine spaces the buttons to fill the available
space.
Parameters:
resizeObject (select.p)
Resizes the SmartSelect.
Parameters:
360
resizeObject (toolbar.p)
resizeObject (toolbar.p)
Overrides the size after a resize. The only allowed sizing is shrinking to the last button.
Parameters:
resizeObject (treeview.p)
Resizes a SmartTreeView object.
Parameters:
New height
New width
361
resizeWindow (containr.p)
resizeWindow (containr.p)
Respond to a resize event from user event or container targets.
Parameters: None.
Returns: Nothing (procedure).
Notes: The current functionality just resizes the frame according to the window size.
This was added to make the call from the toolbar’s resizeObject after it
expands a window have some default functionality, but this is mostly a
placeholder for logic to resize all contained objects, currently implemented in
ry/uib/rydyncontw.w.
resolveBuffer (query.p)
Resolves the correct qualified buffer name of the passed buffer reference.
Parameters:
Returns: CHARACTER
Notes:
• Returns blank if the buffer cannot be resolved in the SDO. Returns unknown if the table
reference is ambiguous (More than one table in the SDO matches the unqualified input
parameter).
• Used internally (columnTable and others) to resolve cases where the passed column
name’s qualification is different from the object’s.
• There is no reference to the query handle in order to resolve this on the client.
362
restartServerObject (appserver.p)
restartServerObject (appserver.p)
When a SmartDataObject is split and running stateless on an AppServer, it is shut down after
each use and then restarted for the next. restartServerObject is run on the client to restart the
SmartDataObject on the server.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Both start- and restart- runs runServerObject, which does the actual run and the optional
initialize.
• This procedure is considered to be an “internal event” and silently returns if the object is
bound, or Appservice = ' ' and does not check if ASHasStarted is true (because this might
not be damaging if there is no difference between start/restart). It is assumed to be called
only when unbound and ASHasStarted is true, as when called from getAsHandle.
• getASHandle depends on the “silent error” when Appservice is blank for backwards
compatibility with data and SBO classes (it actually checked ASDivision="client", but
that is too restrictive). So, if errors are added here, make sure getAsHandle deals with
(removes) them before returning a "?".
restartServerObject (data.p)
Restarts the SmartDataObject on the server.
Parameters: None
Returns: Nothing (procedure)
Notes: When a SmartDataObject is split and running Stateless on an AppServer, it is
shut down after each use and then restarted for the next. restartServerObject
is run on the client to restart the SmartDataObject on the server.
363
restartServerObject (sbo.p)
restartServerObject (sbo.p)
When a SmartBusinessObject is split and running stateless on an AppServer, it is shut down
after each use and then restarted for the next. restartServerObject is run on the client to restart
the SmartBusinessObject on the server.
Parameters: None
Returns: Nothing (procedure)
Notes: This override is for error handling to show error message and return
"adm-error".
retrieveFilter (data.p)
Obtains and restores the filter to its defined state. This depends on links that are only available
on the client side.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
returnFocus (smart.p)
Returns focus to the containing window.
Parameters:
364
returnParentFieldValues (combo.p)
returnParentFieldValues (combo.p)
Loops through all field handles.
Parameters:
returnParentFieldValues (lookup.p)
Parameters:
reviewMessages (smart.p)
Returns a delimited list of all messages without removing them from the log.
Parameters: None
Returns: CHARACTER (Specially delimited message list.)
Notes:
365
routeBytesMessage (router.p)
• The message list is delimited by CHR(3); within each message, the Message Text, the
Field (if any), and the Table (if any) are delimited by CHR(4).
routeBytesMessage (router.p)
Takes a procedure that has a BytesMessage, loads the message, and sends the document to a
SmartB2BObject.
Parameters:
A procedure handle to the object with the BytesMessage and a corresponding getMemptr
function to retrieve the message.
routeDocument (router.p)
Routes the documentHandle to a SmartB2BObject, including starting the SmartContainer with
the SmartB2B if required, and giving it the loaded schema.
Parameters:
366
routeMessage (router.p)
routeMessage (router.p)
Takes a procedure that has a message, loads the message, and sends the document to a B2B
object and returns its handle.
Parameters:
A procedure handle to the object with the JMS message or any object with
getMessageType and a corresponding get function to retrieve the message.
rowAvailable (data.p)
Checks RowObject availability. Encapsulates the different query position alternatives required
to check for availability.
Parameters:
Returns: LOGICAL
Notes: This can be used in loops to simplify logic when navigating.
367
rowDisplay (browser.p)
rowDisplay (browser.p)
Event Handler for the ROW-DISPLAY event.
Parameters: None
Returns: Nothing (procedure)
Notes: None
rowidWhere (query.p)
Returns the ROWID (converted to a character string) of the first database query row satisfying
the where clause. In the case of a join, only the rowid of the first table in the join will be returned
and the expression in pcWhere can only reference that table.
Parameters:
The where clause to apply to the database query to fetch the first record whose ROWID
will be returned.
Returns: CHARACTER
Notes: The ROWID is returned as a string both in anticipation of it being used as an
argument to fetchRowIdent, and also to allow this function to be invoked
from outside Progress.
368
rowidWhereCols (query.p)
rowidWhereCols (query.p)
Returns a list of ROWIDs and adds column/value pairs to the corresponding buffer’s WHERE
clause. Each buffer’s expression is embedded in parentheses.
Parameters:
Column names (comma separated). Fieldname of a table in the query in the form of
TBL.FLDNM or DB.TBL.FLDNM (only if qualified with db), (RowObject.FLDNM
should be used for SDOs). If the fieldname is not qualified, it checks the tables in the
TABLES property and assumes the first is a match.
Returns: CHARACTER
Notes: None
rowNotFoundError (b2b.p)
Returns a "Record not found" error message with key fields.
Parameters:
DataSource.
369
rowObjectState (data.p)
Returns: CHARACTER
Notes: None
rowObjectState (data.p)
Passes on the flag, which indicates when a SmartDataObject row has been changed locally but
not committed. This gets passed on until it reaches the Commit Panel or other first
Commit–Source.
Parameters:
rowObjectState (toolbar.p)
Published from COMMIT-TARGET to tell the panel when to enable/disable itself. The panel
enables itself when there are uncommitted changes, and disables itself at other times.
Parameters:
370
rowObjectValidate (datalogic.i)
rowObjectValidate (datalogic.i)
The client-side validation procedure for RowObject.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
rowSelected (lookup.p)
Publish a lookupcomplete event in the container allowing developers to perform some action
when a row is selected from the browser.
Parameters:
rowSelected (select.p)
Published from the browser when a row is selected.
Parameters: None
Returns: Nothing (procedure)
Notes: The browser is selected on default action and exits (if CancelrowObExit =
false). The subscripting is done in browseHandler.
371
rowValues (data.p)
rowValues (data.p)
Retrieves a list of data from all rows in the DataObject.
Parameters:
Returns: CHARACTER
Notes:
• Intended for use by SmartSelect or other nonbrowser objects that need to show all rows of
the SDO.
• Should not be used with large amounts of data since all data needs to fit in the return value.
• The purpose is to read all data without publishing to data sources. If the query is browsed,
however, that happens when reposition-to-rowid is executed.
rowVisible (browser.p)
Determines if the records currently visible in the browse are the first or last records in the batch.
Parameters:
Returns: CHARACTER
Notes: None
372
runInfo (toolbar.p)
runInfo (toolbar.p)
Returns the necessary information for RUN or PROPERTY.
Parameters:
Target Procedure.
runServerObject (appserver.p)
Runs the server part of this object and sets AShandle.
Parameters:
373
runServerProcedure (appserver.p)
runServerProcedure (appserver.p)
Returns the handle of a procedure after it runs on server.
Parameters:
Returns: HANDLE
Notes: Simplifies an override of the run statement, such as to use a bind procedure
instead of running the procedure directly.
374
saveContextAndDestroy (data.p)
saveContextAndDestroy (data.p)
Access: Saves the context of the server-side SmartDataObject in support of running
in Stateless mode and then destroys it.
Parameters:
schemaField (b2b.p)
Returns the buffer-value of a schema field.
Parameters:
Buffer name.
375
searchTrigger (browser.p)
searchTrigger (browser.p)
Contains the logic to support the SearchField property of the Dynamic SmartDataBrowser. The
SmartDataBrowser repositions to the first record that is greater than or equal to the value entered
in the SearchField.
Parameters: None
Returns: Nothing (procedure)
Notes: In the Data source connected to the SmartDataBrowser, searchTrigger
Invokes in the following order the columnDataType, rowidWhere, and
fetchRowIdent functions to reposition to a corresponding record.
selectFirstNode (treeview.p)
Selects the first node in the TreeView.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
selectNode (treeview.p)
Switches focus to node passed in by phNodeKey, selects this node, and generates a
tvNodeSelected event.
Parameters:
Returns: LOGICAL
Notes: None.
376
selectPage (containr.p)
selectPage (containr.p)
Changes the currently selected page. If the previous current page is not page 0 (the background
page that is always visible), then hideObject is run in all the objects on the CurrentPage. Then
the CurrentPage is changed to the new page number of piPageNum, and the changePage
procedure is run to view and, if necessary, create the objects on the new page.
Parameters:
• This procedure is designed to switch from one page on a single frame to another, so the
objects on the previous page are hidden and the objects on the new page viewed. If the new
page is in fact a separate SmartWindow, then in most cases the similar procedure
viewPage should be used, which will view the objects on the new page without hiding the
current page.
• The selectPage procedure is run when a tab on the SmartFolder is pressed. It can also be
run from application code when some other mechanism is used to change pages.
Examples:
/* This trigger code allows the user to select a page by typing the
number into a field. */
ON LEAVE OF PageNum
DO:
RUN SelectPage(INTEGER(PageNum:SCREEN-VALUE)).
END.
377
sendHandler (b2b.p)
sendHandler (b2b.p)
Event handler for sending the message.
Parameters:
• Gets the actual schema and produces an XML document before calling super, which takes
care of the actual saving of the document to the MEMPTR that is transferred to the
message object.
sendHandler (xml.p)
Sets the body of an outgoing message.
Parameters:
• The document handle is saved into a MEMPTR, and the MEMPTR is used to set the body
of the Bytes Message.
378
sendMessage (b2b.p)
sendMessage (b2b.p)
Overrides the msghandler message in order to set message-specific properties.
Parameters: None
Returns: Nothing (procedure)
Notes: None
sendMessage (msghandler.p)
Sends the message to the OutMessage-Target.
Parameters: None
Returns: Nothing (procedure)
Notes:
• This runs sendMessage with NO-ERROR and checks the error status after the call. If an
error occurred, the errors are retrieved with fetchMessages() and passed to the
sendErrorHandler. Errors that occur in sendMessage() in the OutMessageTarget are
expected to be added to the message queue with addMessage().
• The Message Id returned from the Out Message Target will be stored in the
CurrentMessageId property if ReplyRequired.
sendMessage (producer.p)
Creates and sends a message.
Parameters:
379
SendMessageA (treeview.i)
SendMessageA (treeview.i)
Defined as EXTERNAL "user32"
Parameters:
The w param
The l param
380
sensitizeActions (panel.p)
sensitizeActions (panel.p)
Turns sensitivity on/off for some list of actions.
Parameters:
Returns: LOGICAL
Notes: This is the static version; the dynamic version is in toolbar.p
sendReplyHandler (xml.p)
Processes a reply to a message.
Parameters:
381
sendRows (data.p)
sendRows (data.p)
Fetches the requested number of rows from the database Query and creates corresponding
records in the Row Object temp-table. The batch will typically start at row indicated by the
pcRowIdent parameter, but can start on the row indicated by the piStartRow parameter.
Parameters:
The RowNum to start on. An undefined value (?) indicates that the next argument
(pcRowIdent) determines the start of the batch to be returned.
The maximum number of rows to return (supply a negative value to move backwards in
the result set).
382
sensitizeActions (toolbar.p)
sensitizeActions (toolbar.p)
Set actions’ SENSITIVE attribute. The main purpose is to have the same logic for
disableActions and enableActions.
Parameters:
• Actions can be created in other procedures, but this is the only place that they are enabled.
The exception is that submenus are currently set TRUE when created.
• This procedure might need to be declared PUBLIC in order to call the canDo() function.
serverCommit (data.i)
Server-side counterpart of the client-side Commit function, used when running in n-tier (client
+ AppServer) mode. Receives from the client-side counterpart a dual set of records (original and
changed versions) for update. If comparing the original and current versions reveals no outside
changes, updates the records. Otherwise, returns the current (changed) versions to the client side
without update, for display to the user.
Parameters:
383
serverCommit (datamessage.p)
OUTPUT cUndoIds
List of any RowObject ROWIDs for which changes were rejected by a commit. Takes the
form of RowNum/ADM-ERROR-STRING pairs, CHR(3) separators within pairs, comma
separators between pairs.
serverCommit (datamessage.p)
Specialized message for data objects that gives the client the server API.
Parameters:
A list of any RowObject rowids whose changes need to be undone as the result of errors.
The list takes the form:
RowNumCHR(3)ADM-ERROR-STRING,RowNumCHR(3)ADM-ERROR-STRING,...
serverCommit (logic.i)
Not currently in use (commented out). Server-side update procedure.
Parameters:
Returns: Nothing (procedure).
Notes: None.
384
serverCommitTransaction (datamessage.p)
serverCommitTransaction (datamessage.p)
server-side version of CommitTransaction to receive all RowObjUpd table updates and pass
them on to server-side SDOs.
Parameters:
...
serverCommitTransaction (sbo.i)
Server-side version of CommitTransaction. Receives all RowObjUpd table updates and passes
them on to server-side SDOs.
Parameters:
385
serverContainedSendRows (sbo.p)
serverContainedSendRows (sbo.p)
Receives the SmartDataObject ObjectName and runs SendRows in that, returning the
RowObject table. Server-side SmartBusinessObject version of serverSendRows.
Parameters:
The RowNum value of the record to start the batch to return. Typically piStartRow is ? as
a flag to use pcRowIdent instead of piStartRow.
The RowIdent of the first record of the batch to return. Can also be "FIRST" or "LAST"
to force the retrieval of the first (or last) batch of RowObject records.
TRUE if serverSendRows() is to start on the record after the one indicated by piStartRow
or piRowIdent.
The actual number of rows returned. This number will either be the same as
piRowsToReturn or less when there are not enough records to fill up the batch.
386
serverFetchContainedData (datamessage.p)
serverFetchContainedData (datamessage.p)
The SBO version on the server-side will prepare and open a query and return all the resulting
data to the client side.
Parameters:
reserved for future use to provide information on positioning each of the queries;
387
serverFetchContainedRows (datamessage.p)
serverFetchContainedRows (datamessage.p)
Server-side procedure that retrieves a batch of data in one of the contained SDOs and returns all
the resulting data to the client side.
Parameters:
The RowNum value of the record to start the batch to return. Typically piStartRow is "?"
as a flag to use pcRowIdent instead of piStartRow.
The actual number of rows returned. This number will be less than the number requested
if there are not enough additional records available.
388
serverFetchContainedData (sbo.p)
serverFetchContainedData (sbo.p)
Prepares and opens a query and returns all the resulting data to the client side. Server-side
procedure.
Parameters:
Reserved for future use to provide information on positioning each of the queries.
serverFetchContainedRows (sbo.p)
Prepares and opens a query on the server side and returns all resulting data to the client side.
Parameters:
Reserved for future use in providing positioning information for each of the queries
389
serverFetchDOProperties (sbo.p)
serverFetchDOProperties (sbo.p)
Runs at startup to return property values needed on the client. Server-side procedure.
Parameters:
serverFetchRowObjUpdTable (data.p)
Runs on the server side at startup to return property values needed by the client.
Parameters:
Properties and values in internal format that can be used for assigns.
390
serverSendRows (data.i)
serverSendRows (data.i)
Server-side routine called by its counterpart (clientSendRows) when operating in n-tier mode
(client, AppServer). Acts as a pass-through proxy to sendRows for assembling and retrieving a
batch of records. Runs in the ASHandle if in an SBO.
Parameters:
The RowNum value of the record to start the batch to return. Typically piStartRow is ? as
a flag to use pcRowIdent instead of piStartRow.
The RowIdent of the first record of the batch to return. Can also be "FIRST" or "LAST"
to force the retrieval of the first (or last) batch of RowObject records.
The actual number of rows returned. This number will always be <= piRowsToReturn.
• All of the parameters are simply received from the client and passed through to sendRows.
The temp-table result is then received from sendRows and passed back to the client
counterpart routine.
• The most common use of piRowsReturned is to indicate that the entire result list has been
returned when it is less than piRowToReturn.
391
serverSendRows (datamessage.p)
serverSendRows (datamessage.p)
Specialized message for data objects that gives the client the server API.
Parameters:
The RowNum value of the first record to return. Typically this will be "?", meaning: use
pcRowIdent instead of piStartRow.
The RowIdent of the first record to return. Can also be "FIRST" or "LAST" to force the
retrieval of the first (or last) batch of RowObject records.
The actual number returned, which might be less than the number requested.
392
ShellExecuteA (treeview.i)
ShellExecuteA (treeview.i)
Defined as EXTERNAL "shell32".
Parameters:
393
showDataMessages (datavis.p)
showDataMessages (datavis.p)
Returns the name of the field (if any) from the first error message. Allows the caller to use it to
position the cursor.
Parameters: None
Returns: CHARACTER
Notes: Invokes fetchMessages() to retrieve all Data-related messages (normally
database update-related error messages), and displays them in an alert-box of
type error. This function expects to receive back a single string from
fetchMessages with one or more messages delimited by CHR(3), and within
each message the message text, Fieldname (or blank) + a Tablename (or
blank), delimited by CHR(4), if present.
showDataMessages (filter.p)
Returns the name of the field (if any) from the first error message to allow the caller to use it to
position the cursor.
Parameters: None
Returns: CHARACTER
Notes: Invokes fetchMessages() to retrieve database update-related error messages),
and displays them in an alert-box of type error. This function expects to
receive back a single string from fetchMessages with one or more messages
delimited by CHR(3), and within each message the message text, Fieldname
(or blank) + a Tablename (or blank), delimited by CHR(4), if present.
394
showDataMessagesProcedure (datavis.p)
showDataMessagesProcedure (datavis.p)
Replaces the showDataMessages function. Returns the name of the field (if any) from the first
error message, to allow the caller to use it to position the cursor. A Dynamics procedure that
uses Dynamics message handling routines.
Parameters:
• This function expects to receive back a single string from fetchMessages with one or more
messages delimited by CHR(3), and within each message the message text, Fieldname (or
blank) + a Tablename (or blank), delimited by CHR(4) if present.
showMessage (smart.p)
Displays, using a simple MESSAGE statement by default, either a literal message string or the
return value from a call to messageNumber.
Parameters:
Returns: LOGICAL
Notes: This function can be overridden to use a mechanism other than the
MESSAGE statement to display messages, and still use the messageNumber
function to map message numbers to translatable text. Note that this is
different from addMessage, fetchMessages, etc., which log messages in a
temp-table for later retrieval.
395
showMessageProcedure (smart.p)
showMessageProcedure (smart.p)
Dynamics override for showMessage function to use Dynamics message handling routines. By
default using a simple MESSAGE statement, displays either a literal message string, or a
message number that is returned by the messageNumber function. The user’s button choice is
returned in the OUTPUT parameter.
Parameters:
Either a literal message string, or a message number in string form. A message number can
be followed by a comma-separated list with up to 10 entries. All the entries except the last
are used as replacements for parameters of form ‘&n’ in the message string, where n is
some number in the range 1 - 9. The last entry must be ‘Question’, ‘YesNo’, or
‘YesNoCancel’, which determines which buttons are provided in the message box.
showQuery (combo.p)
Displays the current query of the combo.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
396
showTVCError (tvcontroller.p)
showTVCError (tvcontroller.p)
Runs showMessages in the Session Manager to display a Treeview controller error message.
Parameters:
showTVError (treeview.p)
Displays the error message passed as the argument.
Parameters:
Signature (smart.p)
Returns the signature of the named function or internal procedure in the format returned by the
Progress GET–SIGNATURE method.
Parameters:
397
startSearch (browser.p)
startSearch (browser.p)
Start-search trigger
Parameters:
startServerObject (appserver.p)
Runs on the client to start the Object on the server.
Parameters: None.
Returns: Nothing (procedure).
Notes:
• restartServerObject will (should) be run the next time the object needs to communicate
with its server part.
• Both start- and restart- call runServerObject, which issues the actual run call and does the
optional initialization.
• This procedure is considered to be an internal event and returns without complaining if the
object is bound or Appservice = ‘ ’. It does not check if ASHasStarted is false, as this may
not be damaging if there’s no difference between start and restart. It is assumed to be called
only when unbound and ASHasStarted is false as when called from getAsHandle or from
initializeObject in objects that need to connect at start up.
• getASHandle depends for backward compatibility with data/sbo classes on the ‘silent
error’ when Appservice is blank (not completely true, it actually checked
ASDivision=‘client’, but that is too restrictive. So if errors are added here, make sure
getAsHandle deals with (removes) them before returning.)
398
startServerObject (data.p)
startServerObject (data.p)
Starts the SmartDataObject on the AppServer, when running statelessly. Runs on the client side.
Parameters: None.
Returns: Nothing (procedure).
Notes: This override is for error handling to show error message and return
‘adm-error’.
startServerObject (sbo.p)
Starts the server piece of a SmartBusinessObject. Called on the client.
Parameters: None.
Returns: Nothing (procedure).
Notes: This override is for error handling to show error messages and return
‘adm-error’.
start-super-proc (smart.i)
Starts a super procedure if it is not already running and adds it as a super procedure in any case.
Parameters:
startB2BObject (router.p)
Starts the Container with the SmartB2BObject, links it to the consumer, and returns its handle.
Parameters:
399
startDataRow (b2b.p)
startDataRow (b2b.p)
Registers the dataRow record used to find, create, or update the data.
Parameters:
DataSource handle.
Returns: LOGICAL
Notes: None
startElement (b2b.p)
Traps the event of a new XML element being processed, checks whether it is mapped to a
dataObject, and, if so, registers it.
Parameters:
400
startFilter (query.p)
startFilter (query.p)
Views/Starts the linked filter–source.
Parameters: None
Returns: Nothing (procedure)
Notes: None
startServerObject (appserver.p)
Runs on the client to start the Object on the server.
Parameters: None
Returns: Nothing (procedure).
Notes: None
startServerObject (data.p)
When a SmartDataObject is split and running statelessly on an AppServer, startServerObject is
run on the client to start the SmartDataObject on the server.
Parameters: None
Returns: Nothing (procedure)
Notes: This override is for error handling to show error message and returns
"adm–error".
startServerObject (sbo.p)
When a SmartBusinessObject is split and running statelessly on an AppServer,
startServerObject is run on the client to start the SmartBusinessObject on the server.
Parameters: None
Returns: Nothing (procedure)
Notes: This override is for error handling to show error message and returns
"adm–error".
401
startWaitFor (consumer.p)
startWaitFor (consumer.p)
Starts watching for messages when in batch mode.
Parameters: None
Returns: Nothing (procedure)
Notes: This is called from initializeObject when SESSION:BATCH-MODE = YES.
It should not be called if the consumer is running in an interactive
environment because it blocks user input.
stopHandler (consumer.p)
Clears the Waiting property to shut down the Consumer object.
Parameters:
402
storeNodeValue (b2b.p)
storeNodeValue (b2b.p)
Store node values for a data source until the endDocument event. (Consume XML)
Parameters:
The value
Returns: LOGICAL
Notes: None.
storeParameterNode (b2b.p)
Store mapping information for Output parameters (Produce XML)
Parameters:
403
storeParameterValue (b2b.p)
Returns: LOGICAL
Notes: This information is stored until the parent node of the first parameter is
processed. callOutParams() will then call the pcmethod in phDataSource and
use the piNum parameter values to populate the node or attribute.
storeParameterValue (b2b.p)
Stores values for input parameters.
Parameters:
DataSource.
Procedure or function.
Parameter number.
Returns: LOGICAL
Notes: This information is stored until the endDocument call. InParams calls the
pcmethod in phDataSource and passes the PcValue as the piNum parameter.
404
storePendingSensitivity (toolbar.p)
storePendingSensitivity (toolbar.p)
To store pending sensitivity settings used to resolve timing issues where sensitivity is set before
the toolbar is built.
Parameters:
stripCalcs (browser.p)
Strips the expression portion of expression @ variable
Parameters:
Returns: CHARACTER
Notes: None.
405
submitCommit (data.p)
submitCommit (data.p)
Called by submitRow. Commits changes to the database.
Parameters:
INPUT pcRowIdent
The identifier of the row to commit. It is a comma-delimited list of ROWIDS. The first
entry is the ROWID of the RowObject temp-table containing the record to commit.
Subsequent entries in the comma-delimited list are the database ROWIDs of the records
to be modified.
INPUT plReopen
TRUE if the RowObject query is to be reopened and repositioned to the RowObject record
identified by pcRowIdent.
submitForeignKey (data.p)
Called from submitRow. Defines Foreign Key values for a new row.
Parameters:
INPUT pcRowIdent
The RowIdent (a comma-delimited list of ROWIDs that uniquely identify the RowObject
record) of the new RowObject record to be stored in the database. Since this is a new
record, only the first ROWID (that of the RowObject itself) is valid. There are no database
ROWIDs because they have not yet been created.
INPUT-OUTPUT pcValueList
A CHR(1)-delimited list of column and value pairs to be set in the RowObject record
identified by pcRowIdent. On input it is a list that has been set before submitForeignKey
was called. On output it is the now current list with the addition of any foreign fields that
have been set.
406
submitForeignKey (data.p)
INPUT-OUTPUT pcUpdColumns
• This procedure allows foreign key values to be assigned automatically when new records
are created. For example, if the current SmartDataObject is for Orders of the current
Customer, where the Customer is maintained in a parent SmartDataObject query, then
when new orders are added, the CustNum value for the current Customer should be
assigned automatically to all newly created Orders. This procedure does that by adding the
CustNum field and its value to the list of modified fields. In addition, since these
ForeignFields are often not directly updatable (would not be enabled in a visualization),
the code also needs to let the calling code (the submitRow function) know that the Foreign
Field update should be allowed. It is for this reason that the UpdColumns parameter is
passed; the key fields being updated will be added to the parameter value if they are not
already there. As noted, this will modify the list of updatable columns only for this one
transaction; it does not cause the caller to modify the UpdatableColumns property itself.
407
submitRow (data.p)
submitRow (data.p)
Accepts a list of changed values for a row and ASSIGNs them, returning FALSE if any errors
occur. This is done only to the RowObject temp-table. Committing the changes back to the
database is a separate step, which will be invoked from here if AutoCommit is set on.
Parameters:
The ”key” with row number to update, plus a list of the ROWID(s) of the database
record(s) from which the RowObject is derived.
Returns: LOGICAL
Notes: None
submitRow (sbo.p)
Accepts a list of changed values for a row and passes them on to the SmartDataObjects from
which they came.
Parameters:
"Key" with row number to update, plus a list of the ROWIDs of the db records from which
the RowObject is derived.
Returns: LOGICAL
Notes: None
408
submitValidation (data.p)
submitValidation (data.p)
Performs validation on each of the columns of a new RowObject record, and on the record as a
whole, before committing it to the database.
Parameters:
substituteActionText (toolbar.p)
Substitutes &1 in the passed text with the substitute property.
Parameters:
The action
Returns: CHARACTER
Notes: Used by actionLabel, actionCaption, and actionTooltip overrrides
409
supportedObjects (toolbar.p)
supportedObjects (toolbar.p)
Returns a comma separated list of object names for object linked with supported links.
Semi-colon is used to separate a potential RunAtttribute
Parameters:
Returns: CHARACTER
Notes: The Container’s RunAttribute
synchronizeProperties (data.p)
Synchronizes certain properties on the client side of a SmartDataObject with its server side. This
is used internally to support running SmartDataObjects in stateless mode.
Parameters:
INPUT pcPropertiesForServer
A CHR(3)-delimited list of prop CHR(4) value pairs to be set on the server half of the
SmartDataObject.
OUTPUT pcPropertiesForClient
A CHR(3)-delimited list of ”prop CHR(4) value” pairs to be set on the client half of the
SmartDataObject.
• synchronizeProperties is designed to be invoked from the client side but executed on the
server half of a SmartDataObject. While executing on the server side it calls
setPropertiesList to set the properties in pcPropertiesForServer, then accumulates
properties to be sent back to the client so that the client can set them. Currently, the only
property sent back is the ServerOperatingMode property.
410
tableOut (data.p)
tableOut (data.p)
Output requested fields of SDO in standard temp-table
Parameters:
• Temp table is defined in afttsdoout.i. Fields passed in are checked with a can-do to support
"*" for "all" or "! field_name" to exclude a field, e.g. " ! RowNum,!RowIdent,!RowMod,
* " would use all non-SDO specific fields. Do not use a table prefix for fields passed in.
The temp table contains a record per record / field combination Currently has a hard coded
limit of 5000 records to fetch - max!
411
targetActions (panel.p)
targetActions (panel.p)
Return the actions of a target
Parameters:
INPUT pcLinkType AS CHARACTER
Returns: CHARACTER
Notes: This is the static version used for static buttons in panels. Overridden in
toolbar
targetActions (toolbar.p)
Returns the actions that apply to a specific target.
Parameters:
Returns: CHARACTER
Notes: None.
targetPage (containr.p)
Returns the ADM page number associated with some object.
Parameters:
INPUT phObject AS HANDLE
Returns: INTEGER
Notes: None.
412
targetProcedure (b2b.p)
targetProcedure (b2b.p)
The Router subscribes this to an event of the schema name in order to find whether it is already
started.
Parameters:
phHandle = TARGET-PROCEDURE.
toggleData (smart.p)
Uses the {set} pseudo-function to set a new value for DataLinksEnabled.
Parameters:
toolbar (browser.p)
Carries out one of several operations depending on the value of the argument passed in. Valid
values are: ‘comments’; ‘export’ for exporting data to Excel; ‘preview’ for previewing a report;
‘filter’ or ‘find’ to launch a filter window; ‘view’, ‘copy’, ‘modify’, or ‘add’ to launch the
appropriate folder window; ‘delete’ to delete a record with autocommit; and ‘audit’.
Parameters:
413
toolbar (containr.p)
toolbar (containr.p)
Generic event handler for toolbar events
Parameters:
The string used by the handler’s CASE statement to determine behavior. Valid values are:
414
toolbar (viewer.p)
toolbar (viewer.p)
Toolbar event handler. Handles the cases ‘OK’ and ‘Cancel’.
Parameters:
transferDBRow (query.p)
Buffer–copies the database records for the current query row into the RowObject temp-table.
Parameters:
The integer value to assign to the RowNum field in the RowObject temp-table record.
415
transferToExcel (data.p)
transferToExcel (data.p)
Transfers the contents of the SDO to Excel
Parameters:
translateBrowseColumns (lookup.p)
Translates lookup and filter browse columns.
Parameters:
416
unbindServer (appserver.p)
unbindServer (appserver.p)
Unbinds the AppServer by destroying the server side object started by the client.
Parameters:
Valid values are ‘unconditional’, ‘conditional’, and the empty string. If ‘conditional’,
unbinding will only take place if the caller is at the same level as BindSignature. The
empty string is recognized, but not currently supported.
• This procedure allows nested calls of procedures that binds and unbinds, but still postpone
the unbinding until we are back at the level that did the actual binding.
• The logic in this procedure is dependent of the fact that getAsHandle or bindServer does
the actual binding (if AsHandle is ? ) and logs the call level by setBindSignature =
program-name(2).
• An external caller will use the following sequence to ensure that all calls are done with one
connection:
hAsHandle = getAsHandle().
somerequest in hasHandle
RUN unbindServer(?).
417
unBlankFillin (filter.p)
• Limitations apply as recursive calls and external callers have the same signature, so an
unbind might happen too early. (This can probably be fixed by saving the complete stack
in BindSignature)
unBlankFillin (filter.p)
Resets the format of a blank fill-in.
Parameters:
INPUT phField
Returns: LOGICAL
Notes: The blankFields changes the format of fill-ins to make it appear blank. This
function is called as soon as the user starts editing the field;
VALUE-CHANGED - > "U10" triggers in filter.i makes this happen.
unBlankLogical (filter.p)
Resets the format of a blank fill-in of data-type LOGICAL.
Parameters:
418
undoClientUpdate (data.i)
undoClientUpdate (data.i)
Rolls back updates to the RowObject table in the event of a client-side error. Using a FOR
EACH loop, BUFFER-COPYs appropriate RowObjUpd records to RowObject, omitting
RowMod.
Parameters: None.
Returns: Nothing (procedure).
Notes: This is to deal with errors before commit has been run - i.e. client side
validation errors.
undoTransaction (data.p)
Undoes any uncommitted changes to the RowObject table when the ”Undo” button is pressed
in the commit panel.
Parameters: None
Returns: Nothing (procedure)
Notes: The undoTransaction calls doUndoTrans to restore the RowObject
temp-table and empty the RowObjUpd temp-table.
undoTransaction (sbo.p)
Passes the undoTransaction event on to each contained SmartDataObject that has any
uncommitted changes.
Parameters: None
Returns: Nothing (procedure)
Notes: None
419
updateActive (containr.p)
updateActive (containr.p)
Published from ContainerTargets when they change state as a result of, for example,
setDataModified, setNewRecord, or setRowObjectState.
Parameters:
TRUE if some update is known active and ContainerTargets need not be surveyed
updateActive (toolbar.p)
Published from Toolbar-Target (the container) to signal that some of its objects have changed
state. Runs resetToolbar in TARGET-PROCEDURE.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
420
updateAddQueryWhere (data.p)
updateAddQueryWhere (data.p)
Restores a query to design-time state, re-adds the filters, then adds and saves the new WHERE
clause.
Parameters:
• Ensures WHERE clause added is not cleared by filters, and is not duplicated in saved
manualaddquerywhere. Where clause must be in correct format for an addquerywhere. If
WHERE clause is blank but the field is passed in, then any manual query for that field will
be removed, therefore defaulting back to all.
• Only supports adding a single where clause, but may be called many times. Used when
putting a manual filter viewer above a browser!
updateCategoryLists (toolbar.p)
Updates the lists of available categories for the toolbar. Called from loadBands at design time.
The result is stored in AvailMenuActions and AvailToolbarActions.
Parameters:
The band
421
updateManualForeignFields (data.p)
updateManualForeignFields (data.p)
Get foreign fields and values and setManualAssignQuerySelection so that filter does not lose
info
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
updateMode (datavis.p)
Enables/disables fields when the data visualization object is linked to an Update SmartPanel for
which the type is “Update”.
Parameters:
pcMode AS CHARACTER
• updateBegin – Signals that the user has pressed the update button.
• updateEnd – Signals that the user has pressed the save button.
422
updateQueryPosition (data.p)
updateQueryPosition (data.p)
Resets the QueryPosition property after a record navigation. The main purpose of this function
is to eliminate duplication and errors and minimize messaging (setQueryPosition PUBLISHes)
in fetchFirst, fetchPrev, fetchNext, and fetchLast.
Parameters: None
Returns: Nothing (procedure)
Notes:
updateRecord (browser.p)
SmartDataBrowser version of updateRecord.
Initiates the “Save” process after an add, copy, or update. This version of updateRecord stores
the RowIdent property of the current record if it is an add or a copy.
Parameters: None
Returns: Nothing (procedure)
Notes:
• If an error occurs after invoking updateRecord in datavis.p (which means the update
failed), updateRecord puts focus back in the SmartDataBrowser if it is not already there.
• If the SmartDataBrowser has its own database query, and if the save operation comes after
an add or a copy, the SmartDataBrowser’s query is reopened and repositioned to the last
row of the viewport.
423
updateRecord (datavis.p)
updateRecord (datavis.p)
Receives a “Save” message from a TableIO source and sends the changed values back to the
SmartDataObject. General code to start the save operation.
Parameters: None
Returns: Nothing (procedure)
Notes:
updateRow (data.p)
Updates an existing row.
Parameters:
row pcValueList – CHR(1) delimited list of alternating column names and values to be
assigned.
Returns: LOGICAL
Notes: None
424
updateState (browser.p)
updateState (browser.p)
Receives “state” messages on updates. Enables or Disables the SmartDataBrowser while
updates are made to other objects sharing the same SmartDataObject. SmartDataBrowser
version of updateState.
Parameters:
The update state value to be passed to the SmartDataBrowser. Valid values are
"UpdateBegin", "Update", and "UpdateComplete".
• Returns if the DataModified property equals TRUE (meaning updates are in progress), or
if the NewRecord property is not equivalent to “No” (which means add or copy).
• Used internally.
425
updateState (data.p)
updateState (data.p)
Passes along update-related messages (to its Navigation–Source, for example.) and adjusts the
DataModified property.
Parameters:
• "UpdateBegin" — The user has indicated that an update will take place, either by
pressing the Update button in a panel or by entering an updatable field in a browser.
updateState (datavis.p)
Receives the updateState event (for example, from a GroupAssign target) and sets its own
DataModified property accordingly (which in turn passes on the updateState event).
Parameters:
426
updateState (panel.p)
updateState (panel.p)
Receives state message events related to record updates.
Parameters:
• For "Update", a Navigation Panel will set its PanelState property to disable–all, to prevent
navigation during an update operation. A Save or Update panel will set its state to
"action–chosen", meaning that a button has been pressed that puts the panel in the middle
of an Update or Add or Copy operation that must be explicitly Saved to be completed.
• For "UpdateComplete", a Navigation Panel will restore the prior PanelState (having been
disabled when the update began). A Save or Update panel will set its state to ‘add–only’
if no rows are available in the current dataset, to "disable–all" if no rows are available and
there is also no available parent row for this dataset (meaning that not even an Add could
be done), or to "initial" if the RecordState is RecordAvailable, meaning that all operations
are allowed (Update/Add/Copy/Delete).
• In addition, for an Update panel, which explicitly enables fields when an Update begins
and disables them when the operation is Saved, the updateMode event is published with a
value of "UpdateEnd", to tell visualizations to disable their fields.
updateState (sbo.p)
Republishes any updateState event messages received from a Data-Target, to get them, for
example, to Navigation Panel/Toolbar.
Parameters:
427
updateState (toolbar.p)
updateState (toolbar.p)
Receives state message events related to record updates.
Parameters:
Update state.
updateState (tvcontroller.p)
Disables the Treeview during user editing and re-enables on completion.
Parameters:
428
updateState (viewer.p)
updateState (viewer.p)
Initialization code specific to SmartDataViewers.
Parameters: None
Returns: Nothing (procedure)
Notes:
• initializeObject reads through the list of enabled and displayed fields and gets their handles
to store in the FieldHandles and EnabledHandles properties.
• dataAvailable is invoked to check to see if the data-source already has a record available
for display.
updateStates (toolbar.p)
Updates state temp-table whenever bands/actions are loaded. Adds actions to already-loaded
states.
Parameters:
updateTitle (browser.p)
SmartDataBrowser version of updateTitle.
Parameters: None.
Returns: Nothing (procedure).
Notes: Setting up a window title for an object controller is different than for a viewer.
This code gets the information from the browser’s data-sources.
429
updateTitle (datavis.p)
updateTitle (datavis.p)
Updates window title at end of update.
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
updateTree (treeview.p)
Updates details of nodes that are currently in the tree.
Parameters:
Handle of tTreeData
430
validateBuffer (action.p)
validateBuffer (action.p)
Validates the data in the actions buffer.
Parameters:
Returns: LOGICAL
Notes: This routine is called after the create operation.
validateFields (datavis.p)
Validates a field in a data-display object.
Parameters:
• A comma-separated list of the fieldname, object handle and page, if validation failed
The updateRecord routine will use this output value to set focus.
• Field validation on leave cannot be trusted because save can be triggered by accelerators
and no-focus buttons (toolbar).
• Currently, only one error is handled. Validate() on hidden objects does not give any
message.
• Validation will always check unmodifed fields. This is useful for add/copy but not
otherwise, as those fields will not be saved.
431
valueChanged (combo.p)
valueChanged (combo.p)
Makes sure the SmartDataViewer knows that the Combo’s value has changed. Publishes
populateChildCombo and comboValueChanged.
Parameters: None.
Returns: Nothing (procedure).
Notes: Defined as a PERSISTENT value-changed trigger in the dynamic-widget.
The code currently duplicates the logic that is defined in the U10 trigger in
the SmartDataViewer because this code’s check of FOCUS is wrong when
the actual change is caused by a user event in the browser.
valueChanged (lookup.p)
Uses the {set} pseudo-function to set DataModified to YES. This ensures that the
SmartDataViewer container knows that the Lookup’s value has changed.
Parameters: None.
Returns: Nothing (procedure).
Notes: Defined as a PERSISTENT value-changed trigger in the dynamic-widget.
The code currently duplicates the logic defined in the U10 trigger in the
SmartDataViewer because checking FOCUS is not helpful when the change
is caused by a user event in the Browser.
valueChanged (select.p)
Makes sure the SmartDataViewer container knows that this value has changed.
Parameters: None
Returns: Nothing (procedure)
Notes: Defined as a PERSISTENT value-changed trigger in the dynamic-widget.
The code currently duplicates the logic that is defined in the U10 trigger in
the SmartDataViewer when the view-as is browse, because this code’s check
of FOCUS is wrong when the actual change is caused by a user event in the
browser.
432
valueChanged (viewer.p)
valueChanged (viewer.p)
Value-changed of frame anywhere event
Parameters: None.
Returns: Nothing (procedure).
Notes: Static objects can reach this also by applying U10 event to run it.
viewHideActions (panel.p)
Views and hides static actions
Parameters:
433
viewHideActions (toolbar.p)
viewHideActions (toolbar.p)
Sets actions visible/hidden according to state (called from setbuttons). Loops through the
pcViewActions list, then the pcHideActions.
Parameters:
viewObject (browser.p)
Overrides run setDown to set the DOWN attribute for the browse when it is being viewed and
to fix problems caused by the browse’s implicit visualization behavior.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The browser implicitly sets the buffer to its currently selected row when it is visualized.
This might cause problems if the DataSource is being manipulated by another object. An
update-target might have called AddRow in the DataSource, which creates a RowObject
while the browse still has the old row selected.
434
viewObject (combo.p)
viewObject (combo.p)
Make sure the label is visible by turning off HIDDEN.
Parameters: None.
Returns: Nothing (procedure).
Notes: For sizing reasons, the label is not really a part of the object, but added as a
text widget to the parent frame.
viewObject (containr.p)
Container-specific code for viewObject. If the HideOnInit property has been set during
initialization to allow this object and its contents to be initialized without being viewed, turn that
off here and explicitly view all contents.
Parameters: None
Returns: Nothing (procedure)
Notes:
• This Container-specific version of viewObject checks the HideOnInit property for the
Container. If it was TRUE, then the container was not viewed when first initialized. Now
that it is being viewed, it turns off the HideOnInit property in itself and its contents, and
explicitly visualizes its contents.
• See viewObject for visual.p for more general information on using and customizing this
event procedure.
435
viewObject (lookup.p)
viewObject (lookup.p)
Make sure the label is not HIDDEN.
Parameters: None.
Returns: Nothing (procedure).
Notes: For sizing reasons, the label is not really a part of the object, but added as a
text widget to the parent frame.
viewObject (select.p)
Makes sure the label is viewed.
Parameters: None
Returns: Nothing (procedure)
Notes: None
viewObject (smart.p)
Logically “views” the current object, setting its ObjectHidden property to false.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The ADM supports a logical concept of “Viewing”, which can be applied to all objects
regardless of whether they have a visualization; that is why this procedure is found in
smart.p.
• When an object is “viewed” its links are typically activated (the linkState property is set
to "active"); when “hidden” they are sometimes deactivated, depending on the link type.
If an object has an actual visualization, the version of viewObject in visual.p will view it.
436
viewObject (toolbar.p)
• When a SmartContainer is viewed, it is not necessary for all of the objects it contains to
be individually viewed, because they are not explicitly hidden when the container is
hidden (see hideObject). For this reason, viewObject, when executed for a
SmartContainer, will set the property ContainerHidden to FALSE in each contained
SmartObject, without actually running viewObject in each object. The
setContainerHidden function will, in turn, set the ObjectHidden property to FLASE so that
it can be queried successfully. Not running hideObject and viewObject in each individual
SmartObject improves performance when SmartObjects are being paged (alternately
hidden and viewed), and can eliminate problems with “flashing” of visual objects or
problems restoring proper frame order when objects are hidden and viewed.
Examples:
ON CHOOSE OF Btn_View_Browser
DO:
RUN viewObject IN hSDBrowser.
END.
viewObject (toolbar.p)
Views the object. The purpose for the override is to add the menu bar handle to the window.
Parameters: None
Returns: Nothing (procedure)
Notes: None
viewPage (containr.p)
Views a new page without hiding the current page. This is intended to be run from application
code that wants to view a new page that is a separate SmartWindow. viewPage will run
changePage to view (and if necessary create) the new SmartWindow, but will not hide the
objects on the current page, since they are in a separate window that can be viewed at the same
time.
Parameters:
437
viewRecord (viewer.p)
Notes:
• Because the previous page is not hidden, the CurrentPage property is reset only
temporarily so that changePage knows the new page number; then it is reset to its previous
value.
• Use the procedure selectPage to hide the current page in a container and view a different
one.
Examples:
ON CHOOSE OF Btn_SubWin
DO:
RUN viewPage(5).
END.
viewRecord (viewer.p)
Set object in viewMode
Parameters: None.
Returns: Nothing (procedure).
Notes: None.
438
whereClauseBuffer (combo.p)
whereClauseBuffer (combo.p)
Returns the buffername of a WHERE clause expression. This function avoids problems with
leading or double blanks in WHERE clauses.
Parameters:
Complete where clause for ONE table with or without the FOR keyword. The buffer name
must be the second token in the clause, not counting any FOR. For example: "EACH order
OF Customer", but "FOR EACH order".
whereClauseBuffer (lookup.p)
Returns the buffer name of a WHERE clause expression. This function avoids problems with
leading/double blanks in WHERE clauses.
Parameters:
The complete WHERE clause, with or without the FOR keyword, for a single table. The
buffer name must be the second token (third if FOR is present) in the clause. For example:
"EACH order OF customer", "FOR EACH order".
439
whereClauseBuffer (query.p)
whereClauseBuffer (query.p)
Returns the buffer name of a WHERE clause expression. This function avoids problems with
leading or double blanks in WHERE clauses.
Parameters:
The complete WHERE clause for one table, with or without the FOR keyword. The buffer
name must be the second token in the where clause as in “EACH order OF Customer” or
if “FOR” is specified the third token as in “FOR EACH order”.
windowDropDownList (toolbar.p)
Build or rebuild drop-down list of session windows. Loops through the existing list, deleting,
then calls WindowListMenu and returns TRUE if there are any windows in the new list. Returns
without action if in design mode.
Parameters:
Returns: LOGICAL
Notes: None.
440
windowEnabled (toolbar.p)
windowEnabled (toolbar.p)
Checks whether some window is enabled (for window drop down list)
Parameters:
TRUE if it is enabled
windowFocus (toolbar.p)
Applies ENTRY to the window, moves it to the front, and restores its usual size if minimized.
Parameters:
441
windowListMenu (toolbar.p)
windowListMenu (toolbar.p)
Builds a drop-down menu that lists session windows
Parameters:
442
SmartObject API Reference For WebSpeed
The WebSpeed environment coexists with and makes use of HTML. In this respect it is different
to the standard 4GL/ADM environment, and objects operating in it—including
SmartObjects—require a special set of supporting routines. Those routines are documented
here.
SmartObject API Reference For WebSpeed
444
Alphabetical Listing Of WebSpeed-specific
API Routines
This section lists all SmartObject API routines dedicated to the WebSpeed environment. For
ADM routines not specific to this environment, see the “ADM2 SmartObject API Reference”.
For lists of routines organized by source file, see the Index.
addColumnLink (wbtable.p)
addColumnLink (wbtable.p)
Specifies that a column in the HTML table is to appear with a hyperlink. The necessary
attributes to make this happen are specified in the other input parameters.
Parameters:
The HTML frame reference that will receive the response. “_self” specifies that the
current HTML frame should be used.
A function that returns a character string that will be displayed on the mouseOver event in
the HTML page.
Specifies which parameters must be added to the URL in order to join this data-source to
the linked object’s data-source. Valid values are:
• "ROWID" — Adds the parameters “ExternalRowids” with the current rowids as data to
the URL, as well as “ExternalTables” with the Table property as data.
• blank — No join needs to take place and no parameters except the default “BackRowids”
are added to the URL. Usually used to return to the calling object.
Returns: LOGICAL
Notes:
• The Wizard creates a link for one selected column, but the function is able to add links to
all the columns in the object.
• The Embedded SpeedScript (.htm) files created by the Report wizard show examples of
this function call in use.
446
addColumnLink (wbtable.p)
• The actual HTML code to generate the link is in urlLink with the logic that adds join
parameters in urlJoinParams. If the linked object (pcURL) is unspecified, the link will not
be generated in the HTML code.
• The parameters ExternalTables and BackRowids are always added to the specified URL,
while ExternalObject is added when the data-source is a SmartDataObject.
• The Wizard creates a link for one selected column, but the function is able to add links to
all the columns in the object.
• The Embedded SpeedScript (.htm) files created by the Report wizard show examples of
this function call in use.
• The actual HTML code to generate the link is in urlLink with the logic that adds join
parameters in urlJoinParams. If the linked object (pcURL) is unspecified, the link will not
be generated in the HTML code.
• The parameters ExternalTables and BackRowids are always added to the specified URL,
while ExternalObject is added when the data-source is a SmartDataObject.
• The linked object must be able to interpret the data specified in the pcJoinParams. This is
usually done by specifying that the linked object should be able to use this object’s
data-source as an “External table or object” when the object is created in the Wizard. This
will generate a comma-separated ExternalTableList property in the linked object, with
either a matching pipe-separated ForeignFieldList or two ExternalWhereList and
ExternalJoinList properties. The ForeignFieldList property must have an entry that defines
a ForeignFields property for the columns that are passed on this link, while the two others
have matching entries that specify how the external tables are joined to the query.
• The list of columns is the only way to link objects that have SmartDataObjects as
data-sources, but can also be used for database queries.
• When the “ROWID” option is used, the external tables are physically added to the
receiving dynamic query if they are not already present, and the query–prepare is changed
to use the corresponding rowids in the WHERE clause for these tables.
• The pcMouseOver needs to reference a function so that the mouse-over text can show
current values for the actual row. This can be achieved by letting the function call
columnProps in the data-source. The wizard will generate this function to return the text
that is specified in the “Status” field in the wizard. You can refer to functions or properties
in the actual data-source in this field inside a pair of back-ticks. The code generator will
generate this into a valid run-time expression.
447
addColumnLink (wbtable.p)
• All the URL link parameters, including the list of columns, will be added to the linked
object’s contextFields property. This guarantees that the linked object stays joined on
subsequent requests to perform navigation, transaction, or search.
• All the parameters passed to this function will be added to internal properties that will be
used when the HTML code is generated. The column name will be added to the
LinkColumns, which is a comma-separated property that holds the name of all the linked
columns. The other parameter passed to this function is added to other internal properties
the LinkURLs, LinkTargets, LinkTexts, and LinkJoins respectively. All of them are
comma-separated except the last one, which is CHR(1)-separated.
Examples:
/* Add two hyperlinks, one on the custNum to call the customer detail */
/* and one on the salesRep field to call the salesrep detail */
/* The custStatusLine and salesStatusLine is defined functions */
448
addContextFields (webrep.p)
addContextFields (webrep.p)
Adds fields to the list of fields that are used to keep context for the next request.
Parameters:
Returns: LOGICAL
Notes:
• The Property should be used whenever the HTML page needs to store the context.
• The Embedded SpeedScript templates already do this on all the URLs that are generated.
addSearchCriteria (webrep.p)
Adds SearchName and SearchValue to the data-source query.
Parameters:
Search value.
Returns: LOGICAL
Notes: None
449
addTDModifier (wbtable.p)
addTDModifier (wbtable.p)
Adds one or more HTML attributes for the <TD> tag of a specific column.
Parameters:
One or more HTML attributes where the value is in double quoted HTML format.
Returns: LOGICAL
Notes:
• The pcModifier passed to this function will be added to any existing TD modifier
attributes for this column. The actual data is stored in the internal TdModifier property.
This is a comma-separated list that holds entries for each of the columns in the object.
• The HTML attributes must be in the format <attribute> = “<value>”, which makes it
necessary to use either single quotes around the character expression or a tilde before the
double quote.
Examples:
anyMessage (webrep.p)
Determines whether there are any messages in the message queue.
Parameters: None
Returns: LOGICAL
Notes:
• If there is a handle for the data-source, check both there and internally, because
WebSpeed-specific errors are always stored internally.
450
assignColumnFormat (webrep.p)
assignColumnFormat (webrep.p)
Sets a column’s format.
Parameters:
Returns: LOGICAL
Notes: Currently this is not a local override when a SmartDataObject is used, unless
the SmartDataObject is destroyed on each request.
assignColumnHelp (webrep.p)
Overrides default HELP.
Parameters:
Returns: LOGICAL
Notes: Currently this is not a local override when a SmartDataObject is used, unless
the SmartDataObject is destroyed on each request.
451
assignColumnLabel (webrep.p)
assignColumnLabel (webrep.p)
Overrides the default label.
Parameters:
Returns: LOGICAL
Notes: Currently this is not a local override when a SmartDataObject is used, unless
the SmartDataObject is destroyed on each request.
assignColumnWidth (webrep.p)
Unused function.
Parameters:
Returns: LOGICAL
Notes: Currently not in use.
452
assignExtentAttribute (webrep.p)
assignExtentAttribute (webrep.p)
Enables the user to override field attributes for columns with extents.
Parameters:
Buffer–field handle.
Extent.
The columns attribute, used to store ALL entries if there are differences.
• The buffer handle stores one value for help, label, and width. This is used to be able to
have different attributes for each extent.
• The function is currently private. This must change if needed for valexp in wbdata.p.
453
assignFields (html-map.p)
assignFields (html-map.p)
Assigns the current form buffer values in the enabled fields/objects to the SmartDataObject, the
database, and/or to local object variables.
Parameters: None
Returns: Nothing (procedure)
Examples:
PROCEDURE process-web-request:
IF REQUEST_METHOD = "POST":U THEN DO:
/* Copy HTML input field values to the form buffer fields. */
RUN inputFields.
/* Find the datasource record that needs to be assigned. */
RUN findRecords.
/* Assign form buffer field values to the datasource. */
RUN assignFields.
/* Display datasource field values to the form buffer fields. */
RUN displayFields.
/* Enable form buffer fields. */
RUN enableFields.
/* Output the static HTML page and form buffer field values to the web
stream. */
RUN outputFields.
END.
END.
454
assignFields (wbdata.p)
assignFields (wbdata.p)
Retrieves the object’s column values from the Web and saves them in the data-source. The
AddMode property determines whether the data will be saved to the current record or to a new
one.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The DataColumns property defines the contents of the webObject and determines which
columns to assign.
• This procedure is normally not called directly, but by ProcessWebRequest, which uses the
values of the two Web fields “MaintOption” and “AddMode” to decide its actions. The
web page usually has a set of transaction buttons that all share the name “MaintOption”.
This procedure will be called when this value is “submit”. The web page will also have a
hidden field, “AddMode,” that serves as a context keeper. This field would have been set
to “YES” by the previous request, if the object now is in add mode.
• If the data-source is a database, this procedure starts the actual transaction when
validateColumns() returns TRUE. The values retrieved from the Web will be assigned
directly to the buffers by assigning the BUFFER–VALUE attribute.
• To create a new record, the AddMode property must be set to TRUE before calling this
routine. When the data-source is a SmartDataObject, the SmartDataObject will be set in
add mode by a call to the SmartDataObject’s addRow function. The returned RowObject
ROWID will be used as the first parameter to the submitRow(). When the data-source is a
database, the LockRow() function that is called within the transaction block to upgrade the
lock, will create a new record when the AddMode is TRUE.
455
assignTDModifier (wbtable.p)
assignTDModifier (wbtable.p)
Assigns one or more HTML attributes for the <TD> tag of a specific column.
Parameters:
One or more HTML attributes where the value is in double-quoted HTML format.
Returns: LOGICAL
Notes:
• The pcModifier passed to this function will overwrite any existing TD modifier attributes
for this column. The actual data is stored in the internal TdModifier property. This is a
comma-separated list that holds entries for each of the columns in the object.
• The HTML attributes must be in the format <attribute> = “<value>”, which makes it
necessary to use either single quotes around the character expression or a tilde before the
double quote.
Examples:
bufferHandle (html-map.p)
Gets the handle of a buffer by name.
Parameters:
Returns: HANDLE
Notes: None
456
bufferHandle (webrep.p)
bufferHandle (webrep.p)
Gets the handle of a buffer by table name.
Parameters:
Returns: HANDLE
Notes: None
columnDataType (webrep.p)
Returns a column’s datatype from the data-source.
Parameters:
Returns: CHARACTER
Notes: None
columnFormat (webrep.p)
Returns a columns format from the data-source.
Parameters:
Returns: CHARACTER
Notes: None
457
columnHandle (webrep.p)
columnHandle (webrep.p)
Returns the buffer handle of a column in the internal query.
Parameters:
Returns: HANDLE
Notes: This function is not used if the DataSource is a SmartDataObject.
columnHelp (webrep.p)
Return a column’s help text from the data-source.
Parameters:
Returns: CHARACTER
Notes: None
columnHTMLName (html-map.p)
Finds the HTML field name of a column.
Parameters:
Column name
Returns: CHARACTER
Notes: None
458
columnHTMLName (webrep.p)
Examples:
END.
columnHTMLName (webrep.p)
Returns a unique valid HTML identifier/name for the column.
Parameters:
Returns: CHARACTER
Notes: Replaces "." and "-" in field name so it can be used as valid HTML objects.
JavaScript cannot operate on objects with dashes or periods in the name.
columnLabel (webrep.p)
Returns the Column’s label.
Parameters:
Returns: CHARACTER
Notes: None
459
columnReadOnly (webrep.p)
columnReadOnly (webrep.p)
Returns TRUE if the column is non updatable.
Parameters:
Returns: LOGICAL
Notes: None
columnStringValue (webrep.p)
Returns the character value of the column named in the input parameter, or the Initial Value
from the data dictionary if the UpdateMode flag is set to ”ADD.”
Parameters:
Returns: CHARACTER
Notes: The UpdateMode flag is set with the following call:
setUpdateMode(’ADD’).
columnTable (html-map.p)
Overrides to handle HTML mapping objects with neither query nor SDO
Parameters:
Returns: CHARACTER
Notes: None
460
columnTDModifier (wbtable.p)
columnTDModifier (wbtable.p)
Returns the HTML attributes for the <TD> tag of a specific column.
Parameters:
Returns: CHARACTER
Notes:
• This function is intended for internal use when the <TD> tags for the HTML columns are
generated.
• The actual data is stored in the internal TdModifier property. This is a comma-separated
list that holds entries for each of the columns in the object.
columnValMsg (wbdata.p)
Returns the validation message of a particular column. This is the text that serves as the error
message when a validation fails.
Parameters:
INPUT pcColumn
The name of a column in the data-source. Can be qualified with table name and/or
database name when the data-source is a database.
Returns: CHARACTER
Notes:
• The function is data-source transparent and calls the function with the same name in the
data-source when the data-source is a SmartDataObject.
• The value returned by this function will be added to the error message when
validateColumns encounters a column that fails validation.
461
constructObject (html-map.p)
constructObject (html-map.p)
Runs from adm–create–objects to run a SmartObject and to establish its parent and initial
property settings. This is used internally to start the SmartDataObject that is the dataSource and
set the instance properties.
Parameters:
dataAvailable (html-map.p)
Overrides dataAvailable
Parameters:
See query.p
462
deleteBuffer (wbdata.p)
deleteBuffer (wbdata.p)
Deletes the current record of a query’s buffer from the database. Returns TRUE when it
succeeds and FALSE if it fails.
Parameters:
Returns: LOGICAL
Notes:
• It is called from deleteRow, inside of the transaction block, for each of the query buffers
returned by the DeleteTables property.
• The default function uses the BUFFER–DELETE method on the passed handle.
• A message will be added to the ADM 2 message queue if the delete fails.
deleteOffsets (html-map.p)
Deletes all HTML field offset temp-table records for a HTML mapping procedure.
Parameters: None
Returns: Nothing (procedure)
Notes: Intended for internal use only.
463
deleteRow (wbdata.p)
deleteRow (wbdata.p)
Delete the current row from the data-source.
Parameters: None
Returns: LOGICAL
Notes:
• The function is data-source transparent and calls the function with the same name when
the data-source is a SmartDataObject.
• If the data-source is a SmartDataObject, it will get its RowObject ROWID and use it as an
input parameter to the SmartDataObject’s deleteRow.
• If the data-source is a database, it uses the table names returned from the DeleteTables
property and passes the buffer’s handle found in the query to the deleteBuffer function.
destroy (admweb.p)
Deletes this Web object’s associated offset records in memory and this object if it was run
PERSISTENT.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyDataObject (webrep.p)
Shuts down the current data object.
Parameters: None
Returns: LOGICAL
Notes: None
464
destroyObject (admweb.p)
destroyObject (admweb.p)
Destroys the procedure including the offset.
Parameters: None
Returns: Nothing (procedure)
Notes: None
destroyObject (webrep.p)
Performs any necessary cleanup before the object is destroyed.
Parameters: None
Returns: Nothing (procedure)
Notes: The main purpose of this procedure is not to delete the
TARGET–PROCEDURE, but to perform specified cleanup when the
data-source is a SmartDataObject. The SmartDataObject Instance Properties
DestroyStateless and DisconnectAppserver determine whether the
SmartDataObject is to be destroyed or disconnected.
disconnectObject (webrep.p)
Disconnects from the AppServer if there is one.
Parameters: None
Returns: Nothing (procedure)
Notes: First disconnectObject does an explicit destroyObject on the AppServer to
give that object an opportunity to clean up. This procedure is invoked from
destroyObject or can be run directly to disconnect without exiting.
465
dispatchUtilityProc (html-map.p)
dispatchUtilityProc (html-map.p)
Calls the standard utility procedure, as defined in tagmap.dat, for the current Web object.
Parameters:
466
displayFields (html-map.p)
displayFields (html-map.p)
Copies SmartDataObject or database values to the displayed object and field form buffer screen
values.
Parameters: None
Returns: Nothing (procedure)
Notes: Commonly used in process-web-request procedure.
Examples:
PROCEDURE process-web-request:
IF REQUEST_METHOD = "POST":U THEN DO:
/* Copy HTML input field values to the form buffer fields. */
RUN inputFields.
/* Find the datasource record that needs to be assigned. */
RUN findRecords.
/* Assign form buffer field values to the datasource. */
RUN assignFields.
/* Display datasource field values to the form buffer fields. */
RUN displayFields.
/* Enable form buffer fields. */
RUN enableFields.
/* Output the static HTML page and form buffer field values to the
web stream. */
RUN outputFields.
END.
END.
467
enableFields (html-map.p)
enableFields (html-map.p)
Enables object and field form buffer widgets by setting their SENSITIVE attribute to TRUE.
Parameters: None
Returns: Nothing (procedure)
Notes: Commonly used in process–web–request procedure.
Examples:
PROCEDURE process-web-request:
IF REQUEST_METHOD = "POST":U THEN DO:
/* Copy HTML input field values to the form buffer fields. */
RUN inputFields.
/* Find the datasource record that needs to be assigned. */
RUN findRecords.
/* Assign form buffer field values to the datasource. */
RUN assignFields.
/* Display datasource field values to the form buffer fields. */
RUN displayFields.
/* Enable form buffer fields. */
RUN enableFields.
/* Output the static HTML page and form buffer field values to the
web stream. */
RUN outputFields.
END.
END.
exclusiveLockBuffer (wbdata.p)
Exclusively locks a buffer in the query.
Parameters:
468
extentAttribute (webrep.p)
extentAttribute (webrep.p)
Returns the attribute for a variable with extent.
Parameters:
Extent.
The columns attribute, which is used to store ALL entries if any one is different.
• The buffer handle stores one value for help, label, and so forth. To have different attributes
for each extent, they are stored with delimiter CHR(3).
extentValue (webrep.p)
Returns the extent number if a field name has brackets.
Parameters:
Returns: INTEGER
Notes: Returns 0 if no brackets in the name.
469
fetchCurrent (webrep.p)
fetchCurrent (webrep.p)
Repositions the data-source query to the rowids stored in the CurrentRowids property.
Parameters: None
Returns: Nothing (procedure)
Notes:
• This procedure is called from fetchNext and fetchPrev in order to re-establish context
before the actual navigation takes place.
• The Property CurrentRowids is immediately set from the Web field with the same name
to keep the context between each request.
fetchFirst (webrep.p)
Repositions the data-source query to the first row.
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchLast (wbtable.p)
Repositions the query of the data-source to the first row of the last page.
Parameters: None
Returns: Nothing (procedure)
Notes:
• This procedure is an override of fetchLast in webrep.p and contains the logic necessary to
move the cursor backward to the row that should appear on the top of the last page. It does
this by calling the PageBackward function after it has executed SUPER to reposition to
what is the true last row of the data-source.
• The reason that this function is named fetchLast and not fetchLastPage to simplify the
interface and conceal navigation details from the caller.
470
fetchLast (webrep.p)
fetchLast (webrep.p)
Repositions the data-source to the query’s last row.
Parameters: None
Returns: Nothing (procedure)
Notes: None
fetchNext (wbtable.p)
Repositions the query of the data-source to the first row of the next page.
Parameters: None
Returns: Nothing (procedure)
Notes:
• This procedure totally overrides the fetchNext in webrep.p and contains the logic
necessary to move the cursor forward from the Web page’s current row to reposition to the
row that appears on the top of the next page.
• The reason that this function is named fetchNext and not fetchNextPage is to simplify the
interface and conceal navigation details from the caller.
fetchNext (webrep.p)
Repositions the data-source query to the next row.
Parameters: None
Returns: Nothing (procedure)
Notes: The procedure re-establishes context with a call to fetchCurrent before the
actual navigation takes place.
471
fetchPrev (wbtable.p)
fetchPrev (wbtable.p)
Repositions the query of the data-source to the first row of the previous page.
Parameters: None
Returns: Nothing (procedure)
Notes: This procedure is an override of fetchPrev in webrep.p and contains the logic
necessary to move the cursor backward to the row that should appear on the
top of the previous page. It does this by calling the PageBackward function
after it has executed SUPER to find the current row received from the Web
page, and repositions to what is the current row’s true previous row. The
reason that this function is named fetchPrev and not fetchPrevPage is to
simplify the interface and conceal navigation details from the caller.
fetchPrev (webrep.p)
Repositions the data-source query to the previous row.
Parameters: None
Returns: Nothing (procedure)
Notes: The procedure re-establishes context with a call to fetchCurrent before the
actual navigation takes place.
fieldExpression (webrep.p)
Creates an expression for a field.
Parameters:
Returns: CHARACTER
Notes: None
472
findRecords (html-map.p)
findRecords (html-map.p)
Opens the SmartDataObject or database query that finds the records in this frame.
Parameters: None
Returns: Nothing (procedure)
Notes: Commonly used in process–web–request procedure.
Examples:
PROCEDURE process-web-request:
IF REQUEST_METHOD = "POST":U THEN DO:
/* Copy HTML input field values to the form buffer fields. */
RUN inputFields.
/* Find the datasource record that needs to be assigned. */
RUN findRecords.
/* Assign form buffer field values to the datasource. */
RUN assignFields.
/* Display datasource field values to the form buffer fields. */
RUN displayFields.
/* Enable form buffer fields. */
RUN enableFields.
/* Output the static HTML page and form buffer field values to the
web stream. */
RUN outputFields.
END.
END.
473
htmAssociate (html-map.p)
htmAssociate (html-map.p)
Maps HTML fields to their Web object widget counterparts.
Parameters:
HTMLAlert (wbrep.p)
Generates an alert-box in the HTML.
Parameters:
Returns: LOGICAL
Notes: The message is generated with JavaScript.
474
HTMLColumn (wbtable.p)
HTMLColumn (wbtable.p)
Outputs the columns value within an HTML <TD> tag, including the HREF definitions to
create defined hyperlinks.
Parameters:
INPUT pcColumn
Returns: LOGICAL
Notes: Checks the LinkColumns property to see if any link attributes are defined. An
HREF will be generated to create the hyperlink if an object is specified. If a
function is defined for the status line, it will be called and the returned text
will be generated in a mouse-over event. The urlLink function is called to add
necessary link parameters to the HREF link.
HTMLSetFocus (wbrep.p)
Sets focus to a field in a WebPage.
Parameters:
Returns: LOGICAL
Notes:
• The columnHTMLName function returns a valid HTML field name for the passed
Column.
475
HTMLTable (wbtable.p)
HTMLTable (wbtable.p)
Outputs the entire HTML <TABLE>.
Parameters: None
Returns: LOGICAL
Notes:
• Checks the datatype of the column and adds the HTML attribute to right align decimals
and integers with the help of the addTDModifier function
• Calls the HTMLColumn function for each column. This is done as many times as specified
in the TableRows property.
initializeObject (html-map.p)
Sets the list of displayed and enabled objects/fields.
Parameters: None
Returns: Nothing (procedure)
Notes: Intended for internal use only.
inputFields (html-map.p)
Receives field input from the Web browser and populates the form buffer field values.
Parameters: None
Returns: Nothing (procedure)
Notes: Runs the WEB.INPUT procedure for each HTML field in the offset (.off)
file. Commonly used in process–web–request procedures.
476
joinExternalTables (wbrep.p)
Examples:
PROCEDURE process-web-request:
IF REQUEST_METHOD = "POST":U THEN DO:
/* Copy HTML input field values to the form buffer fields. */
RUN inputFields.
/* Find the datasource record that needs to be assigned. */
RUN findRecords.
/* Assign form buffer field values to the datasource. */
RUN assignFields.
/* Display datasource field values to the form buffer fields. */
RUN displayFields.
/* Enable form buffer fields. */
RUN enableFields.
/* Output the static HTML page and form buffer field values to the
web stream. */
RUN outputFields.
END.
END.
joinExternalTables (wbrep.p)
Adds external tables to the buffers in the database query.
Parameters:
Returns: LOGICAL
Notes: There are two ways to treat a list of external tables where one or more of the
tables already are in the query:
• As a default use the corresponding ExternalRowid in the where clause in the query. All
other tables are disregarded.
• If the external table list is defined in the ExternalTables attribute, disregard the tables that
are in the query and join to the OTHER tables. (ExternalJoinList and ExternalWhereList
already have the right number of entries.)
477
joinForeignFields (wbrep.p)
joinForeignFields (wbrep.p)
Finds the foreign fields to use for the passed external tables or object and creates the new query
statement in the data-source. Gets the values from the Web and adds the columns and values to
the query.
Parameters:
Returns: LOGICAL
Notes: None
lockRow (wbdata.p)
Locks all the records for the query or creates records for the tables in the query if the AddMode
property is set to TRUE. Returns FALSE if it fails to lock the record for some reason.
Parameters:
If the option begins “EXCLUSIVE” the records will be locked exclusively. Otherwise the
records will be NO–LOCKed.
Returns: LOGICAL
Notes:
• The function will return FALSE and add the necessary error messages to the ADM 2
message queue if the record is unavailable or locked.
• Used internally by assignFields and deleteRow and not intended for external use.
• Also used internally to reset the lock to NO–LOCK when a transaction ends.
478
openQuery (webrep.p)
openQuery (webrep.p)
Opens the database query in the data-source.
Parameters: None
Returns: LOGICAL
Notes: None
outputFields (html-map.p)
Replaces the tagged HTML field definition with the data values stored in the form buffer.
Parameters: None
Returns: Nothing (procedure)
Notes: Merges the HTML file with the results of running the WEB.OUTPUT
procedure, if one exists, for each HTML field. Otherwise just the HTML field
definition is output. When available, default utility procedures containing the
WEB.OUTPUT procedure are run, based on HTML field type. Commonly
used in process–web–request procedure.
Examples:
PROCEDURE process-web-request:
IF REQUEST_METHOD = "POST":U THEN DO:
/* Copy HTML input field values to form buffer fields. */
RUN inputFields.
/* Find datasource record that needs to be assigned. */
RUN findRecords.
/* Assign form buffer field values to datasource. */
RUN assignFields.
/* Display datasource field values to form buffer fields. */
RUN displayFields.
/* Enable form buffer fields. */
RUN enableFields.
/* Output static HTML page and form buffer field values to web stream. */
RUN outputFields.
END.
END.
479
pageBackward (wbtable.p)
pageBackward (wbtable.p)
Reads the previous record from the data-source the number of times required to find the row
that should be the top row in the table in order to make the current record the last record.
Parameters: None
Returns: LOGICAL
Notes:
• This is all additional logic that makes fetchPrev and fetchLast override their SUPER.
• The function is called from fetchNext if the last row is encountered as fetchNext loops
through the number of records specified in the TableRows property. It finds the row that
should appear on the top of the next page.
processWebRequest (wbdata.p)
Processes the request from the Web. This is an override of the webrep.p version and has the
additional logic necessary to handle transaction requests.
Parameters: None
Returns: Nothing (procedure)
Notes:
• The logic in this procedure is based on the values of the two Web fields “MaintOption”
and “AddMode” which are maintained on the HTML page and received as part of the web
request.
• The value of the Web field AddMode is passed to the object’s AddMode property to
distinguish between the creation of a new record or a save of the current.
• When “MaintOption” is “submit” or “delete” the value returned from the Rowids property
is set to the CurrentRowids property after the request has been executed. This property is
maintained in the HTML page as a context keeper and is usually maintained by the SUPER
procedure. It needs to be updated here in case the current record was deleted or a new
record has become the current.
480
processWebRequest (wbtable.p)
• The procedure has logic to deal with the case of an empty query. It changes the object’s
mode to “add” by assigning the UpdateMode property’s value to “add”. This change is
accompanied by an addMessage call that results in a corresponding message being
generated in the HTML page.
processWebRequest (wbtable.p)
Processes the request from the Web. This is an override of the webrep.p version and contains
additional logic to be able to produce an HTML page with several rows in a table.
Parameters: None
Returns: Nothing (procedure)
Notes:
• Because the object is read-only it does not go into add mode when the query is empty. IN
this case, an error message is added to the ADM 2 message queue.
• The procedure ends with a destroyObject call, which is important when the data-source is
a SmartDataObject, even if the TARGET–PROCEDURE is not run persistently. The
reason is that destroyObject might destroy the SmartDataObject and/or disconnect any
AppServer connection depending on the Instance Properties of the SmartDataObject.
481
processWebRequest (webrep.p)
processWebRequest (webrep.p)
Processes the submitted request from the Web.
Parameters: None
Returns: Nothing (procedure)
Notes:
– CurrentRowids — A list of the rowids that are currently in use for this object on the
Web
– Navigate — Next,Prev,First,Last,Search.
– Maintoption — Add,Delete,Submit.
• After the data-source query has been manipulated according to the received Web data and
other properties, the data-source query is opened.
• If this is a search and the query is empty, the query is reopened and a message is added to
the ADM 2 message queue to inform the user that no data was found.
• The last action that is performed is to set the CurrentRowids property from the Rowids
property. This must be done last because the property is used in navigation and because,
to keep context for the next request, the property must reflect the new current record as it
is going to be passed back to the Web page.
482
readOffsets (html-map.p)
readOffsets (html-map.p)
Wrapper to a procedure that reads the HTML mapping offset file and populates internal
AppBuilder temp-tables.
Parameters:
removeEntry (webrep.p)
Removes an entry from a list.
Parameters:
reOpenQuery (webrep.p)
Resets the data-source query to its original state.
Parameters: None
Returns: LOGICAL
Notes: This is the state after context has been reset, but before a search or query has
been performed.
483
rowidExpression (webrep.p)
rowidExpression (webrep.p)
Creates ROWID expression for dynamic query Rowid(table) = to–rowid(rowidchar).
Parameters:
showDataMessages (webrep.p)
Does a fetchMessages to retrieve all data-related messages (normally database update-related
error messages) and calls the HTMLAlert function to show them in an alert box on the Web.
Parameters: None
Returns: CHARACTER
Notes:
• Returns the name of the field (if any) from the first error message, to allow the caller to
use it to position the cursor.
• This procedure expects to receive back a single string from fetchMessages with one or
more messages delimited by CHR(3), and within each message the message text, field
name (or blank) + a table name (or blank), delimited by CHR(4), if present.
484
startDataObject (webrep.p)
startDataObject (webrep.p)
Starts or connects to the SmartDataObject. If the AppService attribute is set in this object, it
must also be set in the SmartDataObject before that SmartDataObject is initialized.
Parameters:
Returns: LOGICAL
Notes: The properties ”OpenOnInit”,”CheckLastOnOpen” and ”RebuildOnRepos”
are always set to TRUE.
timingOut (admweb.p)
Sets a Web object’s Web state to timed–out.
Parameters: None
Returns: Nothing (procedure)
Notes: ”RUN timingOut” is equivalent to ”setWebState (0)”.
485
urlJoinParams (webrep.p)
urlJoinParams (webrep.p)
Generate the URL parameter to use as join information for a linked object.
Parameters:
Specifies which parameters must be added to the URL in order to join this data-source to
the linked object’s data-source. Following are the valid values for this parameter:
Returns: CHARACTER
Notes:
• This is called from urlLink with the correct entry from the CHR(3)-delimited JoinLinks
attribute.
• Add ”?” as the last entry to the parameter to specify that the first parameter should be
separated with ”?” (the FIRST URL parameter).
urlLink (webrep.p)
Returns the necessary URL parameters in order to pass record information to a linked object.
Parameters:
Specifies which parameters must be added to the URL in order to join this data-source to
the linked object’s data-source. Following are the valid values for this parameter:
486
validateColumns (wbdata.p)
Returns: CHARACTER
Notes: None
validateColumns (wbdata.p)
Returns TRUE if all of the database columns in the optionally defined frame are validated. The
frame is generated specifically for this purpose.
Parameters: None
Returns: LOGICAL
Notes:
• The Embedded SpeedScript detail wizard optionally generates a frame containing all the
database columns that have been specified to inherit data dictionary validation. This
function does the actual parsing and validation of the database columns in that frame.
• The function retrieves the actual values to validate from the Web unless it finds fields in
the EnabledFields Property. In that case, it assumes that the values already have been
moved to the frame. The intention of this logic is to support HTML mapping objects.
NOTE: The HTML mapping object does not call this default. The use of EnabledFields
to indicate whether the values should be retrieved from the Web or already are in
the frame is very likely to change.
487
validateColumnValue (webrep.p)
validateColumnValue (webrep.p)
Checks if a value is the correct data type.
Parameters:
Value to validate.
Returns: LOGICAL
Notes: Returns TRUE if Column Value is valid, FALSE if it is not.
488
Properties Glossary
A
ActionEvent
Returns the event to publish on Default-action of the browse. setActionEvent(pcEvent)
defines the persistent trigger that runs defaultAction and also subscribes the
source-procedure.
ActionGroups
Returns the action groups selected in the Instance Properties.
AddMode
Sets the ADDMode property. If set to TRUE, the assignFields procedure will create a new
record.
AllFieldHandles
The pseudo-function {get} returns the allFieldHandles value.
AllFieldNames
The pseudo-function {get} returns the allFieldNames value.
ApplyActionOnExit
Uses the {get} pseudo-function to return the value of ApplyActionOnExit (true if exiting
selects the browse row). Currently used by SmartSelect.
ApplyExitOnAction
Currently used by SmartSelect. The logic is not performed in the trigger, but in the
defaultAction procedure that gets defined as a persistent DEFAULT-ACTION event when
setActionEvent is defined. Local DEFAULT-ACTION events could be set up to run
defaultAction.
Progress ADM 2 Reference
AppService
1.) Returns the logical partition name of the AppService to be used to connect to an
AppServer. This comes from a property, but there is no xp macro defined so as to avoid
returning ‘(None)’.
2.) Returns the name of the stored AppService.
3.) Stores the AppService in which the SmartDataObject is to be started. This routine
should be called before startDataObject. If the datasource is valid it must be disconnected
it if it is connected to a different partition.
ASBound
Returns TRUE if this object binds the AppServer with a persistently running procedure,
usually the server part of this object. The AsHandle property can check this.
AsDivision
The {get} pseudo-function returns the value of the ASDivision property. The value is a
string indicating which side of the AppServer this Object is running on; client, server, or
the empty string (no AppServer).
ASHandle
Returns the handle to this object’s companion procedure (the copy of itself) running on the
AppServer. The handle returned is the handle of the persistent procedure, not of the
connection.
ASHasStarted
The {get} pseudo-function returns the value of ASHasStarted. This value is TRUE if the
object has done its first call to its server-side object. There is no corresponding set function
as this must only be set internally.
ASInfo
The {get} pseudo-function returns the value of ASInfo. That value is the string used as a
parameter when this object connects to its partition for the first time. The string will be
empty if no parameters were passed.
ASInitializeOnRun
The {get} pseudo-function returns the value of ASInitializeOnRun. That value is TRUE
if runServerObject should call initializeServerObject
initializeServerObject is called on the client, but will usually have a call to the server to
set/retrieve context.
Glossary–2
Glossary
AssignList
The {get} pseudo-function returns the value of AssignList, the list of updatable columns
whose names have been modified in the SmartDataObject. This string takes the form:
<RowObjectFieldName>,<DBFieldName>[,...][CHR(1)...] with a comma-separated list
of pairs of fields for each db table, and CHR(1) between the lists of pairs.
ASUsePrompt
The {get} pseudo-function returns the value of ASUsePrompt. That value is TRUE if the
supporting code should prompt for a Username and Password when connecting to its
Application Partition.
AsynchronousSDO
The {get} pseudo-function returns the value of AsynchronousSDO.
Attribute
Returns the value of a standard Web-related attribute. The name of the attribute. Possible
names are type, version, web–state, web–timeout, web–timeout–handler,
web–time–remaining. In addition, other names can be used, provided that the
special–get–attribute procedure to handle them exists in the target procedure. For
example:
AutoCommit
The {get} pseudo-function returns the value of AutoCommit. This value determines
whether a Commit happens on every record update. This is FALSE by default, but if set
to TRUE will do a Commit automatically after any change.
AutoSort
Returns whether the root node should be auto-sorted.
AvailMenuActions
The {get} pseudo-function returns the value of AvailMenuActions, the actions available
in this menu.
Glossary–3
Progress ADM 2 Reference
AvailToolbarActions
The {get} pseudo-function returns the value of AvailToolbarActions, the list of actions
available in the menu of this toolbar. The Instance Properties dialog shows these and
AvailMenuActions. The actions selected will be saved as ActionGroups.
AvailToolbarBands
Returns a comma-separated list of the available toolbar bands for this toolbar master.
Assembles the list by looping through the temp-table.
B
BaseQueryString
The {get} pseudo-function returns the value of BaseQueryString.
BlockDataAvailable
The {get} pseudo-function returns the value of BlockDataAvailable, true if DataAvailable
messages from contained SDOs are to be ignored and not republished
BoxRectangle
The {get} pseudo-function returns the value of BoxRectangle. This is the handle to the
rectangle, if any, around the buttons in the Panel used by resizeObject.
BoxRectangle2
The {get} pseudo-function returns the value of BoxRectangle2. Used for bottom rectangle
on toolbars where ToolbarAutosize is TRUE.
BrowseFieldDataTypes
The {get} pseudo-function returns the value of BrowseFieldDataTypes.
BrowseFieldFormats
The {get} pseudo-function returns the value of BrowseFieldFormats.
BrowseFields
The {get} pseudo-function returns the value of BrowseFields, the list of fields to display
in the browse when the viewAs property is set to "browse".
BrowseHandle
The {get} pseudo-function returns the value of BrowseHandle, the handle of the browse
control.
Glossary–4
Glossary
BrowseTitle
The {get} pseudo-function returns the value of BrowseTitle, the title to display in the
browse SmartWindowContainer when the ViewAs property is set to "browse".
BuildSequence
The {get} pseudo-function returns the value of BuildSequence. A scoped xp macro is
defined and undefined specifically for this {get}.
Buffer
Used to create or assign properties for an action.
Buffers
Sets the Buffers property (see webrprop.i), a comma-separated list of database tables (not
SmartDataObject) to be retrieved by this object.
ButtonCount
The {get} pseudo-function returns the value of ButtonCount, the number of buttons in a
SmartPanel. Used by resizeObject.
Buttons
Used to set buttons according to the current state. It is called from various link targets
when they publish some state. Depending on the caller, valid values can be: onlyRecord,
disable-nav, first, last, initial-tableio, update, add-only, disable-commit, enable-commit,
enable-filter. The NAVIGATION-TARGET publishes queryPosition, the
TABLEIO-TARGET publishes updateState, and the COMMIT-TARGET publishes
rowObjectState.
C
CalculatedColumns
The {get} pseudo-function to examine the values of DataColumnsByTable and Tables.
Returns a comma-delimited list of the calculated columns for the SmartDataObject.
CalcWidth
The {get} pseudo-function returns the value of CalcWidth. That value is the logical value
that determines whether the width of the browse is calculated to the exact amount needed
for the fields it contains.
CallerObject
The {get} pseudo-function returns the value of CallerObject.
Glossary–5
Progress ADM 2 Reference
CallerProcedure
The {get} pseudo-function returns the value of CallerProcedure.
CallerWindow
The {get} pseudo-function returns the value of CallerWindow.
CancelBrowseOnExit
The {get} pseudo-function returns the value of CancelBrowseOnExit, TRUE if the value
in the browse is NOT to be selected on Exit.
CascadeOnBrowse
The {get} pseudo-function returns the value of CascadeOnBrowse. This determines
whether data will be retrieved from a dependent SDO if the parent SDO has more than one
row in its current dataset; if TRUE (the default), data will be retrieved for the first row in
the parent dataset, otherwise not.
ChangedEvent
The {get} pseudo-function returns the value of ChangedEvent, an optional event to
publish on value-changed.
CheckCurrentChanged
The {get} pseudo-function returns the value of CheckCurrentChanged. This value
determines whether the DataObject code should check whether the database rows being
updated have been changed since read.
CheckLastOnOpen
The {get} pseudo-function returns the value of CheckLastOnOpen, the flag indicating
whether a get-last should be performed on an open in order for fetchNext to detect that we
are on the last row. This is necessary to make the QueryPosition attribute reliable. Note:
• This function replaces CHR(1) with "," returns just a comma-delimited list.
ChildDataKey
The {get} pseudo-function returns the value of ChildDataKey.
Glossary–6
Glossary
ClientID
The {get} pseudo-function returns the value of clientID.
ClientProxyHandle
Stores the character version of the client-side SDO handle. The string containing the
client-side SDO procedure handle.
ClientRect
Returns the client rectangle for the Treeview
Col
Returns the column of the object.
ColumnFormat
The {get} pseudo-function returns the value of ColumnFormat, the browse column format
overrides values.
ColumnLabels
The {get} pseudo-function returns the value of ColumnLabels, the browse column label
overrides values.
Columns
Sets the DataColumns property (see webprop.i), a comma-separated list of database
tables (not SmartDataObject) to be retrieved by this object. A comma-separated list of
column names. The set function is named setColumns instead of setDataColumns for
backwards compatibility.
ComboDelimiter
The {get} pseudo-function returns the value of ComboDelimiter.
ComboFlag
The {get} pseudo-function returns the value of ComboFlag.
ComboFlagValue
The {set} pseudo-function assigns a new value to ComboFlagValue.
ComboHandle
The {get} pseudo-function returns the value of ComboHandle.
Glossary–7
Progress ADM 2 Reference
ComboQuery
The getComboQuery routine is published from the viewer and is used to pass the query
required by this combo back to the viewer for building. Once built, the query will be
returned into the procedure displayCombo. Note:
• This is designed to facilitate all combo queries being built with a single AppServer
hit. It is published from displayfields in the viewer.
ComboSort
The {set} pseudo-function assigns a new value to ComboSort. That value is the Sort
propery for the Combo
CommitSource
The {get} pseudo-function returns the value of CommitSource. Used for pass-through for
regular containers, but also inherited by the SBO, which uses it generally. A global xp
macro is not defined because the SBO needs logic in override (set AutoCommit). To allow
{set}, the function defines a temporary, scoped xp macro.
CommitSourceEvents
The {get} pseudo-function returns the value of CommitSourceEvents. This value
represents the list of events to be subscribed to in the Commit Panel or other
Commit-Source.
• This property is here because the link and event properties are kept together.
CommitTarget
The {get} pseudo-function returns the value of CommitTarget, the list in character format
of the handles of this object’s Commit-Targets.
CommitTargetEvents
The {get} pseudo-function returns the value of CommitTargetEvents. This value is the list
of events to be subscribed to in the Commit Panel or other Commit-Target.
ConsumerSchema
Returns the XML Schema filename.
ContainedDataColumns
The {get} pseudo-function returns the value of ContainedDataColumns, a delimited list of
all the DataColumns of all the Data Objects in this SBO.
Glossary–8
Glossary
ContainedDataObjects
The {get} pseudo-function returns the value of ContainedDataObjects, a list of the handles
of the Data Objects contained in this SBO.
ContainerHandle
The {get} pseudo-function returns the value of ContainerHandle, the widget handle of this
object’s Window or Frame container. Returns: HANDLE.
ContainerHidden
The {get} pseudo-function returns the value of ContainerHidden, TRUE if this object’s
parent container is hidden.
ContainerMode
The {get} pseudo-function returns the value of ContainerMode.
ContainerSource
The {get} pseudo-function returns the value of ContainerSource, the handle of this
object’s Container-Source, if any.
ContainerSourceEvents
The {get} pseudo-function returns the value of ContainerSourceEvents, a
comma-separated list of the events to which this object wants to subscribe to in its
ContainerSource.
ContainerTarget
The {get} pseudo-function returns the value of ContainerTarget. This value is the list of
the handles of the object’s contained objects.
ContainerTargetEvents
The {get} pseudo-function returns the value of ContainerTargetEvents. This value is the
comma-separated list of the events this object wants to subscribe to in its ContainerTarget.
ContainerType
The {get} pseudo-function returns the value of ContainerType, the type of container this
SmartObject is ("Window" or "Frame"), or the empty string if the object is not a
container.
ContextandDestroy
Server-side procedure to run after new data has been requested by the client.
Glossary–9
Progress ADM 2 Reference
ContextAndInitialize
Resets context and initializes this server-side object. Called from a stateless client before
a request.
ContextFields
Retrieves the ContextFields property (see webrprop.i), a comma-separated list of Fields
for which URL parameters are needed to keep context for subsequent requests to this
object. Note:
• The Property should be used whenever the HTML page needs to append the context
information to the URL being sent out as URL parameters. This can be seen in a Web
report generated using the Report wizard in the following line:
• The Embedded SpeedScript templates for both Report and Detail Web objects use
this function. ExternalTables, ExternalRowIds, and Columns that are used as
Foreignfields are examples of context fields.
ContextForServer
Sets a new value for gcContextForServer.
CreateHandles
The {get} pseudo-function returns the value of CreateHandles. This value is a
comma-separated list of the handles, in character form, of the fields in the data
visualization object that should be enabled for an Add or Copy operation.
CtrlFrameHandle
Returns the handle of the Treeview’s control frame.
CurrentDescValue
The {get} pseudo-function returns the value of CurrentDescValue.
CurrentKeyValue
The {get} pseudo-function returns the value of CurrentKeyValue.
CurrentMessage
The {get} pseudo-function returns the value of CurrentMessage.
Glossary–10
Glossary
CurrentMessageId
The {get} pseudo-function returns the value of CurrentMessageID, the ID from the
previous sendMessage where ReplyRequired.
CurrentPage
The {get} pseudo-function returns the value of CurrentPage. This value is the current page
number of the Container.
CurrentRowids
1.) Returns the String of comma-delimited rowids in the CurrentRowid property. (See
webrprop.i.). Note:
• The rowids stored in this property come from the URL parameter list and are
requested in fetchCurrent.
• Rowids for the external tables are also stored in the CurrentRowid property. The
function getTableRowids will return the rowids for the query’s original tables.
2.) Sets the String of comma-delimited rowids in the CurrentRowid property that will be
used by fetchCurrent. (See webrprop.i.) A list of ROWIDS. Note:
• The purpose of this property is to store the context of the current record received
from the Web once, so that it only needs to RUN fetchCurrent whenever it is needed.
CurrentRowModified
Returns TRUE if any values in the current RowObject row have been modified. If there is
no current RowObject record, then getCurrentRowModified returns "?".
Glossary–11
Progress ADM 2 Reference
D
DataColumns
The {get} pseudo-function to examine the value of DataColumnsByTable. Returns a
comma-delimited list of the columnNames for the SmartDataObject.
• This function replaces CHR(1) with "," returns just a comma-delimited list.
DataColumns
The {get} pseudo-function returns the value of DataColumns, a list of all the DataColumns
of all the Data Objects in this SBO, each qualified by the SDO ObjectName.
DataFieldDefs
The {get} pseudo-function returns the value of DataFieldDefs, the name of the include file
in which the field definitions for this SDO’s RowObject table are stored.
DataHandle
The {get} pseudo-function returns the value of DataHandle, the handle to the temp-table
query.
DataHandle
This SBO version of getDataHandle is run from a browser to get the query from the
contained Data object. Returns the handle of the RowObject query.
DataIsFetched
The {get} pseudo-function returns the value of DataIsFetched. The SBO sets this to TRUE
in the SDO when it has fetched data on the SDO’s behalf in order to prevent the SDO from
another server call to fetch the data it already has. This is checked in query.p
dataAvailable and openQuery is skipped if its TRUE. It is immediately turned off after it
is checked.
DataLinksEnabled
The {get} pseudo-function returns the value of DataLinksEnabled.
Glossary–12
Glossary
DataLogicObject
Returns the global handle ghDataLogicProcedure.
DataModified
The {get} pseudo-function returns the value of DataModified. This value is TRUE if the
current RowObject record is modified, or NO if there is no current RowObject.
• The difference from getNewRow is that it also returns true for saved and
uncommitted new record and thus cannot be used to check the object’s state. This
uses the RowMod field in the temp-table to see if the row is new (just as
getNewRow) and in addition checks to see if the RowObjUpd is not available, which
indicates that this has not been committed. Do some double checking if a rowObjUpd
is available to ensure that this is the right one.
• This routine defines a temporary, scoped xp macro in order to allow the {get} to be
used.
Glossary–13
Progress ADM 2 Reference
DataObjectOrdering
The {get} pseudo-function returns the value of DataObjectOrdering, the mapping of the
order of Update Tables as generated by AppBuilder to the developer-defined update order.
DataQueryBrowsed
Returns the DataQueryBrowsed value after mapping the requesting Browser (or other
such client object) to the SDO whose query it is browsing.
Returns TRUE if this SmartDataObject’s Query is being browsed by a SmartDataBrowser.
DataQueryString
The {get} pseudo-function returns the value of DataQueryString.
DataSignature
Returns a character string value, which is a list of integers corresponding to the datatypes
of the fields in the object temp-table, for use in comparing objects for equivalence.
DataSignature
A character string value that is a list of integers corresponding to the datatypes of the fields
in the RowObject temp-table, for use in comparing objects for equivalence.
1 = CHARACTER
2 = DATE
3 = LOGICAL
4 = INTEGER
5 = DECIMAL
6 = Reserved for FLOAT OR DOUBLE in the future
7 = RECID
8 = RAW
9 = Reserved for IMAGE in the future
10 = HANDLE
13 = ROWID
DataSource
The {get} pseudo-function returns the value of DataObjectHandle.
DataSource
Returns the value of DataSource. To allow design-time override, this does not use the
{get} syntax.
DataSourceEvents
The {get} pseudo-function returns the value of DataSourceEvents, a comma-separated list
of the events this object wants to subscribe to in its data source.
Glossary–14
Glossary
DataSourceFilter
The {get} pseudo-function returns the value of DataSourceFilter, an optional filter
expression for the data source.
DataSourceNames
The {get} pseudo-function returns the value of DataSourceNames, the ObjectName of the
Data Object that sends data to this visual object. This would be set if the data source is an
SBO or other Container with DataObjects.
DataTarget
The {get} pseudo-function returns the value of DataTarget, a handle in character format,
or a comma-separated list of handles for the case of multiple data targets.
DataTargetEvents
The {get} pseudo-function returns the value of DataTargetEvents, the list of events this
object class should be subscribed to in its data targets.
DataValue
Returns the data value.
The {get} pseudo-function returns the value of a SmartDataField’s DataValue.
Returns the data value that is read by the SmartDataViewer when it calls collectChanges,
if it encounters this PROCEDURE in the list of EnabledHandles and the DataModified
property of this object equals TRUE.
DBAware
The {get} pseudo-function returns the value of DBAware, TRUE if this object is
dependent on being connected to a database. This allows some code, for example in data
objects, to execute two different ways.
DBNames
Returns a comma-delimited list of DBNames that corresponds to the Tables in the Query
Objects.
DBNames
Returns the value of DBNames, a comma-delimited list of DBNames that corresponds to
the tables in the Query Objects
DC
Defined as EXTERNAL "user32"
Allocates a device context for the Treeview
Glossary–15
Progress ADM 2 Reference
DefaultCharWidth
The {get} pseudo-function returns the value of DefaultCharWidth, the default width of
character fields.
DefaultEditorLines
The {get} pseudo-function returns the value of DefaultEditorLines, the default number of
inner lines for editors.
DefaultLayout
The {get} pseudo-function returns the value of DefaultLayout.
DefaultLogical
Not currently used. The {get} pseudo-function returns the value of DefaultLogical.
DefaultWidth
The {get} pseudo-function returns the value of DefaultWidth, the default width for
noncharacter fields.
DefineAnyKeyTrigger
Returns the DefineAnyKeyTrigger property, TRUE if a persistent trigger is to be defined
on ANY-KEY. Does not use the {get} syntax.
DeleteTables
1.) Retrieves a comma-separated list of tables to be deleted.
2.) Stores a comma-separated list of tables to be deleted. Note:
• This can be used to delete only one of the joined tables, it can also be useful to define
the sequence of deletion.
• The empty string is treated as a "*": if the argument is a blank, then the deleteRow()
will delete all the tables in the query.
DescSubstitute
The {get} pseudo-function returns the value of DescSubstitute.
DesignDataObject
The {get} pseudo-function returns the value of DesignDataObject, the design time SDO
for objects that need SDO data, but cannot be linked.
DesignTimeHideMenu
Returns glDesignTimeHideMenu. This flag is set right before initializeobject for a toolbar
if this menu is on the startpage.
Glossary–16
Glossary
Destination
The {get} pseudo-function returns the value of Destination.
DestinationList
The {get} pseudo-function returns the value of DestinationList.
Destinations
The {get} pseudo-function returns the value of Destinations.
DestroyStateless
The {get} pseudo-function returns the value of DestroyStateless, which determines
whether the persistent SDO should be destroyed on stateless requests.
DeviceCaps
Defined as EXTERNAL "gdi32"
Returns the device caps for the Treeview
DirectionList
The {get} pseudo-function returns the value of DirectionList.
DisabledActions
Returns the DisabledActions property value, a comma-separated list of disabled actions.
Placing actions in this list immediately disables them and calls to enableActions have no
effect on them while they are listed. That makes it possible to permanently disable actions
regardless of state changes. Removing actions from this list with modifyDisabledActions
allows enableActions to enable them again.
DisabledAddModeTabs
The {get} pseudo-function returns the value of DisabledAddModeTabs.
DisableOnInit
The {get} pseudo-function returns the value of DisableOnInit, indicating whether the
current object should be left disabled when it is first initialized.
DisconnectAppServer
The {get} pseudo-function returns the value of DisconnectAppServer. This value
determines whether the persistent SDO disconnects the AppServer.
DisplayDataType
The {get} pseudo-function returns the value of DisplayDataType.
Glossary–17
Progress ADM 2 Reference
DisplayedField
The {get} pseudo-function returns the value of DisplayedField, the name of the field to
display in the selection.
DisplayedFields
The {get} pseudo-function returns the value of DisplayedFields. Used in such activities as
signature matching.
DisplayFieldsSecurity
The {get} pseudo-function returns the value of DisplayFieldsSecurity, a comma-separated
list of security types corresponding to AllFieldHandles.
DisplayedTables
The {get} pseudo-function returns the value of DisplayedTables. This is the list of SDO
table names used by the visualization. Can be only "RowObject". If the object was built
against an SBO, it will be the list of SDO ObjectNames whose fields are used.
DisplayField
The {get} pseudo-function returns the value of DisplayField, which will be TRUE if the
SmartDataField is to be displayed along with other fields in its Container, otherwise
FALSE.
DisplayFormat
The {get} pseudo-function returns the value of DisplayFormat.
DisplayValue
The {get} pseudo-function returns the saved screen/display value of a SmartDataField.
Returns the DisplayValue based on the DataValue. If the keyfield and displayfield are the
same, the keyfield value (datavalue) is returned. If they are not the same, then if a
reposition source is set, it returns the displayedfieldvalue that is obtained from the SDO.
In all other cases it will search the list-item-pairs (or radio-buttons for radio-sets) given the
datavalue and will return the display value.
DocumentElement
Returns the ID of the root element.
DocumentHandle
Returns the handle of the current document.
DocumentInitialized
Determines if the document is initialized. For example, it has a root node.
Glossary–18
Glossary
Domain
The {get} pseudo-function returns the value of Domain.
Down
Sets the down attribute for the browse and resizes the browse appropriately. Called from
initializeObject for dynamic SmartDataBrowsers.
DTDPublicId
Returns the DTDPublicId property of the Document.
DTDPublicIdList
The {get} pseudo-function returns the value of DTDPublicIdList. That value is a CHR(1)-
separated list of DTD Public Ids for producer.
DTDSystemID
Returns the DTDSystemId property of the Document.
DTDSystemIdList
The {get} pseudo-function returns the value of DTDSystemIdList. That value is a
CHR(1)-separated list of DTD System Ids for producer.
DynamicObject
The {get} pseudo-function returns the value of DynamicObject.
DynamicSDOProcedure
The {get} pseudo-function returns the value of DynamicSDOProcedure. This value is the
name of the dynamic SDO procedure. That is adm/dyndata.w by default, but it can be
modified if the dynamic SDO is customized.
E
EdgePixels
Returns the number of pixels that should be used to draw the rectangle around the buttons
on a SmartPanel.
EdgePixels
The {get} pseudo-function returns the value of EdgePixels.
Glossary–19
Progress ADM 2 Reference
Editable
The {get} pseudo-function returns the value of Editable. This value indicates whether this
object can be edited (add/copy/save/update). If the {get} returns undefined, the routine
{get}s EnabledFields. If there are some, the function returns TRUE; if none, the routine
calls the same function in all the routines in the GroupAssignTarget list.
EnabledFields
The {get} pseudo-function returns the value of EnabledFields. Can be a comma-separated
list of the names of enabled fields in this object that map to fields in the SmartDataObject
(&ENABLED-FIELDS).
EnabledHandles
The {get} pseudo-function returns the value of EnabledHandles. This is a
comma-separated list of the handles, in character format, of the enabled fields in the
visualization object.
EnabledObjFlds
The {get} pseudo-function returns the value of EnabledObjFields, a list of the field names
of widgets enabled in this object not associated with data fields.
EnabledObjHdls
The {get} pseudo-function returns the value of EnabledObjHandles, the list of the handles
of widgets enabled in this object and not associated with data fields.
EnabledTables
Returns a list of the database tables that have enabled fields.
EnableField
The {get} pseudo-function returns the value of EnableField. This value is TRUE if the
SmartDataField is to be enabled for user input along with other fields in its Container,
otherwise FALSE.
EnableOnAdd
Not in use at present. The {get} pseudo-function returns the value of EnableOnAdd.
ExitBrowseOnAction
The {get} pseudo-function returns the value of ExitBrowseOnAction, TRUE if the
selection of a value in the browse also should Exit the browse.
ExpandOnAdd
The {get} pseudo-function returns the value of ExpandOnAdd.
Glossary–20
Glossary
ExternalJoinList
Sets the ExternalJoinList property (see webrprop.i), a comma-separated list of URL
parameters that are needed to join an external table (supplied by the ExternalTables URL
parameter) to retrieve data for this request. In report and detail Web objects, this is
specified on the External Tables and Objects Page in the QueryBuilder. A pipe ( |
)-separated list of OF phrases. For example:
ExternalRefList
Returns External Ref List property value.
Glossary–21
Progress ADM 2 Reference
ExternalTableList
Sets the ExternalTableList property (see webrprop.i), a pipe-separated list of
comma-separated lists of External Tables that might be used to retrieve data for this
request. In report and detail Web objects, this is specified on the External Tables and
Objects Page in the QueryBuilder. A pipe ( | )-separated list of comma-separated tables.
Note: The ExternalJoinList and ExternalWhereList and/or ForeignFieldList have
corresponding entries. For example:
/* If you have a report of orders called reord.html you might call that
report from any of the following types of objects:
To allow external joins from any of these types of web objects, you
would use the following call to setExternalTables: */
setExternalTableList(’customer|salesrep,customer|salesrep’).
setExternalJoinList
(’OF customer|Order.CustNum = Customer.CustNum AND
Order.salesrep = Salesrep|Order.salesrep = Salesrep’).
setForeignFieldList (’custnum|salesrep,custnum|salesrep’).
setExternalWhereList(’|Order.PromiseDate < 12/12/99|’)
ExternalTables
Sets the ExternalTables property (see webrprop.i), a comma-separated list of the current
List of ExternalTables to use to retrieve data for this request. A comma-separated list of
table names.
Glossary–22
Glossary
ExternalWhereList
Sets the ExternalWhereList property (see webrprop.i), which contains an optional
pipe-separated list of WHERE clause field expressions that correspond to the
ExternalTableList Property. A pipe ( | )-separated list of field expressions. Note:
• The expressions are defined when the QueryBuilder is called from the External
Tables and Object page of Wizards for Embedded SpeedScript objects (report and
detail objects).
• WHERE clauses that are set with the “Where” radio-set in the “Edit Join” query
builder page on the External Tables and Objects Page of the Report and Detail
Wizard are stored in this property.
• WHERE clauses that are in the ExternalJoinList are merged with the clauses in the
ExternalWhereList Property. This is useful in cases in which WHERE clauses that
reference more than one table need to be built, such as the following:
F
FieldColumn
The {get} pseudo-function returns the value of FieldColumn, the column number of the
leftmost field.
FieldEnabled
The {get} pseudo-function returns the value of FieldEnabled, TRUE if the SmartDataField
is enabled for user input, otherwise FALSE.
FieldFormats
The {get} pseudo-function returns the value of FieldFormats. Internal override of formats
for fields.
FieldHandles
The {get} pseudo-function returns the value of FieldHandles. This value is a
comma-separated list of the handles, in character format, of the Data Fields in the
visualization object.
Glossary–23
Progress ADM 2 Reference
FieldHelpIds
The {get} pseudo-function returns the value of FieldHelpIds, the internal list of properties
for the fields. Each element consists of a name and a value, separated by CHR(1).
FieldHidden
Hides or unhides a lookup field.
FieldLabel
The {get} pseudo-function returns the value of FieldLabel.
FieldLabel
The {get} pseudo-function returns the value of FieldLabel.
FieldLabels
The {get} pseudo-function returns the value of FieldLabels, the internal list of properties
for the fields. Each element consists of a name and a value, separated by CHR(1).
FieldName
The {get} pseudo-function returns the value of FieldName, the name of the SDO field to
which this object maps.
FieldOperatorStyles
The {get} pseudo-function returns the value of FieldOperatorStyles, an internal list of
properties for the fields. Each element consists of a name and a value, separated by a
chr(1).
FieldsEnabled
The {get} pseudo-function returns the value of FieldsEnabled. This logical value indicates
whether the fields in this visualization object are enabled.
FieldToolTip
The {get} pseudo-function returns the value of FieldToolTip.
FieldToolTips
The {get} pseudo-function returns the value of FieldToolTips, an internal list of properties
for the fields. Each element consists of a name and a value, separated by a CHR(1).
FieldWidths
The {get} pseudo-function returns the value of FieldWidths, an internal list of properties
for the fields. Each element consists of a name and a value, separated by a CHR(1).
Glossary–24
Glossary
FillBatchOnRepos
The {get} pseudo-function returns the value of FillBatchOnRepos. This value determines
whether fetch RowIdent should retrieve enough rows to fill a batch of records when
repositioning to the end or near the end of the dataset where an entire batch would not be
retrieved.
FilterActive
Returns TRUE if the DataSource has a logical filter
FilterActive
The {get} pseudo-function to extract the values of FilterActive and QueryColumns.
Returns TRUE if a filter is active and QueryColumns is not the empty string.
FilterAvailable
The {get} pseudo-function returns the value of FilterAvailable.
FilterSource
The {get} pseudo-function returns the value of FilterSource. This value represents the
Filter Source for pass-through support.
FilterTarget
1.) The {get} pseudo-function returns DataObjectHandle. Returns it in character format.
2.) Returns the value of FilterTarget, the name of the linked filter object. Currently
supports only one.
FilterTargetEvents
The {get} pseudo-function returns the value of FilterTargetEvents, the comma-separated
list of the events to which this object wants to subscribe to in its FilterTarget.
FilterWindow
The {get} pseudo-function returns the value of FilterWindow, the name of the partition, if
any, on which this object will run.
FirstResultRow
The {get} pseudo-function returns the value of FirstResultRow. This will be unknown if
the first row has not yet been fetched, otherwise 1 concatenated with the ROWID.
Glossary–25
Progress ADM 2 Reference
FirstRowNum
The {get} pseudo-function returns the value of FirstRowNum, the temp-table row number
of the first row.
FlagValue
The {get} pseudo-function returns the value of FlagValue, the option flag key values for
"All" and "None".
FlatButtons
Not in use at present. The {get} pseudo-function returns the value of FlatButtons, TRUE
if buttons are shown without obvious borders unless they have the focus.
FolderWindowToLaunch
The {get} pseudo-function returns the value of FolderWindowToLaunch.
ForeignFieldList
1.) Retrieves the alternative list of foreign fields corresponding to the ExternalTableList.
2.) Sets the ForeignFieldList property (see webrprop.i), a pipe (|)-separated list of
comma-separated lists of the use to format URL parameters to pass to the next Web object.
ForeignFields
1.) Returns the ForeignFields property. That holds the mapping of fields in another
DataSource to fields in this SmartDataObject’s RowObject temp-table, to open a
dependent query.
2.) The {get} pseudo-function returns the value of ForeignFields for the SBO.
ForeignValues
1.) The {get} pseudo-function returns ForeignValues.
2.) The values of the most recently received ForeignField values received by
dataAvailable. The values are character strings formatted according to the field format
specification and they are separated by the CHR(1) character.
Format
The {get} pseudo-function returns the value of Format, an overridden format string.
FrameHandle
1.) Returns the frame handle of the object.
2.) Store the handle of the frame.
Glossary–26
Glossary
FrameMinHeightChars
The {get} pseudo-function returns the value of FrameMinHeightChars, the predetermined
character height of a frame.
FrameMinWidthChars
The {get} pseudo-function returns the value of FrameMinWidthChars, the predetermined
character width of a frame.
FullRowSelect
Returns the FullRowSelect property of the tree. If TRUE, the entire node (text and icon)
is highlighted.
FuncLibHandle
PRIVATE function. Returns the handle of the AppBuilder function library.
G
GroupAssignSource
The {get} pseudo-function returns the value of GroupAssignSource. This value is the
handle of the object’s GroupAssign source.
GroupAssignSourceEvents
The {get} pseudo-function returns the value of GroupAssignSourceEvents. This value is
a comma-separated list of the events this object wants to subscribe to in its GroupAssign
source.
GroupAssignTarget
The {get} pseudo-function returns the value of GroupAssignTarget. This is the handle, in
character format, of the object’s GroupAssign target.
GroupAssignTargetEvents
The {get} pseudo-function returns the value of GroupAssignTargetEvents. This is a
comma-separated list of the events this object wants to subscribe to in its GroupAssign
target.
Glossary–27
Progress ADM 2 Reference
H
Height)
Returns the height of the object.
HelpId
The {get} pseudo-function returns the value of the optional HelpId of the selection.
HiddenActions
The {get} pseudo-function returns the value of HiddenActions, a comma separated list.
HiddenMenuBands
The {get} pseudo-function returns the value of HiddenMenuBands, a comma-separated
list.
HiddenToolbarBands
The {get} pseudo-function returns the value of HiddenToolbarBands, a comma-separated
list.
HideOnInit
The {get} pseudo-function returns the value of HideOnInit. This value indicates whether
the current object should be left hidden when it is first initialized.
HideSelection
Returns the value of HideSelection, TRUE if the current node in the TreeView will not
remain highlighted when focus leaves the TreeView.
I
ILComHandle
Returns the com-handle of the ImageList ActiveX object
Image
Loops through the buttons loading their images, if any. The name of the button of interest.
The button-image number.
ImageHeight
Returns the ImageHeight property, the height of images in the image list associated with
the TreeView.
Glossary–28
Glossary
ImagePath
The {get} pseudo-function returns the value of ImagePath, the path to the images in the
filesystem.
ImageWidth
Returns the ImageWidth property, the width of images in the image list associated with
the TreeView.
Indentation
Returns the Indentation property of the tree, the number of pixels of indentation between
two generations of nodes.
IndexInformation
Returns IndexInormation formatted as the 4 GL index-information attribute, but with
RowObject column names, CHR(1) as index separator, and CHR(2) as table separator.
• Intended for internal use by other index info functions, which use this as input to
indexInformation(). (Unmapped columns are returned fully qualifed!) This property
can be used as input parameter to indexInformation() for further refinement. - If the
property is "?", it calls the indexInformation() in query.p and stores the returned
value for future calls.
• If a similar list with database fields are needed, use indexInformation() directly (if
connected).
InitialPageList
The {get} pseudo-function returns the value of InitialPageList. This value is the
comma-delimited list of pages to construct at startup, or "*" to indicate all pages must be
initialized at startup.
InMessageSource
The {get} pseudo-function returns the value of InMessageSource, a handle.
InMessageTarget
The {get} pseudo-function returns the value of InMessageTarget.
InnerLines
The {get} pseudo-function returns the value of Inner-Lines, the option flag key values for
‘all’ and ‘none’.
Glossary–29
Progress ADM 2 Reference
InstanceProperties
The {get} pseudo-function returns the value of InstanceProperties, a list of the ADM
instance properties of the SmartObject. Instance properties are those properties that can be
set at design time to be initialized as part of startup.
InternalEntries
Returns internal entries of SDO as internal entries cannot be accessed for remote proxy
procedures.
InternalRefList
The {get} pseudo-function returns the value of InternalRefList.
J
JMSpartition
The {get} pseudo-function returns the value of JMSpartition.
JMSpassword
The {get} pseudo-function returns the value of JMSpassword.
JMSsession
Returns the handle of the JMS session this instance is using.
JMSuser
The {get} pseudo-function returns the value of JMSuser.
K
KeyDataType
The {get} pseudo-function returns the value of KeyDataType.
KeyField
1. The {get} pseudo-function returns the value of KeyField, which is the name of the key
field.
2.) That is the name of the field whose value is:
Glossary–30
Glossary
KeyFields
The {get} pseudo-function returns the value of KeyFields. This value is a
comma-separated list.
KeyFieldValue
The {set} pseudo-function assigns a new value to KeyFieldValue. Enables the {set} using
a temporary scoped macro.
KeyFormat
The {set} pseudo-function assigns a new value to KeyFormat.
L
Label
The {get} pseudo-function returns the value of Label, the label defined for the selection.
If the value is undefined, it is converted to a string. Because no global xp macro is defined,
this function defines a temporary, scoped xp macro.
LabelEdit
Returns the LabelEdit property of the tree. If TRUE, the user can click on the node to edit
it.
LabelHandle
The {get} pseudo-function returns the value of LabelHandle.
LastDbRowIdent
The {set} pseudo-function sets a new value for LastDbRowIdent. This value will be
unknown if the last row has not been fetched, otherwise it will be the database rowid(s) for
the last row.
LastResultRow
The {get} pseudo-function returns the value of LastResultRow. This value will be
unknown if the last row has not yet been fetched, otherwise RowNum is concatenated with
ROWID.
LastRowNum
The {get} pseudo-function returns the value of LastRowNum, the temp-table row number
of the last row.
Glossary–31
Progress ADM 2 Reference
LayoutOptions
The {get} pseudo-function returns the value of LayoutOptions, the list of multi-layout
options for the object.
LayoutVariable
The {get} pseudo-function returns the value of LayoutVariable, the name of the
&LAYOUT-VARIABLE preprocessor for the object, which is used as a prefix to the
name of the procedure that resets it.
LineStyle
Gets the LineStyle property of the tree:
• 1 — Displays lines between root nodes as well as lines between child and parent
nodes.
LinkColumns
Stores the columns that have hyperlinks as a comma-separated list in the LinkURLs
property (see wbtaprop.i). The comma-separated list of columns. For example:
setLinkColumns ("custnum,salesrep")
LinkedFieldDataTypes
The {get} pseudo-function returns the value of LinkedFieldDataTypes.
LinkedFieldFormats
The {get} pseudo-function returns the value of LinkedFieldFormats.
ListItemPairs
The {get} pseudo-function returns the value of ListItemPairs.
LoadedByRouter
The {get} pseudo-function returns the value of LoadedByRouter. That value is true if the
XML and Schema have already been loaded by the router.
LogFile
The {get} pseudo-function returns the value of LogFile.
Glossary–32
Glossary
LogicalObjectName
The {get} pseudo-function returns the value of LogicalObjectName. Defines a temporary,
scoped xp macro for the purpose.
LogicalVersion
The {get} pseudo-function returns the value of LogicalVersion. Defines a temporary,
scoped xp macro for the purpose.
LogicBuffer
Returns the handle of the data-logic table, if possible.
LogicalObjectName
Calls SUPER with the argument, and then uses {get} to check ObjectInitialized. If that
value is true, this routine clears it and runs initializeObject. This routine always returns
TRUE.
LookupFilterValue
Returns gcLookupFilterValue, the filter value set.
LookupHandle
The {get} pseudo-function returns the value of LookupHandle.
LookupImage
The {get} pseudo-function returns the value of LookupImage.
LookupQuery
This routine is published from the viewer and is used to pass the query required by this
lookup back to the viewer for building. Once built, the query will be returned into the
procedure displayLookup.
• This routine is designed to facilitate all lookup queries being built with a single
AppServer hit. It is published from displayfields in the viewer.
Glossary–33
Progress ADM 2 Reference
M
MaintenanceObject
The {get} pseudo-function returns the value of MaintenanceObject.
MaintenanceSDO
The {get} pseudo-function returns the value of MaintenanceSDO.
ManualAddQueryWhere
The {get} pseudo-function returns the value of ManualAddQueryWhere. This value is
reapplied by the filter when needed to ensure the original query remains intact.
ManualAssignQuerySelection
The {get} pseudo-function returns the value of ManualAssignQuerySelection. This value
is reapplied by the filter when needed to preserve the original query.
ManualSetQuerySort
The {get} pseudo-function returns the value of ManualSetQuerySort. This value is
reapplied by the filter when needed to preserve the original query.
MapNameProducer
The {get} pseudo-function returns the value of MapNameProducer.
MapObjectProducer
The {get} pseudo-function returns the value of MapObjectProducer.
MapTypeProducer
The {get} pseudo-function returns the value of MapTypeProducer.
MarginPixels
The {get} pseudo-function returns the value of MarginPixels, the number of pixels to
reserve for the Panel margin used by resizeObject.
Glossary–34
Glossary
MasterDataObject
The {get} pseudo-function returns the value of MasterDataObject, the handle of the SDO
that has no data source of its own and is the parent to other SDOs.
MaxWidth
The {get} pseudo-function returns the value of MaxWidth. That value is the maximum
width of the browse when CalcWidth is TRUE.
Menu
The {get} pseudo-function returns the value of Menu, TRUE if a menu is to be generated.
MenuMergeOrder
The {get} pseudo-function returns the value of MenuMergeOrder. This value decides the
order in which menus will be merged with other toolbar instances.
MessageType
The {get} pseudo-function returns the value of MessageType.
MinHeight
The {get} pseudo-function returns the value of MinHeight.
MinWidth
The {get} pseudo-function returns the value of MinWidth.
MultiInstanceActivated
The {get} pseudo-function returns the value of MultiInstanceActivated.
MultiInstanceSupported
The {get} pseudo-function returns the value of MultiInstanceSupported.
N
NameList
The {get} pseudo-function returns the value of NameList.
NameSpaceHandle
The {get} pseudo-function returns the value of NameSpaceHandle. That value is the
handle of the loaded XML mapping schema namespaces.
Glossary–35
Progress ADM 2 Reference
NavigationSource
1.) The {get} pseudo-function returns the value of NavigationSOurce, the handle of the
query object’s Navigation source.
2.) This value is used for pass-through for regular containers, and by the SBO generally.
NavigationSourceEvents
The {get} pseudo-function returns the value of NavigationSourceEvents. This is the list of
events to be subscribed to in the Navigation Panel or other Navigation-Source.
NavigationTarget
The {get} pseudo-function returns the value of NavigationTarget.
NavigationTargetEvents
The {get} pseudo-function returns the value of NavigationTargetEvents, a
comma-separated list of the events this object wants to subscribe to in its
NavigationTarget.
NavigationTargetName
The {get} pseudo-function returns the value of NavigationTargetName. This is the
ObjectName of the Data Object to be navigated by this panel. This would be set if the
Navigation-Target is an SBO or other Container with DataObjects.
NewNode
1.) Returns TRUE if the current RowObject record is in new mode. Returns "?" if there is
no current RowObject.
2.) Returns TRUE if the matching contained SDO is in NewMode. This is the SBO version
of getNewMode.
3.) Returns the next unused node number in sequence.
NewRecord
The {get} pseudo-function returns the value of NewRecord. This is a character value that
indicates whether the current record in the visualization object is newly created. Valid
values are: "Add", "Copy", and "No".
NewRow
1.) Returns TRUE if the current RowObject record is new (an added record or a copy of
an existing record has never been written to the database). Returns "?" if there is no current
RowObject.
2.) his SBO version of getDataHandle is run from a browser to get the query from the
contained Data object.
Glossary–36
Glossary
NextNodeKey
Returns a unique code to be used for the Key attribute of the Treeview.
NodeExpanded
Expands or collapse a node according to the argument passed.
NumDown
The {get} pseudo-function returns the value of NumDown. That value is the number of
rows that are displayed DOWN in the browse.
NumRows
The {get} pseudo-function returns the value of NumRows, the number of rows to display
in the selection widget.
O
ObjectEnabled
Returns a flag to indicate whether the current object is enabled.
ObjectHidden
The {get} pseudo-function returns the value of ContainerHidden or ObjectHidden,
indicating whether the current object is hidden. Before checking ObjectHidden, the
routine examines the parent state in ContainerHidden. If ContainerHidden is true, there is
no need to examine ObjectHidden, and the function immediately returns TRUE. Note that
"hidden" is a logical concept in the ADM. A nonvisual object can be "hidden" to indicate
that it is not currently active in some way, because it is a Container-Target of some visual
object that is hidden.
ObjectInitialized
The {get} pseudo-function returns the value of ObjectInitialized, TRUE if this object has
been initialized.
ObjectLayout
The {get} pseudo-function returns the value of ObjectLayout, the current Layout Name
for the object.
Glossary–37
Progress ADM 2 Reference
ObjectMapping
The {get} pseudo-function returns the value of ObjectMapping. This value is a list of
handles of Navigation-Source objects (panels) or other objects that are mapped to
contained Data Objects, and the SDOs the SBO has connected them up to, according to
their NavigationTargetName property or setCurrentMappedObject request.
ObjectMode
Returns the mode of the object. Valid values are:
• ’Modify’ — This is a non-modal mode that can be turned off with view
• ’Update’ — This is a modal mode that is turned off with save or cancel
ObjectName
The {get} pseudo-function returns the value of ObjectName. This value is the name of the
object, which can be the filename or some other designation meaningful to the repository
and other objects.
ObjectPage
The {get} pseudo-function returns the value of ObjectPage, the logical page on which this
object has been placed.
ObjectParent
1.) Returns a handle value of the Progress parent container handle for the current
visualization object.
2.) Returns the widget handle of the caller’s parent’s parent (that is: the container that is
the caller’s logical grandparent), if any.
ObjectType
The {get} pseudo-function returns the value of ObjectType, unless {&ADMSuper} is
nonempty. This value is the type of the SmartObject, such as "SmartDataObject", etc.
"SUPER" is returned in the case of a super procedure.
ObjectVersion
The {get} pseudo-function returns the value of ObjectVersion, the ADM version of the
SmartObject.
OLEDrag
Returns the value of OLEDrag, TRUE if drag is supported.
Glossary–38
Glossary
OLEDrop
Returns the value of OLEDrop, TRUE if drop is supported.
OpenOnInit
The {get} pseudo-function returns the value of OpenOnInit, which determines whether
queries should be opened at initialization.
OpenQuery
1.) Returns the original design WHERE clause for the database query.
2.) Returns the value of OpenQuery, to allow it to be manipulated by setQueryWhere, for
example.
• This is important because no matter how the query is dynamically modified, it can
be reset to its original state using this return value in a QUERY-PREPARE method.
Operator
The {get} pseudo-function returns the value of Operator, the default when OperatorStyle
is "Implicit".
OperatorLongValues
The {get} pseudo-function returns the value of OperatorLongValues, a list of operators
and long text.
OperatorStyle
The {get} pseudo-function returns the value of OperatorStyle. There are four valid values:
• "Inline"
– Type the operator into the field (defaults to Equals, or BEGINS if
UseBegins is TRUE).
OperatorViewAs
The {get} pseudo-function returns the value of OperatorViewAs. This value is the view-as
type used to define the operator when OperatorStyle equals "Explicit".
Glossary–39
Progress ADM 2 Reference
Optional
The {get} pseudo-function returns the value of Optional. The value will be TRUE if the
selection is optional, and in that case the property OptionalString holds the value to
display.
OptionalBlank
The {get} pseudo-function returns the value of OptionalBlank, TRUE if the optional value
is a blank value. Applies to character fields only.
OptionalString
The {get} pseudo-function returns the value of OptionalString. This is displayed as an
optional value when the Optional property is set to TRUE.
OutMessageSource
The {get} pseudo-function returns the value of OutMessageSource.
OutMessageTarget
The {get} pseudo-function returns the value of OutMessageTarget.
P
PageNTarget
The {get} pseudo-function returns the value of PageNTarget. This is the list of objects that
are on some page other than 0. The list items are of the form handle|pagenum. Use addLink
rather than editing them by hand.
PageSource
The {get} pseudo-function returns the value of PageSource. This is the handle of the
object’s folder, if any.
PanelFrame
The {get} pseudo-function returns the value of PanelFrame. This is the Frame handle of
the SmartPanel, for resizeObject.
PanelLabel
The {get} pseudo-function returns the value of PanelLabel. This is the handle of the
Panel’s Label, if any.
Glossary–40
Glossary
PanelState
Returns the value of PanelState, the current state of the SmartPanel. The {get} syntax is
not used here.
PanelType
The {get} pseudo-function returns the value of PanelType, the type of SmartPanel
(’Update’, ’Navigation’)
Parent
Returns some parent
ParentDataKey
The {get} pseudo-function returns the value of ParentDataKey.
ParentField
The {get} pseudo-function returns the value of ParentField.
ParentFilterQuery
The {get} pseudo-function returns the value of ParentFilterQuery.
PassThroughLinks
Returns the list of link types that can be pass-through links. Used by addLink. This
property value is stored in smart.p for all SmartObjects.
Persistency
The {get} pseudo-function returns the value of Persistency.
PhysicalObjectName
The {get} pseudo-function returns the value of PhysicalObjectName.
PhysicalVersion
The {get} pseudo-function returns the value of PhysicalVersion.
PingInterval
The {get} pseudo-function returns the value of PingInterval.
PrimarySdoTarget
The {get} pseudo-function returns the value of PrimarySdoTarget.
Priority
The {get} pseudo-function returns the value of Priority.
Glossary–41
Progress ADM 2 Reference
PromptLogin
The {get} pseudo-function returns the value of PromptLogin.
Property
Returns the specified property for some node:
Glossary–42
Glossary
PropertyDialog
The {get} pseudo-function returns the value of PropertyDialog, the name of the dialog
procedure that sets InstanceProperties.
PropertyList
Sets a list of properties taken from a CHR(3)-delimited list of “prop CHR(4) value” pairs.
Q
QueryColumns
The {get} pseudo-function returns the value of QueryColumns.
QueryContainer
The {get} pseudo-function returns the value of QueryContainer. This value indicates
whether the Container is itself a QueryObject. This routine is used to determine if an SBO
handles the transaction for.
QueryContext
Internal function, developed for use in generic calls. The {get} pseudo-function returns the
value of QueryContext on the client.
QueryEmpty
Checks if the data source or query is empty.
QueryHandle
The {get} pseudo-function returns the value of QueryHandle.
QueryObject
Returns a flag that indicates whether this object manages its own database query.
QueryOpen
Returns TRUE if the Query Object’s database query is currently open.
Glossary–43
Progress ADM 2 Reference
QueryPosition
1.) The QueryPosition property, valid values for which are "FirstRecord", "LastRecord",
"NotFirstOrLast", and "NoRecordAvailable".
2.0) The SBO version of the {get} pseudo-function returns the value of QueryPosition. It
uses {get} to determine whether the requester is the target-procedure or the
source-procedure, {get}s ObjectMapping value, checks whether the MasterDataObject is
involved, and finally returns the value of QueryPosition from the SDO to which the caller
is mapped.
QueryRowIden
The {get} pseudo-function returns the value of QueryRowIdent, a RowIdent to be used to
position an SDO query when it is first opened.
QueryRowObject
The {get} pseudo-function returns the value of QueryRowObject. That value is the handle
of the RowObject temp-table associated with the Browse’s query.
QuerySort
Returns the sort phrase.
QueryString
The {get} pseudo-function returns the value of QueryString, the attribute used as working
storage for all query manipulation methods.
• The method always returns a WHERE clause. If the QueryString property has not
been set, it uses the current WHERE clause - QueryWhere. If there is no current use
the design where clause - OpenQuery.
QueryTables
The {get} pseudo-function returns the value of QueryTables.
QueryWhere
1.) The current query string, returns "?" if the query handle is undefined.
2.) Gets the current WHERE clause for the query.
3.) Prepares the query with a new OPEN QUERY statement or a new expression. The new
WHERE clause or expression.
Glossary–44
Glossary
R
RebuildOnRepos
The {get} pseudo-function returns the value of RebuildOnRepos, the flag indicating
whether the RowObject temp-table should be rebuilt if a fetchLast or other reposition is
done s outside the bounds of the current dataset.
RecordState
The {get} pseudo-function returns the value of RecordState. This is a string indicating
whether a record is available or not. Valid values are "RecordAvailable" and
"NoRecordAvailable".
ReEnableDataLinks
The {get} pseudo-function returns the value of GetReEnableDataLinks.
Refresh
Refreshes the treeview.
RefreshList
Returns a comma-separated list of the names of the Dynamic Combos to be refreshed for
the parent Combo named in the argument.
ReplyReqList
The {get} pseudo-function returns the value of ReplyReqList.
ReplyRequired
The {get} pseudo-function returns the value of ReplyRequired.
ReplySelector
The {get} pseudo-function returns the value of ReplySelector.
ReplySelectorList
The {get} pseudo-function returns the value of ReplySelectorList.
RepositionDataSource
The {get} pseudo-function returns the value of RepositionDataSource, TRUE if the
data-source is to be repositioned on VALUE-CHANGED of the select. This is not needed
for the view-as browse option. This must be set to TRUE if, for example, the data-source
also is a data-source for other objects, and those objects need to be refreshed when a value
is changed in the combo-box.
Glossary–45
Progress ADM 2 Reference
ResizeHorizontal
The {get} pseudo-function returns the value of ResizeHorizontal, TRUE if the object can
be resized in X.
ResizeVertical
The {get} pseudo-function returns the value of ResizeVertical, TRUE of the object can be
resized in Y.
RootNodeParentKey
Returns the value (from xcRootNodeParentKey) to use as the ParentKey for root nodes on
the tree. By searching for nodes with this value as the parent all the root nodes can be
found.
RouterSource
The {get} pseudo-function returns the value of RouterSource.
RouterTarget
The {get} pseudo-function returns the value of RouterTarget. The {set} pseudo-function
sets a new value for RouterTarget.
Row
Returns the height of the object. Use repositionObject to set the Row.
RowIdent
1.) The value of RowIdent.
2.) The comma-delimited character string containing the ROWIDs of the database records
that are the source of the RowObject record.
3.) The ROWID, in character format, of the current row of the visualization. If the
update-target is an SDO, the database ROWIDs can be stored as the second entry of the
list. If connected to an SBO, the value is a semicolon-separated list corresponding to the
SBO’s DataObjectNames list. If the SBO is a valid UpdateTarget, then the ROWIDs are
for the UpdateTargetNames; otherwise the DataSourceNames. Note: Return only the
ROWIDs that uniquely identify this object’s connection to the dataSource/updateTarget
and remove unnecessary ROWIDs so the property can be used directly as input to update
methods in the SBO. The assumption is that all tables that are displayed only in the visual
object are on the “one” side of a one-to-many or many-to-one relation of the table that is
updated, so that they are uniquely identified through the updatable table and their
ROWIDs are not part of this object ‘Ident’. However, return more than one ROWID is
returned for the case where more than one SDO is updated as one-to-one in the SBO.
Glossary–46
Glossary
Rowids
Gets the ROWID(s) of the current row or rows.
RowObject
1.) The value of RowObject, the handle of the RowObject Temp-Table buffer.
2.) The handle to the Browser’s temp-table definition.
RowObjectState
1.) Signals whether there are uncommitted updates in the object.
2.) The value of RowObjectState, which signals whether there are uncommitted updates
in the object. Valid return values are ‘NoUpdates’ and ‘RowUpdated’. Does not use the
{get} syntax.
RowObjectTable
The temp-table handle of the RowObject table. Note:
• This is not the same as the RowObject property, which is the handle of the
RowObject Buffer.
• Does not use the {get} syntax because the setRowObjectTable function must also do
other work.
RowObjUpd
The {get} pseudo-function returns the value of the RowObjUpd property. This value is the
handle of the temp-table buffer where updates are stored.
RowObjUpdTable
The {get} pseudo-function returns the value of RowObjUpdTable property. This value is
the handle of the RowObjUpd temp-table.
RowsToBatch
The value of RowsToBatch, the number of rows to be transferred from the database query
into the RowObject temp-table in a single operation.
RunAttribute
The {get} pseudo-function returns the value of RunAttribute.
Glossary–47
Progress ADM 2 Reference
RunDOOptions
The {get} pseudo-function returns the value of RunDOOptions. This is a
comma-separated list with options that determine how Data Objects are run from
constructObject The options available are:
• dynamicOnly – Runs dynamic data objects only and supersedes all other options.
• clientOnly – Runs proxy (_cl) code only (for both r-code and source code).
If dynamicOnly and/or clientOnly options are used, the container assumes that the Data
Object has an AppServer partition defined. If an AppServer partition is not defined and
dynamicOnly and/or clientOnly options are used, errors will occur as if the Data Object
was being run on an AppServer that had not been started.
RunMultiple
The {get} pseudo-function returns the value of RunMultiple.
S
SavedContainerMode
The {get} pseudo-function returns the value of SavedContainerNode.
SavedScreenValue
Obsolete function replaced by getDisplayValue (which it calls). Otherwise, kept for
backwards compatibility.
SaveSource
The {get} pseudo-function returns the value of SaveSource. This value is TRUE if the
TableIO-Source is ‘Save’ but FALSE if (modal) ‘Update’.
SchemaHandle
The {get} pseudo-function returns the value of SchemaHandle, the handle of the loaded
XML mapping schema
SchemaList
The {get} pseudo-function returns the value of SchemaList.
SchemaManager
Starts the schema manager, if necessary, and returns its procedure handle.
Glossary–48
Glossary
Scroll
Gets the Scroll property of the tree. If TRUE, scrollbars appear.
ScrollRemote
The {get} pseudo-function returns the value of ScrollRemote.
SDFFileName
The {get} pseudo-function returns the value of SDFFileName.
SDFTemplate
The {get} pseudo-function returns the value of SDFTemplate.
SdoForeignFields
The {get} pseudo-function returns the value of SdoForeignFields.
SearchColumns
1.) Contains a comma-delimited list of columns that are used to search in the current
data-source. Currently supports only one column.
2.) Stores the SearchColumns value. (Currently one.) A column name in the data-source.
SearchField
The {get} pseudo-function returns the value of SearchField. That value is the name of a
field where searching is enabled. If set, space is allocated for a fill-in to accept a value to
be repositioned to.
Secured
The {get} pseudo-function returns the value of Secured, TRUE if the combo’s security is
set to HIDDEN.
SecuredTokens
The {get} pseudo-function returns the value of SecuredTokens, a comma-separated list.
SelectedNode
Returns the key of the selected node.
Selectors
The {get} pseudo-function returns the value of Selectors.
Glossary–49
Progress ADM 2 Reference
ServerConnection
1.) Returns SESSION:SERVER-CONNECTION-ID through ServerConnection property.
2.) Sets SERVER_CONNECTION_ID property from
SESSION:SERVER-CONNECTION-ID.
ServerFileName
Returns the property value representing the actual server-side SDO filename to run on the
AppServer. That value might not be the ObjectName if that has been modified.
ServerOperatingMode
The {get} pseudo-function returns the value of ServerOperatingMode. This value is a
string representing the connection state. Valid values are "stateless", "state-reset",
"state-aware", or "none" (no AppServer connection).
ServerSubmitValidation
Returns the value of ServerSubmitValidation, which signals whether the column and
RowObject Validation procedures done as part of client validation are to be executed on
the server side. If * yes * , normally when the SDO is being run through the open client
interface, then serverCommit will execute SubmitValidation itself.
ShowBorder
The {get} pseudo-function returns the value of ShowBorder, TRUE if a three-dimensional
border is to be used around the buttons and as a delimiter when "RULE" is specified in
createToolbar.
ShowCheckBoxes
Returns the value of ShowCheckBoxes, TRUE if there will be check boxes beside each
node on the TreeView.
ShowRootLines
Returns the value of ShowRootLines, TRUE if there should be lines leading to the roots
of the tree or not.
ShutDownDest
The {get} pseudo-function returns the value of ShutDownDest. This value is the queue to
which a message can be sent to shut down a SmartConsumer running unattended.
Glossary–50
Glossary
SingleSel
Returns the value of SingleSel, TRUE if the node is to be expanded when selected or
clicked.
Sort
The {get} pseudo-function returns the value of Sort, TRUE if the selection is to be sorted.
StartBrowseKeys
The {get} pseudo-function returns the value of StartBrowseKeys, the list of Keylabels or
KeyFunctions that starts the browse.
StaticPrefix
Returns the prefix used before the action name in static definitions
SubModules
The {get} pseudo-function returns the value of SubModules.
Subscriptions
The {get} pseudo-function returns the value of Subscriptions.
SupportedLinks
The {get} pseudo-function returns the value of SupportedLinks, a comma-separated list of
the SmartObject links supported by this object.
SupportedMessageTypes
The {get} pseudo-function returns the value of SupportedMessageTypes.
T
TableIOButtons
Convert a tableIO recordState to setButton.
TableIOSource
The {get} pseudo-function returns the value of TableIOSource.
TableIOSourceEvents
The {get} pseudo-function returns the value of TableIOSourceEvents. This is a
comma-separated list of the events to which this object wants to subscribe to in its TableIO
source.
Glossary–51
Progress ADM 2 Reference
TableIOTarget
The {get} pseudo-function returns the value of TableIOTarget, a list of the handles, in
character format, of the object’s TableIO Targets.
TableiOTargetEvents
The {get} pseudo-function returns the value of TableIOTargetEvents, a comma-separated
list of the events to which this object wants to subscribe to in its TableIO Target.
TableIOType
1.) The value of TableIOType. A comma-separated list in CHARACTER format of the
object’s TableIO-Target handles.
2.) tableio-specific values of PanelType, if any, so that resetTabelio can handle panels
similar to toolbar.
TableModifier
Stores the Specified HTML attributes for the <table> tag in TableModifier property (see
wbtaprop.i). One or more HTML attributes that will be used in the TABLE tag. The
Embedded SpeedScript (.htm) files created by the Report wizard show examples of this
function call in use. For example:
TableRowids
Retrieves a list of current rowids by using getRowids, and then uses the ExternalTables
property (see webrprop.i) to remove the External Tables from the list, returning a list of
rowids for only the records requested by the current object. Used to pass as external rowids
to a called object.
TableRows
1.) Returns the number of rows in the table.
2.) Stores the specified number of rows for the HTML table in TableRows property (see
wbtaprop.i). Number of rows to display in the HTML page. The Embedded SpeedScript
(.htm) files created by the Report wizard show examples of this function call in use. For
example:
setTableRows(10)
Glossary–52
Glossary
Tables
1.) Returns the value of Tables, a comma delimited list of tables in the Query Objects
• From Version 9.1B, this property is a design time property while it earlier was
resolved from the actual query. This was very expensive as the function then always
needed to be resolved on the server and it is rather extensively used.
• There is currently no way to change the order of the tables at run time. But it would
be even more important to have this as a property if the order of the tables were
changed dynamically, because several other properties have table delimiters and are
totally dependent on the design time order of this property.
• This does not have an xpTables preprocessor because some web2 objects override
getTables().
2.) Overrides to use the property for HTML mapping with no data-source.
3.) Returns a comma-delimited list of tables from which data will be retrieved, either from
a SmartDataObject or database.
TargetNameSpace
Returns the XML Schema TargetNameSpace. This defines the XMLNS attribute of the
document instance.
TargetProcedure
Used in many SmartObjects to return the source-procedure’s target-procedure to a
function, such as addRow, in an SBO that needs to know who the "real" caller object is.,
it can
TimeToLive
TimeToLive represents the time during which the message is considered current and not
stale.
Toolbar
The value of Toolbar is TRUE if the toolbar is to be created.
ToolbarAutoSize
The value of ToolbarAutoSize is TRUE if the toolbar should be auto-sized to the width of
the window at runtime.
Glossary–53
Progress ADM 2 Reference
ToolbarBands
The {get} pseudo-function returns the value of ToolbarBands, the list of the toolbar bands
selected in the Instance Properties.
ToolbarDrawDirection
The {get} pseudo-function returns the value of ToolbarDirection, the draw direction
(“horizontal” or “vertical”) of the toolbar.
ToolbarHeightPxl
Calculates and returns the toolbar height in pixels from the three properties:
ToolHeightPXL, ToolbarMarginPxl, and ShowBorder.
ToolbarInitialState
The {get} pseudo-function returns the value of ToolbarInitialState, the state selected in the
Instance Properties. Used to view or hide buttons and menus according to state.
ToolbarParentMenu
The {get} pseudo-function returns the value of ToolbarParentMenu, the menu selected in
the Instance Properties. Required only if one or more toolbar menus need to be added
under a specific submenu. If the submenu does not exist, it is created.
ToolbarSource
The value of ToolbarSource, a handle or list of handles.
ToolbarSourceEvents
The {get} pseudo-function returns the value of ToolbarSourceEvents. This value is the list
of events to be subscribed to in the Toolbar-Source.
ToolbarTarget
The {get} pseudo-function returns the value of ToolbarTarget, a handle.
ToolbarTargetEvents
The {get} pseudo-function returns the value of ToolbarTargetEvents, the list of events to
which this object wishes to subscribe in the Toolbar-Target.
ToolbarWidthPxl
The {get} pseudo-function to obtain the values of ToolMarginPxl, ToolWidthPxl, and
ToolMaxWidthPxl. Calculates and returns the toolbar width.
ToolMarginPxl
Returns a constant zero at present.
Glossary–54
Glossary
ToolTip
The {get} pseudo-function returns the value of tooltip, the optional tooltip for the
selection.
TopOnly
Returns the value of the TOP-ONLY attribute.
TranslatableProperties
The {get} pseudo-function returns the value of TranslatableProperties, a
comma-separated list.
TreeDataTable
1.) The handle of a dynamic temp-table populated with property fields for a Treeview.
2.) The value of TreeDataTable, the handle of the temp-table into which tree-population
data will be stored.
TreeStyle
Valid values are:
• 0 Text only.
TVControllerSource
The {get} pseudo-function returns the value of TVControllerSource, the handle of the
procedure controlling this TreeView.
TVControllerTarget
The {get} pseudo-function returns the value of TVControllerTarget.
Glossary–55
Progress ADM 2 Reference
TVControllerTargetEvents
The {get} pseudo-function returns the value of TVControllerTargetEvents. This is the list
of target events to which this controller will subscribe.
TypeName
The {get} pseudo-function returns the value of TypeName.
U
UIBMode
Returns the UIBMode property to indicate whether this object is in Design mode in
AppBuilder (AppBuilder was originally called User-interface Builder). This will return
blank if the object is not in design mode, that is, not running in an AppBuilder design
window. It will return "Design" if in design mode, or "Design-Child" if it is contained in
another SmartObject that is in design mode, such as a SmartFrame. It will return "?" if the
object is not a SmartObject and does not have a valid handle in ADM-DATA.
UpdatableColumns
1.) A comma-delimited list of the Updatable Columns for this SmartDataObject.
2.) A list of all Updatable Columns of contained DataObjects, qualified by their
ObjectNames.
UpdateActive
The {get} pseudo-function returns the value of UpdateActive, TRUE if ANY of the
contained objects have active updates.
UpdateFromSource
The {get} pseudo-function returns the value of UpdateFromSource, TRUE if this object
should be updated as one-to-one of the datasource updates.
UpdateMode
1.) Returns the value of the updateMode flag, which governs the behavior of
ColumnStringValue. If updateMode is set to “Add”, ColumnStringValue returns initial
values of a column. If updateMode is not set to “Add”, ColumnStringValue returns the
current value of the column.
2.) Sets the value of the updateMode flag. Either “yes” or “no”. This call is used in
processWebRequest in web objects created using the report and detail wizards. In these
objects, the hidden field AddMode is set to the value of UpdateMode when a page is sent
to the WebBrowser, which is detected when the WebPage is returned.
Glossary–56
Glossary
UpdateSource
1.) The {get} pseudo-function returns the value of UpdateSource. This is used for
pass-through links, to connect an object inside the container with an object outside the
container. It is CHARACTER because at least one type of container (SBO) supports
multiple update sources.
2.) The value of UpdateSource, the handle of the object’s update-source.
UpdateTarget
The {get} pseudo-function returns the value of UpdateTarget. This is used for
pass-through links, to connect an object inside the container with an object outside the
container.
UpdateTargetNames
The {get} pseudo-function returns the value of UpdateTargetNames. This is the
ObjectName of the Data Object to be updated by this visual object. This is set if the
Update-Target is an SBO or other Container with DataObjects.
UseBegins
The {get} pseudo-function returns the value of UseBegins. This value is true when
BEGINS is supposed to be used for character tests.
UseColumnLabels
Stores a logical specifying whether to use column labels for the HTML table in
UseColumnLabels property (see wbtaprop.i). This is using the LABEL and not the
COLUMN–LABEL of the field. (There is no logic to take care of the ! in column–labels).
For example:
setUseColumnLabels(no)
UseContains
The {get} pseudo-function returns the value of UseContains. This value is true when
Contains is supposed to be used as operator for character values.
UseDBQualifier
Returns TRUE if table references are qualified with database.
UseDTD
Returns TRUE if DTD is to be used.
Glossary–57
Progress ADM 2 Reference
UsePairedList
Checks to see if an object is an editable combo-box. If getUsePairedList determines the
object is an editable combo-box, it returns FALSE, indicating a paired list cannot be used.
UserProperty
Retrieves the value of a dynamically defined property.
/*
** This example retrieves the current value of a property defined
** dynamically by setUserProperty(). Note that all dynamic
** properties are returned in character format.
*/
iProcessState = INTEGER(getUserProperty(‘ProcessState’:U)).
UseRepository
Returns TRUE iff Dynamics is running and the Repository is therefore available.
UserNameA
Returns some parent
Glossary–58
Glossary
V
ValidateOnLoad
The {get} pseudo-function returns the value of ValidateOnLoad: whether the document
should be validated on load.
ValidKey
Returns TRUE if some key is valid
ViewAs
The {get} pseudo-function returns the value of ViewAs, the ViewAs definition of the
selection: combo-box, radio-set, selection-list, or browse. Uses a colon as a separator to
define SUB-TYPE for combo-box or horizontal/vertical radio-set. For example:
’radio-set:vertical’.
ViewAsFields
Not currently used. The {get} pseudo-function returns the value of ViewAsFields.
ViewerLinkedFields
The {get} pseudo-function returns the value of ViewerLinkedFields.
ViewerLinkedWidgets
The {get} pseudo-function returns the value of ViewerLinkedWidgets.
VisibleRowids
The {get} pseudo-function returns the value of VisibleRowids.
VisibleRowReset
The {get} pseudo-function returns the value of VisibleRowReset.
VisualBlank
The {get} pseudo-function returns the value of VisualBlank. This value is used to
visualize searching for BLANK values.
Glossary–59
Progress ADM 2 Reference
W
WaitForObject
The {get} pseudo-function returns the value of WaitForObject. This value is the handle of
the object (most likely a SmartConsumer) in the container that contains a wait-for that
needs to be started with startWaitFor.
Waiting
The {get} pseudo-function returns the value of Waiting. That value determines when
waitForMessages is satisfied.
WebState
1.) Returns a Web object’s Web state. Possible values are state–aware, state–less,
timed–out. For example:
cWebState = getWebState().
2.) Sets the Web object’s Web state to state–aware and its timeout. The number of minutes
to remain state–aware. For example:
lReturn = setWebState(5.0).
WebTimeout
Returns a state–aware Web object’s timeout in minutes. For example:
dWebTimeout = getWebTimeout().
WebTimeRemaining
Returns the time remaining for a state–aware Web object. For example:
dWebTimeout = getWebTimeRemaining().
Glossary–60
Glossary
WebToHdlr
1.) Returns the name of the Web object/procedure to run when the state–aware Web object
that is currently running times out. The name of the object/procedure to run. For example:
cWebToHdlr = getWebToHdlr().
2.) Sets the name of the Web object/procedure to run when the state–aware Web object
that is currently running times out. The Web-object name.Web object must be on the
Agent’s PROPATH. For example:
lReturn = setWebToHdlr("mytohdlr.w").
Width
Returns the width of the object.
Window
Returns the handle of the toolbar’s parent Window.
WindowFrameHandle
The {get} pseudo-function returns the value of WindowFrameHandle. This value is the
handle of the optional Frame widget of a Window container.
• This property ONLY identifies the frame of a window container. It must not be
confused with the important ContainerHandle, which is the widget handle of the
container in all object. In most cases the ContainerHandle will be the Frame handle
also for a SmartContainer.
• Even if Window containers do not need a frame they often have one and in that case
we must include it when, for example, resizing, widget-tree logic, etc.
WindowTitleField
The {get} pseudo-function returns the value of WindowTitleField.
WindowTitleViewer
The {get} pseudo-function returns the value of WindowTitleViewer.
WordIndexedFields
1.) A comma-separated list of RowObject fields that are mapped to database fields that
have a word indexed.
2.) A comma-separated list of word indexed fields.
Glossary–61
Progress ADM 2 Reference
Glossary–62
Index
A actionRunAttribute 73
actionSecondImage 73
action.p actionSecuredToken 73
actionAccelerator 60 actionSubstituteProperty 74
actionAccessType 60 actionTooltip 74
actionCaption 61 actionType 75
actionCategory 61 assignActionAccelerator 95
actionChildren 63 assignActionAccessType 95
actionControlType 63 assignActionAlternateImageRule 96
actionCreateEvent 64 assignActionCaption 96
actionDescription 64 assignActionDescription 97
actionDisabled 64 assignActionDisableRule 97
actionEnableRule 65 assignActionEnableRule 98
actionEnableRulex 65 assignActionHideRule 98
actionGroups 65 assignActionImage 99
actionHideRule 66 assignActionLabel 99
actionHideRuleX 66 assignActionName 100
actionImage 66 assignActionOrder 100
actionImageAlternate 67 assignActionParent 101
actionImageAlternateRule 67 assignActionSecondImage 101
actionInitCode 67 assignActionTooltip 102
actionIsMenu 68 assignColumn 103
actionIsParent 68 bufferHandle 122
actionLabel 68 canFindAction 128
actionLink 69 canFindCategory 129
actionLogicalObjectName 69 categoryLink 131
actionName 70 clearActionCache 134
actionOnChoose 70 clearCache 134
actionParameter 70 columnStringValue 155
actionParent 71 defineAction 205
actionPhysicalObjectName 71 destroyObject 212
actionRefresh 72 (continued)
Progress ADM 2 Reference
Index–2
Index
browser.i C
dataAvailable 199
CalculatedColumns property 5
browser.p
addRecord 84 CalcWidth property 5
applyCellEntry 91
applyEntry 92 CallerObject property 5
assignMaxGuess 112
calcWidth 123 CallerProcedure property 6
cancelNew 124
CallerWindow property 6
cancelRecord 126
colValues 164 CancelBrowseOnExit property 6
copyRecord 177
defaultAction 204 CascadeOnBrowse property 6
deleteComplete 206
deleteRecord 209 ChangedEvent property 6
Index–3
Progress ADM 2 Reference
Index–4
Index
Index–5
Progress ADM 2 Reference
Index–6
Index
Index–7
Progress ADM 2 Reference
Destinations property 17 E
DestroyStateless property 17
EdgePixels property 19
DeviceCaps property 17
Editable property 20
DirectionList property 17 EnabledFields property 20
DisabledActions property 17
EnabledHandles property 20
DisabledAddModeTabs property 17
EnabledObjFlds property 20
DisableOnInit property 17 EnabledObjHdls property 20
DisconnectAppServer property 17
EnabledTables property 20
DisplayDataType property 17 EnableField property 20
DisplayedField property 18
EnableOnAdd property 20
DisplayedFields property 18
Error messages
DisplayedTables property 18 displaying descriptions xxxvii
Domain property 19
F
Down property 19
field.p
DTDPublicId property 19 initializeObject 273
resizeObject 359
DTDPublicIdList property 19
FieldColumn property 23
DTDSystemID property 19
FieldEnabled property 23
DTDSystemIdList property 19
FieldFormats property 23
DynamicObject property 19
FieldHandles property 23
DynamicSDOProcedure property 19
Index–8
Index
Index–9
Progress ADM 2 Reference
G I
genContextList property 1 ILComHandle property 28
IndexInformation property 29
H
InitialPageList property 29
Height property 28 InMessageSource property 29
Help
InMessageTarget property 29
Progress messages xxxvii
InnerLines property 29
HelpId property 28
InstanceProperties property 30
HiddenActions property 28
InternalEntries property 30
HiddenMenuBands property 28
InternalRefList property 30
HiddenToolbarBands property 28
Italic typeface
HideOnInit property 28
as typographical convention xxix
HideSelection property 28
html-map.p J
assignFields 454
bufferHandle 456 JMSpartition property 30
columnHTMLName 458
JMSpassword property 30
columnTable 460
constructObject 462 JMSsession property 30
dataAvailable 462
deleteOffsets 463 JMSuser property 30
dispatchUtilityProc 466
displayFields 467
enableFields 468 K
findRecords 473
htmAssociate 474 KeyDataType property 30
initializeObject 476
inputFields 476 KeyField property 30
outputFields 479
readOffsets 483 KeyFields property 31
Index–10
Index
LookupHandle property 33
LinkedFieldDataTypes property 32
LookupImage property 33
LinkedFieldFormats property 32
LookupQuery property 33
ListItemPairs property 32
LoadedByRouter property 32
M
LogFile property 32
MaintenanceObject property 34
logic.i
clearLogicRows 134 MaintenanceSDO property 34
serverCommit 384
Manual
LogicalObjectName property 33 syntax notation xxx
Index–11
Progress ADM 2 Reference
Messages
displaying descriptions xxxvii O
MessageType property 35 ObjectEnabled property 37
messaging.p ObjectHidden property 37
destroyObject 215
errorHandler 244 ObjectInitialized property 37
initializeObject 274
ObjectLayout property 37
MinHeight property 35
ObjectMapping property 38
MinWidth property 35
ObjectMode property 38
Monospaced typeface
as typographical convention xxix ObjectName property 38
N OLEDrag property 38
OLEDrop property 39
NameList property property 35
OpenOnInit property 39
NameSpaceHandle property 35
OpenQuery property 39
NavigationSource property 36
Operator property 39
NavigationSourceEvents property 36
OperatorLongValues property 39
NavigationTarget property 36
OperatorStyle property 39
NavigationTargetEvents property 36
Index–12
Index
PhysicalVersion property 41
P
PingInterval property 41
PageNTarget property 40
PrimarySdoTarget property 41
PageSource property 40
Priority property 41
panel.p
Procedures
activeTarget 76
examples of xxxiv
checkRule 133
countButtons 180 processCDataSection (xml.p 333
disableActions 218
enableActions 235 producer.p
enableObject 239 destroyObject 215
hasActiveGaTarget 264 initializeObject 275
initializeObject 275 replyHandler 351
linkState 297 sendMessage 379
loadPanel 300
onChoose 323 PromptLogin property 42
queryPosition 340
resetCommit 353 Property property 42
resetNavigation 354
PropertyDialog property 43
resetTableio 356
resetTargetActions 356
resizeObject 360 Q
sensitizeActions 381
targetActions 412
query.i
updateState 427
deleteRecordStatic 210
viewHideActions 433
initProps 282
PanelFrame property 40
query.p
PanelLabel property 40 addQueryWhere 83
assignDBRow 111
PanelState property 41 assignQuerySelection 114
bufferCompareDBToRO 120
PanelType property 41 bufferCopyDBToRO 121
bufferWhereClause 122
Parent property 41 (continued)
Index–13
Progress ADM 2 Reference
Index–14
Index
router.p sbo.p
createDocument 182 addDataTarget 77
initializeObject 276 addNavigationSource 81
internalSchemaFile 287 addQueryWhere 84
obtainInMsgTarget 320 addRow 88
processFileRefs 335 appendContainedObjects 91
routeBytesMessage 366 assignContainedProperties 110
routeDocument 366 assignCurrentMappedObject 110
routeMessage 367 assignMaxGuess 112
startB2BObject 399 assignQuerySelection 115
cancelNew 124
RouterSource property 46 cancelRow 128
canNavigate 130
RouterTarget property 46
columnColumnLabel 138
Row property 46 columnDataType 140
columnDbColumn 141
RowIdent property 46 columnExtent 142
columnFormat 143
RowObject property 47 columnHelp 144
columnInitial 146
RowObjectState property 47 columnLabel 147
columnMandatory 148
RowObjectTable property 47 columnModified 149
columnObjectHandle 149
RowObjUpd property 47
columnPrivateData 151
RowObjUpdTable property 47 columnProperty 151
columnQuerySelection 154
RowsToBatch property 47 columnReadOnly 155
columnStringValue 156
RunAttribute property 47 columnTable 158
columnValExp 159
RunDOOptions property 48 columnValMsg 160
columnValue 161
RunMultiple property 48 columnWidth 163
colValues 165
commitTransaction 166
S confirmContinue 170
containedProperties 176
SavedContainerMode property 48
copyRow 179
SavedScreenValue property 48 currentMappedObject 198
dataAvailable 202
SaveSource property 48 dataObjectHandle 203
deleteComplete 206
sbo.i deleteRow 210
initDataObjectOrdering 269 destroyServerObject 218
serverCommitTransaction 385 endClientDataRequest 240
fetchBatch 247
fetchContainedData 248
(continued)
Index–15
Progress ADM 2 Reference
Index–16
Index
Index–17
Progress ADM 2 Reference
Index–18
Index
Index–19
Progress ADM 2 Reference
visual.p webrep.p
applyLayout 94 addContextFields 449
disableObject 223 addSearchCriteria 449
enableObject 239 anyMessage 450
initializeObject 279 assignColumnFormat 451
processAction 333 assignColumnHelp 451
assignColumnLabel 452
VisualBlank property 59 assignColumnWidth 452
assignExtentAttribute 453
bufferHandle 457
W columnDataType 457
columnFormat 457
WaitForObject property 60 columnHandle 458
columnHelp 458
Waiting property 60 columnHTMLName 459
wbdata.p columnLabel 459
assignFields 455 columnReadOnly 460
columnStringValue 460
columnValMsg 461
deleteBuffer 463 destroyDataObject 464
destroyObject 465
deleteRow 464
disconnectObject 465
exclusiveLockBuffer 468
lockRow 478 extentAttribute 469
extentValue 469
processWebRequest 480
fetchCurrent 470
setAddMode 484
fetchFirst 470
validateColumns 487
fetchLast 471
wbrep.p fetchNext 471
HTMLAlert 474 fetchPrev 472
HTMLSetFocus 475 fieldExpression 472
joinExternalTables 477 openQuery 479
joinForeignFields 478 processWebRequest 482
removeEntry 483
wbtable.p reOpenQuery 483
addColumnLink 446 rowidExpression 484
addTDModifier 450 showDataMessages 484
assignTDModifier 456 startDataObject 485
columnTDModifier 461 urlJoinParams 486
fetchLast 470 urlLink 486
fetchNext 471 validateColumnValue 488
fetchPrev 472
HTMLColumn 475 WebTimeout property 60
HTMLTable 476
WebTimeRemaining property 60
pageBackward 480
processWebRequest 481 WebToHdlr property 61
Width property 61
Index–20
Index
Index–21
Progress ADM 2 Reference
Index–22