#region using System; using System.Collections.Generic; using System.Data; using CSFrameworkV5.Business; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Interfaces.InterfaceModels; using CSFrameworkV5.Library; using CSFrameworkV5.Library.CommonClass; using CSFrameworkV5.Models; #endregion namespace CSFrameworkV5.SystemModule { /// /// AdvancedFormConfig的资料管理窗体,由代码生成器(Code Generator)自动生成 /// public partial class frmAdvancedFormConfig : frmBaseDataDictionary { private AdvancedFormConfig _BLLInstance; private List _LastConfig = new List(); public frmAdvancedFormConfig() { InitializeComponent(); } private void btnDesign_Click(object sender, EventArgs e) { if (txtSystemID.Text == "") { Msg.Warning("请选择系统编号!"); txtSystemID.Focus(); return; } if (txtProgramID.Text == "") { Msg.Warning("请选择程序编号!"); txtProgramID.Focus(); return; } if (txtStyleID.Text == "") { Msg.Warning("请输入方案名称!"); txtStyleID.Focus(); return; } var systemID = ConvertEx.ToString(txtSystemID.EditValue); //对应tb_DataSet.DBName var programID = ConvertEx.ToString(txtProgramID.EditValue); //对应TableName var configName = txtStyleID.Text; //方案编号 var applyType = ConvertEx.ToString(txtApplyType.EditValue); //未使用 var IDs = txtGroupsOrUsers.Text; if (IsAddMode) { // //重复检查提示: 此程序针对【所有用户】已经指定方案,方案编号为001! // //每个窗口,针对所有用户只允许保存一个方案 //每个窗口,针对同一个组的也只允许保存一个方案 //每个窗口,针对同一个人的也只允许保存一个方案 var outMsg = _BLLInstance.ExistsConfig(systemID, programID, configName, applyType, IDs); if (!string.IsNullOrEmpty(outMsg)) { Msg.Warning(outMsg); return; } } if (IsEditMode || IsViewMode) { var bs = _BLLInstance.DataBinderRow[sys_AdvancedFormConfig.Fields] as byte[]; var tmpList = ZipTools.DecompressionArrayList(bs); if (tmpList != null) foreach (FieldConfig F in tmpList) _LastConfig.Add(F); } if (_LastConfig.Count == 0) { //获取当前业务单据的主表的字段 var dbName = ConvertEx.ToString(txtSystemID.EditValue); var listFields = AdvancedFilterTools.GetTableFields(dbName, programID); //转换成字段配置对象 foreach (var F in listFields) _LastConfig.Add(new FieldConfig(F)); } //打开配置窗体 frmFormConfigDetail.Execute(_LastConfig, IsViewMode); } private void btnEmpty_Click(object sender, EventArgs e) { ClearContainerEditorText(pnlSearch); } private void btnQuery_Click(object sender, EventArgs e) { //搜索数据 try { frmWaitingEx.ShowMe(this); var dt = _BLLInstance.Search( ConvertEx.ToString(txt_SystemName.EditValue), ConvertEx.ToString(txt_ProgramName.EditValue), ConvertEx.ToString(txt_StyleID.EditValue)); DoBindingSummaryGrid(dt); //绑定主表的Grid ShowSummaryPage(true); //显示Summary页面. } finally { frmWaitingEx.HideMe(this); } if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!"); } private void btnSelectUserAndGroup_Click(object sender, EventArgs e) { var type = txtApplyType.EditValue.ToStringEx(); if (type == "Groups") { var codes = txtGroupsOrUsers.Text; if (frmChoiceGroupOrUser.ExecuteGroup(ref codes)) SetEditorBindingValue(txtGroupsOrUsers, codes, true); } if (type == "Users") { var codes = txtGroupsOrUsers.Text; if (frmChoiceGroupOrUser.ExecuteUser(ref codes)) SetEditorBindingValue(txtGroupsOrUsers, codes, true); } } protected override void ButtonStateChanged(UpdateType currentState) //按钮状态改变时触发的事件 { base.ButtonStateChanged(currentState); txtSystemID.Enabled = IsAddMode; txtProgramID.Enabled = IsAddMode; txtApplyType.Enabled = IsAddMode; txtStyleID.Properties.ReadOnly = !IsAddMode; txtGroupsOrUsers.Properties.ReadOnly = true; //只读,必须选择组或用户 btnSelectUserAndGroup.Enabled = IsAddMode; //必须清除缓存 _LastConfig.Clear(); if (IsAddOrEditMode) btnDesign.Text = "开始设计"; else btnDesign.Text = "查看设计"; } public override void DoAdd(IButtonInfo sender) { base.DoAdd(sender); if (IsAddMode) { SetEditorBindingValue(txtSystemID, Loginer.CurrentUser.DBID, true); SetEditorBindingValue(txtApplyType, "AllUser", true); _BLLInstance.DataBinderRow[sys_AdvancedFormConfig.RowID] = Globals.NewRowID(); _BLLInstance.DataBinderRow[sys_AdvancedFormConfig.Account] = Loginer.CurrentUser.Account; } } /// /// 绑定修改页面中所有输入框的数据源 /// /// 数据源 protected override void DoBindingSummaryEditor(DataTable summary) { DoBindingEditorPanel(pcDetailEditor, summary); DoBindingEditorPanel(groupControl1, summary); } public override void DoSave(IButtonInfo sender) { //将配置信息对象转换为byte数组 var bs = ZipTools.CompressionArrayList(_LastConfig); _BLLInstance.DataBinderRow[sys_AdvancedFormConfig.Fields] = bs; base.DoSave(sender); } private void frmAdvancedFormConfig_Load(object sender, EventArgs e) { InitializeForm(); //自定义初始化操作 DataBinderTools.BoundDBDataSet(txt_SystemName, tb_DataSet.DBName); DataBinderTools.BoundFormTable(txt_ProgramName); DataBinderTools.BoundDBDataSet(txtSystemID, tb_DataSet.DBName); DataBinderTools.BoundFormTable(txtProgramID); DataBinderTools.BoundDBDataSet(lueSystemID); DataBinderTools.BoundFormTable(lueProgramID); } protected override void InitializeForm() { _SummaryView = new DevGridView( gvSummary); //实例化数据主视图,此接口可支持不同的主视图,比如Grid,TreeList. _DetailGroupControl = pcDetailEditor; //修改页面所有输入框的容器 _BLL = new AdvancedFormConfig(); //实例化基类业务逻辑层 _BLLInstance = _BLL as AdvancedFormConfig; //本窗体的业务层对象引用 base.InitializeForm(); } protected override void ShowSummary() { //重写此方法打开窗体时不显示任何数据 } private void txtApplyType_EditValueChanged(object sender, EventArgs e) { if (IsAddMode) { SetEditorBindingValue(txtApplyType, txtApplyType.EditValue, false); btnSelectUserAndGroup.Enabled = txtApplyType.EditValue != null && txtApplyType.EditValue.ToStringEx() != "AllUser"; SetEditorBindingValue(txtGroupsOrUsers, "", true); } } //检查主表数据完整性 protected override bool ValidatingData() { if (ConvertEx.ToString(txtSystemID.EditValue).Trim() == string.Empty) { Msg.Warning("系统编号不能为空!"); txtSystemID.Focus(); return false; } if (ConvertEx.ToString(txtProgramID.EditValue).Trim() == string.Empty) { Msg.Warning("程序编号不能为空!"); txtProgramID.Focus(); return false; } if (ConvertEx.ToString(txtStyleID.EditValue).Trim() == string.Empty) { Msg.Warning("方案编号不能为空!"); txtStyleID.Focus(); return false; } return true; } #region 自动生成的事件或方法的主体部份 #endregion } }