Patch level : 2.2
Files correlati : ci1.exe Ricompilazione Demo : [ ] Commento : Rese piu' veloci le stampe della contabilita' industriale, grazie alle nuove chiavi su file RIGHEDOC git-svn-id: svn://10.65.10.50/trunk@13740 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
f6e9ea74d7
commit
7e95d8da6c
@ -32,7 +32,14 @@ int TRiepiloghi_mask::create_sheet_fields(int lf, int& y, short& dlg, bool requi
|
|||||||
TSheet_field& sf = sfield(F_COMMESSE);
|
TSheet_field& sf = sfield(F_COMMESSE);
|
||||||
TMask& sm = sf.sheet_mask();
|
TMask& sm = sf.sheet_mask();
|
||||||
|
|
||||||
const int h = ca_create_fields(sm, 0, lf, 1, y, dlg, dlg+50);
|
const char* field = NULL;
|
||||||
|
switch (lf)
|
||||||
|
{
|
||||||
|
case LF_CDC : field = RMOVANA_CODCCOSTO; break;
|
||||||
|
case LF_FASI: field = RMOVANA_CODFASE; break;
|
||||||
|
default : field = RMOVANA_CODCMS; break;
|
||||||
|
}
|
||||||
|
const int h = ca_create_fields(sm, 0, lf, 1, y, dlg, dlg+50, 0, field);
|
||||||
|
|
||||||
for (int i = 0; i < h; i++)
|
for (int i = 0; i < h; i++)
|
||||||
{
|
{
|
||||||
@ -133,6 +140,7 @@ protected:
|
|||||||
static bool rdoc_filter(const TRelation* rel);
|
static bool rdoc_filter(const TRelation* rel);
|
||||||
bool valid_record(const TRelation& rel) const;
|
bool valid_record(const TRelation& rel) const;
|
||||||
|
|
||||||
|
bool has_doc_reference(const char* str) const;
|
||||||
virtual void set_custom_filter(TCursor& cur) const;
|
virtual void set_custom_filter(TCursor& cur) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -203,7 +211,7 @@ bool TRiepiloghi_recordset::valid_record(const TRelation& rel) const
|
|||||||
const TString& fas = rdoc.get(RDOC_FASCMS);
|
const TString& fas = rdoc.get(RDOC_FASCMS);
|
||||||
if (fas != _codfas)
|
if (fas != _codfas)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -213,10 +221,40 @@ bool TRiepiloghi_recordset::rdoc_filter(const TRelation* rel)
|
|||||||
return myself->valid_record(*rel);
|
return myself->valid_record(*rel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TRiepiloghi_recordset::has_doc_reference(const char* str) const
|
||||||
|
{
|
||||||
|
TString expr(str); expr.upper();
|
||||||
|
return expr.find("DOC.") >= 0 || expr.find("DOC->") >= 0 ||
|
||||||
|
expr.find("33.") >= 0 || expr.find("33->") >=0;
|
||||||
|
}
|
||||||
|
|
||||||
void TRiepiloghi_recordset::set_custom_filter(TCursor& cur) const
|
void TRiepiloghi_recordset::set_custom_filter(TCursor& cur) const
|
||||||
{
|
{
|
||||||
|
// Quanto segue potrebbe essere una magia degli TISAM_recordset
|
||||||
|
// o quanto meno dei TDocument_recordset
|
||||||
|
TString filter = cur.filter();
|
||||||
|
bool has_doc = false;
|
||||||
|
if (has_doc_reference(filter))
|
||||||
|
has_doc = true; else
|
||||||
|
if (cur.is_sorted() && has_doc_reference(((TSorted_cursor&)cur).get_order()))
|
||||||
|
has_doc = true;
|
||||||
|
|
||||||
myself = this;
|
myself = this;
|
||||||
cur.set_filterfunction(rdoc_filter, true);
|
cur.set_filterfunction(rdoc_filter, true); // Acc. il true e' obbligatorio :-(
|
||||||
|
cur.setfilter(filter, has_doc, 1);
|
||||||
|
|
||||||
|
int nkey = 6;
|
||||||
|
const TMultilevel_code_info* mci = ca_multilevel_code_info_by_index(0);
|
||||||
|
if (mci != NULL && mci->logic() == LF_CDC)
|
||||||
|
nkey = 7;
|
||||||
|
cur.setkey(nkey);
|
||||||
|
|
||||||
|
TRectype filtrec(LF_RIGHEDOC);
|
||||||
|
if (_codcosto.full())
|
||||||
|
filtrec.put(RDOC_CODCOSTO, _codcosto);
|
||||||
|
if (_codcms.full())
|
||||||
|
filtrec.put(RDOC_CODCMS, _codcms);
|
||||||
|
cur.setregion(filtrec, filtrec);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TRiepiloghi_recordset::set_filter(const TRiepiloghi_mask& msk, int cms_row)
|
void TRiepiloghi_recordset::set_filter(const TRiepiloghi_mask& msk, int cms_row)
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<report name="ci1200a" orientation="2" lpi="6" class="ci1200">
|
<report name="ci1200a" orientation="2" lpi="6" class="ci1200">
|
||||||
<description>Stampa Analitica Risorse</description>
|
<description>Stampa Analitica Risorse</description>
|
||||||
<font face="Courier New" size="10" />
|
<font face="Courier New" size="10" />
|
||||||
|
Loading…
x
Reference in New Issue
Block a user