Primary Title, Secondary Title, Dynamic Title and Title Link
These visualizations uses the same frame type
definition
as the grid visualization to generate data. Set the frame
element’s type
attribute to grid
as shown in the following example.
Example of XML Report Definition to Generate Grid Type JSON Data
<report> <frame type="grid" name="MainFrame" display-query-name="FrameCondition" display-query-value="0"> <bands> <band type="stripe"> <cell type="text" data-format="text" alignment="left" style="gridheader1" print-width="160">Name</cell> <cell type="text" data-format="text" alignment="right" style="gridheader1" print-width="100">Amount</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left">CheckCount</cell> <cell type="expr" data-format="integer" alignment="right">DBGET("TotalsQuery", "numChecks")</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left">ChecksDiscounted</cell> <cell type="expr" data-format="integer" alignment="right"> IF(ISNULL(DBGET("DiscAvgCheckQuery", "numChecks")),0, DBGET("DiscAvgCheckQuery", "numChecks"))</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left">PercentOfTotalCheckCount</cell> <cell type="expr" data-format="percent" alignment="right" decimal-places="1"> IF(ISNULL(DBGET("DiscAvgCheckQuery", "numChecks")),0, DBGET("DiscAvgCheckQuery", "numChecks"))/DBGET("TotalsQuery", "numChecks")</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left">AverageCheckBeforeDiscount</cell> <cell type="expr" data-format="currency" alignment="right" decimal-places="1"> (IF(ISNULL(DBGET("DiscAvgCheckQuery", "salesNet")),0, DBGET("DiscAvgCheckQuery", "salesNet")) - IF(ISNULL(DBGET("DiscAvgCheckQuery", "discountTotal")),0, DBGET("DiscAvgCheckQuery", "discountTotal"))) /IF(ISNULL(DBGET("DiscAvgCheckQuery", "numChecks")),1, DBGET("DiscAvgCheckQuery", "numChecks"))</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left">AverageDepthOfDiscount</cell> <cell type="expr" data-format="percent" alignment="right" decimal-places="1"> (IF(ISNULL(DBGET("DiscAvgCheckQuery", "discountTotal")),0, DBGET("DiscAvgCheckQuery", "discountTotal")) / IF(ISNULL(DBGET("DiscAvgCheckQuery", "numChecks")),1, DBGET("DiscAvgCheckQuery", "numChecks"))) / ((IF(ISNULL(DBGET("DiscAvgCheckQuery", "salesNet")),0, DBGET("DiscAvgCheckQuery", "salesNet")) - IF(ISNULL(DBGET("DiscAvgCheckQuery", "discountTotal")),0, DBGET("DiscAvgCheckQuery", "discountTotal"))) / IF(ISNULL(DBGET("DiscAvgCheckQuery", "numChecks")),1, DBGET("DiscAvgCheckQuery", "numChecks")))</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left" print-width="80">GrossSales</cell> <cell type="expr" data-format="currency" alignment="right"> DBGET("TotalsQuery", "netSalesTotal") - DBGET("SummedDiscQuery", "discountTotal")</cell> </band> <band type="stripe"> <cell type="text" data-format="text" alignment="left">PercentDiscountOffGrossSales</cell> <cell type="expr" data-format="percent" alignment="right" decimal-places="1"> DBGET("SummedDiscQuery", "discountTotal") /(DBGET("TotalsQuery", "netSalesTotal") - DBGET("SummedDiscQuery", "discountTotal"))</cell> </band> </bands> </frame> <layout type="columner"> <component frame-name="MainFrame" column="1" visual-type="ojGrid" visual-style="oj-sm-12" visual-title=""/> </layout> </report>
Parent topic: Visualizations