#include "hbclass.ch" CREATE CLASS TLLBarcode FROM TObjectBase DATA cContent INIT "" DATA cBarcodeType INIT "EAN13" DATA lShowText INIT .T. DATA lTrimSpaces INIT .F. DATA cColor INIT "#000000" DATA cColorFormula INIT "" DATA cFontFamily INIT "Arial" DATA nFontSize INIT 12 DATA lFontBold INIT .F. DATA cFontBoldFormula INIT "" DATA lFontItalic INIT .F. DATA cFontItalicFormula INIT "" DATA lFontUnderline INIT .F. DATA cFontUnderlineFormula INIT "" DATA lFontStrikeout INIT .F. DATA cFontStrikeoutFormula INIT "" METHOD New( oParent ) CONSTRUCTOR METHOD Init( oParent ) METHOD Create() METHOD End() METHOD Save() METHOD Load( hData ) METHOD GenerarRenderizable( oContextoEjecucion ) ENDCLASS METHOD New( oParent ) CLASS TLLBarcode ::Init( oParent ) RETURN Self METHOD Init( oParent ) CLASS TLLBarcode ::oParent := oParent ::cName := "Código de barras" ::cType := "TBarcode" ::cContent := Chr( 34 ) + "123456789012" + Chr( 34 ) ::cBarcodeType := "EAN13" ::lShowText := .T. ::lTrimSpaces := .F. ::cColor := "#000000" ::cColorFormula := "" ::cFontFamily := "Arial" ::nFontSize := 12 ::lFontBold := .F. ::cFontBoldFormula := "" ::lFontItalic := .F. ::cFontItalicFormula := "" ::lFontUnderline := .F. ::cFontUnderlineFormula := "" ::lFontStrikeout := .F. ::cFontStrikeoutFormula := "" ::lBorderTop := .F. ::lBorderRight := .F. ::lBorderBottom := .F. ::lBorderLeft := .F. RETURN Self METHOD Create() CLASS TLLBarcode RETURN Self METHOD End() CLASS TLLBarcode ::oParent := NIL RETURN NIL METHOD Save() CLASS TLLBarcode LOCAL hData := ::Super:Save() hData[ "cContent" ] := ::cContent hData[ "cBarcodeType" ] := ::cBarcodeType hData[ "lShowText" ] := ::lShowText hData[ "lTrimSpaces" ] := ::lTrimSpaces hData[ "cColor" ] := ::cColor hData[ "cColorFormula" ] := ::cColorFormula hData[ "cFontFamily" ] := ::cFontFamily hData[ "nFontSize" ] := ::nFontSize hData[ "lFontBold" ] := ::lFontBold hData[ "cFontBoldFormula" ] := ::cFontBoldFormula hData[ "lFontItalic" ] := ::lFontItalic hData[ "cFontItalicFormula" ] := ::cFontItalicFormula hData[ "lFontUnderline" ] := ::lFontUnderline hData[ "cFontUnderlineFormula" ] := ::cFontUnderlineFormula hData[ "lFontStrikeout" ] := ::lFontStrikeout hData[ "cFontStrikeoutFormula" ] := ::cFontStrikeoutFormula RETURN hData METHOD Load( hData ) CLASS TLLBarcode ::Super:Load( hData ) IF HB_ISHASH( hData ) IF hb_HHasKey( hData, "cContent" ) ::cContent := hData[ "cContent" ] ENDIF IF hb_HHasKey( hData, "cBarcodeType" ) ::cBarcodeType := hData[ "cBarcodeType" ] ENDIF IF hb_HHasKey( hData, "lShowText" ) ::lShowText := ::ValorALogico( hData[ "lShowText" ] ) ENDIF IF hb_HHasKey( hData, "lTrimSpaces" ) ::lTrimSpaces := ::ValorALogico( hData[ "lTrimSpaces" ] ) ENDIF IF hb_HHasKey( hData, "cColor" ) ::cColor := hData[ "cColor" ] ENDIF IF hb_HHasKey( hData, "cColorFormula" ) ::cColorFormula := hData[ "cColorFormula" ] ENDIF IF hb_HHasKey( hData, "cFontFamily" ) ::cFontFamily := hData[ "cFontFamily" ] ELSEIF hb_HHasKey( hData, "cFontName" ) ::cFontFamily := hData[ "cFontName" ] ENDIF IF hb_HHasKey( hData, "nFontSize" ) ::nFontSize := hData[ "nFontSize" ] ENDIF IF hb_HHasKey( hData, "lFontBold" ) ::lFontBold := ::ValorALogico( hData[ "lFontBold" ] ) ENDIF ::cFontBoldFormula := iif( hb_HHasKey( hData, "cFontBoldFormula" ), ::ValorAString( hData[ "cFontBoldFormula" ] ), "" ) IF hb_HHasKey( hData, "lFontItalic" ) ::lFontItalic := ::ValorALogico( hData[ "lFontItalic" ] ) ENDIF ::cFontItalicFormula := iif( hb_HHasKey( hData, "cFontItalicFormula" ), ::ValorAString( hData[ "cFontItalicFormula" ] ), "" ) IF hb_HHasKey( hData, "lFontUnderline" ) ::lFontUnderline := ::ValorALogico( hData[ "lFontUnderline" ] ) ENDIF ::cFontUnderlineFormula := iif( hb_HHasKey( hData, "cFontUnderlineFormula" ), ::ValorAString( hData[ "cFontUnderlineFormula" ] ), "" ) IF hb_HHasKey( hData, "lFontStrikeout" ) ::lFontStrikeout := ::ValorALogico( hData[ "lFontStrikeout" ] ) ENDIF ::cFontStrikeoutFormula := iif( hb_HHasKey( hData, "cFontStrikeoutFormula" ), ::ValorAString( hData[ "cFontStrikeoutFormula" ] ), "" ) ENDIF RETURN Self METHOD GenerarRenderizable( oContextoEjecucion ) CLASS TLLBarcode LOCAL uContenido LOCAL hBarcode LOCAL hRender LOCAL hPadding LOCAL cColor LOCAL cBackgroundColor IF ! ::EsVisibleEnEjecucion( oContextoEjecucion ) RETURN NIL ENDIF uContenido := oContextoEjecucion:EvaluarFormula( ::cContent ) IF ::lTrimSpaces IF HB_ISHASH( uContenido ) .AND. hb_HHasKey( uContenido, "texto" ) uContenido := hb_HClone( uContenido ) uContenido[ "texto" ] := AllTrim( ::ValorAString( uContenido[ "texto" ] ) ) ELSEIF HB_ISSTRING( uContenido ) uContenido := AllTrim( uContenido ) ENDIF ENDIF IF HB_ISHASH( uContenido ) .AND. hb_HHasKey( uContenido, "tipo" ) .AND. uContenido[ "tipo" ] == "barcode" hBarcode := hb_HClone( uContenido ) IF ! hb_HHasKey( hBarcode, "bits" ) .AND. ; ! hb_HHasKey( hBarcode, "matriz" ) .AND. ; ! hb_HHasKey( hBarcode, "error" ) hBarcode := TBarcodeUtil():New():Crear( ; iif( hb_HHasKey( hBarcode, "texto" ), hBarcode[ "texto" ], "" ), ; iif( hb_HHasKey( hBarcode, "barcodeTipo" ), hBarcode[ "barcodeTipo" ], ::cBarcodeType ) ) ENDIF ELSE hBarcode := TBarcodeUtil():New():Crear( uContenido, ::cBarcodeType ) ENDIF cColor := ::EvaluarColor( oContextoEjecucion, ::cColorFormula, ::cColor, .T. ) cBackgroundColor := ::EvaluarColor( oContextoEjecucion, ::cBackgroundColorFormula, ::cBackgroundColor ) hPadding := ::PaddingRenderizable() hRender := hb_HClone( hBarcode ) hRender[ "id" ] := ::cId hRender[ "x" ] := ::nLeft hRender[ "y" ] := ::nTop hRender[ "ancho" ] := ::nWidth hRender[ "alto" ] := ::nHeight hRender[ "color" ] := cColor hRender[ "colorFondo" ] := cBackgroundColor hRender[ "mostrarTexto" ] := ::lShowText hRender[ "optimizarEspacios" ] := ::lTrimSpaces hRender[ "fuente" ] := ::cFontFamily hRender[ "tamano" ] := ::nFontSize hRender[ "negrita" ] := iif( Empty( AllTrim( ::cFontBoldFormula ) ), ::lFontBold, ::ValorALogico( oContextoEjecucion:EvaluarFormula( ::cFontBoldFormula ) ) ) hRender[ "cursiva" ] := iif( Empty( AllTrim( ::cFontItalicFormula ) ), ::lFontItalic, ::ValorALogico( oContextoEjecucion:EvaluarFormula( ::cFontItalicFormula ) ) ) hRender[ "subrayado" ] := iif( Empty( AllTrim( ::cFontUnderlineFormula ) ), ::lFontUnderline, ::ValorALogico( oContextoEjecucion:EvaluarFormula( ::cFontUnderlineFormula ) ) ) hRender[ "tachado" ] := iif( Empty( AllTrim( ::cFontStrikeoutFormula ) ), ::lFontStrikeout, ::ValorALogico( oContextoEjecucion:EvaluarFormula( ::cFontStrikeoutFormula ) ) ) hRender[ "rotacion" ] := ::nRotation hRender[ "opacidad" ] := ::nOpacity hRender[ "zIndex" ] := ::nZIndex hRender[ "paddingSuperior" ] := hPadding[ "paddingSuperior" ] hRender[ "paddingDerecho" ] := hPadding[ "paddingDerecho" ] hRender[ "paddingInferior" ] := hPadding[ "paddingInferior" ] hRender[ "paddingIzquierdo" ] := hPadding[ "paddingIzquierdo" ] RETURN hRender