示例#1
0
        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));
        }
示例#3
0
        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})'>&times;</button></td>", delete_function, dt.Rows[i]["pid"]));
                }
                sb.Append("</tr>");
            }
            sb.Append("</tbody>");
            sb.Append("</table>");

            return(sb.ToString());
        }