|
|
|
|
using KGIS.Framework.DBOperator;
|
|
|
|
|
using KGIS.Framework.Utils;
|
|
|
|
|
using KGIS.Framework.Utils.Helper;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using System.Data;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
|
|
|
|
|
namespace Kingo.Plugin.DataDictionary.Views
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// DicHelpTree.xaml 的交互逻辑
|
|
|
|
|
/// </summary>
|
|
|
|
|
public partial class DicHelpTree : BaseWindow
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 委托函数
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="sName">名称</param>
|
|
|
|
|
/// <param name="sID">ID</param>
|
|
|
|
|
public delegate void DelegateGetValue(string sName, string sID);
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取返回值事件
|
|
|
|
|
/// </summary>
|
|
|
|
|
public event DelegateGetValue GetValueHandler;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 父级ID
|
|
|
|
|
/// </summary>
|
|
|
|
|
public string OWNERDIC { get; set; }
|
|
|
|
|
|
|
|
|
|
//编辑时使用,排除自己的数据显示
|
|
|
|
|
public string MINEID { get; set; }
|
|
|
|
|
|
|
|
|
|
public DicHelpTree()
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//取消按钮
|
|
|
|
|
private void btnCancel_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
//清空事件
|
|
|
|
|
private void btnClean_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (GetValueHandler != null)
|
|
|
|
|
{
|
|
|
|
|
GetValueHandler("", "");
|
|
|
|
|
}
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void btnSave_Click(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (GetValueHandler != null)
|
|
|
|
|
{
|
|
|
|
|
TreeNode item = this.tvHelpTree.SelectedItem as TreeNode;
|
|
|
|
|
if (item != null && item.Data != null)
|
|
|
|
|
{
|
|
|
|
|
DataRowView drv = item.Data as DataRowView;
|
|
|
|
|
string sID = drv["ID"].ToString();
|
|
|
|
|
GetValueHandler(item.Name, sID);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
this.Close();
|
|
|
|
|
}
|
|
|
|
|
//加载
|
|
|
|
|
private void BaseWindow_Loaded(object sender, RoutedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
//tvHelpTree
|
|
|
|
|
IRDBHelper rdbHelper = null;
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
string connStr = SysConfigsOprator.GetDBConnectionByName("MDBOledbConnection");
|
|
|
|
|
connStr = string.Format(connStr, SysAppPath.GetCurrentAppPath() + @"DataBase\System.mdb"); ;
|
|
|
|
|
rdbHelper = RDBFactory.CreateDbHelper(connStr, DatabaseType.MSAccess);
|
|
|
|
|
DataTable dtDict = rdbHelper.ExecuteDatatable("Sys_DicDetail", "select * from Sys_DicDetail", false);
|
|
|
|
|
ObservableCollection<TreeNode> itemList = new ObservableCollection<TreeNode>();
|
|
|
|
|
|
|
|
|
|
DataView dvDict = dtDict.DefaultView;
|
|
|
|
|
dvDict.RowFilter = " OWNERDIC='" + OWNERDIC + "' and (PID is null or PID='')";
|
|
|
|
|
if (dvDict.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
foreach (DataRowView view in dvDict)
|
|
|
|
|
{
|
|
|
|
|
int id = Convert.ToInt32(view["ID"].ToString());
|
|
|
|
|
string name = view["NAME"].ToString() + "[" + view["CODE"].ToString() + "]";
|
|
|
|
|
if (MINEID == view["OBJECTID"].ToString())
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
TreeNode childNodeItem = new TreeNode()
|
|
|
|
|
{
|
|
|
|
|
Name = name,
|
|
|
|
|
Icon = "pack://application:,,,/KGIS.PlatformPlugin;component/Resources/zrz.png",
|
|
|
|
|
IsExpanded = false,
|
|
|
|
|
Data = view
|
|
|
|
|
};
|
|
|
|
|
ForeachPropertyNode(childNodeItem, id, dtDict);
|
|
|
|
|
itemList.Add(childNodeItem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//ForeachPropertyNode(node, id);
|
|
|
|
|
//itemList.Add(node);
|
|
|
|
|
this.tvHelpTree.ItemsSource = itemList;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
MessageHelper.ShowError("数据加载异常!" + ex.Message);
|
|
|
|
|
LogAPI.Debug(ex);
|
|
|
|
|
}
|
|
|
|
|
finally
|
|
|
|
|
{
|
|
|
|
|
if (rdbHelper != null)
|
|
|
|
|
{
|
|
|
|
|
rdbHelper.DisConnect();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//无限极增加子节点
|
|
|
|
|
private void ForeachPropertyNode(TreeNode node, int pid, DataTable dtDict)
|
|
|
|
|
{
|
|
|
|
|
DataView dvDict = dtDict.DefaultView;
|
|
|
|
|
dvDict.RowFilter = " PID='" + pid.ToString() + "'";
|
|
|
|
|
|
|
|
|
|
if (dvDict.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
node.Nodes = new System.Collections.ObjectModel.ObservableCollection<TreeNode>();
|
|
|
|
|
foreach (DataRowView view in dvDict)
|
|
|
|
|
{
|
|
|
|
|
int id = Convert.ToInt32(view["ID"].ToString());
|
|
|
|
|
string name = view["NAME"].ToString() + "[" + view["CODE"].ToString() + "]"; ;
|
|
|
|
|
int parentId = Convert.ToInt32(view["PID"].ToString());
|
|
|
|
|
if (MINEID == view["ID"].ToString())
|
|
|
|
|
{
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
TreeNode childNodeItem = new TreeNode()
|
|
|
|
|
{
|
|
|
|
|
Name = name,
|
|
|
|
|
Icon = "pack://application:,,,/KGIS.PlatformPlugin;component/Resources/zrz.png",
|
|
|
|
|
IsExpanded = false,
|
|
|
|
|
Data = view
|
|
|
|
|
};
|
|
|
|
|
ForeachPropertyNode(childNodeItem, id, dtDict);
|
|
|
|
|
node.Nodes.Add(childNodeItem);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|