00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef HK_REPORTSECTIONPAIR
00012 #define HK_REPORTSECTIONPAIR
00013 #include "hk_class.h"
00014 #include "hk_string.h"
00015 #include "hk_presentation.h"
00016 using namespace std;
00017
00018 class hk_reportsection;
00019 class hk_report;
00026 class hk_reportsectionpair :public hk_class
00027 {
00028 friend class hk_reportsection;
00029 friend class hk_report;
00030 public:
00031 virtual ~hk_reportsectionpair(void);
00035 hk_reportsection* headersection(void);
00039 hk_reportsection* footersection(void);
00045 void set_sections(bool header=true,bool footer=true);
00049 void init_sections(void);
00053 void set_columnname(const hk_string& n);
00054 void set_ascending_order(bool asc, bool registerchange=true);
00055 bool ascending_order(void) const;
00056 hk_string columnname(void) const;
00057 void reset(void);
00061 void clear_countingfields(void);
00062 virtual void savedata(ostream& s,bool userdefined=false);
00063 virtual void loaddata(xmlNodePtr definition,bool userdefined=false);
00064 virtual bool set_presentationdatasource(long n, bool registerchange=true);
00065 long presentationdatasource(void);
00066 void neutralize_definition(bool registerchange);
00067 void bulk_operation(hk_presentation::enum_bulkoperation bulkoperation);
00068
00069 protected:
00070 hk_reportsectionpair(hk_report*);
00071
00072 void remove_section(hk_reportsection*);
00073
00074 private:
00075 hk_report* p_report;
00076 hk_reportsection* p_header;
00077 hk_reportsection* p_footer;
00078 hk_string p_name;
00079 long int p_presentationdatasource;
00080 bool p_ascending;
00081
00082 };
00083 #endif