Release 10.1A: OpenEdge Development:
Progress Dynamics Advanced Development

> ## Attribute value level summary

> It is important to keep these distinctions in mind so that you do not define behavior changes whose scope is larger or smaller than you want. As with any programming exercise, it is always best to do the job once and only once. So if you want to remove the Calculator pop-up from the `CustNum` field everywhere it might ever appear, you should do this at the master level, using the tool that gives you access to the attributes at that level (the Repository Maintenance tool, in this case). That way you never have to change the property when you use the field. It also means that you can change your mind about this new default value and only have to change data in one place. Because of the Progress Dynamics inheritance model for attribute values, the change in value at the master level will be inherited by any instance (that is, any use) of the object where the attribute has not specifically been set to some value.

> On the other hand, when you want a change in default behavior to be seen only in the current context, then set the property value at the instance level using the available tools.

> To review, for master objects:

> - You can set master attribute values for DataField objects (individual database fields as used in the framework) in the Repository Maintenance tool. Because the Repository tool shows you the actual records in the Repository database, it will not show any value for an attribute whose value is inherited from its class, so, as you saw for the `ShowPopup` example, you might need to add a record to define the attribute value.

> - You can set master attribute values for SDOs, viewers, and browsers in the AppBuilder. You can either use the AppBuilder’s own custom property sheets for these objects (by double-clicking on the object in its design window, for example) or bring up the dynamic property sheet from the Window menu.

> - You can set master attribute values for windows in the Container Builder by clicking on the Container properties button.

> And for instances:

> - You can set instance attribute values for `DataFields` in the viewer where you use the field, when you edit the viewer in the AppBuilder, using either the AppBuilder’s custom property sheet for the field type or the dynamic property sheet.

> - You can set instance attribute values for SmartObjects such as SDOs, browsers, viewers, toolbars, and folders by editing the window where the object instance occurs in the Container Builder and bringing up the dynamic property sheet for the object.

Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095