From d11018ad2d5859e1f25b250fd4817762f99717d4 Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 22 Jul 2005 15:05:35 +0000 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:2.2=20?= =?UTF-8?q?nopatch=20Files=20correlati=20=20=20=20=20:=20Ricompilazione=20?= =?UTF-8?q?Demo=20:=20[=20]=20Commento=20=20=20=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?:stampa=20rendiconto:=20filtro=20finale=20del=20report=20funzio?= =?UTF-8?q?nante=20anche=20con=20estremi=20conto=20e=20data=20vuoti;inseri?= =?UTF-8?q?ta=20la=20selezione=20su=20stato=20numerazione=20documento=20pe?= =?UTF-8?q?r=20mettere=20poi=20il=20filtro=20sui=20documenti=20(necessario?= =?UTF-8?q?=20per=20evitare=20di=20elaborare=20documenti=20gi=C3=A0=20elab?= =?UTF-8?q?orati)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: svn://10.65.10.50/trunk@13288 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/ca3700.cpp | 55 +++++++++++++++++++++++++++++++++++++-------------- ca/ca3700.h | 2 ++ ca/ca3700.uml | 27 ++++++++++++++++++++++++- 3 files changed, 68 insertions(+), 16 deletions(-) diff --git a/ca/ca3700.cpp b/ca/ca3700.cpp index 67c7e8107..f8f063a26 100755 --- a/ca/ca3700.cpp +++ b/ca/ca3700.cpp @@ -357,16 +357,16 @@ static const TPrint_rendiconto_ca_recordset* myself = NULL; TPrint_rendiconto_ca_recordset* rendiconto_recordset() { return (TPrint_rendiconto_ca_recordset* ) myself;} -//metodo per riconoscere se il record corrente soddisfa i filtri della maschera...strafighissimo! +/*//metodo per riconoscere se il record corrente soddisfa i filtri della maschera...strafighissimo! bool TPrint_rendiconto_ca_recordset::valid_record(const TRelation& rel) const { return true; -} +}*/ -bool TPrint_rendiconto_ca_recordset::mov_filter(const TRelation* rel) +/*bool TPrint_rendiconto_ca_recordset::mov_filter(const TRelation* rel) { return myself->valid_record(*rel); -} +}*/ void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const { @@ -374,10 +374,14 @@ void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const //filtro sul file esterno (_tmp, cioè 1000) sui conti selezionati sulla maschera TRectype darec(cur.curr()), arec(cur.curr()); //curr perchè è il file externisamfile + darec.zero(); + arec.zero(); if (!_riclassificato) { - darec.put("CONTO", _daconto); - arec.put("CONTO", _aconto); + if (_daconto.not_empty()) + darec.put("CONTO", _daconto); + if (_aconto.not_empty()) + arec.put("CONTO", _aconto); } else { @@ -385,13 +389,23 @@ void TPrint_rendiconto_ca_recordset::set_custom_filter(TCursor& cur) const arec.put("CONTO", _a_conto_riclas); } - darec.put("DATA", _dadata); - arec.put("DATA", _adata); + //filtro sulla data(non avendo anche codnum non ho la chiave completa per mettere la data nella setregion) + TString filtro; + if (_dadata.ok()) + filtro << "(ANSI(DATA)>=" << _dadata << ")"; + + if (_adata.ok()) + { + if (filtro.not_empty()) + filtro << "&&"; + filtro << "(ANSI(DATA)<=" << _adata << ")"; + } cur.setregion(darec, arec); + cur.setfilter(filtro); myself = this; - cur.set_filterfunction(mov_filter, true); + //cur.set_filterfunction(mov_filter, true); } //metodo per il calcolo del budget PREVENTIVO o VARIAZIONE (sezione di raggruppamento sul report) @@ -402,13 +416,20 @@ real TPrint_rendiconto_ca_recordset::somma_budget(const TString& codconto, const TRelation rel_rmovana(LF_RMOVANA); rel_rmovana.add(LF_MOVANA, "NUMREG==NUMREG"); - //..crea un cursore su movana per avere solo i conti di tipo tipomovana, con il codice conto + //..crea un cursore su rmovana per avere solo i conti di tipo tipomovana, con il codice conto //selezionato e la datacomp compresa nell'intervallo date TRectype da_rmovana(LF_RMOVANA); - da_rmovana.put(RMOVANA_CODCONTO, codconto); - da_rmovana.put(RMOVANA_DATACOMP, _dadata); TRectype a_rmovana(LF_RMOVANA); - a_rmovana.put(RMOVANA_CODCONTO, codconto); + if (!_riclassificato) + { + da_rmovana.put(RMOVANA_CODCONTO, codconto); + a_rmovana.put(RMOVANA_CODCONTO, codconto); + } + else //se riclassificato + { + } + + da_rmovana.put(RMOVANA_DATACOMP, _dadata); a_rmovana.put(RMOVANA_DATACOMP, _adata); TString filtro; @@ -458,13 +479,13 @@ const TVariant& TPrint_rendiconto_ca_recordset::get(const char* column_name) con if (strcmp(column_name, "#PREVENTIVO") == 0) { TVariant& var = get_tmp_var(); - var = rendiconto_recordset()->somma_budget(get(RMOVANA_CODCONTO).as_string(), "P"); + var = rendiconto_recordset()->somma_budget(get("CONTO").as_string(), "P"); return var; } if (strcmp(column_name, "#VARIAZIONE") == 0) { TVariant& var = get_tmp_var(); - var = rendiconto_recordset()->somma_budget(get(RMOVANA_CODCONTO).as_string(), "V"); + var = rendiconto_recordset()->somma_budget(get("CONTO").as_string(), "V"); return var; } } @@ -553,6 +574,8 @@ void TPrint_rendiconto_ca_recordset::salva_rmovana(const TRectype& rmovana, cons else //...sennò si usa il normale piano dei conti analitico (cioè tutti tranne che il CRPA) _tmp->curr().put("CONTO", rmovana.get(RMOVANA_CODCONTO)); //conto + + //i movimenti possono essere normali o generati da documento... if (dadoc) //movimento generato da documento { @@ -619,6 +642,8 @@ void TPrint_rendiconto_ca_recordset::salva_rmovana(const TRectype& rmovana, cons _tmp->curr().put("DOCORIG", riferimento); } + + //campi comuni _tmp->curr().put("DESC", movana.get(MOVANA_DESCR)); //descrizione movana _tmp->curr().put("NRIGA", rmovana.get(RMOVANA_NUMRIG)); _tmp->curr().put("DESCRIGA", rmovana.get(RMOVANA_DESCR)); //descrizione rmovana diff --git a/ca/ca3700.h b/ca/ca3700.h index 37e04e807..da8641ba0 100755 --- a/ca/ca3700.h +++ b/ca/ca3700.h @@ -66,6 +66,8 @@ //elementi dello sheet dei documenti (pag.3) #define SN_CODNUM 101 #define SN_DESCR 102 +#define SN_DASTATO 103 +#define SN_ASTATO 104 #endif // __CA3700_H diff --git a/ca/ca3700.uml b/ca/ca3700.uml index 57cdf766d..ba000f55e 100755 --- a/ca/ca3700.uml +++ b/ca/ca3700.uml @@ -136,8 +136,9 @@ SPREADSHEET F_RIGHE_NUM -1 -2 BEGIN PROMPT 1 2 "" ITEM "Numerazione" -// ITEM "Tipo" ITEM "Descrizione@50" + ITEM "Da stato" + ITEM "A stato" END ENDPAGE @@ -288,6 +289,30 @@ BEGIN COPY OUTPUT SN_CODNUM END +STRING SN_DASTATO 1 +BEGIN + PROMPT 1 3 "Da stato " + USE %STD + CHECKTYPE NORMAL + INPUT CODTAB SN_DASTATO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT SN_DASTATO CODTAB + FLAGS "U" +END + +STRING SN_ASTATO 1 +BEGIN + PROMPT 1 4 "A stato " + USE %STD + CHECKTYPE NORMAL + INPUT CODTAB SN_ASTATO + DISPLAY "Codice" CODTAB + DISPLAY "Descrizione@50" S0 + OUTPUT SN_ASTATO CODTAB + FLAGS "U" +END + BUTTON DLG_OK 10 2 BEGIN PROMPT -13 -1 ""