Perdon Verifique mal No me da Error.
El problema que tengo es el siguiente. No me esta refrescando las variables en el Formulario
Code: Select all
Procedure PROG_TIPMOD()
local oBar01, oBrw, oFnt01, oBrush01,oBtnBmp
local oBtnNew, oBtnTop, oBtnPrev, oBtnNext, oBtnBottom, oBtnEnd
local oSay
local getNombre, gettipmod
local oGet
Public reg_edit,reg_nue
reg_edit := reg_nue :=0
IF !USAFILE(MEMVAR->DIR_CATA+"ktipmod.ve2",MEMVAR->DIR_CATA+"ktipmod","b_tipmod",.F.,.F.)
RETURN
ENDIF
init_var()
if RecCount() == 0
go bottom
skip+1
init_asivar()
else
GO TOP
init_asivar()
endif
DEFINE BRUSH oBrush01 STYLE NULL
DEFINE FONT oFnt01 NAME "Arial" size 08,14 BOLD DEFINE DIALOG oDlg01 FROM 12,10 TO 42,85 TITLE "Tipos de Modulos";
COLOR RGB(255,255,255),RGB(51,51,255);
STYLE nOR(WS_MINIMIZEBOX)
@ 2.7,12 SAY oSay PROMPT "Codigo :" OF oDlg01 FONT oFnt01 SIZE 40,10; oSay:lTransparent = .T.
@ 3, 14 GET gettipmod Var m_tipmod OF oDlg01 PICTURE "@!";
WHEN m->reg_nue=1 MESSAGE "Ingrese Tipo de Modulo" COLORS RGB(0,051,0),RGB( 255,255,204) UPDATE
@ 4.5,12 SAY oSay PROMPT "Nombre :" OF oDlg01 FONT oFnt01 SIZE 40,10; oSay:lTransparent = .T.
@ 5, 14 GET getnombre Var m_nombre OF oDlg01 PICTURE "@!" ;
WHEN m->reg_edit = 1 MESSAGE "Ingrese el Nombre" COLORS RGB(0,051,0),nRGB( 255,255,204) UPDATE //oDbf02:nombre
ACTIVATE DIALOG oDlg01 CENTERED VALID NoSalir() ON INIT ( CREABARRA(0,0,1,385,35,oDlg01),ShowMenu(oDlg01))
FUNCTION CREABARRA(tmen,li,lc,lb,lr,oDlg01) Local oFon2,oFon1,oBar,oBtnBmp,li_r,li_c,li_p,li_p1,l_mayu
li_r := 20;li_c:=1.4;li_p:=4;li_p1:=1.7;l_mayu:=0
DEFINE MSGBAR OF oDlg01 PROMPT " "
DEFINE BUTTONBAR oBar12 _3D SIZE 26, 27 OF oDlg01 TOP
DEFINE BUTTON oBNew OF oBar12 FILENAME "reg_nue.bmp" FLAT MESSAGE "Registro Nuevo";
ACTION (Autoper("A",tmen,oBar12)) TOOLTIP "Nuevo Registro "
DEFINE BUTTON oBEdi OF oBar12 FILENAME "reg_edit.bmp" FLAT MESSAGE "Modificar Registro";
ACTION (Autoper("M",tmen,oBar12)) TOOLTIP "Edita Registro"
DEFINE BUTTON oBFres OF oBar12 FILENAME "reg_refr.bmp" FLAT MESSAGE "Refrescar Registro ";
TOOLTIP "Refrescar Regisro" GROUP
....
..
...
..
Function Autoper(Tper,tbar,Barr_1)
//X_PERNIV := "A-M-E-C-R" /Adicion Modificacion Eliminar Consulta Reporte
IF .not.Tper$"CA-BU-BE-HE-00"
if .not.Tper$x_perniv
alert("No Tiene Autorizacion") //msg("No tiene Autorizacion")
return(.t.)
endif
Endif
if Tper=="A" // cuando ingreso Registro Nuevo
go bottom
skip+1
init_asivar()
oBNew:Disable()
oBEdi:Disable()
oBElim:Disable()
oBGrab:Enable()
oBCanc:Enable()
oBBusq:Disable()
oBFind:Disable()
oBBrow:Disable()
oBPrim:Disable()
oBNext:Disable()
oBAnt:Disable()
oBUlti:Disable()
oBFres:Enable()
oBPrin:Disable()
m->reg_edit:=1
m->reg_nue:=1
elseif Tper=="M" // Edito Registro
oBNew:Disable()
oBEdi:Disable()
oBElim:Disable()
oBGrab:Enable()
oBCanc:Enable()
oBBusq:Disable()
oBFind:Disable()
oBBrow:Disable()
oBPrim:Disable()
oBNext:Disable()
oBAnt:Disable()
oBUlti:Disable()
oBFres:Enable()
oBPrin:Disable()
m->reg_edit:= 1
m->reg_nue :=0
alert(m->reg_edit)
..
..
..
sysrefresh()
Function ShowMenu(oDlg01) Local oMenu12
MENU oMenu12
MENUITEM "&Datos"
MENU
MENUITEM "&Nuevo" ;
MESSAGE "Nuevo Registro";
ACTION Accesos( alter("dsd"),0) FILENAME reg_nue.bmp"
MENUITEM "&Modificacion/Edicion...";
MESSAGE "Modifica Registro" ACTION (Autoper("M",0,oBar12)) ;
FILENAME "reg_edit.bmp"
****
Me carga el formulario con los con la barra de Botones.
El cargue inicial si carga el dato del Primer Registro.
El problema es cuando Edito El registro para Modificar debo le cambio los valores a estas variables para habilitar los Get
m->reg_edit:=1
m->reg_nue:=1
Lo mismo Seria Cuando es Registro Nuevo se ejecuta la funcion init_asivar(). No Refresca el formulario.
Si Lo Ejecuto desde el menu Tambien Pasa Lo mismo
El problema es que no Refresca el formulario.
HE Utilizado varias formas Incusive pasar la Vble (@reg_edit,@reg_nue)
Gracias Si no puede sacar de esta duda o me falta alguna Instruccion.