Página 1 de 1

Recorrer dbf con skip no va

Publicado: Mié Mar 04, 2015 1:00 pm
por JavierCantarero
Buenas, os pongo en situación; estoy añadiendo registros en un tbbrowse a una dbf, de manera que en la columna de codigo no hago get y tengo puesto en el dataset en el método OnPostAppend la siguiente funcion:
METHOD OKNewRegistro( oSender ) CLASS MainIva
Local nRegAct := ::oDbfIVA:Recno()
Local cCodNew

::oDbfIVA:OrdSetFocus("CODIGO")
// DESDE AQUI ESTA PARA DEPURAR

::oDbfIVA:GoTop()

WHILE !::oDbfIVA:Eof()

MsgInfo( ::oDbfIVA:codigo )

::oDbfIVA:Skip()

END
// HASTA AQUI LA DEPURACION

::oDbfIVA:GoBottom()

::oDbfIVA:Skip(-1)

cCodNew := Right( "00" + AllTrim( Str( Val( ::oDbfIVA:codigo ) + 1 ) ), 2 )

::oDbfIVA:Goto( nRegAct )

::oDbfIVA:Edit(.T.)
::oDbfIVA:codigo := cCodNew
::oDbfIVA:Update()

::oBrwIva:Refresh()
RETURN Nil

Bueno, pues los "Msginfo" siempre me dan vací­o, es como si no recorriera la dbf sino el tbbrowse y "cCodNew" siempre es "01"
¿que estoy haciendo mal, por favor?
Muchas gracias

Recorrer dbf con skip no va

Publicado: Jue Mar 05, 2015 4:30 am
por Carlos Ortiz
Proba de quitar el enlace del dataset al browse con
::oDBBrowseEnca:oDataSet:lUpdLinked:=.f.
justo antes del recorrido
cuando termines lo enlazas de nuevo
::oDBBrowseEnca:oDataSet:lUpdLinked:=.t.
Carlos
El 04/03/2015 a las 09:00, Javier Cantero escribió:
> Buenas, os pongo en situación; estoy añadiendo registros
> en un tbbrowse a una dbf, de manera que en la columna de
> codigo no hago get y tengo puesto en el dataset en el
> método OnPostAppend la siguiente funcion:
>
> METHOD OKNewRegistro( oSender ) CLASS MainIva
>
> Local nRegAct := ::oDbfIVA:Recno()
> Local cCodNew ::oDbfIVA:OrdSetFocus("CODIGO")
>
> // DESDE AQUI ESTA PARA DEPURAR
> ::oDbfIVA:GoTop()
> WHILE !::oDbfIVA:Eof()
> MsgInfo( ::oDbfIVA:codigo )
> ::oDbfIVA:Skip()
> END
>
> // HASTA AQUI LA DEPURACION
> ::oDbfIVA:GoBottom()
> ::oDbfIVA:Skip(-1)
> cCodNew := Right( "00" + AllTrim( Str( Val(
> ::oDbfIVA:codigo ) + 1 ) ), 2 )
> ::oDbfIVA:Goto( nRegAct )
> ::oDbfIVA:Edit(.T.)
> ::oDbfIVA:codigo := cCodNew
> ::oDbfIVA:Update()
> ::oBrwIva:Refresh()
>
> RETURN Nil
>
> Bueno, pues los "Msginfo" siempre me dan vací­o, es como si
> no recorriera la dbf sino el tbbrowse
> ¿que estoy haciendo mal, por favor?
>
> Muchas gracias

Recorrer dbf con skip no va

Publicado: Jue Mar 05, 2015 9:17 am
por JavierCantarero
No funciona, ahora mismo funciona de esta manera (pongo el metodo completo ):
Local nRegAct := ::oDbfIVA:Recno()
Local cCodNew

::oDbfIVA:OrdSetFocus("CODIGO")
:oDbfIVA:GoBottom()
cCodNew := Right( "00" + AllTrim( Str( Val( ::oBrwIva:aCols[1]:Value ) + 1 ) ), 2 )
::oDbfIVA:Goto( nRegAct )
::oDbfIVA:Edit(.T.)
::oDbfIVA:codigo := cCodNew
::oDbfIVA:Update()

::oBrwIva:Refresh()

Como veis cojo el valor del tbbrowse, pero no creo que así­ esté correcto, porque esto es una tabla de tipos de IVA, que se añadirá cada 4 años como mí­nimo (lo que dura una legislatura, jejeje), pero otra tabla donde puedan acceder mas usuarios a la vez me pueden crear registros con el mismo código.
Ayuda.....
Muchas gracias