Overview The project status and budget page displays all the subprojects listed in a space and provides milestones and budget details at a glance.
Furthermore, charts can be generated using the data from the Reporting table to keep track of current cash flow.Â
Suppliers used When to use the Collection Supplier Use the object supplier if you are unsure of the object type. Pair any key with an object:class
keychain and it will return the type of object.
For example: data:Project Members > object:class
returns
This means the Project Members Scaffolding data is stored as an Array List.
This keychain is useful for debugging purposes.
Content and Structure First, set the main structure of our report, which is a table.
Next, define what to report by using a content-reporter  block
This means Reportin g only fetches pages labeled as subproject and are a child of Cafe Rockettoria Projects .
-attachment
means attachments are excluded.
In the content-reporter  block
Now we are ready to setup the report columns.
Report columns Project Name Within the report-table  block
insert a report-column  macro underneath the content-reporter  block
insert a report-info  block inside this report-column
edit the report-info  block
Project Status insert a report-column  macro
insert a report-info  block inside this report-column
Eedit the report-info  block
Days left: if-else statements and parameter injection Create a simple if-else statement that will display the days left for ongoing projects or display a completed message if the project is over.
With report-eval , we can do calculations on predefined variables, suppliers or Scaffolding data blocks.
In the report-eval  block, we will perform the calculation of Days Left  using parameter injection
For the report-eval  calculation formula
(%
data:Project End Date > date:milliseconds
%Â -Â %
global:current date > date:milliseconds
%)/1000/60/60/24
In the first part
The second part
Together, the above formula
converts both end date and current date into milliseconds
gets the difference (in milliseconds)
converts back to days with division
The report-eval  variable can then be accessed via the Variable  supplier. The key is the name of the report-eval  block - variable:Days Left
.
Now create a report-block  macro for the if-else statement.
In the report-block  macro
Next
Inside the report-body  block
%
variable:Days Left > number:#
%Â day(s)
Now create the 'else' statement by
This creates a report-block  shown below.
report-eval creates a temporary variable in the given page
Using the flexibility of report-eval 's calculation abilities, we created a temporary variable in the subproject page, and now we need to create another temporary variabe in the current report to get Days Left , using the same formula and report structure.
Number of Milestones insert a report-column under the previous Days Left column
insert a report-info  block inside this report-column
edit the report-info  block
Budget Total This column will return the sum of all milestone budgets from a particular subproject. The sum of all subproject's budget can also be calculated using report-column .
Expenditure Total This column returns the sum of all milestone expenditures from a particular subproject. The sum of all subprojects expenditures can also be calculated using report-column .
Budget Deficit This column returns the sum of all budget deficits from a particular subproject. It is calculated using the difference of actual expenditure and allocated budget for each subproject.Â
In the report-eval
Budget Deficit % This column returns the budget deficit in percentage. It is calculated using the Budget Deficit
variable created in the previous section and dividing that amount by Budget Total
.
insert a report-column
insert a report-eval block inside report-column
name the report-eval block Percentage Deficit
edit the report-eval block
set Default Value to 0
set Format to #%
.
In the report-eval
Project Status & Budget table
Source code
<ac:structured-macro ac:macro-id="38aec1b2-1f0e-4759-8be8-e20dbcf76023" ac:name="report-table" ac:schema-version="1">
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="38314951-78e6-4773-b549-e46d953e2e5e" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">+pages, -attachment</ac:parameter>
<ac:parameter ac:name="scope">Cafe Rockettoria Projects > children</ac:parameter>
<ac:parameter ac:name="labels">subproject</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="d1e9c74e-605d-4a53-93f3-38d195a200b2" ac:name="text-sort" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="aea2847c-88ea-4257-a597-ad46237c0264" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Project Name</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="59a534ec-dac2-4750-a69c-747c111a21ae" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="link">true</ac:parameter>
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="92c73454-6ef4-432a-b915-c55216fd744b" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Project Status</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="304641a2-8b08-4275-80a7-af69a6797359" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">data:Project Status</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="acfe8cfe-a648-410c-bba0-66d9ce8fde86" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Days Left</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="5d66226b-1f24-4836-9858-fe0eb8fb71dc" ac:name="report-eval" ac:schema-version="1">
<ac:parameter ac:name="default">0</ac:parameter>
<ac:parameter ac:name="hidden">true</ac:parameter>
<ac:parameter ac:name="format">#</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="">Days Left</ac:parameter>
<ac:plain-text-body><![CDATA[(%data:Project End Date > date:milliseconds% - %global:current date > date:milliseconds%)/1000/60/60/24]]></ac:plain-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="cb311386-9493-44a6-af29-ab7c190ed0c1" ac:name="report-block" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="4e7c657c-0c99-4c95-b343-8f3f58fe4c05" ac:name="local-reporter" ac:schema-version="1">
<ac:parameter ac:name="">@self</ac:parameter>
<ac:rich-text-body>
<p> </p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<ac:structured-macro ac:macro-id="8381c68f-f058-47c6-839f-2a0f47f460cb" ac:name="number-filter" ac:schema-version="1">
<ac:parameter ac:name="aboveValue">0</ac:parameter>
<ac:parameter ac:name="">variable:Days Left</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="af877eef-0630-442c-adf7-dc516a17a520" ac:name="report-body" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:rich-text-body>
<p>%variable:Days Left > number:#% day(s)</p>
</ac:rich-text-body>
</ac:structured-macro>
<p>
<ac:structured-macro ac:macro-id="20f5798d-143e-41d8-9569-dd0564fd327c" ac:name="number-filter" ac:schema-version="1">
<ac:parameter ac:name="belowValue">0</ac:parameter>
<ac:parameter ac:name="">variable:Days Left</ac:parameter>
</ac:structured-macro>
</p>
<ac:structured-macro ac:macro-id="90136fad-3ffa-45ae-bfa9-17fd2df2f8ea" ac:name="report-body" ac:schema-version="1">
<ac:rich-text-body>
<p>This project has ended</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="eebaac3b-8536-4d30-a992-dbf180241743" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">No. of milestones</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="92368731-3d0c-4ddb-9d73-16d10779a968" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">data:Project Milestones > collection:size</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="ec1ac3e7-6f19-4954-8470-59f9b4b7c090" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="summaryFormat">$#,##0.00</ac:parameter>
<ac:parameter ac:name="summaryType">sum</ac:parameter>
<ac:parameter ac:name="summaryValue">data:Budget Total</ac:parameter>
<ac:parameter ac:name="title">Budget Total</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="75d93000-4110-47c5-8f92-f80f5f388038" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="format">$##,##0.00</ac:parameter>
<ac:parameter ac:name="">data:Budget Total</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="480602e1-27e7-4f72-b029-5e1c8563ff95" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="summaryFormat">$#,##0.00</ac:parameter>
<ac:parameter ac:name="summaryType">sum</ac:parameter>
<ac:parameter ac:name="summaryValue">data:Expenditure Total</ac:parameter>
<ac:parameter ac:name="title">Expenditure total</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="ac5e3f34-6661-46b0-917e-5f989fc91b52" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="format">$##,##0.00</ac:parameter>
<ac:parameter ac:name="">data:Expenditure Total</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="bea3b9c2-a11d-4d7a-9dd0-0e6f0d2bd294" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="summaryFormat">$##,##0.00</ac:parameter>
<ac:parameter ac:name="summaryType">sum</ac:parameter>
<ac:parameter ac:name="summaryValue">variable:Budget Deficit</ac:parameter>
<ac:parameter ac:name="title">Budget Deficit</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="a5fef81f-7ccd-474f-abe5-d6e228a0a49d" ac:name="report-eval" ac:schema-version="1">
<ac:parameter ac:name="format">$##,##0.00</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="">Budget Deficit</ac:parameter>
<ac:plain-text-body><![CDATA[%data:Budget Total% - %data:Expenditure Total%]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="36174fbf-2441-4bf8-b1eb-70f9a3ae138f" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Budget Deficit %</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="18b2002e-3d2f-47ee-b629-2f642c9af30e" ac:name="report-eval" ac:schema-version="1">
<ac:parameter ac:name="default">0</ac:parameter>
<ac:parameter ac:name="format">#%</ac:parameter>
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="">Percentage Deficit</ac:parameter>
<ac:plain-text-body><![CDATA[%variable:Budget Deficit% / %data:Budget Total%]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
Â
Chart:Â Subproject Budget Deficit Using the same Reporting elements, we can construct charts with simplified Reporting tables such as this one.Â
This table is built using the columns Project Name and Budget Deficit % .
Insert a Chart  macro and make the following settings:
Type: Bar
Display orientation: Vertical
Chart title:Â Subproject Budget Deficit
(Check) Show Legend
Columns:Â Project Name, Budget Deficit %
Content Orientation: Â Horizontal
Range Minimum Value: -100
Range Maximum Vale: 100
For the macro structure, see Chart Macro Structure .
Â
Subproject Budget Deficit chart
Source code
<div class="tablesorter-header-inner">
<ac:structured-macro ac:macro-id="62e45cfa-e49d-47a1-b620-1e3ccf6e60d5" ac:name="chart" ac:schema-version="1">
<ac:parameter ac:name="orientation">vertical</ac:parameter>
<ac:parameter ac:name="columns">Project Name, Budget Deficit %</ac:parameter>
<ac:parameter ac:name="width">500</ac:parameter>
<ac:parameter ac:name="rangeAxisLowerBound">-100</ac:parameter>
<ac:parameter ac:name="dataOrientation">horizontal</ac:parameter>
<ac:parameter ac:name="title">Subproject Budget Deficit</ac:parameter>
<ac:parameter ac:name="type">bar</ac:parameter>
<ac:parameter ac:name="rangeAxisUpperBound">100</ac:parameter>
<ac:parameter ac:name="height">500</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="acf935c7-2b99-4f5e-a3f3-f09f2ead1685" ac:name="report-table" ac:schema-version="1">
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="09e59f25-8132-4bb6-ad37-dbc82230bc31" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">+pages, -attachment</ac:parameter>
<ac:parameter ac:name="scope">Cafe Rockettoria Projects > children</ac:parameter>
<ac:parameter ac:name="labels">subproject</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="8259caed-26ab-43ec-8f8f-9525ce1c8bc9" ac:name="text-sort" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="1e79e38f-ad94-4140-868b-9d786e88f314" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Project Name</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="5491e9fb-fbdb-42aa-b41f-8d3eabd66096" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="16fcd047-c174-494d-934d-81f978b5f6df" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="injected">true</ac:parameter>
<ac:parameter ac:name="title">Budget Deficit %</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="53885bcc-a1c8-4b4c-b3b9-a365c4500983" ac:name="report-eval" ac:schema-version="1">
<ac:parameter ac:name="atlassian-macro-output-type">INLINE</ac:parameter>
<ac:parameter ac:name="">Percentage Deficit</ac:parameter>
<ac:plain-text-body><![CDATA[(%data:Budget Total% - %data:Expenditure Total%) / %data:Budget Total% * 100]]></ac:plain-text-body>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</div>Â
Â
Chart: Subproject Budget Allocation This table is built using the columns Project Name  and Budget Total .
Insert a Chart  macro and make the following settings:
Type: Pie
Display orientation: Vertical
Chart title:Â Subproject Budget Allocation
(Check) Show Legend
Columns:Â Project Name, Budget Total
Content Orientation: Â Vertical
For the macro structure, see Chart Macro Structure .
Subproject Budget Allocation chart
Source code
<div class="tablesorter-header-inner">
<ac:structured-macro ac:macro-id="371ec71d-180e-4ab3-a627-92f69dba6d6a" ac:name="chart" ac:schema-version="1">
<ac:parameter ac:name="orientation">vertical</ac:parameter>
<ac:parameter ac:name="columns">Project Name, Budget Total</ac:parameter>
<ac:parameter ac:name="width">500</ac:parameter>
<ac:parameter ac:name="dataOrientation">vertical</ac:parameter>
<ac:parameter ac:name="title">Subproject Budget Allocation</ac:parameter>
<ac:parameter ac:name="height">500</ac:parameter>
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="b307d24c-b13f-49fa-b883-bac6c9e10c45" ac:name="report-table" ac:schema-version="1">
<ac:rich-text-body>
<ac:structured-macro ac:macro-id="9fcb1f89-0509-467a-89b9-09aa0c81e5f7" ac:name="content-reporter" ac:schema-version="1">
<ac:parameter ac:name="types">+pages, -attachment</ac:parameter>
<ac:parameter ac:name="scope">Cafe Rockettoria Projects > children</ac:parameter>
<ac:parameter ac:name="labels">subproject</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="41f99c63-eb30-484c-90a3-5c1914880643" ac:name="text-sort" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="e5bde7db-710c-49a8-bf39-31ffe486055a" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Project Name</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="d70b6f4a-744f-4466-83e9-92b616d3aa76" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="">content:title</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
<ac:structured-macro ac:macro-id="7fdb40ab-db1f-4f0b-9b8f-7aa49619f998" ac:name="report-column" ac:schema-version="1">
<ac:parameter ac:name="title">Budget Total</ac:parameter>
<ac:rich-text-body>
<p>
<ac:structured-macro ac:macro-id="f570aa19-20fb-48e9-b44e-2005331c2df7" ac:name="report-info" ac:schema-version="1">
<ac:parameter ac:name="format">$##,##0.00</ac:parameter>
<ac:parameter ac:name="">data:Budget Total</ac:parameter>
</ac:structured-macro>
</p>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</ac:rich-text-body>
</ac:structured-macro>
</div>
Â
Chart: Subproject Budget Allocation This table is built using the columns Project Name  and Expenditure Total .
Insert a Chart  macro and make the following settings:
Type: Pie
Display orientation: Vertical
Chart title:Â Subproject Expenditure
(Check) Show Legend
Columns:Â Project Name, Expenditure Total
Content Orientation: Â Vertical
For the macro structure, see Chart Macro Structure .
Subproject Expenditure chart
Macro structureChart Macro Structure Full source Project Status & Budget source code Next Part 6 - Creating the team members page