Generating Reports of the scheduled Project

TaskJuggler offers a number of report types. Probably the most popular ones are interactive reports and HTML reports.

Generating Interactive Reports

Interactive reports are only available in the TaskJuggler GUI. The command line version will just ignore interactive report definitions. To view a task report in the GUI, you have to add the following lines to your project. This will give you a list of all the project's tasks and the classical Gantt chart.


taskreport "Gantt Chart" {
  headline "Project Gantt Chart"
  columns hierarchindex, name, start, end, effort, duration, chart
  timeformat "%a %Y-%m-%d"
  loadunit days
  hideresource 1
}

The GUI requires the name column to be present in the report. If you don't specify it, it will be added automatically. It does not support any of the index columns. They will not be shown in the GUI. Nonetheless, it's a good idea to request it, as the printed version of the interactive reports behave like the other reports. They only show specified columns. The printed reports repeat the first column on every page in case it does not fit on a single page. To print a report from the GUI just select File->Print from the menu or click the printer icon in the toolbar.

For this report we like to have the abbreviated weekday in front of the date. %a is the tag for this. See the manual for a complete list of all options.

We don't want to see any resources in this report, so we hide them all. 1 means always hide a resource. To show all resources we could write a 0, which means never hide a resource. Or we could write a logical expression that only shows the leaf resources and sorts them by name as we did for the next report. It's a list of all tasks showing the resources assigned to each task.


taskreport "Task Usage" {
  headline "Task Usage Report"
  columns hierarchindex, name, start, end, effort { title "Work" }, duration,
    cost, revenue
  timeformat "%Y-%m-%d"
  loadunit days
  hideresource ~isLeaf()
  sortresources nameup
}

The default title for the effort column is replaced with a custom title. Additionally we show the cost and revenue of all tasks and resources. All loads are shown as resource-days.

The next report is similar to the first one, but has the completion degree as additional column.


# A list of all tasks with the percentage complete for each task
taskreport "Tracking Gantt" {
  headline "Tracking Gantt Chart"
  columns hierarchindex, name, start, end, effort { title "Work" }, duration,
    completed, chart
  timeformat "%a %Y-%m-%d"
  loadunit days
  hideresource 1
}

We can also have resource-centric reports. This is done with the report type resourcereport. The following report is showing resource allocation. It identifies whether each resource is under- or over-allocated for.


resourcereport "Resource Graph" {
  headline "Resource Allocation Graph"
  columns no, name, rate, utilization, freeload, chart
  loadunit days
  hidetask 1
}

The next report is a list of all project resources, both human and material resources, together with the associated costs.


resourcereport "Resource Sheet" {
  headline "Resource Sheet"
  columns no, name, efficiency, id, maxeffort, rate
  loadunit days
  hidetask 1
}

The next report is similar to the previous one, but also lists the tasks for each of the resources. It also provides details about the cost for each resource and task.


# A list of resources and each task associated with each resource.
resourcereport "Resource Usage" {
  headline "Resource Usage Report"
  columns no, name, utilization, freeload, cost
  loadunit days
  hidetask 0
}

Generating HTML Reports

In addition to the interactive reports, TaskJuggler also provides HTML reports. These reports have the benefit that you can create report files that you can publish on a web server. TaskJuggler supports a variety of HTML reports. Please refer to the manual for a full list. In this tutorial we will only cover a subset of them.

The first HTML report looks like a regular calendar. It lists all ongoing tasks for each day.


# This report looks like a regular calendar that shows the tasks by
# their dates.
htmlweeklycalendar "Calendar.html" {
}

The next HTML report is a weekly status report. You can generate such a report each week to update your team, your management, and your clients about the current project status. The report lists all the events of the recent week and all upcoming new tasks for the next week.


# This report is a status report for the current week. It also
# provides an outlook for the next week.
htmlstatusreport "Status-Report.html" {
}

To conclude the HTML reports, a report is generated that shows how poorly the project is calculated. The company won't get rich with this project. Due to the slip, it actually needs a loan from the bank to pay the salaries.


htmlaccountreport "Accounting.html" {
  columns no, name, scenario, total, monthly
  headline "P&L for the Project"
  caption "The table shows the profit and loss analysis as well as
           the cashflow situation of the Accounting Software Project."
  accumulate
  scenarios plan, delayed
}

The htmlaccountreport property produces similar reports as the ones shown above, but it lists accounts instead of tasks or resources. The total column shows the value of the account at the end of the reported time interval. The accumulate attribute puts the calendar in accumulation mode. The monthly columns list the value of the account at the end of the month. Normally the amount that has been added or subtracted from the account would be listed.