ADM2: How to display supporting info from a second table in Add mode

« Go Back


EnvironmentProduct: Progress
Version: 9.x
Product: OpenEdge
Version: 10.x, 11.x
OS: Windows
Question/Problem Description
A Smart window contains 2 SmartDataObjects with a Data link between them.  The window also contains two Smart Data Viewers. Each viewer is a Data Target for one of the SDOs.

One of the viewers has Navigation and TableIO links to a SmartToolbar. The second viewer displays related information from a different table with the same primary key. The Data link between the two SDOs keeps the two viewers synchronized.

When the user adds a new record to the first table, the related record in the second table may already exist. However, because the Add operation is not completed until the new record is saved, the Data link does not change the position in the second SDO and the second viewer does not display the supporting information.

How can this window be designed so the supporting information can be displayed as soon as the user has entered the primary key value in Add mode?
Steps to Reproduce
Clarifying Information
Error Message
Defect/Enhancement Number
Instead of using a second SDO and a second SmartDataViewer for the supporting information, add the supporting fields as calculated fields in the first SDO.

The benefits of this approach are:
  • There is no need to┬ámanipulate the ADM2 state model using overrides, which can be an error-prone process.
  • Performance will be better if the application is distributed (that is, if it uses an AppServer) because fewer objects must be maintained.
References to Other Documentation:

OpenEdge Development: AppBuilder, "Data-Access Objects : SmartDataObjects : Creating calculated fields"
Last Modified Date3/20/2017 4:13 PM

The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.

Was this article helpful?


Your feedback is appreciated.

Please tell us how we can make this article more useful.

Characters Remaining: 255