ReportBuilder Pile   version 0.0.1
ReportBuilder pile.
reportbuilder.h
Go to the documentation of this file.
1 
10 #ifndef GUARD_REPORTBUILDER_H_INCLUDE
11 #define GUARD_REPORTBUILDER_H_INCLUDE
12 
13 #include <reportbuilder/reportbuilder-config.h>
14 #include <QFile>
15 #include <QTextStream>
16 #include <QList>
17 
19 class REPORTBUILDER_EXPORT ReportBuilder {
20  //
21  //
22  //
23  //
24  /* DEFINITIONS ----------------------------------------------------- */
25 
26 public:
27 
28  enum Flags {
29  F_NONE = 0x00000000,
30  F_STARTED = 0x00000001,
31 
32  F_INSERT = 0x01000000,
33  F_CODE = 0x02000000,
34 
35  F_TABLE = 0x00010000,
36  F_TABLE_HEADER = 0x00020000,
37  F_TABLE_FOOTER = 0x00040000,
38  F_TABLE_ALL = F_TABLE | F_TABLE_HEADER | F_TABLE_FOOTER
39 
40  };
41 
42 
43  /* DEFINITIONS ===================================================== */
44  //
45  //
46  //
47  //
48  /* DATA ------------------------------------------------------------ */
49 
50 private:
51 
52  QString s_title_;
53  QFile f_out_;
54  QTextStream * out_;
55 
56  QList<quint32> foreground_;
57  QList<quint32> background_;
58  QList<QString> font_name_;
59  QList<int> font_size_;
60 
61  QList< QList<QString> > table_buffer;
62  int table_cols_;
63 
64  int flags_;
65 
66  bool b_status_;
67  QString s_stream_error_;
68 
69  /* DATA ============================================================ */
70  //
71  //
72  //
73  //
74  /* FUNCTIONS ------------------------------------------------------- */
75 
76 
77 public:
78 
80  explicit ReportBuilder (
81  const QString & s_file);
82 
84  virtual
85  ~ReportBuilder ();
86 
88  void
90  const QString & s_title) {
91  s_title_ = s_title;
92  }
93 
95  const QString &
97  return s_stream_error_;
98  }
99 
101  bool
102  isOK () {
103  return b_status_;
104  }
105 
107  void
108  start ();
109 
111  void
112  end ();
113 
114 
115  void
116  addHLine (
117  int size,
118  quint32 background = 0);
119 
120  void
121  addEmptyLine ();
122 
123  void
124  addTitle (
125  const QString & s_value,
126  int level);
127 
128  void
129  addLine (
130  const QString & s_value);
131 
132  void
133  add (
134  const QString & s_value);
135 
136  void
137  addHtml (
138  const QString & s_value);
139 
140  void
141  beginCode ();
142 
143  void
144  endCode ();
145 
146  void
147  beginInsert (
148  const QString & s_label = QString(),
149  quint32 background = 0,
150  quint32 foreground = 0,
151  int border_size = 1);
152 
153  void
154  endInsert ();
155 
156  void
157  beginTable (
158  int rows,
159  int columns,
160  bool with_header = false,
161  bool with_footer = false);
162 
163  void
164  setTableCell (
165  int rows,
166  int columns,
167  const QString & s_value);
168 
169  void
170  endTable ();
171 
172 private:
173 
174  void
175  setFlag (
176  int flg) {
177  flags_ = flags_ | flg;
178  }
179 
180  void
181  resetFlag (
182  int flg) {
183  flags_ = flags_ & (~flg);
184  }
185 
186  bool
187  isFlag (
188  int flg) {
189  return (flags_ & flg) == flg;
190  }
191 
192  void
193  checkStream ();
194 
195 
196  void
197  writeRow (
198  const QList<QString> & l_row,
199  const QString & s_col_header,
200  const QString & s_col_footer);
201 
202 }; // class ReportBuilder
203 
204 
205 
206 
207 
208 #endif // GUARD_REPORTBUILDER_H_INCLUDE
A report builder.
Definition: reportbuilder.h:19
void setDocumentTitle(const QString &s_title)
write the header if not already there
Definition: reportbuilder.h:89
bool isOK()
Everything all right up until this point?
Definition: reportbuilder.h:102
const QString & errorString()
The last error.
Definition: reportbuilder.h:96