2 * CSVReportElement.h - TaskJuggler
4 * Copyright (c) 2001, 2002, 2003, 2004, 2005 by Chris Schlaeger <cs@kde.org>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of version 2 of the GNU General Public License as
8 * published by the Free Software Foundation.
13 #ifndef _CSVReportElement_h_
14 #define _CSVReportElement_h_
16 #include "ReportElement.h"
17 #include "CSVPrimitives.h"
30 * @short Models the basic component of an CSV report.
31 * @author Chris Schlaeger <cs@kde.org>
33 class CSVReportElement : public ReportElement, public CSVPrimitives
36 CSVReportElement(Report* r, const QString& df, int dl) :
37 ReportElement(r, df, dl),
41 virtual ~CSVReportElement() { }
43 virtual void genHeadDefault(TableCellInfo* tcf);
44 virtual void genHeadCurrency(TableCellInfo* tcf);
45 virtual void genHeadDaily1(TableCellInfo* tcf);
46 virtual void genHeadDaily2(TableCellInfo* tcf);
47 virtual void genHeadWeekly1(TableCellInfo* tcf);
48 virtual void genHeadWeekly2(TableCellInfo* tcf);
49 virtual void genHeadMonthly1(TableCellInfo* tcf);
50 virtual void genHeadMonthly2(TableCellInfo* tcf);
51 virtual void genHeadQuarterly1(TableCellInfo* tcf);
52 virtual void genHeadQuarterly2(TableCellInfo* tcf);
53 virtual void genHeadYear(TableCellInfo* tcf);
55 virtual void genCellEmpty(TableCellInfo*);
56 virtual void genCellAccounts(TableCellInfo* tli);
57 virtual void genCellSequenceNo(TableCellInfo* tli);
58 virtual void genCellNo(TableCellInfo* tli);
59 virtual void genCellHierarchNo(TableCellInfo* tli);
60 virtual void genCellIndex(TableCellInfo* tli);
61 virtual void genCellHierarchIndex(TableCellInfo* tli);
62 virtual void genCellHierarchLevel(TableCellInfo* tli);
63 virtual void genCellId(TableCellInfo* tli);
64 virtual void genCellName(TableCellInfo* tli);
65 virtual void genCellStart(TableCellInfo* tli);
66 virtual void genCellEnd(TableCellInfo* tli);
67 virtual void genCellMinStart(TableCellInfo* tli);
68 virtual void genCellMaxStart(TableCellInfo* tli);
69 virtual void genCellMinEnd(TableCellInfo* tli);
70 virtual void genCellMaxEnd(TableCellInfo* tli);
71 virtual void genCellStartBuffer(TableCellInfo* tli);
72 virtual void genCellEndBuffer(TableCellInfo* tli);
73 virtual void genCellStartBufferEnd(TableCellInfo* tli);
74 virtual void genCellEndBufferStart(TableCellInfo* tli);
75 virtual void genCellDuration(TableCellInfo* tli);
76 virtual void genCellEffort(TableCellInfo* tli);
77 virtual void genCellFreeLoad(TableCellInfo* tli);
78 virtual void genCellUtilization(TableCellInfo* tli);
79 virtual void genCellCriticalness(TableCellInfo* tli);
80 virtual void genCellPathCriticalness(TableCellInfo* tli);
81 virtual void genCellProjectId(TableCellInfo* tli);
82 virtual void genCellProjectIDs(TableCellInfo* tli);
83 virtual void genCellResources(TableCellInfo* tli);
84 virtual void genCellResponsible(TableCellInfo* tli);
85 virtual void genCellText(TableCellInfo* tli);
86 virtual void genCellStatusNote(TableCellInfo* tli);
87 virtual void genCellCost(TableCellInfo* tli);
88 virtual void genCellRevenue(TableCellInfo* tli);
89 virtual void genCellProfit(TableCellInfo* tli);
90 virtual void genCellPriority(TableCellInfo* tli);
91 virtual void genCellFlags(TableCellInfo* tli);
92 virtual void genCellCompleted(TableCellInfo* tli);
93 virtual void genCellCompletedEffort(TableCellInfo* tli);
94 virtual void genCellRemainingEffort(TableCellInfo* tli);
95 virtual void genCellStatus(TableCellInfo* tli);
96 virtual void genCellReference(TableCellInfo* tli);
97 virtual void genCellScenario(TableCellInfo* tli);
98 virtual void genCellDepends(TableCellInfo* tli);
99 virtual void genCellFollows(TableCellInfo* tli);
100 virtual void genCellDailyTask(TableCellInfo* tli);
101 virtual void genCellDailyResource(TableCellInfo* tli);
102 virtual void genCellDailyAccount(TableCellInfo* tli);
103 virtual void genCellWeeklyTask(TableCellInfo* tli);
104 virtual void genCellWeeklyResource(TableCellInfo* tli);
105 virtual void genCellWeeklyAccount(TableCellInfo* tli);
106 virtual void genCellMonthlyTask(TableCellInfo* tli);
107 virtual void genCellMonthlyResource(TableCellInfo* tli);
108 virtual void genCellMonthlyAccount(TableCellInfo* tli);
109 virtual void genCellQuarterlyTask(TableCellInfo* tli);
110 virtual void genCellQuarterlyResource(TableCellInfo* tli);
111 virtual void genCellQuarterlyAccount(TableCellInfo* tli);
112 virtual void genCellYearlyTask(TableCellInfo* tli);
113 virtual void genCellYearlyResource(TableCellInfo* tli);
114 virtual void genCellYearlyAccount(TableCellInfo* tli);
115 virtual void genCellResponsibilities(TableCellInfo* tli);
116 virtual void genCellSchedule(TableCellInfo* tli);
117 virtual void genCellScheduling(TableCellInfo* tli);
118 virtual void genCellMinEffort(TableCellInfo* tli);
119 virtual void genCellMaxEffort(TableCellInfo* tli);
120 virtual void genCellEfficiency(TableCellInfo* tli);
121 virtual void genCellRate(TableCellInfo* tli);
122 virtual void genCellTotal(TableCellInfo* tli);
124 virtual void genCellSummary(TableCellInfo* tli);
126 void setFieldSeparator(const QString fs) { fieldSeparator = fs; }
129 void generateTableHeader();
131 void generateHeader() { };
132 void generateFooter() { };
134 void generateLine(TableLineInfo* tli, int funcSel);
136 void genCell(const QString& text, TableCellInfo* tli, bool multi,
139 void generateTitle(TableCellInfo* tci, const QString& str);
141 void generateSubTitle(TableCellInfo* tci, const QString& str);
143 void generateRightIndented(TableCellInfo* tci, const QString& str);
145 QColor selectTaskBgColor(TableCellInfo* tci, double load,
146 const Interval& period, bool daily);
147 QColor selectResourceBgColor(TableCellInfo* tci, double load,
148 const Interval& period, bool daily);
150 void reportTaskLoad(double load, TableCellInfo* tci,
151 const Interval& period);
152 void reportResourceLoad(double load, TableCellInfo* tci,
153 const Interval& period);
155 void reportCurrency(double value, TableCellInfo* tci, time_t iv_start);
157 void genCellTaskFunc(TableCellInfo* tci,
158 time_t (*beginOfT)(time_t),
159 time_t (*sameTimeNextT)(time_t));
160 void genCellResourceFunc(TableCellInfo* tci,
161 time_t (*beginOfT)(time_t),
162 time_t (*sameTimeNextT)(time_t));
163 void genCellAccountFunc(TableCellInfo* tci,
164 time_t (*beginOfT)(time_t),
165 time_t (*sameTimeNextT)(time_t));
167 QString fieldSeparator;