当前位置:编程学习 > C#/ASP.NET >>

owc画折线图的问题?期待高手 啊~~

怎样才能把折线图做出的效果和Excel中画的折线图一样呢?要做出的效果是:如果数据库中的值为空的时候,则停止画该折线,当下一个数据出现的时候隔几个空的无值的坐标点重新开始画另外一条折线,我做出来的当值出现空的时候后面有值的点会覆盖原来没值的点,所以画出来的折线就变成了连贯的折线了...
期待高手的帮助!!! --------------------编程问答-------------------- 你只有把缺少的补其,或者把相应的没有值的点去掉才可以! --------------------编程问答-------------------- private void DisplayChart(string str)
{
string FileName=DateTime.Now.Year.ToString()+DateTime.Now.Month.ToString()+DateTime.Now.Day.ToString()+DateTime.Now.Hour.ToString()+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString();
OWC.ChartSpace objCSpace=null;
objCSpace= new OWC.ChartSpaceClass (); 

//在ChartSpace对象中添加图表,Add方法返回chart对象
OWC.WCChart objChart=null;
objChart= objCSpace.Charts.Add (0); 

//指定图表的类型。类型由OWC.ChartChartTypeEnum枚举值得到
//objChart.Type = OWC.ChartChartTypeEnum.chChartTypeColumnClustered;
objChart.Type=OWC.ChartChartTypeEnum.chChartTypeLineMarkers;// 图形为折线图

//指定图表是否需要图例
objChart.HasLegend = true;

//给定标题
objChart.HasTitle = true;
if (ddlProductName.Items.Count>0 && ddlProductName.SelectedItem.Text!="")
{
objChart.Title.Caption= ddlName.SelectedItem.Text+ddlProductName.SelectedItem.Text+"销量走势图";
}
else
{
objChart.Title.Caption= ddlName.SelectedItem.Text+"销量走势图";
}
//给定x,y轴的图示说明
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "Y : 销售数量";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "X : 月份";
string strSeriesName = "走势图";
string strCategory ="";
string strValue ="";

//计算数据
/*categories 和 values 可以用tab分割的字符串来表示*/
dr=db.GetReader("SELECT SUM(FQty) AS Fqty,FYear ,Fperiod FROM t_SaleOut"+str+" group by FYear,FPeriod order by FYear,FPeriod");

while (dr.Read())
{
strCategory=strCategory+dr["FYear"].ToString()+"."+dr["FPeriod"].ToString()+'\t';
strValue=strValue+dr["FQty"].ToString()+'\t';
}
dr.Close();


//添加一个series
objChart.SeriesCollection.Add(0);
            
//给定series的名字
objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimSeriesNames,
+ (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strSeriesName);

//给定分类
objChart.SeriesCollection[0].SetData (OWC.ChartDimensionsEnum.chDimCategories,
+ (int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral, strCategory);

//给定值
objChart.SeriesCollection[0].SetData(OWC.ChartDimensionsEnum.chDimValues,
+(int)OWC.ChartSpecialDataSourcesEnum.chDataLiteral,strValue);
OWC.WCDataLabels DL=objChart.SeriesCollection[0].DataLabelsCollection.Add();//添加图例的数据标记
DL.HasValue =true;
if (Session["FilePath"]!=null)
{
if (File.Exists(Server.MapPath(".") + "\\i\\"+Session["FilePath"].ToString()+".gif"))
{
File.Delete(Server.MapPath(".") + "\\i\\"+Session["FilePath"].ToString()+".gif");
}
}
    string strAbsolutePath="";
strAbsolutePath =(Server.MapPath(".")) + "\\i\\"+ Session["Name"].ToString()+FileName+".gif";
//strAbsolutePath = (Server.MapPath(".")) + "\\i\\"+Session["Name"].ToString()+".gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF", 800, 350);
    objCSpace.Clear();
            Session["FilePath"]=Session["Name"].ToString()+FileName;
string strRelativePath ="./i/"+Session["Name"].ToString()+FileName+".gif";

Image1.ImageUrl="";
Image1.ImageUrl=strRelativePath;
Image1.Visible =true; 
} --------------------编程问答-------------------- 不知道对你有没有用处 --------------------编程问答-------------------- --------------------编程问答-------------------- 还是不行啊...
覆盖是还是被覆盖了,看来只能用插值了,把空的值插入其他值了...
哎,是不是 有这个缺陷呢?? --------------------编程问答-------------------- 帮顶 --------------------编程问答-------------------- 相关资料:http://blog.sina.com.cn/bigmoneyhunter
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,