[Integration Kit Contents] [Integration Kit What's New] [Integration Kit Function Index] [More Documentation] [PTC]

Logical and Display Tables

Concepts

Logical Table
sd-create-logical-table
sd-destroy-logical-table
sd-logical-table-p
sd-secure-logical-table
sd-unsecure-logical-table
sd-logical-table-secured-p
sd-get-logical-table-attribute
sd-set-logical-table-attribute
sd-logical-table-suspend-display-table-updates
sd-logical-table-resume-display-table-updates
sd-logical-table-update-display-tables
sd-logical-table-need-display-table-update-p
sd-change-logical-table-contents
sd-insert-logical-table-row
sd-remove-logical-table-row
sd-write-logical-table-cell
sd-read-logical-table-cell
sd-read-logical-table-row
sd-read-logical-table-column
sd-insert-logical-table-column
sd-get-logical-table-number-of-rows
sd-get-logical-table-column-identifiers
sd-get-logical-table-key-column-identifiers
sd-get-logical-table-column-type
sd-get-logical-table-types
sd-get-logical-table-column-name
sd-rename-logical-table-column

Display Table
sd-create-display-table
sd-destroy-display-table
sd-display-table-p
sd-get-display-table-logical-table
sd-get-display-table-columns
sd-get-display-table-selection
sd-set-display-table-selection
sd-reset-display-table-selection
sd-scroll-display-table-selection
sd-edit-display-table-cell
sd-sort-display-table
sd-reset-display-table-sort
sd-filter-display-table
sd-reset-display-table-filter
sd-allow-display-table-user-filter
sd-set-display-table-title
sd-set-display-table-column-title
sd-set-display-table-colors
sd-set-display-table-help-action
sd-set-display-table-help-page
sd-get-display-table-custom-top-form
sd-get-display-table-custom-bottom-form
sd-show-display-table
sd-hide-display-table

Function Index Top of Page

Logical and Display Table Concepts

Logical and display tables are techniques used to present a large amount of data in tabular format. It helps the user read and understand the data. By using these techniques the user can be assisted in providing correct input data for a certain command.

A logical table is essentially an internal data-structure which stores the actual data. A logical table consists of any number of columns and rows. Each column may be typed, one of:

or untyped. Each cell of an untyped column can contain any LISP data where cells of typed columns can contain only values of the specific type.
A logical table can be filled with data directly with its creation. After creation the user has the possiblity to

A logical table can be secured against modifications. Here the user is not allowed to change the table contents after table creation.
The user can retrieve single cell data or complete row data from the logical table. A certain row of the logical table can be addressed by:

A display table is used to display the contents of a logical table on the screen. You can create multiple display tables for the same logical table to have different views of the same data. That means the programmer of a display table has the choice to display only some of the columns of the logical table in any order.
With every change of the data kept in the logical table, each display table which uses this logical table as data source will be updated automatically.
If the logical table has columns where the cells are measured in units (i.e. columns of type Length, Angle or Mass) each change of the system units will lead to an update of the corresponding display tables.

A display table may look like this:

The main area of a display table displays the table data in rows and columns. If more data is displayed as available space, horizontal and vertical scrollbars will appear to allow access of hidden table parts.

As an option there is a sort interface above the table contents. Here the user can sort each typed column - in reversed order too.

Another option is to display the current active filters in the filter status line below the table data. Each typed column (String, Number, Length, Angle or Mass) is labeled using a toggle button as interface to the column fiter interface.
Untyped columns are labeled with pure label widgets. Here the user has not the possibility to filter the column.

If the user hits a column toggle (indicates, that filtering on this column is possible) the following UI comes up:
Display Table Filter

This column filter interface is reused for all tables and all columns. It is not possible to have more than one filter interface visible at the time.

If a filter was specified on that column, the UI shows the specified values. Now, the user has the possibility to

String filters are filters on lexical order.
That means for example: "Demo" < "Z" < "ab" < "abc" < "abd" < "ac" < "b"

Filtering the column in one direction (one boundary specified) is possible is this way:

Filtering the column by specifying a Range:

Reset all filters of table:
As the label says this button leads to a reset of all specified column filters for this table. The resulting display table contains all items of the corresponding logical table (since no filter is specified anymore).

Display of current filter:
If the display table contains the filter status line, the current filter will be displayed in this line. Filters on different columns are concatenated using the character &.

Technical Remark:
Each column filter apply (either new or modification) leads to a complete recalculation of displayed items starting from the full list of the corresponding logical table.
All column filters are combined using the boolean expression AND. So the order of column filter specification is irrelevant.

Function Index Top of Page

Logical Table

SD-CREATE-LOGICAL-TABLE

(sd-create-logical-table table
        :secured          boolean
        :columns          list-of-column-identifiers
        :columnNames      list-of-column-names
        :keyColumns       list-of-column-identifiers
        :types            list-of-type-identifiers
        :units            list-of-unit-keywords
        :contents         list-of-contents-lists
        :attribute        any-LISP-object)
Description:
This function creates a new logical table. If a logical table with the same identifier table exists, this old existing table (if it is not secured) will be destroyed and all corresponding display tables too. The new table will overwrite the old one completly.
Values measured in units are converted automatically to internal units. That means the logical table keeps values measured in length units internally as mm, angle units as rad and mass units as g.

Parameters:
table {STRING} - identifier string for logical table
:secured {BOOLEAN}
indicates whether the logical table accepts modifications later on or not.
:columns {LIST of KEYWORDs}
list of keywords to identify columns of logical table. A choice of these keywords (or all) are used to build up corresponding display tables (different views on the same logical table).
:columnNames {LIST of STRINGs}
list of label strings which will appear on top of each column in a corresponding display table. If this list is omitted or a string for a certain column is nil, the corresponding column identifier keyword will appear as column label.
:keyColumns {LIST of KEYWORDs}
list of column identifier keyword, which is used as access key to this logical table. For more information see sd-read-logical-table-row.
:types {LIST of KEYWORDs}
each column must have a type. Depending on this type a units conversion takes place or not.
The following types are available:
  • nil - untyped value (any value)
  • :string - only string values
  • :number - units independent number (int/float)
  • :length - a number measured in length units (int/float)
  • :angle - a number measured in angle units (int/float)
  • :mass - a number measured in mass units (int/float)
:units {LIST of KEYWORDs}
this parameter makes only sense in conjunction with the :contents parameter below. It states in which units the items of the :contents list are measured. These units settings can be overwritten by explicit unit keywords in the contents list (see below).
:contents {LIST of LISTs}
List of rows to fill logical table. Each row is given through a list of values for each column. Usually a cell item is measured in the units set through the :units parameter, but this setting can individually be overwritten by explicit unit statements. Instead of number one can write
(number units-keyword)
to overwrite the setting in the :units parameter.
:attribute {LISP OBJECT}
Any LISP object (single value, struct, list, property list, ...) can be attached as additional information to this logical table. To retrieve the value use sd-get-logical-table-attribute.

Return Value:
t - if logical table could be created successfully
nil - if creation failed

Example:
(sd-create-logical-table
 "Example-Table"
 :columns     '(:first   :second     :third       :untyped :fifth    :sixth)
 :columnNames '("String" "Angle"     "Length"     nil      "Mass"    "Number")
 :keyColumns  '(:second :third)
 :secured     nil
 :types       '(:string :angle       :length      nil      :mass      :number)
 :units       '(nil     :deg         :mm          nil      :kg        nil)
 :contents  '(("Eric"   (17.2 :deg)  (2 :inch)    :test105 (42 :kg)   000)
              ("Alf"    0.57         22.4         :bla     23.6       111)
              ("Willie" 1.673        (143.85 :mm) "Eric"   62.3       222)
              ("Lynn"   (33.33 :deg) (0.5 :km)    105      (17.5 :kg) 333)
              ("Kate"   2.222        (422.2 :mm)  'hugo    (23.5 :mg) 444)
              ("Brian"  3.1415       65.5         15       345.85     555)
              ("Jake"   1.2354       (15.6 :mm)   :foo     42.5       666)
              ("Raquel" 0.03745      (99.89 :mm)  :zip     234.645    777)
              ("Bill"   0.8765       (126 :mm)    :bar     0.42       888)))

Function Index Top of Page

SD-DESTROY-LOGICAL-TABLE  [function]

(sd-destroy-logical-table table)
Description:
Destroys logical table and all associated display tables.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - if logical table could be destroyed successfully
nil - if destroy failed

Function Index Top of Page

SD-LOGICAL-TABLE-P  [function]

(sd-logical-table-p table)
Description:
Checks whether the identifier string table represents a logical table or not.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - if a logical table with the specified name exists
nil - otherwise

Function Index Top of Page

SD-SECURE-LOGICAL-TABLE  [function]

(sd-secure-logical-table table)
Description:
Secures table table against modifications (change/insert/delete/destroy cells/rows from/to logical table).

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - if logical table could be secured successfully
nil - if secure failed

Function Index Top of Page

SD-UNSECURE-LOGICAL-TABLE  [function]

(sd-unsecure-logical-table table)
Description:
Opens logical table and allows modification of cells/rows.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - if logical table could be unsecured successfully
nil - if unsecure failed

Function Index Top of Page

SD-LOGICAL-TABLE-SECURED-P  [function]

(sd-logical-table-secured-p table)
Description:
Returns secured status of logical table table.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - if logical table is secured or does not exist (an error message will indicate this).
nil - if logical table is unsecured.

Function Index Top of Page

SD-GET-LOGICAL-TABLE-ATTRIBUTE  [function]

(sd-get-logical-table-attribute table)
Description:
Retrieves the attribute value of the logical table table.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
value {LISP OBJECT} - value of attribute
nil - if no value could be retrieved

Function Index Top of Page

SD-SET-LOGICAL-TABLE-ATTRIBUTE  [function]

(sd-set-logical-table-attribute table value)
Description:
Sets the attribute of the logical table table to value.

Parameters:
table {STRING} - identifier string for logical table
value {LISP OBJECT} - the value of the attribute

Return Value:
t - if attribute set was successful
nil - failure

Function Index Top of Page

SD-LOGICAL-TABLE-SUSPEND-DISPLAY-TABLE-UPDATES  [function]

(sd-logical-table-suspend-display-table-updates table)
Description:
Suspends automatic updates of all associated display tables if a change in the logical table occurs.
This function is very useful, if the user has to do a sequence of changes to the logical table. Normally each change will cause an update of all attached display tables and this might consume a lot of time. In case of change sequences (write/change) suspend the automatic update, do the changes and resume automatic update afterwards using the function sd-logical-table-resume-display-table-updates.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-LOGICAL-TABLE-RESUME-DISPLAY-TABLE-UPDATES  [function]

(sd-logical-table-resume-display-table-updates table)
Description:
After a call to this function, each change to the logical table table will cause an update of all associated display tables. If the logical table table was changed since automatic update of display tables was suspended, all attached display tables will be updated immediately.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-LOGICAL-TABLE-UPDATE-DISPLAY-TABLES  [function]

(sd-logical-table-update-display-tables table)
Description:
If the automatic update of attached display tables is suspended for the logical table table, this call causes an update of all associated display tables. The function does not change the automatic update behavior.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-LOGICAL-TABLE-NEED-DISPLAY-TABLE-UPDATE-P  [function]

(sd-logical-table-need-display-table-update-p table)
Description:
Returns whether any modification of the logical table table has taken place while updates of corresponding display tables was suspended.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
t
if display tables need to be updated. See sd-logical-table-update-display-tables on how to update display tables, or sd-logical-table-resume-display-table-updates how to enable automatic display table updates including a possibly necessary update.
nil - nothing has changed in logical table => no update of display tables necessary.

Function Index Top of Page

SD-CHANGE-LOGICAL-TABLE-CONTENTS  [function]

(sd-change-logical-table-contents table
        :units            list-of-unit-keywords
        :contents         contents-list)
Description:
Changes the contents of the logical table. The items must be of the same type as requested from the logical table.

Parameters:
table {STRING} - identifier string for logical table
:units - same meaning as in sd-create-logical-table.
:contents - same meaning as in sd-create-logical-table.

Return Value:
t - success
nil - failure
 

How to specify a certain row in a logical table

All functions which need to specify a certain row in a logical table can do this in one of three ways:

  1. a row number:
    :row row-number {NUMBER from 0 to (# of Rows - 1)}
  2. value(s) for the key column(s):
    :keyValues list {LIST of VALUES}
  3. a property list containing pairs of column identifier keyword and value:
    :pList list {PROPERTIY LIST}

If more rows match the value(s) of :keyValues or :pList the first row found is returned or used to retrieve the cell value.

The values for :keyValues must be specified in the same order as the key columns were defined in sd-create-logical-table.

The value for :pList is a property list of any column - value pair combinations. The column keywords must fit to the columns of the logical table and the value must be of the type as the column is defined.

Values for columns passed in :keyValues or :pList which are measured in units are considered to be in internal units. That means values for columns of type :length are measured in :mm, of type :angle in :rad and of type :mass are measured in :g.

Function Index Top of Page

SD-INSERT-LOGICAL-TABLE-ROW  [function]

(sd-insert-logical-table-row table
        :position             position
        :row                  row-number
        :keyValues            list-of-values
        :pList                property-list
        :overwriteIfExists    boolean
        :units                list-of-unit-keywords
        :contents             contents-list)
Description:
Funtion to insert a new row or to replace an existing row in logical table table.

Parameters:
table {STRING} - identifier string for logical table
:position {KEYWORD [:bottom]}
indicates where the new row should be inserted.
The keyword can be one of the following:
  • :top
  • :bottom
  • :above-specific
  • :below-specific
The keywords :top and :bottom are self-explaining. :above/:below-specific means, that the new row will be inserted above/below the row which is specified through one of :row, :keyValues or :pList. If this specific row is not found, the new row will be inserted at the end (same as :bottom).
:row, :keyValues, :pList
see "How to specify a certain row in a logical table"
:overwriteIfExists {BOOLEAN}
boolean value to indicate, whether the row specified through one of :row, :keyValues or :pList shall be overwritten or not.
This parameter controls the behavior of this function as follows:
nil - the new row is inserted as specified in parameter :position.
t and the specific row exists:
the new row values will overwrite the old row values.
t and the specific row does not exist:
the new row will be inserted corresponding to the value of :position if this value is either :top or :bottom. But if the value of :position was set to :above/:below-specific this setting is ignored and the new row will be inserted at the end.
:units {LIST of KEYWORDs}
same meaning as in sd-create-logical-table.
:contents {LIST}
same meaning as in sd-create-logical-table except that here the contents of only one row can be passed (i.e. a single list of cell items).

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-REMOVE-LOGICAL-TABLE-ROW  [function]

(sd-remove-logical-table-row table
        :row              row-number
        :keyValues        list-of-values
        :pList            property-list)
Description:
Removes one particular row or all rows from logical table table.

Parameters:
table {STRING} - identifier string for logical table
:row {NUMBER or KEYWORD} - a specific row number or the keyword :all
:keyValues, :pList
see "How to specify a certain row in a logical table"

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-WRITE-LOGICAL-TABLE-CELL  [function]

(sd-write-logical-table-cell table
        :row              number
        :keyValues        list-of-values
        :pList            property-list
        :column           column-identifier
        :value            value)
Description:
Changes the contents of a single cell of the logical table. The new value must be of the defined column type and has to be passed in internal units.

Parameters:
table {STRING} - identifier string for logical table
:row, :keyValues, :pList
see "How to specify a certain row in a logical table"
:column {KEYWORD}
Keyword of column to identify cell where to write to.
:value {LISP OBJECT}
cell value. If :column values are measured in units, this value must be passed in internal units.

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-READ-LOGICAL-TABLE-CELL  [function]

(sd-read-logical-table-cell table
        :row              number
        :keyValues        list-of-values
        :pList            property-list
        :column           column-identifier
        :units            unit-type)
Description:
Retrieves the item of a certain cell which is specified through a column identifier keyword and through one of :row, :keyValues or :pList.

Parameters:
table {STRING} - identifier string for logical table
:row, :keyValues, :pList
see "How to specify a certain row in a logical table"
:column {KEYWORD}
column identifier keyword to identify the right column in the logical table where the cell should be read from.
:units {KEYWORD [:external]}
Possible values are:
  • :external
  • :internal
This keyword determines, whether a value which is measured in units is returned in internal or external units.

Return Value:
cell {LISP OBJECT} - contents of cell
nil - failure

Function Index Top of Page

SD-READ-LOGICAL-TABLE-ROW  [function]

(sd-read-logical-table-row table
        :row              row-number
        :keyValues        list-of-values
        :pList            property-list
        :units            unit-type)
Description:
Retrieves the items of a certain row and returns a property list of pairs of column identifier keywords and values.

Parameters:
table {STRING} - identifier string for logical table

For more information on the parameters see sd-read-logical-table-cell

Return Value:
row {PROPERTY LIST}
list of column-keyword and value pairs of all columns in logical table.
nil - failure

Function Index Top of Page

SD-READ-LOGICAL-TABLE-COLUMN  [function]

(sd-read-logical-table-column table
        :column           column-identifier
        :units            unit-type)
Description:
Retrieves the items of a certain column.

Parameters:
table {STRING} - identifier string for logical table
:column {KEYWORD} - keyword of column of which the values should be returned
:units {KEYWORD [:external]}
Possible values are:
  • :external
  • :internal
This keyword determines, whether a value which is measured in units is returned in internal or external units.

Return Value:
column-values {LIST} - list of all values of the specified column (as copy).
nil - failure

Function Index Top of Page

SD-INSERT-LOGICAL-TABLE-COLUMN  [function]

(sd-insert-logical-table-column table
        :column           column-identifier
        :columnName       column-name
        :type             column-type
        :initialValue     a-value
        :unit             a-unit-keyword)
Description:
Inserts a new column with the identifier column-identifier into the logical table table. If a column with the same identifier already exists, the insertion of this column fails.
The new column can be filled with an initial value passed through :initialValue. That means all existing rows of the logical table will have this value for this column.
A call to this function will not affect any attached display tables.

Parameters:
table {STRING} - identifier string for logical table
:column {KEYWORD} - keyword to identify new column
:columnName {STRING [column-identifier-keyword]}
a label string which will appear on top of the column in a corresponding display table. If this string is omitted, the column identifier keyword will appear as column label.
:type {KEYWORD}
type of new column. For more information see sd-create-logical-table.
:initialValue {LISP OBJECT}
value with which the new column will be filled initially. The type of the value must fit to the type of the column.
:unit {KEYWORD}
if the new column values are measured in units, this keyword indicated in which units the :initialValue is measured.

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-GET-LOGICAL-TABLE-NUMBER-OF-ROWS  [function]

(sd-get-logical-table-number-of-rows table)
Description:
Returns the current number of rows of the logical table table.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
number {NUMBER} - number (count) of rows in table
nil - failure

Function Index Top of Page

SD-GET-LOGICAL-TABLE-COLUMN-IDENTIFIERS  [function]

(sd-get-logical-table-column-identifiers table)
Description:
Returns a list of column identifier keywords of logical table table.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
column-identifiers {LIST} - list of column identifier keywords
NOTE:
The list which this function returns is the original list of the logical table and NOT A COPY. DON'T modify this list destructively (using nconc, rplaca ...)!!!
nil - failure

Function Index Top of Page

SD-GET-LOGICAL-TABLE-KEY-COLUMN-IDENTIFIERS  [function]

(sd-get-logical-table-key-column-identifiers table)
Description:
Returns a list of key column identifier keywords of logical table table.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
key-column-identifiers {LIST} - list of key column identifier keywords
nil - failure or no key columns specified

Function Index Top of Page

SD-GET-LOGICAL-TABLE-COLUMN-TYPE  [function]

(sd-get-logical-table-column-type table :column column-identifier)
Description:
Returns the type of the specified column.

Parameters:
table {STRING} - identifier string for logical table
:column {KEYWORD} - keyword to identify column

Return Value:
column-type {KEYWORD}
column type as it was passed as part of the columns list in sd-create-logical-table
nil - untyped column or failure

Function Index Top of Page

SD-GET-LOGICAL-TABLE-TYPES  [function]

(sd-get-logical-table-types table)
Description:
Returns a list of column type keywords of logical table table.

Parameters:
table {STRING} - identifier string for logical table

Return Value:
column-types {LIST} - column type list as it was passed to sd-create-logical-table
NOTE:
The list which this function returns is the original list of the logical table and NOT A COPY. DON'T modify this list destructively (using nconc, rplaca ...)!!!
nil - failure

Function Index Top of Page

SD-GET-LOGICAL-TABLE-COLUMN-NAME  [function]

(sd-get-logical-table-column-name table :column column-identifier)
Description:
Returns the name of the specified column.

Parameters:
table {STRING} - identifier string for logical table
:column {KEYWORD} - keyword to identify column

Return Value:
column-name {STRING}
column name as it was passed as part of the columns list in sd-create-logical-table
nil - untyped column or failure

Function Index Top of Page

SD-RENAME-LOGICAL-TABLE-COLUMN  [function]

(sd-rename-logical-table-column table 
    :oldColumn              old column-identifier 
    :oldColumnName          old Column Name 
    :newColumn              new column-identifier 
    :newColumnName          new Column Name)
Description:
Renames the column identifier from oldColumn to newColumn or the column name from oldColumnName to newColumnName depending on the arguments passed by the user.

Parameters:
table {STRING} - identifier string for logical table
:oldcolumn {KEYWORD} - keyword to identify old Column
:oldColumnName {STRING} - identifier string for old Column Name
:newColumn {KEYWORD} - keyword to identify old Column
:newColumnName {STRING} - identifier string for new Column Name

Return Value:
t - success
nil - failure

Function Index Top of Page

Display Table

SD-CREATE-DISPLAY-TABLE

(sd-create-display-table table-name
    :tableTitle             table-title
    :mapToggle              Toggle-Button-Widget-Name
    :logicalTable           table-identifier
    :columns                list-of-column-identifiers
    :applyColumns           list-of-column-identifiers
    :keyColumnsApplyToken   keyword
    :keyColumnsApplyUnits   keyword
    :displayWidth           width
    :displayHeight          height
    :columnSortUI           boolean
    :filterStatusLine       boolean
    :customTopForm          boolean
    :customBottomForm       boolean
    :bottomLine             buttons
    :customButtonLabel      label-string
    :customButtonAction     action
    :entryAlignment         list-of-keywords
    :formatFunctions        list-of-function-symbols
    :selectionMode          mode
    :selectionAction        action
    :applyAction            action
    :doubleClickAction      action
    :editCellCheckFunction  check-function
    :afterEditAction        action
    :afterApplyBehavior     behavior
    :helpAction             action
    :helpPageId             Help-Page-Identifier)
Description:
This function creates a display table. If a display table with the same table-name exists, the old table will be destroyed and overwritten by the new display table.
Use sd-show-display-table to show a display table on the screen and sd-hide-display-table to hide the table again.

Parameters:
table-name {STRING} - string to identify table
:tableTitle {STRING [table-name]}
String which is displayed between pin and close button.
:mapToggle {STRING}
If this toggle button widget is specified the button will reset if the user closes the display table either via the top right close button or via the close button in the bottom line (if available).
:logicalTable {STRING [""]}
string to identify corresponding logical table. The data which should be displayed is retrieved from this table.
:columns {LIST of KEYWORDs}
list of column kewords. The keywords must be identical to the keywords of the logical table. With this parameter it is possible to create more display tables with different views (restriction on certain columns) of the same logical table.
:applyColumns {LIST of KEYWORDs}
list of column keywords. Only relevant if :selectionMode is set to :single-row or :multiple-rows and :applyAction to :default or :default-tokens. In these cases the value(s) behind the applyColumn cells of the selected row(s) is (are) put into the input buffer. For more information see parameter :applyAction.
:keyColumnsApplyToken {KEYWORD}
A value for this parameter is only relevant, if :applyAction is set to :default-tokens.
If a keyword (e.g. :this_keyword) is specified for this parameter, the following additional two tokens will be put into the input buffer just behind the tokens generated by the apply action:
:this_keyword '(:columnX Value :columnY Value ...)
where the second token is the property list of the key columns, i.e. list of key column identifier, value, identifier, value ... If values of this list are measured in units, the parameter :keyColumnsApplyUnits decides, whether the values are passed in internal (:mm, :rad or :g) or external units.
:keyColumnsApplyUnits {KEYWORD [:external]}
decides, whether the values of the key column property list (see parameter :keyColumnsApplyToken above) which are measured in units are given in internal or external units.
Possible values are:
  • :internal - internal units
  • :external - external units
:displayWidth {KEYWORD, NUMBER or LIST [:automatic]}
Possible values are:
  • :automatic
    the function tries to resize the scrolled window to fit all rows and columns without creating scrollbars. The default size range is between 100 and 600 pixels.
  • Number - Pixel value
    the scrolled window will have exactly this width.
  • (minWidth maxWidth)
    the function tries to resize the scrolled window to fit all rows and columns without creating scrollbars in the range between minWidth and maxWidth.
:displayHeight {KEYWORD, NUMBER or LIST [:automatic]}
Possible values are:
  • :automatic
    the function tries to resize the scrolled window to fit all rows and columns without creating scrollbars. The default size range is between 80 and 500 pixels.
  • Number - Pixel value
    the scrolled window will have exactly this height.
  • (minHeight maxHeight)
    the function tries to resize the scrolled window to fit all rows and columns without creating scrollbars in the range between minHeight and maxHeight.
:columnSortUI {BOOLEAN}
creates an user interface above the table data area which allows the user to sort the table contents interactively by a typed column. The Reverse button allows sort in the reverse order.
:filterStatusLine {BOOLEAN [t]}
creates a non editable text widget below the display lists which contains the current active table filter(s).
Example contents: Name > "C" & 10 < Length < 100
:customTopForm {BOOLEAN}
creates an additional empty area above the table which can be filled with a grid area of any size which itself can contain any number of additional controls. For more information on how to create UICT controls see here. Use sd-get-display-table-custom-top-form to retrieve the name of the area to be used as parent of a grid area.
:customBottomForm {BOOLEAN}
creates an additional empty area below the table which can be filled with a grid area of any size which itself can contain any number of additional controls. For more information on how to create UICT controls see here. Use sd-get-display-table-custom-bottom-form to retrieve the name of the area to be used as parent of a grid area.
:bottomLine {KEYWORD [:apply-close-help]}
keyword which determines what buttons should be created in the bottom line.
Possible values are:
  • :apply-close-help
  • :apply-custom-close-help
  • :help
  • nil
:customButtonLabel {STRING [" "]}
if :bottomLine is set to :apply-custom-close-help an additional button between Apply and Close is created. This parameter sets the label string of this button.
:customButtonAction {LISP-form}
the LISP-form which should be evaluated when the user hits the custom button in the bottom line.
:entryAlignment {LIST of KEYWORDs}
determines whether the column entries are left or right aligned. For each column specified in :columns you can set either :left (default) or :right. If you don't specify a value for this parameter, all displayed columns will be left aligned.
:formatFunctions {LIST of SYMBOLS}
this parameters allows you to determine the display value of the real logical table value by invocation of a format function. The Integration Kit provides you with 6 predefined format functions:
  • sd-display-table-format-1-digit
  • sd-display-table-format-2-digits
  • ...
  • sd-display-table-format-6-digits
These functions can be used for any column of type :number, :length, :angle or :mass. These format functions convert the real value form the logical table to a display value with exactly N (1 - 6) digits after the decimal point. Missing digits will be filled up with zeros.

To create your own format function you have to define a function with the following specification:

  (defun my-own-format-function (logical-table-name
                                 real-value
                                 row-number
                                 column-identifier)
     ...
     ;; has to return a string!
  )
That means your format function has to accept exactly four parameters and has to return a string value. This string will appear in the display table. With automatic invocation of your format function, the function will be supplied with the necessary parameters.

Input parameters:

logical-table-name {STRING}
name of the logical table where the real value is taken from.
real-value {any type}
exact value retrieved from the logical table. Values in unit columns are measured in internal units.
row-number {NUMBER}
logical table row number where the real-value is taken from.
column-identifier {KEYWORD}
logical table column identifier keyword where the real-value is taken from.
Output value:
display-string {STRING}
value which will be displayed in the display table.
Example:
  (defun format-length-2-digits (ltab-name real-length row column)
    (declare (ignore ltab-name row column)) 
    ;; those parameters are not necessary in this format function
    (if (numberp real-length)
        (format nil "~,2F" (sd-sys-to-user-units :length real-length))
      "value of unexpected type"))
:selectionMode {KEYWORD [:single-row]}
determines the selection method of the display table.
The following keywords are possibile:
  • :single-cell
  • :single-row
  • :multiple-rows
:selectionAction {Function Symbol}
Symbol of a function which will be called as soon as one cell, one row or more rows were selected. The function has to be defined before you create the display table. The function has to accept exactly one parameter. With invocation of this function the name of the table will be passed as parameter to this function.
:applyAction {KEYWORD or quoted LISP-form [:default-tokens]}
the following values are possible:
  • nil
    no action occurs if the user hits the apply button or double clicks an item.
  • :default
    depending on :selectionMode the following item(s) is (are) put into the input buffer:
    • :single-cell set as :selectionMode
      the value of this cell
    • :single-row set as :selectionMode
      1. single column specified in :applyColumns:
        This item:
        Item
      2. multiple columns specified in :applyColumns:
        List of all :applyColumns items:
        (Item Item ...)
    • :multiple-rows set as :selectionMode
      1. single column specified in :applyColumns:
        List of item(s) of this :applyColumns:
        (Item) or (Item Item ...)
      2. multiple columns specified in :applyColumns:
        List of column item lists:
        ((ColA-Item) (ColB-Item) ...) or
        ((ColA-Item ColA-Item ...) (ColB-Item ColB-Item ...) ...)
  • :default-tokens
    depending on :selectionMode the following item(s) is (are) put into the input buffer:
    • :single-cell set as :selectionMode
      :columnIdentifier cellValue
    • :single-row set as :selectionMode
      :applyColumnIdentifierA Value :applyColumnIdentifierB Value ...
    • :multiple-rows set as :selectionMode
      :applyColumnIdentifierA (ValueX ValueY ...) ...
  • LISP-form
    the custom apply function can retrieve the selected item(s) using the function sd-get-display-table-selection.
:doubleClickAction {KEYWORD or function}
the following values are possible:
  • nil
    the :applyAction will be executed for the selected cell, row or rows
  • :edit-cell
    only valid if :selectionMode is set to :single-cell.
    Pops up a little edit box next to the cell with the current cell value as contents. Now the user is allowed to interactively edit that value. To terminate editing, hit the Return key (= "OK") in the edit field, or the Close button (= "Cancel") of the edit box. See :afterEditAction for more information on which action takes place after hitting the Return key.
    Entering values which don't fit to the type of the cell/column will be rejected automatically.
  • function {Function Symbol}
    Symbol of a function which will be called as soon as a double click occured on one cell, one or more rows. The function has to be defined before you create the display table. The function has to accept exactly one parameter. With invocation of this function the name of the table will be passed as parameter to this function.
:editCellCheckFunction {function}
the purpose of this function is to determine whether the current selected cell can be edited by the user or not. Therefore this option applys only for tables with :selectionMode set to :single-cell. If you omit this parameter, all cells in your table will be editable.
The function could be either a lambda expression or a symbol of a function which takes exactly three parameters and which returns :ok or :error. In detail:
Parameters:
table-name - name of the display table
row - row number of the selected cell in the logical table
column - column keyword of the selected cell
Return Value:
:ok - cell can be edited
:error - cell can not be edited (no error message)
(values :error "Error Message")
the cell can not be edited and the "Error Message" will be displayed to inform the user about this.
Example:
:editCellCheckFunction  #'(lambda (table-name row column)
                            (cond 
                              ((eq column :first)
                               (values :error "You can't edit cells in the first column."))
                              ((and (= row 4) (eq column :second))
                               :error)
                              (t  ;; in all other cases
                               :ok)))
:afterEditAction {KEYWORD or function}
this paramter applys only for tables with :selectionMode set to :single-cell.
The default action after editing a cell (hitting the Return key) is to simply hide the cell edit field and nothing else. If you want to handle the new cell value, you can set one of the following for this parameter:
:modify-ltab-value
the new cell value replaces the cell value in the logical table accordingly. This replacement causes an automatic update of all display tables belonging to this logical table.
function
this function will be called with exactly two parameters: table-name and new cell value. Here you can do your action based on the new entered cell value.
Example:
:afterEditAction #'(lambda (table-name new-value)
                     (format t "~%The new cell value is ~S" new-value))
:afterApplyBehavior {KEYWORD or quoted LISP-form [:force-close]}
controls the closing behavior of the table dialog shell.
This parameter may have one of these values:
  • nil
    nothing happens after the user has double clicked an item or clicked the Apply button.
  • :force-close
    the table dialog shell will disappear from the screen even if the Pin is set.
  • :close-if-not-pinned
    if the Pin is not set, the table dialog shell will disappear. If the Pin is set, the dialog shell will stay on the screen.
  • LISP-form
    this customer defined LISP function will be evaluated after an Apply occured.
:helpAction {quoted LISP-form}
LISP form which will be executed when the users hits the help button of this display table
:helpPageId {KEYWORD or STRING [:default]}
name of help page which will be searched in the "pesd" help context, if the user hits the help button of the table.
If you pass :default as value for this parameter a press on the help button will cause a lookup of the help page with the name "table-name_DS" where all possible "-" in table-name are replaced with "_".

Return Value:
t - if display table could be created successfully
nil - if creation failed

Example:
(defun example-table-selection-action (table)
  (format t "~%Row selected in table ~S." table))

(sd-create-display-table "EXAMPLE-TABLE"
   :logicalTable         "Example-Table"
   :tableTitle           "Example Table"
   :columns              '(:first :second :third :fifth :sixth)
   :columnSortUI         t
   :bottomLine           :apply-custom-close-help
   :customButtonLabel    "Show"
   :entryAlignment       '(:left :right :right :right :left)
   :formatFunctions      '(nil sd-display-table-format-3-digits
                               format-length-2-digits)
   ;; for definition of format-length-2-digits see :formatFunctions
   :applyColumns         '(:first :third)
   :applyAction          :default-tokens
   :afterApplyBehavior   :close-if-not-pinned
   :keyColumnsApplyToken :keyValues
   :selectionMode        :single-row
   :selectionAction      #'example-table-selection-action
   :helpAction           '(sd-display-url
                           (format nil "~A/help/osdm/Common/documentation/integration_kit/home.html"
                                   (sd-inq-install-dir))))

Function Index Top of Page

SD-DESTROY-DISPLAY-TABLE  [function]

(sd-destroy-display-table table)
Description:
Destroys a display table with the identifier string table

Parameters:
table {STRING} - the table name

Return Value:
t - if display table could be destroyed successfully
nil - if destroy failed

Function Index Top of Page

SD-DISPLAY-TABLE-P  [function]

(sd-display-table-p table)
Description:
Checks whether the identifier string table represents a display table or not.

Parameters:
table {STRING} - the table name

Return Value:
t - if a display table with the specified name exists
nil - otherwise

Function Index Top of Page

SD-GET-DISPLAY-TABLE-LOGICAL-TABLE  [function]

(sd-get-display-table-logical-table table)
Description:
Returns the name of the logical table where the display table table gets its data from.

Parameters:
table {STRING} - the table name

Return Value:
logical-table-name {STRING} - name of logical table if display table exists
NOTE:
This string is the original string which is kept in the display table data structure and NOT A COPY. DON'T modify this string destructively!!!
nil - otherwise

Function Index Top of Page

SD-GET-DISPLAY-TABLE-COLUMNS  [function]

(sd-get-display-table-columns table)
Description:
Returns the list of column identifiers as the display table was created with.

Parameters:
table {STRING} - the table name

Return Value:
columns {LIST of KEYWORDs} - the columns of the display table
NOTE:
This list is the original list which is kept in the display table data structure and NOT A COPY. DON'T modify this list destructively!!!
nil - otherwise

Function Index Top of Page

SD-GET-DISPLAY-TABLE-SELECTION  [function]

(sd-get-display-table-selection table :units unit type)
Description:
Retrieves the data of the last selection in display table table out of the corresponding logical table. The value for the parameter :units decides, whether values measured in units are returned in internal or external units.

Parameters:
table {STRING} - the table name
:units {KEYWORD [:external]}
possible values:
  • :external - external units
  • :internal - internal units

Return Value:
depending on :selectionMode the following list will be returned:

Function Index Top of Page

SD-SET-DISPLAY-TABLE-SELECTION  [function]

(sd-set-display-table-selection table
        :mode             mode
        :column           column-identifier-keyword
        :row              row-number     
        :keyValues        list-of-values
        :pList            property-list
        :callAction       call-action)
Description:
Sets the current selected cell or row(s) in display table table. In display tables with :selectionMode set to :single-cell or :single-row you can only replace the current selection. In :multiple-rows display tables you can add other rows to the currently selected ones or you can replace the whole selection.

Parameters:
table {STRING} - the table name
:mode {KEYWORD [:replace]}
possible values:
  • :replace - specified cell/row will replace any other currently selected cell/row(s)
  • :add - adds row to the currently selected row(s) (only valid for :multiple-rows tables)
:column {KEYWORD}
only valid for display tables with :selectionMode set to :single-cell. Use this parameter in combination with the following to determine the cell you want to select.
:row, :keyValues, :pList
Specification of a row in the corresponding logical table (!). For more information on the values for these parameters see "How to specify a certain row in a logical table"
:callAction {BOOLEAN [t]}
If a :selectionAction is specified for this display table and this parameter is set to t then the function passed for :selectionAction is called immediately after the row is selected.

Return Value:
t - success
nil - failure

Example:
(sd-set-display-table-selection "EXAMPLE-TABLE"
                                :pList '(:first "Alf"))

Function Index Top of Page

SD-RESET-DISPLAY-TABLE-SELECTION  [function]

(sd-reset-display-table-selection table
        :column           column-identifier-keyword
        :row              row-number     
        :keyValues        list-of-values
        :pList            property-list)
Description:
Resets the current selection of a specific cell, row or the whole table.

Parameters:
table {STRING} - the table name
:column {KEYWORD}
used in combination of the next parameter to determine the specific cell in display tables with :selectionMode set to :single-cell.
:row {NUMBER or SYMBOL [t]}
if you pass t for this parameter, all cells and rows of the display table will be deselected. In :multiple-rows display tables you can deselect specific rows by passing either the number of the row in the corresponding logical table (!) or by specifying one of the other two parameters.
:keyValues, :pList
Specification of a row in the corresponding logical table (!). For more information on the values for these parameters see "How to specify a certain row in a logical table".

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-SCROLL-DISPLAY-TABLE-SELECTION  [function]

(sd-scroll-display-table-selection table
        :column           column-identifier-keyword
        :row              row-number)
Description:
Scrolls to specific column or row, and make them visible in client area of the display table.

Parameters:
table {STRING} - the table name
:column {KEYWORD}
used in combination of the next parameter to determine the specific cell in display tables
:row {NUMBER}
Specification of a row in the corresponding logical table (!). For more information on the values for these parameters see "How to specify a certain row in a logical table"

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-EDIT-DISPLAY-TABLE-CELL  [function]

(sd-edit-display-table-cell table
        :selected         flag
        :column           column-identifier-keyword
        :row              row-number     
        :keyValues        list-of-values
        :pList            property-list)
Description:
This function can be used to initiate the interactive editing of a specific cell in a display table with :selectionMode set to :single-cell.
Note that the display table must be visible on the screen and in addition to that the cell must be visible in the display table too. If the cell is invisible due to an active filter, this function will fail.
The parameters :editCellCheckFunction and :afterEditAction of your call to sd-create-display-table as you created your display table apply to this call as well.

Parameters:
table {STRING} - the table name
:selected {BOOLEAN}
if this parameter is set to t, the currently selected cell will be edited. If no cell was selected before, an error message will occur. If you omit this parameter, you have to specify the cell to edit with the following parameters.
:column {KEYWORD}
used in combination of the next parameter to determine the specific cell in the display table.
:row, :keyValues, :pList
Specification of a row in the corresponding logical table (!). For more information on the values for these parameters see "How to specify a certain row in a logical table".

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-SORT-DISPLAY-TABLE  [function]

(sd-sort-display-table table
        :column           column-identifier
        :reverse          boolean)
Description:
Sorts the values displayed in the display table table or not. If nil is passed for :column the table is displayed unsorted, that means the order of the logical table is taken.
This call has no effect on the corresponding logical table. If the display table contains the sort UI (:columnSortUI is set to t) the sort button, the option menu and the reverse button are set accordingly. If the table displays the data unsorted, the sort button will be reset.

Parameters:
table {STRING} - the table name
:column {KEYWORD or BOOLEAN} - the column to sort by or nil
:reverse {BOOLEAN} - reverse order or not

Return Value:
t - if display table could be sorted successfully
nil - if sort failed

Function Index Top of Page

SD-RESET-DISPLAY-TABLE-SORT  [function]

(sd-reset-display-table-sort table)
Description:
Resets the display table sort to the order which is given through the corresponding logical table.

Parameters:
table {STRING} - the table name

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-FILTER-DISPLAY-TABLE  [function]

(sd-filter-display-table table
        :column           column-identifier-keyword
        :test1            test-keyword1
        :value1           value1
        :test2            test-keyword2  
        :value2           value2)
Description:
Filters the contents of display table table in regard to :test1 / :value1 and/or :test2 / :value2. The passed values must be of the same type as :column. Values measured in units must be passed in internal units, i.e. in mm for :length, in rad for :angle and in g for :mass.
To specify a range you have to pass :test1 / :value1 and :test2 / :value2.
To specify a semi bounded item list you can specify either the combination :test1 / :value1 or :test2 / :value2.

It is possible to do a hidden filtering on columns which are not part of the display table but part of the logical table. Here you can pass the column identifier of a logical table column and the contents of the display table will be filtered accordingly. This filter will not show up in the filter status line.

Parameters:
table {STRING} - the table name
:column {KEYWORD} - column identifier keyword of column which shall be filtered
:test1 {KEYWORD} - one of the following:
  • :less
  • :not-greater
  • :greater
  • :not-less
  • :equal
  • :not-equal
:value1 {STRING or LONG-FLOAT} - value for :test1
:test2 {KEYWORD} - see :test1
:value2 {STRING or LONG-FLOAT} - value for :test2

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-RESET-DISPLAY-TABLE-FILTER  [function]

(sd-reset-display-table-filter table
        :column           column-identifier-keyword)
Description:
Resets the filter for a specific column or for the whole table. Pass t to reset all active filters of table.

Parameters:
table {STRING} - the table name
:column {KEYWORD or BOOLEAN} - the column to reset or t for the whole table

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-ALLOW-DISPLAY-TABLE-USER-FILTER  [function]

(sd-allow-display-table-user-filter table
        :column           column-identifier-keyword
        :allow            flag)
Description:
Enables or disables access to the column filter user interface for a specific column or the complete table. Disabled columns display the column header button greyed out.
Note even if a column is disabled for a user to filter its contents you can still apply filters in a programmatic way using the function sd-filter-display-table.

Parameters:
table {STRING} - the table name
:column {KEYWORD or BOOLEAN}
the column keyword for a specific column or t for the whole table to enable or disable user access to the filter user interface
:allow {BOOLEAN [t]}
pass t to enable the specified column or whole table or nil to disable the column(s).

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-SET-DISPLAY-TABLE-TITLE  [function]

(sd-set-display-table-title table
        :title           title-string)
Description:
Sets the title of the display table table shown between pin and close buttons in the top line of the table.

Parameters:
table {STRING} - the table name
:title {STRING} - the new table title

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-SET-DISPLAY-TABLE-COLUMN-TITLE  [function]

(sd-set-display-table-column-title table
        :column          column
        :title           title-string)
Description:
Sets the title of the column specified with column in display table table.

Parameters:
table {STRING} - the table name
:column {KEYWORD} - the column identifier of a visible column
:title {STRING} - the new column title

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-SET-DISPLAY-TABLE-COLORS  [function]

(sd-set-display-table-colors table
        :columnSeparators      columnSeparators
        :columnSeparatorColor  columnSeparatorColor
        :rowColors             rowColors
        :rowColor1             rowColor1
        :rowColor2             rowColor2)
Description:
Enables column separator lines and/or alternating row colors and allows you to specify which colors should be used.

Parameters:
table {STRING} - the table name
:columnSeparators {BOOLEAN}
Flag to indicate whether column separator lines should be drawn or not
:columnSeparatorColor {STRING or t}
Color of separators if column separators are drawn. The color needs to be specified in "#RRGGBB" notation. If you set this parameter to T the default color will be used.
:rowColors {BOOLEAN}
Flag to indicate whether alternating rows should be drawn with different background colors or not
:rowColor1 {STRING or t}
If rowColors is set to T, all rows with odd row numbers (Rows 1, 3, 5, ...) will be drawn in this color. The color has to be specified in "#RRGGBB" notation. If you set this parameter to T the default color will be used.
:rowColor2 {STRING or t}
If rowColors is set to T, all rows with even row numbers (Rows 2, 4, 6, ...) will be drawn in this color. The color has to be specified in "#RRGGBB" notation. If you set this parameter to T the default color will be used.

Return Value:
t - success
nil - failure

Example:
Even rows in cyan with column separators in default color:
  (sd-set-display-table-colors "EXAMPLE-TABLE"
        :columnSeparators      t
        :columnSeparatorColor  t
        :rowColors             t
        :rowColor2             "#00FFFF")

Function Index Top of Page

SD-SET-DISPLAY-TABLE-HELP-ACTION  [function]

(sd-set-display-table-help-action table
        :action           help-form)
Description:
Redefines the action behind the help button of display table table.

Parameters:
table {STRING} - the table name
:action {quoted LISP-from} - action which will be executed when the user hits the help button

Return Value:
t - success
nil - failure

Example:
(sd-set-display-table-help-action "EXAMPLE-TABLE"
        :action '(sd-display-url
                   (format nil "~A/help/osdm/Common/documentation/integration_kit/home.html"
                           (sd-inq-install-dir))))

Function Index Top of Page

SD-SET-DISPLAY-TABLE-HELP-PAGE  [function]

(sd-set-display-table-help-page table
        :pageId           help-page-name)
Description:
Used to define the help page which should be called when the user hits the help button.

Parameters:
table {STRING} - the table name
:pageId {STRING or KEYWORD}
name of the help page in "pesd" context or :default. If you pass :default, then a click on the tables help button will popup a help page with the name "table-name_DS" where all "-" characters in table-name will be replaced by "_" characters.

Return Value:
t - success
nil - failure

Function Index Top of Page

SD-GET-DISPLAY-TABLE-CUSTOM-TOP-FORM  [function]

(sd-get-display-table-custom-top-form table)
Description:
Retrieves the name of the custom top area if the display table was created with one. See sd-create-display-table for more information.
Use this name as parent for a grid area to be created as child of this custom top area. See the UICT manual for more information on areas, grid areas and controls.

Parameters:
table {STRING} - the table name

Return Value:
name {STRING} - the custom top area name
nil - no custom top area for table available

Function Index Top of Page

SD-GET-DISPLAY-TABLE-CUSTOM-BOTTOM-FORM  [function]

(sd-get-display-table-custom-bottom-form table)
Description:
Retrieves the name of the custom bottom area if the display table was created with one. See sd-create-display-table for more information.
Use this name as parent for a grid area to be created as child of this custom bottom area. See the UICT manual for more information on areas, grid areas and controls.

Parameters:
table {STRING} - the table name

Return Value:
name {STRING} - the custom bottom area name
nil - no custom bottom area for table available

Function Index Top of Page

SD-SHOW-DISPLAY-TABLE  [function]

(sd-show-display-table name :position position)
Description:
This function is used to display display tables at certain positions on the screen.

Parameters:
name {STRING} - Name of the display table.
:position {quoted LIST}
Specification of a certain location on the screen. If you don't pass a value, the display table will appear in the upper left corner of the screen.
If the display table contains a pin button and this button is pressed (that means the display table is pinned), this parameter will be ignored and the display table will be shown at its last location.
The position is a list of the following form:
  '(reference-widget attachment x-offset y-offset)
reference-widget {STRING or KEYWORD}
Name of an existing widget where the display table should attach to or the keyword :application in order to identify the application's widget.
attachment {KEYWORD}
Specifies the way how the display table attach to the reference-widget. One of the following keywords is allowed:
  • :bottomleft, :bottomcenter or :bottomright
  • :lefttop, :leftcenter or :leftbottom
  • :righttop, :rightcenter or :rightbottom
  • :topleft, :topcenter or :topright
x-offset {FIXNUM [0]}
X offset value of the display table to the reference widget measured in screen pixels. To have a tight attachment use the default value 0. The X value increases from the left border of the screen to the right.
y-offset {FIXNUM [0]}
Y offset value of the display table to the reference widget measured in screen pixels. To have a tight attachment use the default value 0. The Y value increases from the top border of the screen to the bottom.

Return Value:
t - success
nil - failure

Example:
(sd-show-display-table "EXAMPLE-TABLE" :position '(nil :mouse_relative 10 10))

Function Index Top of Page

SD-HIDE-DISPLAY-TABLE  [function]

(sd-hide-display-table name :ignorePin ignorePin)
Description:
This function is used to hide display tables.

Parameters:
name {STRING} - Name of the display table.
:ignorePin {BOOLEAN}
If this value is set to t then the state of the pin button of the display table is not taken into account. That means even if the display table is pinned it will be removed from the screen.
If this value is set to nil, the display table will stay on the screen if it is pinned.

Return Value:
t - If the display table was removed from the screen successfully.
nil
Either if the display table does not exist, or it is pinned and the parameter ignorePin is set to nil, that means the display table will stay on the screen.

Example:
(sd-hide-display-table "EXAMPLE-TABLE")
[Integration Kit Contents] [Integration Kit What's New] [Integration Kit Function Index] [More Documentation] [PTC]
© 2023 Parametric Technology GmbH
(a subsidiary of PTC Inc.), All Rights Reserved