Twbrowse Refresca al pasar por encima el raton

Twbrowse Refresca al pasar por encima el raton

Postby JoseLuis » 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:
Image

Despues de pasar el raton:
Image

Columna F/E

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

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

Re: Twbrowse Refresca al pasar por encima el raton

Postby karinha » 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
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Postby JoseLuis » Tue Apr 16, 2019 4: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: Select all  Expand view
 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  Expand view
//---------------------------------
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
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Twbrowse Refresca al pasar por encima el raton

Postby karinha » Tue Apr 16, 2019 4:53 pm

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

Code: Select all  Expand view

   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
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Postby karinha » Tue Apr 16, 2019 7:49 pm

Aqui:

Code: Select all  Expand view

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
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Postby cnavarro » Tue Apr 16, 2019 8: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
User avatar
cnavarro
 
Posts: 6500
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: Twbrowse Refresca al pasar por encima el raton

Postby JoseLuis » 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: Select all  Expand view
                               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: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Twbrowse Refresca al pasar por encima el raton

Postby JoseLuis » Wed Apr 17, 2019 8: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: Select all  Expand view
                   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
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Twbrowse Refresca al pasar por encima el raton

Postby karinha » Wed Apr 17, 2019 12:19 pm

Intenta con este modelo o cambie a xBrowse().

Code: Select all  Expand view

#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
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Twbrowse Refresca al pasar por encima el raton

Postby VitalJavier » Fri Apr 26, 2019 5:38 pm

Que tal, Yo utilizo xbrowse

Code: Select all  Expand view

       oBrow:aCols[09]:bStrData := {|| nArti1 := RetornaPrecioArti1() }
 


Aqui me funciona muy bien.
VitalJavier
 
Posts: 228
Joined: Mon Jun 10, 2013 6:40 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 22 guests