public FileResult GridExport(string format, int j72id, int master_pid, string master_entity, string pids) { var gridState = this.Factory.j72TheGridTemplateBL.LoadState(j72id, Factory.CurrentUser.pid); gridState.j72MasterEntity = master_entity; gridState.MasterPID = master_pid; var mq = new BO.myQuery(gridState.j72Entity); if (String.IsNullOrEmpty(pids) == false) { mq.SetPids(pids); } System.Data.DataTable dt = prepare_datatable(ref mq, gridState); string filepath = Factory.App.TempFolder + "\\" + BO.BAS.GetGuid() + "." + format; var cExport = new UI.dataExport(); string strFileClientName = "gridexport_" + mq.Prefix + "." + format; if (format == "csv") { if (cExport.ToCSV(dt, filepath, mq)) { return(File(System.IO.File.ReadAllBytes(filepath), "application/CSV", strFileClientName)); } } if (format == "xlsx") { if (cExport.ToXLSX(dt, filepath, mq)) { return(File(System.IO.File.ReadAllBytes(filepath), "application/vnd.ms-excel", strFileClientName)); } } return(null); }
public string GetWorkTable(string entity, string tableid, string param1, string pids, string delete_function, string edit_function, string queryfield, string queryvalue, string master_entity, int master_pid) { var mq = new BO.myQuery(entity); mq.SetPids(pids); var grid = Factory.j72TheGridTemplateBL.LoadState(entity, Factory.CurrentUser.pid, master_entity); if (grid == null) { mq.explicit_columns = _colsProvider.getDefaultPallete(false, mq); } else { mq.explicit_columns = _colsProvider.ParseTheGridColumns(mq.Prefix, grid.j72Columns); mq.explicit_orderby = grid.j75SortDataField; if (grid.j75SortDataField != null && grid.j75SortOrder != null) { mq.explicit_orderby += " " + grid.j75SortOrder; } } mq.InhaleMasterEntityQuery(master_entity, master_pid); if (string.IsNullOrEmpty(queryfield) == false) { BO.Reflexe.SetPropertyValue(mq, queryfield, queryvalue); } var dt = Factory.gridBL.GetList(mq); var intRows = dt.Rows.Count; var sb = new System.Text.StringBuilder(); sb.Append(string.Format("<table id='{0}' class='table table-sm table-hover'>", tableid)); sb.Append("<thead><tr class='bg-light'>"); if (edit_function != null) { sb.Append(("<th></th>")); } foreach (var c in mq.explicit_columns) { if (c.NormalizedTypeName == "num") { sb.Append(string.Format("<th style='text-align:right;'>{0}</th>", c.Header)); } else { sb.Append(string.Format("<th>{0}</th>", c.Header)); } } if (delete_function != null) { sb.Append(("<th></th>")); } sb.Append("</tr></thead>"); sb.Append("<tbody>"); for (int i = 0; i < intRows; i++) { sb.Append(string.Format("<tr data-v='{0}'>", dt.Rows[i]["pid"])); if (edit_function != null) { sb.Append(string.Format("<td><button type='button' class='btn btn-sm btn-light' onclick='{0}({1})'>Upravit</button></td>", edit_function, dt.Rows[i]["pid"])); } foreach (var col in mq.explicit_columns) { if (col.NormalizedTypeName == "num") { sb.Append(string.Format("<td style='text-align: right;'>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col))); } else { sb.Append(string.Format("<td>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col))); } } if (delete_function != null) { sb.Append(string.Format("<td><button type='button' class='btn btn-sm btn-danger' title='Odstranit řádek' onclick='{0}({1})'>×</button></td>", delete_function, dt.Rows[i]["pid"])); } sb.Append("</tr>"); } sb.Append("</tbody>"); sb.Append("</table>"); return(sb.ToString()); }
public string GetHtml4TheCombo(string entity, string tableid, string param1, string pids, string filterflag, string searchstring, string masterprefix, int masterpid) //Vrací HTML zdroj tabulky pro MyCombo { var mq = new BO.myQuery(entity); mq.SetPids(pids); mq.query_by_entity_prefix = param1; mq.IsRecordValid = true; //v combo nabídce pouze časově platné záznamy if (filterflag == "1") { mq.SearchString = searchstring; //filtrování na straně serveru mq.TopRecordsOnly = 50; //maximálně prvních 50 záznamů, které vyhovují podmínce } var cols = _colsProvider.getDefaultPallete(true, mq); mq.explicit_columns = cols; mq.explicit_orderby = BL.TheEntities.ByPrefix(mq.Prefix).SqlOrderByCombo; switch (mq.Prefix) { case "p18": mq.p18flag = BO.BAS.InInt(param1); mq.explicit_orderby = "a.p18Code"; if (masterprefix == "p25" && masterpid == 0) //v recepturách je kódy operací povinné zobrazovat v kontextu k typu zařízení { return("<p>Na vstupu chybí vybrat typ zařízení.</p>"); } break; } mq.InhaleMasterEntityQuery(masterprefix, masterpid); var dt = Factory.gridBL.GetList(mq); var intRows = dt.Rows.Count; var s = new System.Text.StringBuilder(); if (mq.TopRecordsOnly > 0) { if (intRows >= mq.TopRecordsOnly) { s.AppendLine(string.Format("<small style='margin-left:10px;'>Zobrazeno prvních {0} záznamů. Zpřesněte filtrovací podmínku.</small>", intRows)); } else { s.AppendLine(string.Format("<small style='margin-left:10px;'>Počet záznamů: {0}.</small>", intRows)); } } s.Append(string.Format("<table id='{0}' class='table table-hover'>", tableid)); s.Append("<thead><tr>"); foreach (var col in cols) { s.Append(string.Format("<th>{0}</th>", col.Header)); } s.Append(string.Format("</tr></thead><tbody id='{0}_tbody'>", tableid)); for (int i = 0; i < intRows; i++) { s.Append(string.Format("<tr class='txz' data-v='{0}'", dt.Rows[i]["pid"])); if (mq.Prefix == "p18" || mq.Prefix == "p19" || mq.Prefix == "p21" || mq.Prefix == "p26" || mq.Prefix == "p10" || mq.Prefix == "p13" || mq.Prefix == "p12" || mq.Prefix == "p11") { //po výběru hodnoty z comba bude SelectedText kód + název a nikoliv hodnota prvního sloupce s.Append(string.Format(" data-t='{0} - {1}'", dt.Rows[i]["a__" + mq.Entity + "__" + mq.Prefix + "Code"], dt.Rows[i]["a__" + mq.Entity + "__" + mq.Prefix + "Name"])); } //if (mq.Prefix == "p51") //{ // s.Append(string.Format(" data-t='{0} - {1} ## {2}'", dt.Rows[i]["a__p51Order__p51Code"], dt.Rows[i]["a__p51Order__p51Name"], dt.Rows[i]["p51_p28_p28Company_p28Name"])); //} s.Append(">"); foreach (var col in cols) { if (col.NormalizedTypeName == "num") { s.Append(string.Format("<td style='text-align:right;'>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col))); } else { s.Append(string.Format("<td>{0}</td>", BO.BAS.ParseCellValueFromDb(dt.Rows[i], col))); } } s.Append("</tr>"); } s.Append("</tbody></table>"); return(s.ToString()); }
public IActionResult p41Timeline(string d) { var v = new Models.p41TimelineViewModel(); if (String.IsNullOrEmpty(d) == true) { v.CurrentDate = DateTime.Today; } else { v.CurrentDate = BO.BAS.String2Date(d); } v.HourFrom = Factory.CBL.LoadUserParamInt("p41Timeline-hourfrom", 6); v.HourUntil = Factory.CBL.LoadUserParamInt("p41Timeline-houruntil", 20); v.localQuery = new p41TimelineQuery(); v.localQuery.SelectedP26IDs = Factory.CBL.LoadUserParam("p41Timeline-p26ids"); //v.localQuery.SelectedP26Names = Factory.CBL.LoadUserParam("p41Timeline-p26names"); v.localQuery.SelectedP27IDs = Factory.CBL.LoadUserParam("p41Timeline-p27ids"); //v.localQuery.SelectedP27Names = Factory.CBL.LoadUserParam("p41Timeline-p27names"); v.localQuery.SelectedB02IDs = Factory.CBL.LoadUserParam("p41Timeline-b02ids"); v.localQuery.SelectedB02Names = Factory.CBL.LoadUserParam("p41Timeline-b02names"); v.localQuery.IsPoPre = Factory.CBL.LoadUserParamBool("p41Timeline-ispopre", true); v.localQuery.IsTo = Factory.CBL.LoadUserParamBool("p41Timeline-isto", true); v.localQuery.IsPoPost = Factory.CBL.LoadUserParamBool("p41Timeline-ispopost", true); var mq = new BO.myQuery("p26Msz"); mq.IsRecordValid = true; if (v.localQuery.SelectedP26IDs != "") { mq.SetPids(v.localQuery.SelectedP26IDs); } v.lisP26 = Factory.p26MszBL.GetList(mq).ToList(); if (string.IsNullOrEmpty(v.localQuery.SelectedP26IDs) == false) { v.localQuery.SelectedP26Names = string.Join(",", v.lisP26.Select(p => p.p26Name)); } mq = new BO.myQuery("p27MszUnit"); mq.IsRecordValid = true; if (string.IsNullOrEmpty(v.localQuery.SelectedP26IDs) == false) { mq.p26ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedP26IDs); } if (string.IsNullOrEmpty(v.localQuery.SelectedP27IDs) == false) { mq.SetPids(v.localQuery.SelectedP27IDs); } v.lisP27 = Factory.p27MszUnitBL.GetList(mq).ToList(); if (string.IsNullOrEmpty(v.localQuery.SelectedP27IDs) == false) { v.localQuery.SelectedP27Names = string.Join(",", v.lisP27.Select(p => p.p27Name)); } mq = new BO.myQuery("p41Task"); mq.DateBetween = v.CurrentDate; mq.DateBetweenDays = 1; mq.p18flags = new List <int>() { 999 }; if (v.localQuery.IsPoPre) { mq.p18flags.Add(2); } if (v.localQuery.IsTo) { mq.p18flags.Add(1); } if (v.localQuery.IsPoPost) { mq.p18flags.Add(3); } mq.b02ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedB02IDs); mq.p26ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedP26IDs); mq.p27ids = BO.BAS.ConvertString2ListInt(v.localQuery.SelectedP27IDs); mq.explicit_orderby = "a.p41PlanStart"; //je důležité setřídit zakázky podle času-od, aby se v grid matici načítali postupně po řádcích! v.Tasks = Factory.p41TaskBL.GetList(mq).Where(p => (p.p41PlanStart >= v.CurrentDT1 && p.p41PlanStart <= v.CurrentDT2) || (p.p41PlanEnd >= v.CurrentDT1 && p.p41PlanEnd <= v.CurrentDT2)); //.OrderBy(p=>p.p41PlanStart); v.Slots = new List <Slot>(); Slot lastSlot = null; foreach (BO.p41Task task in v.Tasks) { //var slot = new Slot() { p41ID = task.pid,p27ID=task.p27ID,Start=task.p41PlanStart.AddMinutes(task.p41DurationPoPre),End=task.p41PlanEnd.AddMinutes(-1*task.p41DurationPoPost),CssName="onetask" }; var slot = new Slot() { p41ID = task.pid, p27ID = task.p27ID, Start = task.p41PlanStart, End = task.p41PlanEnd, CssName = "onetask", p41Code = task.p41Code, b02Color = task.b02Color, b02Name = task.b02Name }; slot.Title = task.p11Code + ": " + BO.BAS.ObjectDateTime2String(slot.Start, "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(slot.End, "HH:mm") + ": " + BO.BAS.OM2(task.p41Name, 30); slot.DurationHours = task.DurationHours; if (task.p41Duration > task.p41DurationPoPre + task.p41DurationPoPost) { slot.TitleClear = BO.BAS.ObjectDateTime2String(task.p41PlanStart.AddMinutes(task.p41DurationPoPre), "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(task.p41PlanEnd.AddMinutes(-1 * task.p41DurationPoPost), "HH:mm"); } if (slot.Start < v.CurrentDT1) { slot.Start = v.CurrentDT1; slot.CssName = "onetask_overday"; } if (slot.End > v.CurrentDT2) { slot.End = v.CurrentDT2; slot.CssName = "onetask_overday"; } slot.ColStart = (slot.Start.Hour * 60 + slot.Start.Minute) / 10; if (task.p41Code.Contains("PRE")) { slot.CssName = "pretask"; if (lastSlot != null && (slot.ColStart + slot.ColSpan > lastSlot.ColStart)) { slot.ColSpanKorekce = -1; } } if (task.p41Code.Contains("POST")) { slot.CssName = "posttask"; if (lastSlot != null && (slot.ColStart < lastSlot.ColStart + lastSlot.ColSpan)) { slot.ColStart += 1; } } if (task.p41DurationPoPre > 0 && task.p41PlanStart >= v.CurrentDT1) { slot.TitlePre = "PO-PRE: " + BO.BAS.ObjectDateTime2String(task.p41PlanStart, "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(task.p41PlanStart.AddMinutes(task.p41DurationPoPre), "HH:mm"); if (task.p41Duration == task.p41DurationPoPre) { slot.ColEndPre = slot.ColSpan; } else { slot.ColEndPre = Convert.ToInt32(task.p41DurationPoPre) / 10; } } if (task.p41DurationPoPost > 0 && task.p41PlanEnd.AddMinutes(-1 * task.p41DurationPoPost) < v.CurrentDT2) { slot.TitlePost = "PO-POST: " + BO.BAS.ObjectDateTime2String(task.p41PlanEnd.AddMinutes(-1 * task.p41DurationPoPost), "HH:mm") + " - " + BO.BAS.ObjectDateTime2String(task.p41PlanEnd, "HH:mm"); if (task.p41Duration == task.p41DurationPoPost) { slot.ColStartPost = 1; } else { slot.ColStartPost = Convert.ToInt32(task.p41Duration - task.p41DurationPoPost) / 10; } } lastSlot = slot; v.Slots.Add(slot); } v.lisFond = Factory.p31CapacityFondBL.GetCells(v.CurrentDate, v.CurrentDate); return(View(v)); }