#region using System; using System.ComponentModel; using System.Data; using System.Windows.Forms; using CSFrameworkV5.Business; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Core.Common; using CSFrameworkV5.Library; using CSFrameworkV5.Library.CommonClass; using CSFrameworkV5.Models; #endregion namespace CSFrameworkV5.SystemModule { /// /// 字段名对应的中文名称管理 /// public partial class frmFieldNameMgr : frmBase { private bllFieldNameDefs _BLLInstance; private string _DBID = ""; private string _TableName = ""; public frmFieldNameMgr() { InitializeComponent(); } private void btnDel_Click(object sender, EventArgs e) { if (gvSummary.FocusedRowHandle >= 0) { if (Msg.AskQuestion("确定要删除当前记录吗?")) try { frmWaitingEx.ShowMe(this); var row = gvSummary.GetFocusedDataRow(); var key = ConvertEx.ToString( row[sys_FieldNameDefs.__KeyName]); if (_BLLInstance.Delete(key)) //从物理表删除 { gvSummary.DeleteRow(gvSummary .FocusedRowHandle); //删除表格中缓存的记录 (gcSummary.DataSource as DataTable).AcceptChanges(); } } finally { frmWaitingEx.HideMe(this); } } else { Msg.Warning("没有选择记录!"); } } private void btnEmpty_Click(object sender, EventArgs e) { txt_DisplayName.Text = ""; txt_FieldName.Text = ""; txt_TableName.Text = ""; txt_TableName.Focus(); } private void btnFillCaption_Click(object sender, EventArgs e) { var dt = gcSummary.DataSource as DataTable; foreach (DataRow R in dt.Rows) { var caption = R[sys_FieldNameDefs.DisplayName].ToStringEx(); var field = R[sys_FieldNameDefs.FieldName].ToStringEx(); var db = R[sys_FieldNameDefs.DBName].ToStringEx(); if (string.IsNullOrEmpty(caption) || caption.ToLower() == field.ToLower()) //获取字段标题 R[sys_FieldNameDefs.DisplayName] = _BLLInstance.GetCaption(db, field); } } private void btnQuery_Click(object sender, EventArgs e) { try { frmWaitingEx.ShowMe(this); //搜索数据 var dt = _BLLInstance.Search(txt_TableName.Text, txt_FieldName.Text, txt_DisplayName.Text); gcSummary.DataSource = dt; } finally { frmWaitingEx.HideMe(this); } if (gvSummary.RowCount == 0 && txt_FieldName.Text == "" && txt_DisplayName.Text == "") { Msg.Warning("当前表没有字段资料,请确认表名是否输入正确,或者同步表结构!"); btnSync.Focus(); } } private void btnSave_Click(object sender, EventArgs e) { try { frmWaitingEx.ShowMe(this); var data = (gcSummary.DataSource as DataTable).GetChanges(); if (data != null) { _BLLInstance.Update(data); (gcSummary.DataSource as DataTable).AcceptChanges(); gcSummary.RefreshDataSource(); Msg.ShowInformation("保存成功!"); } else { Msg.Warning("您没有修改数据!"); } } finally { frmWaitingEx.HideMe(this); } } private void btnSync_Click(object sender, EventArgs e) { Assertion.AssertEditorEmpty(txt_DBs, "请选择数据库!", true); Assertion.AssertEditorEmpty(txt_TableNameSync, "请输入表名!", true); var msg = "确定要同步表结构数据吗? 注:保留中文字段描述"; if (Msg.AskQuestion(msg)) try { frmWaitingEx.ShowMe(this); //同步表名 var dt = _BLLInstance.SyncTable(txt_DBs.Text, txt_TableNameSync.Text); if (dt.Rows.Count > 0) { gcSummary.DataSource = dt; Msg.ShowInformation("同步完成,共生成" + dt.Rows.Count.ToStringEx() + "条记录!"); } else { Msg.Warning("资料表不存在!"); } } catch (Exception ex) { Msg.ShowError(ex.Message); } finally { frmWaitingEx.HideMe(this); } } /// /// 由外部程序调用打开窗体 /// /// 父级窗体 /// 当前数据库 /// 当前数据库 /// 表名 /// 登录账号 /// 登录密码(明文密码) /// 是否外部调用 public static void Exceute( Form ownerForm, string dataSetID, string dataSetDBName, string tableName, string loginAccount, string loginPwd, bool isExternalCall) { //外部调用传入登录信息 if (isExternalCall) { KeyProvider.Default = new KeyProviderRijndael("%SaFz$^p", "3aW%^&Fd"); var user = new Loginer(); user.Account = loginAccount; user.Password = KeyProvider.Default.Encrypt(loginPwd); //test user.AccountName = loginAccount; user.DBID = dataSetID; user.DBName = dataSetDBName; user.LoginAuthType = LoginAuthType.LocalSystemAuth; user.LoginTime = DateTime.Now; Loginer.CurrentUser = user; //外部调用,要初始化连接以及加载账套! if (BridgeFactory.InitializeBridge()) { Loginer.CurrentUser = user; //未登陆:加载系统参数配置 var dtConfig = CommonData.GetSystemSettings4Program("", ""); SystemSettings.Current.Load(dtConfig); } else { throw new CustomException("初始化后连接连接策略失败!"); } } var form = new frmFieldNameMgr(); form.Owner = ownerForm; form.ShowInTaskbar = true; form.Init(dataSetDBName, tableName); frmWaitingEx.HideMe(form); form.ShowDialog(); } private void frmFieldNameMgr_Load(object sender, EventArgs e) { CCursor.ShowDefaultCursor(); frmGridCustomize.RegisterGrid(gvSummary); } private void gcSummary_Click(object sender, EventArgs e) { } /// /// 外部调用初始化窗体 /// /// /// private void Init(string DBName, string tableName) { _BLLInstance = new bllFieldNameDefs(); _DBID = DBName; _TableName = tableName; //加载数据库 LoadDB(); if (!string.IsNullOrEmpty(_DBID)) txt_DBs.EditValue = _DBID; //加载数据表 if (!string.IsNullOrEmpty(DBName)) LoadTable(DBName); if (!string.IsNullOrEmpty(_TableName)) { txt_TableName.EditValue = _TableName; txt_TableNameSync.EditValue = _TableName; } } /// /// 加载系统数据库所在服务器的全部数据库清单 /// /// private void LoadDB() { txt_DBs.Properties.DisplayMember = "DBName"; txt_DBs.Properties.ValueMember = "DBName"; txt_DBs.Properties.DataSource = _BLLInstance.GetDataBaseList(); } private void LoadTable(string DBName) { if (ConvertEx.ToString(txt_TableNameSync.Tag) != DBName) { txt_TableNameSync.Properties.DisplayMember = "TableName"; txt_TableNameSync.Properties.ValueMember = "TableName"; txt_TableNameSync.Properties.DataSource = _BLLInstance.GetTableNames(DBName); txt_TableNameSync.Tag = DBName; //标记 } } private void txt_DBs_EditValueChanged(object sender, EventArgs e) { txt_TableNameSync.Properties.DataSource = null; txt_TableNameSync.EditValue = null; } private void txt_TableNameSync_EditValueChanged(object sender, EventArgs e) { //清空记录 if (gcSummary.DataSource != null && gcSummary.DataSource is DataTable) { var dt = gcSummary.DataSource as DataTable; dt.Rows.Clear(); dt.AcceptChanges(); gcSummary.RefreshDataSource(); } } private void txt_TableNameSync_QueryPopUp(object sender, CancelEventArgs e) { if (txt_DBs.Text != "") LoadTable(txt_DBs.Text); else txt_DBs.Focus(); } } }