zoukankan      html  css  js  c++  java
  • MVC 统计之 自定义 列表

    实际上,我遇到一个统计的需求. 项目个数不确定(可维护),人员个数不确定(可维护)

    行列都不确定的情况下.要统计每个人每天项目所使用时间的数据..最后使用动态table 完成功能.

    效果:

    后台:

           public ActionResult Search(string CreatetimeS, string CreatetimeE, string Project, Guid? Createby)
            {
                List<EM_Employee> EM_Employees = db.EM_Employee.ToList();
                ViewBag.Createby = new SelectList(EM_Employees, "EmID", "EMRealName");
                List<SYS_DD> SYS_DD_Projects = db.SYS_DD.Where(dd => dd.DDType == "Project").OrderBy(dd => dd.DDCode).ToList();
                ViewBag.Project = new SelectList(SYS_DD_Projects, "DDCode", "DDName");
                if (Createby != null)
                {
                    EM_Employees = EM_Employees.Where(em => em.EmID == Createby).ToList();
                }
                if (!string.IsNullOrEmpty(Project))
                {
                    SYS_DD_Projects = SYS_DD_Projects.Where(s => s.DDCode == Project).ToList();
                }
                DataTable dt = DataTableCalculate(Convert.ToDateTime(CreatetimeS), Convert.ToDateTime(CreatetimeE), EM_Employees, SYS_DD_Projects);
    
                //return Json("json");
                return View("Index", dt);
            }
            private DataTable DataTableCalculate(DateTime startTime, DateTime endTime, List<EM_Employee> EM_Employees, List<SYS_DD> SYS_DD_Projects)
            {
                DataTable dt = new DataTable();
                dt.Columns.Add("Employees");
                foreach (var Project in SYS_DD_Projects)
                {
                    dt.Columns.Add(Project.DDName);
                }
                foreach (var Employee in EM_Employees)
                {
                    var row = dt.NewRow();
                    row["Employees"] = Employee.EMRealName;
                    foreach (var Project in SYS_DD_Projects)
                    {
                        row[Project.DDName] = db.Hours.Where(h => h.Createtime >= startTime && h.Createtime <= endTime && h.Createby == Employee.EmID && h.Project == Project.DDCode)
                        .Sum(h => (double?)h.SpendHours);
                    }
                    dt.Rows.Add(row);
                }
                return dt;
            }

    前台:

    @model System.Data.DataTable
    @if (Model != null)
    {
        <table class="table">
            <tr>
                @foreach (System.Data.DataColumn column in Model.Columns)
                    {
                    <th>
                        @column.ColumnName
                    </th>
                }
            </tr>
    
            @foreach (System.Data.DataRow row in Model.Rows)
            {
                <tr>
                    @foreach (System.Data.DataColumn column in Model.Columns)
                    {
                        <td>
                            @row[column.ColumnName]
                        </td>
                    }
                </tr>
            }
        </table>
    }
  • 相关阅读:
    MongoDB 基础命令 (MongoDB Shell)
    MongoDB 在 Mac OSX 平台安装
    数组根据index拆分和查询下标
    简单介绍递归算法以及应用场景
    android studio ndk开发环境搭建
    基于vue开发的多功能的时间选择器组件,开箱即用
    简单了解JS中的几种遍历
    零基础学习webpack打包管理
    让你高效的理解JavaScript中的同步、异步和事件循环
    学习flex布局(弹性布局)
  • 原文地址:https://www.cnblogs.com/cxd1008/p/8085419.html
Copyright © 2011-2022 走看看