Page 1 of 1

replace value on xbrowse ( tdatabase)

Posted: Tue Apr 20, 2021 8:50 am
by Silvio.Falconi
I open the reserva.dbf with Tdatabase and build axbrowse

Image

I need to calc the days on the Seven column ( red column)

WITH OBJECT oBrowse:aCols[ 7]
:bEditValue := TotalDays(oBrowse)
END

I tried with ( but not run ok )

Function TotalDays(oBrowse)
local nRecord := oBrowse:narrayat
local dStart := oBrowse:aArrayData[nRecord][5]
local dEnd := oBrowse:aArrayData[nRecord][6]
local nGiorni:= (dEnd-dStart)+1
*oBrowse:aCols[7]:VarPut(nGiorni)
return nGiorni

any solution ?

Re: replace value on xbrowse ( tdatabase)

Posted: Tue Apr 20, 2021 11:46 am
by Marc Venken
Silvio,

Maybe a good solution is to change the data/header that the column is showing the calculated data automatic when you setup the browse.

I have seen code like this :


ADD TO oBrw HEADER "NET" DATA ROUND( oBrw:aRow[5] * oBrw:aRow[7] - oBrw:aRow[ 8 ], 0 ) ;
PICTURE "999,999,999"

Re: replace value on xbrowse ( tdatabase)

Posted: Tue Apr 20, 2021 11:49 am
by Marc Venken
.Or.

Code: Select all | Expand



WITH OBJECT :PRIJS
    :nEditType     := EDIT_GET
    :bOnChange     := { |oCol,uOldVal| Herberekening( oLbxdet, oCol:Value ) }
    :bKeyChar      := { |k| If( k == VK_RETURN, ( oLbxdet:GoRight(), 0 ), nil ) }
ENDWITH


function Herberekening(oBrw,oCol)
  local nTotaal:=0
  nTotaal = (oBrw:BES:value * oBrw:prijs:value) - ;
            ((oBrw:BES:value*oBrw:prijs:value)*oBrw:kor:value/100)
  oBrw:totaal:varput(nTotaal)
  oBrw:BACK:varput(oBrw:BES:value - oBrw:LEV:value)
  oBrw:MakeTotals()
  oBrw:refresh()
return .t.



 

Re: replace value on xbrowse ( tdatabase)

Posted: Tue Apr 20, 2021 1:52 pm
by nageswaragunupudi

Code: Select all | Expand

oBrowse:aCols[ 7 ]:bEditValue := { || oBrowse:oCol(6):Value - oBrowse:oCol(5):Value + 1 }
 

Re: replace value on xbrowse ( tdatabase)

Posted: Wed Apr 21, 2021 8:08 am
by Silvio.Falconi
nageswaragunupudi wrote:

Code: Select all | Expand

oBrowse:aCols[ 7 ]:bEditValue := { || oBrowse:oCol(6):Value - oBrowse:oCol(5):Value + 1 }
 


thanks rao I sent you the test