Problema con DELETE
Posted: Thu Oct 23, 2008 3:39 pm
Buenas tardes:
Tengo un problema con una pequeña parte de código. Al borrar un registro, da error (BASE1003 no existe al variable cNumPoliza).
El código es:
// Programa Garantias de pólizas 2008
#include "FiveWin.ch"
#include "d:\personal\FWH\ts\TSBrowse\Include\TSBrowse.ch"
static oWnd
Function garan (oLb,cNumPoliza)
Local oDlg
Local oLbx
Local cVar,cFer
Local oFont
Local n
If !Garant->(DbSeek(cNumPoliza))
cFer:=MsgYesNo("No existen las garantías de póliza. Dar de alta")
ELSE
cFer:=MsgYesNo(" ¿ Desea modificar las garantías de póliza ?")
ENDIF
IF cFer==.T.
SET INDEX TO TEMPORAL
DEFINE FONT oFont NAME "Arial" SIZE 0, -12
DEFINE DIALOG oDlg FROM 3, 3 TO 24, 70 TITLE "Garantías Póliza" FONT oFont
@ 1, 1 BROWSE oLbx SIZE 260,100 GRID
ADD COLUMN TO oLBX;
HEADER "Art" ;
DATA (Garant->NumGaranti) ;
ALIGN DT_RIGHT
ADD COLUMN TO oLBX;
HEADER "Garantía" ;
DATA OemToAnsi(Garant->Garantia) ;
EDITABLE;
ALIGN DT_LEFT
ADD COLUMN TO oLBX;
HEADER "Capital" ;
DATA (Garant->CapitalIni) ;
EDITABLE;
PICTURE "99,999,999.99";
ALIGN DT_RIGHT
@ 6.7, 1.4 BUTTON "&Nuevo " OF oDlg ACTION (AltaGaran(oLbx,cNumPoliza))
@ 6.7, 9.4 BUTTON "&Borrar" OF oDlg ACTION DelGaran(oLbx)
@ 6.7, 17.4 BUTTON "&Salir " OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg
EndIf
return nil
//---------------------------------------------------------------------------//
static function DelGaran( oLbx)
if MsgYesNo( "¿Está seguro de querer borrar la garantía? " + Garant->numGaranti )
DELETE
PACK
oLbx:UpStable()
oLbx:Refresh() // Repaint the ListBox
endif
Return Nil
Por cierto, TEMPORAL es un índice así definido:
INDEX ON Garant->NumPoliza TO TEMPORAL;
FOR Garant->NumPoliza ==cNumPoliza DESCENDING
¿Pueden ayudarme?. Muchas gracias
Tengo un problema con una pequeña parte de código. Al borrar un registro, da error (BASE1003 no existe al variable cNumPoliza).
El código es:
// Programa Garantias de pólizas 2008
#include "FiveWin.ch"
#include "d:\personal\FWH\ts\TSBrowse\Include\TSBrowse.ch"
static oWnd
Function garan (oLb,cNumPoliza)
Local oDlg
Local oLbx
Local cVar,cFer
Local oFont
Local n
If !Garant->(DbSeek(cNumPoliza))
cFer:=MsgYesNo("No existen las garantías de póliza. Dar de alta")
ELSE
cFer:=MsgYesNo(" ¿ Desea modificar las garantías de póliza ?")
ENDIF
IF cFer==.T.
SET INDEX TO TEMPORAL
DEFINE FONT oFont NAME "Arial" SIZE 0, -12
DEFINE DIALOG oDlg FROM 3, 3 TO 24, 70 TITLE "Garantías Póliza" FONT oFont
@ 1, 1 BROWSE oLbx SIZE 260,100 GRID
ADD COLUMN TO oLBX;
HEADER "Art" ;
DATA (Garant->NumGaranti) ;
ALIGN DT_RIGHT
ADD COLUMN TO oLBX;
HEADER "Garantía" ;
DATA OemToAnsi(Garant->Garantia) ;
EDITABLE;
ALIGN DT_LEFT
ADD COLUMN TO oLBX;
HEADER "Capital" ;
DATA (Garant->CapitalIni) ;
EDITABLE;
PICTURE "99,999,999.99";
ALIGN DT_RIGHT
@ 6.7, 1.4 BUTTON "&Nuevo " OF oDlg ACTION (AltaGaran(oLbx,cNumPoliza))
@ 6.7, 9.4 BUTTON "&Borrar" OF oDlg ACTION DelGaran(oLbx)
@ 6.7, 17.4 BUTTON "&Salir " OF oDlg ACTION oDlg:End()
ACTIVATE DIALOG oDlg
EndIf
return nil
//---------------------------------------------------------------------------//
static function DelGaran( oLbx)
if MsgYesNo( "¿Está seguro de querer borrar la garantía? " + Garant->numGaranti )
DELETE
PACK
oLbx:UpStable()
oLbx:Refresh() // Repaint the ListBox
endif
Return Nil
Por cierto, TEMPORAL es un índice así definido:
INDEX ON Garant->NumPoliza TO TEMPORAL;
FOR Garant->NumPoliza ==cNumPoliza DESCENDING
¿Pueden ayudarme?. Muchas gracias