Uso el TBrowseNew, tengo un problema como hago para que me refresque column:footing, ya que tengo unos valores y me cambian de valor, alguien me puede indicar como solucionarlo.
uso una matriz-
Código: Selecionar todos
::Obje := TBrowseNew( a1, a2, b1, b2 )
::S_SUMA(11)
::Obje:skipBlock := {|x| ;
k := IF(ABS(x) >= IF(x >= 0,;
::MAXLEN - nSubscript, nSubscript - 1),;
IF(x >= 0, ::MAXLEN - nSubscript,;
1 - nSubscript),;
x), nSubscript += k,;
k }
::Obje:goTopBlock := {|| nSubscript := 1}
::Obje:goBottomBlock := {|| nSubscript := ::MAXLEN}
::Obje:colorSpec := oApp:COLOR_BROWS //color30 //"b/w,gr+/rb,r/w,g/rb,n+/w,w+/b" //color30
* ::Obje:colorSpec := MYCOLORS
* ::Obje:headSep := HSEP
* ::Obje:colSep := CSEP
::Obje:colSep := DEF_SEP
::Obje:headSep := DEF_HSEP
::Obje:footSep := DEF_FSEP
// One subarray per column
column := TbcolumnNew( "M.", ;
{|p| If( p == NIL, ::aArray[nSubscript,1],;
::aArray[nSubscript,1] := p)})
column:picture := "!"
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "Borra")
column := TbcolumnNew( "No;Factura", ;
{|p| If( p == NIL, ::aArray[nSubscript,2],;
::aArray[nSubscript,2] := p)})
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "Nfac")
column := TbcolumnNew( "Descuento;P.Pago", ;
{|p| If( p == NIL, ::aArray[nSubscript,3],;
::aArray[nSubscript,3] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XVALOR_DESC ,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "XX")
column := TbcolumnNew( "Valor;Retencion", ;
{|p| If( p == NIL, ::aArray[nSubscript,4],;
::aArray[nSubscript,4] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XVALOR_RETE ,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "XX")
column := TbcolumnNew( "Valor;Aplicar", ;
{|p| If( p == NIL, ::aArray[nSubscript,5],;
::aArray[nSubscript,5] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XVALOR_APL ,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
column:defColor := { 5, 6, 2, 3 } // { 6, 3, 4, 2 } { 5, 6, 2, 3 } { 3, 4, 5, 6 } { 2, 1, 3, 4 } //PXPpruebas.prg
//column:colorBlock := {|val| { val % 5 + 1, val % 3 + 2 } }
SET_FIELD_NAME( Column, "XX")
column := TbcolumnNew( "Valor;Rete.Iva", ;
{|p| If( p == NIL, ::aArray[nSubscript,6],;
::aArray[nSubscript,6] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XVALOR_XIVA,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "XX")
column := TbcolumnNew( "Valor;Rete.ica", ;
{|p| If( p == NIL, ::aArray[nSubscript,9],;
::aArray[nSubscript,9] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XVALOR_RICA,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "XX")
column := TbcolumnNew( "Valor;CxC", ;
{|p| If( p == NIL, ::aArray[nSubscript,7],;
::aArray[nSubscript,7] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XVALOR_CXC ,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "XX")
column := TbcolumnNew( "Saldo;Documento", ;
{|p| If( p == NIL, ::aArray[nSubscript,8],;
::aArray[nSubscript,8] := p)})
column:picture := "999,999,999.99"
column:footing := TRANSFORM(::XSALDO_DOC,"999,999,999.99") // Eval(aBlock)
::Obje:addcolumn( column )
SET_FIELD_NAME( Column, "XX")
APP_MODE_OFF( ::Obje )
::clt_cep := 0
::new_pos:=1
asimenu1(::aContl[11],0,xps,edmenu,a1,a2,b1,b2)
WHILE .T.
nMouseR := 0; nMouseC := 0
STABILIZE ::Obje INKEY TO nKey
If xps=0
IF (::Obje:stable)
nLastKey := rat_event(0,.f.,.f.,@nMouseR,@nMouseC)
nKey := nLastKey //INKEY(0) nuevo para manejar reareas mau s
ENDIF
// @ 21,31 say x_tot_uni picture "999,999,999.9"
IF !::TbMoveCursor( nKey, nMouseR, nMouseC,0,11,a1, a2, b1, b2 )
IF (nKey == 287) .OR. (ISMOUSEAT(nMouseR, nMouseC,b1+1,a2+23,b1+1,a2+31)) //* IF (nKey == K_ESC )
EXIT
ELSEIF ( nKey == K_F1 )
oApp:BROHELP()
ELSEIF (nKey == K_ENTER)
::DoGet( 0,Nil ) //DoGet( 0,::Obje,aArray,::new_pos ,t_tra)
ELSEIF (nKey == K_DEL) .OR. (ISMOUSEAT(nMouseR, nMouseC,b1+1,a2+12,b1+1,a2+21))
if ::c_edi = 1
if ::aArray[::new_pos,1]="*"
::aArray[::new_pos,1] := " "
else
::aArray[::new_pos,1] := "*"
endif
::Obje:refreshCurrent()
endif
ELSEIF (nKey == K_INS ) .OR. (ISMOUSEAT(nMouseR, nMouseC,b1+1,a2+02,b1+1,a2+10))
if ::c_edi = 1
if ::aArray[::MAXLEN,2]=" "
else
::ini_detpagfac(" " )
::MAXLEN++
::new_pos:=::MAXLEN
endif
::Obje:goBottom()
::DoGet( 1,Nil )
endif
ELSEIF (nKey == K_F3)
::Obje:configure()
::Obje:invalidate()
ELSE
// ::b_displ(0)
ENDIF
// este es el que actualiza los valores peron no los muestra.
::S_SUMA(11)
ENDIF
Else
Exit
Endif
END
** SCROLL()
** restscreen(,,,,cScreen)
RETURN (NIL)

