Ein Net.Data-Makro enthält HTML-Blöcke, die Textdarstellungsanweisungen wie HTML für einen Web-Browser generieren. In einem Makro muß mindestens ein HTML-Block definiert werden. Jeder HTML-Block generiert eine einzelne Web-Seite beim Browser. Net.Data verarbeitet bei jedem Aufruf nur jeweils einen HTML-Block. Wenn Sie eine Anwendung erstellen möchten, die mehrere Web-Seiten umfaßt, können Sie Net.Data mehrfach aufrufen, um HTML-Blöcke mit normalen 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 Programmverbindung (Link) anklickt, ruft der Web-Browser Net.Data auf, und Net.Data analysiert das Makro. 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 zum Anzeigen an den Browser gesendet.
Wenn der Benutzer eine Auswahl getroffen und den Knopf zur Übergabe (Submit) angeklickt hat, führt Net.Data den ACTION-Abschnitt des HTML-Elements FORM aus, der einen Aufruf an den Block HTML(OUTPUT) des Net.Data-Makros angibt. Net.Data verarbeitet daraufhin den Block HTML(OUTPUT) 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 vom Eingabeformular zurückgegebenen Wert ersetzt wurde, führt Net.Data die Abfrage aus. An dieser Stelle nimmt Net.Data die Verarbeitung des Berichts wieder auf, der die Ergebnisse der Abfrage gemäß den im REPORT-Block definierten Textdarstellungsanweisungen anzeigt.
Nachdem Net.Data die Verarbeitung des REPORT-Blocks abgeschlossen hat, kehrt es zum Block HTML(OUTPUT) zurück und beendet die Verarbeitung.