FwPrinterXlsx
FwPrinterXlsx():New([lDelBase])Genera XLSX mediante comandos intermedios enviados a printer.exe.
Descripción general
Requiere printer.exe 2.1.0 o superior en cliente y servidor, LIB 20201009 y release 12.1.23 o superiores. Activate prepara .rel; AddSheet crea hoja y SetText escribe celda. toXlsx tiene retorno NIL documentado: no interpretarlo como éxito lógico. Ejemplo prepara bloque para ruta de prueba exclusiva aportada por llamador, sin ejecutarlo automáticamente. (Fuentes: refs. 1–1.)
Sintaxis
FwPrinterXlsx():New([lDelBase])Métodos
ActivatePrepara archivo base.o:Activate(cFile, [oFile])
AddSheetAgrega hoja obligatoria.o:AddSheet(cSheetName)
SetTextEscribe texto en celda.o:SetText(nRow,nCol,cValue)
toXlsxSolicita generación tras comandos.o:toXlsx() -> NIL
DeActivate / DestroyLibera elementos activados y recursos.o:DeActivate() / o:Destroy()
Ejemplo comentado
#Include "Protheus.ch"
User Function Ed447()
Local bGenerar := {|cRel| XlsxEd(cRel)}
// Llamador debe aportar ruta nueva de prueba autorizada.
ConOut(ValType(bGenerar))
Return Nil
Static Function XlsxEd(cRel)
Local oXlsx := FwPrinterXlsx():New()
Local lOk := .F.
If !File(cRel)
If oXlsx:Activate(cRel)
lOk := oXlsx:AddSheet("ED01")
If lOk
lOk := oXlsx:SetText(1,1,"Revision")
EndIf
If lOk
oXlsx:toXlsx()
EndIf
oXlsx:DeActivate()
EndIf
EndIf
oXlsx:Destroy()
// lOk corresponde a comandos, no valida XLSX final.
Return lOkMuestra B y prepara generación; al invocar bloque, validar archivo final por separado. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- Evitar nombres concurrentes. File es comprobación preliminar, no reserva atómica. GetStatusPrinter no comprueba éxito de generación.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.