示例#1
0
        private System.Data.DataTable prepare_datatable(ref BO.myQuery mq, BO.TheGridState gridState)
        {
            mq.explicit_columns = _colsProvider.ParseTheGridColumns(mq.Prefix, gridState.j72Columns);
            if (string.IsNullOrEmpty(gridState.j75SortDataField) == false)
            {
                try
                {
                    mq.explicit_orderby = _colsProvider.ByUniqueName(gridState.j75SortDataField).getFinalSqlSyntax_ORDERBY() + " " + gridState.j75SortOrder;
                }
                catch
                {
                }
            }
            if (String.IsNullOrEmpty(gridState.j75Filter) == false)
            {
                mq.TheGridFilter = _colsProvider.ParseAdhocFilterFromString(gridState.j75Filter, mq.explicit_columns);
            }
            mq.lisPeriods = _pp.getPallete();

            if (string.IsNullOrEmpty(gridState.j72MasterEntity) && BL.TheEntities.ByTable(gridState.j72Entity).IsGlobalPeriodQuery)
            {
                BO.ThePeriod per = InhaleGridPeriodDates(mq.Prefix);
                mq.global_d1 = per.d1;
                mq.global_d2 = per.d2;
            }
            if (gridState.j72HashJ73Query)
            {
                mq.lisJ73 = Factory.j72TheGridTemplateBL.GetList_j73(gridState.j72ID, gridState.j72Entity.Substring(0, 3));
            }
            mq.InhaleMasterEntityQuery(gridState.j72MasterEntity, gridState.MasterPID);

            return(Factory.gridBL.GetList(mq));
        }
示例#2
0
        private TheGridInstanceViewModel inhaleGridViewInstance(string prefix, int go2pid, bool istestperiod)
        {
            var v = new TheGridInstanceViewModel()
            {
                prefix = prefix, go2pid = go2pid, contextmenuflag = 1
            };

            v.entity = BL.TheEntities.ByPrefix(prefix).TableName;
            if (v.entity == "")
            {
                Factory.CurrentUser.AddMessage("Entity for Grid not found.");
            }
            if (istestperiod == true && BL.TheEntities.ByPrefix(prefix).IsGlobalPeriodQuery)
            {
                v.period = new PeriodViewModel();
                v.period.IsShowButtonRefresh = true;
                BO.ThePeriod per = InhaleGridPeriodDates(prefix);
                v.period.PeriodValue = per.pid;
                v.period.d1          = per.d1;
                v.period.d2          = per.d2;
                //v.period.SelectedB02IDs = per.FilterB02IDs;

                //if (string.IsNullOrEmpty(v.period.SelectedB02IDs) == false)
                //{
                //    var mq = new BO.myQuery("b02");
                //    mq.b02ids = BO.BAS.ConvertString2ListInt(v.period.SelectedB02IDs);
                //    var lis = Factory.b02StatusBL.GetList(mq);
                //    v.period.SelectedB02Names = string.Join(",", lis.Select(p => p.b02Name));
                //}
            }


            return(v);
        }
示例#3
0
        public TheGridOutput render_thegrid_html(BO.TheGridState gridState)
        {
            var ret = new TheGridOutput();

            _grid = new TheGridViewModel()
            {
                Entity = gridState.j72Entity
            };
            _grid.GridState = gridState;

            ret.sortfield = gridState.j75SortDataField;
            ret.sortdir   = gridState.j75SortOrder;

            var mq = new BO.myQuery(gridState.j72Entity);

            _grid.Columns = _colsProvider.ParseTheGridColumns(mq.Prefix, gridState.j72Columns);

            if (string.IsNullOrEmpty(gridState.j72MasterEntity) && BL.TheEntities.ByTable(gridState.j72Entity).IsGlobalPeriodQuery)
            {
                BO.ThePeriod per = InhaleGridPeriodDates(mq.Prefix);
                mq.global_d1 = per.d1;
                mq.global_d2 = per.d2;
            }

            mq.explicit_columns = _grid.Columns;

            if (String.IsNullOrEmpty(gridState.j75Filter) == false)
            {
                mq.TheGridFilter = _colsProvider.ParseAdhocFilterFromString(gridState.j75Filter, mq.explicit_columns);
            }
            mq.lisPeriods = _pp.getPallete();

            if (gridState.j72HashJ73Query)
            {
                mq.lisJ73 = Factory.j72TheGridTemplateBL.GetList_j73(gridState.j72ID, gridState.j72Entity.Substring(0, 3));
            }
            mq.InhaleMasterEntityQuery(gridState.j72MasterEntity, gridState.MasterPID);


            var dtFooter            = Factory.gridBL.GetList(mq, true);
            int intVirtualRowsCount = 0;

            if (dtFooter.Columns.Count > 0)
            {
                intVirtualRowsCount = Convert.ToInt32(dtFooter.Rows[0]["RowsCount"]);
            }
            else
            {
                this.AddMessage("GRID Error: Dynamic SQL failed.");
            }


            if (intVirtualRowsCount > 500)
            {   //dotazy nad 500 záznamů budou mít zapnutý OFFSET režim stránkování
                mq.OFFSET_PageSize = gridState.j75PageSize;
                mq.OFFSET_PageNum  = gridState.j75CurrentPagerIndex / gridState.j75PageSize;
            }

            //třídění řešit až po spuštění FOOTER summary DOTAZu
            if (String.IsNullOrEmpty(gridState.j75SortDataField) == false && _grid.Columns.Where(p => p.UniqueName == gridState.j75SortDataField).Count() > 0)
            {
                var c = _grid.Columns.Where(p => p.UniqueName == gridState.j75SortDataField).First();
                mq.explicit_orderby = c.getFinalSqlSyntax_ORDERBY() + " " + gridState.j75SortOrder;
            }

            var dt = Factory.gridBL.GetList(mq);



            if (_grid.GridState.j75CurrentRecordPid > 0 && intVirtualRowsCount > gridState.j75PageSize)
            {
                //aby se mohlo skočit na cílový záznam, je třeba najít stránku, na které se záznam nachází
                System.Data.DataRow[] recs = dt.Select("pid=" + _grid.GridState.j75CurrentRecordPid.ToString());
                if (recs.Count() > 0)
                {
                    var intIndex = dt.Rows.IndexOf(recs[0]);
                    _grid.GridState.j75CurrentPagerIndex = intIndex - (intIndex % _grid.GridState.j75PageSize);
                }
            }

            _s = new System.Text.StringBuilder();

            Render_DATAROWS(dt, mq);
            ret.body = _s.ToString();
            _s       = new System.Text.StringBuilder();

            Render_TOTALS(dtFooter);
            ret.foot = _s.ToString();
            _s       = new System.Text.StringBuilder();

            RENDER_PAGER(intVirtualRowsCount);
            ret.pager = _s.ToString();
            return(ret);
        }