html rapport weergeven of printen

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)

Comments are closed.