private void Designer_RefreshState(Models.TheGridDesignerViewModel v) { var mq = new BO.myQuery(v.Rec.j72Entity); var ce = BL.TheEntities.ByPrefix(mq.Prefix); v.Relations = BL.TheEntities.getApplicableRelations(mq.Prefix); //návazné relace v.Relations.Insert(0, new BO.EntityRelation() { TableName = ce.TableName, AliasSingular = ce.AliasSingular, SqlFrom = ce.SqlFromGrid, RelName = "a" }); //primární tabulka a v.AllColumns = _colsProvider.AllColumns().ToList(); v.AllColumns.RemoveAll(p => p.VisibleWithinEntityOnly != null && p.VisibleWithinEntityOnly.Contains(v.Rec.j72Entity.Substring(0, 3)) == false); //nepatřičné kategorie/štítky v.SelectedColumns = _colsProvider.ParseTheGridColumns(mq.Prefix, v.Rec.j72Columns); v.lisQueryFields = new BL.TheQueryFieldProvider(v.Rec.j72Entity.Substring(0, 3)).getPallete(); v.lisPeriods = _pp.getPallete(); if (v.lisJ73 == null) { v.lisJ73 = new List <BO.j73TheGridQuery>(); } foreach (var c in v.lisJ73.Where(p => p.j73Column != null)) { if (v.lisQueryFields.Where(p => p.Field == c.j73Column).Count() > 0) { var cc = v.lisQueryFields.Where(p => p.Field == c.j73Column).First(); c.FieldType = cc.FieldType; c.FieldEntity = cc.SourceEntity; c.MasterPrefix = cc.MasterPrefix; c.MasterPid = cc.MasterPid; } } }
Invoke(string entity, int j72id, int go2pid, string master_entity, int master_pid, int contextmenuflag, string ondblclick, string master_flag, int masterviewflag) { var ret = new TheGridViewModel(); ret.Entity = entity; var mq = new BO.myQuery(entity); BO.TheGridState gridState = null; if (j72id > 0) { gridState = _f.j72TheGridTemplateBL.LoadState(j72id, _f.CurrentUser.pid); } if (gridState == null) { gridState = _f.j72TheGridTemplateBL.LoadState(entity, _f.CurrentUser.pid, master_entity); //výchozí, systémový grid: j72IsSystem=1 } if (gridState == null) //pro uživatele zatím nebyl vygenerován záznam v j72 -> vygenerovat { var cols = _colsProvider.getDefaultPallete(false, mq); //výchozí paleta sloupců var recJ72 = new BO.j72TheGridTemplate() { j72IsSystem = true, j72Entity = entity, j03ID = _f.CurrentUser.pid, j72Columns = String.Join(",", cols.Select(p => p.UniqueName)), j72MasterEntity = master_entity }; var intJ72ID = _f.j72TheGridTemplateBL.Save(recJ72, null, null, null); gridState = _f.j72TheGridTemplateBL.LoadState(intJ72ID, _f.CurrentUser.pid); } gridState.j75CurrentRecordPid = go2pid; gridState.ContextMenuFlag = contextmenuflag; gridState.j72MasterEntity = master_entity; gridState.MasterPID = master_pid; gridState.OnDblClick = ondblclick; gridState.MasterViewFlag = masterviewflag; gridState.MasterFlag = master_flag; var cc = new TheGridController(_colsProvider, _pp); cc.Factory = _f; ret.firstdata = cc.render_thegrid_html(gridState); ret.ondblclick = ondblclick; ret.GridState = gridState; ret.Columns = _colsProvider.ParseTheGridColumns(mq.Prefix, gridState.j72Columns); ret.AdhocFilter = _colsProvider.ParseAdhocFilterFromString(gridState.j75Filter, ret.Columns); ret.MasterEntity = master_entity; ret.MasterPID = master_pid; return(View("Default", ret)); }
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()); }