00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 #ifndef AREPORT_H
00032 #define AREPORT_H
00033
00034 #include <qmainwindow.h>
00035 #include <qtextbrowser.h>
00036 #include <qworkspace.h>
00037 #include "acfg.h"
00038 #include "aobject.h"
00039 #include "engine.h"
00040 #include "atemplate.h"
00041 #include "aootemplate.h"
00042 #include "amsotemplate.h"
00043
00044 class aDatabase;
00045
00053 class ANANAS_EXPORT aReportBrowser :public QMainWindow
00054 {
00055 Q_OBJECT
00056 public:
00057 QWorkspace *ws;
00058 QTextBrowser *textBrowser;
00059 aReportBrowser( QWidget *parent = 0, const char *name = 0, WFlags f = WDestructiveClose );
00060 void append( const QString &text );
00061 void clear();
00062 public slots:
00063 void print();
00064 void saveAs();
00065 protected slots:
00066 virtual void languageChange();
00067 };
00068
00079 class ANANAS_EXPORT aReport :public aObject
00080 {
00081 Q_OBJECT
00082 public:
00083
00089 enum RT_type {
00090 RT_text,
00091 RT_office_writer,
00092 RT_office_calc,
00093 RT_msoffice_word,
00094 RT_msoffice_excel
00095 };
00096
00097 aEngine *engine;
00098 iTemplate *tpl;
00099 aReportBrowser *browser;
00100 RT_type type;
00101
00102 aReport( aCfgItem context, RT_type r_type = RT_text, aEngine * e = 0 );
00103 aReport( QString name, RT_type r_type = RT_text, aEngine * e = 0 );
00104 virtual ~aReport();
00105 virtual ERR_Code initObject();
00106
00107 QString path2workdir();
00108
00109 public slots:
00110 void setTable( const QString &name );
00111 void setValue( const QString &name, const QString &value );
00112 QString value( const QString &name );
00113 void clear();
00114 void exec( const QString §ion );
00115 void close();
00116 void show();
00117 void save(const QString&);
00118 protected:
00119 QString getName4NewTemplate();
00120 private:
00121 QString tplName;
00122
00123 };
00124
00125 #endif// AREPORT_H