Estoy mareado y no doy con la solución. Tengo un Dialogo donde permito ingresar 3 tipos de datos para ir a buscar a una persona.
El problema que desde un botón de BUSCAR dato, envió a una función, que estoy buscando si existe el dato en la DBF, si encuentra uno, muestro la coincidencia y pregunto si es el dato correcto, la idea es que con esos datos, se llenen y muestren la varias del dialogo al regreso de la función, pero esta acción no logro realizarla, no actualiza las variables que muestran los datos.
Muchas gracias.
Muchos Saludos.
Antonio
Codigo:
- Code: Select all Expand view
#include "FiveWin.ch"
Static Rut_Pac1,Nom_Pac1,Ape_Pac1
Static oGet1,oGet2,oGet3
Function Actu_Evaluacion()
Local oDlg2, oBrw2, oFont2, oFont4,otitu2,oFont5,oFont6,oFont10,oFont7
Local oGroup,oGroup1,oGroup2,oGroup3,oGroup4,oGroup5
Local oSay1
Rut_Pac1:=Spac(12)
Nom_Pac1:=Spac(25)
Ape_Pac1:=Spac(25)
SetGetColorFocus()
TGet():nClrGrayText := 14 // COLOR_BTNSHADOW
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
DEFINE FONT oFont7 NAME "TAHOMA" SIZE 0,-12 BOLD
DEFINE DIALOG oDlg2 SIZE 580,300 PIXEL TRUEPIXEL FONT oFont2 STYLE nOr( WS_POPUP, WS_VISIBLE, WS_DLGFRAME )
oDlg2:lTransparent := .F.
@ 10,170 SAY otitu PROMPT " ACTUALIZA EVALUACION " PIXEL OF oDlg2 COLORS RGB(0,100,0) FONT oFont5 TRANSPARENT
@ 55,020 SAY "R.u.t. :" SIZE 130,20 PIXEL OF oDlg2 RIGHT FONT oFont6 TRANSPARENT
@ 55,230 SAY "(Ej. 99999999-9)" SIZE 200,20 PIXEL OF oDlg2 RIGHT FONT oFont7 TRANSPARENT
@ 100,020 SAY "Nombres :" SIZE 130,20 PIXEL OF oDlg2 RIGHT FONT oFont6 TRANSPARENT
@ 145,020 SAY "Apellidos :" SIZE 130,20 PIXEL OF oDlg2 RIGHT FONT oFont6 TRANSPARENT
// Aqui Puedo Buscar Paciente por su Rut o Nombre, si no encuentra Rut, puede Crear Paciente
@ 55,165 GET oGet3 VAR Rut_Pac1 SIZE 120,20 PICTURE "@R ##.###.####!" PIXEL OF oDlg2 COLOR RGB(0,0,128), RGB(159,233,255);
WHEN ( oGet3:oGet:Picture := "@KR #########!", .T. );
VALID If( VrutG({oGet3},Rut_Pac1), (oGet3:oGet:Picture := "@R ##.###.####!", oGet3:Refresh(), .t. ), .f. )
@ 100,165 GET oGet1 Var Nom_Pac1 SIZE 180,20 PIXEL OF oDlg2 PICTURE "@!" COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 UPDATE
@ 145,165 GET oGet2 Var Ape_Pac1 SIZE 180,20 PIXEL OF oDlg2 PICTURE "@!" COLOR RGB(0,0,128), RGB(159,233,255) FONT oFont6 UPDATE
@ 215,45 GROUP oGroup5 TO 295,550 PIXEL COLOR RGB(140,0,0), (140,0,0) FONT oFont7 OF oDlg2 TRANSPARENT
@ 235,230 BTNBMP SIZE 55,50 PROMPT "BUSCA" OF oDlg2 2007 Resource "#8018" FONT oFont7 oGroup FLAT;
ToolTip "BUSCAR PACIENTE";
ACTION (IF(!Busca_Paci_Eva(Rut_Pac1,Nom_Pac1,Ape_Pac1),(MsgStop(Mensa),.F.),.t.)),(oGet1:Refresh(),oGet2:Refresh(),oGet3:Refresh()) // Aqui trato de actualizar los objetos para que muestre los datos de las variables y nada
@ 235,450 BTNBMP SIZE 55,50 PROMPT "VOLVER" OF oDlg2 PIXEL 2007 Resource "#8053" FONT oFont7 oGroup FLAT;
ToolTip "VOLVER";
ACTION (oDlg2:End())
ACTIVATE DIALOG oDlg2 CENTERED
RELEASE FONT oFont2,oFont4,oFont5 ,oFont6,oFont10,oFont7
Return nil
Return .t.
Static Function Busca_Paci_Eva(Rut_Pac1,Nom_Pac1,Ape_Pac1)
Local aPacien := {}
Abre_dbf("MaePaci",1,.f.,"MPaci")
Set Inde TO MaePaci
Do Case
Case !Empty(Rut_Pac1)
Rut_Pa1:=Pone_Puntos(Rut_Pac1)
DbSetOrder(2)
Seek Rut_Pa1
If Eof()
If !MsgYesNo( "ATENCION: ¿PACIENTE NO EXISTE, DESEA CREAR"+ CRLF +;
"PACIENTE--> "+Nom_Pac+" "+Ape_Pac,"INGRESE OPCION")
// Aqui Ire a Crear su Ficha a Actu_Ficha_Gene.prg
Endif
Else
?"PACIENTE --> "+Nom_Pac+" "+Ape_Pac
Endif
Return .t.
Case !Empty(Nom_Pac1) .or. !Empty(Ape_Pac1)
DbSetOrder(3)
Go Top
nom1:=Alltrim(Nom_Pac1)
nom2:=Alltrim(Ape_Pac1)
Do While !eof()
If "&Nom1"$Nom_Pac .or. "&Nom2"$Ape_Pac
Rut_Pa1:=Pone_Puntos(Rut_Pac)
Aadd(aPacien, { Rut_Pa1,Trim(a->Nom_Pac),Trim(a->Ape_Pac)})
Endif
Skip
Enddo
If Len(aPacien)=0
If !MsgYesNo( "ATENCION: NO SE HAN ENCONTRADO PACIENTES CON COINCIDENCIAS","INGRESE OPCION")
Return .f.
Endif
Endif
If Len(aPacien)=1
// Muestro Nombre y Pregunto si es el Correcto
If MsgYesNo( "ATENCION: UNICA COINCIDENCIA. SELECCIONADA "+ CRLF + + CRLF + ;
"PACIENTE--> "+aPacien[1][1]+" "+aPacien[1][2]+" "+aPacien[1][3],"INGRESE OPCION")
// Aqui Ire a Crear su Ficha a Actu_Ficha_Gene.prg
// POR EJEMPLO SI CONFIRMO QUE ES EL DATO CORRECTO, AQUI CARGA LOS DATOS EN LAS VARIABLES Y LO HACE BIEN.
Rut_Pac1:=aPacien[1][1]
Nom_Pac1:=aPacien[1][2]
Ape_Pac1:=aPacien[1][3]
//
Return .t.
Endif
Else
// Muestro Xbrowse con nombre para seleccionar
Endif
Endcase
Return .t.