|
Added: ofbiz/branches/addbirt/applications/order/webapp/ordermgr/reports/OrdersByChannel.rptdesign
URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/order/webapp/ordermgr/reports/OrdersByChannel.rptdesign?rev=886743&view=auto ============================================================================== --- ofbiz/branches/addbirt/applications/order/webapp/ordermgr/reports/OrdersByChannel.rptdesign (added) +++ ofbiz/branches/addbirt/applications/order/webapp/ordermgr/reports/OrdersByChannel.rptdesign Thu Dec 3 11:12:50 2009 @@ -0,0 +1,704 @@ +<?xml version="1.0" encoding="UTF-8"?> +<report xmlns="http://www.eclipse.org/birt/2005/design" version="3.2.20" id="1"> + <property name="createdBy">Eclipse BIRT Designer Version 2.5.1.v20090903 Build <2.5.1.v20090917-1447></property> + <property name="units">in</property> + <list-property name="userProperties"> + <structure> + <property name="name">SaleOrder.OrderHeader.x</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.OrderHeader.y</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.Enum.NewTabularHierarchy1.x</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.Enum.NewTabularHierarchy1.y</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.OrderHeader.width</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.OrderHeader.height</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.Enum.NewTabularHierarchy1.width</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">SaleOrder.Enum.NewTabularHierarchy1.height</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.OrderHeader.x</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.OrderHeader.y</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.OrderHeader.width</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.OrderHeader.height</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Enumeration.x</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Enumeration.y</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Group1.NewTabularHierarchy1.x</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Group1.NewTabularHierarchy1.y</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Enumeration.width</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Enumeration.height</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Group1.NewTabularHierarchy1.width</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">DataCube.Group1.NewTabularHierarchy1.height</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">Channel.SalesOrderItemFact.x</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + <structure> + <property name="name">Channel.SalesOrderItemFact.y</property> + <property name="type">integer</property> + <property name="isVisible">false</property> + </structure> + </list-property> + <property name="SaleOrder.OrderHeader.x">314</property> + <property name="SaleOrder.OrderHeader.y">51</property> + <property name="SaleOrder.Enum.NewTabularHierarchy1.x">85</property> + <property name="SaleOrder.Enum.NewTabularHierarchy1.y">54</property> + <property name="SaleOrder.OrderHeader.width">150</property> + <property name="SaleOrder.OrderHeader.height">200</property> + <property name="SaleOrder.Enum.NewTabularHierarchy1.width">150</property> + <property name="SaleOrder.Enum.NewTabularHierarchy1.height">200</property> + <property name="DataCube.OrderHeader.x">16</property> + <property name="DataCube.OrderHeader.y">34</property> + <property name="DataCube.OrderHeader.width">178</property> + <property name="DataCube.OrderHeader.height">212</property> + <property name="DataCube.Enumeration.x">376</property> + <property name="DataCube.Enumeration.y">78</property> + <property name="DataCube.Group1.NewTabularHierarchy1.x">32</property> + <property name="DataCube.Group1.NewTabularHierarchy1.y">75</property> + <property name="DataCube.Enumeration.width">150</property> + <property name="DataCube.Enumeration.height">200</property> + <property name="DataCube.Group1.NewTabularHierarchy1.width">150</property> + <property name="DataCube.Group1.NewTabularHierarchy1.height">200</property> + <property name="Channel.SalesOrderItemFact.x">135</property> + <property name="Channel.SalesOrderItemFact.y">80</property> + <method name="initialize"><![CDATA[importPackage(Packages.javolution.util); +importPackage(Packages.org.ofbiz.base.util); +importPackage(Packages.org.ofbiz.entity.util); +module = "OrdersByChannel.rptdesign";]]></method> + <property name="iconFile">/templates/blank_report.gif</property> + <property name="bidiLayoutOrientation">ltr</property> + <data-sources> + <script-data-source name="OFBIZ" id="28"/> + </data-sources> + <data-sets> + <script-data-set name="SalesOrderItemFact" id="298"> + <list-property name="resultSetHints"> + <structure> + <property name="position">1</property> + <property name="name">orderId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">2</property> + <property name="name">orderItemSeqId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">3</property> + <property name="name">quantity</property> + <property name="dataType">integer</property> + </structure> + <structure> + <property name="position">4</property> + <property name="name">orderStatus</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">5</property> + <property name="name">saleChannel</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">6</property> + <property name="name">extNetAmount</property> + <property name="dataType">float</property> + </structure> + </list-property> + <list-property name="columnHints"> + <structure> + <property name="columnName">orderId</property> + </structure> + <structure> + <property name="columnName">orderItemSeqId</property> + </structure> + <structure> + <property name="columnName">quantity</property> + </structure> + <structure> + <property name="columnName">orderStatus</property> + </structure> + <structure> + <property name="columnName">saleChannel</property> + </structure> + <structure> + <property name="columnName">extNetAmount</property> + </structure> + </list-property> + <structure name="cachedMetaData"> + <list-property name="resultSet"> + <structure> + <property name="position">1</property> + <property name="name">orderId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">2</property> + <property name="name">orderItemSeqId</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">3</property> + <property name="name">quantity</property> + <property name="dataType">integer</property> + </structure> + <structure> + <property name="position">4</property> + <property name="name">orderStatus</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">5</property> + <property name="name">saleChannel</property> + <property name="dataType">string</property> + </structure> + <structure> + <property name="position">6</property> + <property name="name">extNetAmount</property> + <property name="dataType">float</property> + </structure> + </list-property> + </structure> + <property name="dataSource">OFBIZ</property> + <method name="open"><![CDATA[salesOrderItemFacts = null; +try { + if(params["saleChannel"] != "null"){ + salesOrderItemFacts = delegator.findByAnd("SalesOrderItemFact", UtilMisc.toMap("saleChannel", params["saleChannel"])); + }else{ + salesOrderItemFacts = delegator.findAll("SalesOrderItemFact"); + } +} catch (e) { + Debug.logError(e, module); +} +totalRow = 0; +countOfRow = 0; +if (salesOrderItemFacts) { + totalRow = salesOrderItemFacts.size(); +}]]></method> + <method name="fetch"><![CDATA[if (countOfRow == totalRow - 1) return false; + +salesOrderItemFact = salesOrderItemFacts.get(countOfRow); + +row["orderId"] = salesOrderItemFact.getString("orderId"); +row["orderItemSeqId"] = salesOrderItemFact.getString("orderItemSeqId"); +row["orderStatus"] = salesOrderItemFact.getString("orderStatus"); +row["quantity"] = salesOrderItemFact.getString("quantity"); +row["saleChannel"] = salesOrderItemFact.getString("saleChannel"); +row["extNetAmount"] = salesOrderItemFact.getString("extNetAmount"); + +countOfRow ++; +return true;]]></method> + </script-data-set> + </data-sets> + <cubes> + <tabular-cube name="Order" id="299"> + <property name="dimensions"> + <tabular-dimension name="order" id="300"> + <property name="defaultHierarchy">NewTabularHierarchy</property> + <property name="hierarchies"> + <tabular-hierarchy name="NewTabularHierarchy" id="301"> + <property name="levels"> + <tabular-level name="orderId" id="302"> + <property name="dataType">string</property> + <property name="columnName">orderId</property> + </tabular-level> + </property> + </tabular-hierarchy> + </property> + </tabular-dimension> + </property> + <property name="measureGroups"> + <tabular-measure-group name="Summary Field" id="303"> + <property name="measures"> + <tabular-measure name="quantity" id="305"> + <expression name="measureExpression">dataSetRow["quantity"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + </property> + </tabular-measure-group> + <tabular-measure-group name="Summary Field2" id="312"> + <property name="measures"> + <tabular-measure name="extNetAmount" id="313"> + <expression name="measureExpression">dataSetRow["extNetAmount"]</expression> + <property name="dataType">float</property> + </tabular-measure> + </property> + </tabular-measure-group> + <tabular-measure-group name="Summary Field1" id="314"> + <property name="measures"> + <tabular-measure name="orderItemSeqId" id="315"> + <property name="function">count</property> + <expression name="measureExpression">dataSetRow["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + </property> + </tabular-measure-group> + </property> + <property name="dataSet">SalesOrderItemFact</property> + </tabular-cube> + <tabular-cube name="Channel" id="465"> + <property name="dimensions"> + <tabular-dimension name="Group" id="466"> + <property name="defaultHierarchy">NewTabularHierarchy1</property> + <property name="hierarchies"> + <tabular-hierarchy name="NewTabularHierarchy1" id="467"> + <property name="levels"> + <tabular-level name="saleChannel" id="468"> + <property name="dataType">string</property> + <property name="columnName">saleChannel</property> + </tabular-level> + </property> + </tabular-hierarchy> + </property> + </tabular-dimension> + </property> + <property name="measureGroups"> + <tabular-measure-group name="Summary Field3" id="469"> + <property name="measures"> + <tabular-measure name="orderId" id="470"> + <property name="function">count</property> + <expression name="measureExpression">dataSetRow["orderId"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + <tabular-measure name="quantity1" id="471"> + <expression name="measureExpression">dataSetRow["quantity"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + <tabular-measure name="orderItemSeqId1" id="472"> + <property name="function">count</property> + <expression name="measureExpression">dataSetRow["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + <tabular-measure name="extNetAmount1" id="495"> + <expression name="measureExpression">dataSetRow["extNetAmount"]</expression> + <property name="dataType">float</property> + </tabular-measure> + </property> + </tabular-measure-group> + </property> + <property name="dataSet">SalesOrderItemFact</property> + </tabular-cube> + <tabular-cube name="OrderAndChannel" id="621"> + <property name="dimensions"> + <tabular-dimension name="orderChannel" id="624"> + <property name="isTimeType">false</property> + <property name="defaultHierarchy">NewTabularHierarchy2</property> + <property name="hierarchies"> + <tabular-hierarchy name="NewTabularHierarchy2" id="625"> + <property name="levels"> + <tabular-level name="saleChannel" id="628"> + <property name="dataType">string</property> + <property name="columnName">saleChannel</property> + </tabular-level> + <tabular-level name="orderId" id="629"> + <property name="dataType">string</property> + <property name="columnName">orderId</property> + </tabular-level> + </property> + </tabular-hierarchy> + </property> + </tabular-dimension> + </property> + <property name="measureGroups"> + <tabular-measure-group name="Summary Field4" id="630"> + <property name="measures"> + <tabular-measure name="orderItemSeqId2" id="631"> + <property name="function">count</property> + <expression name="measureExpression">dataSetRow["orderItemSeqId"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + <tabular-measure name="quantity2" id="632"> + <expression name="measureExpression">dataSetRow["quantity"]</expression> + <property name="dataType">integer</property> + </tabular-measure> + <tabular-measure name="extNetAmount2" id="633"> + <expression name="measureExpression">dataSetRow["extNetAmount"]</expression> + <property name="dataType">float</property> + </tabular-measure> + </property> + </tabular-measure-group> + </property> + <property name="dataSet">SalesOrderItemFact</property> + </tabular-cube> + </cubes> + <styles> + <style name="report" id="4"> + <property name="fontFamily">sans-serif</property> + <property name="fontSize">10pt</property> + </style> + <style name="crosstab-cell" id="5"> + <property name="borderBottomColor">#CCCCCC</property> + <property name="borderBottomStyle">solid</property> + <property name="borderBottomWidth">1pt</property> + <property name="borderLeftColor">#CCCCCC</property> + <property name="borderLeftStyle">solid</property> + <property name="borderLeftWidth">1pt</property> + <property name="borderRightColor">#CCCCCC</property> + <property name="borderRightStyle">solid</property> + <property name="borderRightWidth">1pt</property> + <property name="borderTopColor">#CCCCCC</property> + <property name="borderTopStyle">solid</property> + <property name="borderTopWidth">1pt</property> + </style> + <style name="crosstab" id="6"> + <property name="borderBottomColor">#CCCCCC</property> + <property name="borderBottomStyle">solid</property> + <property name="borderBottomWidth">1pt</property> + <property name="borderLeftColor">#CCCCCC</property> + <property name="borderLeftStyle">solid</property> + <property name="borderLeftWidth">1pt</property> + <property name="borderRightColor">#CCCCCC</property> + <property name="borderRightStyle">solid</property> + <property name="borderRightWidth">1pt</property> + <property name="borderTopColor">#CCCCCC</property> + <property name="borderTopStyle">solid</property> + <property name="borderTopWidth">1pt</property> + </style> + </styles> + <page-setup> + <simple-master-page name="Simple MasterPage" id="2"> + <page-footer> + <text id="3"> + <property name="contentType">html</property> + <text-property name="content"><![CDATA[<value-of>new Date()</value-of>]]></text-property> + </text> + </page-footer> + </simple-master-page> + </page-setup> + <body> + <text id="297"> + <property name="fontFamily">sans-serif</property> + <property name="fontSize">larger</property> + <property name="fontWeight">bolder</property> + <property name="textAlign">center</property> + <property name="contentType">auto</property> + <text-property name="content"><![CDATA[Orders By Sale Channel]]></text-property> + </text> + <text id="577"/> + <extended-item extensionName="Crosstab" extensionVersion="2.5.0" id="634"> + <property name="measures"> + <extended-item extensionName="MeasureView" id="644"> + <property name="measure">orderItemSeqId2</property> + <property name="detail"> + <extended-item extensionName="AggregationCell" id="645"> + <property name="aggregationOnRow">orderChannel/orderId</property> + <property name="content"> + <data id="646"> + <property name="textAlign">center</property> + <property name="resultSetColumn">orderItemSeqId2_orderChannel/orderId</property> + </data> + </property> + </extended-item> + </property> + <property name="aggregations"> + <extended-item extensionName="AggregationCell" id="660"> + <property name="content"> + <data id="661"> + <property name="backgroundColor">gray</property> + <property name="textAlign">center</property> + <property name="resultSetColumn">orderItemSeqId2</property> + </data> + </property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="647"> + <property name="content"> + <label id="570"> + <property name="backgroundColor">gray</property> + <property name="fontWeight">bolder</property> + <property name="textAlign">center</property> + <text-property name="text">Items</text-property> + </label> + </property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="MeasureView" id="649"> + <property name="measure">quantity2</property> + <property name="detail"> + <extended-item extensionName="AggregationCell" id="650"> + <property name="aggregationOnRow">orderChannel/orderId</property> + <property name="content"> + <data id="651"> + <property name="textAlign">center</property> + <property name="resultSetColumn">quantity2_orderChannel/orderId</property> + </data> + </property> + </extended-item> + </property> + <property name="aggregations"> + <extended-item extensionName="AggregationCell" id="662"> + <property name="content"> + <data id="663"> + <property name="backgroundColor">gray</property> + <property name="textAlign">center</property> + <property name="resultSetColumn">quantity2</property> + </data> + </property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="652"> + <property name="content"> + <label id="565"> + <property name="backgroundColor">gray</property> + <property name="fontWeight">bolder</property> + <property name="textAlign">center</property> + <text-property name="text">Quantity</text-property> + </label> + </property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="MeasureView" id="654"> + <property name="measure">extNetAmount2</property> + <property name="detail"> + <extended-item extensionName="AggregationCell" id="655"> + <property name="aggregationOnRow">orderChannel/orderId</property> + <property name="content"> + <data id="656"> + <property name="textAlign">center</property> + <property name="resultSetColumn">extNetAmount2_orderChannel/orderId</property> + </data> + </property> + </extended-item> + </property> + <property name="aggregations"> + <extended-item extensionName="AggregationCell" id="664"> + <property name="content"> + <data id="665"> + <property name="backgroundColor">gray</property> + <property name="textAlign">center</property> + <property name="resultSetColumn">extNetAmount2</property> + </data> + </property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="657"> + <property name="content"> + <label id="575"> + <property name="backgroundColor">gray</property> + <property name="fontWeight">bolder</property> + <property name="textAlign">center</property> + <text-property name="text">Amount</text-property> + </label> + </property> + </extended-item> + </property> + </extended-item> + </property> + <property name="rows"> + <extended-item extensionName="CrosstabView" id="636"> + <property name="grandTotal"> + <extended-item extensionName="CrosstabCell" id="659"> + <property name="content"> + <label id="620"> + <property name="fontWeight">bolder</property> + <property name="textAlign">right</property> + <text-property name="text">Grand Total</text-property> + </label> + </property> + </extended-item> + </property> + <property name="views"> + <extended-item extensionName="DimensionView" id="637"> + <property name="dimension">orderChannel</property> + <property name="levels"> + <extended-item extensionName="LevelView" name="NewLevel View1" id="638"> + <property name="level">orderChannel/saleChannel</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="639"> + <property name="content"> + <data name="saleChannel1" id="640"> + <property name="textAlign">center</property> + <property name="resultSetColumn">saleChannel</property> + </data> + </property> + </extended-item> + </property> + </extended-item> + <extended-item extensionName="LevelView" name="NewLevel View2" id="641"> + <property name="level">orderChannel/orderId</property> + <property name="member"> + <extended-item extensionName="CrosstabCell" id="642"> + <property name="content"> + <data name="orderId" id="643"> + <property name="textAlign">center</property> + <property name="resultSetColumn">orderId</property> + </data> + </property> + </extended-item> + </property> + </extended-item> + </property> + </extended-item> + </property> + <property name="grandTotalLocation">after</property> + </extended-item> + </property> + <property name="header"> + <extended-item extensionName="CrosstabCell" id="635"> + <property name="content"> + <grid id="668"> + <column id="669"/> + <column id="670"/> + <row id="671"> + <cell id="672"> + <label id="674"> + <property name="backgroundColor">gray</property> + <property name="fontWeight">bolder</property> + <property name="textAlign">center</property> + <text-property name="text">Channel</text-property> + </label> + </cell> + <cell id="673"> + <label id="576"> + <property name="backgroundColor">gray</property> + <property name="fontWeight">bolder</property> + <property name="textAlign">center</property> + <text-property name="text">OrderId</text-property> + </label> + </cell> + </row> + </grid> + </property> + </extended-item> + </property> + <property name="cube">OrderAndChannel</property> + <list-property name="boundDataColumns"> + <structure> + <property name="name">saleChannel</property> + <expression name="expression">dimension["orderChannel"]["saleChannel"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">orderId</property> + <text-property name="displayName">orderId</text-property> + <expression name="expression" type="javascript">dimension["orderChannel"]["orderId"]</expression> + <property name="dataType">string</property> + </structure> + <structure> + <property name="name">orderItemSeqId2_orderChannel/orderId</property> + <expression name="expression">measure["orderItemSeqId2"]</expression> + <property name="dataType">integer</property> + <simple-property-list name="aggregateOn"> + <value>orderChannel/orderId</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">quantity2_orderChannel/orderId</property> + <expression name="expression">measure["quantity2"]</expression> + <property name="dataType">integer</property> + <simple-property-list name="aggregateOn"> + <value>orderChannel/orderId</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">extNetAmount2_orderChannel/orderId</property> + <expression name="expression">measure["extNetAmount2"]</expression> + <property name="dataType">float</property> + <simple-property-list name="aggregateOn"> + <value>orderChannel/orderId</value> + </simple-property-list> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">orderItemSeqId2</property> + <expression name="expression">measure["orderItemSeqId2"]</expression> + <property name="dataType">integer</property> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">quantity2</property> + <expression name="expression">measure["quantity2"]</expression> + <property name="dataType">integer</property> + <property name="aggregateFunction">SUM</property> + </structure> + <structure> + <property name="name">extNetAmount2</property> + <expression name="expression">measure["extNetAmount2"]</expression> + <property name="dataType">float</property> + <property name="aggregateFunction">SUM</property> + </structure> + </list-property> + </extended-item> + </body> +</report> Modified: ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportForms.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportForms.xml?rev=886743&r1=886742&r2=886743&view=diff ============================================================================== --- ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportForms.xml (original) +++ ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportForms.xml Thu Dec 3 11:12:50 2009 @@ -231,4 +231,24 @@ <field name="thruDate" title="${uiLabelMap.OrderReportThruDate}"><date-time type="timestamp"/></field> <field name="submitButton" title="${uiLabelMap.CommonRun}" widget-style="smallSubmit"><submit button-type="button"/></field> </form> + <form name="OrderByReferrer" type="single" target="OrderByReferrer.pdf" target-window="_BLANK"> + <!--field name="referrerUrl"><text-find default-option="contains"/></field--> + <field name="referrerUrl" title="${uiLabelMap.CommonEmptyHeader}"><display description="All Referrer"></display></field> + <field name="submit" title="${uiLabelMap.CommonRun}"><submit button-type="button"/></field> + </form> + <form name="SaleOrdersByChannel" type="single" target="OrdersByChannel.pdf" target-window="_BLANK"> + <field name="saleChannel"> + <drop-down allow-empty="false"> + <option key="" description="- ${uiLabelMap.CommonSelectAny} -"/> + <entity-options description="${description}" entity-name="Enumeration" key-field-name="description"> + <entity-constraint name="enumTypeId" operator="equals" value="ORDER_SALES_CHANNEL"/> + </entity-options> + </drop-down> + </field> + <field name="submit" title="${uiLabelMap.CommonRun}"><submit button-type="button"/></field> + </form> + <form name="SaleOrderDiscountCode" type="single" target="OrderDiscountCode.pdf" target-window="_BLANK"> + <field name="discountCodeUrl" title="${uiLabelMap.CommonEmptyHeader}"><display description="All order items with discount code"></display></field> + <field name="submit" title="${uiLabelMap.CommonRun}"><submit button-type="button"/></field> + </form> </forms> \ No newline at end of file Modified: ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportScreens.xml?rev=886743&r1=886742&r2=886743&view=diff ============================================================================== --- ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportScreens.xml (original) +++ ofbiz/branches/addbirt/applications/order/widget/ordermgr/ReportScreens.xml Thu Dec 3 11:12:50 2009 @@ -24,6 +24,8 @@ <screen name="OrderPurchaseReportOptions"> <section> <actions> + <set field="titleProperty" value="OrderReports"/> + <set field="headerItem" value="reports"/> <entity-one value-field="portalPage" entity-name="PortalPage"> <field-map field-name="portalPageId" value="OrderReportPage"/> </entity-one> @@ -309,4 +311,34 @@ </widgets> </section> </screen> + <!-- Sale Order By Referrer --> + <screen name="SaleOrdersByReferrerReport"> + <section> + <widgets> + <screenlet title="Sale Orders by Referrer Report"> + <include-form name="OrderByReferrer" location="component://order/widget/ordermgr/ReportForms.xml"/> + </screenlet> + </widgets> + </section> + </screen> + <!-- Sale Order By Channel --> + <screen name="SaleOrdersByChannelReport"> + <section> + <widgets> + <screenlet title="Sale Orders By Channel Report"> + <include-form name="SaleOrdersByChannel" location="component://order/widget/ordermgr/ReportForms.xml"/> + </screenlet> + </widgets> + </section> + </screen> + <!-- Sale Order with Discount Code --> + <screen name="SaleOrderDiscountCodeReport"> + <section> + <widgets> + <screenlet title="Sale Orders Discount Code Report"> + <include-form name="SaleOrderDiscountCode" location="component://order/widget/ordermgr/ReportForms.xml"/> + </screenlet> + </widgets> + </section> + </screen> </screens> Modified: ofbiz/branches/addbirt/applications/product/entitydef/entitygroup_olap.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/product/entitydef/entitygroup_olap.xml?rev=886743&r1=886742&r2=886743&view=diff ============================================================================== --- ofbiz/branches/addbirt/applications/product/entitydef/entitygroup_olap.xml (original) +++ ofbiz/branches/addbirt/applications/product/entitydef/entitygroup_olap.xml Thu Dec 3 11:12:50 2009 @@ -25,4 +25,6 @@ <!-- Dimensions --> <!-- ========================================================= --> <entity-group group="org.ofbiz.olap" entity="ProductDimension"/> + <entity-group group="org.ofbiz.olap" entity="InventoryItemFact"/> + <entity-group group="org.ofbiz.olap" entity="InventoryItemSchema"/> </entitygroup> Modified: ofbiz/branches/addbirt/applications/product/entitydef/entitymodel_olap.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/product/entitydef/entitymodel_olap.xml?rev=886743&r1=886742&r2=886743&view=diff ============================================================================== --- ofbiz/branches/addbirt/applications/product/entitydef/entitymodel_olap.xml (original) +++ ofbiz/branches/addbirt/applications/product/entitydef/entitymodel_olap.xml Thu Dec 3 11:12:50 2009 @@ -46,4 +46,93 @@ <field name="internalName" type="description"></field> <prim-key field="dimensionId"/> </entity> + + <!-- ========================================================= --> + <!-- Inventory Item Facts and Star schema --> + <!-- ========================================================= --> + <entity entity-name="InventoryItemFact" package-name="org.ofbiz.bi.fact.product" title="Inventory Item Fact"> + <description>A transaction fact entity with inventory item.</description> + <field name="inventoryItemId" type="id-ne"></field> + <field name="facilityId" type="id-ne"></field> + <field name="productDimId" type="id-ne"></field> + <field name="origCurrencyDimId" type="id-ne"></field> + <field name="inventoryDateDimId" type="id-ne"></field> + + <field name="quantityOnHandTotal" type="fixed-point"></field> + <field name="availableToPromiseTotal" type="fixed-point"></field> + <field name="unitCost" type="fixed-point"></field> + <field name="soldoutAmount" type="fixed-point"></field> + <prim-key field="inventoryItemId"/> + <relation type="one" fk-name="IIF_INVPRODUCT" rel-entity-name="ProductDimension"> + <key-map field-name="productDimId" rel-field-name="dimensionId"/> + </relation> + <relation type="one" fk-name="IIF_INVCURRENCY" rel-entity-name="CurrencyDimension"> + <key-map field-name="origCurrencyDimId" rel-field-name="dimensionId"/> + </relation> + <relation type="one" fk-name="IIF_INVDATE" rel-entity-name="DateDimension"> + <key-map field-name="inventoryDateDimId" rel-field-name="dimensionId"/> + </relation> + </entity> + + <view-entity entity-name="InventoryItemSchema" package-name="org.ofbiz.bi.starschema.product" title="Inventory Item Schema"> + <description>"Inventory Item Schema.</description> + <member-entity entity-alias="IIF" entity-name="InventoryItemFact"/> + <!--member-entity entity-alias="SIIF" entity-name="SalesOrderItemFact"/--> + <member-entity entity-alias="PD" entity-name="ProductDimension"/> + <member-entity entity-alias="IDD" entity-name="DateDimension"/> + <member-entity entity-alias="CD" entity-name="CurrencyDimension"/> + + <alias-all entity-alias="IIF" function="sum"> + <exclude field="inventoryItemId"/> + <exclude field="orderId"/> + <exclude field="facilityId"/> + <exclude field="inventoryDateDimId"/> + <exclude field="productDimId"/> + <exclude field="origCurrencyDimId"/> + </alias-all> + <!--alias-all entity-alias="SIIF" function="sum"> + <exclude field="orderItemSeqId"/> + <exclude field="orderDateDimId"/> + <exclude field="productDimId"/> + <exclude field="billToCustomerDimId"/> + <exclude field="origCurrencyDimId"/> + <exclude field="orderId"/> + <exclude field="orderItemSeqId"/> + <exclude field="orderStatus"/> + <exclude field="saleChanel"/> + </alias-all--> + <alias-all entity-alias="PD" prefix="product" group-by="true"> + <exclude field="dimensionId"/> + </alias-all> + <alias-all entity-alias="IDD" prefix="inventoryDate" group-by="true"> + <exclude field="dimensionId"/> + </alias-all> + <alias-all entity-alias="CD" prefix="currency" group-by="true"> + <exclude field="dimensionId"/> + </alias-all> + <alias entity-alias="IIF" name="inventoryItemId" group-by="true"> + <description>Inventory Item Id</description> + </alias> + <alias entity-alias="IIF" name="facilityId" group-by="true"> + <description>Facility Id</description> + </alias> + <alias entity-alias="PD" name="productId" group-by="true"> + <description>Product id</description> + </alias> + + + <view-link entity-alias="IIF" rel-entity-alias="PD" rel-optional="true"> + <key-map field-name="productDimId" rel-field-name="dimensionId"/> + </view-link> + <!--view-link entity-alias="PD" rel-entity-alias="SIIF" rel-optional="true"> + <key-map field-name="dimensionId" rel-field-name="productDimId"/> + </view-link--> + <view-link entity-alias="IIF" rel-entity-alias="IDD"> + <key-map field-name="inventoryDateDimId" rel-field-name="dimensionId"/> + </view-link> + <view-link entity-alias="IIF" rel-entity-alias="CD"> + <key-map field-name="origCurrencyDimId" rel-field-name="dimensionId"/> + </view-link> + + </view-entity> </entitymodel> Added: ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml?rev=886743&view=auto ============================================================================== --- ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml (added) +++ ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml Thu Dec 3 11:12:50 2009 @@ -0,0 +1,96 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +<simple-methods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/simple-methods.xsd"> + <simple-method method-name="loadInventoryFact" short-description=""> + <entity-one entity-name="InventoryItem" value-field="inventory"> + <field-map field-name="inventoryItemId" from-field="parameters.inventoryItemId"/> + </entity-one> + <entity-one entity-name="InventoryItemFact" value-field="fact"> + <field-map field-name="inventoryItemId" from-field="parameters.inventoryItemId"/> + </entity-one> + <if-empty field="fact"> + <make-value value-field="fact" entity-name="InventoryItemFact"/> + <set field="fact.inventoryItemId" from-field="inventory.inventoryItemId"/> + <!-- conversion of the inventory date --> + <if-not-empty field="inventory.createdStamp"> + <clear-field field="inMap"/> + <set field="inMap.dimensionEntityName" value="DateDimension"/> + <set field="inMap.naturalKeyFields.dateValue" from-field="inventory.createdStamp" type="Date"/> + <call-service service-name="getDimensionIdFromNaturalKey" in-map-name="inMap"> + <result-to-field result-name="dimensionId" field="fact.inventoryDateDimId"/> + </call-service> + <if-empty field="fact.inventoryDateDimId"> + <set field="fact.inventoryDateDimId" value="_NF_"/> + </if-empty> + <else> + <set field="fact.inventoryDateDimId" value="_NA_"/> + </else> + </if-not-empty> + <!-- conversion of the product id --> + <if-not-empty field="inventory.productId"> + <clear-field field="inMap"/> + <set field="inMap.dimensionEntityName" value="ProductDimension"/> + <set field="inMap.naturalKeyFields.productId" from-field="inventory.productId"/> + <call-service service-name="getDimensionIdFromNaturalKey" in-map-name="inMap"> + <result-to-field result-name="dimensionId" field="fact.productDimId"/> + </call-service> + <if-empty field="fact.productDimId"> + <set field="fact.productDimId" value="_NF_"/> + </if-empty> + <else> + <set field="fact.productDimId" value="_NA_"/> + </else> + </if-not-empty> + <!-- conversion of the order currency --> + <if-not-empty field="inventory.currencyUomId"> + <clear-field field="inMap"/> + <set field="inMap.dimensionEntityName" value="CurrencyDimension"/> + <set field="inMap.naturalKeyFields.currencyId" from-field="inventory.currencyUomId"/> + <call-service service-name="getDimensionIdFromNaturalKey" in-map-name="inMap"> + <result-to-field result-name="dimensionId" field="fact.origCurrencyDimId"/> + </call-service> + <if-empty field="fact.origCurrencyDimId"> + <set field="fact.origCurrencyDimId" value="_NF_"/> + </if-empty> + <else> + <set field="fact.origCurrencyDimId" value="_NA_"/> + </else> + </if-not-empty> + <log level="always" message="=====fact=============${fact}============"></log> + <create-value value-field="fact"/> + </if-empty> + + <set field="fact.facilityId" from-field="inventory.facilityId"/> + <set field="fact.inventoryItemId" from-field="inventory.inventoryItemId"/> + <set field="fact.quantityOnHandTotal" from-field="inventory.quantityOnHandTotal"/> + <set field="fact.availableToPromiseTotal" from-field="inventory.availableToPromiseTotal"/> + <set field="fact.unitCost" from-field="inventory.unitCost"/> + + <!-- calculate sold out amount --> + <calculate field="fact.soldoutAmount"> + <calcop operator="get" field="inventory.quantityOnHandTotal"> + <calcop operator="negative" field="inventory.availableToPromiseTotal"/> + </calcop> + </calculate> + <store-value value-field="fact"/> + </simple-method> +</simple-methods> Propchange: ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/branches/addbirt/applications/product/script/org/ofbiz/product/olap/FactServices.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: ofbiz/branches/addbirt/applications/product/servicedef/services_olap.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/product/servicedef/services_olap.xml?rev=886743&r1=886742&r2=886743&view=diff ============================================================================== --- ofbiz/branches/addbirt/applications/product/servicedef/services_olap.xml (original) +++ ofbiz/branches/addbirt/applications/product/servicedef/services_olap.xml Thu Dec 3 11:12:50 2009 @@ -51,4 +51,9 @@ <description>Calls the loadProductInProductDimension service for all the products.</description> <attribute name="updateMode" type="String" mode="IN" optional="true" default-value="TYPE1"/> </service> + <!-- BI Dimension --> + <service name="loadInventoryFact" auth="true" engine="simple" + location="component://product/script/org/ofbiz/product/olap/FactServices.xml" invoke="loadInventoryFact"> + <attribute name="inventoryItemId" type="String" mode="IN" optional="true"/> + </service> </services> Added: ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy?rev=886743&view=auto ============================================================================== --- ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy (added) +++ ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy Thu Dec 3 11:12:50 2009 @@ -0,0 +1,55 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + + import org.ofbiz.accounting.util.UtilAccounting + import org.ofbiz.base.util.*; + import org.ofbiz.entity.util.EntityUtil; + import org.ofbiz.entity.condition.EntityCondition; + import org.ofbiz.entity.condition.EntityOperator; + import com.ibm.icu.util.Calendar; + + birtParameters = [:]; + /* + birtParameters.facilityId = request.getParameter("facilityId"); + birtParameters.productId = request.getParameter("productId"); + birtParameters.productTypeId = request.getParameter("productTypeId"); + birtParameters.searchInProductCategoryId = request.getParameter("searchInProductCategoryId"); + birtParameters.contentType = request.getParameter("contentType"); + birtParameters.productSupplierId = request.getParameter("productSupplierId"); + birtParameters.statusId = request.getParameter("statusId"); + birtParameters.productsSoldThruTimestamp = request.getParameter("productsSoldThruTimestamp"); + birtParameters.VIEW_SIZE = request.getParameter("VIEW_SIZE"); + birtParameters.monthsInPastLimit = request.getParameter("monthsInPastLimit"); + birtParameters.fromDateSellThrough = request.getParameter("fromDateSellThrough"); + birtParameters.thruDateSellThrough = request.getParameter("thruDateSellThrough"); + */ + + int lastIntMonth = Integer.parseInt(request.getParameter("lastIntMonth")); + if (lastIntMonth == 0 ){ + fromOrderDate = null; + }else{ + fromDateTime = UtilDateTime.getDayStart(UtilDateTime.toTimestamp(UtilDateTime.nowTimestamp()), (lastIntMonth*(-30))); + fromOrderDate = UtilDateTime.toDateString(fromDateTime,"MMMM dd, yyyy") + Debug.logInfo("====fromDate======="+fromOrderDate.toString(),""); + } + + birtParameters.facilityId = request.getParameter("facilityId"); + birtParameters.orderDateDateValue_fld0_op = fromOrderDate.toString(); + request.setAttribute("birtParameters", birtParameters); + return "success"; Propchange: ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy ------------------------------------------------------------------------------ svn:keywords = "Date Rev Author URL Id" Propchange: ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/actions/inventory/InventoryItemReport.groovy ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/controller.xml?rev=886743&r1=886742&r2=886743&view=diff ============================================================================== --- ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/controller.xml (original) +++ ofbiz/branches/addbirt/applications/product/webapp/facility/WEB-INF/controller.xml Thu Dec 3 11:12:50 2009 @@ -27,7 +27,7 @@ <handler name="service-multi" type="request" class="org.ofbiz.webapp.event.ServiceMultiEventHandler"/> <handler name="bsf" type="request" class="org.ofbiz.webapp.event.BsfEventHandler"/> - + <handler name="birt" type="view" class="org.ofbiz.webapp.view.BirtViewHandler"/> <!-- Events to run on every request before security (chains exempt) --> <!-- @@ -155,6 +155,37 @@ <security https="true" auth="true"/> <response name="success" type="view" value="ViewFacilityInventoryByProductExport"/> </request-map> + <!-- BrainFood inventory report --> + <request-map uri="ViewBrainFoodFacilityInventory"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ViewBrainFoodFacilityInventory"/> + </request-map> + <request-map uri="RenderInventoryReportHtml"> + <security https="true" auth="true"/> + <event type="groovy" path="component://product/webapp/facility/WEB-INF/actions/inventory/" invoke="InventoryItemReport.groovy"/> + <response name="success" type="view" value="RenderInventoryReportHtml"/> + </request-map> + <request-map uri="RenderInventoryReportPDF"> + <security https="true" auth="true"/> + <event type="groovy" path="component://product/webapp/facility/WEB-INF/actions/inventory/" invoke="InventoryItemReport.groovy"/> + <response name="success" type="view" value="RenderInventoryReportPDF"/> + </request-map> + <request-map uri="RenderInventoryReportExcel"> + <security https="true" auth="true"/> + <event type="groovy" path="component://product/webapp/facility/WEB-INF/actions/inventory/" invoke="InventoryItemReport.groovy"/> + <response name="success" type="view" value="RenderInventoryReportExcel"/> + </request-map> + <request-map uri="RenderInventoryReportMSWord"> + <security https="true" auth="true"/> + <event type="groovy" path="component://product/webapp/facility/WEB-INF/actions/inventory/" invoke="InventoryItemReport.groovy"/> + <response name="success" type="view" value="RenderInventoryReportMSWord"/> + </request-map> + <request-map uri="RenderInventoryReportPPT"> + <security https="true" auth="true"/> + <event type="groovy" path="component://product/webapp/facility/WEB-INF/actions/inventory/" invoke="InventoryItemReport.groovy"/> + <response name="success" type="view" value="RenderInventoryReportPPT"/> + </request-map> + <!-- End BrainFood--> <request-map uri="FindFacilityTransfers"> <security https="true" auth="true"/> @@ -1309,6 +1340,7 @@ <view-map name="ViewFacilityInventoryByProductSimple" type="screen" page="component://product/widget/facility/FacilityScreens.xml#ViewFacilityInventoryByProductSimple"/> <view-map name="ViewFacilityInventoryByProductReport" type="screenfop" page="component://product/widget/facility/FacilityScreens.xml#ViewFacilityInventoryByProductReport" content-type="application/pdf" encoding="none"/> <view-map name="ViewFacilityInventoryByProductExport" type="screenxml" page="component://product/widget/facility/FacilityScreens.xml#ViewFacilityInventoryByProductReport" content-type="text/xml"/> + <view-map name="ViewBrainFoodFacilityInventory" type="screen" page="component://product/widget/facility/FacilityScreens.xml#ViewBrainFoodFacilityInventory"/> <view-map name="EditFacilityGroups" type="screen" page="component://product/widget/facility/FacilityScreens.xml#EditFacilityGroups"/> <view-map name="EditFacilityParties" type="screen" page="component://product/widget/facility/FacilityScreens.xml#EditFacilityParties"/> <view-map name="ViewContactMechs" type="screen" page="component://product/widget/facility/FacilityScreens.xml#ViewContactMechs"/> @@ -1393,4 +1425,11 @@ <view-map name="FindShipmentGatewayConfigTypes" page="component://product//widget/facility/ShipmentGatewayConfigScreens.xml#FindShipmentGatewayConfigTypes" type="screen"/> <view-map name="EditShipmentGatewayConfigType" page="component://product//widget/facility/ShipmentGatewayConfigScreens.xml#EditShipmentGatewayConfigType" type="screen"/> <!-- end of view mappings --> + + <!-- BrainFood view-mapping --> + <view-map name="RenderInventoryReportHtml" type="birt" page="component://product/webapp/facility/inventory/report/InventoryReport.rptdesign" content-type="text/html"/> + <view-map name="RenderInventoryReportPDF" type="birt" page="component://product/webapp/facility/inventory/report/InventoryReport.rptdesign" content-type="application/pdf"/> + <view-map name="RenderInventoryReportExcel" type="birt" page="component://product/webapp/facility/inventory/report/InventoryReport.rptdesign" content-type="application/vnd.ms-excel"/> + <view-map name="RenderInventoryReportMSWord" type="birt" page="component://product/webapp/facility/inventory/report/InventoryReport.rptdesign" content-type="application/vnd.ms-word"/> + <view-map name="RenderInventoryReportPPT" type="birt" page="component://product/webapp/facility/inventory/report/InventoryReport.rptdesign" content-type="application/vnd.ms-powerpoint"/> </site-conf> |
| Free forum by Nabble | Edit this page |
