Page 1 of 1
Consulta Sobre uso de FONT en Xbrowse
Posted: Thu Oct 10, 2019 3:46 pm
by remtec
Hola Amigos.
Tengo una DBF que tiene 2 campos:
Tip_Lin = Tipo de Linea
Det_Lin = Detalle de la Linea
Lo que necesito es usar 2 tipos de Font por Filas en XBROWSE, un Font cuando Tip_Lin = "T" y otro para = "D"
Desde ya muchas gracias.
Muchos Saludos.
Antonio.
Re: Consulta Sobre uso de FONT en Xbrowse
Posted: Thu Oct 10, 2019 4:17 pm
by leandro
Una idea
Code: Select all
oBrw:oFont := { || If( oRsFtr:Eof, Space( nWidth ), tipoLetra( cValtoChar( oRsFtr:Fields( "ll_anulad" ):Value ) ) ) }
....
************************
*CAMBIA EL TIPO DE LETRA
************************
Function tipoLetra(valor)
Define Font oFontT Name "Calibri" Size 0,-13 STRIKEOUT
Define Font oFontN Name "Calibri" Size 0,-13
IF valor=="A"
Return oFontT
ELSE
Return oFontN
ENDIF
Re: Consulta Sobre uso de FONT en Xbrowse
Posted: Thu Oct 10, 2019 4:18 pm
by carlos vargas
textxbr6.prg te muestra como pintar individualmente una celda usando diferentes tipo de fuentes.
Code: Select all
#include 'fivewin.ch'
#include 'xbrowse.ch'
function main()
local oDlg, oBrw
local oFont, oBold, oItalic
local aData := {}
DEFINE FONT oFont NAME 'TAHOMA' SIZE 0,-12
DEFINE FONT oBold NAME 'TAHOMA' SIZE 0,-12 BOLD
DEFINE FONT oItalic NAME 'TAHOMA' SIZE 0,-12 ITALIC
AAdd( aData, { 1, 'Otto ', ;
'Mr.Otto' + CRLF + ;
'deleveloped using multiple fonts in the same cell' } )
AAdd( aData, { 2, 'Richard', ;
"MR.OTTO'S" + CRLF + ;
'work is well appreciated' } )
AAdd( aData, { 3, 'Chidak ', ;
'Mr.Richard Chidak' + CRLF + ;
'also has similar requirement. But needs to change the library' } )
AAdd( aData, { 4, 'Antonio', ;
'FWH' + CRLF + ;
'Provides easier solution for owner drawing data without changing library code' } )
DEFINE DIALOG oDlg SIZE 440,440 PIXEL FONT oFont
@ 10, 10 XBROWSE oBrw ;
HEADERS 'No', 'Name', 'Text' ;
SIZE 200, 200 PIXEL ;
OF oDlg ;
ARRAY aData AUTOCOLS ;
LINES
oBrw:nStretchCol := STRETCHCOL_LAST
WITH OBJECT oBrw:aCols[3]
:nHeadStrAlign := AL_CENTER
:nWidth := 200
:bPaintText := { |oCol, hDC, cText, aCoord| DrawText( oCol, hDC, cText, aCoord, oBold, oItalic ) }
END
oBrw:nDataLines := 6
oBrw:CreateFromCode()
ACTIVATE DIALOG oDlg CENTERED
RELEASE FONT oFont
RELEASE FONT oBold
RELEASE FONT oItalic
return nil
static function DrawText( oCol, hDC, cText, aCoord, oBold, oItalic )
local nTop := aCoord[ 1 ], nLeft := aCoord[ 2 ]
local nBottom := aCoord[ 3 ], nRight := aCoord[ 4 ]
local nRow := nTop
local cLine, nFontHt, nAt
nAt := AT( CRLF, cText )
if nAt > 0
cLine := Left( cText, nAt - 1 )
oBold:Activate( hDC )
nFontHt := GetTextHeight( oCol:oBrw:hWnd, hDC )
DrawTextEx( hDC, cLine, { nRow, nLeft, nRow + nFontHt + 4, nRight }, 1 ) //oCol:nDataStyle )
oBold:DeActivate( hDC )
nRow += nFontHt + 4
cLine := SubStr( cText, nAt + 2 )
else
cLine := cText
endif
oItalic:Activate( hDC )
DrawTextEx( hDC, cLine, { nRow, nLeft, nBottom, nRight }, oCol:nDataStyle )
oItalic:DeActivate( hDC )
return nil
Re: Consulta Sobre uso de FONT en Xbrowse
Posted: Thu Oct 10, 2019 4:29 pm
by remtec
Hola Leandro y Carlos.
Muchas gracias por su ayuda, realmente se pasaron, ahora a implementar lo que necesito.
Muchos Saludos
Antonio.
Re: Consulta Sobre uso de FONT en Xbrowse
Posted: Thu Oct 10, 2019 6:24 pm
by FranciscoA
Aqui tienes otra idea:
Code: Select all
REDEFINE XBROWSE oBrw ID 181 OF oDlg ;
---
WITH OBJECT oBrw
---
END
FOR N:=1 TO LEN(oBrw:aCols)
oBrw:aCols[n]:oDataFont := {|| IF( (cAlias)->Tip_Lin = 'T', oFont1, oFont2) }
NEXT
Saludos.