当前位置:编程学习 > C#/ASP.NET >>

很菜鸟的问题:如何计算每个月的销售额呢?

如题,根据每个月的销售数据显示一张柱状图

现在的问题是,如何计算呢?就是我用最笨的办法的话,指定月头月尾,但是:2月份怎么处理? --------------------编程问答-------------------- 水晶报表,太专业玩不来。。
用的是chart控件 --------------------编程问答-------------------- 不清楚你们具体的业务,但是通过month函数只计算月份,或者最好可以由用户来指定开始时间与截止时间 --------------------编程问答-------------------- 你数据存到数据库,读取2月份的数据,再chart显示柱状图 --------------------编程问答-------------------- 传值只传入月,然后再月的基础上加入一个1号, 再把传入的月加一个月减一天。  --------------------编程问答-------------------- 不知道你用的什么数据类型,用个DataTable演示一下

//加载数据
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());
--------------------编程问答-------------------- 指定当月第一天,用下个月第一天-1天当月末 --------------------编程问答--------------------
引用 1 楼 shenxian6 的回复:
水晶报表,太专业玩不来。。
用的是chart控件


作为通用组建,越是专业的东西,用起来越傻瓜化。那些假装专业的东西才会要求你白手起家写一大堆代码的。

其实不用现成的组件可能有各种原因,例如说它“经常崩溃、太慢、太笨重、收费”等等,而闲人家通用组件“太专业”你其实就是在讽刺这个组件不够专业、过于繁琐、没有针对普通用户而进行傻瓜化设计。 --------------------编程问答-------------------- 软件开发就好像木桶拎水,装的很少或者很满,都会显得悄无声息。只有那种装到半桶水的时候,才会显得咣哩咣当的。

因此通用的组件,越是好的越注重让用户可以傻瓜化地使用,用鼠标拖拉和简单地设置属性就能快速生成应用。因此最好的工具跟最初级的工具,对于初学者(或者不求上进的人)全都一样简单好用、不复杂。
--------------------编程问答-------------------- 使用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#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,