LIVE Example of TableView Merger

<ac:structured-macro ac:macro-id="a1529b36-ff00-4b50-80f0-da941adec9d1" ac:name="confiform" ac:schema-version="1">
  <ac:parameter ac:name="formName">Invoice</ac:parameter>
  <ac:parameter ac:name="registrationFormTitle">Invoices rows</ac:parameter>
  <ac:rich-text-body>
    <p>
      <ac:structured-macro ac:macro-id="7be7e7f2-499c-4086-9cd2-a5954f1dd0c3" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">type</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Type</ac:parameter>
        <ac:parameter ac:name="values">false[1=Consulting|2=Repair|3=Transport|]</ac:parameter>
        <ac:parameter ac:name="extras">label;false</ac:parameter>
        <ac:parameter ac:name="type">select</ac:parameter>
        <ac:parameter ac:name="required">true</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="1d9a2690-2e83-4764-9ea7-70094cadc3b0" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">description</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Description</ac:parameter>
        <ac:parameter ac:name="type">textarea</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="7755a69a-3d17-4fcc-a68d-4d13eda5217d" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">price</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Price</ac:parameter>
        <ac:parameter ac:name="fieldDescription">in eur</ac:parameter>
        <ac:parameter ac:name="type">number</ac:parameter>
        <ac:parameter ac:name="required">true</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="37f431bc-9cfc-4975-9429-6ee3de67ea40" ac:name="confiform-field-definition" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">count</ac:parameter>
        <ac:parameter ac:name="fieldLabel">Count</ac:parameter>
        <ac:parameter ac:name="fieldDescription">pcs</ac:parameter>
        <ac:parameter ac:name="type">number</ac:parameter>
        <ac:parameter ac:name="required">true</ac:parameter>
      </ac:structured-macro>
    </p>
    <p> <ac:structured-macro ac:macro-id="d23698df-27c3-4502-9e67-b6b74d63520d" ac:name="confiform-entry-register" ac:schema-version="1">
        <ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
        <ac:rich-text-body>
          <p> </p>
        </ac:rich-text-body>
      </ac:structured-macro>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<p>ALL stored data</p>
<ac:structured-macro ac:macro-id="80220cd8-0cdd-4527-a1a8-7d41d02657a4" ac:name="confiform-table" ac:schema-version="1">
  <ac:parameter ac:name="formName">Invoice</ac:parameter>
  <ac:rich-text-body>
    <p> <ac:structured-macro ac:macro-id="25a2f91b-901f-4f3f-8364-906324291afa" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">type</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="ffe9390f-d35e-48c7-ada0-27d1566b142f" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">description</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="c34c0a39-93d5-409a-89ea-b360f2023ce5" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">price</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="414c44a6-1208-4368-b007-0b7f44a6af08" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">count</ac:parameter>
      </ac:structured-macro>
    </p>
  </ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<p> </p>
<p>Totals per type</p>
<ac:structured-macro ac:macro-id="30654675-fc29-4a5f-b82e-82682150fd02" ac:name="confiform-table-merger" ac:schema-version="1">
  <ac:rich-text-body>
    <p> <ac:structured-macro ac:macro-id="3b540c9e-5243-4a37-8fc8-03858983fe8b" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">type</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="39c9fcd4-b4ea-4174-91f0-b44778108573" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">Total:([entry.count]*[entry.price])</ac:parameter>
      </ac:structured-macro>
    </p>
    <ac:structured-macro ac:macro-id="12fa94ed-24aa-484a-8ff8-7b123dac31fa" ac:name="confiform-table" ac:schema-version="1">
      <ac:parameter ac:name="formName">Invoice</ac:parameter>
      <ac:rich-text-body> </ac:rich-text-body>
    </ac:structured-macro>
  </ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<p>Record ID is used as a grouping key, together with a type and therefore rows are showed separately</p>
<ac:structured-macro ac:macro-id="e5bdffe1-2841-4885-be2a-dadc408eaf28" ac:name="confiform-table-merger" ac:schema-version="1">
  <ac:rich-text-body>
    <p>
      <ac:structured-macro ac:macro-id="d01c437d-d68a-4141-9b68-4595e616d2cb" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">id</ac:parameter>
      </ac:structured-macro> </p>
    <p>
      <ac:structured-macro ac:macro-id="5903bb6e-b217-46f4-be77-3a435637f7b7" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">type</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="a62605e1-9a0e-414a-b65f-8614810d5c31" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">Total:([entry.count]*[entry.price])</ac:parameter>
      </ac:structured-macro>
    </p>
    <ac:structured-macro ac:macro-id="630cd566-0723-493b-8042-7ba52280b149" ac:name="confiform-table" ac:schema-version="1">
      <ac:parameter ac:name="formName">Invoice</ac:parameter>
      <ac:rich-text-body> </ac:rich-text-body>
    </ac:structured-macro>
  </ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<p>Same, as above, but description field used as a grouping key, together with a type and therefore rows are showed separately. </p>
<ac:structured-macro ac:macro-id="17df3203-dc06-4567-91b7-8bcf2624fc77" ac:name="warning" ac:schema-version="1">
  <ac:rich-text-body>
    <p>Important to note is that IF there are rows with SAME type and description they will be MERGED! See below</p>
  </ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="4be247d7-4b37-40c7-9c6c-2d3f1aa032fe" ac:name="confiform-table-merger" ac:schema-version="1">
  <ac:rich-text-body>
    <p>
      <ac:structured-macro ac:macro-id="9d9541ed-751e-4363-8740-1ef8b82a3e73" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">type</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="5eb340e8-d8b6-4d1b-ac55-cff058f05f65" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">description</ac:parameter>
      </ac:structured-macro>
    </p>
    <p>
      <ac:structured-macro ac:macro-id="911211ff-91ca-48bf-9bd1-2b431b46c682" ac:name="confiform-field" ac:schema-version="1">
        <ac:parameter ac:name="fieldName">Total per row:([entry.count]*[entry.price])</ac:parameter>
      </ac:structured-macro>
    </p>
    <ac:structured-macro ac:macro-id="7f15fa9a-821c-43a0-bc3e-f80d1d7a2fbb" ac:name="confiform-table" ac:schema-version="1">
      <ac:parameter ac:name="formName">Invoice</ac:parameter>
      <ac:rich-text-body> </ac:rich-text-body>
    </ac:structured-macro>
  </ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<p>Chart showing invoice items grouped by TYPE and with their totals</p>
<ac:structured-macro ac:macro-id="ecb4d365-e591-46fd-92d2-9f742230f649" ac:name="chart" ac:schema-version="1">
  <ac:parameter ac:name="3D">true</ac:parameter>
  <ac:parameter ac:name="orientation">vertical</ac:parameter>
  <ac:parameter ac:name="showShapes">false</ac:parameter>
  <ac:parameter ac:name="width">950</ac:parameter>
  <ac:parameter ac:name="rangeAxisLowerBound">1</ac:parameter>
  <ac:parameter ac:name="dataOrientation">vertical</ac:parameter>
  <ac:parameter ac:name="title">Invoice data</ac:parameter>
  <ac:rich-text-body>
    <ac:structured-macro ac:macro-id="c65cc40c-3d2f-4331-b759-938946fce84c" ac:name="confiform-table-merger" ac:schema-version="1">
      <ac:rich-text-body>
        <p>
          <ac:structured-macro ac:macro-id="cfbe3c84-9751-4664-8723-2c32ba1ca7b6" ac:name="confiform-field" ac:schema-version="1">
            <ac:parameter ac:name="fieldName">type</ac:parameter>
          </ac:structured-macro>
        </p>
        <p>
          <ac:structured-macro ac:macro-id="18d3904f-c0df-4af2-9fc8-8ee2b9c0d02b" ac:name="confiform-field" ac:schema-version="1">
            <ac:parameter ac:name="fieldName">Total:([entry.count]*[entry.price])</ac:parameter>
          </ac:structured-macro>
        </p>
        <ac:structured-macro ac:macro-id="a06e57da-b3fe-435a-9dc8-aa002b000f67" ac:name="confiform-table" ac:schema-version="1">
          <ac:parameter ac:name="formName">Invoice</ac:parameter>
          <ac:rich-text-body> </ac:rich-text-body>
        </ac:structured-macro>
      </ac:rich-text-body>
    </ac:structured-macro>
  </ac:rich-text-body>
</ac:structured-macro>
<p> </p>
<p> </p>




So, we have a form with 4 fields



ALL stored data 

 


To get Totals per type

We have 2 fields in TableView Merger, type and Total which is described as expression

Total:([entry.count]*[entry.price])

 



Record ID is used as a grouping key, together with a type and therefore rows are showed separately

We have 3 fields in TableView Merger, id, type and Total which is described with the same expression

Total:([entry.count]*[entry.price])

 



Same, as above, but description field used as a grouping key, together with a type and therefore rows are showed separately. 


We have 3 fields in TableView Merger, type, description and Total which is described as expression

Total:([entry.count]*[entry.price])

Important to note is that IF there are rows with SAME type and description they will be MERGED! See below



Chart showing invoice items grouped by TYPE and with their totals (Chart macro uses the same table as you can see in 1st example, where we group by type field and calculate totals per row)