Borrar registros esando TdbfDataSet
Publicado: Vie Ene 22, 2010 2:31 pm
Hola.
Uso un TDbfDataSet para abrir la tabla.
Tengo un formulario con TDBBrowse, un TDBEdit por cada campo y un
TDBNavigator.
Quiero ir marcando varios registros para borrar al pulsar "-" (esto funciona
bien)
Al salir quiero borrar o recuperar todos los registros marcados con PACK O
RECALL ALL. Pero no son aplicables sobre TDbfDataSet o TDBBrowse.
Como hago ?
METHOD DBNavigator1ClickDelete( oSender ) CLASS TFormABMAfiliados
Local aCuenta := {}
Local cTexto := "No se puede borrar el afiliado"
cTexto += Chr(13)+"Posee datos en la Cuenta Corriente"
cTexto += Chr(13)+"Realice una depuración primero"
WITH OBJECT ::oDbfAfiliados
If :Deleted()
If MsgCancelOk("Confirma la recuperación del afiliado ?","Borrar
afiliado")
:Recall() // recupera cualquiera no en el que estoy parado
::nBorrados--
EndIf
Else
If MsgCancelOk("Está seguro de borrar el afiliado?","Borrar
afiliado")
aCuenta := TraerCta(:NUMERO, :ADHERENTE)
If Len( aCuenta) != 0
MsgStop(cTexto,"Error")
Else
:Delete()
::nBorrados++
EndIf
EndIf
EndIf
END
RETURN Nil
METHOD BtnSalirClick( oSender ) CLASS TFormABMAfiliados
Local lBorrar
If ::nBorrados > 0
lBorrar := MsgNoYes("Confirma la eliminación de los afiliados?","Borrar
definitivamente")
WITH OBJECT ::oDBBrowse1 // ::oDbfAfiliados (TDBFDataSet)
if :FilLock() // da error
If lBorrar
:Pack()
Else
:Recall() // si anduviera recuperaria solo uno, y yo quiero
todos los marcados. Como le indico ALL?
EndIf
Else
MsgStop("No se pudo borrar o recuperar afiliados marcados!","Error
de bloqueo")
EndIf
END
EndIf
dbCloseAll()
RETURN Nil
He probado con todo, no puedo avanzar en cosas importantes del sistema por
estar tratando de resolver un simple ABM.
La otra que me queda es usar un formulario para mostrar los datos y otro
para las ediciones. Como lo hago con clipper, usando USE...
DETELE...PACK...RECALL ALL...etc. Pero me gustaria aprender a hacerlo sobre
un TDbfDataSet.
Gracias
Juan Castañeda
Uso un TDbfDataSet para abrir la tabla.
Tengo un formulario con TDBBrowse, un TDBEdit por cada campo y un
TDBNavigator.
Quiero ir marcando varios registros para borrar al pulsar "-" (esto funciona
bien)
Al salir quiero borrar o recuperar todos los registros marcados con PACK O
RECALL ALL. Pero no son aplicables sobre TDbfDataSet o TDBBrowse.
Como hago ?
METHOD DBNavigator1ClickDelete( oSender ) CLASS TFormABMAfiliados
Local aCuenta := {}
Local cTexto := "No se puede borrar el afiliado"
cTexto += Chr(13)+"Posee datos en la Cuenta Corriente"
cTexto += Chr(13)+"Realice una depuración primero"
WITH OBJECT ::oDbfAfiliados
If :Deleted()
If MsgCancelOk("Confirma la recuperación del afiliado ?","Borrar
afiliado")
:Recall() // recupera cualquiera no en el que estoy parado
::nBorrados--
EndIf
Else
If MsgCancelOk("Está seguro de borrar el afiliado?","Borrar
afiliado")
aCuenta := TraerCta(:NUMERO, :ADHERENTE)
If Len( aCuenta) != 0
MsgStop(cTexto,"Error")
Else
:Delete()
::nBorrados++
EndIf
EndIf
EndIf
END
RETURN Nil
METHOD BtnSalirClick( oSender ) CLASS TFormABMAfiliados
Local lBorrar
If ::nBorrados > 0
lBorrar := MsgNoYes("Confirma la eliminación de los afiliados?","Borrar
definitivamente")
WITH OBJECT ::oDBBrowse1 // ::oDbfAfiliados (TDBFDataSet)
if :FilLock() // da error
If lBorrar
:Pack()
Else
:Recall() // si anduviera recuperaria solo uno, y yo quiero
todos los marcados. Como le indico ALL?
EndIf
Else
MsgStop("No se pudo borrar o recuperar afiliados marcados!","Error
de bloqueo")
EndIf
END
EndIf
dbCloseAll()
RETURN Nil
He probado con todo, no puedo avanzar en cosas importantes del sistema por
estar tratando de resolver un simple ABM.
La otra que me queda es usar un formulario para mostrar los datos y otro
para las ediciones. Como lo hago con clipper, usando USE...
DETELE...PACK...RECALL ALL...etc. Pero me gustaria aprender a hacerlo sobre
un TDbfDataSet.
Gracias
Juan Castañeda