FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour BUG en xBrowse
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
BUG en xBrowse
Posted: Mon Oct 25, 2010 11:55 PM
Hola antonio:

No se si en versiones posteriores a la version de FWH/FWHX 8.12 28/December/2008 esta solucionado este pequeño bug, en caso contrario, me explico:

Cuando creas un xBrowse con 2 lineas en la cabecera, cuando das al boton derecho que aparece el menu de que campos de cabecera se quien ver en el xBrowse, aparecen como la imagen que adjunto, y otro pequeño detalle, es que, al exportar los datos al Excel con el metodo ToExcel(), las cabeceras en la hoja de calculo aparecen caracteres no deseados por el tema de las cabeceras en el xBrowse. No es algo muy importante, pero si hace que no quede profesional el programa.

No quiero dejar pasar la oportunidad de felicitarte de nuevo por el producto que has diseñado y sigues diseñando, que en mi opinion es una maravilla, hace que gente como yo haga cosas que ni en sueños imaginaria. Gracias.

un saludo
JLL

Imagen adjunta:
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
Posts: 1789
Joined: Tue Oct 11, 2005 05:01 PM
Re: BUG en xBrowse
Posted: Tue Oct 26, 2010 04:34 PM
este es el codigo que crea el menu con las columnas del browse
Code (fw): Select all Collapse
METHOD SetColumns( nRow, nCol, nFlags ) CLASS TXBrowse

   local oMenu, oCol
   local nFor, nLen

   nLen := Len( ::aCols )

   MENU oMenu POPUP
   oMenu:l2007    := ::l2007
      for nFor := 1 to nLen
         oCol := ::aCols[ nFor ]
         MenuAddItem( oCol:cHeader, , !oCol:lHide, ;
            ( Len(::aDisplay) != 1 .or. ocol:nPos != 1 ), ;
            GenMenuBlock( ::aCols, nFor ) )
      next
   ENDMENU

   ACTIVATE POPUP oMenu AT nRow, nCol OF Self

return nil


Habria que reempalzarlo por este codigo
Code (fw): Select all Collapse
METHOD SetColumns( nRow, nCol, nFlags ) CLASS TXBrowse

   local oMenu, oCol
   local nFor, nLen
   loca cPrompt

   nLen := Len( ::aCols )

   MENU oMenu POPUP
      oMenu:l2007  := ::l2007

      FOR nFor := 1 TO nLen

         oCol := ::aCols[ nFor ]
         cPrompt := strtran( oCol:cHeader, CRLF, " " )

         MenuAddItem(  cPrompt, , !oCol:lHide, ;
            ( Len(::aDisplay) != 1 .or. ocol:nPos != 1 ), ;
            GenMenuBlock( ::aCols, nFor ) )

      NEXT

   ENDMENU

   ACTIVATE POPUP oMenu AT nRow, nCol OF Self

RETURN NIL


para el caso excel, buscarn el el metodo ToExcel, el siguiente codigo
Code (fw): Select all Collapse
   for nXCol := 1 TO Len( aCols )
      oCol   := aCols[ nXCol ]

      nCol ++

      oSheet:Cells( nRow, nCol ):Value   := oCol:cHeader

y reemplazarlo por
Code (fw): Select all Collapse
   for nXCol := 1 TO Len( aCols )
      oCol   := aCols[ nXCol ]

      nCol ++

      oSheet:Cells( nRow, nCol ):Value   := strtran( oCol:cHeader, CRLF, " " )


tambien el el metodo ToCalc hayq ue realizar el cambio.
Code (fw): Select all Collapse
   for nXCol := 1 TO Len( aCols )
      oCol   := aCols[ nXCol ]

      nCol ++

      oSheet:GetCellByPosition( nCol-1, nRow-1 ):SetString = strtran( oCol:cHeader, CRLF, " " )

creo que con eso funcionara, como nota, CRLF es equivalente a chr(13)+chr(10) por lo que lo puedes reempalzar si gustas.
por favor informa si los cambios logran corregir el problema, ya que no he probado los cambios indicados.
recuerda que luego de aplicar los cambios en xbrowse.prg debes incluir este archivo a tus proyectos.

salu2
Salu2

Carlos Vargas

Desde Managua, Nicaragua (CA)
Posts: 408
Joined: Fri Jan 29, 2010 08:14 PM
Re: BUG en xBrowse
Posted: Tue Oct 26, 2010 06:00 PM

Gracias carlos muy amable:

Cuando lo pruebe te comento.

un saludo
JLL

Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com

Continue the discussion