Página 1 de 1

Sobre DataSet

Publicado: Mié Sep 07, 2005 11:12 am
por Xevi
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--

Sobre DataSet

Publicado: Mié Sep 07, 2005 12:20 pm
por ignacio
Xevi,
>> ::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
Para ello deberás pasarle además un .T. como parametro. Y sinceramente no te lo recomiendo a no ser de que montes un sistema de autocancelación por tiempo o quites el telefóno al usuario y además le esposes al ordenador ;-)
>> ¿Es correcto... es así­ como debe de hacerse???
Correctí­simo
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:431eaef7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--

Sobre DataSet

Publicado: Mié Sep 07, 2005 12:59 pm
por Xevi
Ignacio,
>Correctí­simo
Me alegro... ya le voy cojiendo el feeling a Xailer!!!
Una cosa mas...
Al entrar en el Bucle, y modificar los datos del DataSet, se va modificando también el DBBrowse...
¿Hay alguna manera de "paralizar" el DBBrowse hasta que no termine el bucle???
He probado poner DBBrowse1:lEnabled a .F., pero hace lo mismo...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ebeda$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
>> ::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
Para ello deberás pasarle además un .T. como parametro. Y sinceramente no te lo recomiendo a no ser de que montes un sistema de autocancelación por tiempo o quites el telefóno al usuario y además le esposes al ordenador ;-)
>> ¿Es correcto... es así­ como debe de hacerse???
Correctí­simo
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:431eaef7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--

Sobre DataSet

Publicado: Mié Sep 07, 2005 1:58 pm
por ignacio
Xevi,
Los ves durante el proceso de Update() o incluso durante la propia edición?
Para parar el pintado puedes hacer oBrowse:lRedraw a .F.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431ec7fc@ozsrvnegro.ozlan.local...]431ec7fc@ozsrvnegro.ozlan.local...[/email]
Ignacio,
>Correctí­simo
Me alegro... ya le voy cojiendo el feeling a Xailer!!!
Una cosa mas...
Al entrar en el Bucle, y modificar los datos del DataSet, se va modificando también el DBBrowse...
¿Hay alguna manera de "paralizar" el DBBrowse hasta que no termine el bucle???
He probado poner DBBrowse1:lEnabled a .F., pero hace lo mismo...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ebeda$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
>> ::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
Para ello deberás pasarle además un .T. como parametro. Y sinceramente no te lo recomiendo a no ser de que montes un sistema de autocancelación por tiempo o quites el telefóno al usuario y además le esposes al ordenador ;-)
>> ¿Es correcto... es así­ como debe de hacerse???
Correctí­simo
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:431eaef7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--

Sobre DataSet

Publicado: Mié Sep 07, 2005 2:17 pm
por Xevi
Ignacio,
En el proceso de Update() o en el Skip(), si saco uno el otro refresca el DBBrowse.
De momento lo que tengo echo, es abrir la DBF, en otra instancia, modificar los datos y cerrar. Luego hago un Refresh() del DataSet, y listo funcionando...
Tengo que darle mas caña al DataSet...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ed602$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Los ves durante el proceso de Update() o incluso durante la propia edición?
Para parar el pintado puedes hacer oBrowse:lRedraw a .F.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431ec7fc@ozsrvnegro.ozlan.local...]431ec7fc@ozsrvnegro.ozlan.local...[/email]
Ignacio,
>Correctí­simo
Me alegro... ya le voy cojiendo el feeling a Xailer!!!
Una cosa mas...
Al entrar en el Bucle, y modificar los datos del DataSet, se va modificando también el DBBrowse...
¿Hay alguna manera de "paralizar" el DBBrowse hasta que no termine el bucle???
He probado poner DBBrowse1:lEnabled a .F., pero hace lo mismo...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ebeda$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
>> ::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
Para ello deberás pasarle además un .T. como parametro. Y sinceramente no te lo recomiendo a no ser de que montes un sistema de autocancelación por tiempo o quites el telefóno al usuario y además le esposes al ordenador ;-)
>> ¿Es correcto... es así­ como debe de hacerse???
Correctí­simo
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:431eaef7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--

Sobre DataSet

Publicado: Mié Sep 07, 2005 2:21 pm
por ignacio
Xevi,
Mirate bien los metódos DataSet:SaveState y RestoreState
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431eda60@ozsrvnegro.ozlan.local...]431eda60@ozsrvnegro.ozlan.local...[/email]
Ignacio,
En el proceso de Update() o en el Skip(), si saco uno el otro refresca el DBBrowse.
De momento lo que tengo echo, es abrir la DBF, en otra instancia, modificar los datos y cerrar. Luego hago un Refresh() del DataSet, y listo funcionando...
Tengo que darle mas caña al DataSet...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ed602$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Los ves durante el proceso de Update() o incluso durante la propia edición?
Para parar el pintado puedes hacer oBrowse:lRedraw a .F.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431ec7fc@ozsrvnegro.ozlan.local...]431ec7fc@ozsrvnegro.ozlan.local...[/email]
Ignacio,
>Correctí­simo
Me alegro... ya le voy cojiendo el feeling a Xailer!!!
Una cosa mas...
Al entrar en el Bucle, y modificar los datos del DataSet, se va modificando también el DBBrowse...
¿Hay alguna manera de "paralizar" el DBBrowse hasta que no termine el bucle???
He probado poner DBBrowse1:lEnabled a .F., pero hace lo mismo...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ebeda$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
>> ::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
Para ello deberás pasarle además un .T. como parametro. Y sinceramente no te lo recomiendo a no ser de que montes un sistema de autocancelación por tiempo o quites el telefóno al usuario y además le esposes al ordenador ;-)
>> ¿Es correcto... es así­ como debe de hacerse???
Correctí­simo
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:431eaef7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--

Sobre DataSet

Publicado: Mié Sep 07, 2005 2:38 pm
por Xevi
Ignacio, fuente de sabidurí­a !!!
Problema resuelto, Gracias.
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431edb30$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Mirate bien los metódos DataSet:SaveState y RestoreState
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431eda60@ozsrvnegro.ozlan.local...]431eda60@ozsrvnegro.ozlan.local...[/email]
Ignacio,
En el proceso de Update() o en el Skip(), si saco uno el otro refresca el DBBrowse.
De momento lo que tengo echo, es abrir la DBF, en otra instancia, modificar los datos y cerrar. Luego hago un Refresh() del DataSet, y listo funcionando...
Tengo que darle mas caña al DataSet...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ed602$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Los ves durante el proceso de Update() o incluso durante la propia edición?
Para parar el pintado puedes hacer oBrowse:lRedraw a .F.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431ec7fc@ozsrvnegro.ozlan.local...]431ec7fc@ozsrvnegro.ozlan.local...[/email]
Ignacio,
>Correctí­simo
Me alegro... ya le voy cojiendo el feeling a Xailer!!!
Una cosa mas...
Al entrar en el Bucle, y modificar los datos del DataSet, se va modificando también el DBBrowse...
¿Hay alguna manera de "paralizar" el DBBrowse hasta que no termine el bucle???
He probado poner DBBrowse1:lEnabled a .F., pero hace lo mismo...
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:431ebeda$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
>> ::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
Para ello deberás pasarle además un .T. como parametro. Y sinceramente no te lo recomiendo a no ser de que montes un sistema de autocancelación por tiempo o quites el telefóno al usuario y además le esposes al ordenador ;-)
>> ¿Es correcto... es así­ como debe de hacerse???
Correctí­simo
Saludos,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:431eaef7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Esto es parte de un proceso para cambiar datos a una Dbf, a partir de un DataSet...
METHOD xFactura( dDataAbono, cFactura ) CLASS TFrmControlIncidents
If Val( cFactura ) = 0
return Nil
EndIf
::oDbfDataSet1:OrdSetFocus( 4 )
::oDbfDataSet1:Seek( Dtos( dDataAbono ) )
While !::oDbfDataSet1:Eof() .and. ::oDbfDataSet1:FieldGetByName("DATAABONO") == dDataAbono
::oDbfDataSet1:Edit() //Aqui supongo que debe de hacer el bloqueo del registro
::oDbfDataSet1:FACTURA := Str( Val( cFactura ), 5 )
::oDbfDataSet1:Update()
::oDbfDataSet1:Skip()
EndDo
::oDbfDataSet1:OrdSetFocus( 6 )
::oDbfDataSet1:GoTop()
::oDbfDataSet1:Refresh()
Bien, el cambio lo hace perfectamente... ahora bien.
¿Es correcto... es así­ como debe de hacerse???
De ser correcto...
¿Cómo tengo el control del bloqueo de registros ???
Si :Edit() se encarga del bloqueo, ¿Cuando se libera el registro?
¿Como hago para volver al registro que estaba antes de modificar???
De momento, eso...
Un Saludo,
Xevi.
--