<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://in.compucrete.com/index.php?action=history&amp;feed=atom&amp;title=KServer_Report_JSON_Syntax</id>
	<title>KServer Report JSON Syntax - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://in.compucrete.com/index.php?action=history&amp;feed=atom&amp;title=KServer_Report_JSON_Syntax"/>
	<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=KServer_Report_JSON_Syntax&amp;action=history"/>
	<updated>2026-05-15T16:56:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://in.compucrete.com/index.php?title=KServer_Report_JSON_Syntax&amp;diff=324&amp;oldid=prev</id>
		<title>WikiAdmin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=KServer_Report_JSON_Syntax&amp;diff=324&amp;oldid=prev"/>
		<updated>2023-07-14T12:58:51Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:58, 14 July 2023&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key my_wiki:diff::1.12:old-323:rev-324 --&gt;
&lt;/table&gt;</summary>
		<author><name>WikiAdmin</name></author>
	</entry>
	<entry>
		<id>http://in.compucrete.com/index.php?title=KServer_Report_JSON_Syntax&amp;diff=323&amp;oldid=prev</id>
		<title>Pmorey: /* Report Fields Array Structure */</title>
		<link rel="alternate" type="text/html" href="http://in.compucrete.com/index.php?title=KServer_Report_JSON_Syntax&amp;diff=323&amp;oldid=prev"/>
		<updated>2021-09-07T23:08:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Report Fields Array Structure&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[CATEGORY: KSERVER]]&lt;br /&gt;
&amp;lt;p&amp;gt;KServer reports are defined by adding a &amp;quot;report&amp;quot; object to an existing KServer endpoint. The report object is specified at the endpoint root level. KServer does not process the &amp;quot;report&amp;quot; object but instead passes it to the caller when the endpoint is called with the &amp;quot;$GETREPORT=1&amp;quot; query parameter.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Report Object Structure ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;report&amp;quot;: {&lt;br /&gt;
  &amp;quot;title&amp;quot;: &amp;quot;Sample Report&amp;quot;,   // the title for the report (prints at top of report and is used as the screen form caption)&lt;br /&gt;
  &amp;quot;activefieldcount&amp;quot;: 1,      // the number of fields that represent an &amp;quot;active&amp;quot; item (controls visibility of &amp;quot;Include Active/Include Inactive&amp;quot; checkboxes)&lt;br /&gt;
  &amp;quot;export&amp;quot;: true              // true to allow the report data to be exported to a file&lt;br /&gt;
  &amp;quot;grandtotal&amp;quot;: true          // true to print a grand total on the report&lt;br /&gt;
  &amp;quot;optionsection&amp;quot;: &amp;quot;section&amp;quot;, // key to be used to persist the options for this report&lt;br /&gt;
  &amp;quot;afterprint&amp;quot;: {               &lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;afterreport&amp;quot;: {&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;beforereport&amp;quot;: {&lt;br /&gt;
  },&lt;br /&gt;
  &amp;quot;selection&amp;quot;: [&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;sequence&amp;quot;: [&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;options&amp;quot;: [&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;groups&amp;quot;: [&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;fields&amp;quot;: [&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;variables&amp;quot;: {&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report AfterPrint Object Structure ===&lt;br /&gt;
&lt;br /&gt;
The AfterPrint object is used to execute another endpoint after the report has successfully printed. A confirmation dialog can also be displayed with Yes, No and Cancel options.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;afterprint&amp;quot;: {&lt;br /&gt;
  &amp;quot;confirm&amp;quot;: &amp;quot;Do you want to proceed?&amp;quot;,  // message to display in a dialog with Yes, No and Cancel options after the report is completely printed&lt;br /&gt;
  &amp;quot;endpoint&amp;quot;: &amp;quot;SampleReportUpdate&amp;quot;       // endpoint to execute after the report is completely printed (and if the user selects Yes on the confirm dialog)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report AfterReport Object Structure ===&lt;br /&gt;
&lt;br /&gt;
The AfterReport object is used to execute another endpoint after the report has previewed/printed. It will execute following the AfterPrint endpoint has executed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;afterreport&amp;quot;: {&lt;br /&gt;
  &amp;quot;endpoint&amp;quot;: &amp;quot;SampleReportClear&amp;quot;  // endpoint to execute after the report has been previewed/printed (and after the &amp;quot;AfterPrint&amp;quot; endpoint is executed)&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report BeforeReport Object Structure ===&lt;br /&gt;
&lt;br /&gt;
The BeforeReport object is used to execute another endpoint immediately prior to the start of report processing.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;beforereport&amp;quot;: {&lt;br /&gt;
  &amp;quot;endpoint&amp;quot;: &amp;quot;SampleReportPrepare&amp;quot;  // endpoint to execute before the report begins processing&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report Selection Array Structure ===&lt;br /&gt;
&lt;br /&gt;
The Selection array is used to populate the &amp;quot;Selection Criteria&amp;quot; grid on the report screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;selection: [&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Sample Field&amp;quot;,          // description of the selection field to be displayed on screen&lt;br /&gt;
    &amp;quot;field&amp;quot;: &amp;quot;SAMPLE_FIELD&amp;quot;,          // selection fieldname&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,                 // field type can be one of:&lt;br /&gt;
                                      //   string            (a string which is forced uppercase)&lt;br /&gt;
                                      //   mixedstring       (a string with is mixed case)&lt;br /&gt;
                                      //   integer           (an integer)&lt;br /&gt;
                                      //   posinteger        (a positive integer or zero)&lt;br /&gt;
                                      //   date              (a date) &lt;br /&gt;
                                      //   lookup            (a dropdown list populated from a database query)&lt;br /&gt;
                                      //   lookupchecklist   (a dropdown checklist populated from a database query) &lt;br /&gt;
                                      //   list              (a dropdown list populated from predefined values)&lt;br /&gt;
                                      //   checklist         (a dropdown checklist populated from predefined values)&lt;br /&gt;
    &amp;quot;condition&amp;quot;: &amp;quot;in($SEQUENCE, 1)&amp;quot;,  // condition which must evaluate to True for the selection item to be displayed&lt;br /&gt;
    &amp;quot;list&amp;quot;: {                          &lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SampleList&amp;quot;            // internal identifier (see Report Selection List Types below) which controls the contents of a list/checklist option&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;lookup&amp;quot;: {&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;SampleLookup&amp;quot;          // internal identifier (see Report Selection Lookup Types below) which controls the contents of a lookup/lookupchecklist option&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Report Selection List Types ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! List Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| ARCODFlag&lt;br /&gt;
| A/R Customer COD Flag values&lt;br /&gt;
|-&lt;br /&gt;
| ARLocType&lt;br /&gt;
| A/R Location Type values&lt;br /&gt;
|-&lt;br /&gt;
| ARLocXfrMethod&lt;br /&gt;
| A/R Location Xfr Method values&lt;br /&gt;
|-&lt;br /&gt;
| ARPlantType&lt;br /&gt;
| A/R Plant Type values&lt;br /&gt;
|-&lt;br /&gt;
| ARProdAutoQty&lt;br /&gt;
| A/R Product Auto Qty values&lt;br /&gt;
|-&lt;br /&gt;
| ARProdType&lt;br /&gt;
| A/R Product Type values&lt;br /&gt;
|-&lt;br /&gt;
| ARTaxLocCalcMethod&lt;br /&gt;
| A/R Tax Locality Calc Method values&lt;br /&gt;
|-&lt;br /&gt;
| ARTaxLocLevel&lt;br /&gt;
| A/R Tax Locality Level values&lt;br /&gt;
|-&lt;br /&gt;
| ARTruckType&lt;br /&gt;
| A/R Truck Type values&lt;br /&gt;
|-&lt;br /&gt;
| CCStatusFlag&lt;br /&gt;
| System Session Status values&lt;br /&gt;
|-&lt;br /&gt;
| CCUMSSystem&lt;br /&gt;
| Unit of Measure System values&lt;br /&gt;
|-&lt;br /&gt;
| CCUMSType&lt;br /&gt;
| Unit of Measure Type values&lt;br /&gt;
|-&lt;br /&gt;
| CMAcctType&lt;br /&gt;
| C/M Account Type values&lt;br /&gt;
|-&lt;br /&gt;
| YesNoFlag&lt;br /&gt;
| Yes/No Flag values&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Report Selection Lookup Types ====&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;3&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;3&amp;quot; &lt;br /&gt;
! Lookup Type&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| AP1099Class&lt;br /&gt;
| A/P 1099 Classes&lt;br /&gt;
|-&lt;br /&gt;
| APExemptClass&lt;br /&gt;
| A/P Use Tax Exempt Classes&lt;br /&gt;
|-&lt;br /&gt;
| APPayTermsClass&lt;br /&gt;
| A/P Payment Terms Classes&lt;br /&gt;
|-&lt;br /&gt;
| APTaxAuthority&lt;br /&gt;
| A/P Use Tax Authorities&lt;br /&gt;
|-&lt;br /&gt;
| APVendor&lt;br /&gt;
| A/P Vendors&lt;br /&gt;
|-&lt;br /&gt;
| APVendorClass&lt;br /&gt;
| A/P Vendor Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARAllowanceClass&lt;br /&gt;
| A/R Allowance Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARCreditTermsClass&lt;br /&gt;
| A/R Credit Terms Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARCustomer&lt;br /&gt;
| A/R Customers&lt;br /&gt;
|-&lt;br /&gt;
| ARCustomerClass&lt;br /&gt;
| A/R Customer Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARDivision&lt;br /&gt;
| A/R Divisions&lt;br /&gt;
|-&lt;br /&gt;
| ARDriver&lt;br /&gt;
| A/R Drivers&lt;br /&gt;
|-&lt;br /&gt;
| ARExemptClass&lt;br /&gt;
| A/R Sales Tax Exempt Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARJobClass&lt;br /&gt;
| A/R Job Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARLocation&lt;br /&gt;
| A/R Locations&lt;br /&gt;
|-&lt;br /&gt;
| AROwner&lt;br /&gt;
| A/R Owners&lt;br /&gt;
|-&lt;br /&gt;
| ARPlant&lt;br /&gt;
| A/R Plants&lt;br /&gt;
|-&lt;br /&gt;
| ARPriceGroup&lt;br /&gt;
| A/R Price Groups&lt;br /&gt;
|-&lt;br /&gt;
| ARProduct&lt;br /&gt;
| A/R Products&lt;br /&gt;
|-&lt;br /&gt;
| ARProductClass&lt;br /&gt;
| A/R Product Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARSalesperson&lt;br /&gt;
| A/R Salespeople&lt;br /&gt;
|-&lt;br /&gt;
| ARTaxAuthority&lt;br /&gt;
| A/R Sales Tax Authorities&lt;br /&gt;
|-&lt;br /&gt;
| ARTruck&lt;br /&gt;
| A/R Trucks&lt;br /&gt;
|-&lt;br /&gt;
| ARTruckClass&lt;br /&gt;
| A/R Truck Classes&lt;br /&gt;
|-&lt;br /&gt;
| ARUnitOfMeasure&lt;br /&gt;
| A/R Units of Measures&lt;br /&gt;
|-&lt;br /&gt;
| ARZone&lt;br /&gt;
| A/R Zones&lt;br /&gt;
|-&lt;br /&gt;
| CCUser&lt;br /&gt;
| System Users&lt;br /&gt;
|-&lt;br /&gt;
| CMBankAcct&lt;br /&gt;
| C/M Bank Accounts&lt;br /&gt;
|-&lt;br /&gt;
| CMBankName&lt;br /&gt;
| C/M Bank Accounts&lt;br /&gt;
|-&lt;br /&gt;
| GLAccount&lt;br /&gt;
| G/L Accounts&lt;br /&gt;
|-&lt;br /&gt;
| GLGroup&lt;br /&gt;
| G/L Groups&lt;br /&gt;
|-&lt;br /&gt;
| GLNRMCAGroup&lt;br /&gt;
| G/L NRMCA Groups&lt;br /&gt;
|-&lt;br /&gt;
| GLSegments&lt;br /&gt;
| G/L Account Segments&lt;br /&gt;
|-&lt;br /&gt;
| GLSourceCode&lt;br /&gt;
| G/L Source Codes&lt;br /&gt;
|-&lt;br /&gt;
| QTProspCustList&lt;br /&gt;
| Quote combined Prospect/Customer List&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Report Sequence Array Structure ===&lt;br /&gt;
&lt;br /&gt;
The Sequence array is used to populate the &amp;quot;Report Sequence&amp;quot; dropdown on the report screen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;sequence&amp;quot;: [&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Sample Sequence&amp;quot;,               // description of the sequence to be displayed on screen&lt;br /&gt;
    &amp;quot;field&amp;quot;: &amp;quot;SAMPLE_FIELD_1;SAMPLE_FIELD_2&amp;quot;  // sequence fieldname(s)&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report Options Array Structure ===&lt;br /&gt;
&lt;br /&gt;
The Options array is used to populate the user-selectable options when setting up the report.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;options&amp;quot;: [&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;Sample Option&amp;quot;,  // on-screen title for the option&lt;br /&gt;
    &amp;quot;type&amp;quot;: &amp;quot;checkbox&amp;quot;,        // option type (checkbox, checklist, edit, list)&lt;br /&gt;
    &amp;quot;param&amp;quot;: &amp;quot;SEL_INCLUDE&amp;quot;,    // query parameter name to be set by this option&lt;br /&gt;
    &amp;quot;condition&amp;quot;: &amp;quot;&amp;quot;,           // condition which must evaluate to True for the option to be displayed&lt;br /&gt;
    &amp;quot;optionname&amp;quot;: &amp;quot;option&amp;quot;,    // key to be used to persist this option for this report &lt;br /&gt;
&lt;br /&gt;
    &amp;quot;checkbox&amp;quot;: {              // *** this object present only for checkbox type  &lt;br /&gt;
      &amp;quot;valuechecked&amp;quot;: &amp;quot;Y&amp;quot;,     // value returned if a checkbox option is checked (value can be string, bool or number)&lt;br /&gt;
      &amp;quot;valueunchecked&amp;quot;: &amp;quot;N&amp;quot;    // value returned if a checkbox option is unchecked (value can be string, bool or number)&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;checklist&amp;quot;: {             // *** this object present only for checklist type&lt;br /&gt;
      &amp;quot;items&amp;quot;: [               // list of items for the checklist box&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;title&amp;quot;: &amp;quot;Job Totals&amp;quot;,   // on-screen title for the first list item&lt;br /&gt;
          &amp;quot;value&amp;quot;: &amp;quot;1&amp;quot;             // value returned if this list item is checked&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;title&amp;quot;: &amp;quot;Plant Totals&amp;quot;, // on-screen title for the second list item&lt;br /&gt;
          &amp;quot;value&amp;quot;: &amp;quot;2&amp;quot;             // value returned if this list item is checked&lt;br /&gt;
        },&lt;br /&gt;
      ] &lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;edit&amp;quot;: {                  // *** this object present only for edit type&lt;br /&gt;
      &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;         // edit type (string, mixedstring, integer, posinteger, date)&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;list&amp;quot;: {                  // *** this object present only for list type&lt;br /&gt;
      &amp;quot;items&amp;quot;: [               // list of items for the radio group box&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;title&amp;quot;: &amp;quot;Summary&amp;quot;,  // on-screen title for the first list item&lt;br /&gt;
          &amp;quot;value&amp;quot;: &amp;quot;1&amp;quot;         // value returned if this list item is selected&lt;br /&gt;
        },&lt;br /&gt;
        {&lt;br /&gt;
          &amp;quot;title&amp;quot;: &amp;quot;Detail&amp;quot;,   // on-screen title for the second list item&lt;br /&gt;
          &amp;quot;value&amp;quot;: &amp;quot;2&amp;quot;         // value returned if this list item is selected&lt;br /&gt;
        },&lt;br /&gt;
      ] &lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report Groups Array Structure ===&lt;br /&gt;
&lt;br /&gt;
The Groups array is used to define grouping/subtotal levels for the report.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;groups&amp;quot;: [&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;level&amp;quot;: 1,            // group level&lt;br /&gt;
    &amp;quot;label&amp;quot;: &amp;quot;Group&amp;quot;,      // label for subtotal line for this group&lt;br /&gt;
    &amp;quot;subtotal&amp;quot;: true,      // print subtotals for this group (default=False)&lt;br /&gt;
    &amp;quot;inline&amp;quot;: true,        // group indicate on the same line as the report detail (default=False)&lt;br /&gt;
    &amp;quot;autosequence&amp;quot;: true,  // automatically sort by this group's fields if selected (default=True)&lt;br /&gt;
    &amp;quot;condition&amp;quot;: &amp;quot;&amp;quot;        // condition which must evaluate to True for this group to be processed&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report Fields Array Structure ===&lt;br /&gt;
&lt;br /&gt;
The Fields array is used to define detail fields for the report. This section is optional. If it is not specified all query fields will be printed as detail fields.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;fields&amp;quot;: [&lt;br /&gt;
  {&lt;br /&gt;
    &amp;quot;label&amp;quot;: &amp;quot;Sample Label&amp;quot;,  // heading label to print for this field&lt;br /&gt;
    &amp;quot;field&amp;quot;: &amp;quot;SAMPLE_FIELD&amp;quot;,  // field name&lt;br /&gt;
    &amp;quot;format&amp;quot;: &amp;quot;#.00&amp;quot;,         // print format&lt;br /&gt;
    &amp;quot;align&amp;quot;: &amp;quot;right&amp;quot;,         // field alignment (left, center, right)&lt;br /&gt;
    &amp;quot;width&amp;quot;: 15,              // field width (if omitted the largest width for the field is automatically calculated)&lt;br /&gt;
    &amp;quot;group&amp;quot;: 1,               // group level&lt;br /&gt;
    &amp;quot;calc&amp;quot;: &amp;quot;&amp;quot;,               // value printed is the result of the expression&lt;br /&gt;
    &amp;quot;printdetail&amp;quot;: true,      // controls whether the field is printed on the detail line (default=true)&lt;br /&gt;
    &amp;quot;detail&amp;quot;: {&lt;br /&gt;
      &amp;quot;col&amp;quot;: 1,               // if present specifies the absolute column position for this field  &lt;br /&gt;
      &amp;quot;row&amp;quot;: 1,               // if present specifies the absolute row position for this field within this record&lt;br /&gt;
      &amp;quot;newrow&amp;quot;: true,         // if present indicates this field should print on the next row&lt;br /&gt;
      &amp;quot;condition&amp;quot;: &amp;quot;&amp;quot;         // condition which must evaluate to True for this field to be printed&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;printtotal&amp;quot;: true,       // controls whether the field is totaled (default=False)&lt;br /&gt;
    &amp;quot;total&amp;quot;: {&lt;br /&gt;
      &amp;quot;col&amp;quot;: 1,                 // if present specifies the absolute column position for this field  &lt;br /&gt;
      &amp;quot;row&amp;quot;: 1,                 // if present specifies the absolute row position for this field within this record&lt;br /&gt;
      &amp;quot;newrow&amp;quot;: true,           // if present indicates this field should print on the next row&lt;br /&gt;
      &amp;quot;grouplevel&amp;quot;: 1,          // always use this group level for the total value of this field (default=group for this field)&lt;br /&gt;
      &amp;quot;printlevel&amp;quot;: [1, 2, 3],  // field total will be printed for the specified group levels (default=all)&lt;br /&gt;
      &amp;quot;condition&amp;quot;: &amp;quot;&amp;quot;           // condition which must evaluate to True for this field to be totaled&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Report Variables Object Structure ===&lt;br /&gt;
&lt;br /&gt;
The Variables object is used to define variables for the report. This section is optional. When processing field expressions variables are referenced by their name prepended with a &amp;quot;$&amp;quot; character.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;variables&amp;quot;: {&lt;br /&gt;
  &amp;quot;report&amp;quot;: [&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;repvar&amp;quot;, // name of the report variable&lt;br /&gt;
    &amp;quot;calc&amp;quot;: &amp;quot;&amp;quot;,       // variable value is the result of the expression &lt;br /&gt;
    &amp;quot;condition&amp;quot;: &amp;quot;&amp;quot;   // condition which must evaluate to True for this variable to be evaluated&lt;br /&gt;
  ],&lt;br /&gt;
  &amp;quot;detail&amp;quot;: [&lt;br /&gt;
    &amp;quot;name&amp;quot;: &amp;quot;detvar&amp;quot;, // name of the detail variable&lt;br /&gt;
    &amp;quot;calc&amp;quot;: &amp;quot;&amp;quot;,       // variable value is the result of the expression &lt;br /&gt;
    &amp;quot;condition&amp;quot;: &amp;quot;&amp;quot;   // condition which must evaluate to True for this variable to be evaluated&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pmorey</name></author>
	</entry>
</feed>