Die Net.Data-Makrodatei enthält HTML-Blöcke und die Funktionen in den HTML-Blöcken, die die HTML-Ausgabe für einen Web-Browser generieren. In einer Makrodatei muß mindestens ein HTML-Block definiert werden. Der Inhalt des HTML-Blocks steuert den übrigen Net.Data-Aufruf.
Jede gültige HTML-Anweisung kann in einem HTML-Block verwendet werden. 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-Blocks 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-FUNCTION-Block 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 HTML-Anweisungen anzeigt.
Wenn Net.Data die Verarbeitung des REPORT-Blocks abgeschlossen hat, kehrt Net.Data zum Block HTML(REPORT) zurück und beendet die Verarbeitung.
Net.Data verarbeitet bei jedem Aufruf nur einen HTML-Block. Allerdings können Sie mit Hilfe von HTML-Verbindungen und -Formularen auf einfache Weise dem Benutzer einer Anwendung einen weiteren Aufruf von Net.Data für einen anderen HTML-Block ermöglichen, wobei die Steuerung ganz bei Ihnen liegt.