ADODB.Connection cnn = new ADODB.Connection(); ADOMD.Cellset cls = new ADOMD.Cellset(); cnn.Open("provider=msolap;Data Source=http:/" + "/10.89.89.21;Initial catalog=TPM", "tpm", "cube", -1); StringBuilder _Mdx = new StringBuilder(); _Mdx.Append("with "); _Mdx.Append("SET ShowMonth AS 'tail([Work Date].[Month].members,13)' "); _Mdx.Append("SELECT ShowMonth on columns,"); _Mdx.Append("{[Measures].[Return Qty],[Measures].[Accum Qty],[Measures].[Repeat Limit],[Measures].[Repeat Qty] "); _Mdx.Append(",[Measures].[FTF Target],[Measures].[FTF Actual]} on rows "); _Mdx.Append("from repair_repeat_return_sum_V "); string TitalName = "First Time Fix Rate - "; int _row = cls.Axes[1].Positions.Count; int _col = cls.Axes[0].Positions.Count; object[] coords = new object[2]; object[] Line = new object[_col]; string[] series_data = new string[_col]; string[] Category = new string[_col]; ArrayList aLL = new ArrayList(); /* * * * * * * * * * * * * * * * * * * * * * * *datetime* * * * * * * * * * * * * * * * * * * * * * * */ for (int z = 0; z < cls.Axes[0].Positions.Count; z++) { string col_name = cls.Axes[0].Positions[z].Members[0].Caption; Category[z] = col_name; } for (int i = 5; i < _row; i++) { for (int j = 0; j < cls.Axes[0].Positions.Count; j++) { object _val; coords[0] = j; coords[1] = i; ADOMD.Cell newcell; newcell = cls.get_Item(ref coords); if (newcell.FormattedValue == null || newcell.FormattedValue == "") { _val = 0; aLL.Add(j); } else { _val = double.Parse(newcell.FormattedValue.Replace("%", "")) / 100; if ((double)_val < 0) { _val = 0; aLL.Add(j); } else if ((double)_val < 0.95) { aLL.Add(j); } } series_data[j] = _val.ToString(); } } cls.Close(); cnn.Close(); System.Runtime.InteropServices.Marshal.ReleaseComObject(cls); System.Runtime.InteropServices.Marshal.ReleaseComObject(cnn); /* * * * * * * * * * * * * * * * * * * 畫 * * * * * * * * * * * * * 圖 * * * * * * * * * * * * * * * * * * * * * * * * */ ChartSpace mySpace = new ChartSpaceClass();//创建ChartSpace对象来放置图表 ChChart myChart = mySpace.Charts.Add(0); //在ChartSpace对象中添加图表,Add方法返回chart对象 myChart.Type = ChartChartTypeEnum.chChartTypeStockOHLC; //指定图表的类型为股市O圖 myChart.SeriesCollection.Add(0);//添加一个Series string _Date = String.Join("/t", Category); string _Values = String.Join("/t", series_data); string[] num = new string[] { "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", "0.95", }; string _nUm = String.Join("/t", num); myChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCategories, (int)ChartSpecialDataSourcesEnum.chDataLiteral, _Date);//给定series的分类 myChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimOpenValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, _nUm); //開盤數據 myChart.SeriesCollection[0].SetData(ChartDimensionsEnum.chDimCloseValues, (int)ChartSpecialDataSourcesEnum.chDataLiteral, _Values);//收盤數據 myChart.Border.set_Weight(LineWeightEnum.owcLineWeightHairline); myChart.HasTitle = true;//为图表添加标题 myChart.Title.Caption = TitalName;//标题名称 myChart.Title.Font.Name = "Trebuchet MS"; myChart.Title.Font.Bold = true; myChart.Title.Font.Color = "blue"; myChart.Title.Font.Size = 14; myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].NumberFormat = "0%"; //&&格式化 Y 軸百分比 myChart.Axes[0].MajorGridlines.Line.Miter = ChartLineMiterEnum.chLineMiterBevel; //为Bottom添加图示说明---------------------------------------------------------------------------------------- myChart.Axes[ChartAxisPositionEnum.chAxisPositionBottom].Font.Name = "Trebuchet MS"; myChart.Axes[ChartAxisPositionEnum.chAxisPositionBottom].Font.Size = 12; myChart.Axes[ChartAxisPositionEnum.chAxisPositionBottom].Font.Color = "blue"; myChart.Axes[ChartAxisPositionEnum.chAxisPositionBottom].HasMajorGridlines = true; myChart.Axes[ChartAxisPositionEnum.chAxisPositionBottom].MajorGridlines.Line.Color = "#A9A9A9"; myChart.Axes[ChartAxisPositionEnum.chAxisPositionBottom].MajorGridlines.Line.Miter = ChartLineMiterEnum.chLineMiterBevel; //为y軸添加图示说明---------------------------------------------------------------------------------------- myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].Font.Name = "Trebuchet MS"; myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].Font.Size = 12; myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].Font.Color = "blue"; myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].HasMajorGridlines = true; myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].MajorGridlines.Line.Color = "#A9A9A9"; myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].MajorUnit = 0.15;//Y軸分段 myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].Scaling.Minimum = 0.8; //要顯示的最小值 myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].Scaling.Maximum = 1.05; //要顯示的最大值 myChart.Axes[ChartAxisPositionEnum.chAxisPositionLeft].MajorGridlines.Line.Miter = ChartLineMiterEnum.chLineMiterBevel; myChart.GapWidth = 50;//柱狀圖寬度 myChart.SeriesCollection[0].Interior.Color = "#32CD32"; myChart.SeriesCollection[0].Border.Color = ChartColorIndexEnum.chColorNone;//chColorNone 取消顏色 myChart.SeriesCollection[0].Line.Color = ChartColorIndexEnum.chColorNone; //chColorNone 取消顏色 //低于0.95的數據柱狀條變成RED色 for (int c = 0; c < aLL.Count; c++) { myChart.SeriesCollection[0].Points[aLL[c]].Interior.Color = "#FF0000"; } aLL.Clear(); myChart.Axes[-7].Font.Name = "Trebuchet MS"; myChart.Axes[-7].Font.Color = "Blue"; myChart.Axes[-7].Font.Size = 12; myChart.Axes[-7].HasMajorGridlines = true; myChart.Axes[-7].MajorGridlines.Line.Color = "#A9A9A9"; myChart.Axes[-7].MajorGridlines.Line.Miter = ChartLineMiterEnum.chLineMiterBevel; myChart.PlotArea.Interior.Color = "#c9c9c9"; //找出MajorGridlines 呈現 Orange 色澤 myChart.Axes[-8].MajorGridlines.Line.Color = "Orange"; myChart.Axes[-8].Font.Color = "Blue"; myChart.Axes[-8].Font.Name = "Trebuchet MS"; myChart.Axes[-8].Font.Size = 12; myChart.Axes[-8].MajorGridlines.Line.Miter = ChartLineMiterEnum.chLineMiterBevel; //顯示柱狀數據 ChDataLabels dl = myChart.SeriesCollection[0].DataLabelsCollection.Add(); dl.HasValue = true; dl.NumberFormat = "0.0#%"; dl.Border.Color = "Blue"; dl.Font.Size = 10; dl.Font.Name = "Trebuchet MS"; dl.Font.Italic = true; //--------------------------------生成圖片----------------------------------------- mySpace.ExportPicture(Server.MapPath("../chart/Report.gif"), "gif", 1024, 350); string url = ""; GC.Collect(); return url;
我的學習生涯 Microsoft OWC11
最新推荐文章于 2024-09-25 08:53:06 发布