Per questioni pratiche e di spazio sulla pagina, conviene sempre, o comunque quando possibile, disporre i risultati di un report in una tabella formata da più colonne. Abbiamo già visto in un Articolo precedente come è possibile paginare a colonne i risultati di una query su di un database: allo stesso modo possiamo paginare i dati di un file XML, oggetto di questo Articolo.
Consideriamo il codice del seguente file, amici.xml:
<?xml version="1.0"?>
<amici>
<amico>
<nome>Alessandro</nome>
</amico>
<amico>
<nome>Claudio</nome>
</amico>
<amico>
<nome>Emanuela</nome>
</amico>
<amico>
<nome>Felice</nome>
</amico>
<amico>
<nome>Jacopo</nome>
</amico>
<amico>
<nome>Luca</nome>
</amico>
<amico>
<nome>Max</nome>
</amico>
</amici>
Il codice ASP di seguito riportato ed opportunamente commentato, spiega come eseguire la paginazione a colonne sul file XML appena esaminato:
<%@LANGUAGE = VBScript%>
<table border="1">
<tr>
<%
' DICHIARO LE VARIABILI CHE MI SERVONO PER L'APPLICAZIONE
Dim xml, nome, i, x
' APRO UN NUOVO OGGETTO XMLDOM E CARICO IL FILE XML
Set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = False
xml.load Server.MapPath("amici.xml")
' RECUPERO IL NODO CHE MI INTERESSA
Set nome = xml.getElementsByTagName("amico/nome")
' VALORIZZO I CONTATORI
i = 0
x = 0
' ESEGUO IL CICLO SU TUTTI I NODI
For i = 0 To nome.length - 1
' VERIFICO CHE IL REPORT SI DISPONGA SU 3 COLONNE
If x = 3 Then
x = 0
Response.Write "</tr><tr>"
End If
%>
<td width="100" align="center"><%=nome(i).Text%></td>
<%
' INCREMENTO IL CONTATORE
x = x + 1
Next
' UN PO DI PULIZIA...
Set nome = Nothing
Set xml = Nothing
%>
</tr>
</table>
Le fasi salienti dello script sono evidenziate in grassetto… il resto è un comune report di un file XML utilizzando una pagina ASP/VBScript e l’XMLDOM.
