最近在用owc11做数据统计分析时遇到一个有意思的问题。源码如下:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim startdate As Date
Dim enddate As Date = Now()
startdate = enddate.AddDays(-1)
'classstring = "a" + Chr(9) + "b" + Chr(9) + "c"
' valuesstring = "1" + Chr(9) + "20" + Chr(9) + "30"
'在此处放置初始化页的用户代码
readdata()
Response.Buffer = True
Response.ContentType = "image/gif"
Dim ChartSpace1 As OWC11.ChartSpace
ChartSpace1 = New OWC11.ChartSpaceClass
Dim chart1 As OWC11.ChChart
Dim DataLabels As OWC11.ChDataLabels
chart1 = ChartSpace1.Charts.Add(0)
ChartSpace1.HasChartSpaceLegend = True
ChartSpace1.ChartSpaceLegend.Position = ChartLegendPositionEnum.chLegendPositionBottom
ChartSpace1.HasChartSpaceTitle = True
ChartSpace1.ChartSpaceTitle.Caption = "从" + startdate.ToLongDateString + "到" + enddate.ToLongDateString + "数据集访问分析图"
chart1.Type = ChartChartTypeEnum.chChartTypePie
chart1.SeriesCollection.Add(0)
'chart1.SeriesCollection(0).SetData(OWC11.ChartDimensionsEnum.chDimSeriesNames, OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, "aa")
chart1.SeriesCollection(0).SetData(OWC11.ChartDimensionsEnum.chDimCategories, OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, classstring)
chart1.SeriesCollection(0).SetData(OWC11.ChartDimensionsEnum.chDimValues, OWC11.ChartSpecialDataSourcesEnum.chDataLiteral, valuesstring)
DataLabels.Position = ChartDataLabelPositionEnum.chLabelPositionAutomatic
Response.BinaryWrite(ChartSpace1.GetPicture("gif", 550, 500))
Response.End()
End Sub
主要是这句
DataLabels.Position = ChartDataLabelPositionEnum.chLabelPositionAutomatic
datalabels的定位属性只能是自动和居中不能是别的。一用别的类型就报错说参数无效。网上查了一下很多人说也遇到了这个问题,但是没有人能解决,估计是微软的疏忽还是什么原因。。。期待有人能解决这个问题。