Tengo problemas con un say

Tengo problemas con un say

Postby Leo » Wed Feb 27, 2013 6:31 pm

Sres. del foro, tengo el siguiente drama, tengo una pequeña ventana con un dialogo redefinido, y al intentar mostrar un Say, este queda en blanco, y examino el valor de oSay:Settext(Variable), y este me arroja NIL. qué sucede que no me asume los oDlg:Update()?

Code: Select all  Expand view
Function Add_Modify_Client(oParent,lNew,cCode)
Local oDlg,o4007,o4008,o4009,o4010,o4011,o4012,o4013,o4014,o4015,o4016,o4017,oQry[5],oBrush
Local Codigo:=Space(5),Descrip:=Space(40),Direccion:=Space(40),City_Code:=Space(5),City_Name:=Space(40)

IF lNew
    oQry[1] := oConected:Query( "SELECT * FROM Equivalencia ORDER BY Sucursal_Banco" )
    Define brush oBrush File "FondoCliente.Png"
    DEFINE DIALOG oDlg RESOURCE "Agregar_Cliente" Font oFont //Brush oBrush Transparent
    Redefine IMAGE oImage Id 4001 File "NewClientTitle.Png" OF oDlg Transparent

    Redefine Get o4007 Var Codigo Id 4007 Of oDlg Picture "@#####" Valid Valida_Cod_Suc(Codigo,oDlg) //(Seek_Sucursal(Codigo,oDlg))
Else
    oQry[1] := oConected:Query( "SELECT * FROM Equivalencia WHERE Sucursal_Banco="+cCode )
    Descrip:=oQry[1]:Nombre_Sucursal
    Direccion:=oQry[1]:Direccion
    City_Code:=oQry[1]:Codigo_Prosegur
    oQry[2]:=oConected:Query("SELECT * FROM Destino_Regional WHERE Codi_Ciudad="+Str(Val(cCode)))
    City_Name:=oQry[2]:Ciudad
    Define brush oBrush File "FondoCliente.PNG"
    DEFINE DIALOG oDlg RESOURCE "Modificar_Cliente" Font oFont //Brush oBrush //Transparent
   Redefine IMAGE oImage Id 4001 File "ModifiClientTitle.Png" OF oDlg Transparent
    Redefine Get o4007 Var cCode Id 4007 Of oDlg Picture "@e#####" //Color CLR_BLACK,CLR_WHITE Update
    oDlg:Update()
ENDIF
//Redefine Group Id 4006 Of oDlg //Transparent
Redefine Get o4008 var Descrip Id 4008 Of oDlg Picture "@!" Update
Redefine Get o4009 Var Direccion Id 4009 Of oDlg Picture "@!" Update
Redefine Get o4010 Var City_Code Id 4010 Of oDlg Picture "@#####" Valid(Search_City(City_Code,o4012,City_Name)) Update
//Redefine Say o4012 Var City_Name Id 4012 Of oDlg Update
Redefine Say o4012 Var City_Name Id 4012 Of oDlg Font oFont  Picture "@!" Color CLR_BLACK, CLR_WHITE Update
Activate Dialog oDlg Centered

Return Nil
*-------------------------------------------------------------------------------------------------------
Function Valida_Cod_Suc(Codigo,oDlg)
Local lRet:=.F.,oQrys
oQrys:=oConected:Query("SELECT * FROM Equivalencia WHERE Sucursal_Banco='"+Codigo+"' Order by Sucursal_Banco" )
*msgAlert(oQrys:nRecCount)
IF oQrys:nRecCount<>0
    xBrowse(oQrys)
    lRet:=.F.
    MsgAlert("Sr. Usuario, El Cliente que intenta Crear ya EXISTE...","Error...")
Else
    lRet:=.T.
ENDIF

Return lRet
*-------------------------------------------------------------------------------------------------------
Function Seek_Sucursal( Codigo, oDlg )
   LOCAL nSeek,oQry

    oQry = oConected:Query( "SELECT * FROM Equivalencia" )

   nSeek:= oQry:Seek( Codigo, 1, , , .F.) // lSoft := .T.
    *nSeek:= oQry:Locate( { Codigo }, {"Sucursal_Banco"} )

    xBrowse(oQry)
    MsgAlert(nSeek)
   if nSeek == 0 .AND. !Empty(Codigo)
        Devuelve:=.T.
    ElseIf nSeek ==0 .AND. !Empty(Codigo)
        Devuelve:=.F.
   elseIf nSeek>0
        Devuelve:=.F.
        MsgAlert("Sr. Usuario, El Cliente que intenta Crear ya EXISTE...","Error...")
   endif

RETURN Devuelve
*-------------------------------------------------------------------------------------------------------
Function Search_City(Codigo,o4012,City_Name)
Local lRet:=.F.,oQrys,cRet
oQrys:=oConected:Query("SELECT * FROM Destino_Regional WHERE Codi_Ciudad="+Alltrim(Str(Int(Val(Codigo)))))
IF oQrys:nRecCount<>0
    City_Name:=oQrys:Ciudad
    o4012:SetText(City_Name)
    lRet:=.t.
Else
    MsgAlert("Sr. Usuario, La Ciudad Ingresada No Existe...","Error...")
    lRet:=.F.
ENDIF
*oDlg:VarPut(City_Name)
MsgAlert(o4012:SetText(oQrys:Ciudad))
o4012:Refresh()
Return lRet


Espero puedan ayudarme... de ante mano, gracias.
Fivewin 12.04 + xHarbour 1.2.1 + BCC582

Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Tengo problemas con un say

Postby jrestojeda » Wed Feb 27, 2013 7:02 pm

Hola,
Prueba así:

Code: Select all  Expand view
Redefine Get o4010 Var City_Code Id 4010 Of oDlg Picture "@#####" Valid{||Search_City(City_Code,o4012,@City_Name)}


Espero te sirva...
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 583
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina

Re: Tengo problemas con un say

Postby Leo » Thu Feb 28, 2013 9:13 pm

Gracias, ya lo solucioné.
Fivewin 12.04 + xHarbour 1.2.1 + BCC582

Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Tengo problemas con un say

Postby AIDA » Fri Mar 01, 2013 4:38 am

Hola cual fue la solucion :?:


Saluditos :wink:
Que es mejor que programar? creo que nada :)
Atropellada pero aqui ando :P

I love Fivewin

séʌǝɹ ןɐ ɐʇsǝ opunɯ ǝʇsǝ
User avatar
AIDA
 
Posts: 877
Joined: Fri Jan 12, 2007 8:35 pm

Re: Tengo problemas con un say

Postby Leo » Fri Mar 01, 2013 6:53 pm

Declaré la variable contenedora como Public, y luego le asigné el valor mediante la una función de busqueda, la cual retorna el resultado.

Code: Select all  Expand view

    Public Citys_Code:=Space(5),Citys_Name:=Space(40)
 
    Citys_Code:=oQry[1]:Codigo_Prosegur
    Citys_Name:=Trae_Ciudad(Citys_Code)


Y así solucioné el problema.

Gracias Aida por preguntar. jojo. Y También a Eduardo por proporcionar una idea.
Fivewin 12.04 + xHarbour 1.2.1 + BCC582

Nada como Fivewin, odio visual basic, visual studio y todas las porquerías visual.
Leo
 
Posts: 66
Joined: Thu Jan 03, 2013 6:13 pm

Re: Tengo problemas con un say

Postby jrestojeda » Fri Mar 01, 2013 7:14 pm

Hola Leo...
Entiendo el motivo por el cual solucionaste el problema. ¿Pero se justifica una variable pública en ese caso?
La variable pública seguirá existiendo más allá de ese fuente en concreto. O sea, dejará de existir recien cuando salgas del sistema.
En ese caso, creo que te conviene crear una variable STATIC ya que la misma será visible en todo el fuente ese en particular. Y la solución que yo ofrecí es para el caso de una variable LOCAL que sólo es visible en esa función y para actualizarla en otras funciones debes enviarla por parametro y retornarla por referencia.
No se si me expliqué correctamente, pero dependiendo del tipo de variable que se crea en cada caso, es su comportamiento y su tratamiento interno dentro de los procesos.
Saludos, Esteban.
Ojeda Esteban Eduardo.
Buenos Aires - Argentina.
FWH - PellesC - DBF/CDX - ADS - Gloriosos .Bat - MySql - C# .net - FastReport
Skype: jreduojeda
User avatar
jrestojeda
 
Posts: 583
Joined: Wed Jul 04, 2007 3:51 pm
Location: Buenos Aires - Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 17 guests