Martin Reid
mwp.reid at qub.ac.uk
Tue Oct 28 13:58:51 CST 2003
I would think if you can print one report there must be a way to print them all. Interesting problem. Have several of them at the moment so this one is at bottom of list. But it has to be doable. You could also try the Office Web Componets which do a fair job of graphing. And can do line charts. Need to install them on the web server but they do a good job once there. Can use them to produce a GIF of the chart and then embed that in the page. The code is at the bottom of this email. Martin Code to create a line chart using ASP and the Office Web Components. Not my code but I had it here. <% Option Explicit %> <HTML> <HEAD> <TITLE>Chart Example</TITLE> <!-- #include virtual="/include/adovbs.inc" --> <% Function ExportChartToGIF(objCSpace, strAbsFilePath, strRelFilePath) Dim strFileName Randomize strFileName = Timer & Rnd & ".gif" objCSpace.ExportPicture strAbsFilePath & "\" & strFileName, "gif", 600, 350 ExportChartToGIF = strRelFilePath & "/" & strFileName End Function Sub CleanUpGIF(GIFpath) Dim objFS Dim objFolder Dim gif set objFS = Server.CreateObject("Scripting.FileSystemObject") set objFolder = objFS.GetFolder(GIFpath) for each gif in objFolder.Files if instr(gif.Name, ".gif") > 0 and DateDiff("n", gif.DateLastModified, now) > 10 then objFS.DeleteFile GIFpath & "\" & gif.Name, True end if next set objFolder = nothing set objFS = nothing End Sub %> </HEAD> <BODY BGCOLOR="#FFFFFF"> <% dim objChartSpace dim objChart dim objSeries dim objConn dim objRS dim c dim series dim strChartAbsPath dim strChartRelPath dim strChartFile strChartAbsPath = Server.MapPath("/mypath/temp") strChartRelPath = "temp" set objChartSpace = Server.CreateObject("OWC.Chart") set objChart = objChartSpace.Charts.Add() set c = objChartSpace.Constants objChart.Type = c.chChartTypeLineMarkers objChart.HasLegend = True set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "provider=sqloledb;data source=myserver;initial catalog=testdb;user id=myuid;password=mypswd;" set objRS = Server.CreateObject("ADODB.Recordset") set objRS.ActiveConnection = objConn objRS.CursorType = adOpenStatic objRS.CursorLocation = adUseClient objRS.Open "select * from testscore order by test" set objChartSpace.DataSource = objRS objChart.SetData c.chDimSeriesNames, 0, "student" for each objSeries in objChart.SeriesCollection objSeries.SetData c.chDimCategories, 0, "test" objSeries.SetData c.chDimValues, 0, "score" next for each axis in objChart.Axes axis.HasTitle = True if axis.Type = c.chCategoryAxis then axis.Title.Caption = "Test" else axis.Title.Caption = "Score" end if next objChart.SeriesCollection(2).Interior.Color = "red" objChart.SeriesCollection(2).Line.Color = "red" strChartFile = ExportChartToGIF(objChartSpace, strChartAbsPath, strChartRelPath) Response.Write "<IMG SRC=""" & strChartFile & """>" & "<P>" CleanUpGIF strChartAbsPath objRS.Close set objRS = nothing set objConn = nothing set objSeries = nothing set objChart = nothing set objChartSpace = nothing %> </BODY> </HTML>