using ProjectBase.Data.BaseDAL;
using ProjectBase.Data.Logs;
using SIMDP.BLL;
using SIMDP.Model;
using ProjectBase.Util;
using System;
using System.Data;
using System.Windows.Forms;
namespace SIMDP.View
{
public partial class FormEditRuleValue : DevExpress.XtraEditors.XtraForm
{
///
/// 执行添加修改操作的rule_Value
///
private DataTable dt;
///
/// 需要修改的变量
///
private DataRow dtRow;
///
/// 构造函数
///
/// 执行添加修改操作的rule_Value
/// 要修改的变量/param>
public FormEditRuleValue(DataTable dtRule, DataRow selectRow)
{
InitializeComponent();
dt = dtRule;
InitControls(selectRow);
}
///
/// 初始化控件
///
/// 要修改的变量
private void InitControls(DataRow selectRow)
{
//下拉框--类型
BindingSource bsType = new BindingSource();
bsType.DataSource = SysEnvironment.dirType;
this.lookUp_RuleType.Properties.DataSource = bsType;
this.lookUp_RuleType.Properties.ValueMember = "Key";
this.lookUp_RuleType.Properties.DisplayMember = "Value";
this.lookUp_RuleType.Properties.NullText = "请您选择";
//下拉框--查询条件
BindingSource bsQuery = new BindingSource();
bsQuery.DataSource = SysEnvironment.dirRuleValueQuery;
this.lookUp_RuleQuery.Properties.DataSource = bsQuery;
this.lookUp_RuleQuery.Properties.ValueMember = "Key";
this.lookUp_RuleQuery.Properties.DisplayMember = "Value";
this.lookUp_RuleQuery.Properties.NullText = "请您选择";
//下拉框--名称
this.textEditRuleName.Text = selectRow["Name"].ToString();
this.lookUp_RuleType.EditValue = Convert.ToInt32(selectRow["Type"]);
this.lookUp_RuleQuery.Properties.NullText = selectRow["Query"].ToString();
this.txt_RuleOrder.Text = selectRow["OrderNum"].ToString();
if (selectRow != null)
{
dtRow = selectRow;
}
}
private void btn_Cancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btn_Save_Click(object sender, EventArgs e)
{
try
{
if (lookUp_RuleType.Text == "请您选择" || lookUp_RuleQuery.Text == "请您选择" || string.IsNullOrEmpty(txt_RuleOrder.Text))
{
DevExpress.XtraEditors.XtraMessageBox.Show("请将信息填写完整。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
DataRow[] drArr = dt.Select(string.Format("OrderNum = '{0}'", txt_RuleOrder.Text));
if (drArr.Length > 0)
{
if (dtRow["OrderNum"].ToString() != txt_RuleOrder.Text)
{
DevExpress.XtraEditors.XtraMessageBox.Show("此序号已存在,请重新输入。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
}
FormUserVerification form = new FormUserVerification();
form.ShowDialog();
if (form.DialogResult != DialogResult.OK)
{
DevExpress.XtraEditors.XtraMessageBox.Show("用户验证失败。", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
string ruleId = dtRow["RuleId"].ToString();
//string id = lookUp_RuleID.Text;
string name = this.textEditRuleName.Text;
string type = lookUp_RuleType.EditValue.ToString();
string orderNum = txt_RuleOrder.Text;
string query = lookUp_RuleQuery.Text;
dt.Rows.Remove(dtRow);
dt.Rows.Add(ruleId, name, type, orderNum, query);
//将dataTable中的数据按照规则组合成数据表rules中的rule_value字段值
//BlRule blRule = new BlRule();
string ruleValue = BLLFactory.Instance.FormRuleValue(dt);
MoRule rule = BLLFactory.Instance.FindByID(ruleId);
rule.RuleValue = ruleValue;
//修改数据库中的rule_value
bool flag = BLLFactory.Instance.Update(rule, ruleId);
if (flag)
{
DevExpress.XtraEditors.XtraMessageBox.Show("修改成功。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
}
catch (Exception ex)
{
DevExpress.XtraEditors.XtraMessageBox.Show("修改失败。", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
LogHelper.log.Error(string.Format("修改数据库rules出现错误:{0}", ex));
}
}
}
}