@using ZoomLa.Common @using ZoomLa.BLL.User @using ZoomLa.BLL.ECharts @using ZoomLa.SQLDAL @functions{ private int Year { get { return DataConverter.CLng(Context.Request.GetParam("Year")); } } private int Month { get { return DataConverter.CLng(Context.Request.GetParam("Month")); } } B_User_Promo promoBll = new B_User_Promo(); public string MapBind(DataTable dt) { return ""; } public string BarChartBind(DataTable dt, string type) { //初始化图表 BarChartOption option = new BarChartOption(new ChartTitle() { text = "推广统计", subtext = "按月统计" }, "", type); ChartLegend legend = new ChartLegend(); List dataList = new List(); //默认按用户统计 List years = new List();//不存数据,只存年 foreach (DataRow dr in dt.DefaultView.ToTable(true, "Year").Rows) { years.Add(dr["Year"].ToString()); } foreach (string year in years) { List months = new List();//存12个月的数据,不足以0补齐 for (int i = 1; i <= 12; i++) { DataRow[] drs = dt.Select("Year=" + year + " AND Month=" + i); if (drs.Length > 0) { months.Add(Convert.ToInt32(drs[0]["PCount"])); } else { months.Add(0); } } dataList.Add(new ChartSeries() { type = type, name = year, data_int = months.ToArray() }); } /*数据完成,填充图表*/ legend.data = years.ToArray(); option.yAxis = new YAxis() { data = years.ToArray() }; //与数据无须name对应,y轴需要name对应 ((BarChartOption)option).AddData("1月,2月,3月,4月,5月,6月,7月,8月,9月,10月,11月,12月".Split(','), dataList, type); option.legend = legend; return option.ToString(); } public string PieChartBind(DataTable dt, string wherestr, string field = "Year") { PieChartOption pieoption = new PieChartOption(new ChartTitle() { text = "推广统计", subtext = "按月统计" }, ""); List legeds = new List(); List dataList = new List(); DataRow[] drs = dt.Select(field + "=" + wherestr); List datas = new List(); foreach (DataRow dr in drs) { legeds.Add(dr["Month"].ToString()); datas.Add(new ChartData() { name = dr["Month"].ToString(), value = DataConverter.CLng(dr["PCount"]) }); } dataList.Add(new ChartSeries() { name = "", data_mod = datas.ToArray() }); pieoption.AddData(new ChartLegend() { data = legeds.ToArray() }, dataList, ""); return pieoption.ToString(); } //public void MapBind() //{ // string tool = "{show :true, orient : 'vertical',x: 'right',y: 'center',feature : {dataView: {show: true,readOnly: true},restore : {show: true},saveAsImage : {show: true}}}"; // ChartOption option = new MapChartOption(new ChartTitle() // { // text = "用户来源地汇总", // subtext = "按地区" // }, tool); // option.tooltip = new ChartToolTip() { trigger = "item", formatter = null }; // ChartLegend legend = new ChartLegend(); // legend.data = "用户数".Split(','); // //legend.data = "2013,2014,2015".Split(',');//年份 // List dataList = new List(); // dataList.Add(new ChartSeries() // { // name = "用户数", // data_mod = SelByProvince().ToArray() // }); // ((MapChartOption)option).AddData(legend, dataList); // mapcode.InnerText = option.ToString(); //} public List SelByProvince() { string sql = "SELECT Count(*)AS PCount,B.Province FROM ZL_User A LEFT JOIN ZL_UserBase B ON A.UserID=B.UserID WHERE B.Province!='' GROUP BY B.Province"; DataTable dt = SqlHelper.ExecuteTable(sql); List list = new List(); foreach (DataRow dr in dt.Rows) { list.Add(new ChartData() { name = dr["Province"].ToString().Replace("省", ""), value = Convert.ToInt32(dr["PCount"]) }); } return list; } } @{ DataTable dt = promoBll.SelByTime(); DataTable topDT=promoBll.SelByFilter(0, 0, "", 10); } @section head{@L.推广列表 } @section content{ @Call.SetBread( new Bread[] { new Bread("{admin}"), new Bread(Call.PA("User/UserManage"),@L.用户管理), new Bread(){url="PromoChart", text=@L.图表分析} })
@*<%--
年份:
月份:
--%>*@ @*<%-- --%> <%-- --%>*@
@L.推广排行榜
    @foreach (DataRow dr in topDT.Rows) {
  • @dr["UserName"]@dr["PCount"]
  • }
} @section script{ }