mschart柱状图应用问题!急

liqingle 2012-10-15 03:41:49
现在本人想用mschart控件实现一个以公司部门为分类,产品为X轴,产量为Y轴表现形式的柱状图.
求教大家这个应该怎样实现?
注意每个部门分类下面的产品总类不都一样.
...全文
140 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liqingle 2012-10-16
  • 打赏
  • 举报
回复
上面的问题 已经解决了,不过在使用饼形图时又遇到点问题.
不管怎么样,先谢谢大家.
liangchengfck1 2012-10-15
  • 打赏
  • 举报
回复
sql语句看的头疼 你把你表结构帖出看看

分析下:首先产品类型是唯一的是吧 那么你group by 产品类型
那么相同的类型就只会显示一种类型了是吧
那么你在sum一下不就求出产品类型对应的销量和了吗?
我x显示的是时间其实和你是一抹一样的
我 group by ’时间‘ 求所在时间的下载流量和 你group by 类型 求产品类型销量和
liqingle 2012-10-15
  • 打赏
  • 举报
回复
现有代码贴出.
<asp:Chart ID="Chart1" runat="server">
<series>
<asp:Series Name="Series1" ChartArea="ChartArea1" ChartType="Column" XValueType="String" YValueType="Double" XValueMember="mat" YValueMembers="today_weight" BorderWidth="3" ></asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</chartareas>
</asp:Chart>
代码部分
strsql = string.Format("select f.factory_name+d.depart_name dpt,m.material_name+m.model mat,today_weight from tb_daystock ds inner join tb_factory f on f.factory_id=ds.factory_id inner join tb_deparment d on d.depart_id=ds.depart_id inner join tb_material m on ds.material_id=m.material_id inner join tb_user u on ds.user_id=u.user_id where up_date='{0}' order by ds.factory_id,ds.depart_id", TextDate.Text.Trim());
Chart1.DataBindCrossTable(myaccess.getDataReader(strsql), "dpt", "mat", "today_weight", "Label=today_weight");
这个显示结果里的产品都归到了第一种物料里面去了.请问应该怎么改?
liangchengfck1 2012-10-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
更正::注意每个部门分类下面的产品种类不都一样.
[/Quote]

你不就是求每个部门的产品分类趋势图嘛 是吧!和部门有什么关系 把部门带到sql语句不就好了 如下

select sum(产品类型销量)as numbers ,产品 from table where 部门=‘销售部’ group by 产品
这样不就求出销售部的产品趋势图了
把number赋非y轴 产品赋值给x轴
dayChart.Series[0].XValueMember = "number";
dayChart.Series[0].YValueMembers = "产品名字;
liqingle 2012-10-15
  • 打赏
  • 举报
回复
更正::注意每个部门分类下面的产品种类不都一样.
liqingle 2012-10-15
  • 打赏
  • 举报
回复
现有代码贴出.
<asp:Chart ID="Chart1" runat="server">
<series>
<asp:Series Name="Series1" ChartArea="ChartArea1" ChartType="Column" XValueType="String" YValueType="Double" XValueMember="mat" YValueMembers="today_weight" BorderWidth="3" ></asp:Series>
</series>
<chartareas>
<asp:ChartArea Name="ChartArea1">
</asp:ChartArea>
</chartareas>
</asp:Chart>
代码部分
strsql = string.Format("select f.factory_name+d.depart_name dpt,m.material_name+m.model mat,today_weight from tb_daystock ds inner join tb_factory f on f.factory_id=ds.factory_id inner join tb_deparment d on d.depart_id=ds.depart_id inner join tb_material m on ds.material_id=m.material_id inner join tb_user u on ds.user_id=u.user_id where up_date='{0}' order by ds.factory_id,ds.depart_id", TextDate.Text.Trim());
DataTable myTable1 = myaccess.getDateTable(strsql);
Chart1.DataSource = myTable1;
Chart1.DataBind();
以上代码实现由有错误.无法完整显示每个部门中各种产品名称.请问该如何实现?
liangchengfck1 2012-10-15
  • 打赏
  • 举报
回复
产品为X轴,产量为Y轴表现形式的柱状图.
求产品所对应的sum

DataTable dt = new DataTable();
dt.Columns.Add("days");
dt.Columns.Add("daysTrafficSum");

dt = owam.getDaysTrafficByUsername(userName, type, startDate, endDate); //调用业务层的方法

//设置图表的数据源
dayChart.DataSource = dt;

//设置图表Y轴对应项
dayChart.Series[0].XValueMember = "days";
dayChart.Series[0].YValueMembers = "daysTrafficSum";
dayChart.Series[0].Name = userName+" 前30天 O"+type+"A 下载附件趋势图";
dayChart.ChartAreas["ChartArea1"].AxisX.MajorGrid.Interval = 1;
dayChart.ChartAreas["ChartArea1"].AxisX.LabelStyle.Interval = 1;


monthChart.DataBind();


以上代码是求前30天每个用户下载流量和

dayChart.Series[0].XValueMember = "days";
dayChart.Series[0].YValueMembers = "daysTrafficSum";
days日前换成类型 daysTrafficSum换成类型sum

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧