class %ZEN.Auxiliary.column
extends %ZEN.Component.object
Defines column information for a %ZEN.Component.tablePane.
This class lets you specify details for how a column should be displayed within
a tablePane. These details include:
- Whether to hide a column (the hidden property)
- Whether a column should display a link or action (the link property)
- What header to use for a column (the header property)
- Whether to display a search filter for a column along with details of the filter (the filter properties)
- Additional styles for a column (the style property)
property OnDrawCell
as %ZEN.Datatype.delegator(FORMALSPEC="table:%ZEN.Component.tablePane,name:%ZEN.Datatype.string,seed:%ZEN.Datatype.string",RETURNTYPE="%Status");
Optional.
Name of Server-side callback method that provides HTML content
for cells within this column.
If defined, this callback is invoked on the server when this
component is drawn. It provides HTML content by using &html or
by using the WRITE command.
This must be the name of a server-only method in the page
class that contains this view component.
property OnDrawFilter
as %ZEN.Datatype.delegator(FORMALSPEC="table:%ZEN.Component.tablePane,name:%ZEN.Datatype.string,colinfo:%ZEN.Auxiliary.column",RETURNTYPE="%Status");
Optional.
Name of server-side callback method that provides HTML content
for the filter displayed for this column. This is used when the
value of filterType is set to "custom".
If defined, this callback is invoked on the server when this
component is drawn. It provides HTML content by using &html or
by using the WRITE command.
This must be the name of a server-only method (with the correct signature)
in the page class that contains this column object.
property cellTitle
as %ZEN.Datatype.caption;
Optional.
Tooltip help for data column.
This is a localizable value.
property colExpression
as %ZEN.Datatype.string;
If specified, this is an SQL expression used to get the value of this
column if the table is automatically constructing an SQL query. If a subquery is to be
used as expression, it must be enclosed in braces.
For example: "FirstName||LastName"
"(select name from Sample.Person)"
property colName
as %ZEN.Datatype.string(ZENEXPRESSION=1);
If specified, name of data column this object is associated with.
If not specified, then this column is displayed without a
data value (typically used to display a link action in a row).
When used with a %ZEN.Component.tablePane component, this can also take one
of the following special values:
- "$selector" - define a style for the special selector column in the table.
- "$rownumber" - define a style for the row number column in the table.
- "$checkbox" - define a style for the checkbox column in the table (when in multiSelect mode).
property disableSort
as %ZEN.Datatype.boolean [ InitialExpression = 0 ];
Optional.
If true, do not allow sorting on this column.
property filterEnum
as %ZEN.Datatype.csv;
Optional.
If filterType is "enum", this property defines
the set of enumerated logical values used by the filter as a comma-delimited list.
property filterEnumDisplay
as %ZEN.Datatype.csv(ZENLOCALIZE=1);
Optional.
If filterType is "enum", this property defines
the set of enumerated display values used by the filter as a comma-delimited list.
The logical values are defined by filterEnum.
This is a localized value.
property filterLabel
as %ZEN.Datatype.caption;
Optional.
If defined, this is a label to display for the filter control.
If there is a multi-part filter control (such as a range),
then this is assumed to contain a comma-delimited list of labels.
property filterOp
as %ZEN.Datatype.string(VALUELIST=",%STARTSWITH,=,>=,<=,<>,>,<,[,IN,BETWEEN,%CONTAINS,UP[");
Optional.
If this column has a filter, this is the name of the SQL operator
that should be used in conjunction with the filter.
For UP[, filterValue will be converted to a case insensitive value.
For "IN", filterValue is treated as a csv-list of IN-clause values.
For "%CONTAINS", filterValue is treated as a csv-list of %CONTAINS-clause values.
For "BETWEEN", filterValue is treated as a csv-list of 2 values used for the BETWEEN clause of the query.
property filterQuery
as %ZEN.Datatype.sql;
Optional.
If filterType is "query", this property defines
the SQL statement used to provide the set of values for a drop-down list.
If the query has more than 1 column, the first column is used as
the logical value (this is what is used in a search) and the second column
is used as a display value.
property filterTitle
as %ZEN.Datatype.caption;
Optional.
If this column has a filter, this is the tooltip text displayed
for the filter control.
This is a localizable value.
property filterType
as %ZEN.Datatype.string(VALUELIST=",text,date,datetime,enum,query,custom");
Optional.
If defined, specifies that this column should display a
search filter box and what type of filter control to display.
If you do not provide a value for colName then
the filter will not be created.
The possible filter types include:
- "text" - display a text box.
- "date" - display a date using a popup calendar control.
If filterOp is "BETWEEN", then 2 controls are displayed.
- "datetime" - same as "date" except that a complete timestamp (date and time) is used.
- "enum" - display a set of enumerated values in a combobox. The possible choices are
specified by filterEnum and filterEnumDisplay.
- "query" - display a set of values in a combobox. The contents of the
combobox are provided by executing the query specified by filterQuery.
- "custom" - display a custom filter using the server-side callback method specified by OnDrawFilter.
property filterValue
as %ZEN.Datatype.value;
Optional.
Value of the column filter for this column.
Typically this acquires a value after user input, but you can
set this property to define an initial value.
property header
as %ZEN.Datatype.caption(ZENEXPRESSION=1);
Optional.
If defined, use this value for the column header.
property hidden
as %ZEN.Datatype.boolean(ZENEXPRESSION=1);
Optional.
If true, do not display this column.
property link
as %ZEN.Datatype.uri;
Optional.
If defined, render this column as a link using this URL.
If you want to invoke a method, start the URL with "javascript:":
link="javascript:zenPage.myMethod();"
Optionally, set this to "#" (to make the column display as a link) and
use the onclick event for this column.
property linkCaption
as %ZEN.Datatype.caption;
Optional.
If this column has an action (link or onclick) and does not contain
data, then use this caption for the link.
property linkConfirm
as %ZEN.Datatype.caption;
Optional.
If defined, and this column has a link, this is a confirmation
message displayed before the link is executed.
If there is an onclick defined for this column, then this
is ignored.
This is a localizable value.
property onclick
as %ZEN.Datatype.eventHandler;
onclick event handler:
This event is fired when the mouse is clicked within a cell in this column.
If the column does not have data associated with it you will have to set
the linkCaption property.
Note that this callback is called before the new row in the table is selected
so you will not have the current selectedIndex for the table when this callback is fired.
If you need that, use the tablePane's onselectrow callback.
property seed
as %ZEN.Datatype.string(ZENEXPRESSION=1);
Optional.
This value is passed to the OnDrawCell method associated
with this column.
property style
as %ZEN.Datatype.style(ZENEXPRESSION=1);
Optional.
Additional style to apply to cells (td element) in this column.
This is a CSS style string: e.g., "color: red;"
property title
as %ZEN.Datatype.caption;
Optional.
Tooltip help for column header.
This is a localizable value.
property width
as %ZEN.Datatype.length(ZENEXPRESSION=1);
Optional.
If defined, use this value as the width of the column.
method getColName()
[ Language = javascript ]
Return the column name for this column.