asp.net + C# + oracle  
OWC显示折线图,X,Y轴和其他都显示出来了,
且数据是对的,但折线没显示出来(但不报错)
代码如下:int NumPoints = ds.Tables[0].DefaultView.Count;
aX = new string[NumPoints];    //NumPoints为记录行数
aY = new string[NumPoints];
aa = new string[NumPoints];OWC11.ChartSpace objCSpace = new OWC11.ChartSpaceClass();
OWC11.ChChart objChart = objCSpace.Charts.Add(0);
objChart.Type = OWC11.ChartChartTypeEnum.chChartTypeLine;
objChart.HasLegend = true;
objChart.HasTitle = true;
objChart.Title.Caption= "上半年分布图";
objChart.Axes[0].HasTitle = true;
objChart.Axes[0].Title.Caption = "X : 日期";
objChart.Axes[1].HasTitle = true;
objChart.Axes[1].Title.Caption = "Y : 价格";//关键代码while循环:
int i = 0;
while(dr.Read())
{
   aX[i] = dr.GetValue(0).ToString();读DataReader里的数据给数组
   aY[i] = dr.GetValue(1).ToString();
   objChart.SeriesCollection.Add(i);//给定series的名字
objChart.SeriesCollection[i].SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
   +(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,aa[i]);
//给定分类 x轴
objChart.SeriesCollection[i].SetData(OWC11.ChartDimensionsEnum.chDimCategories,
   +(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,aX[i]);
//给定值 y轴
objChart.SeriesCollection[i].SetData(OWC11.ChartDimensionsEnum.chDimValues,
   (int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, aY[i]);   i = i + 1;}//输出成GIF文件
string strAbsolutePath = (Server.MapPath(".")) + "\\i\\test.gif";
objCSpace.ExportPicture(strAbsolutePath, "GIF", 600, 350);
//创建GIF文件的相对路径.
string strRelativePath = "./i/test.gif";
//把图片添加到placeholder.
string strImageTag = "<IMG SRC='" + strRelativePath + "'/>";
ChartHolder.Controls.Add(new LiteralControl(strImageTag));
请大家帮我看看是不是漏了什么,显示折线是通过什么控制的?

解决方案 »

  1.   

    //给定series的名字
    objChart.SeriesCollection[i].SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames,
       +(int)OWC11.ChartSpecialDataSourcesEnum.chDataLiteral,aa[i]);应该不是通过上面的代码来控制折线的,因为我把它删了也可以。备注:aa[i]在我的程序里是空值
      

  2.   

    上面的问题已解决,但现在的问题是,我不要在X轴显示那么多时间(比如30天的日期,我现在只要显示出来5天的日期),
    但折线还是根据30天来折,因为不想让图片那么宽,
    请问大家OWC里有什么属性可以控制???
      

  3.   

    已解决  objChart.Axes[0].TickLabelSpacing = ;
    objChart.Axes[0].TickMarkSpacing = ;