|
1 // |
|
2 // OSSP asgui - Accounting system graphical user interface |
|
3 // Copyright (c) 2002-2004 The OSSP Project (http://www.ossp.org/) |
|
4 // Copyright (c) 2002-2004 Ralf S. Engelschall <rse@engelschall.com> |
|
5 // Copyright (c) 2002-2004 Michael Schloh von Bennewitz <michael@schloh.com> |
|
6 // Copyright (c) 2002-2004 Cable & Wireless Telecommunications Services GmbH |
|
7 // |
|
8 // This file is part of OSSP asgui, an accounting system graphical user |
|
9 // interface which can be found at http://www.ossp.org/pkg/tool/asgui/. |
|
10 // |
|
11 // Permission to use, copy, modify, and distribute this software for |
|
12 // any purpose with or without fee is hereby granted, provided that |
|
13 // the above copyright notice and this permission notice appear in all |
|
14 // copies. |
|
15 // |
|
16 // THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED |
|
17 // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
|
18 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
|
19 // IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR |
|
20 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
21 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
22 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
23 // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
|
24 // ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
|
25 // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
|
26 // OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
27 // SUCH DAMAGE. |
|
28 // |
|
29 // as_reportpanel.h: ISO C++ interface |
|
30 // |
|
31 |
|
32 #ifndef REPORTPANEL_H |
|
33 #define REPORTPANEL_H |
|
34 |
|
35 #include <qvariant.h> |
|
36 #include <qdialog.h> |
|
37 #include <qdatetime.h> |
|
38 |
|
39 |
|
40 class TiTable; |
|
41 class Preferences; |
|
42 class QVBoxLayout; |
|
43 class QHBoxLayout; |
|
44 class QGridLayout; |
|
45 class QPushButton; |
|
46 class QTextEdit; |
|
47 class QToolButton; |
|
48 class QButtonGroup; |
|
49 class QPopupMenu; |
|
50 class QPrinter; |
|
51 |
|
52 namespace AS { |
|
53 |
|
54 class Reportpanel : public QDialog |
|
55 { |
|
56 Q_OBJECT |
|
57 |
|
58 public: |
|
59 Reportpanel(TiTable *, Preferences *, QWidget *pParent = 0, |
|
60 const char *kszName = 0, bool bModal = true, WFlags Flags = 0); |
|
61 // ~Reportpanel(void); // No need to destroy widgets, because qt does it for us |
|
62 |
|
63 public: |
|
64 QButtonGroup *m_pWeekmonthgroup; |
|
65 QToolButton *m_pWeeklybutt; |
|
66 QToolButton *m_pMonthlybutt; |
|
67 QTextEdit *m_pBrowser; |
|
68 QPushButton *m_pSavebutt; |
|
69 QPushButton *m_pDismissbutt; |
|
70 QPushButton *m_pPrintbutt; |
|
71 |
|
72 protected: |
|
73 QVBoxLayout *m_pFormlay; |
|
74 QVBoxLayout *m_pGrouplay; |
|
75 QHBoxLayout *m_pToolay; |
|
76 QHBoxLayout *m_pPushlay; |
|
77 QHBoxLayout *m_pWeekmonthlay; |
|
78 QPopupMenu *m_pWeekpop; |
|
79 QPopupMenu *m_pMonthpop; |
|
80 |
|
81 private: |
|
82 int m_nWeeks; |
|
83 int m_nMonths; |
|
84 TiTable *m_pReptable; |
|
85 Preferences *m_pReprefs; |
|
86 #ifndef QT_NO_PRINTER |
|
87 QPrinter *m_pPrinter; |
|
88 #endif |
|
89 |
|
90 public slots: |
|
91 int exec(void); |
|
92 |
|
93 protected slots: |
|
94 virtual void saveReport(void); |
|
95 virtual void printReport(void); |
|
96 virtual void textChange(void); |
|
97 virtual void reportWeeks(int nMenuid = -1); |
|
98 virtual void reportMonths(int nMenuid = -1); |
|
99 |
|
100 private: |
|
101 void writeHeader(int); |
|
102 void writeHeader(int, int); |
|
103 void writeHeader(QString); |
|
104 void writeHeader(QString, QString); |
|
105 void writeFooter(void); |
|
106 QString getWeektotals(QDate Refer = QDate::currentDate(), int nWeeks = 1); |
|
107 QString getWeekdetails(QDate Refer = QDate::currentDate(), int nWeeks = 1); |
|
108 QString getMonthtotals(QDate Refer = QDate::currentDate(), int nMonths = 1); |
|
109 QString getMonthdetails(QDate Refer = QDate::currentDate(), int nMonths = 1); |
|
110 }; |
|
111 } // namespace AS |
|
112 |
|
113 #endif // REPORTPANEL_H |