You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
314 lines
13 KiB
314 lines
13 KiB
using System; |
|
using System.Data; |
|
using System.Windows; |
|
using KGIS.Framework.DBOperator; |
|
using KGIS.Framework.Maps; |
|
using KGIS.Framework.Utils; |
|
using KGIS.Framework.Utils.Helper; |
|
using Kingo.PluginServiceInterface; |
|
|
|
namespace Kingo.Plugin.DataDictionary.Views |
|
{ |
|
/// <summary> |
|
/// DataDicDetailEdit.xaml 的交互逻辑 |
|
/// </summary> |
|
public partial class DataDicDetailEdit : BaseWindow |
|
{ |
|
private string dbPath = null; |
|
/// <summary> |
|
/// 父级节点ID |
|
/// </summary> |
|
public string OWNERDIC { get; set; } |
|
/// <summary> |
|
/// TreeNode信息 |
|
/// </summary> |
|
public DataRow DrvNode { get; set; } |
|
/// <summary> |
|
/// 保存当前修改后节点 |
|
/// </summary> |
|
public Action<bool, DicTreeNode, string> ActionChecked; |
|
|
|
//初始化 |
|
public DataDicDetailEdit(string parentName = null) |
|
{ |
|
InitializeComponent(); |
|
if ((MapsManager.Instance.CurrProjectInfo as ProjectInfo) is ProjectInfo) |
|
{ |
|
dbPath = ((MapsManager.Instance.CurrProjectInfo as ProjectInfo) as ProjectInfo).GetDicDataPath(); |
|
} |
|
if (!string.IsNullOrWhiteSpace(parentName)) |
|
{ |
|
ParentName.Text = parentName; |
|
} |
|
} |
|
|
|
//保存 |
|
private void btnSave_Click(object sender, RoutedEventArgs e) |
|
{ |
|
int tmp; |
|
if (!int.TryParse(txtPaixu.Text, out tmp)) |
|
{ |
|
MessageHelper.Show("排序文本框,请正确输入数字。"); |
|
return; |
|
} |
|
if (string.IsNullOrWhiteSpace(dbPath)) |
|
return; |
|
IRDBHelper rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + dbPath, DatabaseType.SQLite); |
|
try |
|
{ |
|
//新增数据 |
|
if (this.DataContext == null) |
|
{ |
|
//验证Code是否已经存在,如果存在则提醒 |
|
string strChecksql = string.Format("select * from Sys_DicDetail where OWNERDIC='{0}' and CODE='{1}'", OWNERDIC, txtCode.Text.Trim()); |
|
DataTable dtCheck = rdbHelper.ExecuteDatatable("Sys_DicDetail", strChecksql, false); |
|
if (dtCheck.Rows.Count > 0) |
|
{ |
|
txtCode.Focus(); |
|
MessageHelper.Show("您输入的字典编码已存在,请重新填写!"); |
|
return; |
|
} |
|
string strSql = string.Format("insert into Sys_DicDetail (PID,NAME,CODE,OWNERDIC,REMARK,PAIXU)" + |
|
"VALUES ('{0}','{1}','{2}','{3}','{4}',{5})", ParentID.Text, txtName.Text.Trim(), txtCode.Text.Trim(), OWNERDIC, txtRemark.Text.Trim(), Convert.ToInt32(txtPaixu.Text)); |
|
int res = rdbHelper.ExecuteNonQuery(strSql, CommandType.Text); |
|
DataTable dtChecks = rdbHelper.ExecuteDatatable("Sys_DicD", strChecksql, false); |
|
if (res > 0) |
|
{ |
|
if (ActionChecked != null) |
|
{ |
|
DicTreeNode treeNodes = new DicTreeNode() |
|
{ |
|
Name = "[" + txtCode.Text.Trim() + "]" + txtName.Text, |
|
IsExpanded = true, |
|
IsParent = true, |
|
Paixu = Convert.ToInt32(txtPaixu.Text) |
|
}; |
|
if (dtChecks != null && dtChecks.Rows.Count > 0) |
|
{ |
|
foreach (var item in dtChecks.Rows) |
|
{ |
|
treeNodes.Data = item as DataRow; |
|
break; |
|
} |
|
} |
|
if (ParentID.Text.Trim().ToString() == "") |
|
{ |
|
treeNodes.IsParent = false; |
|
treeNodes.Icon = "pack://application:,,,/KGIS.PlatformPlugin;component/Resources/zrz.png"; |
|
ActionChecked(false, treeNodes, ""); |
|
} |
|
else |
|
{ |
|
treeNodes.IsParent = false; |
|
// treeNodes.Icon = "pack://application:,,,/KGIS.Resource;component/Images/zrz.png"; |
|
treeNodes.Icon = "pack://application:,,,/KGIS.PlatformPlugin;component/Resources/zrz.png"; |
|
ActionChecked(false, treeNodes, ParentID.Text.Trim().ToString()); |
|
} |
|
} |
|
this.Close(); |
|
} |
|
} |
|
if (this.DataContext != null) |
|
{ |
|
DataRow drv = this.DataContext as DataRow; |
|
//验证Code是否已经存在,如果存在则提醒 |
|
string strChecksql = string.Format("select * from Sys_DicDetail where OWNERDIC='{0}' and CODE='{1}' and ID <>{2}", OWNERDIC, txtCode.Text.Trim(), drv["ID"]); |
|
DataTable dtCheck = rdbHelper.ExecuteDatatable("Sys_DicDetail", strChecksql, false); |
|
//if (dtCheck.Rows.Count > 0) |
|
//{ |
|
// txtCode.Focus(); |
|
// MessageHelper.Show("您输入的字典编码已存在,请重新填写!"); |
|
// return; |
|
//} |
|
string strSql = string.Format("UPDATE Sys_DicDetail set NAME='{0}',CODE='{1}',PID='{2}',REMARK='{3}',PAIXU={4} " + |
|
" where id={5} ", txtName.Text.Trim(), txtCode.Text.Trim(), ParentID.Text, txtRemark.Text.Trim(), Convert.ToInt32(txtPaixu.Text), drv["ID"]); |
|
int res = rdbHelper.ExecuteNonQuery(strSql, CommandType.Text); |
|
strChecksql = string.Format("select * from Sys_DicDetail where OWNERDIC='{0}' and CODE='{1}' and ID={2}", OWNERDIC, txtCode.Text.Trim(), drv["ID"]); |
|
DataTable dtChecks = rdbHelper.ExecuteDatatable("Sys_DicDeta", strChecksql, false); |
|
if (res > 0) |
|
{ |
|
if (ActionChecked != null) |
|
{ |
|
DicTreeNode treeNodes = new DicTreeNode() |
|
{ |
|
Name = "[" + txtCode.Text.Trim() + "]" + txtName.Text, |
|
IsExpanded = true, |
|
IsParent = true, |
|
Paixu = Convert.ToInt32(txtPaixu.Text) |
|
}; |
|
if (dtChecks != null && dtChecks.Rows.Count > 0) |
|
{ |
|
foreach (var item in dtChecks.Rows) |
|
{ |
|
treeNodes.Data = item as DataRow; |
|
break; |
|
} |
|
} |
|
if (ParentID.Text.Trim().ToString() == "") |
|
{ |
|
treeNodes.IsParent = false; |
|
treeNodes.Icon = "pack://application:,,,/KGIS.PlatformPlugin;component/Resources/zrz.png"; |
|
ActionChecked(false, treeNodes, ""); |
|
} |
|
else |
|
{ |
|
treeNodes.IsParent = false; |
|
treeNodes.Icon = "pack://application:,,,/KGIS.PlatformPlugin;component/Resources/zrz.png"; |
|
ActionChecked(false, treeNodes, ParentID.Text.Trim().ToString()); |
|
} |
|
} |
|
this.Close(); |
|
} |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
//记录日志 |
|
LogAPI.Debug(ex); |
|
MessageHelper.Show(ex.Message); |
|
} |
|
finally |
|
{ |
|
//关闭数据库连接 |
|
rdbHelper.DisConnect(); |
|
} |
|
} |
|
|
|
// 取消按钮,直接关闭编辑框 |
|
private void btnCancel_Click(object sender, RoutedEventArgs e) |
|
{ |
|
this.Close(); |
|
} |
|
|
|
// 验证事件,非空验证 |
|
private void Validate(object sender, DevExpress.Xpf.Editors.ValidationEventArgs e) |
|
{ |
|
if (e.Value != null) |
|
{ |
|
if (e.Value is string) |
|
{ |
|
if (string.IsNullOrWhiteSpace(e.Value as string)) |
|
{ |
|
e.IsValid = false; |
|
e.ErrorContent = "值不能为空"; |
|
} |
|
} |
|
else if (e.Value is float || e.Value is double || e.Value is Int32 || e.Value is decimal) |
|
{ |
|
double db = Convert.ToDouble(e.Value); |
|
if (db == 0) |
|
{ |
|
e.IsValid = false; |
|
e.ErrorContent = "值不能为0"; |
|
} |
|
} |
|
} |
|
else |
|
{ |
|
e.IsValid = false; |
|
e.ErrorContent = "值不能为空"; |
|
} |
|
// MessageBox.Show("我是验证事件ain"); |
|
} |
|
|
|
//页面数据初始 |
|
public void InitPage(DataRow dtBGXM) |
|
{ |
|
if (string.IsNullOrWhiteSpace(dbPath)) |
|
return; |
|
this.Title = "编辑字典"; |
|
|
|
DataRow drNew = dtBGXM.Table.NewRow(); |
|
drNew.ItemArray = dtBGXM.ItemArray; |
|
|
|
//绑定数据源 |
|
this.DataContext = drNew; |
|
|
|
#region 查询父级名称代码 |
|
//给控件赋值 |
|
if (string.IsNullOrWhiteSpace(drNew["PID"].ToString())) |
|
{ |
|
return; |
|
} |
|
IRDBHelper rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + dbPath, DatabaseType.SQLite); |
|
try |
|
{ |
|
string strSql = string.Format("select * from Sys_DicDetail where ID={0}", drNew["PID"]); |
|
DataTable dt = rdbHelper.ExecuteDatatable("Sys_DicDetail", strSql, false); |
|
if (dt.Rows.Count > 0) |
|
{ |
|
ParentName.Text = "[" + dt.Rows[0]["CODE"].ToString() + "]" + dt.Rows[0]["NAME"].ToString(); |
|
ParentID.Text = drNew["PID"].ToString(); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
//记录日志 |
|
LogAPI.Debug(ex); |
|
MessageHelper.ShowError(ex.Message); |
|
} |
|
finally |
|
{ |
|
//关闭数据库连接 |
|
rdbHelper.DisConnect(); |
|
} |
|
#endregion |
|
} |
|
|
|
//选择按钮 |
|
private void btnSelect_Click(object sender, RoutedEventArgs e) |
|
{ |
|
DicHelpTree main = new DicHelpTree(); |
|
main.OWNERDIC = OWNERDIC; |
|
main.GetValueHandler += GetValue; |
|
main.Width = 330; |
|
main.Height = 500; |
|
main.Left = 482; |
|
main.Top = 266; |
|
//编辑数据 |
|
if (this.DataContext != null) |
|
{ |
|
DataRow drv = this.DataContext as DataRow; |
|
main.MINEID = drv["ID"].ToString(); |
|
} |
|
main.ShowInMainWindow(true); |
|
} |
|
|
|
//委托事件方法,给控件赋值 |
|
private void GetValue(string sName, string sID) |
|
{ |
|
ParentName.Text = sName; |
|
ParentID.Text = sID; |
|
} |
|
|
|
//加载事件 |
|
private void BaseWindow_Loaded(object sender, RoutedEventArgs e) |
|
{ |
|
if (DrvNode != null && !string.IsNullOrWhiteSpace(dbPath)) |
|
{ |
|
IRDBHelper rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + dbPath, DatabaseType.SQLite); |
|
try |
|
{ |
|
string strSql = string.Format("select * from Sys_DicDetail where ID={0}", DrvNode["ID"]); |
|
DataTable dt = rdbHelper.ExecuteDatatable("Sys_DicDetail", strSql, false); |
|
if (dt.Rows.Count > 0) |
|
{ |
|
ParentName.Text = "[" + dt.Rows[0]["CODE"].ToString() + "]" + dt.Rows[0]["NAME"].ToString(); |
|
ParentID.Text = DrvNode["ID"].ToString(); |
|
} |
|
} |
|
catch (Exception ex) |
|
{ |
|
//记录日志 |
|
LogAPI.Debug(ex); |
|
MessageHelper.ShowError(ex.Message); |
|
} |
|
finally |
|
{ |
|
//关闭数据库连接 |
|
rdbHelper.DisConnect(); |
|
} |
|
} |
|
} |
|
} |
|
}
|
|
|