问题描述
怎样才能把折线图做出的效果和Excel中画的折线图一样呢?要做出的效果是:如果数据库中的值为空的时候,则停止画该折线,当下一个数据出现的时候隔几个空的无值的坐标点重新开始画另外一条折线,我做出来的当值出现空的时候后面有值的点会覆盖原来没值的点,所以画出来的折线就变成了连贯的折线了...期待高手的帮助!!!
解决方案
解决方案二:
你只有把缺少的补其,或者把相应的没有值的点去掉才可以!
解决方案三:
privatevoidDisplayChart(stringstr){stringFileName=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.ChartSpaceobjCSpace=null;objCSpace=newOWC.ChartSpaceClass();//在ChartSpace对象中添加图表,Add方法返回chart对象OWC.WCChartobjChart=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:月份";stringstrSeriesName="走势图";stringstrCategory="";stringstrValue="";//计算数据/*categories和values可以用tab分割的字符串来表示*/dr=db.GetReader("SELECTSUM(FQty)ASFqty,FYear,FperiodFROMt_SaleOut"+str+"groupbyFYear,FPeriodorderbyFYear,FPeriod");while(dr.Read()){strCategory=strCategory+dr["FYear"].ToString()+"."+dr["FPeriod"].ToString()+'t';strValue=strValue+dr["FQty"].ToString()+'t';}dr.Close();//添加一个seriesobjChart.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.WCDataLabelsDL=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");}}stringstrAbsolutePath="";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;stringstrRelativePath="./i/"+Session["Name"].ToString()+FileName+".gif";Image1.ImageUrl="";Image1.ImageUrl=strRelativePath;Image1.Visible=true;}
解决方案四:
不知道对你有没有用处
解决方案五:
该回复于2007-10-26 15:11:15被版主删除
解决方案六:
还是不行啊...覆盖是还是被覆盖了,看来只能用插值了,把空的值插入其他值了...哎,是不是 有这个缺陷呢??
解决方案七:
帮顶
解决方案八:
相关资料: