在开发一些管理信息系统中开发一些统计报表是必须的功能之一。开发报表的用到的组件也很多。可以用微软自带的owc组件,这是微软的office报表组件,可以和.net实现无缝的连接。也可以采用如ZedGraph等开源的.net组件来开发,还可以使用水晶报表和SQL Server自带的Report Service来开发报表。手段很多,各有所长。下面我介绍下我以前项目中使用的owc开发报表的一个示例,代码如下,代码中已经加入了必要的注视就不再一一讲解了。
private void DrawMonthlyErrorTimeGraph(DataTable dtData)
{
string strGroup = Request.QueryString["Group"].ToString();
string stryear = Request.QueryString["Year"].ToString();
string strmonth = Request.QueryString["Month"].ToString();
lblTitle.Text = stryear+"年"+strmonth+"月"+strGroup+"月xxxxx报表";
// 在此处放置用户代码以初始化页面
//创建ChartSpace对象来放置图表
ChartSpace objCSpace = new ChartSpaceClass();
//在ChartSpace对象中添加图表,Add方法返回chart对象
ChChart objChart = objCSpace.Charts.Add(0);
//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
objChart.Type = ChartChartTypeEnum.chChartTypeLineStackedMarkers;
//指定图表是否需要图例
objChart.HasLegend = true;
//给定标题
objChart.HasTitle = true;
objChart.Title.Caption =strGroup+"xxxx透视";
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : 日期";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : 故障时间";
//计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
string strSeriesName_ErrorTime = "故障时间";
int idays = GetMonthDays(stryear, strmonth);
StringBuilder sbdays = new StringBuilder();
for (int i = 1; i <= idays; i++)
{
sbdays.Append(i.ToString());
sbdays.Append('\t');
}
string strCategory = sbdays.ToString();
StringBuilder strb_ErrorTime = new StringBuilder();
for (int j = 1; j <= idays; j++)
{
if (dtData.Rows[0][j.ToString()].ToString() == "")
{
strb_ErrorTimeTime.Append("0");
}
else
{
strb_ErrorTimeTime.Append(dtData.Rows[0][j.ToString()].ToString());
}
strb_ErrorTime.Append('\t');
}
string strValue_Error = strb_ErrorTime.ToString();
//添加一个series
objChart.SeriesCollection.Add(0);
//给定series的名字
objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimSeriesNames,
+(int)ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName_StopLine);
//给定分类
objChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories,
+(int)ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);
//给定值
objChart.SeriesCollection[0].SetData
(ChartDimensionsEnum.chDimValues,
(int)ChartSpecialDataSourcesEnum.chDataLiteral, strValue_Error );
//创建GIF文件的相对路径.
string FileName = "/" + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString()
+ DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".gif";
//输出成GIF文件.
objCSpace.ExportPicture(Server.MapPath("../TempImage") + FileName, "GIF", 650, 300);
//把图片添加到placeholder.
string strImageTag = "<IMG SRC='" + "../TempImage" + FileName + "'/>";
PlaceChartStopLineTime.Controls.Add(new LiteralControl(strImageTag));
}
分享到:
相关推荐
owc生成报表 owc源码展示 owc可直接运行 owc考试分析报表Demo owc可执行,支持63种报表形式,在我的自定义控件中只实现了13中,如果有需求的话还可以联系我,我再把没有写完的部分完成,我的邮箱:nailwl@163.com ...
Asp_net Excel与OWC做报表总结
采用微软提供的OWC来生产报表的工具,其中有一个OWCReport类,用来专门处理与OWC的交互的,对OWC不怎么想仔细研究的,只需要使用OWCReport中的接口就行,不过由于是使用微软的OWC,Microsoft.Office.Interop.Owc.dll...
owc 与offic2007的一般常见问题
owc散点图owc散点图owc散点图owc散点图owc散点图owc散点图owc散点图owc散点图owc散点图
office 2003 +Owc11 NET数据报表api Microsoft.Office.Interop.Owc.dll
在ASP.NET下使用owc生成柱状图的示例
报表必备控件 office web comment
OWC帮助 VB C# 画图 报表 属性 [非共享资源]
OWC和ZedGraph组件生成数据报表代码实例 源码
基于OWC的报表生成,OWC提供了多中形式的图表,包括柱状图,条形图,平滑曲线图,饼图等,并且对于有些图表还提供了二维和三维的。
基于owc组件生成下载Excel报表的实例分析
使用owc11 组件画图。在web开发中,根据数据员生成图片。只要时EXcel可以 owc11 都可以啊
OWC开发心得及单个图表多条曲线(横轴,纵轴对应处理问题)解决方案及算法,这里面主要包括OWC11的基本入门,多条曲线横轴不一致而导致图表曲线紊乱的试验性解决方法。
OWC10下载OWC10下载OWC10下载
通过OWC进行画图以及使用方法,里面有详细的示例。需要下载OWC11.exe,使用其中的DLL文件
OWC11.msi OWC11.DLL
一个owc11 网络图形编程实例。讲述了一个关于owc各种版本的编程。是值得收藏的。
C# 结合 Microsoft.Office.Interop.Owc11 通过引用office 控件 生成静态图表,
一外很完整的学习OWC的应用试例 OWC应用例子 OWC应用例子