如何让查询动态过滤表中的记录?

加入
4月26日,2021年
消息
7
编程经验
3-5
大家好

我正在努力让我的查询动态,我的意思是在这里必须格式化记录列表。目前,现在我将附加Excel的输出,并且不格式化数据以进行曝光。第一个附件是我当前的数据。输出必须是第二个附件,将在此附加到这里清楚起见。以下是我下面的逻辑以获取更多信息。
使用ASP.NET MVC 5导出记录列表作为Excel:
  public IList<ExtractionViewModel> GetExtractionViewModels()
        {
             var db = new ProductionManagementEntities();

            var scheduleList = (from p in db.ProductionDays
                                from m in db.Models
                                join w in db.Weeks on p.WeekId equals w.WeekId
                                orderby w.Year ascending
                                orderby m.Name descending
                                where(m.InActive == true)
                      

                                select new ExtractionViewModel
                                {

                                    Year = w.Year,
                                    Week = w.WeekNum,
                                    Day = p.ProductionDate,
                                    VW250 = m.Name,
                                    VW270 = m.Name,
                                    VW2502PA = m.Name,
                                    VW270PA = m.Name


                                }).ToList();
        
            

          
            return scheduleList;
        }

public class ExtractionViewModel
    {
        public string Year { get; set; }

        public int Week { get; set; }

        
        [DataType(DataType.Date)]
        [DisplayFormat(DataFormatString = "{0;yyyy-MM-dd}", ApplyFormatInEditMode =false)]
        public DateTime Day { get; set; }

        public string VW250 { get; set; }

        public string VW270 { get; set; }

        public string VW2502PA { get; set; }

        public string VW270PA { get; set; }
    }

  public ActionResult DataResult()
        {
            return View(this.GetExtractionViewModels());
        }

    public void ExportToExcel()
        {

            var v = new GridView();
            v.DataSource = this.GetExtractionViewModels();
            v.DataBind();
            Response.ClearContent();
            Response.Buffer = true;
            Response.AddHeader("content-disposition", "attachment; filename=ExtractionRecords.xls");
            Response.ContentType = "application/ms-excel";
            Response.Charset = "";
            StringWriter objStringWriter = new StringWriter();
            HtmlTextWriter htmlTextWriter = new HtmlTextWriter(objStringWriter);
            v.RenderControl(htmlTextWriter);
            Response.Output.Write(objStringWriter.ToString());
            Response.Flush();
            Response.End();
            //return View("DataResult");
        }
 

附件

  •  Take.png.
    Take.png.
    9.1 KB · Views: 2
  •  filter.png.
    filter.png.
    21.9 KB · Views: 2

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,969
地点
切萨皮克,va.
编程经验
10+
您所需的屏幕截图具有非日期相关列的数字。我假设这些值是计数。那么你为什么不让你的视图模型计算计数?
 
加入
4月26日,2021年
消息
7
编程经验
3-5
大家好

我有问题,需要一些帮助,问题我的Excel上的数据正在复制一年和一周,例如,如果在2020年的数据,则它确实如此,但仍然依靠周为2,2,3,3.在前面结束它只计算仅1,2。然而,如果任何一年没有数据,我的Excel必须在这里做同样的事情并且需要帮助。请看下面的逻辑;

在查询中使用LINQ提取数据:
  public IList<ExtractionViewModel> GetExtractionViewModels()
        {
            
             var db = new ProductionManagementEntities();

            var scheduleList = (from p in db.ProductionDays
                                from m in db.Models
                                join w in db.Weeks on p.WeekId equals w.WeekId
                                orderby w.Year descending, m.Name descending, p.ProductionDate descending,w.WeekNum descending
                                where(m.InActive == true)

                                select new ExtractionViewModel
                                {

                                    Year = w.Year,
                                    Day = p.ProductionDate,
                                    Week = w.WeekNum,
                                    VW250 = m.Name,
                                    VW270 = m.Name,
                                    VW2502PA = m.Name,
                                    VW270PA = m.Name


                                }).ToList();
        
          
            return scheduleList;
        }
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,969
地点
切萨皮克,va.
编程经验
10+
难道你没有关于这个开放的线程吗?
 

跳伞运动员

工作人员
加入
2019年4月6日
消息
2,969
地点
切萨皮克,va.
编程经验
10+
你做了。将两个线程合并在一起。

也将此线程从C#常规讨论中移动,因为这看起来更加实体框架......
 
Last edited:
最佳 底部