Twbrowse Refresca al pasar por encima el raton

Post Reply
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Twbrowse Refresca al pasar por encima el raton

Post by JoseLuis »

Buenas
Tengo una aplicación un poco antigua, que tengo que modificar.

En ella estoy utilizando twbrowse, y me ocurre que en una columna, y sólo en esa columna no me aparece el dato hasta que paso con el ratón por encima.

Esa columna está construida como las demás.

Pongo una foto:
Antes de pasar el raton:
Image

Despues de pasar el raton:
Image

Columna F/E

Un Saludo
--------------------------
Saludos

Jose Luis
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Post by karinha »

Muestra el código. És un campo númerico?
João Santos - São Paulo - Brasil
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Twbrowse Refresca al pasar por encima el raton

Post by JoseLuis »

El dato es tipo caracter.
Éste dato viene de una consulta mysql

Lo curioso es que si quito ésta columna, me ocurre lo mismo con la siguiente.

Codigo del listbox:

Code: Select all

  TWBrowse():lHScroll:= .F.
  @ 30, 0  LISTBOX oLbx FIELDS aHBitmaps[ Max( 1, val((aAlias[24])->Estado) ) ],;
                               (aAlias[24])->Albaran,;
                               dtoc((aAlias[24])->Fecha),;
                               oemtoansi((aAlias[24])->pro),;
                               (aAlias[24])->pobla,;
                               (aAlias[24])->CR,;
                               oemtoansi((aAlias[24])->prou),;
                               (aAlias[24])->pobla1,;
                               transform(((aAlias[24])->baseimpo),"@Z 99,999.99"),;
                               transform(((aAlias[24])->kkilos),"@Z 999"),;
                               transform(((aAlias[24])->kilos),"@Z 99,999"),;
                               (aAlias[24])->factura,;
                               (aAlias[24])->Codart,;   
                               iif ((aAlias[24])->Tipo=1,'Credito','Contado'),;
                               transform(((aAlias[24])->Orden),"@Z 9999999"),;
                               iif((aAlias[33])->(Dbseek(str((aAlias[24])->Orden,7))),aHBitmap1[1]," " ),;
                               iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,1))," "),;  // HACE LA LLAMADA A MYSQL, ESTA COLUMNA SE MUESTRA AL PASAR SOBRE ELLA
                               iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,2))," "),;
                               iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,3))," "),;
                               (aAlias[24])->nConductor,;
                               (aAlias[24])->N_Reexp,;
                               (aAlias[24])->Spro,;
                               (aAlias[24])->Graba,;
                               (aAlias[24])->Operador;
                               HEADERS  " F "," Numero ", " Fecha ", " Cliente ", "Pobla", "T","Origen/Destino", "Pobla", " Importe ", " Bult. ", " Kilos "," Factura "," Tarifa ","Tipo","Orden","In" ,"F/E","H/E","C/E"," Conductor " ,"Reexpedido","SPro","Fhora"," Operador ";
                               FIELDSIZES  15,        50,        55,         220,     120,  15,             220,     120,          42,        25,        32,         45,        35,    45,     50,   15,   55,   35,   25,           200,         120,   120,    120,         100;
                               ALIAS aAlias[24];
                               CURSOR oCurdedo;
                               COLOR CLR_BLACK, nRGB(226,226,208);
                               ON LEFT DBLCLICK  (iif(!(aAlias[24])->(eof()) .and. Publicas:cAccesoM,(cTitulo:="Visualización de Albaranes ",Entalba1(cTitulo,"V",,aAlias),oLbx:Refresh()),.T.));
                               OF oDlg;
                   PIXEL
Codigo de la busqueda:

Code: Select all

//---------------------------------
FUNCTION Buscasql(oBrw,cBuscar,oRs,tipo)
   lOCAL valor
   LOCAL nLen:=Len(cBuscar)
   STATIC nLenAnt
   DEFAULT nLenAnt:=0
   IF Len(cBuscar)>1
    IF(nLenAnt>nLen,oRs:MoveFirst(),)
        oRs:Find( "NO_PEDIDO LIKE '"+cBuscar+"*'",,1)
        if oRs:Eof
            oRs:MoveFirst()
            valor:=" "
        else
            do case
                case tipo=1
                    valor:= oRs:Fields("FECHAPOD"):Value
                case tipo=2
                    valor:= oRs:Fields("HORAPOD"):Value
                case tipo=3
                    valor:= oRs:Fields("FIRMAPOD"):Value
            end case
        endif
//  ELSE
//      oRs:MoveFirst()
//      IF !Empty(cBuscar)
//          oRs:Find( "NO_PEDIDO LIKE '"+cBuscar+"*'",,1)
//      ENDIF
   ENDIF
   nLenAnt:=nLen
RETURN valor
--------------------------
Saludos

Jose Luis
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Post by karinha »

TWBrowse():lHScroll:= .F. ?? esto és la WBROWSE.PRG de Hernan? Porquê no usas Nativa és mejor?

Code: Select all

   Donde esta el:

   oBrw:GoBottom()
   oBrw:Refresh()
   oBrw:Gotop()

   ó solo:

   oBrw:Refresh()
 
Saludos.
João Santos - São Paulo - Brasil
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Post by karinha »

Aqui:

Code: Select all

FUNCTION Buscasql(oLbx,cBuscar,oRs,tipo)  // no oBrw

y use el refresh()

 
Saludos.
João Santos - São Paulo - Brasil
User avatar
cnavarro
Posts: 5792
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Twbrowse Refresca al pasar por encima el raton

Post by cnavarro »

Has probado a no ponerle el picture "@Z" ?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Twbrowse Refresca al pasar por encima el raton

Post by JoseLuis »

Buenas

El Refresh() sí lo tengo en el código.

También he probado el tema del picture, pero sigue igual.

Lo curioso es que siempre ocurre con la primera linea que hace la llamada a la función que busca en la tabla mysql (buscasql()), es decir que tengo

Code: Select all

                                iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,1))," "),;  // HACE LA LLAMADA A MYSQL, ESTA COLUMNA SE MUESTRA AL PASAR SOBRE ELLA
                               iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,2))," "),;
                               iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,3))," "),;
Esto solo ocurre con la primera, si la elimino, ocurre con la segunda, y si al contrario pongo una columna antes que estas tres, ocurre con ésta que pongo, y estas tres las pinta correctamente

Es curioso.
--------------------------
Saludos

Jose Luis
JoseLuis
Posts: 359
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Twbrowse Refresca al pasar por encima el raton

Post by JoseLuis »

Buenas

Para salir del paso, en vista de que siempre, la primera consulta que hago es la que tiene el problema de refresco, lo que he optado es por hacer dos consultas seguidas sobre el mismo dato y para la primera columna, y todo correcto, al devolverme el valor en la segunda consulta, se pinta correctamente.

Hago así

Code: Select all

                   iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,1),buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,1) )," "),;
                   iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,2))," "),;
                   iif(conexion = "S",(buscasql(oLbx,transform(((aAlias[24])->Orden),"@Z 9999999"),oRs,3))," "),;
 
No lo entiendo, pero así se queda.

Saludos
--------------------------
Saludos

Jose Luis
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Post by karinha »

Intenta con este modelo o cambie a xBrowse().

Code: Select all

#Include "FiveWin.ch"

REQUEST OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto

FUNCTION LLAMADO()

   ...

   SELECT( DBCADPROPO )
   SET ORDER TO 01
   GO TOP

   cAlias := ALIAS()

   REDEFINE LISTBOX oLbx FIELDS                                              ;
            ( cAlias )->PROPOCOD                                           , ; 
            ( cAlias )->CONTRCOD                                           , ;
            XPADL( ALLTRIM( STR( ( cAlias )->CLIENCOD,12,0 ) ), 12 )       , ;
            ( cAlias )->CLIENTE                                            , ;
            ( cAlias )->END_PROP                                           , ; 
            ( cAlias )->BAIR_PROP                                          , ; 
            ( cAlias )->CEP_PROP                                           , ; 
            ( cAlias )->ZELAD_RESP                                         , ; 
            ( cAlias )->FONE_ZRESP                                         , ; 
            ( cAlias )->SINDI_PROP                                         , ; 
            ( cAlias )->FONE_SINDI                                         , ; 
            ( cAlias )->FAX_SINDIC                                         , ; 
            SPACE(01)                                                        ; 
            HEADERS ( OemToAnsi( "PROPOSTA:"   ) )                         , ;
                    ( OemToAnsi( "CONTRATO:"   ) )                         , ;
                    ( OemToAnsi( "CLIENTE  N§" ) )                         , ;
                    ( OemToAnsi( "NOME CLIENTE:" ) )                       , ;
                    ( OemToAnsi( "ENDERE€O:" ) )                           , ;
                    ( OemToAnsi( "BAIRRO" ) )                              , ;
                    ( OemToAnsi( "C.E.P.:" ) )                             , ;
                    ( OemToAnsi( "ZELAD/RESP " ) )                         , ;
                    ( OemToAnsi( "TEL ZEL/RESP:" ) )                       , ;
                    ( OemToAnsi( "SINDICO:" ) )                            , ;
                    ( OemToAnsi( "FONE SINDICO:" ) )                       , ;
                    ( OemToAnsi( "FAX SINDICO:" ) )                        , ;
                    ( OemToAnsi( " - "         ) )                           ; 
            FIELDSIZES  90, 90, 120, 400, 400, 200, 90, 300, 300, 200, 210,  ;
                       210, 01                                               ;
            COLOR CLR_BROWN, CLR_LGREEN FONT oFnt UPDATE ID 101 OF oDlg      ;
            ON DBLCLICK( GETCHAMADO( .F., oLbx  ),                           ;
                         oLbx:SetFocus(), oLbx:Refresh(), oLbx:DrawSelect() )

   // Tooltip com imagem. Pode-se usar 1, 2 e 3.
   oLbx:cTooltip :={ "Click na ListBox Para Editar...",                       ;
                     "CADASTRO DE DADOS PARA PROPOSTA", 1, CLR_WHITE, CLR_HBLUE }

   //-----------------------------------------------------------------------// 
   oLbx:nClrBackHead  := CLR_LGREEN
   oLbx:nClrText      := {|| nRGB( 000, 000, 000 ) }
   oLbx:nClrBackFocus := CLR_WHITE
   oLbx:nClrForeFocus := CLR_HRED
   oLbx:nClrForeHead  := CLR_BLACK
   oLbx:nClrPane      := { || IIF( ( oLbx:cAlias )->( OrdKeyNo() ) %2 == 0, ;
                              CLR_WHITE, CLR_LGRAY ) }
   oLbx:nColAct       := 4
   oLbx:nLineStyle    := 3
   oLbx:lCellStyle    := .T.
   // Justifica: .F. = Esquerda .T. = Centro
   oLbx:aJustify := { .T., .T., .T., .F., .F., .F., .F., .F., .F., .F., .F., ;
                           .F., .F. } 
   oLbx:lMChange      := .F.
   oLbx:SetFocus()
   oLbx:Refresh()
  ...
RETURN NIL

FUNCTION GETLLAMADO( lAppend, oLbx  )

  ...

RETURN NIL
 
Saludos.
João Santos - São Paulo - Brasil
VitalJavier
Posts: 188
Joined: Mon Jun 10, 2013 6:40 pm

Re: Twbrowse Refresca al pasar por encima el raton

Post by VitalJavier »

Que tal, Yo utilizo xbrowse

Code: Select all

       oBrow:aCols[09]:bStrData := {|| nArti1 := RetornaPrecioArti1() }
 
Aqui me funciona muy bien.
Post Reply