Amigos:
Tengo un tremendo problema, en 32 muchas cosas son diferentes a 16.
Tengo un recurso con 3 campos Codigo, Nombre y Clave. Lo que necesito y no puedo hacer es que cuando digite un codigo y este exista en la base de datos, las variables las cargue con los datos de _ de la base y permitir que sen modificados. Como muestro en el codigo, cargo las variables, pero no puedo ver sus datos.
Esperando su ayuda,
Les Saluda muy atentamente,
Rafael,
*** MUESTRO PARTE DEL CODIGO
Local cCod_cli,cNom_cli,cCla_cli,oBtn[16],x
Local TgGet[10]
cCod_cli=spac(6)
cNom_cli=spac(35)
cCla_cli=spac(12)
Define Dialog oDlg Resource "CLIENTES" Title "MAESTRO DE CLIENTES"
Redefine BTNGET TgGet[01] Var cCod_cli Id 104 Of oDlg Update Picture "@!" COLOR RGB(160,0,0), RGB(0,255,255);
Valid Empty(cCod_cli).or. Eval({ ||if (!Man_usu(@cCod_cli),(cCod_cli:=spac(6),TgGet[01]:Refresh(),TgGet[02]:Refresh(),.f.),(Cargada(),TgGet[01]:Refresh(),TgGet[02]:Refresh(),oDlg:update(),.t.))})
Redefine BTNGET TgGet[02] Var cNom_cli Id 154 Of oDlg Update Picture "@!" COLOR RGB(160,0,0), RGB(0,255,255)
Redefine BTNGET TgGet[03] Var cCla_cli Id 106 Of oDlg Update Picture "@!" COLOR RGB(160,0,0), RGB(0,255,255)
Redefine BitMap oBtn[4] Id 23 Adjust FileName "Bmp\Gsalir1.Bmp" Of oDlg Cursor oCurDedo;
On Click oDlg:END()
oBtn[5]:cToolTip = "SALIR DE ESTA OPCION"
For x=1 to 4; oBtn[x]:ltransparent=.T.;Next x
For x=1 to 4; TgGet[x]:Refresh();Next x
Activate Dialog oDlg Centered
Function Cargada()
Local cCod_cli,cNom_cli,cCla_cli,i
Sele Clientes
Seek cCod_cli
if !eof()
cNom_cli:=(Memvar->c_cli)->Nom_cli
cCla_cli:=(Memvar->c_cli)->Cla_cli
endif
return
Amigos Ayuda Urgente
Amigos Ayuda Urgente
Last edited by Aitue on Wed Apr 09, 2008 9:53 pm, edited 1 time in total.
- joseluisysturiz
- Posts: 2024
- Joined: Fri Jan 06, 2006 9:28 pm
- Location: Guatire - Caracas - Venezuela
- Contact:
Hola, te recomiendo que hagas la apertura de la DBF en ela function donde creas el DIALOGO, ya que si no se cumple una condicion y no vas a la funtion cargada() no se abre la DBF y no podras mostrar los datos, fue lo que vi por encima, esta un poco enredado tu forma de mostrr la programacion, pruebalo y avisa, gracias...a la orden desde Venezual.
Dios no está muerto...
Gracias a mi Dios ante todo!
Gracias a mi Dios ante todo!
- Manuel Aranda
- Posts: 561
- Joined: Wed Oct 19, 2005 8:20 pm
- Location: España
A ver, prueba esto
.................................,(Cargada(TgGet),TgGet[01]:Refresh(),TgGet[02]:Refresh(),oDlg:update(),.t.))})
........................
Function Cargada(TgGet)
Local cCod_cli,cNom_cli,cCla_cli,i
Sele Clientes
Seek cCod_cli
if !eof()
cNom_cli:=(Memvar->c_cli)->Nom_cli
cCla_cli:=(Memvar->c_cli)->Cla_cli
TgGet[2]:VarPut(cNom_cli)
TgGet[3]:VarPut(oCla_cli)
TgGet[2]:Refresh()
TgGet[3]:Refresh()
endif
return
.................................,(Cargada(TgGet),TgGet[01]:Refresh(),TgGet[02]:Refresh(),oDlg:update(),.t.))})
........................
Function Cargada(TgGet)
Local cCod_cli,cNom_cli,cCla_cli,i
Sele Clientes
Seek cCod_cli
if !eof()
cNom_cli:=(Memvar->c_cli)->Nom_cli
cCla_cli:=(Memvar->c_cli)->Cla_cli
TgGet[2]:VarPut(cNom_cli)
TgGet[3]:VarPut(oCla_cli)
TgGet[2]:Refresh()
TgGet[3]:Refresh()
endif
return
-
- Posts: 1033
- Joined: Fri Oct 07, 2005 3:33 pm
- Location: Cochabamba - Bolivia
Hola,
aqui una idea
saludos
Marcelo
aqui una idea
Code: Select all
LOCAL codigo := space(...), oDbf, oDlg,......
USE db
DATABASE oDbf
DEFINE DIALOG.....
REDEFINE GET codigo VALID IF( db -> ( DBSEEK( codigo ) ), ( oDbf:load(), oDlg:update(), .T.), .F. )
REDEFINE GET oDbf:nom_cli .... UPDATE
REDEFINE GET oDbf:cla_cli ... UPDATE
... grabar oDbf:save()
... salir odlg:end()
ACTIVATE DIALOG
Marcelo
La solucion es mucho mas facil de lo que piensas. En realidad, tienes un problema con la declaracion de variables.
Al principio de tu código elimina : Local cCod_cli,cNom_cli,cCla_cli
y
la funcion Cargada() debe quedar así:
Al principio de tu código elimina : Local cCod_cli,cNom_cli,cCla_cli
y
la funcion Cargada() debe quedar así:
Code: Select all
Function Cargada()
Sele Clientes
Seek cCod_cli
if found()
cNom_cli:=(Memvar->c_cli)->Nom_cli
cCla_cli:=(Memvar->c_cli)->Cla_cli
endif
return
Amigos:
Me ha funcionado, aplicando la forma que me indico "Manuel Aranda", ya que lo de " Loren ", me arroja error que no he declarado las variables y lo de " Marcelo ", yo no abro las bases con DATABASE.
Muchas gracias por su ayuda y tiempo dedicado,
Le saluda muy atentamente,
Rafael,
Me ha funcionado, aplicando la forma que me indico "Manuel Aranda", ya que lo de " Loren ", me arroja error que no he declarado las variables y lo de " Marcelo ", yo no abro las bases con DATABASE.
Muchas gracias por su ayuda y tiempo dedicado,
Le saluda muy atentamente,
Rafael,
Manuel Aranda wrote:A ver, prueba esto
.................................,(Cargada(TgGet),TgGet[01]:Refresh(),TgGet[02]:Refresh(),oDlg:update(),.t.))})
........................
Function Cargada(TgGet)
Local cCod_cli,cNom_cli,cCla_cli,i
Sele Clientes
Seek cCod_cli
if !eof()
cNom_cli:=(Memvar->c_cli)->Nom_cli
cCla_cli:=(Memvar->c_cli)->Cla_cli
TgGet[2]:VarPut(cNom_cli)
TgGet[3]:VarPut(oCla_cli)
TgGet[2]:Refresh()
TgGet[3]:Refresh()
endif
return