using System; using System.Collections.Generic; using System.Data; using System.Web; using System.Web.UI.WebControls; using SuperMap.RealEstate.Identity; using SuperMap.RealEstate.ServiceModel; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.FrameWork.Business; using SuperMap.RealEstate.CoreFrameWork.Dictionary.Business; namespace HZQR.Common.Common { /// /// 业务相关方法 /// public class BusinessHelper { #region 记录数据表变更日志 /// /// 记录数据表变更日志 /// /// 事务管理器 /// 变更表主键值 /// 变更表名称 /// 变更用户名称 /// 综管平台用户对象 /// 操作说明 public static void RecordDataChangeLog(Transaction _Transaction, int TableID, string TableName, string OwnerName, PassportInfo _PassportInfo, string OperateDesc) { string SQLString = string.Format(@"INSERT INTO PLATFORM_FRAMEWORK.T_DATACHANGE ( DATACHANGE_ID,TABLE_ID,TABLE_NAME,OWNER_NAME, STAFF_ID,STAFF_NAME,OPERATE_DATE,OPERATE_DESC) VALUES ( PLATFORM_FRAMEWORK.SEQ_DATACHANGE.NEXTVAL, {0},'{1}','{2}',{3},'{4}',SYSDATE,'{5}')", TableID, TableName, OwnerName, _PassportInfo.ID, _PassportInfo.Name, OperateDesc); new User(_Transaction).ExecuteNonQuery(SQLString, null); } #endregion #region 记录业务办理日志 /// /// 记录业务办理日志 /// /// 事务管理器 /// 业务类型 /// 业务ID /// 数据表名称 /// 数据表用户 /// 日志内容 /// 操作人内码 /// 操作人名称 public static void RecordBusinessLog(Transaction _Transaction, int BusinessLogType, int BusinessID, string TableName, string OwnerName, string BusinessLogContent, int? PassportInfoID, string PassportInfoName) { if (BusinessLogType == 209000) { return; } RecordBusinessLog(_Transaction, BusinessLogType, BusinessID, TableName, OwnerName, BusinessLogContent, 1, 1); } /// /// 记录业务办理日志 /// /// 事务管理器 /// 业务类型 /// 业务ID /// 数据表名称 /// 数据表用户 /// 日志内容 /// 数据一致性(0:不一致;1:一致) /// 反查标识(0:后续需要干预处理的日志,1:纯记录,作为定时删除日志的标记) public static void RecordBusinessLog(Transaction _Transaction, int BusinessLogType, int BusinessID, string TableName, string OwnerName, string BusinessLogContent, int Data_Consistency, int Check_State) { if (BusinessLogType == 209000) { return; } RecordBusinessLog(_Transaction, BusinessLogType, BusinessID, TableName, OwnerName, BusinessLogContent, Data_Consistency, Check_State, ""); } /// /// 记录业务办理日志 /// /// 事务管理器 /// 业务类型 /// 进销存业务: /// 201000:进销存入库 /// 202000:进销存调拨 /// 203000:进销存退货 /// 204000:进销存领用 /// 205000:进销存销售 /// 206000:进销存盘点结存 /// 206001:进销存盘点损溢 /// 207000:补充本期无库存有销售的新商品 /// 209000:用户查询信息 /// 总仓统配业务: /// 501000:总仓入库 /// 502000:总仓调拨 /// 503000:总仓退货 /// 504000:总仓领用 /// 505000:总仓损溢 /// 506000:总仓盘点结存 /// 506001:总仓盘点损溢 /// 507000:总仓异常实时库存 /// 508000:总仓配送 /// 509000:总仓异常退货 /// /// 业务表主键值 /// 变更表名称 /// 变更用户名称 /// 日志内容 /// 数据一致性(0:不一致;1:一致) /// 反查标识(0:后续需要干预处理的日志,1:纯记录,作为定时删除日志的标记) /// 日结账单唯一标识,格式:服务区编码|门店编码|结账时间|机器编码|销售金额 public static void RecordBusinessLog(Transaction _Transaction, int BusinessLogType, int BusinessID, string TableName, string OwnerName, string BusinessLogContent, int Data_Consistency, int Check_State, string UniqueCode) { string SQLString = ""; try { SQLString = string.Format(@"INSERT INTO PLATFORM_FRAMEWORK.T_BUSINESSLOG ( BUSINESSLOG_ID,BUSINESSLOG_TYPE,BUSINESS_ID,TABLE_NAME,OWNER_NAME, BUSINESSLOG_CONTENT,OPERATE_DATE,DATA_CONSISTENCY,CHECK_STATE,UNIQUECODE) VALUES ( PLATFORM_FRAMEWORK.SEQ_BUSINESSLOG.NEXTVAL, {0},{1},'{2}','{3}','{4}',{5},{6},{7},'{8}')", BusinessLogType, BusinessID, TableName, OwnerName, BusinessLogContent, DateTime.Now.ToString("yyyyMMddHHmmss"), Data_Consistency, Check_State, UniqueCode); new User(_Transaction).ExecuteNonQuery(SQLString, null); } catch (Exception ex) { LogUtil.WriteLog(ex, "记录业务办理日志失败!执行语句:" + SQLString, DateTime.Now.ToString("yyyyMMdd") + "_BusinessLog"); } } /// /// 记录业务办理日志 /// /// 事务管理器 /// 业务日志数据对象 public static void RecordBusinessLog(Transaction _Transaction, Models.BusinessLogModel businessLogModel) { string SQLString = string.Format(@"INSERT INTO PLATFORM_FRAMEWORK.T_BUSINESSLOG ( BUSINESSLOG_ID,BUSINESSLOG_TYPE,BUSINESS_ID,TABLE_NAME,OWNER_NAME, BUSINESSLOG_CONTENT,OPERATE_DATE,DATA_CONSISTENCY,CHECK_STATE,UNIQUECODE, SERVERPARTCODE,SHOPCODE,MACHINECODE,BUSINESSTYPE, SALE_AMOUNT,CASHPAY_AMOUNT,DAILY_AMOUNT,CHANNEL_AMOUNT, ENDACCOUNT_ID,STATISTICS_DATE) VALUES ( PLATFORM_FRAMEWORK.SEQ_BUSINESSLOG.NEXTVAL, {0},{1},'{2}','{3}','{4}',{5},{6},{7},'{8}', '{9}','{10}','{11}',{12},{13},{14},{15},{16},{17},{18})", businessLogModel.BUSINESSLOG_TYPE == null ? "NULL" : businessLogModel.BUSINESSLOG_TYPE.ToString(), businessLogModel.BUSINESS_ID == null ? "NULL" : businessLogModel.BUSINESS_ID.ToString(), businessLogModel.TABLE_NAME, businessLogModel.OWNER_NAME, businessLogModel.BUSINESSLOG_CONTENT, DateTime.Now.ToString("yyyyMMddHHmmss"), businessLogModel.DATA_CONSISTENCY == null ? "NULL" : businessLogModel.DATA_CONSISTENCY.ToString(), businessLogModel.CHECK_STATE == null ? "NULL" : businessLogModel.CHECK_STATE.ToString(), businessLogModel.UNIQUECODE, businessLogModel.SERVERPARTCODE, businessLogModel.SHOPCODE, businessLogModel.MACHINECODE, businessLogModel.BUSINESSTYPE == null ? "NULL" : businessLogModel.BUSINESSTYPE.ToString(), businessLogModel.SALE_AMOUNT == null ? "NULL" : businessLogModel.SALE_AMOUNT.ToString(), businessLogModel.CASHPAY_AMOUNT == null ? "NULL" : businessLogModel.CASHPAY_AMOUNT.ToString(), businessLogModel.DAILY_AMOUNT == null ? "NULL" : businessLogModel.DAILY_AMOUNT.ToString(), businessLogModel.CHANNEL_AMOUNT == null ? "NULL" : businessLogModel.CHANNEL_AMOUNT.ToString(), businessLogModel.ENDACCOUNT_ID == null ? "NULL" : businessLogModel.ENDACCOUNT_ID.ToString(), businessLogModel.STATISTICS_DATE == null ? "NULL" : businessLogModel.STATISTICS_DATE.ToString()); new User(_Transaction).ExecuteNonQuery(SQLString, null); } #endregion #region 更新日志表反查标识 /// /// 更新日志表反查标识 /// /// 事务管理器 /// 日志类型 /// 业务ID /// 业务表名称 /// 业务表用户 /// 日志内容 /// 数据一致性 /// 反查标识(0:后续需要干预处理的日志,1:纯记录,作为定时删除日志的标记) public static void UpdateBusinessLogCheckState(Transaction _Transaction, int BusinessLogType, int BusinessID, string TableName, string OwnerName, string BusinessLogContent, int? Data_Consistency, int? Check_State) { string SQLString = "", UpdateSQL = ""; try { if (BusinessLogContent != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "BUSINESSLOG_CONTENT = '" + BusinessLogContent + "'"; } if (Data_Consistency != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "DATA_CONSISTENCY = " + Data_Consistency; } if (Check_State != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "CHECK_STATE = " + Check_State; } SQLString = string.Format(@"UPDATE PLATFORM_FRAMEWORK.T_BUSINESSLOG SET {0} WHERE BUSINESSLOG_TYPE = {1} AND BUSINESS_ID = {2} AND TABLE_NAME = '{3}' AND OWNER_NAME = '{4}'", UpdateSQL, BusinessLogType, BusinessID, TableName, OwnerName); new User(_Transaction).ExecuteNonQuery(SQLString, null); } catch (Exception ex) { LogUtil.WriteLog(ex, "记录业务办理日志失败!执行语句:" + SQLString, DateTime.Now.ToString("yyyyMMdd") + "_BusinessLog"); } } /// /// 更新日志表反查标识 /// /// 事务管理器 /// 日志内码 /// 日志内容 /// 数据一致性 /// 反查标识(0:后续需要干预处理的日志,1:纯记录,作为定时删除日志的标记) public static void UpdateBusinessLogCheckState(Transaction _Transaction, int BusinessLogID, string BusinessLogContent, int? Data_Consistency, int? Check_State) { UpdateBusinessLogCheckState(_Transaction, BusinessLogID, BusinessLogContent, Data_Consistency, Check_State, null); } /// /// 更新日志表反查标识 /// /// 事务管理器 /// 日志内码 /// 日志内容 /// 数据一致性 /// 反查标识(0:后续需要干预处理的日志,1:纯记录,作为定时删除日志的标记) /// 自然日移动支付金额 /// 日结账单内码 public static void UpdateBusinessLogCheckState(Transaction _Transaction, int BusinessLogID, string BusinessLogContent, int? Data_Consistency, int? Check_State, decimal? Daily_Amount, int? Endaccount_Id = null) { string SQLString = "", UpdateSQL = ""; try { if (BusinessLogContent != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "BUSINESSLOG_CONTENT = '" + BusinessLogContent + "'"; } if (Data_Consistency != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "DATA_CONSISTENCY = " + Data_Consistency; } if (Check_State != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "CHECK_STATE = " + Check_State; } if (Daily_Amount != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "DAILY_AMOUNT = " + Daily_Amount; } if (Endaccount_Id != null) { UpdateSQL += (UpdateSQL == "" ? "" : ",") + "ENDACCOUNT_ID = " + Endaccount_Id; } SQLString = string.Format(@"UPDATE PLATFORM_FRAMEWORK.T_BUSINESSLOG SET {0} WHERE BUSINESSLOG_ID = {1}", UpdateSQL, BusinessLogID); new User(_Transaction).ExecuteNonQuery(SQLString, null); } catch (Exception ex) { LogUtil.WriteLog(ex, "记录业务办理日志失败!执行语句:" + SQLString, DateTime.Now.ToString("yyyyMMdd") + "_BusinessLog"); } } #endregion #region 获取用户session /// /// 获取用户session /// public static void GetPassportInfoSession(Transaction _Transaction, HttpContext context, string UserID) { if (string.IsNullOrWhiteSpace(UserID)) return; DataTable dtUser = new User(_Transaction).ExecuteDataTable( "SELECT * FROM PLATFORM_FRAMEWORK.T_USER WHERE USER_ID = " + UserID); if (dtUser.Rows.Count > 0) { context.Session[ConstStringHelper.RequestQueryString_PassportUserName] = dtUser.Rows[0]["USER_PASSPORT"]; context.Session["User_ID"] = dtUser.Rows[0]["USER_ID"]; context.Session["User_Name"] = dtUser.Rows[0]["USER_NAME"]; context.Session["User_Authenticated"] = true; context.Session[ConstStringHelper.RequestQueryString_PassportGuid] = Guid.NewGuid().ToString(); context.Session["User_EnabledCityAuthority"] = "USER_ENABLEDCITYAUTHORITY"; context.Session["User_CityAuthority"] = dtUser.Rows[0]["USER_CITYAUTHORITY"]; context.Session["User_EnabledLicense"] = dtUser.Rows[0]["USER_ENABLEDLICENSE"]; context.Session["User_License"] = dtUser.Rows[0]["USER_LICENSE"]; context.Session["User_UserMobilephone"] = dtUser.Rows[0]["USER_MOBILEPHONE"]; context.Session["User_ProvinceCode"] = dtUser.Rows[0]["USER_PROVINCE"]; context.Session["User_ProvinceUnit"] = dtUser.Rows[0]["PROVINCE_UNIT"]; } } #endregion #region 根据模块id获取系统模块数据表对象 /// /// 根据模块id获取系统模块数据表对象 /// /// 事务管理器 /// 模块id /// public static Module GetModuleByModuleId(Transaction transaction, string ModuleId) { Module module = new Module(transaction); if (!string.IsNullOrWhiteSpace(ModuleId)) { module.Module_ID_Encrypt = ModuleId.ToEncrypt(); module.Select(); } return module; } #endregion #region 获取系统模块数据表对象 /// /// 获取系统模块数据表对象 /// /// 事务管理器 /// 模块guid /// public static Module GetModuleByModuleGuid(Transaction transaction, string ModuleGuid) { Module module = new Module(transaction); if (!string.IsNullOrWhiteSpace(ModuleGuid)) { module.AddSearchParameter("MODULE_GUID", ModuleGuid); module.Search(); } return module; } #endregion #region 方法 -> 获取枚举及其子集 /// /// 获取枚举及其子集 /// /// 事务管理器 /// 枚举字段内码 /// /// 当前枚举的内码,顶层为-1 /// 其他检索条件,枚举名称 /// 枚举数据源 /// public static void GetSubFieldEnum(Transaction transaction, string FieldExplain_Field, ref string RetString, string Pid, string obscureName, DataTable _SearchDataTable = null) { //由于数据量商品类别不可能太多,所以一次性全部取出 if (_SearchDataTable == null) { _SearchDataTable = GetFieldEnumDataSource(transaction, FieldExplain_Field); } string SearchString = "FIELDENUM_PID = '" + Pid + "'" + (obscureName == "" ? "" : " AND FIELDENUM_NAME LIKE '" + obscureName + "'"); DataRow[] _DataRowList = _SearchDataTable.Select(SearchString); if (_DataRowList.Length == 0) { return; } else { foreach (DataRow _CurrRow in _DataRowList) { RetString += (RetString == "" ? "" : ",") + _CurrRow["FIELDENUM_VALUE"].ToString(); GetSubFieldEnum(transaction, FieldExplain_Field, ref RetString, _CurrRow["FIELDENUM_ID"].ToString(), obscureName, _SearchDataTable); } } } private static DataTable GetFieldEnumDataSource(Transaction transaction, string FieldExplain_Field) { string StrSql = "SELECT * FROM V_FIELDENUM WHERE FIELDEXPLAIN_FIELD = '" + FieldExplain_Field + "'"; DataTable _DataTable = new FieldEnum(transaction).ExecuteDataTable(StrSql); _DataTable.DefaultView.Sort = "FIELDENUM_PID,FIELDENUM_INDEX,FIELDENUM_VALUE"; return _DataTable.DefaultView.ToTable(); } #endregion #region 方法 -> 绑定枚举树 /// /// 绑定枚举树 /// /// 事务管理器 /// 树集合 /// 字段名称 /// 父级枚举 /// 枚举状态筛选条件 /// 显示模式:0【枚举值】,1【枚举内码】 /// 枚举数据源 /// 点击节点是否跳转页面 /// 页面跳转地址 public static void BindingEnumTreeView(Transaction transaction, TreeNodeCollection treeNodeCollection, string FieldExplain_Field, string pid, string dataStatus = "", int showType = 0, DataTable dtEnum = null, bool ShowTarget = false, string NavigateUrl = "javascript:void(0);") { BindingEnumTreeView(transaction, treeNodeCollection, FieldExplain_Field, pid, dataStatus, showType, dtEnum, ShowTarget, NavigateUrl, false); } /// /// 绑定枚举树 /// /// 事务管理器 /// 树集合 /// 字段名称 /// 父级枚举 /// 枚举状态筛选条件 /// 显示模式:0【枚举值】,1【枚举内码】 /// 枚举数据源 /// 点击节点是否跳转页面 /// 页面跳转地址 /// 树节点是否显示索引 public static void BindingEnumTreeView(Transaction transaction, TreeNodeCollection treeNodeCollection, string FieldExplain_Field, string pid, string dataStatus, int showType, DataTable dtEnum, bool ShowTarget, string NavigateUrl, bool ShowIndex) { if (dtEnum == null) { string WhereSQL = ""; if (!string.IsNullOrEmpty(dataStatus)) { WhereSQL = " AND FIELDENUM_STATUS IN (" + dataStatus + ")"; } //获取枚举信息 FieldExplain fieldExplain = DictionaryHelper.GetFieldExplain(FieldExplain_Field, transaction); dtEnum = new FieldEnum(transaction).FillDataTable("WHERE FIELDEXPLAIN_ID = " + fieldExplain.KeyID + WhereSQL); } foreach (DataRow drEnum in dtEnum.Select("FIELDENUM_PID = " + pid, "FIELDENUM_INDEX,FIELDENUM_VALUE")) { TreeNode treeNode = new TreeNode(); treeNode.Text = (ShowIndex ? "【" + drEnum["FIELDENUM_INDEX"] + "】" : "") + drEnum["FIELDENUM_NAME"].ToString(); treeNode.Value = showType == 0 ? drEnum["FIELDENUM_VALUE"].ToEncrypt() : drEnum["FIELDENUM_ID"].ToEncrypt(); if (ShowTarget) { if (string.IsNullOrWhiteSpace(NavigateUrl) || NavigateUrl == "javascript:void(0);") { treeNode.NavigateUrl = "javascript:void(0);"; } else { treeNode.NavigateUrl = NavigateUrl + (NavigateUrl.Contains("?") ? "&" : "?") + "FIELDENUMID=" + drEnum["FIELDENUM_ID"].ToEncrypt() + "&FIELDENUMVALUE=" + drEnum["FIELDENUM_VALUE"].ToEncrypt(); } } else { treeNode.NavigateUrl = "javascript:void(0);"; } if (dtEnum.Select("FIELDENUM_PID = " + drEnum["FIELDENUM_ID"]).Length > 0) { BindingEnumTreeView(transaction, treeNode.ChildNodes, FieldExplain_Field, drEnum["FIELDENUM_ID"].ToString(), dataStatus, showType, dtEnum, ShowTarget, NavigateUrl, ShowIndex); } treeNodeCollection.Add(treeNode); } } #endregion #region 方法 -> 绑定枚举字典下拉框 /// /// 绑定枚举字典类别下拉框 /// /// /// /// public static void BindingFieldExplainDDL(Transaction transaction, List items, string disabledValue) { DataTable _DataTable = GetFieldExplainTypeDataSource(transaction, string.Empty, string.Empty); BindingFieldExplainDDL(transaction, _DataTable, "-1", items, disabledValue, 0, true); } /// /// 绑定枚举字典下拉框 /// /// 事务管理器 /// 数据字典类型数据源 /// 父级枚举字典 /// 枚举字典下拉框 /// 不可加载的数值 /// 显示级别 /// 字典类型是否可以选择 /// 显示数据字典 /// 数据字典数据源 /// 下拉框值类型:0【字典内码】,1【字典英文】 public static void BindingFieldExplainDDL(Transaction transaction, DataTable dtFieldExplainType, string pid, List items, string disabledValue, int level, bool disabled, bool ShowFieldExplain = false, DataTable dtFieldExplain = null, int valueType = 0) { BindingFieldExplainDDL(transaction, dtFieldExplainType, pid, items, disabledValue, level, disabled, ShowFieldExplain, dtFieldExplain, valueType, false); } /// /// 绑定枚举字典下拉框 /// /// 事务管理器 /// 数据字典类型数据源 /// 父级枚举字典 /// 枚举字典下拉框 /// 不可加载的数值 /// 显示级别 /// 字典类型是否可以选择 /// 显示数据字典 /// 数据字典数据源 /// 下拉框值类型:0【字典内码】,1【字典英文】 /// 是否显示数据库表枚举 public static void BindingFieldExplainDDL(Transaction transaction, DataTable dtFieldExplainType, string pid, List items, string disabledValue, int level, bool disabled, bool ShowFieldExplain, DataTable dtFieldExplain, int valueType, bool showDataTableEnum) { //获取枚举字段类型数据源 if (dtFieldExplainType == null) { dtFieldExplainType = GetFieldExplainTypeDataSource(transaction, string.Empty, string.Empty); } //获取枚举字段数据源 if (ShowFieldExplain && dtFieldExplain == null) { dtFieldExplain = new FieldExplain(transaction).FillDataTable(""); } //加载数据库表枚举 if (showDataTableEnum) { FieldExplain fieldExplain = DictionaryHelper.GetFieldExplain("DATATABLE_ENUM", transaction); ListItemEx listItemExType = new ListItemEx(); listItemExType.Value = "0"; listItemExType.Text = "常用数据库表枚举"; listItemExType.Level = level; if (!disabled) { listItemExType.Enabled = false; } items.Add(listItemExType); if (ShowFieldExplain) { foreach (DataRow drFieldEnum in new FieldEnum(transaction).FillDataTable("WHERE FIELDEXPLAIN_ID = " + fieldExplain.FieldExplain_ID).Select("", "FIELDENUM_INDEX,FIELDENUM_VALUE")) { ListItemEx ListItemField = new ListItemEx(); ListItemField.Value = valueType == 0 ? drFieldEnum["FIELDENUM_ID"].ToString() : drFieldEnum["FIELDENUM_VALUE"].ToString(); //0【字典内码】,1【字典英文】 ListItemField.Text = drFieldEnum["FIELDENUM_NAME"].ToString() + "[" + drFieldEnum["FIELDENUM_VALUE"] + "]"; //字典中文名称[字典英文] ListItemField.Level = level + 1; items.Add(ListItemField); } } } foreach (DataRow _Row in dtFieldExplainType.Select("ExplainType_PID = '" + pid + "'", "EXPLAINTYPE_INDEX,EXPLAINTYPE_NAME,EXPLAINTYPE_ID")) { ListItemEx _ListItem = new ListItemEx(); _ListItem.Value = _Row["ExplainType_ID"].ToString(); _ListItem.Text = _Row["ExplainType_Name"].ToString(); _ListItem.Level = level; if (_ListItem.Value == disabledValue) { continue; } if (!disabled) { _ListItem.Enabled = false; } items.Add(_ListItem); BindingFieldExplainDDL(transaction, dtFieldExplainType, _Row["ExplainType_ID"].ToString(), items, disabledValue, level + 1, disabled, ShowFieldExplain, dtFieldExplain, valueType); if (ShowFieldExplain) { foreach (DataRow drFieldExplain in dtFieldExplain.Select("EXPLAINTYPE_ID = " + _Row["ExplainType_ID"].ToString(), "FIELDEXPLAIN_INDEX,FIELDEXPLAIN_FIELD")) { ListItemEx ListItemField = new ListItemEx(); ListItemField.Value = valueType == 0 ? drFieldExplain["FIELDEXPLAIN_ID"].ToString() : drFieldExplain["FIELDEXPLAIN_FIELD"].ToString(); //0【字典内码】,1【字典英文】 ListItemField.Text = drFieldExplain["FIELDEXPLAIN_NAME"].ToString() + "[" + drFieldExplain["FIELDEXPLAIN_FIELD"] + "]"; //字典中文名称[字典英文] ListItemField.Level = level + 1; items.Add(ListItemField); } } } } #endregion #region 方法 -> 获取枚举字典数据源 /// public static DataTable GetFieldExplainTypeDataSource(Transaction transaction, string pid) { return GetFieldExplainTypeDataSource(transaction, pid, string.Empty); } /// public static DataTable GetFieldExplainTypeDataSource(Transaction transaction, string pid, string obscureName) { string whereSQL = string.IsNullOrEmpty(pid) ? "" : "WHERE EXPLAINTYPE_PID = " + pid; DataTable dtExplainType = new ExplainType(transaction).FillDataTable(whereSQL); if (!string.IsNullOrWhiteSpace(obscureName)) { dtExplainType.DefaultView.RowFilter = "EXPLAINTYPE_NAME like '%" + obscureName + "%'"; } dtExplainType.DefaultView.Sort = "EXPLAINTYPE_INDEX,EXPLAINTYPE_NAME,EXPLAINTYPE_ID"; return dtExplainType.DefaultView.ToTable(); } #endregion } }