diff --git a/lv/lv0400.cpp b/lv/lv0400.cpp index 50d0722f4..4e641971c 100755 --- a/lv/lv0400.cpp +++ b/lv/lv0400.cpp @@ -102,11 +102,14 @@ bool TContratti_msk::on_art_select() if (index > 0) { const TString4 umcont(row.get(ss.cid2index(S_UM))); //unità di misura - - //calcolo dotazione iniziale, scritta sia sulla maschera che sullo sheet - const real dotin = artrec.convert_to_um(artrec.clifomag(annoes)[index].get_real(CLIFOGIAC_DOTIN),umcont); - rowmask.set(S_DOTIN, dotin); - row.add(dotin.stringa(), ss.cid2index(S_DOTIN)); + + if (rowmask.get(S_DOTIN).blank()) + { + //calcolo dotazione iniziale, scritta sia sulla maschera che sullo sheet + const real dotin = artrec.convert_to_um(artrec.clifomag(annoes)[index].get_real(CLIFOGIAC_DOTIN),umcont); + rowmask.set(S_DOTIN, dotin); + row.add(dotin.stringa(), ss.cid2index(S_DOTIN)); + } //calcolo dotazione odierna, scritta sia sulla maschera che sullo sheet const real dotod = artrec.convert_to_um(artrec.clifomag(annoes)[index].get_real(CLIFOGIAC_DOTOD),umcont); rowmask.set(S_DOTOD, dotod); @@ -459,6 +462,7 @@ void TContratti_app::save_rows(const TMask& m) magcli.put(CLIFOGIAC_CODCF, clifo); magcli.put(CLIFOGIAC_INDSPED, indsp); magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); found = magcli.read() == NOERR; } //se fallisce la read o non sono in dicembre, allora cerco nell'anno attuale (record svuotato dalla read) @@ -470,6 +474,7 @@ void TContratti_app::save_rows(const TMask& m) magcli.put(CLIFOGIAC_CODCF, clifo); magcli.put(CLIFOGIAC_INDSPED, indsp); magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); found = magcli.read()==NOERR; //se la read fallisce ancora, allora devo inserire tutto da capo (record svuotato dalla read) if (!found) // FORZO LA SCRITTURA DELLA CHIAVE @@ -480,6 +485,7 @@ void TContratti_app::save_rows(const TMask& m) magcli.put(CLIFOGIAC_CODCF, clifo); magcli.put(CLIFOGIAC_INDSPED, indsp); magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); } } //setto i valori delle dotazioni @@ -618,6 +624,7 @@ int TContratti_app:: read(TMask& m) magcli.put(CLIFOGIAC_CODCF, clifo); magcli.put(CLIFOGIAC_INDSPED, indsp); magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); found = magcli.read() == NOERR; } //se fallisce la read o non sono in dicembre, allora cerco nell'anno attuale (record svuotato dalla read) @@ -629,6 +636,7 @@ int TContratti_app:: read(TMask& m) magcli.put(CLIFOGIAC_CODCF, clifo); magcli.put(CLIFOGIAC_INDSPED, indsp); magcli.put(CLIFOGIAC_CODART, codart); + magcli.put(CLIFOGIAC_NRIGA, 1); found = magcli.read() == NOERR; } //se la read riesce, leggo tutti i dati di interesse e li metto nella riga attuale dell sheet @@ -668,8 +676,8 @@ int TContratti_app::write(const TMask& m) //REWRITE: ridefinizione del metodo rewrite() delle TRelation_application int TContratti_app::rewrite(const TMask& m) { - //esegui la write standard - int err=TRelation_application::rewrite(m); + //esegui la rewrite standard + int err = TRelation_application::rewrite(m); //se va a buon fine esegui la save_rows() if(err == NOERR) save_rows(m);