html rapport weergeven of printen

Uitvoer kan je eenvoudig doen in html-bestanden, die je lokaal schrijft en opent met een browser.

Daarvoor moeten we een bestand openen (een nieuw bestand maken) om in te schrijven, tekst naar het bestand schrijven, en het bestand sluiten.

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)

This entry was posted in Hoe - in Gambas, Uncategorized. Bookmark the permalink.