Patch level :
Files correlati : Ricompilazione Demo : [ ] Commento : git-svn-id: svn://10.65.10.50/trunk@19996 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
bcc5af25bd
commit
77a9cb0b47
292
ca/ca3700.cpp
292
ca/ca3700.cpp
@ -158,7 +158,7 @@ bool TPrint_rendiconto_ca_mask::on_field_event(TOperable_field& o, TField_event
|
||||
|
||||
|
||||
TPrint_rendiconto_ca_mask::TPrint_rendiconto_ca_mask()
|
||||
:TAnal_report_mask("ca3700")
|
||||
:TAnal_report_mask("ca3700")
|
||||
{
|
||||
TConfig& cfg = ca_config();
|
||||
const bool use_pdcc = cfg.get_bool("UsePdcc");
|
||||
@ -323,6 +323,7 @@ class TPrint_rendiconto_ca_recordset : public TISAM_recordset
|
||||
bool _implode_rows;
|
||||
TString _prefix;
|
||||
TAssoc_array _ratrisc;
|
||||
TString_array _num_fdr;
|
||||
TRiclass _ricl;
|
||||
|
||||
protected:
|
||||
@ -338,12 +339,19 @@ protected:
|
||||
bool valid_record(const TRelation& rel) const;
|
||||
virtual void set_custom_filter(TCursor& cur) const;
|
||||
|
||||
void calcola_date_da_maschera(const TMask& msk, TDate& dal, TDate& al);
|
||||
int crea_filtro_rmovana_antica(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro);
|
||||
int crea_filtro_rmovana_moderna(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro);
|
||||
void crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
||||
int crea_filtro_rdoc_antica(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date);
|
||||
int crea_filtro_rdoc_moderna(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date);
|
||||
void crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk, TLog_report& log);
|
||||
|
||||
void crea_trr(const TFilename& trr) const;
|
||||
void scrive_riga(TLocalisamfile& tmp, const TRectype& rmovana, const TRectype& movana, const TDocumento* doc,
|
||||
TLog_report& log);
|
||||
void scrive_riga_speciale(TLocalisamfile& tmp, const TDocumento* doc, const TString_array& special_docs);
|
||||
|
||||
int sort_indbil(int indbil) const;
|
||||
const TString& riclassifica(const TBill& zio, TRectype& tmpcurr) const;
|
||||
const TString& riclassifica(const TString& contone, TRectype& tmpcurr) const;
|
||||
@ -378,6 +386,15 @@ TPrint_rendiconto_ca_recordset::TPrint_rendiconto_ca_recordset(const TString& sq
|
||||
break;
|
||||
_ratrisc.add(codcaus, codcaus);
|
||||
}
|
||||
|
||||
//TString_array contenente le numerazioni delle fatture da ricevere
|
||||
for (int j = 0;;j++)
|
||||
{
|
||||
const TString& codfdr = config.get("NF", NULL, j); //scansione delle righe NF(i)=.. sul paragrafo di configurazione CA
|
||||
if (codfdr.blank())
|
||||
break;
|
||||
_num_fdr.add(codfdr);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1227,28 +1244,31 @@ void TPrint_rendiconto_ca_recordset::scrive_riga_speciale(TLocalisamfile& tmp, c
|
||||
} // for (inti=1;i<=rows...
|
||||
}
|
||||
|
||||
|
||||
//scanning delle righe dei movimenti di analitica
|
||||
void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk,
|
||||
TLog_report& log)
|
||||
void TPrint_rendiconto_ca_recordset::calcola_date_da_maschera(const TMask& msk, TDate& dal, TDate& al)
|
||||
{
|
||||
TRelation rel_rmovana(LF_RMOVANA);
|
||||
rel_rmovana.add(LF_MOVANA, "NUMREG==NUMREG"); //aggiunge le testate x avere tipi mov e descr
|
||||
//se siamo fortunati l'anno si può trovare così..
|
||||
int anno = msk.get_int(F_ANNO);
|
||||
if (anno > 0)
|
||||
{
|
||||
TEsercizi_contabili esc;
|
||||
esc.code2range(anno, dal, al);
|
||||
}
|
||||
if (_dadata.ok())
|
||||
dal = _dadata;
|
||||
if (_adata.ok())
|
||||
al = _adata;
|
||||
}
|
||||
|
||||
//..crea un cursore su rmovana per vedere se i conti selezionati hanno veri movimenti che soddisfano
|
||||
//i parametri del filtro sulla maschera. ACHTUNG! Questo filtro ha senso solo se non esiste la
|
||||
//riclassificazione!!!
|
||||
TRectype da_rmovana(LF_RMOVANA);
|
||||
TRectype a_rmovana(LF_RMOVANA);
|
||||
if (!_riclassificato)
|
||||
//vecchio modo di stabilire il filtro ed i darec arec, quando non esistevano chiavi su codcms e codcdc su lf_rmovana
|
||||
int TPrint_rendiconto_ca_recordset::crea_filtro_rmovana_antica(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro)
|
||||
{
|
||||
int cur_key = 2;
|
||||
if (!_riclassificato)
|
||||
{
|
||||
da_rmovana.put(RMOVANA_CODCONTO, _daconto);
|
||||
da_rmovana.put(RMOVANA_CODCONTO, _daconto);
|
||||
a_rmovana.put(RMOVANA_CODCONTO, _aconto);
|
||||
}
|
||||
|
||||
TString filtro;
|
||||
TDate dal, al;
|
||||
|
||||
//se siamo fortunati l'anno si può trovare così..
|
||||
int anno = msk.get_int(F_ANNO);
|
||||
if (anno > 0)
|
||||
@ -1266,9 +1286,19 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
|
||||
else
|
||||
al = TDate();
|
||||
|
||||
|
||||
filtro << "BETWEEN(DATACOMP," << dal.date2ansi() << ',' << al.date2ansi() << ')';
|
||||
|
||||
//gestione della chiave di ricerca: se specificata almeno _dadata usa la chiave 3 per DATACOMP,..
|
||||
//..nell'altro caso usa la chiave 2 per CODCONTO
|
||||
if (dal.ok())
|
||||
{
|
||||
cur_key = 3;
|
||||
da_rmovana.put(RMOVANA_DATACOMP, dal);
|
||||
if (al.ok())
|
||||
a_rmovana.put(RMOVANA_DATACOMP, al);
|
||||
if (!_riclassificato)
|
||||
filtro << "BETWEEN(CODCONTO,\"" << _daconto << "\",\"" << _aconto << "\")";
|
||||
}
|
||||
else
|
||||
filtro << "BETWEEN(DATACOMP," << dal.date2ansi() << ',' << al.date2ansi() << ')';
|
||||
|
||||
if (_codcosto.not_empty())
|
||||
{
|
||||
@ -1289,7 +1319,70 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
|
||||
filtro << "(" << RMOVANA_CODFASE << "==\"" << _codfas << "\")";
|
||||
}
|
||||
|
||||
TCursor cur_rmovana(&rel_rmovana, filtro, 2, &da_rmovana, &a_rmovana);
|
||||
return cur_key;
|
||||
}
|
||||
|
||||
//nuovo modo di costruire il filtro e darec arec, da quando esistono le chiavi per codcm e codcdc su lf_rmovana
|
||||
int TPrint_rendiconto_ca_recordset::crea_filtro_rmovana_moderna(const TMask& msk, TRectype& da_rmovana, TRectype& a_rmovana, TString& filtro)
|
||||
{
|
||||
int cur_key = 4;
|
||||
//intanto sistema darec arec
|
||||
da_rmovana.put(RMOVANA_CODCMS, _codcms);
|
||||
da_rmovana.put(RMOVANA_CODCCOSTO, _codcosto);
|
||||
a_rmovana = da_rmovana;
|
||||
|
||||
const TString& first_lev = ca_config().get("Level", "ca", 1);
|
||||
//se il primo livello è cdc deve cambiare la chiave..
|
||||
if (first_lev == "CDC")
|
||||
cur_key = 5;
|
||||
|
||||
//adesso tocca al filtro
|
||||
//conti
|
||||
if (!_riclassificato)
|
||||
filtro << "BETWEEN(CODCONTO,\"" << _daconto << "\",\"" << _aconto << "\")";
|
||||
|
||||
//date
|
||||
if (!_vitaintera)
|
||||
{
|
||||
TDate dal, al;
|
||||
calcola_date_da_maschera(msk, dal, al);
|
||||
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(BETWEEN(DATACOMP," << dal.date2ansi() << ',' << al.date2ansi() << "))";
|
||||
}
|
||||
|
||||
//fase
|
||||
if (_codfas.not_empty())
|
||||
{
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RMOVANA_CODFASE << "==\"" << _codfas << "\")";
|
||||
}
|
||||
|
||||
return cur_key;
|
||||
}
|
||||
|
||||
//scanning delle righe dei movimenti di analitica
|
||||
void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk,
|
||||
TLog_report& log)
|
||||
{
|
||||
TRelation rel_rmovana(LF_RMOVANA);
|
||||
rel_rmovana.add(LF_MOVANA, "NUMREG==NUMREG"); //aggiunge le testate x avere tipi mov e descr
|
||||
|
||||
//..crea un cursore su rmovana per vedere se i conti selezionati hanno veri movimenti che soddisfano
|
||||
//i parametri del filtro sulla maschera. ACHTUNG! Questo filtro ha senso solo se non esiste la
|
||||
//riclassificazione!!!
|
||||
TRectype da_rmovana(LF_RMOVANA);
|
||||
TRectype a_rmovana(LF_RMOVANA);
|
||||
TString filtro;
|
||||
|
||||
//antico metodo di filtraggio (chiave 2 o 3)
|
||||
//int cur_key = crea_filtro_rmovana_antica(msk, da_rmovana, a_rmovana, filtro);
|
||||
//nuovo metodo di filtraggio (chiave 4 o 5)
|
||||
int cur_key = crea_filtro_rmovana_moderna(msk, da_rmovana, a_rmovana, filtro);
|
||||
|
||||
TCursor cur_rmovana(&rel_rmovana, filtro, cur_key, &da_rmovana, &a_rmovana);
|
||||
const TRecnotype rmovana_items = cur_rmovana.items();
|
||||
//scorre le righe movimenti di analitica che soddisfano il filtro
|
||||
//il join a movana serve nel caso necessitino dati di testata per la riga in questione
|
||||
@ -1356,33 +1449,26 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rmovana(TLocalisamfile& tmp,
|
||||
}
|
||||
}
|
||||
|
||||
//scanning delle righe dei documenti
|
||||
void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk,
|
||||
TLog_report& log)
|
||||
{
|
||||
TRelation rel_rdoc(LF_RIGHEDOC);
|
||||
rel_rdoc.add(LF_DOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==PROVV|NDOC==NDOC"); //aggiunge le testate
|
||||
|
||||
TRectype dardoc(LF_RIGHEDOC);
|
||||
TRectype ardoc(LF_RIGHEDOC);
|
||||
TString filtro_date;
|
||||
|
||||
dardoc.put(RDOC_PROVV, 'D');
|
||||
ardoc.put(RDOC_PROVV, 'D');
|
||||
int TPrint_rendiconto_ca_recordset::crea_filtro_rdoc_antica(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date)
|
||||
{
|
||||
int curr_key = 3;
|
||||
//intanto darec arec
|
||||
da_rdoc.put(RDOC_PROVV, 'D');
|
||||
a_rdoc.put(RDOC_PROVV, 'D');
|
||||
|
||||
TDate dal, al;
|
||||
|
||||
//se siamo fortunati l'anno si può trovare così..
|
||||
int anno = msk.get_int(F_ANNO);
|
||||
if (anno > 0)
|
||||
{
|
||||
dardoc.put(RDOC_ANNO, anno);
|
||||
ardoc.put(RDOC_ANNO, anno);
|
||||
da_rdoc.put(RDOC_ANNO, anno);
|
||||
a_rdoc.put(RDOC_ANNO, anno);
|
||||
}
|
||||
else
|
||||
{
|
||||
dardoc.put(RDOC_ANNO, _dadata.year());
|
||||
ardoc.put(RDOC_ANNO, _adata.year());
|
||||
da_rdoc.put(RDOC_ANNO, _dadata.year());
|
||||
a_rdoc.put(RDOC_ANNO, _adata.year());
|
||||
if (_dadata.year() == _adata.year())
|
||||
anno = _dadata.year();
|
||||
}
|
||||
@ -1402,32 +1488,67 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
||||
else
|
||||
al = TDate();
|
||||
|
||||
|
||||
filtro_date << "BETWEEN(33->DATADOC," << dal.date2ansi() << ',' << al.date2ansi() << ')';
|
||||
|
||||
return curr_key;
|
||||
}
|
||||
|
||||
//fatta su chiave 6 e 7 di lf_rdoc; non controlla le date, ammettendo movimenti non rientranti nell'intervallo di..
|
||||
//..date scelto dalla maschera, purchè tali movimenti appartengano a commessa/cdc in esame
|
||||
int TPrint_rendiconto_ca_recordset::crea_filtro_rdoc_moderna(const TMask& msk, TRectype& da_rdoc, TRectype& a_rdoc, TString& filtro_date)
|
||||
{
|
||||
int cur_key = 6;
|
||||
//intanto sistema darec arec
|
||||
da_rdoc.put(RDOC_CODCMS, _codcms);
|
||||
da_rdoc.put(RDOC_CODCOSTO, _codcosto);
|
||||
a_rdoc = da_rdoc;
|
||||
|
||||
//gestione chiave di scansione
|
||||
const TString& first_lev = ca_config().get("Level", "ca", 1);
|
||||
//se il primo livello è cdc..
|
||||
if (first_lev == "CDC")
|
||||
cur_key = 7;
|
||||
|
||||
//filtro date
|
||||
if (!_vitaintera)
|
||||
{
|
||||
TDate dal, al;
|
||||
calcola_date_da_maschera(msk, dal, al);
|
||||
|
||||
if (filtro_date.not_empty())
|
||||
filtro_date << "&&";
|
||||
filtro_date << "(BETWEEN(33->DATADOC," << dal.date2ansi() << ',' << al.date2ansi() << "))";
|
||||
}
|
||||
return cur_key;
|
||||
}
|
||||
|
||||
//scanning delle righe dei documenti
|
||||
void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, const TPrint_rendiconto_ca_mask& msk,
|
||||
TLog_report& log)
|
||||
{
|
||||
TRelation rel_rdoc(LF_RIGHEDOC);
|
||||
rel_rdoc.add(LF_DOC, "CODNUM==CODNUM|ANNO==ANNO|PROVV==PROVV|NDOC==NDOC"); //aggiunge le testate
|
||||
|
||||
TRectype da_rdoc(LF_RIGHEDOC);
|
||||
TRectype a_rdoc(LF_RIGHEDOC);
|
||||
TString filtro_date;
|
||||
|
||||
//metodo antico
|
||||
//const int cur_key = crea_filtro_rdoc_antica(msk, da_rdoc, a_rdoc, filtro_date);
|
||||
//metodo moderno
|
||||
const int cur_key = crea_filtro_rdoc_moderna(msk, da_rdoc, a_rdoc, filtro_date);
|
||||
|
||||
TContabilizzazione_analitica cont_anal; //oggetto necessario per contabilizzare il documento in osservazione
|
||||
|
||||
//inizialmente il filtro di scansione delle righedoc coincide con quello sulle date
|
||||
TString filtro = filtro_date;
|
||||
|
||||
//Controlla sul file di configurazione di CA (ditta.ini,[ca]) se esistono numerazioni relative
|
||||
//..alle fatture da ricevere che devono essere trattate in modo particolare
|
||||
TConfig& config = ca_config();
|
||||
//TString_array contenente le numerazioni delle fatture da ricevere
|
||||
TString_array num_fdr;
|
||||
for (int j = 0;;j++)
|
||||
{
|
||||
const TString& codfdr = config.get("NF", NULL, j); //scansione delle righe NF(i)=.. sul paragrafo di configurazione CA
|
||||
if (codfdr.blank())
|
||||
break;
|
||||
num_fdr.add(codfdr);
|
||||
}
|
||||
|
||||
//Filtro sulle righe documento (e testate collegate)
|
||||
//Controlla sul file di configurazione di CA (ditta.ini,[ca]) se esistono numerazioni da escludere..
|
||||
//..e se, per alcune numerazioni, deve tener conto dello stato del documento
|
||||
bool update = false;
|
||||
TConfig& config = ca_config();
|
||||
for (int i = 0;;i++) //scansione delle righe ND(i)=.. sul paragrafo di configurazione CA
|
||||
{
|
||||
TToken_string num_doc(config.get("ND", NULL, i));
|
||||
@ -1453,19 +1574,22 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
||||
}
|
||||
|
||||
//poi deve aggiungere il filtro per cdc/cms/fas
|
||||
if (_codcosto.not_empty())
|
||||
{
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RDOC_CODCOSTO << "==\"" << _codcosto << "\")";
|
||||
}
|
||||
if (_codcms.not_empty())
|
||||
{
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RDOC_CODCMS << "==\"" << _codcms << "\")";
|
||||
}
|
||||
if (_codfas.not_empty())
|
||||
if (cur_key == 3) //questo solo se si usa la chiave 3 (metodo restrittivo antico)
|
||||
{
|
||||
if (_codcosto.not_empty())
|
||||
{
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RDOC_CODCOSTO << "==\"" << _codcosto << "\")";
|
||||
}
|
||||
if (_codcms.not_empty())
|
||||
{
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
filtro << "(" << RDOC_CODCMS << "==\"" << _codcms << "\")";
|
||||
}
|
||||
}
|
||||
if (_codfas.not_empty()) //questo in ogni modo, anche con chiave 6 o 7 (oltre che 3)
|
||||
{
|
||||
if (filtro.not_empty())
|
||||
filtro << "&&";
|
||||
@ -1473,7 +1597,7 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
||||
}
|
||||
|
||||
//il filtro è completo;può eseguire la scansione
|
||||
TCursor cur_rdoc(&rel_rdoc, "", 3, &dardoc, &ardoc);
|
||||
TCursor cur_rdoc(&rel_rdoc, "", cur_key, &da_rdoc, &a_rdoc);
|
||||
cur_rdoc.setfilter(filtro, update);
|
||||
|
||||
const TRecnotype rdoc_items = cur_rdoc.items();
|
||||
@ -1507,7 +1631,7 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
||||
//..importo verra' poi messo nel fatturato.
|
||||
const TRectype& curr_rdoc = cur_rdoc.curr();
|
||||
const TString& rdoc_dacodnum = curr_rdoc.get(RDOC_DACODNUM);
|
||||
const bool is_special_doc = num_fdr.find(rdoc_dacodnum) > 0;
|
||||
const bool is_special_doc = _num_fdr.find(rdoc_dacodnum) > 0;
|
||||
//documento non contabilizzato o fattura da ricevere con numerazione configurata speciale
|
||||
if (numregca == 0 || is_special_doc)
|
||||
{
|
||||
@ -1551,7 +1675,7 @@ void TPrint_rendiconto_ca_recordset::crea_righe_da_rdoc(TLocalisamfile& tmp, con
|
||||
else
|
||||
{
|
||||
//righe di documento configurate come da emettere/ricevere (documenti speciali)
|
||||
scrive_riga_speciale(tmp, &doc, num_fdr);
|
||||
scrive_riga_speciale(tmp, &doc, _num_fdr);
|
||||
}
|
||||
} //if (numregca==0...
|
||||
|
||||
@ -2060,17 +2184,45 @@ void TPrint_rendiconto_ca::main_loop()
|
||||
{
|
||||
TToken_string& row = sheet.row(-1); //crea la prima riga dello sheet
|
||||
|
||||
//si amplia il range di ricerca temporale di 1 anno nel passato perchè i movana..
|
||||
//..preventivi possono essere stati decisi prima dell'inizio effettivo commessa
|
||||
TDate dataini, datafin;
|
||||
const int anno = mask.get_int(F_ANNO);
|
||||
if (anno > 0) //se non è stata specificata alcuna dataini, ma è stato specificato un anno di esercizio...
|
||||
{
|
||||
TEsercizi_contabili esc;
|
||||
esc.code2range(anno, dataini, datafin);
|
||||
}
|
||||
if (!mask.field(F_DATAINI).empty())
|
||||
dataini = mask.get_date(F_DATAINI);
|
||||
if (!mask.field(F_DATAFIN).empty())
|
||||
datafin = mask.get_date(F_DATAFIN);
|
||||
|
||||
const TMultilevel_code_info& liv1 = get_first_level(); //stabilisce quale è il primo livello (tra CDC e CMS)..
|
||||
TISAM_recordset set(liv1.logic() == LF_CDC ? "USE CDC" : "USE COMMESSE"); //..e di conseguenza scrive la use giusta
|
||||
const bool is_cms = liv1.logic() == LF_COMMESSE;
|
||||
TISAM_recordset set(is_cms ? "USE COMMESSE" : "USE CDC"); //..e di conseguenza scrive la use giusta
|
||||
|
||||
TProgind pi(set.items(), video_string, true, true);
|
||||
for (int i = 0; set.move_to(i); i++) //fighissimo metodo per scandire un file in 1 riga!
|
||||
{
|
||||
pi.addstatus(1);
|
||||
if (pi.iscancelled())
|
||||
if (!pi.addstatus(1))
|
||||
break;
|
||||
|
||||
//Filtro sulle date
|
||||
//DATE VALIDE STRETTAMENTE PER COMMESSE
|
||||
//per prima cosa controlla se veramente la commessa rientri nei parametri temporali impostati sulla maschera
|
||||
//Se infatti è completamente al di fuori di tale intervallo, che cavolo la controlla a fare
|
||||
row = set.get((unsigned int)0).as_string(); //prende il valore del primo campo del file (CDC o CMS code)
|
||||
|
||||
if (is_cms && (dataini.ok() || datafin.ok()))
|
||||
{
|
||||
const TRectype& rec_commesse = set.cursor()->curr();
|
||||
TDate datainicms, datafcomp;
|
||||
ca_durata_commessa(rec_commesse, datainicms, datafcomp);
|
||||
if ((dataini.ok() && datafcomp < dataini) || (datafin.ok() && datainicms > datafin))
|
||||
continue;
|
||||
}
|
||||
|
||||
video_string = TR("Scansione");
|
||||
video_string << " " << row; //completa la stringa da visualizzare sulla progind
|
||||
pi.set_text(video_string);
|
||||
|
Loading…
x
Reference in New Issue
Block a user