Frequently Asked Questions

Previous Next

Question

What is the identifier for the Generic controls?

Answer

Use:

*<APPLICATION>*LIBRARIAN*<Control Class>

For example:

*ESITEST*LIBRARIAN*Button

Question

How do I set/change controls on Controls For Style Sheet?

Answer

Use:

*<APPLICATION>*StyleSheet Class*<Control Class>

For example:

*ESITEST*Lookup Window*Button

Question

Are there known limitations?

Answer

In principal, the limitations are the same as for using the Windows Designer. For example:

You cannot create a class with the same name as an already existing class.

You cannot insert a class as a control in itself or in one of its superclasses.

Question

How do I insert a list of values as ONE parameter (e.g. when I need new lines in a Related Menu list)?

Answer

Use:

esi-set-attribute(<id>,<prop1>,~,<val 1>,<val 2>,~)

Where tildes (~) mark the beginning and end of the list.

For example:

esi-set-attribute(*APP*Departments.XtNrelatedWindowsForMenu,~,

Employees of Department,Projects of Department,~)

 

Question

How do I know what the allowed values for properties are?

Answer

See "Allowed Property Values vs Internal Resource Values" for a list of the values to use.

Question

How do I reset a property value?

Answer

You cannot. The ESI action interface has not been designed for interactive designing, but for generation in batch mode. Objects must receive the desired property values in one go. However, you can achieve the same result by deleting a class, and then regenerating it. If you plan to do this often, do not make subclasses, or be prepared to regenerate them as well.

Question

How do I empty a property value?

Answer

See "Empty Strings" in the Notes section.

Question

How do I insert columns into a dialog?

Answer

The object model of dialogs is almost identical to that of tables, except for the fact that the query object is called Variables.

Question

How do I insert non-database columns into an Info Box?

Answer

Same as for inserting columns into a dialog (see above).

Question

How do I set application properties?

Answer

Just like any other property. For example, use the following context identifiers:

*MY_APPLICATION.integrity

*MY_APPLICATION.dictionary

 

Question

How do I set the Window properties of a window or dialog?

Answer

Just like any other property. The window is a child of the Info Box class in the object model, and has to be registered with esi-add-component(). The class name is "Definition Shell" and the name is "ESI Shell".

Question

How do I change the label of a subtype indicator column?

Answer

Changing the label of a subtype indicator column is different from changing that of an ordinary column. The label of a subtype-indicator column is a child of esd_check.data !!

So, instead of:

esi-set-attribute(*MYAPP*myclass.query.mycolumn.esd_char.label, XtNlabel, "old label")

Use:

esi-set-attribute(*MYAPP*myclass.query.mycolumn.esd_check.data, XtNlabel, "new label")

Note: It is actually another label that you are setting. The subtype indicator column's property is there, but it is (normally) hidden. You can change it if you change the prompt instead of the label. If you do not set the label's label property, it will get the column's prompt property as its default.