git-svn-id: svn://10.65.10.50/branches/R_10_00@23107 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
36d2a2b01a
commit
89918b05cd
@ -12,21 +12,20 @@
|
||||
class TRiepBolle_recordset: public TCSV_recordset
|
||||
{
|
||||
int _loop;
|
||||
unsigned int _max_column;
|
||||
unsigned int _max_column, _lst_column;
|
||||
TArray _max_cli_col;
|
||||
|
||||
|
||||
public:
|
||||
void first_loop() { _loop = 0;}
|
||||
void prev_loop() { --_loop;}
|
||||
void next_loop() { ++_loop;}
|
||||
void set_loop(int l) { _loop = l;}
|
||||
unsigned int loops() { return (_max_column - 4 )/ 66 + 1; }
|
||||
unsigned int loops() const { return (_max_column - 4 )/_lst_column + 1; }
|
||||
unsigned int get_curr_max_column() const ;
|
||||
void set_max_column(unsigned int column);
|
||||
virtual const TVariant& get(unsigned int column) const;
|
||||
|
||||
TRiepBolle_recordset(): TCSV_recordset("CSV(\"\t\")"), _loop(0), _max_column(0) {}
|
||||
TRiepBolle_recordset(unsigned int last_col): TCSV_recordset("CSV(\"\t\")"), _loop(0), _max_column(0), _lst_column(last_col) {}
|
||||
};
|
||||
|
||||
void TRiepBolle_recordset::set_max_column(unsigned int column)
|
||||
@ -56,9 +55,9 @@ const TVariant& TRiepBolle_recordset::get(unsigned int column) const
|
||||
static TVariant __s("");
|
||||
if (column < 4)
|
||||
return TCSV_recordset::get( column);
|
||||
if (column + _loop * 66 >= get_curr_max_column())
|
||||
if (column + _loop * _lst_column >= get_curr_max_column())
|
||||
return __s;
|
||||
return TCSV_recordset::get(column + _loop * 66);
|
||||
return TCSV_recordset::get(column + _loop * _lst_column);
|
||||
}
|
||||
|
||||
class TRiepBolle_mask: public TAutomask
|
||||
@ -96,8 +95,7 @@ protected:
|
||||
virtual bool set_usr_val(const TString& name, const TVariant& var);
|
||||
|
||||
public:
|
||||
TRiepBolle_report() {}
|
||||
virtual ~TRiepBolle_report() {}
|
||||
TRiepBolle_report();
|
||||
};
|
||||
|
||||
bool TRiepBolle_report::get_usr_val(const TString& name, TVariant& var) const
|
||||
@ -123,7 +121,6 @@ bool TRiepBolle_report::set_usr_val(const TString& name, const TVariant& var)
|
||||
if (name == "#TOT")
|
||||
{
|
||||
TRecordset* recset = recordset();
|
||||
|
||||
if (recset != NULL)
|
||||
{
|
||||
TVariant* v = (TVariant*)_tot.objptr(recset->current_row());
|
||||
@ -141,12 +138,16 @@ bool TRiepBolle_report::set_usr_val(const TString& name, const TVariant& var)
|
||||
return TDocument_report::set_usr_val(name, var);
|
||||
}
|
||||
|
||||
TRiepBolle_report::TRiepBolle_report()
|
||||
{
|
||||
}
|
||||
|
||||
class TRiepBolle_app: public TSkeleton_application
|
||||
{
|
||||
protected:
|
||||
virtual void main_loop();
|
||||
void elabora(const TMask& mask) const;
|
||||
public:
|
||||
virtual void main_loop();
|
||||
};
|
||||
|
||||
void TRiepBolle_app::elabora(const TMask& mask)const
|
||||
@ -203,9 +204,24 @@ void TRiepBolle_app::elabora(const TMask& mask)const
|
||||
TRiepBolle_report rep;
|
||||
if (!rep.load("lv2700a"))
|
||||
return;
|
||||
TRiepBolle_recordset* riep_set = new TRiepBolle_recordset();
|
||||
|
||||
const TReport_section& body = rep.section('B', 1);
|
||||
TString4 last_fld;
|
||||
for (int f = body.items()-1; f > 0; f--)
|
||||
{
|
||||
const TReport_field& fld = body.field(f);
|
||||
const TString& src = fld.field();
|
||||
if (src.len() == 2 && src > last_fld)
|
||||
last_fld = src;
|
||||
}
|
||||
int last_col = (last_fld[0]-'A'+1)*26 + (last_fld[1]-'A'+1) - 4;
|
||||
if (last_col < 66) last_col = 66;
|
||||
|
||||
TRiepBolle_recordset* riep_set = new TRiepBolle_recordset(last_col);
|
||||
((TReport &)rep).set_recordset(riep_set);
|
||||
|
||||
if (docsi > 0)
|
||||
{
|
||||
TProgress_monitor pi_art(docsi, TR("Estrazione articoli"));
|
||||
int count = 1;
|
||||
|
||||
@ -251,7 +267,10 @@ void TRiepBolle_app::elabora(const TMask& mask)const
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!riepilogo.empty())
|
||||
{
|
||||
TProgress_monitor pi(riepilogo.items(), TR("Costruzione report"));
|
||||
int maxpos = 0L;
|
||||
const int cols = nbolle.items();
|
||||
@ -297,6 +316,7 @@ void TRiepBolle_app::elabora(const TMask& mask)const
|
||||
if (!pi.add_status())
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (b.pages() > 0)
|
||||
b.print_or_preview(); // Stampa effettivamente
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user