统计输出图

 Output();
        if (scxmAr.IndexOf("count") > -1)
        {
            int[] num = new int[32];
            string[] item = new string[32];
            for (int i = 0; i < dsOut.Tables[0].Rows.Count; i++)
            {
                for (int j = 0; j < dsOut.Tables[0].Columns.Count; j++)
                {
                    string type = dsOut.Tables[0].Rows[i][j].GetType().ToString();
                    if (type == "System.Int32")
                    {
                        num[i] = Convert.ToInt32(dsOut.Tables[0].Rows[i][j]);
                        item[i] = dsOut.Tables[0].Rows[i][j - 1].ToString();
                    }
                }
            }
            Bitmap bm = new Bitmap(600, 300);
            Graphics g = Graphics.FromImage(bm);           
            g.Clear(Color.White);
            g.DrawString(Con, new Font("宋体", 16), Brushes.Black, new Point(5, 5));
            Point myRec = new Point(435, 30);
            Point myDec = new Point(470, 30);
            Point myTxt = new Point(565, 30);
            g.DrawString("", new Font("宋体", 9), Brushes.Black, new Point(515, 12));
            for (int i = 0; i < dsOut.Tables[0].Rows.Count; i++)
            {
                g.FillRectangle(new SolidBrush(GetColor(i)), myRec.X, myRec.Y, 20, 10);
                g.DrawRectangle(Pens.Black, myRec.X, myRec.Y, 20, 10);
                g.DrawString(item[i].ToString(), new Font("宋体", 9), Brushes.Black, myDec);
                g.DrawString(num[i].ToString(), new Font("宋体", 9), Brushes.Red, myTxt);
                myRec.Y += 15;
                myDec.Y += 15;
                myTxt.Y += 15;
            }
            int iTatal = 0;
            float fCurrentAngle = 0;
            float fStartAngle = 0;
            for (int i = 0; i < num.Length; i++)
            {
                iTatal = iTatal + num[i];
            }
            if (ddlChart.SelectedIndex == 0)
            {
                //饼图
                for (int i = 0; i < num.Length; i++)
                {
                    if (i == num.Length - 1)
                    {
                        fCurrentAngle = 360 - fStartAngle;
                    }
                    else
                    {
                        int iTemp = num[i];
                        fCurrentAngle = (iTemp * 360) / iTatal;
                    }
                    g.FillPie(new SolidBrush(GetColor(i)), 100, 40, 250, 250, fStartAngle, fCurrentAngle);
                    fStartAngle += fCurrentAngle;
                }
            }
            else
            {
                //柱状图
                int iBarWidth = 40;
                int scale = 10;
                for (int i = 0; i < dsOut.Tables[0].Rows.Count; i++)
                {
                    g.DrawRectangle(Pens.Black, (i * iBarWidth) + 15, 285 - (num[i] * scale), 20, (num[i] * scale) + 5);
                    g.FillRectangle(new SolidBrush(GetColor(i)), (i * iBarWidth) + 15, 285 - (num[i] * scale), 20, (num[i] * scale) + 5);
                    g.DrawString(item[i].ToString()+"/"+num[i].ToString(), new Font("宋体", 9), Brushes.Black, (i * iBarWidth) + 20, 265 - (num[i] * scale));
                }
            }
            string path = Server.MapPath("~/UserDbUpload") + "//chart.jpg";
            bm.Save(path, ImageFormat.Jpeg);
            Response.Write("<script>window.open('showchart.htm');</script>");
        }
        else
        {
            Response.Write("<script>alert('你未进行计数计算,故不生成统计图')</script>");
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值