OSDN Git Service

Merge branch 'post-2.4.2'
[tjqt4port/tj2qt4.git] / taskjuggler / CSVReportElement.h
1 /*
2  * CSVReportElement.h - TaskJuggler
3  *
4  * Copyright (c) 2001, 2002, 2003, 2004, 2005 by Chris Schlaeger <cs@kde.org>
5  *
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.
9  *
10  * $Id$
11  */
12
13 #ifndef _CSVReportElement_h_
14 #define _CSVReportElement_h_
15
16 #include "ReportElement.h"
17 #include "CSVPrimitives.h"
18
19 class QColor;
20 class QString;
21
22 class Project;
23 class Report;
24 class ExpressionTree;
25 class TableLineInfo;
26 class TableCellInfo;
27 class Interval;
28
29 /**
30  * @short Models the basic component of an CSV report.
31  * @author Chris Schlaeger <cs@kde.org>
32  */
33 class CSVReportElement : public ReportElement, public CSVPrimitives
34 {
35 public:
36     CSVReportElement(Report* r, const QString& df, int dl) :
37         ReportElement(r, df, dl),
38         CSVPrimitives(),
39         fieldSeparator(";")
40     { }
41     virtual ~CSVReportElement() { }
42
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);
54
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);
123
124     virtual void genCellSummary(TableCellInfo* tli);
125
126     void setFieldSeparator(const QString fs) { fieldSeparator = fs; }
127
128 protected:
129     void generateTableHeader();
130
131     void generateHeader() { };
132     void generateFooter() { };
133
134     void generateLine(TableLineInfo* tli, int funcSel);
135
136     void genCell(const QString& text, TableCellInfo* tli, bool multi,
137                  bool filter = true);
138
139     void generateTitle(TableCellInfo* tci, const QString& str);
140
141     void generateSubTitle(TableCellInfo* tci, const QString& str);
142
143     void generateRightIndented(TableCellInfo* tci, const QString& str);
144
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);
149
150     void reportTaskLoad(double load, TableCellInfo* tci,
151                         const Interval& period);
152     void reportResourceLoad(double load, TableCellInfo* tci,
153                             const Interval& period);
154
155     void reportCurrency(double value, TableCellInfo* tci, time_t iv_start);
156
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));
166
167     QString fieldSeparator;
168 } ;
169
170 #endif