#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
}
}