public ActionResult Index(FormCollection collection, string submitbutton) { //Title' string testhtml = Request.Form["table"]; ViewData["Title"] = "User Report"; ViewData["Users"] = new SelectList(userdb.GetUserItems(), "cai", "detail", collection["ddlusers"]); ViewData["startdate"] = collection["txtStartDate"]; ViewData["enddate"] = collection["txtEndDate"]; string userid = collection["ddlUsers"]; tbl_User myUser = userdb.GetUserByID(userid); ViewData["User"] = myUser; var test = projectdb.GetProjectHours(collection["ddlUsers"], DateTime.Parse(collection["txtStartDate"]), DateTime.Parse(collection["txtEndDate"])); ViewData["ProjectHours"] = test; switch (submitbutton) { case "Print": if (test.Count() > 0) { List<string> ColList = new List<string>(); ColList.Add("Number"); ColList.Add("Name"); ColList.Add("Staus"); ColList.Add("Hours"); List<ReportRow> rows = new List<ReportRow>(); decimal totalhours = 0M; int i = 0; foreach (var item in test) { List<ReportCell> cells = new List<ReportCell>(); cells.Add(new ReportCell() { colnum = 0, colspan = 1, rownum = i, value = item.ProjectNumber.ToString(), type = CellType.String }); cells.Add(new ReportCell() { colnum = 1, colspan = 1, rownum = i, value = item.ProjectName, type = CellType.String }); cells.Add(new ReportCell() { colnum = 2, colspan = 1, rownum = i, value = item.ProjectStatus, type = CellType.String }); cells.Add(new ReportCell() { colnum = 3, colspan = 1, rownum = i, value = item.Hours.ToString(), type = CellType.Number }); i++; totalhours += (decimal)item.Hours; rows.Add(new ReportRow() { row = cells }); } IPDFReport myReport = new Report(false); float[] HeaderWidths = { 10, 70, 10, 10 }; myReport.ColList = ColList; myReport.ReportRows = rows; myReport.total = totalhours.ToString("#,##0.00"); myReport.Start = DateTime.Parse(collection["txtStartDate"]); myReport.End = DateTime.Parse(collection["txtEndDate"]); myReport.User = myUser; myReport.Headerwidths = HeaderWidths; myReport.filename = "TSD_User_Report_" + myUser.User_FirstName + "_" + myUser.User_LastName + "_[" + myUser.User_CAI + "]"; myReport.PageHeight = 595; myReport.LogoImagePath = "~/images/img_hallmark.gif"; myReport.myXML = testhtml; myReport.query = "User Report: " + myUser.User_FirstName + " " + myUser.User_LastName + " [" + myUser.User_CAI + "]"; ; myReport.ReportDescription = "User Report"; myReport.GenerateXMLReport(); myReport.OpenPDF(); } break; case "Get User Report": break; } return View(); }
public ActionResult Print(FormCollection collection) { StringBuilder sb = new StringBuilder(); //string userid = collection["ddlUsers"]; //tbl_User myUser = db.GetUserByID(userid); foreach (var item in collection) { try { if (item.ToString().Contains("chk")) //Only check the checkboxes { ViewData[item.ToString()] = collection[item.ToString()].Replace(",false", ""); if (collection[item.ToString()] == "false") { }//do nothing else sb.Append(item.ToString().Replace("chk", "") + ","); } } catch { //Do nothing } } string[] myIds = sb.ToString().Trim(',').Split(','); try { int test = int.Parse(myIds[0]); } catch { ViewData["Message"] = "Please select at least one project item"; return View("Index"); } try { var userdatacollection = userdb.GetUsersHoursForProject(myIds, DateTime.Parse(collection["txtStartDate"]), DateTime.Parse(collection["txtEndDate"])); ViewData["UserDataCollection"] = userdatacollection; if (userdatacollection.Count() > 0) { List<string> ColList = new List<string>(); ColList.Add("Last Name"); ColList.Add("First Name"); ColList.Add("CAI"); ColList.Add("Hours"); decimal totalhours = 0M; List<ReportRow> rows = new List<ReportRow>(); int i = 0; foreach (var item in userdatacollection) { List<ReportCell> cells = new List<ReportCell>(); cells.Add(new ReportCell() { colnum = 0, colspan=1 , rownum = i, value = item.LastName, type = CellType.String}); cells.Add(new ReportCell() { colnum = 1, colspan=1 , rownum = i, value = item.FirstName, type = CellType.String}); cells.Add(new ReportCell() { colnum = 2, colspan=1 , rownum = i, value = item.CAI, type= CellType.String }); cells.Add(new ReportCell() { colnum = 3, colspan=1 , rownum = i, value = item.hours.ToString(), type= CellType.Number}); i++; totalhours += (decimal)item.hours; rows.Add(new ReportRow() { row = cells }); } IPDFReport myReport = new Report(false); float[] HeaderWidths = { 40, 40, 10, 10 }; myReport.ColList = ColList; myReport.ReportRows = rows; myReport.total = totalhours.ToString("#,##0.00"); myReport.Start = DateTime.Parse(collection["txtStartDate"]); myReport.End = DateTime.Parse(collection["txtEndDate"]); myReport.Name = "Project Report"; myReport.ProjectList = projectdb.GetProjectsByIds(myIds); myReport.Headerwidths = HeaderWidths; myReport.filename = "TSD_Project_Report";// +myUser.User_FirstName + "_" + myUser.User_LastName + "_[" + myUser.User_CAI + "]"; myReport.PageHeight = 595; myReport.LogoImagePath = "~/images/img_hallmark.gif"; //myReport.myXML = testhtml; myReport.query = "Project Report: ";// +myUser.User_FirstName + " " + myUser.User_LastName + " [" + myUser.User_CAI + "]"; ; myReport.ReportDescription = "User Report"; myReport.GenerateXMLReport(); myReport.OpenPDF(); } return View("Index"); } catch (Exception ex) { string error = ""; if (ex.Message.Contains("DateTime")) error = "Invalid Date Value"; else error = ex.Message; ViewData["Message"] = error; } return View("Index"); }