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