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)); }
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); }
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); }