public ActionResult ReportLayout(string name) { ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeaderByName(name); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); Dictionary <int, string> DefaultValues = TempData["ReportLayoutDefaultValues"] as Dictionary <int, string>; TempData["ReportLayoutDefaultValues"] = DefaultValues; foreach (var item in lines) { if (DefaultValues != null && DefaultValues.ContainsKey(item.ReportLineId)) { item.DefaultValue = DefaultValues[item.ReportLineId]; } } ReportMasterViewModel vm = new ReportMasterViewModel(); if (TempData["closeOnSelectOption"] != null) { vm.closeOnSelect = (bool)TempData["closeOnSelectOption"]; } vm.ReportHeader = header; vm.ReportLine = lines; vm.ReportHeaderId = header.ReportHeaderId; return(View(vm)); }
public ActionResult PackingReportLayout(string name, int Id = 0) { ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeaderByName(name); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); ReportMasterViewModel vm = new ReportMasterViewModel(); vm.ReportHeader = header; vm.ReportLine = lines; vm.ReportHeaderId = header.ReportHeaderId; ViewBag.DataHeaderId = Id; return(View(vm)); }
public ActionResult Report(int id) { DocumentType Dt = new DocumentType(); Dt = new DocumentTypeService(_unitOfWork).Find(id); PackingSetting SEttings = new PackingSettingService(_unitOfWork).GetPackingSettingForDocument(Dt.DocumentTypeId, (int)System.Web.HttpContext.Current.Session["DivisionId"], (int)System.Web.HttpContext.Current.Session["SiteId"]); Dictionary <int, string> DefaultValue = new Dictionary <int, string>(); //if (!Dt.ReportMenuId.HasValue) // throw new Exception("Report Menu not configured in document types"); if (!Dt.ReportMenuId.HasValue) { return(Redirect((string)System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/GridReport/GridReportLayout/?MenuName=Packing Report&DocTypeId=" + id.ToString())); } Model.Models.Menu menu = new MenuService(_unitOfWork).Find(Dt.ReportMenuId ?? 0); if (menu != null) { ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeaderByName(menu.MenuName); ReportLine Line = new ReportLineService(_unitOfWork).GetReportLineByName("DocumentType", header.ReportHeaderId); if (Line != null) { DefaultValue.Add(Line.ReportLineId, id.ToString()); } ReportLine Site = new ReportLineService(_unitOfWork).GetReportLineByName("Site", header.ReportHeaderId); if (Site != null) { DefaultValue.Add(Site.ReportLineId, ((int)System.Web.HttpContext.Current.Session["SiteId"]).ToString()); } ReportLine Division = new ReportLineService(_unitOfWork).GetReportLineByName("Division", header.ReportHeaderId); if (Division != null) { DefaultValue.Add(Division.ReportLineId, ((int)System.Web.HttpContext.Current.Session["DivisionId"]).ToString()); } //ReportLine Process = new ReportLineService(_unitOfWork).GetReportLineByName("Process", header.ReportHeaderId); //if (Process != null) // DefaultValue.Add(Process.ReportLineId, ((int)SEttings.ProcessId).ToString()); } TempData["ReportLayoutDefaultValues"] = DefaultValue; return(Redirect((string)System.Configuration.ConfigurationManager.AppSettings["JobsDomain"] + "/Report_ReportPrint/ReportPrint/?MenuId=" + Dt.ReportMenuId)); }
public ActionResult GridReportLayout(int?MenuId, string MenuName, int?DocTypeId) { Menu menu = new Menu(); ReportHeader header = null; List <ReportLine> lines = new List <ReportLine>(); if (MenuId != null) { menu = new MenuService(_unitOfWork).Find((int)MenuId); header = new ReportHeaderService(_unitOfWork).GetReportHeaderByName(menu.MenuName); if (header != null) { lines = new ReportLineService(_unitOfWork).GetReportLineList(header.ReportHeaderId).ToList(); } else { new GridReportService().GetGridReportByName(menu.MenuName, ref header, ref lines, null); } } else { new GridReportService().GetGridReportByName(MenuName, ref header, ref lines, null); } if (DocTypeId != null) { ReportLine ReportLineDocType = (from L in lines where L.FieldName == "DocumentType" select L).FirstOrDefault(); ReportLineDocType.DefaultValue = DocTypeId.ToString(); } Dictionary <int, string> DefaultValues = TempData["ReportLayoutDefaultValues"] as Dictionary <int, string>; TempData["ReportLayoutDefaultValues"] = DefaultValues; foreach (var item in lines) { if (DefaultValues != null && DefaultValues.ContainsKey(item.ReportLineId)) { item.DefaultValue = DefaultValues[item.ReportLineId]; } } ReportMasterViewModel vm = new ReportMasterViewModel(); if (TempData["closeOnSelectOption"] != null) { vm.closeOnSelect = (bool)TempData["closeOnSelectOption"]; } vm.ReportHeader = header; vm.ReportLine = lines; vm.ReportHeaderId = header.ReportHeaderId; if (DocTypeId != null) { DocumentType DocType = db.DocumentType.Find(DocTypeId); vm.ReportTitle = DocType.DocumentTypeName + " Report"; } vm.ReportHeaderCompanyDetail = new GridReportService().GetReportHeaderCompanyDetail(); return(View(vm)); }
public JsonResult GridReportFill(FormCollection form) { bool IsDatabaseReport = false; var SubReportDataList = new List <DataTable>(); var SubReportNameList = new List <string>(); DataTable ReportData = new DataTable(); var list = new List <dynamic>(); Dictionary <string, string> ReportFilters = new Dictionary <string, string>(); StringBuilder queryString = new StringBuilder(); string ReportName = (form["ReportHeader.ReportName"].ToString()); ReportHeader header = null; List <ReportLine> lines = new List <ReportLine>(); if (Convert.ToInt32(form["ReportHeaderId"]) != 0) { IsDatabaseReport = true; } if (IsDatabaseReport) { header = new ReportHeaderService(_unitOfWork).GetReportHeaderByName(ReportName); lines = new ReportLineService(_unitOfWork).GetReportLineList(header.ReportHeaderId).ToList(); } else { new GridReportService().GetGridReportByName(ReportName, ref header, ref lines, form); } List <string> SubReportProcList = new List <string>(); ApplicationDbContext Db = new ApplicationDbContext(); if (IsDatabaseReport) { if (header.SqlProc.Contains("Web.") == false) { header.SqlProc = "Web." + header.SqlProc; } } queryString.Append(header.SqlProc); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString.ToString(), sqlConnection); foreach (var item in lines) { if (form[item.FieldName] != null) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } else if (item.SqlParameter == "@LoginDivision") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } } else if (item.FieldName == "Site" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } else if (item.FieldName == "Division" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } else { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? form[item.FieldName].ToString() : "Null")); } } } } } } cmd.CommandTimeout = 2000; SqlDataAdapter sqlDataAapter = new SqlDataAdapter(cmd); ReportHeader DatabaseReportHeader = new ReportHeaderService(_unitOfWork).GetReportHeaderByName(ReportName); if (IsDatabaseReport) { sqlDataAapter.SelectCommand.CommandType = CommandType.StoredProcedure; } else { sqlDataAapter.SelectCommand.CommandType = CommandType.Text; } sqlDataAapter.Fill(ReportData); } ReportData.Columns.Add("SysParamType"); DataRow DRowAggregate = ReportData.NewRow(); DRowAggregate["SysParamType"] = "Aggregate"; List <string> RemoveColumnList = new List <string>(); foreach (DataColumn column in ReportData.Columns) { DataRow[] NullValueColumn = ReportData.Select("[" + column.ColumnName + "] is not null "); if (NullValueColumn.Length == 0) { RemoveColumnList.Add(column.ColumnName); } if (column.DataType.ToString() == "System.Int32" || column.DataType.ToString() == "System.Decimal" || column.DataType.ToString() == "System.Float" || column.DataType.ToString() == "System.Double") { DataRow[] ZeroValueColumn = ReportData.Select("[" + column.ColumnName + "] <> 0 "); if (!RemoveColumnList.Contains(column.ColumnName)) { if (ZeroValueColumn.Length == 0) { RemoveColumnList.Add(column.ColumnName); } } } if (column.ColumnName == form["DealUnitColumnCaption"].ToString()) { DataRow[] DealQtyValueColumn = ReportData.Select("[" + form["DealUnitColumnCaption"].ToString() + "] <> " + "[" + form["UnitColumnCaption"].ToString() + "]"); if (DealQtyValueColumn.Length == 0) { if (!RemoveColumnList.Contains(form["DealUnitColumnCaption"].ToString())) { RemoveColumnList.Add(form["DealUnitColumnCaption"].ToString()); } if (!RemoveColumnList.Contains(form["DealQtyColumnCaption"].ToString())) { RemoveColumnList.Add(form["DealQtyColumnCaption"].ToString()); } } } switch (column.DataType.ToString()) { case "System.Decimal": { DRowAggregate[column.ColumnName] = 2; break; } } } foreach (string ColumnName in RemoveColumnList) { if (ColumnName != "SysParamType") { ReportData.Columns.Remove(ColumnName); } } ReportData.Rows.Add(DRowAggregate); if (ReportData.Rows.Count > 0) { //List<DataRow> Row = ReportData.Rows.Cast<DataRow>().ToList(); //var temp = ReportData.Select().ToList(); //var list = new List<dynamic>(); foreach (DataRow row in ReportData.Rows) { dynamic dyn = new ExpandoObject(); list.Add(dyn); foreach (DataColumn column in ReportData.Columns) { var dic = (IDictionary <string, object>)dyn; dic[column.ColumnName] = row[column]; } } JsonResult json = Json(new { Success = true, Data = list.ToList() }, JsonRequestBehavior.AllowGet); json.MaxJsonLength = int.MaxValue; return(json); } else { ViewBag.Message = "No Record to Print."; return(Json(new { Success = true, Data = list.ToList() }, JsonRequestBehavior.AllowGet)); } }
public ActionResult ProcedureExcute(FormCollection form, string ReportFileType) { DataTable ReportData = new DataTable(); Dictionary <string, string> ReportFilters = new Dictionary <string, string>(); StringBuilder queryString = new StringBuilder(); string ReportHeaderId = (form["ReportHeaderId"].ToString()); ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeader(Convert.ToInt32(ReportHeaderId)); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); ApplicationDbContext Db = new ApplicationDbContext(); queryString.Append(db.strSchemaName + "." + header.SqlProc); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString.ToString(), sqlConnection); foreach (var item in lines) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } else if (item.SqlParameter == "@LoginDivision") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } } else if (item.FieldName == "Site" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } else if (item.FieldName == "Division" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } else { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? form[item.FieldName].ToString() : "Null")); } } } } } cmd.CommandTimeout = 200; SqlDataAdapter sqlDataAapter = new SqlDataAdapter(cmd); sqlDataAapter.SelectCommand.CommandType = CommandType.StoredProcedure; dsRep.EnforceConstraints = false; sqlDataAapter.Fill(ReportData); } var Paralist = new List <string>(); foreach (var item in lines) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { } else { if (item.SqlParameter != "" && item.SqlParameter != null && form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } else if (item.DataType == "Single Select") { if (!string.IsNullOrEmpty(item.ListItem)) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); } else if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else if (item.DataType == "Multi Select") { if (form[item.FieldName].ToString() != "") { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else { if (form[item.FieldName].ToString() != "") { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } } } } XElement s = new XElement(CustomStringOp.CleanCode(header.ReportName)); XElement Name = new XElement("Filters"); foreach (var Rec in ReportFilters) { Name.Add(new XElement(CustomStringOp.CleanCode(Rec.Key), Rec.Value)); } s.Add(Name); LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).FindByName(TransactionDoctypeConstants.Report).DocumentTypeId, DocId = header.ReportHeaderId, Narration = header.ReportName, ActivityType = (int)ActivityTypeContants.Report, xEModifications = s, })); if (ReportData.Rows.Count > 0) { if (ReportData.Rows[0][0].ToString() == "Success") { return(View("Success")); } else { ViewBag.Error = ReportData.Rows[0][0].ToString(); return(View("Error")); } } else { ViewBag.Message = "No Record to Print."; return(View("Close")); } }
public ActionResult FetchReport(int ID, string ReportType, Dictionary <string, string> nameValuePairs, int?ReportColumnId) { int SubReportId = ID; SubReport sr = new SubReportService(_unitOfWork).Find(ID); ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeader(sr.ReportHeaderId); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(); var Filters = (Dictionary <string, string>)TempData["TestTemp"]; foreach (var item in lines.Where(m => m.Type == "2.Filter")) { string value = ""; bool Success = Filters.TryGetValue(item.SqlParameter, out value); if (Success) { cmd.Parameters.AddWithValue(item.SqlParameter, value); } } if (!string.IsNullOrEmpty(ReportType)) { cmd.Parameters.AddWithValue("ReportType", ReportType); } else { cmd.Parameters.AddWithValue("ReportType", sr.SubReportName); } DataTable dt = new DataTable(); dt.Clear(); dt.Columns.Add("Name"); dt.Columns.Add("Value"); if (ReportColumnId.HasValue && ReportColumnId.Value > 0) { var rc = new ReportColumnService(_unitOfWork).Find(ReportColumnId.Value); var rcList = new ReportColumnService(_unitOfWork).GetREportColumnListFromReportColumn(ReportColumnId.Value); var Records = (from p in nameValuePairs join t in rcList on p.Key equals t.FieldName select new { key = t.ReportColumnId, val = p.Value, }).ToDictionary(m => m.key, m => m.val); if (Records.Count > 0) { foreach (var item in Records) { DataRow dr = dt.NewRow(); dr["Name"] = item.Key; dr["Value"] = item.Value; dt.Rows.Add(dr); } } DataRow SubReportTypeRow = dt.NewRow(); SubReportTypeRow["Name"] = "SubReportId"; SubReportTypeRow["Value"] = rc.SubReportId; dt.Rows.Add(SubReportTypeRow); } DataRow ReportHeaderIdRow = dt.NewRow(); ReportHeaderIdRow["Name"] = "ReportColumnId"; ReportHeaderIdRow["Value"] = ReportColumnId; dt.Rows.Add(ReportHeaderIdRow); DataRow SubReportHeaderId = dt.NewRow(); SubReportHeaderId["Name"] = "NextSubReportId"; SubReportHeaderId["Value"] = ID; dt.Rows.Add(SubReportHeaderId); cmd.Parameters.AddWithValue("ReportColumnDictionary", dt); cmd.CommandText = db.strSchemaName + "." + header.SqlProc; cmd.Connection = sqlConnection; cmd.CommandTimeout = 180; SqlDataAdapter sqlDataAapter = new SqlDataAdapter(cmd); sqlDataAapter.SelectCommand.CommandType = CommandType.StoredProcedure; dsRep.EnforceConstraints = false; DataSet ds = new DataSet(); sqlDataAapter.Fill(ds); TempData.Keep("TestTemp"); AddIncrement(ds); var tem = JsonConvert.SerializeObject(ds.Tables[0]); var ColNames = GetColumnNames(header.ReportHeaderId, string.IsNullOrEmpty(ReportType) ? sr.SubReportName : ReportType); var ReportTypes = new SubReportService(_unitOfWork).GetSubReportList(header.ReportHeaderId); return(Json(new { success = true, data = tem, columns = ColNames, reportType = ReportTypes.Select(m => m.SubReportName).ToList(), selectedReportType = string.IsNullOrEmpty(ReportType) ? sr.SubReportName : ReportType, ReportName = header.ReportName })); //return View("GridReport"); } }
public ActionResult ReportPrint(FormCollection form, string ReportFileType) { var SubReportDataList = new List <DataTable>(); var SubReportNameList = new List <string>(); DataTable ReportData = new DataTable(); Dictionary <string, string> ReportFilters = new Dictionary <string, string>(); StringBuilder queryString = new StringBuilder(); string ReportHeaderId = (form["ReportHeaderId"].ToString()); ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeader(Convert.ToInt32(ReportHeaderId)); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); if (string.IsNullOrEmpty(header.ReportSQL)) { //List<string> SubReportProcList = new ReportHeaderService(_unitOfWork).GetSubReportProcList (Convert.ToInt32(ReportHeaderId)); List <string> SubReportProcList = new List <string>(); ApplicationDbContext Db = new ApplicationDbContext(); queryString.Append(db.strSchemaName + "." + header.SqlProc); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString.ToString(), sqlConnection); foreach (var item in lines) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } //cmd.Parameters.AddWithValue(item.SqlParameter, 17); else if (item.SqlParameter == "@LoginDivision") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } } else if (item.FieldName == "Site" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } else if (item.FieldName == "Division" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } else { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? form[item.FieldName].ToString() : "Null")); } } } } } cmd.CommandTimeout = 200; SqlDataAdapter sqlDataAapter = new SqlDataAdapter(cmd); sqlDataAapter.SelectCommand.CommandType = CommandType.StoredProcedure; dsRep.EnforceConstraints = false; sqlDataAapter.Fill(ReportData); if (ReportData.Rows.Count > 0) { if (ReportData.Columns.Contains("SubReportProcList")) { SubReportProcList.Add(ReportData.Rows[0]["SubReportProcList"].ToString()); } DataTable SubRepData = new DataTable(); String SubReportProc; if (SubReportProcList != null) { if (SubReportProcList.Count > 0) { SubRepData = ReportData.Copy(); SqlConnection Con = new SqlConnection(connectionString); while (SubRepData.Rows.Count > 0 && SubRepData.Columns.Contains("SubReportProcList")) { SubReportProc = SubRepData.Rows[0]["SubReportProcList"].ToString(); if (SubReportProc != "") { String query = db.strSchemaName + "." + SubReportProc; SqlDataAdapter sqlDataAapter1 = new SqlDataAdapter(query.ToString(), Con); sqlDataAapter1.SelectCommand.CommandTimeout = 200; dsRep.EnforceConstraints = false; SubRepData.Reset(); sqlDataAapter1.Fill(SubRepData); DataTable SubDataTable = new DataTable(); SubDataTable = SubRepData.Copy(); string SubRepName = ""; if (SubDataTable.Rows.Count > 0) { SubReportDataList.Add(SubDataTable); SubRepName = (string)SubDataTable.Rows[0]["ReportName"]; SubReportNameList.Add(SubRepName); } SubDataTable.Dispose(); } else { //SubRepData = null; break; } } } } } } if (ReportData.Rows.Count > 0) { var Paralist = new List <string>(); foreach (var item in lines) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { } else { if (item.SqlParameter != "" && item.SqlParameter != null && form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } else if (item.DataType == "Single Select") { if (!string.IsNullOrEmpty(item.ListItem)) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); } else if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } //else if (item.DataType == "Constant Value") //{ // //if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); } //} else if (item.DataType == "Multi Select") { if (form[item.FieldName].ToString() != "") { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else { if (form[item.FieldName].ToString() != "") { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } } } } string mimtype; ReportGenerateService c = new ReportGenerateService(); byte[] BAR; //BAR = c.ReportGenerate(ReportData, out mimtype, ReportFileType, Paralist, SubReportDataList); BAR = c.ReportGenerate(ReportData, out mimtype, ReportFileType, Paralist, SubReportDataList, null, SubReportNameList, User.Identity.Name); XElement s = new XElement(CustomStringOp.CleanCode(header.ReportName)); XElement Name = new XElement("Filters"); foreach (var Rec in ReportFilters) { Name.Add(new XElement(CustomStringOp.CleanCode(Rec.Key), Rec.Value)); } s.Add(Name); LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).Find(TransactionDoctypeConstants.Report).DocumentTypeId, DocId = header.ReportHeaderId, ActivityType = (int)ActivityTypeContants.Report, xEModifications = s, })); if (BAR.Length == 1) { ViewBag.Message = "Report Name is not define."; return(View("Close")); } else if (BAR.Length == 2) { ViewBag.Message = "Report Title is not define."; return(View("Close")); } else { //if (mimtype != "application/pdf") if (mimtype == "application/vnd.ms-excel") { return(File(BAR, mimtype, header.ReportName + ".xls")); } else { return(File(BAR, mimtype)); } } } else { ViewBag.Message = "No Record to Print."; return(View("Close")); } } else { List <ReportParameter> Params = new List <ReportParameter>(); string ReportName = ""; ApplicationDbContext Db = new ApplicationDbContext(); foreach (var item in lines) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { ReportParameter Param = new ReportParameter(); Param.Name = CustomStringOp.CleanCode(item.SqlParameter); Param.Values.Add(Convert.ToString(System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId])); Params.Add(Param); } else if (item.SqlParameter == "@LoginDivision") { ReportParameter Param = new ReportParameter(); Param.Name = CustomStringOp.CleanCode(item.SqlParameter); Param.Values.Add(Convert.ToString(System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId])); Params.Add(Param); } } else if (item.FieldName == "Site" && form[item.FieldName].ToString() == "") { ReportParameter Param = new ReportParameter(); Param.Name = CustomStringOp.CleanCode(item.SqlParameter); Param.Values.Add(Convert.ToString(System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId])); Params.Add(Param); } else if (item.FieldName == "Division" && form[item.FieldName].ToString() == "") { ReportParameter Param = new ReportParameter(); Param.Name = CustomStringOp.CleanCode(item.SqlParameter); Param.Values.Add(Convert.ToString(System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId])); Params.Add(Param); } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { ReportParameter Param = new ReportParameter(); Param.Name = CustomStringOp.CleanCode(item.SqlParameter); Param.Values.Add((form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); Params.Add(Param); } else { ReportParameter Param = new ReportParameter(); Param.Name = CustomStringOp.CleanCode(item.SqlParameter); Param.Values.Add((form[item.FieldName].ToString() != "" ? form[item.FieldName].ToString() : "Null")); Params.Add(Param); } } } } } int i = 0; foreach (var item in lines) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { } else { if (item.SqlParameter != "" && item.SqlParameter != null && form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { ReportParameter Param = new ReportParameter(); Param.Name = "FilterStr" + ++i; Param.Values.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); Params.Add(Param); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } else if (item.DataType == "Single Select") { if (!string.IsNullOrEmpty(item.ListItem) && !string.IsNullOrEmpty(form[item.FieldName])) { ReportParameter Param = new ReportParameter(); Param.Name = "FilterStr" + ++i; Param.Values.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); Params.Add(Param); } else if (!string.IsNullOrEmpty(form[item.FieldName].ToString()) && !string.IsNullOrEmpty(form[item.FieldName + "Names"])) { ReportParameter Param = new ReportParameter(); Param.Name = "FilterStr" + ++i; Param.Values.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); Params.Add(Param); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else if (item.DataType == "Multi Select") { if (form[item.FieldName].ToString() != "" && !string.IsNullOrEmpty(form[item.FieldName + "Names"])) { ReportParameter Param = new ReportParameter(); Param.Name = "FilterStr" + ++i; Param.Values.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); Params.Add(Param); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else { if (form[item.FieldName].ToString() != "" && !string.IsNullOrEmpty(form[item.FieldName])) { ReportParameter Param = new ReportParameter(); Param.Name = "FilterStr" + ++i; Param.Values.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); Params.Add(Param); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } } } } var uid = Guid.NewGuid(); using (ApplicationDbContext context = new ApplicationDbContext()) { foreach (var item in Params) { ReportUIDValues rid = new ReportUIDValues(); rid.UID = uid; rid.Type = item.Name; rid.Value = item.Values[0]; rid.ObjectState = Model.ObjectState.Added; context.ReportUIDValues.Add(rid); } context.SaveChanges(); } ReportName = Db.Database.SqlQuery <string>(header.ReportSQL.Replace("REPORTUID", uid.ToString())).FirstOrDefault(); using (ApplicationDbContext context = new ApplicationDbContext()) { var Items = context.ReportUIDValues.Where(m => m.UID == uid).ToList(); foreach (var item in Items) { item.ObjectState = Model.ObjectState.Deleted; context.ReportUIDValues.Remove(item); } context.SaveChanges(); } ReportParameter UserName = new ReportParameter(); UserName.Name = "PrintedBy"; UserName.Values.Add(User.Identity.Name); Params.Add(UserName); ReportParameter ConString = new ReportParameter(); ConString.Name = "DatabaseConnectionString"; ConString.Values.Add(connectionString); //Data Source=192.168.2.17;Initial Catalog=RUG;Integrated Security=false; User Id=sa; pwd= Params.Add(ConString); string mimtype; ReportGenerateService c = new ReportGenerateService(); byte[] BAR; BAR = c.ReportGenerateCustom(out mimtype, ReportFileType, User.Identity.Name, Params, ReportName); XElement s = new XElement(CustomStringOp.CleanCode(header.ReportName)); XElement Name = new XElement("Filters"); foreach (var Rec in ReportFilters) { Name.Add(new XElement(CustomStringOp.CleanCode(Rec.Key), Rec.Value)); } s.Add(Name); LogActivity.LogActivityDetail(LogVm.Map(new ActiivtyLogViewModel { DocTypeId = new DocumentTypeService(_unitOfWork).Find(TransactionDoctypeConstants.Report).DocumentTypeId, DocId = header.ReportHeaderId, ActivityType = (int)ActivityTypeContants.Report, xEModifications = s, })); if (BAR.Length == 1) { ViewBag.Message = "Report Name is not define."; return(View("Close")); } else if (BAR.Length == 2) { ViewBag.Message = "Report Title is not define."; return(View("Close")); } else { if (mimtype == "application/vnd.ms-excel") { return(File(BAR, mimtype, header.ReportName + ".xls")); } else { return(File(BAR, mimtype)); } } } }
public ActionResult ReportGrid(FormCollection form) { var SubReportDataList = new List <DataTable>(); var SubReportNameList = new List <string>(); DataTable ReportData = new DataTable(); Dictionary <string, string> ReportFilters = new Dictionary <string, string>(); StringBuilder queryString = new StringBuilder(); string ReportHeaderId = (form["ReportHeaderId"].ToString()); ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeader(Convert.ToInt32(ReportHeaderId)); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); Dictionary <string, string> ReportFilters2 = new Dictionary <string, string>(); List <string> SubReportProcList = new List <string>(); ApplicationDbContext Db = new ApplicationDbContext(); queryString.Append(db.strSchemaName + "." + header.SqlProc); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString.ToString(), sqlConnection); foreach (var item in lines) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } //cmd.Parameters.AddWithValue(item.SqlParameter, 17); else if (item.SqlParameter == "@LoginDivision") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } } else if (item.FieldName == "Site" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); } else if (item.FieldName == "Division" && form[item.FieldName].ToString() == "") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } else { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? form[item.FieldName].ToString() : "Null")); } } } if (cmd.Parameters.Contains(item.SqlParameter)) { ReportFilters2.Add(item.SqlParameter, cmd.Parameters[item.SqlParameter].Value.ToString()); } } } cmd.CommandTimeout = 200; SqlDataAdapter sqlDataAapter = new SqlDataAdapter(cmd); sqlDataAapter.SelectCommand.CommandType = CommandType.StoredProcedure; dsRep.EnforceConstraints = false; DataSet ds = new DataSet(); sqlDataAapter.Fill(ds); AddIncrement(ds); TempData["TestTemp"] = ReportFilters2; var tem = JsonConvert.SerializeObject(ds.Tables[0]); var ColNames = GetColumnNames(header.ReportHeaderId, cmd.Parameters["@ReportType"].Value.ToString()); var ReportTypes = new SubReportService(_unitOfWork).GetSubReportList(header.ReportHeaderId); ViewBag.ReportTypes = ReportTypes.Select(m => new SubReportViewModel { SubReportName = m.SubReportName }).ToList(); ViewBag.SelectedReportType = cmd.Parameters["@ReportType"].Value.ToString(); ViewBag.ReportDate = tem; ViewBag.Id = ReportTypes.Where(m => m.ReportHeaderId == header.ReportHeaderId && m.SubReportName == cmd.Parameters["@ReportType"].Value.ToString()).FirstOrDefault().SubReportId; ViewBag.ColumnNames = JsonConvert.SerializeObject(ColNames); var Paralist = new List <Tuple <string, string, Dictionary <string, string>, bool> >(); foreach (var item in lines) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { } else if (item.Type == "2.Filter") { if (item.SqlParameter != "" && item.SqlParameter != null && form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(new Tuple <string, string, Dictionary <string, string>, bool>(item.DisplayName, item.SqlParameter, new Dictionary <string, string>() { { form[item.FieldName].ToString(), form[item.FieldName].ToString() } }, item.IsMandatory)); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } else if (item.DataType == "Single Select") { if (!string.IsNullOrEmpty(item.ListItem)) { Paralist.Add(new Tuple <string, string, Dictionary <string, string>, bool>(item.DisplayName, item.SqlParameter, new Dictionary <string, string>() { { form[item.FieldName].ToString(), form[item.FieldName].ToString() } }, item.IsMandatory)); } else if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(new Tuple <string, string, Dictionary <string, string>, bool>(item.DisplayName, item.SqlParameter, new Dictionary <string, string>() { { form[item.FieldName].ToString(), form[item.FieldName + "Names"].ToString() } }, item.IsMandatory)); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else if (item.DataType == "Multi Select") { Dictionary <string, string> kevval = new Dictionary <string, string>(); var Count = form[item.FieldName].Split(',').Count(); for (int i = 0; i < Count; i++) { var temp = form[item.FieldName + "dic[" + i + "].Key"]; var tempVal = form[item.FieldName + "dic[" + i + "].Value"]; if (!string.IsNullOrEmpty(temp) && !string.IsNullOrEmpty(tempVal)) { kevval.Add(temp, tempVal); } } if (form[item.FieldName].ToString() != "") { Paralist.Add(new Tuple <string, string, Dictionary <string, string>, bool>(item.DisplayName, item.SqlParameter, kevval, item.IsMandatory)); ReportFilters.Add(item.DisplayName, form[item.FieldName + "Names"].ToString()); } } else { if (form[item.FieldName].ToString() != "") { Paralist.Add(new Tuple <string, string, Dictionary <string, string>, bool>(item.DisplayName, item.SqlParameter, new Dictionary <string, string>() { { form[item.FieldName].ToString(), form[item.FieldName].ToString() } }, item.IsMandatory)); ReportFilters.Add(item.DisplayName, form[item.FieldName].ToString()); } } } } } ViewBag.ReportFilters = Paralist; ViewBag.ReportName = header.ReportName; return(View("GridReport")); } }
public ActionResult ReportPrint(FormCollection form, string ReportFileType) { var SubReportDataList = new List <DataTable>(); DataTable ReportData = new DataTable(); StringBuilder queryString = new StringBuilder(); string ReportHeaderId = (form["ReportHeaderId"].ToString()); ReportHeader header = new ReportHeaderService(_unitOfWork).GetReportHeader(Convert.ToInt32(ReportHeaderId)); List <ReportLine> lines = _ReportLineService.GetReportLineList(header.ReportHeaderId).ToList(); List <string> SubReportProcList = new ReportHeaderService(_unitOfWork).GetSubReportProcList(Convert.ToInt32(ReportHeaderId)); ApplicationDbContext Db = new ApplicationDbContext(); queryString.Append(db.strSchemaName + "." + header.SqlProc); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { SqlCommand cmd = new SqlCommand(queryString.ToString(), sqlConnection); foreach (var item in lines) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { //cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); cmd.Parameters.AddWithValue(item.SqlParameter, 17); } else if (item.SqlParameter == "@LoginDivision") { cmd.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } else { cmd.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? form[item.FieldName].ToString() : "Null")); } } } } } SqlDataAdapter sqlDataAapter = new SqlDataAdapter(cmd); sqlDataAapter.SelectCommand.CommandType = CommandType.StoredProcedure; dsRep.EnforceConstraints = false; sqlDataAapter.Fill(ReportData); if (SubReportProcList != null) { if (SubReportProcList.Count > 0) { foreach (var SubReportProc in SubReportProcList) { SqlCommand cmd1 = new SqlCommand("[Web].[" + SubReportProc + "]", sqlConnection); DataTable SubReport1Data = new DataTable(); foreach (var item in lines) { if (item.SqlParameter != "" && item.SqlParameter != null) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { if (item.SqlParameter == "@LoginSite") { //cmd1.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginSiteId]); cmd.Parameters.AddWithValue(item.SqlParameter, 17); } else if (item.SqlParameter == "@LoginDivision") { cmd1.Parameters.AddWithValue(item.SqlParameter, (int)System.Web.HttpContext.Current.Session[SessionNameConstants.LoginDivisionId]); } } else { if (form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { cmd1.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } else { cmd1.Parameters.AddWithValue(item.SqlParameter, (form[item.FieldName].ToString() != "" ? String.Format("{0:MMMM dd yyyy}", form[item.FieldName].ToString()) : "Null")); } } } } } SqlDataAdapter sqlDataAapter1 = new SqlDataAdapter(cmd1); sqlDataAapter1.SelectCommand.CommandType = CommandType.StoredProcedure; dsRep.EnforceConstraints = false; sqlDataAapter1.Fill(SubReport1Data); SubReportDataList.Add(SubReport1Data); SubReport1Data = null; } } } } if (ReportData.Rows.Count > 0) { var Paralist = new List <string>(); foreach (var item in lines) { if (item.SqlParameter == "@LoginSite" || item.SqlParameter == "@LoginDivision") { } else { if (item.SqlParameter != "" && item.SqlParameter != null && form[item.FieldName].ToString() != "") { if (item.DataType == "Date") { if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName].ToString()); } } else if (item.DataType == "Single Select") { if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); } } else if (item.DataType == "Constant Value") { //if (!string.IsNullOrEmpty(form[item.FieldName].ToString())) { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); } } else { if (form[item.FieldName].ToString() != "") { Paralist.Add(item.DisplayName + " : " + form[item.FieldName + "Names"].ToString()); } } } } } string mimtype; ReportGenerateService c = new ReportGenerateService(); byte[] BAR; BAR = c.ReportGenerate(ReportData, out mimtype, ReportFileType, Paralist, SubReportDataList); if (BAR.Length == 1) { ViewBag.Message = "Report Name is not define."; return(View("Close")); } else if (BAR.Length == 2) { ViewBag.Message = "Report Title is not define."; return(View("Close")); } else { if (mimtype != "application/pdf") { return(File(BAR, mimtype, "Sale Order Report")); } else { return(File(BAR, mimtype)); } } } else { ViewBag.Message = "No Record to Print."; return(View("Close")); } }