Hola compañeros antes en clipper 5.3 tenia una rutina para el registro fastasma, la duda como la haria en Harbour /Fwh 2.7 me genera un error Adunto codigo
IF !USAFILE(MEMVAR->DIR_CATA+"ktipmod.ve2",MEMVAR->DIR_CATA+"ktipmod","b_tipmod",.F.,.F.)
RETURN
ENDIF
init_var() //inicializo variables de la tabla
init_asivar() //asigna valores de la tabla.
Static Function init_var()
local a,i
For i = 1 to fcount()
a:="M_"+fieldname(i)
public &a
Next
return(.t.)
Static Function init_asivar()
local a,i
For i = 1 to fcount()
a:="M_"+fieldname(i)
&a := &(fieldname(i))
Next
return(.t.)
Static Function repl_var()
local a,i
For i = 1 to fcount()
a:="M_"+fieldname(i)
replace &(fieldname(i)) with &a
Next
return(.t.)
Static Function rele_var()
local a,i
For i = 1 to fcount()
a:="M_"+fieldname(i)
release &a
Next
return(.t.)
Definicion de Variables de Clipper a Harbour /Fwh 2.7
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
- Antonio Linares
- Site Admin
- Posts: 37481
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
Perdon Verifique mal No me da Error.Antonio Linares wrote:Que error da ?
El problema que tengo es el siguiente. No me esta refrescando las variables en el Formulario
Anexo Codigo.
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.
- ruben Dario
- Posts: 986
- Joined: Thu Sep 27, 2007 3:47 pm
- Location: Colombia
[img]c:\formul.jpg[/img]ruben Dario wrote:Perdon Verifique mal No me da Error.Antonio Linares wrote:Que error da ?
El problema que tengo es el siguiente. No me esta refrescando las variables en el Formulario
Anexo Codigo.
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.