我的學習生涯 Microsoft OWC11

        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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值