00001 // **************************************************************************** 00002 // copyright (c) 2000-2005 Horst Knorr <hk_classes@knoda.org> 00003 // This file is part of the hk_classes library. 00004 // This file may be distributed and/or modified under the terms of the 00005 // GNU Library Public License version 2 as published by the Free Software 00006 // Foundation and appearing in the file COPYING included in the 00007 // packaging of this file. 00008 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00009 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 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(const hk_string& 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