关于HSkyXChart的紧急问题
navy8 2003-08-22 01:12:29 我发现这个组件不能实现并发,并且每次执行完都会内存泄漏,作者要好好改一下,看一下我的问题:
如在用您的Hsky.XChart时,如果多刷新几次页面,估计近100下时就出现在面的提示:
<font face="宋体" size=2>
<p>HSky.XChart</font> <font face="宋体" size=2 > 错误 '8000ffff'</font>
<p>
<font face="宋体" size=2>存储空间不足,无法处理此命令。
</font>
<p>
<font face="宋体" size=2>/Report/reportGraph.asp</font><font face="宋体" size=2>,行30</font>
在检查DLL时,最大达到25M后就出现上述的提示,
请问是为什么,有没有解决的方法,谢谢
我的代码如下所示:
Public Sub GetGraphReport()
Dim cReport As New Report
GetGraphValues cReport
'====================MakeChart.asp 代码开始================
'----------------------需要检查如下:-------------------------
'---1.检查代码语法错误
'---2.检查include文件
'---3.Asp中的服务器端的函数提取出来
'---4.注意变量的定义
'---5.注意代码的分行
'---6.注意Response.END 后面是退出程序了,加入Exit sub 等,保证不再向下执行
'---7.注意Response.Redirect 后面是退出程序了,加入Exit sub 等,保证不再向下执行
Dim MyChart As HSky.XChart
Dim Test As Variant
'Set MyChart = New HSky.XChart
Set MyChart = Server.CreateObject("HSky.XChart") '创建Com对象
MyChart.Clear '清除该Com对象中的所有数据
MyChart.Title = "Head" '图表上标题
MyChart.Foot = "Foot" '图表下标题
MyChart.TitleAlign = 1 '图表上标题对齐方式(1左对齐,2居中,3右对齐)
MyChart.FootAlign = 3 '图表下标题对齐方式(1左对齐,2居中,3右对齐)
MyChart.Width = mvarLetWidth '图表宽度
MyChart.Height = mvarLetHeight '图表高度
MyChart.ViewAxis = True '设置图表的网格及坐标轴是否显示
MyChart.HText = mvarLetXText '图表横轴的说明(如果ViewAxis为false,则该属性无效)
MyChart.VText = GetYAxis '图表纵轴的说明(如果ViewAxis为false,则该属性无效)
MyChart.BgColor = mvarLetBG '图表背景的颜色
If mvarLetIsGradientColor = True Then
MyChart.SetGradientColor mvarLetGradientColorStyle, mvarLetGradientColorStart, mvarLetGradientColorEnd
'渐变方式:1从下到上;2从左下到右上;3从中心到四周;4从左上到右下;5从左到右;6从右到左;7从上到下
'设置图表背景渐变方式,以及开始颜色和结束颜色(图表背景的颜色将无效)
End If
'MyChart.BackImage="C:\bg.jpg" '设置图表背景图片(图表的背景颜色和渐变颜色都将无效)
MyChart.View3D = mvarLet3D '图表是否以3D模式显示
'MyChart.Percent3D = 10 '图表3D的比例大小(如果View3D为false,则该属性无效)
MyChart.Percent3D = mvarLetPercent3D
MyChart.SetHWallColor "569CE1" '设置图表横轴3D墙颜色(如果View3D为false,则该属性无效)
MyChart.SetVWallColor "569CE1" 'FFCC66 '设置图表纵轴3D墙颜色(如果View3D为false,则该属性无效)
MyChart.SetHAxisStyle 1, "2449A2" '设置图表横轴宽度和颜色
MyChart.SetVAxisStyle 1, "2449A2" '设置图表纵轴宽度和颜色
MyChart.SetHGridStyle 1, "ACACAC" '设置图表横轴绘图区网格的宽度和颜色
MyChart.SetVGridStyle 1, "ACACAC" '设置图表纵轴绘图区网格的宽度和颜色
MyChart.SetHLabelStyle mvarLetHLabelStyle, True '横轴刻度标识
MyChart.SetVLabelStyle mvarLetVLabelStyle, True '纵轴刻度标识
'设置横轴或纵轴刻度标识和是否对齐网格.其中标识类型: 1名字, 2统计图元标识, 3数值, 4空白
'MyChart.SetHNum 0,10 '设置横轴数值的最小值和最大值
'MyChart.SetVNum 0,1000 '设置纵轴数值的最小值和最大值
'以上两个属性设置后,系统将不再根据具体输入的数据自动改变大小
'如果需要由系统自动控制大小,请将以上两句注释或去掉
'以下部分为各部分显示字体样式设置
'MyChart.SetTitleFont 16,"宋体",1,"000066"
' | | | | | |
' | | | | | & = 字体颜色: 默认为蓝色
' | | | | & = 字体样式: 0默认,1加粗,2加斜,3加下划线,4加删除线
' | | | & = 字体名称: 默认为Arial字体
' | | & = 字体大小: 默认为12号
' | & = 对象属性
' & = 对象名称
MyChart.SetTitleFont 9, "宋体", 1, "FF0606" '设置图表上标题字体
MyChart.SetFootFont 9, "宋体", 0, "000066" '设置图表下标题字体
MyChart.SetHLabelFont 9, "宋体", 0, "000066" '设置图表横轴刻度标识字体
MyChart.SetVLabelFont 9, "宋体", 0, "000066" '设置图表纵轴刻度标识字体
MyChart.SetHTextFont 9, "宋体", 0, "000066" '设置图表横轴的说明字体
MyChart.SetVTextFont 9, "宋体", 0, "000066" '设置图表纵轴的说明字体
MyChart.ViewLegend = True '设置是否显示图例(如设置为false,则与图例相关的设置都将无效)
MyChart.LegendAlign = 1
'设置图例显示位置:1下面;2左边;3右边;4上面
MyChart.LegendStyle = 1
'设置图例显示类型:1自动;2显示Series;3显示Values
MyChart.SetLegendFont 9, "宋体", 0, "000066" '设置图表图例名称字体
MyChart.SetLegendColor "FFFFCC" '设置图表图例区域颜色
MyChart.SetLegendShadow 2, "0066FF" '设置图表图例区域阴影厚度和颜色
MyChart.SetFrameStyle 0, "8B2203" '设置图表边框宽度和颜色2449A2
MyChart.AddSeries mvarLetSeriesType, mvarLetSeriesName, "8B2203"
'设置图表图例类型和图例名称CE2622
'图例类型:1柱型图,2横柱型图,3折线图,4饼图,5点图,6区域图
'图例颜色,在多维曲线时显示
MyChart.ViewMarks = True '设置是否显示图元标识
MyChart.ViewClipped = False '图元标识是否允许超出绘图区
MyChart.ViewStairs = False
'是否阶梯状的显示数据
'(注意:该方法只能用于Series为3或6中图表,即3折线图,6区域图,在其他图表类型中无效)
MyChart.MarksLength = 20 '设置图元标识与图元间的距离
MyChart.SetBorderStyle 1, 1, "E7BC10"
'设置图元的边框的宽度、样式和边框颜色
'其中边框样式:1线,2线段,3点,4线段-点,5线段-点-点
MyChart.SetMarksBorderStyle 1, "E7BC10"
'设置图元标识的边框的宽度和边框颜色
'MyChart.SetMultipleStyle 1
'设置当有多个Series时,各Series之间的显示关系
'其中显示关系有:1直接重叠,2水平平铺,3竖直叠加,4全叠加
'(注意:该方法只能用于Series为1或2中图表,即1柱型图,2横柱型图,在其他图表类型中无效)
MyChart.SetBarStyle mvarLetBarStyleSharp, 1, mvarLetBarStyleColor
'设置柱子的形状、填充花纹、及填充花纹颜色
'其中柱子的形状:1方形,2区域渐变,3三角形,4倒三角形,5椭圆,6箭头
'其中填充花纹:1透明,2横线,3竖线,4右斜线,5左斜线,6方格,7斜方格
'(注意:该方法只能用于Series为1或2中图表,即1柱型图,2横柱型图,在其他图表类型中无效)
MyChart.SetPointStyle mvarLetPointStyleSharp, 2, 2
'设置数值点形状、宽度和高度
'其中数值点形状:1方形,2圆形,3向上三角形,4向下三角形,5十字架,6错误标识(X),7星号(*),8菱形,9小点
'(注意:该方法只能用于Series为3或5或6中图表,即3折线图,5点图,6区域图,在其他图表类型中无效)
MyChart.SetMarksFont 10, "宋体", 0, "000066", "F8E69E"
'设置图表统计图元标识的字体大小、字体名称、字体样式(标准同上)、字体颜色和字体区域背景颜色
MyChart.SetMarksStyle mvarLetMarksStyle, False
'设置图表图元标识显示风格和标识是否透明
'其中图元标识显示风格有:1数值、2.百分比、3.标识名称、4.标识名称和百分比、5.相对总和百分比
SetMyChartValue MyChart, cReport
Response.ContentType = "image/jpeg" '设置asp数据流输出类型
Response.BinaryWrite MyChart.JpgImage(100) '输出统计图片为Jpg格式(参数为图片质量)
' Dim temp As String
' Dim Result As VariantmvarLetRST
'temp = MyChart.JpgImage(100)
'Response.BinaryWrite (temp)
' Response.Write temp
'Response.BinaryWrite MyChart.BmpImage '输出统计图片为Bmp格式
'Response.BinaryWrite MyChart.EmfImage '输出统计图片为Emf格式
'Result = MyChart.SaveToJpg(App.Path + "\tempreport1.jpg", 100) '设置输出的Jpg统计图片保存位置和图片质量
'Result=MyChart.SaveToBmp("f:\MyHxBmp.bmp") '设置输出的Bmp统计图片保存位置
'Result=MyChart.SaveToEmf("f:\MyHxEmf.emf") '设置输出的Emf统计图片保存位置
'Response.BinaryWrite MyChart.About '显示本组件信息
MyChart.Close '关闭本组件资源
Set MyChart = Nothing '清空组件对象
Set cReport = Nothing
'=================Asp代码结束==================
End Sub