FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Posible bug en Xbrowse
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Posible bug en Xbrowse
Posted: Tue Jan 08, 2013 03:57 PM
Hola amigos del foro:

Me estoy enfrentando a un problema que tal vez sea un bug en la clase TXBrowse, les cuento para que
veamos de que se trata.

Tengo un Browse con 8 columnas aunque solo muestro 5 y tengo un freeze hasta la columna 4
oBrw:nFreeze := 4, esto se aprecia en la siguiente imágen:



La quinta columna es la columna del precio, existen 4 diferentes precios (Público, Crédito, Medio mayoreo y Mayoreo), de entrada
se muestra el precio Público, para mostrar el resto, el usuario coloca el foco sobre el producto y con la tecla "Flecha a la derecha"
va mostrando el siguiente precio, hasta aquí todo bien, peroooooooo, el problema es que nunca se muestra el cuarto precio solo
se llega a mostrar hasta el tercero, veamos la siguiente imágen:



Como vemos no aparece el precio Mayoreo por más que se oprima la tecla Flecha a la derecha,
les muestro parte de mi código por si sirve de algo


Code (fw): Select all Collapse
        oBrw:=TxBrowse():New(oDlg)

            oBrw:nMarqueeStyle          := MARQSTYLE_HIGHLROW
            oBrw:nColDividerStyle       := LINESTYLE_LIGHTGRAY
            oBrw:nRowDividerStyle       := LINESTYLE_LIGHTGRAY
            oBrw:lColDividerComplete    := (.F.)
            oBrw:nHeaderHeight          := 25
            oBrw:nRowHeight             := 22
            oBrw:nHeaderLines               := 1
            oBrw:nDataLines             := 1
            oBrw:nFooterHeight          := 20
            oBrw:nFooterLines               := 1
            oBrw:lFooter                    := (.T.)
            oBrw:lHScroll                   := (.F.)
            oBrw:lRecordSelector            := (.F.)
            oBrw:nFreeze                    := 4
            oBrw:bSeek                  := { | cChars | BusDes(cChars) }
            oBrw:oSeek                  := oSay

        aColw[ 1]                           := oBrw:AddCol()
            aColw[ 1]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),oRsPro:Fields("PRO_PRO"):Value)}
            aColw[ 1]:cHeader           := "Código"
            aColw[ 1]:nHeadStrAlign     := AL_LEFT
            aColw[ 1]:nDataStrAlign     := AL_LEFT
            aColw[ 1]:nWidth                := 70

        aColw[ 2]                           := oBrw:AddCol()
            aColw[ 2]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),oRsPro:Fields("PRO_DES"):Value)}
            aColw[ 2]:cHeader           := "Descripción del producto"
            aColw[ 2]:nHeadStrAlign     := AL_LEFT
            aColw[ 2]:nDataStrAlign     := AL_LEFT
            aColw[ 2]:nWidth                := 275
            aColw[ 2]:cOrder                := "A"

           aColw[ 3]                            := oBrw:AddCol()
            aColw[ 3]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),oRsPro:Fields("MAR_DES"):Value)}
            aColw[ 3]:cHeader           := "Marca"
            aColw[ 3]:nHeadStrAlign     := AL_LEFT
            aColw[ 3]:nDataStrAlign     := AL_LEFT
            aColw[ 3]:nWidth                := 125

        aColw[ 4]                           := oBrw:AddCol()
            aColw[ 4]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),TRANSFORM(oRsPro:Fields("PRO_SEU"):Value,"@Z 999,999.999"))}
            aColw[ 4]:cHeader           := "Existencia"
            aColw[ 4]:nHeadStrAlign     := AL_RIGHT
            aColw[ 4]:nDataStrAlign     := AL_RIGHT
            aColw[ 4]:nWidth                := 70

        aColw[ 5]                           := oBrw:AddCol()
            aColw[ 5]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),TRANSFORM(oRsPro:Fields("PRO_PPG"):Value,"@Z 999,999.999"))}
            aColw[ 5]:cHeader           := "Público"
            aColw[ 5]:nHeadStrAlign     := AL_RIGHT
            aColw[ 5]:nDataStrAlign     := AL_RIGHT
            aColw[ 5]:nWidth                := 70

        aColw[ 6]                           := oBrw:AddCol()
            aColw[ 6]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),TRANSFORM(oRsPro:Fields("PRO_PCR"):Value,"@Z 999,999.999"))}
            aColw[ 6]:cHeader           := "Crédito"
            aColw[ 6]:nHeadStrAlign     := AL_RIGHT
            aColw[ 6]:nDataStrAlign     := AL_RIGHT
            aColw[ 6]:nWidth                := 70

        aColw[ 7]                           := oBrw:AddCol()
            aColw[ 7]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),TRANSFORM(oRsPro:Fields("PRO_PMM"):Value,"@Z 999,999.999"))}
            aColw[ 7]:cHeader           := "Medio"
            aColw[ 7]:nHeadStrAlign     := AL_RIGHT
            aColw[ 7]:nDataStrAlign     := AL_RIGHT
            aColw[ 7]:nWidth                := 70

        aColw[ 8]                           := oBrw:AddCol()
            aColw[ 8]:bStrData              := { || IF(oRsPro:BOF() .AND. oRsPro:EOF(),SPACE(1),TRANSFORM(oRsPro:Fields("PRO_PMA"):Value,"@Z 999,999.999"))}
            aColw[ 8]:cHeader           := "Mayoreo"
            aColw[ 8]:nHeadStrAlign     := AL_RIGHT
            aColw[ 8]:nDataStrAlign     := AL_RIGHT
            aColw[ 8]:nWidth                := 70

            oBrw:blDblClick             := { | nRow, nCol, nKey | oWrk:PRO := oRsPro:Fields("PRO_PRO"):Value,;
                                                                                    aGets[19]:SetFocus(),;
                                                                                    oDlg:POSTMSG(WM_KEYDOWN,VK_RETURN,0)}

           oBrw:l2007                       := (.F.)

            oBrw:nStretchCol                := STRETCHCOL_LAST


Uso FW810 con xHarbour.

Maestro Antonio, se puede hacer algo?

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Posible bug en Xbrowse
Posted: Tue Jan 08, 2013 07:48 PM
Hola Armando.
Probablemente se problema en la version que tienes. El siguiente ejemplo trabaja perfectamente en FWH1204
Code (fw): Select all Collapse
REDEFINE XBROWSE oBrw ID 118 OF oDlg ;
         COLUMNS "Codigo", "Nombre", "Apellido","CedulaIde","1","2" ; 
         SIZES 70,170,170,140 ,140,140;
         ALIAS (cAlias) FOOTERS LINES CELL

   WITH OBJECT oBrw
      :nMarqueeStyle    := MARQSTYLE_HIGHLROW  //_HIGHLROWMS
      :nColDividerStyle:=LINESTYLE_LIGHTGRAY
      :nRowDividerStyle:=LINESTYLE_LIGHTGRAY
      :bClrSel       := {|| { nRGB(  0,  0,255), aGradBarSel } }  // para barra de linea selecc cuando el control no tiene el foco
      :bClrSelFocus := { || { CLR_BLACK, aGradBarSelFocus } }     // para barra de linea selecc cuando el control tiene el foco
      :lKinetic      := .f.
      :lContrastClr  := .f.

      :nFreeze                := 3

      :bKeyDown := {|nTecla| iif(nTecla=13, (cCodigo:=CLIENTES->codigo, oDlg:End(), oBrw:Refresh()),)}
      :bLDblClick := {|| cCodigo:=CLIENTES->codigo, oDlg:End() }

      :bGotFocus:= {|| dbSelectArea("Clientes") }

      :Codigo:cSortOrder   := "CLIENTES" 
      :nombre:cSortOrder   := "NOMBCLTE" 
      :apellido:cSortOrder := "APELCLTE" 
      :cedulaide:cSortOrder:= "CEDULIDE" 
   END

   REDEFINE SAY oTextBusc PROMPT cTextBusc ID 4003 OF oDlg UPDATE
   oTextBusc:cTooltip:= {"Click sobre cabecera de columna para busqueda respectiva","BUSQUEDA INCREMENTAL          "}

   oBrw:bSeek := {|c| Clientes->( DbSeek(UPPER(c),.t.) ) }
   oBrw:oSeek := oTextBusc


Por otro lado, tal vez lo puedas resolver agregando una columna en blanco. Si, lo sé, manera chapucera.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Posible bug en Xbrowse
Posted: Tue Jan 08, 2013 08:28 PM

Francisco:

Te agradezco tu respuesta, posiblemente sea la versión, por el momento lo he solucionado
cambiando el tipo de marquesina, aunque me agradaría que fuera a renglón completo.

oBrw:nMarqueeStyle := MARQSTYLE_HIGHLCELL

Por otro lado, voy a probar tu sugerencia y te informo.

Un abrazo

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Posible bug en Xbrowse
Posted: Tue Jan 08, 2013 09:43 PM

Francisco y amigos:

Pues no, siguiendo tu idea agregue una columna duplicando la última pero no!
simplemente no funciona.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 12:15 PM

hola.
Armando, como ahces apra que el xbrowse te pinte toda la linea y no por celda?
ya intente con
:nMarqueeStyle
del 1 al 7 pero no da.

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 01:15 PM
puedes cambiar y probar?
Code (fw): Select all Collapse
oBrw:lHScroll                   := (.T.)

salu2
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 01:47 PM
carlos vargas wrote:puedes cambiar y probar?
Code (fw): Select all Collapse
oBrw:lHScroll                   := (.T.)

salu2


Hola.
Pero eso no es la barra de desplazamiento? yo necesito que aparezca como la figura de arriba cuando comenzo el post, que esta pintad toda de azul.
gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 03:12 PM
Prueba con esto :
Code (fw): Select all Collapse
oBrw:nMarqueeStyle       := 5
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 03:19 PM
Goos:

Lo uso así

Code (fw): Select all Collapse
oBrw:nMarqueeStyle          := MARQSTYLE_HIGHLROW


Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 03:26 PM
Armando wrote:Goos:

Lo uso así

Code (fw): Select all Collapse
oBrw:nMarqueeStyle          := MARQSTYLE_HIGHLROW


Saludos


probe eso, pero no me anda, solo pinta la celda.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 04:55 PM

Goos:

Será que tienes ambas definiciones?, muestra el código para echarle un ojo.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 05:14 PM
Armando wrote:Goos:

Será que tienes ambas definiciones?, muestra el código para echarle un ojo.

Saludos

Code (fw): Select all Collapse
   WITH OBJECT ::oBrw

         :bClrStd    := { || If( ::oBrw:KeyNo() % 2 == 0, ;
                   { CLR_BLACK, RGB( 255, 255, 255 ) }, ;
                   { CLR_BLACK, RGB( 214, 255, 215 ) } ) }

         :bClrRowFocus     := { || { CLR_BLACK, CLR_WHITE} }

         :nMarqueeStyle   := 5
         :nRowHeight      := 23
         :nheaderHeight      := 20
         :lRecordSelector := .F.
         :lColDividerComplete := .F.
         :nRowDividerStyle:= 4
         :nStretchCol := STRETCHCOL_LAST
         :nColDividerStyle:=  4

         WITH object :aCols[1]
            :odatafont:= oFont
            :cHeader:= "Id"
            :nHeadStrAlign:= AL_CENTER
            :oheaderfont:= oFont
            :oheaderfont:= oFont
         END with
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 05:29 PM

lHScroll := .t.

permite mostrar la barra de desplazamiento horizontal, asi mismo permite que el usuario pueda desplazarse hacia los lados.
es tambien necesario, agreagr al style del custom control en el recurso la definicion WS_HSCROLL para qeu funcione correctamente.

salu2
carlos vargas

Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Posible bug en Xbrowse
Posted: Mon Aug 11, 2014 09:48 PM
carlos vargas wrote:lHScroll := .t.

permite mostrar la barra de desplazamiento horizontal, asi mismo permite que el usuario pueda desplazarse hacia los lados.
es tambien necesario, agreagr al style del custom control en el recurso la definicion WS_HSCROLL para qeu funcione correctamente.

salu2
carlos vargas


Carlos,
Perdon que incista, pero no entiendo si me estas contestando a mi. No tengo problemas con el Scroll. Necesito que toda la fila de un xbrowse sea pintada cuando me posiciono en uno y no como me hace ahora que solo me pinta una celda.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 2064
Joined: Fri Jan 06, 2006 09:28 PM
Re: Posible bug en Xbrowse
Posted: Tue Aug 12, 2014 02:06 AM

Goosfabdito, lo que sugirio Carlos es para el colega que abrio el tema, para ti te recomiendo que coloques de primero el

:nMarqueeStyle := 5 o con
:nMarqueeStyle := MARQSTYLE_HIGHLROW

y luego las demas definiciones, pareciera eso tiene algo que ver y coloca el

:bClrStd := {||

de ultimo, saludos... :shock:

Dios no está muerto...



Gracias a mi Dios ante todo!