有关OWC制图的问题

qizhg 2007-07-20 04:11:47
在网查了很多有关用OWC做图的例子,按说明我也做出了需要的图,不过有一个问题,每次都要生成一个GIF文件,有什么办法不生成文件或调用过后能把形成的文件删除.我在程序最后加删除不好用.

string strSQL, str1 = "", keys = "", values = "";
//读取数据库,形成x,y轴数据
strSQL = "SELECT pipe_pressure_log.press_class,sys_user.user_name,pipe_pressure_log.press_time,pipe_pressure_log.press_num1,pipe_pressure_log.press_num2, pipe_pressure_log.press_num3,pipe_pressure_log.press_num4,pipe_pressure_log.press_num5,pipe_pressure_log.press_num6, pipe_pressure_log.press_num7, pipe_pressure_log.press_num8, pipe_pressure_log.press_num9, pipe_pressure_log.press_num10, pipe_pressure_log.press_num11,pipe_pressure_log.press_num12, pipe_pressure_log.press_num14, pipe_pressure_log.press_num13, pipe_pressure_log.press_num15, pipe_pressure_log.press_num16, pipe_pressure_log.press_num17, pipe_pressure_log.press_num18, pipe_pressure_log.press_num19, pipe_pressure_log.press_num20, pipe_pressure_log.press_num21, pipe_pressure_log.press_num22, pipe_pressure_log.press_num23, pipe_pressure_log.press_num24 FROM pipe_pressure_log,sys_user WHERE ( pipe_pressure_log.press_noter_id *= sys_user.user_id) and pipe_pressure_log.id=" + HF_ids.Value;
ds = DbTools.getDataSetBySQL(strSQL);
if (ds.Tables[0].Rows.Count > 0)
{
DataRow r = ds.Tables[0].Rows[0];
str1 = Convert.ToDateTime(r["press_time"]).ToShortDateString();
for (int i = 1; i < 25; i++)
{
keys += i.ToString() + '\t';
values += r["press_num" + i.ToString()].ToString() + '\t';

}

}
ChartSpace objCSpace = new ChartSpaceClass();
ChChart objChart = objCSpace.Charts.Add(0);
objChart.Type = ChartChartTypeEnum.chChartTypeColumnClustered;
//指定图表是否需要图例
objChart.HasLegend = true;
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption = "管网曲线图";
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "时间";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "压力值(kPa)";

//添加一组图表数据
objChart.SeriesCollection.Add(0);
//给定该组数据的名字
objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, str1);
//给定数据分类
objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, +(int)ChartSpecialDataSourcesEnum.chDataLiteral, keys);
//给定数据值
objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, values);

//输出成GIF文件,参数为文件名、格式、图片大小
string FileName = DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".gif";
objCSpace.ExportPicture(Server.MapPath("") + @"\" + FileName, "GIF", 670, 510);
//Bitmap myPalette = new Bitmap(Server.MapPath("") + @"\" + FileName, true);
//myPalette.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);

string strImageTag = "<IMG SRC='" + FileName + "'/>";
//把图片添加到placeholder.
ChartPlaceHolder.Controls.Add(new LiteralControl(strImageTag));
//File.Delete(FileName);
...全文
202 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shino_wu 2007-08-01
  • 打赏
  • 举报
回复
就按楼上说的,覆盖就行了。
hyl8218 2007-07-28
  • 打赏
  • 举报
回复
下次用的时候在生成一个覆盖不久行了吗?

4,818

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧