浅谈ASP.NET报表控件

复制链接打印来源:    发布者:
条评论】【我要评论时间:2010-08-31 07:55

ASP.NET报表控件二、柱状图

ASP.NET报表控件二、柱状图

41.//颜色数组

42.private string[] myColor = new string[]

43.{

44.    "Fuchsia",

45.    "Black",

46.    "Gold",

47.    "Blue",

48.    "HotPink",

49.    "Orange",

50.    "Peru",

51.    "DodgerBlue",

52.    "Lime",

53.    "Tan",

54.    "Red",

55.    "GreenYellow",

56.    "DarkGreen",

57.    "DimGray",

58.    "Orchid"

59.};

60.

61.//调用该方法生成柱状图

62.private void bindchart()

63.{

64.    //获取一个DataTable,具体函数略...

65.    DataTable dt = this.getdt();

66.    if (dt != null)

67.    {

68.        if (dt.Rows.Count > 0)

69.        {

70.            //遍历DataTable为每条记录生成一个柱状

71.            for (int i = 0; i < dt.Rows.Count; i++)

72.            {

73.                //创建对象

74.                ColumnChart mychart = new ColumnChart();

75.                //设置柱子宽度

76.                mychart.MaxColumnWidth = 48;

77.                //颜色

78.                mychart.Fill.Color = Color.FromName(this.myColor[i]);

79.                //在柱子上显示数量

80.                mychart.DataLabels.Visible = true;

81.                //数量的字体

82.                mychart.DataLabels.Font = new Font("Verdana", 14);

83.                //添加

84.                mychart.Data.Add(new ChartPoint("", float.Parse(dt.Rows[i]["num"].ToString())));

85.                //备注

86.                mychart.Legend = dt.Rows[i]["name"].ToString();

87.                this.chart.Charts.Add(mychart);

88.            }

89.            //辅助设置

90.            //背景色

91.            chart.Background.Color = Color.FromArgb(165, 0, 16);

92.            chart.YAxisFont.ForeColor = Color.FromArgb(165, 0, 16);

93.            chart.XAxisFont.ForeColor = Color.FromArgb(165, 0, 16);

94.            //内部线条

95.            chart.Border.Color = Color.FromArgb(200, 200, 200);

96.            //边框样式

97.            chart.BorderStyle = BorderStyle.None;

98.            //y最大值

99.            double max = double.Parse(dt.Compute("MAX(num)","").ToString());

100.            //递增值

101.            int intv = 2;

102.

103.            //数量小于16的情况

104.            if (max < 16)

105.            {

106.                max = 16;

107.            }

108.            //大于16的情况

109.            else

110.            {

111.                intintv = int.Parse(Math.Ceiling(max/8).ToString());

112.                max += intv;

113.            }

114.

115.            //设置Y轴终点值

116.            chart.YCustomEnd = int.Parse(max.ToString());

117.            //y递增值

118.            chart.YValuesInterval = intv;

119.

120.            //生成

121.            this.chart.RedrawChart();

122.        }

123.    }

124.}

 2/2   首页 上一页 1 2

(责编:dalishu)

赞助商广告

设置首页-广告服务-服务条款-联系我们-意见建议-保护隐私权-关于我们-
客服邮箱: service@dalionline.net举报邮箱: jubao@dalionline.net动锐网络提供网络带宽