Nello script #329 abbiamo visto come creare semplici report basati su RTF, sfruttando una semplice tecnica di sostituzione di segnaposto, considerando che RTF è un formato ASCII.
Il formato RTF rappresenta uno standard, peraltro multipiattaforma, che è composto da una serie di tag che devono susseguirsi per dare una giusta formattazione ad un documento.
L'esempio di oggi consiste nel costruire, prelevando i dati dalla tabella Authors del database pubs, un documento con i dati estratti da un database.
Struttando lo stesso approccio si può facilmente costruire un sistema che crei a partire da testo salvato su database dei documenti RTF con tutte le informazioni al posto giusto.
<% ' lettura del contenuto dal template Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile(Server.MapPath("template.rtf"), 1) Documento = f.ReadAll f.Close Set f = Nothing Set fso = Nothing ' carattere di a capo in RTF acapo = " \par " & VbCrLf ' stringa di conn strConn = "Provider=sqloledb; Data Source=localhost; Initial Catalog=pubs; Integrated Security=SSPI;" ' apro la connessione set conn = Server.CreateObject("ADODB.Connection") conn.Open strConn ' estraggo tutti i dati set rs = conn.Execute("SELECT au_lname, au_fname, address, city, state, zip FROM authors") do until rs.eof testo = testo & rs("au_lname") & " " & rs("au_fname") & acapo testo = testo & rs("address") & acapo testo = testo & rs("zip") & " " & rs("city") & " " & rs("state") & acapo & acapo rs.MoveNext loop ' chiusura rs.Close set rs = Nothing conn.Close set conn = Nothing ' sostituzione file Documento = Replace(Documento, "[testo]", testo) ' ContentType e risposta a video Response.ContentType="application/msword" Response.Write(documento) %>
Basterà creare un nuovo file RTF con all'interno tutto il testo ed un segnaposto (nel nostro casto [testo]) perchè l'esempio possa funzionare.
Approfondimenti
#329 - Creare report RTF
https://www.aspitalia.com/liste/usag/script.aspx?ID=329
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.