很菜鸟的问题:如何计算每个月的销售额呢?
如题,根据每个月的销售数据显示一张柱状图现在的问题是,如何计算呢?就是我用最笨的办法的话,指定月头月尾,但是:2月份怎么处理? --------------------编程问答-------------------- 水晶报表,太专业玩不来。。
用的是chart控件 --------------------编程问答-------------------- 不清楚你们具体的业务,但是通过month函数只计算月份,或者最好可以由用户来指定开始时间与截止时间 --------------------编程问答-------------------- 你数据存到数据库,读取2月份的数据,再chart显示柱状图 --------------------编程问答-------------------- 传值只传入月,然后再月的基础上加入一个1号, 再把传入的月加一个月减一天。 --------------------编程问答-------------------- 不知道你用的什么数据类型,用个DataTable演示一下
--------------------编程问答-------------------- 指定当月第一天,用下个月第一天-1天当月末 --------------------编程问答--------------------
//加载数据
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("date", typeof(DateTime)));
dt.Columns.Add(new DataColumn("num", typeof(int)));
DataRow dr1 = dt.NewRow();
dr1[0] = new DateTime(2013, 9, 30, 00, 30, 00);
dr1[1] = 11;
DataRow dr2 = dt.NewRow();
dr2[0] = new DateTime(2013, 10, 1, 00, 31, 01);
dr2[1] = 12;
DataRow dr3 = dt.NewRow();
dr3[0] = new DateTime(2013, 10, 30, 00, 40, 01);
dr3[1] = 13;
dt.Rows.Add(dr1);
dt.Rows.Add(dr2);
dt.Rows.Add(dr3);
//你要的按月求和**********
var query = from t in dt.AsEnumerable()
group t by t.Field<DateTime>("date").ToString("yyyyMMddHHmi").Substring(0, 6) into g
select new
{
_date = g.Key,
_sum = g.Sum(a => a.Field<int>("num"))
};
//***********************
//输出显示一下
StringBuilder sbuilder = new StringBuilder();
foreach (var item in query)
{
sbuilder.Append(string.Format("{0}-{1}\n",item._date,item._sum.ToString()));
}
MessageBox.Show(sbuilder.ToString());
作为通用组建,越是专业的东西,用起来越傻瓜化。那些假装专业的东西才会要求你白手起家写一大堆代码的。
其实不用现成的组件可能有各种原因,例如说它“经常崩溃、太慢、太笨重、收费”等等,而闲人家通用组件“太专业”你其实就是在讽刺这个组件不够专业、过于繁琐、没有针对普通用户而进行傻瓜化设计。 --------------------编程问答-------------------- 软件开发就好像木桶拎水,装的很少或者很满,都会显得悄无声息。只有那种装到半桶水的时候,才会显得咣哩咣当的。
因此通用的组件,越是好的越注重让用户可以傻瓜化地使用,用鼠标拖拉和简单地设置属性就能快速生成应用。因此最好的工具跟最初级的工具,对于初学者(或者不求上进的人)全都一样简单好用、不复杂。
--------------------编程问答-------------------- 使用JS前端的HIGHCHARTS也可以实现效果...
var mydate = new Date();
var mm = mydate.getMonth() ;
mm = mm + "月";
var yy = mydate.getFullYear();
yy = yy + "年";
var mysubtitle = yy + mm;
var mycharts = {
chart: {
renderTo: 'containertop2',
type: 'column'
},
credits: {
enabled: false
},
title: {
text: ' 上月销售排行榜'
},
subtitle: {
text: mysubtitle
},
xAxis: {
categories: ['我', 'A同事', 'B同事', 'C同事', 'D同事'],
title: {
text: null
}
},
yAxis: {
title: {
text: '上月销售排行榜'
},
labels: {
formatter: function () {
return this.value;
}
}
},
tooltip: {
formatter: function () {
return this.series.name + ' <b>' +
Highcharts.numberFormat(this.y, 0) + '</b><br/>in ' + this.x;
}
},
plotOptions: {
area: {
pointStart: 1940,
marker: {
enabled: false,
symbol: 'circle',
radius: 2,
states: {
hover: {
enabled: true
}
}
}
}
},
series: [{ name: '上月'}]
};
var dd = new Array();
var x = new Array();
var dataY = new Array();
var action = "TOPLASTMONTH"
var datefrom = "2013-11-01";
var dateto = "2013-11-08";
//异步获取数据 series[0],series[1],series[2],categories 后台
$.getJSON(window.location.herf, { ACTION: action, DATEFROM: datefrom, DATETO: dateto }, function (data) {
for (var i = 0; i < data.length; i++) {
x[i] = data[i]["dataX"];
dd[i] = parseInt(data[i]["dataY"]) + 1;
}
mycharts.series[0].data = dd;
mycharts.xAxis.categories = x;
var chart = new Highcharts.Chart(mycharts);
})
补充:.NET技术 , C#