• 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>
    }
  • 相关阅读:
    Uva11584 Partitioning by Palindromes
    GYM100741 A Queries
    Uva11400 Lighting System Design
    UVA12563 Jin Ge Jin Qu hao
    Uva116 Unidirectional TSP
    HDU2089 不要62
    BZOJ3670: [Noi2014]动物园
    Uva11384 Help is needed for Dexter
    Uva1347 Tour
    BZOJ1924: [Sdoi2010]所驼门王的宝藏
  • 原文地址:https://www.cnblogs.com/cxd1008/p/8085419.html
Copyright © 2020-2023  润新知