Necesito molestarlos.
Tengo un programa que debe ingresar datos a una base de datos, el problema que no logro limpiar las variables despues de grabar un dato, mantiene los datos del ingreso, ya estoy mareado y no encuentro el error. Debo limpiar todas las variables para el proximo ingreso.
Desde ya muchos gracias y muchos saludos.
Antonio.
Dejo el Codigo:
- Code: Select all Expand view RUN
Function Crea_Lista()
Local oDlg2, oBrw2, oFont2, oFont4,otitu2,oFont5,oFont6,oFont10
Local oGroup,oGroup1,oGroup2
Field NAME
Private oGet1,oGet2,oGet3,oGet4 , oGet5,oGet6,oGet7,oGet8,oGet9,oGet10,oGet11,oGet12,oGet13,oGet14,oGet15
Private Rut_Pac1:=Spac(12) , Nom_Pac1:=Spac(35),Ape_Pac1:=Spac(35) , Nro_Cor1:=1
Abre_dbf("maepacie",1,.f.,"")
set inde to maepacie
Abre_dbf("DetaFis",2,.f.,"")
set inde to DetaFis
Sele b
Go Top
If Eof()
Nro_Cor1:=1
Else
DbSetOrder(2)
Go Bott
Nro_Cor1:=Nro_Cor + 1
Endif
/*
Sele Maepacie
Nro_Fic1 = a->Nro_Fic
Rut_Pac1 = a->Rut_Pac
Ape_Pac1 = a->Ape_Pac
Nom_Pac1 = a->Nom_Pac
Fec_Nac1 = ctod(a->Fec_Nac)
Eda_Pac1 = a->Eda_Pac
_ = a->_
Dir_Pac1 = a->Dir_Pac
Cod_Ciu1 = a->Cod_Ciu
Cod_Com1 = a->Cod_Com
Fon_Pac1 = a->Fon_Pac
Tip_Pag1 = a->Tip_Pag
Act_Pac1 = a->Act_Pac
Cod_Pai1 = a->Cod_Pai
Fec_ate1 = ctod(a->Fec_Ate)
Nro_Pas1 = a->Nro_Pas
Pat_Pac1 = a->Pat_Pac
Rut_Pac1 = Saca_puntos(Rut_Pac1)
*/
DEFINE FONT oFont2 NAME "TAHOMA" SIZE 0,-15 BOLD
DEFINE FONT oFont4 NAME 'TAHOMA' SIZE 0,20 BOLD
DEFINE FONT oFont5 NAME 'TAHOMA' SIZE 0,24 BOLD
DEFINE FONT oFont6 NAME "TAHOMA" SIZE 0,-14 BOLD
DEFINE FONT oFont10 NAME "TAHOMA" SIZE 0,-13
// @ 10,50 SAY otitu2 PROMPT " MAESTRO DE PACIENTES " PIXEL OF oDlg2 COLORS RGB(12, 135, 27) FONT oFont4
DEFINE DIALOG oDlg2 SIZE 680,560 PIXEL TRUEPIXEL FONT oFont2 STYLE 4
@ 00,150 SAY otitu PROMPT " CREA LISTA DE PACIENTES " PIXEL OF oDlg2 COLORS RGB(0,100,0) FONT oFont5
@ 045,18 GROUP oGroup1 TO 208,660 PIXEL OF oDlg2
@ 030,020 SAY "Nro. Regis.: " SIZE 100,20 PIXEL OF oDlg2 RIGHT
@ 030,140 SAY oGet4 PROMPT Nro_Cor1 SIZE 100,22 PIXEL OF oDlg2 COLOR RGB(0,0,128) FONT oFont4 BORDER
@ 060,020 SAY "R.u.t." SIZE 100,20 PIXEL OF oDlg2 RIGHT
@ 060,180 SAY "(Ej. 99999999-9)" SIZE 200,20 PIXEL OF oDlg2 RIGHT FONT oFont10
@ 090,020 SAY "Apellidos" SIZE 100,20 PIXEL OF oDlg2 RIGHT
@ 120,020 SAY "Nombres" SIZE 100,20 PIXEL OF oDlg2 RIGHT
@ 060,140 GET oGet1 Var Rut_Pac1 SIZE 130,22 PIXEL OF oDlg2 COLOR RGB(0,0,128) FONT oFont4 UPDATE
oGet1:bValid := <|g|
If !Vrut(Rut_pac1)
return .f.
Else
If !Consulta_datos(Rut_Pac1,Nom_Pac1,Ape_Pac1)
MsgStop(" ERROR No Hay Pacientes Digitado ")
Return .f.
Else
Sele a
Sele b
DbSetOrder(1)
Seek Rut_Pac1
If Eof()
DbSetOrder(2)
Go Bott
Nro_Cor1:=Nro_Cor + 1
Nom_Pac1:=a->Nom_Pac
Ape_Pac1:=a->Ape_Pac
Else
MsgStop(" CUIDADO Paciente YA EXISTE ")
Nro_Cor1:=Nro_Cor
Nom_Pac1:=B->Nom_Pac
Ape_Pac1:=B->Ape_Pac
Endif
oGet2:Refresh()
oGet3:Refresh()
oGet4:Refresh()
Endif
return .t.
endif
>
@ 090,140 GET oGet2 Var Ape_Pac1 SIZE 300,22 PIXEL OF oDlg2 PICTURE "@!" COLOR RGB(0,0,128) FONT oFont4 UPDATE
@ 120,140 GET oGet3 Var Nom_Pac1 SIZE 300,22 PIXEL OF oDlg2 PICTURE "@!" COLOR RGB(0,0,128) FONT oFont4 UPDATE
@ 460,500 BTNBMP SIZE 60,60 PROMPT "SALIR" OF oDlg2 PIXEL 2007 Resource "#8101" FONT oFont6 oGroup FLAT;
ToolTip "VOLVER";
ACTION (oDlg2:End())
@ 460,50 BTNBMP SIZE 60,60 PROMPT "MODIFI" OF oDlg2 2007 Resource "#8105" FONT oFont6 oGroup FLAT;
ToolTip "MODIFICAR DATOS" ;
ACTION (oGet1:SetFocus() )
@ 460,200 BTNBMP SIZE 60,60 PROMPT "GRABA" OF oDlg2 2007 Resource "#8106" FONT oFont6 oGroup FLAT;
ToolTip "GRABA DATOS";
ACTION IF(!Graba(Rut_Pac1,Nom_Pac1,Ape_Pac1,Nro_Cor1),(MsgInfo( "NO SE HA REALIZADO LA ACTUALIZACION" ),.F.),(oGet1:Refresh(),oGet2:Refresh(),oGet3:Refresh(),oDlg2:Refresh(),oGet1:SetFocus()))
ACTIVATE DIALOG oDlg2 CENTERED
RELEASE FONT oFont2,oFont4,oFont5
Return
Function Consulta_Datos(Rut_Pac1,Nom_Pac1,Ape_Pac1)
Rut2 = Pone_Puntos(Rut_Pac1)
Sele Maepacie
Seek Rut2
If Eof()
return .f.
Endif
Return .t.
Function Graba(Rut_Pac1,Nom_Pac1,Ape_Pac1,Nro_Cor1)
IF MsgYesNo( "Atención: ¿Está Seguro de Querer GRABAR Datos ?","Ingrese Opción")
Rut2 = Pone_Puntos(Rut_Pac1)
Sele a
Seek Rut_Pac1
Sele b
Seek Rut_Pac1
If !Eof()
Do while .t.
If Flock()
Repl Nom_Pac with Nom_Pac1,Ape_Pac with Ape_Pac1,Eda_Pac with a->Eda_Pac,;
Fec_Nac with a->Fec_Nac,Dir_Pac with a->Dir_Pac,_ with a->_,Rut_Pac2 with Rut2
Dbcommit()
Dbunlock()
Exit
Endif
Enddo
Else
Do while .t.
Dbappend()
if !neterr()
Repl Rut_Pac with Rut_Pac1,Nom_Pac with Nom_Pac1,Ape_Pac with Ape_Pac1,Eda_Pac with a->Eda_Pac,;
Fec_Nac with a->Fec_Nac,Dir_Pac with a->Dir_Pac,_ with a->_,Rut_Pac2 with Rut2,;
Nro_Cor with Nro_Cor1
Dbcommit()
Dbunlock()
Exit
Endif
Enddo
Endif
// Aqui inicializo las variables
DbSetOrder(2)
Go bott
Nro_Cor1:=Nro_Cor + 1
Rut_Pac1:=Spac(12)
Nom_Pac1:=Spac(25)
Ape_Pac1:=Spac(25)
oGet1:Refresh()
oGet2:Refresh()
oGet3:Refresh()
oGet4:Refresh()
DbSetOrder(1)
Return .t.
Endif
Return .f.