#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
|
{
|
/// <summary>
|
/// AdvancedFormConfig的资料管理窗体,由代码生成器(Code Generator)自动生成
|
/// </summary>
|
public partial class frmAdvancedFormConfig : frmBaseDataDictionary
|
{
|
private AdvancedFormConfig _BLLInstance;
|
|
private List<FieldConfig> _LastConfig = new List<FieldConfig>();
|
|
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;
|
}
|
}
|
|
/// <summary>
|
/// 绑定修改页面中所有输入框的数据源
|
/// </summary>
|
/// <param name="summary">数据源</param>
|
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
|
}
|
}
|