public ActionResult GetData(int page, int rows, string search, string sidx, string sord) { string Name = Request["name"] == null ? "" : Request["name"].ToString(); string filters = Request["filters"] == null ? "" : Request["filters"].ToString(); string filter = Request["filter"] == null ? "" : Request["filter"].ToString(); string ModuleName = Request["m"] == null ? "" : Request["m"].ToString(); string NameSpace = Request["n"] == null ? "" : Request["n"].ToString(); string filtersSql = string.Empty; string mapSqlFilter = string.Empty; if (!string.IsNullOrEmpty(filters)) { filtersSql = BulidJqGridSearch.BuildSearch(filters); } Bll_Sys_Config_Refer configRefer = new Bll_Sys_Config_Refer(); Bll_Sys_Config_Field_Refer configReferList = new Bll_Sys_Config_Field_Refer(); Sys_Config_Refer model = configRefer.GetListByCode(" AND R_ModuleName='" + ModuleName + "'")[0]; var referList = configReferList.GetListByCode(" AND D_ModuleName='" + ModuleName + "'").Where(o=>!string.IsNullOrEmpty(o.D_DictKey)); Bll_Bse_Dict DictInstance = new Bll_Bse_Dict(); DataTable dt = new DataTable(); if (!string.IsNullOrEmpty(model.R_SQL)) { if (!string.IsNullOrEmpty(filter)) { model.R_SQL = model.R_SQL + filter; } if (!string.IsNullOrEmpty(filtersSql)) { model.R_SQL = model.R_SQL + " AND " + filtersSql; } dt = configRefer.ListBySql(model.R_SQL); } else { string _filtersql = !String.IsNullOrEmpty(model.R_FilterSql) ? model.R_FilterSql : ""; _filtersql = _filtersql + filter; //#region 特殊映射处理 //if (ModuleName=="HR_StuffModule") //{ // //读取映射配置表中公司配置 // Bll_Comm comm = new Bll_Comm(); // string mapFilter = ""; // var mapModel = comm.CommMap(ModuleName, "Company"); // if (mapModel!=null) // { // var deptList = comm.GetChildListDeptNon(comm.CommMap(ModuleName, "Company").Map_Object); // if (deptList.Count()>0) // { // foreach (var item in deptList) // { // } // for (int i = 0; i < deptList.Count;i++ ) // { // if (i==(deptList.Count-1)) // { // mapFilter += "'" + deptList[i].Dept_Code+"'"; // } // else // { // mapFilter += "'" + deptList[i].Dept_Code+ "',"; // } // } // mapFilter.TrimEnd(','); // } // mapSqlFilter = " Stuff_DepCode in(" + mapFilter + ")"; // } //} //#endregion //为空时不初始化 //if (!string.IsNullOrEmpty(filter)) //{ // dt = configRefer.ListDataByCode(Name, _filtersql, filtersSql + mapSqlFilter); //} dt = configRefer.ListDataByCode(Name, _filtersql, filtersSql + mapSqlFilter); } DataTable newdt = DataTablePage.GetPagedTable(dt, page, rows); #region 字典进行转换 //对字典进行转换 for (int i = 0; i < newdt.Rows.Count; i++) { foreach (var item in referList.ToList()) { var value = newdt.Rows[i][item.D_Index] != null ? newdt.Rows[i][item.D_Index].ToString() : ""; var DictResult = DictInstance.GetListByCode(" AND Dict_Code='" + value + "' AND Dict_Key='" + item.D_DictKey + "' "); if (DictResult.Count > 0) { newdt.Rows[i][item.D_Index] = DictResult.FirstOrDefault().Dict_Name; } } } #endregion var json = DataTablePage.JsonForJqgrid(newdt, page, rows, dt.Rows.Count); return JavaScript(json); }
public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize, string moduleCode) { if (PageIndex == 0) return null; DataTable newdt = dt.Clone(); #region 获取字典相关信息 //获取列表字段的配置信息 Bll_Sys_Config_Fieled filedInstance = new Bll_Sys_Config_Fieled(); Bll_Bse_Dict DictInstance = new Bll_Bse_Dict(); List<Sys_Config_Fieled> listField = filedInstance.GetListByCode(" AND D_ModuleCode='" + moduleCode + "'"); string dictKeyList = "''"; foreach (var field in listField) { if (!string.IsNullOrEmpty(field.D_DictKey)) { dictKeyList += ",'" + field.D_DictKey + "'"; } } //获取配置信息中所有的字典表关键字里拥有的字典信息 List<Bse_Dict> listDictionary = DictInstance.GetListByCode(" and (dict_key in (" + dictKeyList + "))"); #endregion //newdt.Clear(); int rowbegin = (PageIndex - 1) * PageSize; int rowend = PageIndex * PageSize; if (rowbegin >= dt.Rows.Count)//如果开始列数大于所拥有的列数 rowbegin = 0; if (rowend > dt.Rows.Count) rowend = dt.Rows.Count; for (int i = rowbegin; i <= rowend - 1; i++) { DataRow newdr = newdt.NewRow(); DataRow dr = dt.Rows[i]; foreach (DataColumn column in dt.Columns) { newdr[column.ColumnName] = dr[column.ColumnName]; //更新字典信息 var field = listField.Where(o => o.D_Index == column.ColumnName).FirstOrDefault(); if (field!=null&&!string.IsNullOrEmpty(field.D_DictKey)) { Bse_Dict dict = listDictionary.Where(o => o.Dict_Code == dr[column.ColumnName].ToString()).FirstOrDefault(); if (dict != null) { newdr[column.ColumnName] = dict.Dict_Name; } } //对编码进行转换 //if (field!=null && !string.IsNullOrEmpty(field.D_UDEF1)) //{ // string[] Converts = field.D_UDEF1.Split(','); // if (Converts.Count()==3) // { // if (dr[column.ColumnName]!=null && !string.IsNullOrEmpty(dr[column.ColumnName].ToString())) // { // var data = instance.ListDataByCode(Converts[0], Converts[1] + "='" + dr[column.ColumnName].ToString() + "'"); // if (data.Rows.Count>0) // { // newdr[column.ColumnName] = data.Rows[0][Converts[2]].ToString(); // } // } // } //} } newdt.Rows.Add(newdr); } return newdt; }