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.}
(责编:dalishu)