Patch level :10.0
Files correlati : Ricompilazione Demo : [ ] Commento : cambiato il modo di fare la query sui documenti! adesso usa una custom_filter anziche una SELECT nella query; questo perche' la select era diventata piu' lunga di 256 caratteri in quanto le commesse di supporto si erano moltiplicate come i pani e i pesci! git-svn-id: svn://10.65.10.50/branches/R_10_00@22095 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
af8c6eb1fe
commit
4f46730350
@ -105,6 +105,42 @@ static int compare_by_fase(TSheet_field & s, int r1, int r2)
|
|||||||
return cmp;
|
return cmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// Recordset
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
static TToken_string _commesse_supporto;
|
||||||
|
|
||||||
|
class TCommesse_supporto_recordset : public TISAM_recordset
|
||||||
|
{
|
||||||
|
static bool cms_supp_filter(const TRelation* rel);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void set_custom_filter(TCursor& cursor) const;
|
||||||
|
|
||||||
|
public:
|
||||||
|
TCommesse_supporto_recordset(const TString& query, const TToken_string& lista_cms_supp);
|
||||||
|
};
|
||||||
|
|
||||||
|
bool TCommesse_supporto_recordset::cms_supp_filter(const TRelation* rel)
|
||||||
|
{
|
||||||
|
const TString& curr_codcms = rel->curr().get(RDOC_CODCMS);
|
||||||
|
return _commesse_supporto.get_pos(curr_codcms) >= 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TCommesse_supporto_recordset::set_custom_filter(TCursor& cursor) const
|
||||||
|
{
|
||||||
|
if (!_commesse_supporto.empty_items())
|
||||||
|
cursor.set_filterfunction(cms_supp_filter);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
TCommesse_supporto_recordset::TCommesse_supporto_recordset(const TString& query, const TToken_string& lista_cms_supp)
|
||||||
|
:TISAM_recordset(query)
|
||||||
|
{
|
||||||
|
_commesse_supporto = lista_cms_supp;
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// TAutomask
|
// TAutomask
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
@ -1227,17 +1263,14 @@ void TVariazione_budget_mask::calcola_impegnato(const TString& cms, const bool i
|
|||||||
//cerca tutte le righe documento che soddisfano i numerosi parametri
|
//cerca tutte le righe documento che soddisfano i numerosi parametri
|
||||||
TString query;
|
TString query;
|
||||||
query << "USE RDOC";
|
query << "USE RDOC";
|
||||||
query << "\nSELECT (";
|
|
||||||
//query << "\nSELECT (RIGAEVASA!=\"X\")&&("; originale con solo righe inevase
|
|
||||||
FOR_EACH_TOKEN(_cms_supporto, codcms)
|
|
||||||
query << "(CODCMS==\"" << codcms << "\")||";
|
|
||||||
query.rtrim(2);
|
|
||||||
query << ')';
|
|
||||||
query << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC"; //le testate servono per controllo tipo (vedi sotto)
|
query << "\nJOIN DOC INTO PROVV==PROVV ANNO==ANNO CODNUM==CODNUM NDOC==NDOC"; //le testate servono per controllo tipo (vedi sotto)
|
||||||
query << "\nFROM CODNUM=#CODNUM ANNO=#DAANNO";
|
query << "\nFROM CODNUM=#CODNUM ANNO=#DAANNO";
|
||||||
query << "\nTO CODNUM=#CODNUM ANNO=#AANNO";
|
query << "\nTO CODNUM=#CODNUM ANNO=#AANNO";
|
||||||
|
|
||||||
TISAM_recordset recset(query);
|
//usando il magico TCommesse_supporto_recordset vengono scartate tutte le righedoc che non hanno commessa corretta,..
|
||||||
|
//..ovvero le commesse che non appartengono alla lista _cms_supporto
|
||||||
|
TCommesse_supporto_recordset recset(query, _cms_supporto);
|
||||||
|
|
||||||
recset.set_var("#CODNUM", codnum);
|
recset.set_var("#CODNUM", codnum);
|
||||||
recset.set_var("#DAANNO", (long)da_anno);
|
recset.set_var("#DAANNO", (long)da_anno);
|
||||||
recset.set_var("#AANNO", (long)a_anno);
|
recset.set_var("#AANNO", (long)a_anno);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user