public ActionResult summaryRpt([Bind(Include = "StartDate,EndDate,DepartmentID")] SummaryRpt summaryrpt)
 {
     if (ModelState.IsValid)
     {
         if (summaryrpt.StartDate == null)
         {
             return(View(summaryrpt));
         }
         else if (summaryrpt.EndDate == null)
         {
             return(RedirectToAction("summaryRptStartDate", "MachineSheet", summaryrpt));
         }
         else
         {
             return(RedirectToAction("summaryRptExport", "UserSheet", summaryrpt));
         }
     }
     ViewBag.DepartmentID = new SelectList(db.Departments.OrderBy(d => d.DepartmentName), "DepartmentName", "DepartmentName");
     return(View(summaryrpt));
 }
        public ActionResult summaryRptExport([Bind(Include = "StartDate,EndDate,DepartmentID")] SummaryRpt summaryrpt)
        {
            if (ModelState.IsValid)
            {
                LocalReport lr   = new LocalReport();
                string      path = Path.Combine(Server.MapPath("~/Reports"), "SummaryUserSheet.rdlc");
                if (System.IO.File.Exists(path))
                {
                    lr.ReportPath = path;
                }
                else
                {
                    return(View("Index"));
                }
                List <UserSheet> cm = new List <UserSheet>();

                if (summaryrpt.EndDate > summaryrpt.StartDate)
                {
                    {
                        var query = from s in db.UserSheets
                                    orderby s.SheetID
                                    where (EntityFunctions.TruncateTime(s.DateCreate) >= EntityFunctions.TruncateTime(summaryrpt.StartDate) && s.Department == summaryrpt.DepartmentID && EntityFunctions.TruncateTime(s.DateCreate) <= EntityFunctions.TruncateTime(summaryrpt.EndDate) && s.Department == summaryrpt.DepartmentID)
                                    select s;
                        cm = query.ToList();
                    }
                }
                else
                {
                    var query = from s in db.UserSheets
                                orderby s.SheetID
                                where (EntityFunctions.TruncateTime(s.DateCreate) == EntityFunctions.TruncateTime(summaryrpt.StartDate) && s.Department == summaryrpt.DepartmentID && EntityFunctions.TruncateTime(s.DateCreate) <= EntityFunctions.TruncateTime(summaryrpt.EndDate) && s.Department == summaryrpt.DepartmentID)
                                select s;
                    cm = query.ToList();
                }

                ReportDataSource rd = new ReportDataSource("DataSet1", cm);
                lr.DataSources.Add(rd);
                string reportType = "Excel";
                string mimeType;
                string encoding;
                string fileNameExtension;

                string deviceInfo =

                    "<DeviceInfo>" +
                    "  <OutputFormat>" + "Excel" + "</OutputFormat>" +
                    "  <PageWidth>11.7in</PageWidth>" +
                    "  <PageHeight>16.5in</PageHeight>" +
                    "  <MarginTop>0.5in</MarginTop>" +
                    "  <MarginLeft>1in</MarginLeft>" +
                    "  <MarginRight>1in</MarginRight>" +
                    "  <MarginBottom>0.5in</MarginBottom>" +
                    "</DeviceInfo>";

                Warning[] warnings;
                string[]  streams;
                byte[]    renderedBytes;

                renderedBytes = lr.Render(
                    reportType,
                    deviceInfo,
                    out mimeType,
                    out encoding,
                    out fileNameExtension,
                    out streams,
                    out warnings);
                return(File(renderedBytes, mimeType));
            }
            ViewBag.DepartmentID = new SelectList(db.Departments.OrderBy(d => d.DepartmentName), "DepartmentName", "DepartmentName");
            return(View(summaryrpt));
        }