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>