You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 14
Next »
Summary Pages
Summary pages are used to display multiple records in a tabular form. A summary screen displays multiple records based on search criteria.
The user can change the look of the summary page by adding or removing fields from the filter or summary list, changing the order of the results, etc. This is done by clicking on the Preferences link just above the summary page results tab.
Creating the Summary Pages
To create a new summary page, we need to create a single XML file. Based on the business structure, the respective directories should be created. Based on CRM.COM naming conventions, all summary pages are stored in the ../pages/summary/<module_name> directory. An SQL or an EJB method at the beginning of the file determines the information that will be retrieved and will be able to be displayed on the summary page.
In this case, we create a directory named ../pages/summary/inventory and then we create a new XML file named warehouses.xml, which uses an SQL statement to retrieve the information.
<summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/summary.xsd">
<message>Physical locations where traceable and non-traceable items are stored.</message>
<title>Warehouses</title>
<sql>FROM WAREHOUSE
LEFT JOIN USERS CREATEDBY ON CREATEDBY.USERID = WAREHOUSE.WRHCREATEDBYUSERID
LEFT JOIN USERS UPDATEDBY ON UPDATEDBY.USERID = WAREHOUSE.WRHLASTUPDBYUSERID
LEFT JOIN OUUNITS CREATEDBYUNIT ON CREATEDBYUNIT.OUUID = WAREHOUSE.WRHCREATEDBYOUUID
LEFT JOIN OUUNITS UPDATEDBYUNIT ON UPDATEDBYUNIT.OUUID = WAREHOUSE.WRHUPDATEDBYOUUID
LEFT JOIN WAREHOUSETYPES ON WAREHOUSETYPES.WRHTYPEID = WAREHOUSE.WRHTYPEID
LEFT JOIN OUGROUPS ON OUGROUPS.OUGID = WAREHOUSE.OWNEROUGID
LEFT JOIN PRIVACYLEVELS ON WAREHOUSE.PRIVACYLEVELID = PRIVACYLEVELS.PRIVACYLEVELID
WHERE WAREHOUSE.WRHDELETED = 0
</sql>
<rowsperpage>20</rowsperpage>
<primaryfield>WAREHOUSE.WRHID</primaryfield>
<mainlinkfield>WAREHOUSE.WRHNAME</mainlinkfield>
<orderbyfields>WAREHOUSE.WRHNAME</orderbyfields>
<allownocriteria>true</allownocriteria>
<multiselect>true</multiselect>
<module>INVENTORY_MANAGEMENT</module>
<fieldlist>
<!-- external filters -->
<field>
<fieldname>WAREHOUSE.WRHID</fieldname>
<filtertextoption>equal</filtertextoption>
</field>
...
<!-- fields -->
<field>
<fieldname>WAREHOUSE.WRHNAME</fieldname>
<caption>Name</caption>
<summary>true</summary>
<filter>true</filter>
<filtercaseinsensitive>true</filtercaseinsensitive>
<link>page.do?act=itm&xml=inventory/warehouse&jndi=ejb/CRMUIWarehouse&fc=loadForm&pv0=((WAREHOUSE.WRHID))&pvc=1</link>
</field>
...
<!-- drilldowns -->
<field>
<fieldname>BALANCE</fieldname>
<fieldfunction>''</fieldfunction>
<caption>Balance</caption>
<summary>true</summary>
<available>true</available>
<fieldtype>label</fieldtype>
<label>Balance</label>
<link>drilldown:inventory/warehouse_balance;WRHID~((WAREHOUSETRANSACTIONS.WRHID))</link>
</field>
...
</fieldlist>
<actions>
<action>
<caption>New</caption>
<topmenu>true</topmenu>
<link>page.do?act=new&xml=inventory/warehouse&fc=createButton&pvc=0&jndi=ejb/CRMUIWarehouse</link>
</action>
...
</actions>
</summary>
A warehouse can have multiple balances, and these are displayed as a drilldown in our warehouses.xml file. We then create a new XML file named warehouse_balances.xml, which uses an EJB method to retrieve the information.
<summary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../xsd/summary.xsd">
<title>Warehouse Balances</title>
<classname>ejb/CRMUIWarehouse</classname>
<functionname>loadBalancesTab</functionname>
<rowsperpage>20</rowsperpage>
<primaryfield>ITEMID</primaryfield>
<mainlinkfield>ITEMID</mainlinkfield>
<autosearch>true</autosearch>
<hidefindbutton>true</hidefindbutton>
<module>INVENTORY_MANAGEMENT</module>
<fieldlist>
<!-- external filters -->
<field>
<fieldname>WRHID</fieldname>
<filtertextoption>equal</filtertextoption>
</field>
<!-- fields -->
<field>
<fieldname>ITEMNAME</fieldname>
<caption>Product Type</caption>
<summary>true</summary>
<available>true</available>
</field>
...
<!-- drilldowns -->
...
</fieldlist>
</summary>
For a full list of summary page attributes, go to Summary Pages Documentation
To continue implementing the view layer, go to Data Entry Pages