if I go to change the penultimate line, then the last row is also changed why ?
on my xbrowse at init I made
I use array on Xbrowse
bCalcRow := { || (MyCalcFun(oBrowse,.t.), CalcoloTotali(oBrowse,aGet) )}
MyCalcFun function
Code: Select all
Function MyCalcFun(oBrowse,lModifica)
Local dData_in := oBrowse:aCols[ 7 ]:Value
Local dData_out := oBrowse:aCols[ 8 ]:Value
Local lStagioneIntera
Local nTipoServizio := oBrowse:aCols[ 2]:Value
Local nCosto := 0
Local nTotalexQuantita:= 0
Local cProdotto := oBrowse:aCols[ 3 ]:Value
Local nQuantita := oBrowse:aCols[ 4 ]:Value
Local nGiorni := (dData_out - dData_in )+1
Local nSconto := oBrowse:aCols[ 10 ]:Value
local nTotale := oBrowse:aCols[ 11 ]:Value
// controllo stagione Intera
IF nGiorni > 90 //mettere in configurazione Max_giorni_intera
lStagioneIntera := .t.
else
lStagioneIntera := Is_Stagionale(dData_in,dData_out)
Endif
IF lModifica
// modifica riga
If nTipoServizio<>"E" // se è diverso da elemento
If lStagioneIntera
nCosto := Prezzo_Servizi(dData_in,dData_out,lStagioneIntera,cProdotto)
nTotalexQuantita:= nQuantita * nCosto
nTotale := nTotalexQuantita - nSconto
else
nCosto := Prezzo_Servizi(dData_in,dData_out,lStagioneIntera,cProdotto)// oBrowse:aCols[ 5 ]:Value
nTotalexQuantita:= nQuantita * nCosto
nTotale := (nTotalexQuantita - nSconto) * nGiorni
Endif
else
Msginfo("Non puoi modificare i prezzi e il totale su questa riga")
Endif
ELSE
// inserimento riga
If lStagioneIntera
nCosto := Prezzo_Servizi(dData_in,dData_out,lStagioneIntera,cProdotto)
nTotalexQuantita:= nQuantita * nCosto
nTotale := nTotalexQuantita - nSconto
else
nCosto := oBrowse:aCols[ 5 ]:Value
nTotalexQuantita:= nQuantita * nCosto
nTotale := (nTotalexQuantita - nSconto) * nGiorni
Endif
ENDIF
// save on xbrowse
oBrowse:aCols[5]:VarPut( nCosto)
oBrowse:aCols[6]:VarPut(nTotalexQuantita)
oBrowse:aCols[9]:VarPut (nGiorni)
oBrowse:aCols[11]:VarPut( nTotale )
return nil