Amigos Ayuda Urgente

Amigos Ayuda Urgente

Postby Aitue » Wed Apr 09, 2008 9:00 pm

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 los campos 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
Last edited by Aitue on Wed Apr 09, 2008 9:53 pm, edited 1 time in total.
Aitue
 
Posts: 14
Joined: Tue Apr 08, 2008 9:17 pm

Postby Aitue » Thu Apr 10, 2008 2:05 am

Alguien, que me oriente?
Aitue
 
Posts: 14
Joined: Tue Apr 08, 2008 9:17 pm

Postby joseluisysturiz » Thu Apr 10, 2008 5:00 am

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!
User avatar
joseluisysturiz
 
Posts: 2064
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela

Postby Manuel Aranda » Thu Apr 10, 2008 9:51 am

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
User avatar
Manuel Aranda
 
Posts: 602
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby Marcelo Via Giglio » Thu Apr 10, 2008 11:55 am

Hola,

aqui una idea

Code: Select all  Expand view
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


saludos

Marcelo
Marcelo Via Giglio
 
Posts: 1050
Joined: Fri Oct 07, 2005 3:33 pm
Location: Cochabamba - Bolivia

Postby Loren » Thu Apr 10, 2008 12:12 pm

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í:
Code: Select all  Expand view
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
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Postby Aitue » Thu Apr 10, 2008 2:17 pm

Mil Gracias a todos por responder, probare sus indicaciones y aviso, desde ya eternamente agradecido.

Saludos,
Rafael
Aitue
 
Posts: 14
Joined: Tue Apr 08, 2008 9:17 pm

Postby Aitue » Thu Apr 10, 2008 6:49 pm

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,





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
Aitue
 
Posts: 14
Joined: Tue Apr 08, 2008 9:17 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 31 guests