Uitvoer kan je eenvoudig doen in html-bestanden, die je lokaal schrijft en opent met een browser.
Maak een module met alle printonderdelen, en met bovenaan
PUBLIC bToPrint AS Boolean
‘
PRIVATE hFile AS File
schrijf een bestand
OPEN sFilename FOR WRITE CREATE AS #hFile
pushHeader(bToPrint)
dat je begint met een kop die zo gemaakt wordt:
( de < en > tekens moeten natuurlijk aansluiten zonder spaties in je code)
PUBLIC SUB pushHeader(bToPrinter AS Boolean)
'
PRINT #hFile, " < html > ”
PRINT #hFile, ” < head > < title > ” & Application.Name & ” - by ” & User.Name & ” < /title > < /head > ”
PRINT #hFile, ” < body topmargin='0' leftmargin='0' fontsize='1'"
'
IF (bToPrinter) THEN
DEBUG "To printer ..."
PRINT #hFile, " onload='window.print()'"
' only works when java is on
ENDIF
'
PRINT #hFile, " > ”
‘
END
Daarna stuur je alle gegevenslijnen, eventueel in de vorm van een tabel, en sluit je het af met een “footer”
PUBLIC SUB pushFooter()
'
PRINT #hFile, " < br > < font size='1' > ” & “FACS ” & Application.Version
PRINT #hFile, ” < i > via ” & MCommon.sReportDir & ” ”
PRINT #hFile, “by ” & User.Name & “.” & System.Host & ” at ” & CStr(Date(Now())) & ” - ” & Left$(CStr(Time(Now())), 5)
PRINT #hFile, ” < /i > ”
PRINT #hFile, ” < /font > ”
PRINT #hFile, ” < /body > ”
PRINT #hFile, ” < /html > ”
‘
END
Bestand afsluiten met CLOSE na het vullen:
…
pushTableHeadwSub(sTitle, arrColNames, sSql, arrColTotals)
pushTableLines(resCostcode, arrColTotals)
pushTableFooter()
pushFooter()
‘
CLOSE #hFile
Als de volledige bestandsnaam met het volledige pad in de variabele sFilename zit, bv:
sFilename = “/home/mijnnaam/Documents/ToPrint/test.html”
dan kan je de pagina openen in een browser:
EXEC ["konqueror", sFilename]
EXEC ["firefox", sFilename]
(dit is in de KDE omgeving uitgevoerd - Gnome heeft bv geen konqueror standaard geïnstalleerd)