Page 1 of 1

xBROWSE .... SAY (Solucionado)

Posted: Sat Dec 14, 2013 5:54 pm
by Blessed
Saludos Amigos

He buscado esto y es muy general, por lo que me disculpan si ya se ha discutido antes.

Tengo un XBROWSE que actualizara una serie de SAY, lo primero que pense es usar ON CHANGE, pero no lo hace como yo espero a cambiar de una linea del xBrowse a otra.

Image

El Codigo que uso es el siguiente:

Code: Select all


FUNCTION Contactos()

    DEFINE DIALOG oDCuenta RESOURCE DLG_CC_CAT TITLE cTitulo ;
           COLOR  0, CLR_WHITE TRANSPARENT

      REDEFINE XBROWSE oBrowse ; && Define la lista XBrowse
               ID 211 ALIAS "CC_CONTAC" ;
                COLUMNS "DETALLE", "CARGO" ;
                HEADERS "Contacto", "Cargo" ;
                COLSIZES 230, 170 ;
                ON CHANGE  ActualizaContacto( @cContact_Deta, @cContact_Cargo, @cContact_Direc, @cContact_Email, @cContact_Tel, @cContact_Movil, oGet ) ;
                FONT oFont ;
                OF oDCuenta ; Ajust_xBrws( oBrowse )

      REDEFINE SAY oSay[1] VAR cContact_Deta  MEMO ID 212 OF oDCuenta UPDATE
      REDEFINE SAY oGet[2] VAR cContact_Cargo MEMO ID 213 OF oDCuenta UPDATE
      REDEFINE SAY oGet[3] VAR cContact_Direc MEMO ID 214 OF oDCuenta UPDATE
      REDEFINE SAY oGet[4] VAR cContact_Email MEMO ID 215 OF oDCuenta UPDATE
      REDEFINE SAY oGet[5] VAR cContact_Tel   ID 216 OF oDCuenta UPDATE
      REDEFINE SAY oGet[6] VAR cContact_Movil ID 217 OF oDCuenta UPDATE

   ACTIVATE DIALOG oDCuenta CENTERED

RETURN NIL

/*
    FUNCION ESTATICA ActualizaContacto()
    Actualiza datos de contactos
*/
STATIC FUNCTION ActualizaContacto( cContact_Deta, cContact_Cargo, cContact_Direc, cContact_Email,;
                                   cContact_Tel, cContact_Movil, oSay )

    cContact_Deta  := CCMSCONTAC->DETALLE
    cContact_Cargo := CCMSCONTAC->CARGO
    cContact_Direc := CCMSCONTAC->DIRECCION
    cContact_Email := CCMSCONTAC->EMAIL
    cContact_Tel   := CCMSCONTAC->TELEFONO
    cContact_Movil := CCMSCONTAC->MOVIL

   IF oGet != NIL
      oSay[1]:Refresh() ; oSay[2]:Refresh() ; oSay[3]:Refresh()
      oSay[4]:Refresh() ; oSay[5]:Refresh() ; oSay[6]:Refresh()
   ENDIF

   RETURN NIL

 

Re: xBROWSE .... SAY

Posted: Sat Dec 14, 2013 6:11 pm
by Manuel Aranda
Has probado con bChange ? :


oBrowse:bChange:= {||ActualizaContacto( cContact_Deta, cContact_Cargo, cContact_Direc, cContact_Email,cContact_Tel, cContact_Movil, oSay ) }

Re: xBROWSE .... SAY

Posted: Sat Dec 14, 2013 7:09 pm
by carlos vargas
es mi idea o tienes un solo oSay y varios oGet, en los redefines y estas actualizando varios oSay en la funcion?
o el ejemplo lo tienes malo.

Re: xBROWSE .... SAY

Posted: Mon Dec 16, 2013 12:00 pm
by Blessed
Saludos

Gracias Manuel, con esa modificacion funciono.
Y si carlos tienes razon, en un principio la idea eran Get, pero al no funcionar _ a Say al pasar al post renombre algunas cosas y olvide colocar el mismo nombre a las variables

Gracias