Fri, 28 Nov 2008 14:20:00 +0100
Added tag ASGUI_0.7.7 for changeset d64aaa7d146f
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 //
32 #ifndef REPORTPANEL_H
33 #define REPORTPANEL_H
35 #include <qvariant.h>
36 #include <qdialog.h>
37 #include <qdatetime.h>
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;
52 namespace AS {
54 class Reportpanel : public QDialog
55 {
56 Q_OBJECT
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
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;
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;
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
90 public slots:
91 int exec(void);
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);
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
113 #endif // REPORTPANEL_H