FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Twbrowse Refresca al pasar por encima el raton
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 10:31 AM
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:


Despues de pasar el raton:


Columna F/E

Un Saludo
--------------------------

Saludos



Jose Luis
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 12:12 PM

Muestra el código. És un campo númerico?

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 04:09 PM
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 (fw): Select all Collapse
  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 (fw): Select all Collapse
//---------------------------------
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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 04:53 PM
TWBrowse():= .F. ?? esto és la WBROWSE.PRG de Hernan? Porquê no usas Nativa és mejor?

Code (fw): Select all Collapse
   Donde esta el:

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

   ó solo:

   oBrw:Refresh()


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 07:49 PM
Aqui:

Code (fw): Select all Collapse
FUNCTION Buscasql(oLbx,cBuscar,oRs,tipo)  // no oBrw

y use el refresh()


Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 08:11 PM

Has probado a no ponerle el picture "@Z" ?

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Tue Apr 16, 2019 10:48 PM
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 (fw): Select all Collapse
                                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
Posts: 428
Joined: Thu Oct 19, 2006 12:28 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Wed Apr 17, 2019 08:13 AM
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 (fw): Select all Collapse
                   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
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Wed Apr 17, 2019 12:19 PM
Intenta con este modelo o cambie a xBrowse().

Code (fw): Select all Collapse
#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 - Phone: +55(11)95150-7341
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: Twbrowse Refresca al pasar por encima el raton
Posted: Fri Apr 26, 2019 05:38 PM
Que tal, Yo utilizo xbrowse

Code (fw): Select all Collapse
       oBrow:aCols[09]:bStrData := {|| nArti1 := RetornaPrecioArti1() }


Aqui me funciona muy bien.

Continue the discussion