Table ComponentsTable pages contain three main sections: the header, body, and footer. The primary component of a table page is the table, which is a list of business object. Table pages also contain other elements, such as a heading, Actions menu, and pagination controls. For example, the graphic below shows a table page for a list of workspaces. Each row represents one business object (or relationship) and each column represents a particular attribute or other characteristic about each business object/relationship. Once you have created a table, referred to as a system table, you can derive tables from it, called user tables. You can only derive a user table from a system table in MQL. Once the derived user table is created, you can see it in ENOVIA Live Collaboration the same as your other tables. See the MQL Guide for details. If you add a column to a system table, it will be propagated to all tables derived from that table. In this example, the Actions menu shows as a series of commands on the page toolbar. Whether the Actions menu shows or the individual commands show depends on the value of the emxFramework.Toolbar.PivotCommand.Limit property in emxSystem.properties. If the number of commands is over that value, then the Actions menu shows; otherwise, the individual commands show on the toolbar. Of course, the developer may have added individual commands directly to the toolbar instead of the Actions menu. Table pages display most often in view mode. When users want to print or edit the page, they can click an icon in the table page toolbar to display the table in either printer-friendly mode or, if the table is configured for it and they have appropriate access, edit mode. You can customize table pages to be shown directly in edit or printer-friendly mode. See Invoking a Table Directly in Edit Mode or Printer Friendly Mode. Table BodyThe table body is an html FORM with the name "emxTableForm". This FORM contains the list of objects to display. The table can be configured to display check boxes or radio buttons. The check box or radio button control is named emxTableRowId. The checkbox/radio buttons are assigned with the values of ObjectId and RelId, if available. If relId is available, the values are separated by the pipe symbol ( | ): emxTableRowId = <objectId> or emxTableRowId = <relId>|<objectId> Table Pagination ControlsPaginating a table means the table shows a certain number of rows per page. If the number of rows in the table exceeds that number, the user must navigate to the next page to see the additional rows. You can configure the number of rows per page by passing the pagination parameter to emxTable.jsp. You can also use the pagination parameter to turn pagination off. If you do not pass the pagination parameter to emxTable.jsp, the system uses the pagination number specified for the emxFramework.PaginationRange property in emxSystem.properties. By default this property creates a new table page for every 10 rows. You can change this number using the Pagination option in the Preferences page. Users can turn on and off pagination using the Paginate and Don't Paginate buttons on the right side of the Pagination control panel. When pagination is turned off, all rows are listed on the first table page, and the user must scroll to see the rows. The system removes the navigation controls because there is only one page. When you configure a table page so that it is paginated and users are allowed to select one or more rows, the system remembers the user's selections across pages. For example, suppose a table page lists parts for a company and there are 18 parts, 10 on the first page and 8 on the second. The user can check a part on the first page and a part on the second page and then click on a toolbar item to process both parts, such as a Delete or report action. You can turn off the Remembering selections across pages globally using the emxNavigator.UITable.Pagination.RememberSelection property in the emxSystem.properties file. You can turn it on and off per table page using the rememberSelection parameter for emxTable.jsp. When you configure a toolbar item to process selected rows on a table page, you can show the user how many rows are selected using the macro ${TABLE_SELECTED_COUNT}. For example, in a toolbar item command object, you can use the macro in the Confirm Message setting to display a message such as "You are about to delete ${TABLE_SELECTED_COUNT} parts. Click OK to continue?" Object Specific or Non-object SpecificUsers typically access a table page from a feature listed in a submenu or from a tree category. How the user accesses the table affects some of the behavior for the page. For example, users may access a Routes table page by clicking My Enovia > Routes from the (My Desk) menu. Users can also access a page with the Routes table by selecting from a context object's tree. The table is usually the same as as the non-object specific page, but it might have a different heading or different actions. For example, when the Route category displays for a specific Part, that page lists only the Routes for that Part.Regardless of how users access a table page, clicking the name of an object (or relationship) in the table opens the tree and the Properties page for the object. For example, clicking a feature name from the Features table page brings up the tree for the feature. Trees are implemented as the Categories menu. Methods for Filtering a TableThere are several ways to configure a table page to let users filter table data. You can use the filter drop-down, the filter tool, or a custom filter.
You cannot filter a table based on a column that could contain multiple values in a cell. Mechanisms that Define a Table PageThe configurable emxTable.jsp accepts many parameters that define the content and behavior of the table page. You pass these parameters to the JSP through the href URL. The main components of the table page--the table and its columns, the query for getting the list of business objects for the table, and the menus--are defined as administrative objects. You pass the names of these objects to the emxTable.jsp through its URL parameters. Each unique set of table columns needs a table administrative object. For example, suppose certain ECR pages need to show the name, revision, and state for ECRs but other pages need to show the name, revision, owner, and description. You would need a table administrative object for each of these tables, such as ENCECRBasic and ENCECROwner. You define the rows in a table using inquiry or program administrative objects. By populating a table page with different inquiries/programs, you can get different data with the same table. For example, you can use an ECR's table on one page to show a list of ECRs owned by the user, and you can use the same table on another page to show a list of ECRs for a particular part. Printer Friendly ModeYou can show a table directly in printer friendly format, without first showing the view mode table, by passing the Style parameter into emxTable.jsp. The page display the same way as when users click the printer friendly button in the table toolbar. The printer friendly page uses the emxUIListPF.css style sheet by default. This page display is not configurable using the property in emxSystem.properties. See URL Parameters Accepted by emxTable.jsp and emxTableEdit.jsp. Column Settings for the Column JPOThe settings of the configurable table column contain the information describing how to display the column, where the column gets its value, and how to update it. Pass the columnMap (a key-value pair the system generates containing all the information about the column) to the JPO methods used with settings program, Update Program and Range Program. The following table describes the sample structure of the columnMap.
The following sample code shows how to read the field settings of the individual columns from the columnMap. // Getting the columnMap HashMap programMap = (HashMap) JPO.unpackArgs(args); HashMap columnMap = (HashMap) programMap.get("columnMap "); // Getting the first-level key-value pair from columnMap String field_expression = (String) columnMap.get("expression_businessobject"); String fieldName = (String) columnMap.get("name"); //Getting the Settings key-value pair from columnMap which is inside nested Hashmap HashMap settingsMap = (HashMap) columnMap.get("settings"); String updateProgram = (String) settingsMap.get("Update Program"); String columnType = (String) settingsMap.get("Column Type"); Table Pages are Linked to an ApplicationUsers typically access table pages by selecting a link from a submenu or tree category. The component that calls the table page must specify the configurable JSP for table pages, emxTable.jsp, in the href parameter. The href should include any parameters needed to configure the page, as described in URL Parameters Accepted by emxTable.jsp and emxTableEdit.jsp. The following example shows the URL used to create a table page for the My Tasks page: ${COMMON_DIR}/emxTable.jsp?program=emxInboxTask:getMyDeskTasks, emxInboxTask:getActiveTasks,emxInboxTask:getCompletedTasks,emxInboxTask:getTasksToBeAccepted &table=APPTaskSummary&programLabel=emxComponents.Filter.AllTasks,emxComponents.Filter.Active, emxComponents.Filter.Complete,emxComponents.Filter.TasksToBeAccepted&header= emxComponents.Common.Tasks&toolbar=APPTaskSummaryToolBar &sortColumnName=Name&sortDirection=ascending&selection=multiple&HelpMarker=emxhelptasks &selectedFilter=emxInboxTask:getActiveTasks |