<%@ Language=VBScript %> <% if Request("type")<>"" then set dbConnection = server.CreateObject ("ADODB.Connection") dbConnection.ConnectionString = strConnection dbConnection.Open strSQL = Session(strTableName & "SQL") sWhere = "" if Instr(lcase(strSQL), " where ") > 1 then sWhere = Mid(strSQL, Instr(lcase(strSQL), " where ")) strSQL="select " if Right(strSQL,2)= ", " then strSQL = Left(strSQL, Len(strSQL)-2) strSQL = strSQL & " from " & strTableName & sWhere Set rs = server.CreateObject ("ADODB.Recordset") rs.Open strSQL, dbConnection if Request("records")="page" then ' Pagination: if NOT rs.EOF then mypage = Request("mypage") rs.PageSize = Request("pagesize") maxRecords = cdbl(rs.RecordCount) maxPages=cdbl(rs.PageCount) if cdbl(mypage) > cdbl(maxPages) then mypage = maxpages End IF rs.AbsolutePage = mypage maxrecs=cdbl(rs.pagesize) End IF end if Response.Expires=0 ' prevent caching Response.Buffer=True Server.ScriptTimeout = 120 if Request("type")="excel" then Call ExportToExcel elseif Request("type")="word" then Call ExportToWord elseif Request("type")="xml" then Call ExportToXML elseif Request("type")="csv" then Call ExportToCSV end if rs.Close set rs=Nothing dbConnection.Close set dbConnection = Nothing Response.Flush Response.End else %>
> >
Data range Output format
All records
Current page only
Excel
Word
CSV (comma separated values)
XML
<% Response.End end if Sub ExportToExcel Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment; Filename=Prodotti.xls" Response.Write "" Response.Write "" Call WriteTableData Response.Write "
" Response.Write "" Response.Write "" End Sub Sub ExportToWord Response.ContentType = "application/vnd.ms-word" Response.AddHeader "Content-Disposition", "attachment; Filename=Prodotti.doc" Response.Write "" Response.Write "" Call WriteTableData Response.Write "
" Response.Write "" Response.Write "" End Sub Sub ExportToXML Response.ContentType = "text/xml" Response.addheader "Content-Disposition", "attachment; Filename=Prodotti.xml" 'Const adPersistXML = 1 'rs.Save Response, adPersistXML if rs.eof then exit sub set xmlDocument = Server.CreateObject("MSXML.DOMDocument") set xmlRoot = xmlDocument.createElement(cXMLTopNode) ' write data rows iNumberOfRows = 0 DO UNTIL rs.eof OR ( iNumberOfRows>=CInt(Request("pagesize")) and _ Request("records")="page" ) Set xmlRow = xmlDocument.createElement(cXMLRowNode) call xmlRoot.appendChild(xmlRow) Response.Write vbCRLF rs.MoveNext iNumberOfRows = iNumberOfRows + 1 loop Response.Write "" & vbcrlf & xmlRoot.xml End Sub Sub ExportToCSV Response.ContentType = "application/csv" Response.addheader "Content-Disposition", "attachment; Filename=Prodotti.csv" if rs.eof then exit sub ' write header for i=0 to rs.Fields.Count-1 Response.Write """" & Label(rs.Fields(i).Name) & """" if i<>rs.Fields.Count-1 then Response.Write ", " next Response.Write vbCRLF ' write data rows iNumberOfRows = 0 DO UNTIL rs.eof OR ( iNumberOfRows>=CInt(Request("pagesize")) and _ Request("records")="page" ) i = 0 Response.Write vbCRLF rs.MoveNext iNumberOfRows = iNumberOfRows + 1 loop End Sub Sub WriteTableData if rs.eof then exit sub ' write header Response.Write "" for i=0 to rs.Fields.Count-1 Response.Write "" & Label(rs.Fields(i).Name) & "" next Response.Write "" ' write data rows iNumberOfRows = 0 DO UNTIL rs.eof OR ( iNumberOfRows>=CInt(Request("pagesize")) and _ Request("records")="page" ) Response.Write "" Response.Write "" rs.MoveNext iNumberOfRows = iNumberOfRows + 1 loop End Sub Function XMLNameEncode(strValue) XMLNameEncode = Replace(strValue, " ", "") XMLNameEncode = Replace(XMLNameEncode, "#", "") XMLNameEncode = Replace(XMLNameEncode, "'", "") XMLNameEncode = Replace(XMLNameEncode, "/", "") XMLNameEncode = Replace(XMLNameEncode, "\", "") XMLNameEncode = Replace(XMLNameEncode, "(", "") XMLNameEncode = Replace(XMLNameEncode, ")", "") XMLNameEncode = Replace(XMLNameEncode, ",", "") XMLNameEncode = Replace(XMLNameEncode, "[", "") XMLNameEncode = Replace(XMLNameEncode, "]", "") XMLNameEncode = Replace(XMLNameEncode, "+", "") XMLNameEncode = Replace(XMLNameEncode, """", "") XMLNameEncode = Replace(XMLNameEncode, "-", "") XMLNameEncode = Replace(XMLNameEncode, "_", "") XMLNameEncode = Replace(XMLNameEncode, "|", "") XMLNameEncode = Replace(XMLNameEncode, "}", "") XMLNameEncode = Replace(XMLNameEncode, "{", "") End Function %>