insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: project "" "1.0" 2002-01-16 2002-05-28 { insilmaril@229: # Pick a day during the project that will be reported as 'today' in insilmaril@229: # the project reports. If not specified the current day will be insilmaril@229: # used, but this will likely be ouside of the project range, so it insilmaril@229: # can't be seen in the reports. insilmaril@229: now 2002-03-05-13:00 insilmaril@229: # Hide the clock time. Only show the date. insilmaril@229: timeformat "%Y-%m-%d" insilmaril@229: # The currency for all money values is U.S. Dollars. insilmaril@229: currency "USD" insilmaril@229: insilmaril@229: # We want to compare the planned scenario, to one with the actual insilmaril@229: # scenario insilmaril@229: scenario plan "Planned" { insilmaril@229: scenario actual "Actual" insilmaril@229: } insilmaril@229: } insilmaril@229: # The daily default rate of all resources. This can be overriden for each insilmaril@229: # resource. We specify this, so that we can do a good calculation of insilmaril@229: # the costs of the project. insilmaril@229: rate 310.0 insilmaril@229: insilmaril@229: # This is one way to form teams insilmaril@229: macro allocate_developers [ insilmaril@229: allocate dev1 insilmaril@229: allocate dev2 { limits { dailymax 4h } } insilmaril@229: allocate dev3 insilmaril@229: ] insilmaril@229: insilmaril@229: flags team insilmaril@229: insilmaril@229: resource dev "In House" { insilmaril@229: resource dev1 "Some Guy" { rate 330.00 } insilmaril@229: resource dev2 "Some Other Guy" insilmaril@229: resource dev3 "Some Last Guy on Vacation" { vacation 2002-02-01 - 2002-02-05 } insilmaril@229: insilmaril@229: flags team insilmaril@229: } insilmaril@229: insilmaril@229: resource misc "Outsource" { insilmaril@229: resource test "Out Sourcer1" { limits { dailymax 6.4h } rate 240.00 } insilmaril@229: resource doc "Out Source2" { rate 280.00 vacation 2002-03-11 - 2002-03-16 } insilmaril@229: insilmaril@229: flags team insilmaril@229: } insilmaril@229: insilmaril@229: # In order to do a simple profit and loss analysis of the project we insilmaril@229: # specify accounts. One for the development costs, one for the insilmaril@229: # documentation costs and one account to credit the customer payments insilmaril@229: # to. insilmaril@229: account dev "Development" cost insilmaril@229: account doc "Documentation" cost insilmaril@229: account rev "Payments" revenue insilmaril@229: insilmaril@229: # Now we specify the work packages. The whole project is described as insilmaril@229: # a task that contains sub tasks. These sub tasks are then broken down insilmaril@229: # into smaller tasks and so on. The innermost tasks describe the real insilmaril@229: # work and have resources allocated to them. Many attributes of tasks insilmaril@229: # are inherited from the enclosing task. This saves you a lot of insilmaril@229: # writing. insilmaril@229: task "" { insilmaril@229: insilmaril@229: # All work related costs will be booked to this account unless the insilmaril@229: # sub tasks specifies it differently. insilmaril@229: account dev insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: } insilmaril@229: insilmaril@229: # This task report is for use with the TaskJuggler GUI insilmaril@229: taskreport "Project Overview" { insilmaril@229: columns start, end, effort, duration, completed, status, note, cost, revenue insilmaril@229: scenario actual insilmaril@229: } insilmaril@229: insilmaril@229: # A resource report for use with the TaskJuggler GUI insilmaril@229: resourcereport "Resource Usage" { insilmaril@229: columns effort, freeload, utilization, rate insilmaril@229: scenario actual insilmaril@229: hideresource 0 insilmaril@229: } insilmaril@229: insilmaril@229: # For conveniance we would like each report to contain links to the insilmaril@229: # other reports. So we declare a macro with a fragment of raw HTML insilmaril@229: # code to be embedded into all the HTML reports. insilmaril@229: macro navbar [ insilmaril@229: rawhead insilmaril@229: ' insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229: insilmaril@229:
Tasks OverviewStaff OverviewAccountingCalendar
Tasks DetailsStaff DetailsStatus ReportGANTT Chart (Postscript)
insilmaril@229:
' insilmaril@229: ] insilmaril@229: insilmaril@229: # As the first report, we would like to have a general overview of all insilmaril@229: # tasks with their computed start and end dates. For better insilmaril@229: # readability we include a calendar like column that lists the effort insilmaril@229: # for each week. insilmaril@229: htmltaskreport "Tasks-Overview.html" { insilmaril@229: # This report should contain the navigation bar we have declared insilmaril@229: # above. insilmaril@229: ${navbar} insilmaril@229: # The report should be a table that contains several columns. The insilmaril@229: # task and their information form the rows of the table. Since we insilmaril@229: # don't like the title of the effort column, we change it to "Work". insilmaril@229: columns hierarchindex, name, duration, effort { title "Work"}, insilmaril@229: start, end, weekly insilmaril@229: # For this report we like to have the abbreviated weekday in front insilmaril@229: # of the date. %a is the tag for this. insilmaril@229: timeformat "%a %Y-%m-%d" insilmaril@229: insilmaril@229: # Don't show load values. insilmaril@229: barlabels empty insilmaril@229: # Set a title for the report insilmaril@229: headline " Project" insilmaril@229: # And a short description what this report is about. insilmaril@229: caption "This table presents a management-level overview of the project. The values are days or man-days." insilmaril@229: } insilmaril@229: insilmaril@229: # Now a more detailed report that shows all jobs and the people insilmaril@229: # assigned to the tasks. It also features a comparison of the planned insilmaril@229: # and actual scenario. insilmaril@229: htmltaskreport "Tasks-Details.html" { insilmaril@229: ${navbar} insilmaril@229: # Now we use a daily calendar. insilmaril@229: columns no, name, start, end, scenario, daily insilmaril@229: #start 2002-03-01 insilmaril@229: #end 2002-04-01 insilmaril@229: # Show plan and delayed scenario values. insilmaril@229: scenarios plan, actual insilmaril@229: headline " Project - March 2002" insilmaril@229: caption "This table shows the load of each day for all the tasks. insilmaril@229: Additionally the resources used for each task are listed. Since the insilmaril@229: project start was delayed, the delayed schedule differs significantly insilmaril@229: from the original plan." insilmaril@229: # Don't hide any resources, that is show them all. insilmaril@229: hideresource 0 insilmaril@229: } insilmaril@229: insilmaril@229: # The previous report listed the resources per task. Now we generate a insilmaril@229: # report the lists all resources. insilmaril@229: htmlresourcereport "Staff-Overview.html" { insilmaril@229: ${navbar} insilmaril@229: # Add a column with the total effort per task. insilmaril@229: columns no, name { cellurl "http://www.tj.org" }, scenario, weekly, effort insilmaril@229: scenarios plan, actual insilmaril@229: # Since we want to see the load values as hours per week, we switch insilmaril@229: # the unit that loads are reported in to hours. insilmaril@229: loadunit hours insilmaril@229: headline "Weekly working hours for the Project" insilmaril@229: } insilmaril@229: insilmaril@229: # Now a report similar to the above one but with much more details. insilmaril@229: htmlresourcereport "Staff-Details.html" { insilmaril@229: ${navbar} insilmaril@229: columns name, daily, effort insilmaril@229: # To still keep the report readable we limit it to show only the insilmaril@229: # data for March 2002. insilmaril@229: start 2002-01-16 insilmaril@229: end 2002-04-01 insilmaril@229: hidetask 0 insilmaril@229: # The teams are virtual resources that we don't want to see. Since insilmaril@229: # we have assigned a flag to those virtual resource, we can just insilmaril@229: # hide them. insilmaril@229: hideresource team insilmaril@229: # We also like to have the report sorted alphabetically ascending by insilmaril@229: # resource name. insilmaril@229: sortresources nameup insilmaril@229: loadunit hours insilmaril@229: headline "Daily working hours for the Project - March 2002" insilmaril@229: } insilmaril@229: insilmaril@229: htmlweeklycalendar "Calendar.html" { insilmaril@229: ${navbar} insilmaril@229: headline "Ongoing Tasks - March 2002" insilmaril@229: start 2002-03-01 insilmaril@229: end 2002-04-01 insilmaril@229: } insilmaril@229: insilmaril@229: htmlstatusreport "Status-Report.html" { insilmaril@229: ${navbar} insilmaril@229: } insilmaril@229: insilmaril@229: # To conclude the HTML reports a report that shows how badly the insilmaril@229: # project is calculated is generated. The company won't get rich with insilmaril@229: # this project. Due to the slip, it actually needs some money from the insilmaril@229: # bank to pay the salaries. insilmaril@229: htmlaccountreport "Accounting.html" { insilmaril@229: ${navbar} insilmaril@229: # Besides the number of the account and the name we have a column insilmaril@229: # with the total values (at the end of the project) and the values insilmaril@229: # for each month of the project. insilmaril@229: columns no, name, scenario, total, monthly insilmaril@229: headline "P&L for the Accounting Software Project" insilmaril@229: caption "The table shows the profit and loss insilmaril@229: analysis as well as the cashflow situation of the Accounting insilmaril@229: Software Project." insilmaril@229: # Since this is a cashflow calculation we show accumulated values insilmaril@229: # per account. insilmaril@229: accumulate insilmaril@229: scenarios plan, actual insilmaril@229: } insilmaril@229: insilmaril@229: # Finally we generate an XML report that contains all info about the insilmaril@229: # scheduled project. This will be used by tjx2gantt to create a nice insilmaril@229: # Gantt chart of our project. insilmaril@229: xmlreport ".tjx" { insilmaril@229: # version 2 insilmaril@229: } insilmaril@229:
insilmaril@229: insilmaril@229: insilmaril@229: task "" { insilmaril@229: # I've included all of the Optional Attributes here. insilmaril@229: # Commented out for your pleasure. insilmaril@229: #account insilmaril@229: #allocate dev1 insilmaril@229: #complete insilmaril@229: #depends insilmaril@229: #duration insilmaril@229: #effort 20d insilmaril@229: #endbuffer insilmaril@229: #endcredit insilmaril@229: #end, flags insilmaril@229: #journalentry insilmaril@229: #length insilmaril@229: #maxend insilmaril@229: #maxstart insilmaril@229: #milestone insilmaril@229: #minend insilmaril@229: #minstart insilmaril@229: #note insilmaril@229: #precedes insilmaril@229: #priority insilmaril@229: #projectid insilmaril@229: #reference insilmaril@229: #responsible insilmaril@229: #scheduled insilmaril@229: #scheduling insilmaril@229: #shift insilmaril@229: #startbuffer insilmaril@229: #startcredit insilmaril@229: plan:start 2002-03-05 insilmaril@229: actual:start 2002-03-05 insilmaril@229: #statusnote insilmaril@229: #supplement insilmaril@229: insilmaril@229: } insilmaril@229: insilmaril@229: insilmaril@229: