• 这个我想参考UIM卡的统计报表功能,数量+多少日期前的
  • 但终端分类型,我想默认就是所有,上面加一排按钮,点击后再按输入的string 值就来进行筛选(比如光猫,ITV等)

image.png

  • 老方法 ,先整一个model

    建显示模型

  • 在根目录下的Models下,建一个型型HomeListTerminal.cs ``` public class HomeListTerminal {

    1. //区域就是支局之类的
    2. public String Region { get; set; }
    3. //接收人,除非他们发了接收人,否则默认支局长,就是Region起作用
    4. /// <summary>
    5. /// 总的可以使用的终端
    6. /// </summary>
    7. public Int32 TotalTerminal { get; set; }
    8. //1个月前的终端
    9. public Int32 OldTerminal { get; set; }
}

- 新建一个控制器方法 ,并生成视图

[HttpGet] public ActionResult ListTerminal() {

        return View();
    }
<a name="GrmH6"></a>
## 统计实现

- 然后我们完善这个 ListTerminal()方法 ,我们为了方便 ,直接使用SQL
- 便注意这个方法 ,我们需要一个string 变量,即终端型号
- 前台页面先增加四个按钮,针对我终端的四个类型


- 效果

![image.png](https://cdn.nlark.com/yuque/0/2021/png/1174002/1617357675832-7144a2d4-556b-450f-b334-f909e05e8913.png#align=left&display=inline&height=244&margin=%5Bobject%20Object%5D&name=image.png&originHeight=244&originWidth=333&size=12640&status=done&style=none&width=333)

- 完善后台代码

[HttpGet] public ActionResult ListTerminal(string searchString) { //当这个不为空,即是不点击按按的时候 if (!String.IsNullOrEmpty(searchString)) { //根据点击送过来的searchString值进行筛选统计 var dal = DAL.Create(“Membership”); string stringsql = “SELECT Region,COUNT(StringCode) as TotalTerminal,sum(case when date(GrantDate) <= strftime(‘%Y-%m-%d %H:%M:%f’,’now’, ‘-50 day’) then 1 else 0 end) as OldTerminal FROM Terminal WHERE TerminalState == ‘待销售’ and TerminalType ==”; stringsql += “‘“+searchString +”‘“+ “ GROUP BY Region;”; var endlistcard = dal.Query(stringsql).ToList(); //var ke = UimCard.LoadData(db); return View(endlistcard);

        }
        else
        {
            var dal = DAL.Create("Membership");
            var endlistcard = dal.Query<HomeListTerminal>("SELECT Region,COUNT(StringCode) as TotalTerminal,sum(case when  date(GrantDate) <= strftime('%Y-%m-%d %H:%M:%f','now', '-50 day') then 1 else 0 end) as OldTerminal  FROM Terminal WHERE TerminalState =='待销售' GROUP BY Region; ").ToList();
            //var ke = UimCard.LoadData(db);
            return View(endlistcard);


        }

} ```

  • 上面的sql,因为where需要用到变量,所以我只能用拼接的方式

image.png