Die Net.Data-Makrodatei enthält HTML-Blöcke und die Konstrukte in den HTML-Blöcken, die Textdarstellungsanweisungen wie HTML für einen Web-Browser generieren. In einer Makrodatei muß mindestens ein HTML-Block definiert werden. Jeder HTML-Block generiert eine einzelne Web-Seite beim Browser. Net.Data verarbeitet bei jedem Aufruf nur einen HTML-Block, und der Inhalt des HTML-Blocks steuert den übrigen Net.Data-Aufruf. Wenn Sie eine Anwendung erstellen möchten, die mehrere Web-Seiten umfaßt, können Sie Net.Data mehrmals aufrufen, um HTML-Blöcke mit normalen HTML-Navigationsverfahren wie Programmverbindungen (Links) und Formularen zu verarbeiten.
Alle gültigen Textdarstellungsanweisungen wie HTML oder JavaScript können in einem HTML-Block vorkommen. Darüber hinaus können Sie in einem HTML-Block INCLUDE-Anweisungen, Funktionsaufrufe und Variablenverweise verwenden. Das folgende Beispiel zeigt eine gängige Verwendung von HTML-Blöcken in einem Net.Data-Makro:
%DEFINE DATABASE="MNS96"
%HTML(INPUT){
<H1>Hardware Query Form</H1>
<HR>
<FORM METHOD="POST" ACTION="/cgi-bin/db2www/equiplst.d2w/report">
<dl>
<dt>What hardware do you want to list?
<dd><input type="radio" name="hdware" value="MON" checked>Monitors
<dd><input type="radio" name="hdware" value="PNT">Pointing devices
<dd><input type="radio" name="hdware" value="PRT">Printers
<dd><input type="radio" name="hdware" value="SCN">Scanners
</dl>
<HR>
<input type="submit" value="Submit">
</FORM>
%}
%FUNCTION(DTW_SQL) myQuery() {
SELECT MODNO, COST, DESCRIP FROM EQPTABLE WHERE TYPE=$(hdware)
%REPORT{
<B>Here is the list you requested:</B><BR>
%ROW{
<HR>
$(N1): $(V1) $(N2): $(V2)
<P>
$(V3)
%}
%}
%}
%HTML(REPORT) {
@myQuery()
%}
Sie können das Net.Data-Makro über eine HTML-Verbindung wie die im folgenden Beispiel aufrufen:
<a href="http://www.ibm.com/cgi-bin/db2www/equiplst.d2w/input">List of hardware</a>
Wenn der Anwendungsbenutzer diese Verbindung anklickt, ruft der Web-Browser Net.Data auf, und Net.Data analysiert die Makrodatei. Wenn Net.Data mit der Verarbeitung des im Aufruf angegebenen HTML-Blocks, in diesem Fall der Block HTML(INPUT), beginnt, fängt Net.Data an, den Text innerhalb des Blocks zu verarbeiten. Alles, was Net.Data nicht als Net.Data-Makrosprachkonstrukt erkennt, wird als HTML-Anweisung interpretiert und zum Anzeigen an den Browser gesendet.
Wenn der Benutzer eine Auswahl getroffen und den Knopf zur Übergabe (Submit) gedrückt hat, führt Net.Data den ACTION-Abschnitt des HTML-Elements FORM aus, der einen Aufruf an den Block HTML(REPORT) des Net.Data-Makros definiert. Net.Data verarbeitet daraufhin den Block HTML(REPORT) ebenso wie zuvor den Block HTML(INPUT).
Anschließend verarbeitet Net.Data den Funktionsaufruf myQuery(), der wiederum den SQL-Block FUNCTION aufruft. Nachdem der Variablenverweis $(hdware) in der SQL-Anweisung durch den im INPUT-Formular empfangenen Wert ersetzt wurde, führt Net.Data die Abfrage aus. An dieser Stelle beginnt Net.Data wieder damit, den HTML-Bericht an den Browser zu senden, der die Ergebnisse der Abfrage gemäß den im REPORT-Block definierten Textdarstellungsanweisungen anzeigt.
Wenn Net.Data die Verarbeitung des REPORT-Blocks abgeschlossen hat, kehrt es zum Block HTML(REPORT) zurück und beendet die Verarbeitung.