年度变更建库软件5.0版本
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.
 
 

720 lines
33 KiB

using ESRI.ArcGIS.Carto;
using ESRI.ArcGIS.Geodatabase;
using KGIS.Framework.DBOperator;
using KGIS.Framework.Maps;
using KGIS.Framework.Platform;
using KGIS.Framework.Utils;
using KGIS.Framework.Utils.Helper;
using Kingo.Plugin.General.Model;
using Kingo.PluginServiceInterface;
using Kingo.PluginServiceInterface.Model;
using KUI.Windows;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using static Kingo.PluginServiceInterface.Model.BatchAttribute;
namespace Kingo.Plugin.General.ViewDTBJK
{
/// <summary>
/// UCSetBatchAttribute.xaml 的交互逻辑
/// </summary>
public partial class UCSetBatchAttribute : BaseWindow
{
private ProjectInfo ProjectInfo { get; set; }
private TaskPackage _taskPackage { get; set; }
List<DataDicTionary> Dics = null;
private Dictionary<string, string> AttributeBMAndName { get; set; }
List<ListTbbsm> listTBBSM { get; set; }
public UCSetBatchAttribute()
{
InitializeComponent();
SetFieldsPage.Visibility = Visibility.Collapsed;
SetTBPage.Visibility = Visibility.Collapsed;
listTBBSM = new List<ListTbbsm>();
AttributeBMAndName = new Dictionary<string, string>() { { "DDTCBZ", "DDTCMC" }, { "DLBM", "DLMC" }, { "TBXHDM", "TBXHMC" }, { "ZZSXDM", "ZZSXMC" } };
}
public void BindData(TaskPackage taskPackage)
{
try
{
_taskPackage = taskPackage;
ProjectInfo = KGIS.Framework.Maps.MapsManager.Instance.MapService.GetProjectInfo() as ProjectInfo;
if (Platform.Instance.DicHelper != null && (Dics == null || Dics.Count == 0))
{
Dics = Platform.Instance.DicHelper.GetAllDic();
}
gridPackage.ItemsSource = null;
gridPackage.ItemsSource = InitListBatchAttributes(taskPackage);
dgSetTBTableMapping.ItemsSource = null;
listTBBSM = GetAllTBBSM();
dgSetTBTableMapping.ItemsSource = listTBBSM;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.BindData 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.BindData 异常:" + ex.StackTrace);
}
}
private List<BatchAttribute> InitListBatchAttributes(TaskPackage taskPackage)
{
IRDBHelper rDBHelper = null;
try
{
string packagePath = taskPackage.PackagePath;
if (ProjectInfo == null) return null;
if (ProjectInfo.ListBatchAttributes == null || ProjectInfo.ListBatchAttributes.Count == 0)
{
if (taskPackage.PackageTempPath != null && File.Exists(taskPackage.PackageTempPath))
packagePath = taskPackage.PackageTempPath;
rDBHelper = RDBFactory.CreateDbHelper($"{packagePath}{ProjectInfo.Pathpassword}", DatabaseType.SQLite);
DataTable dataTable = rDBHelper.ExecuteDatatable("data", "SELECT * FROM DTBDLTBGX;", true);
if (dataTable == null)
{
LogAPI.Debug("未找到DTBDLTBGX文件中存在表或者DTBDLTBGX文件数据为空!");
return null;
}
LayerFieldCfg Cfg = null;
string cfgFilePath = System.IO.Path.Combine(SysAppPath.GetConfigPath(), "LayerFieldsCfg.xml");
if (!string.IsNullOrEmpty(cfgFilePath) && Cfg == null)
Cfg = SerializeAPI.DeserializeToObject2<LayerFieldCfg>(cfgFilePath);
string cfgname = $"{""}_{ProjectInfo.CODE.Substring(0, 2)}";
LayerInfo layer = Cfg.Layers.FirstOrDefault(f => f.CfgName == cfgname);
//LayerInfo layer = Cfg.Layers[0];
string fieldValue = "";
foreach (FieldCfg Fielditem in layer.Fields)
{
if (Fielditem.IsReadOnly == true) continue;
if (AttributeBMAndName.ContainsValue(Fielditem.Name.ToUpper()) || (Fielditem.DicName != null && AttributeBMAndName.ContainsValue(Fielditem.DicName.ToUpper()))) continue;
fieldValue = "";
BatchAttribute tempBatchAttribute = new BatchAttribute();
enumPropertyType PropertyType = Fielditem.EnumPropertyType == null ? enumPropertyType.TextBox : (enumPropertyType)System.Enum.Parse(typeof(enumPropertyType), Fielditem.EnumPropertyType);
tempBatchAttribute.PropertyType = PropertyType;
if (PropertyType == enumPropertyType.ComboBox)
{
var dic = GetNoGroupDic(Fielditem.DicName, Dics);
tempBatchAttribute.DicData = dic;
}
if (Fielditem.DicName != null && dataTable.Columns.Contains(Fielditem.DicName))
{
fieldValue = dataTable.Rows[0][Fielditem.DicName].ToString();
tempBatchAttribute.AttributeName = Fielditem.DicName;
tempBatchAttribute.AttributeAliasName = Fielditem.AliasName;
tempBatchAttribute.AttributeValue = fieldValue;
ProjectInfo.ListBatchAttributes.Add(tempBatchAttribute);
}
else if (Fielditem.Name != null && dataTable.Columns.Contains(Fielditem.Name))
{
fieldValue = dataTable.Rows[0][Fielditem.Name].ToString();
tempBatchAttribute.AttributeName = Fielditem.Name;
tempBatchAttribute.AttributeAliasName = Fielditem.AliasName;
tempBatchAttribute.AttributeValue = fieldValue;
ProjectInfo.ListBatchAttributes.Add(tempBatchAttribute);
}
}
ProjectInfo.Save();
}
return ProjectInfo.ListBatchAttributes;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute InitListBatchAttributes 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute InitListBatchAttributes 异常:" + ex.StackTrace);
return ProjectInfo.ListBatchAttributes;
}
finally
{
if (rDBHelper != null)
rDBHelper.DisConnect();
}
}
private List<DataDicTionary> GetNoGroupDic(string pDicType, List<DataDicTionary> dicList = null)
{
List<DataDicTionary> result = null;
try
{
string s = GetDicTypeID(pDicType);
if (string.IsNullOrWhiteSpace(s))
return result;
List<DataDicTionary> tempDic = dicList;
if (dicList == null || dicList.Count == 0)
tempDic = GetAllDic();
if (tempDic == null)
return result;
foreach (DataDicTionary item in tempDic)
{
if (item.OWNERDIC == s)
{
if (result == null)
{
result = new List<DataDicTionary>();
result.Add(new DataDicTionary() { CODE = "", NAME = "", DisplayName = "" });
}
if (result.FirstOrDefault(x => x.NAME == item.NAME && x.CODE == item.CODE) != null)
{
continue;//去重
}
result.Add(item);
}
}
}
catch (Exception ex)
{
throw ex;
}
return result;
}
private List<DataDicTionary> GetAllDic()
{
DataTable dt = null;
List<DataDicTionary> result = new List<DataDicTionary>();
IRDBHelper rdbHelper = null;
try
{
if ((MapsManager.Instance.CurrProjectInfo as ProjectInfo) != null)
{
string dbPath = ((MapsManager.Instance.CurrProjectInfo as ProjectInfo) as ProjectInfo).GetDicDataPath();
if (!string.IsNullOrWhiteSpace(dbPath))
{
rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + dbPath, DatabaseType.SQLite);
string strSQL = "select * from Sys_DicDetail";
dt = rdbHelper.ExecuteDatatable("Dic", strSQL, true);
if (dt != null)
{
result = KGIS.Framework.Utils.Utility.TBToList.ToList<DataDicTionary>(dt).OrderBy(x => x.CODE).ToList();
result.ForEach(x => x.DisplayName = x.CODE + "-" + x.NAME);
}
}
}
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (rdbHelper != null)
{
rdbHelper.DisConnect();
}
if (dt != null)
{
dt.Clear();
dt.Dispose();
}
}
return result;
}
private Dictionary<string, string> DicTypes = new Dictionary<string, string>();
public string GetDicTypeID(string pDicType, bool GetNewDic = false)
{
string result = string.Empty;
DataTable dtDicTypeID = null;
try
{
if (dtDicTypeID == null || GetNewDic)
{
IRDBHelper rdbHelper = null;
try
{
string dbPath = ((MapsManager.Instance.CurrProjectInfo as ProjectInfo) as ProjectInfo).GetDicDataPath();
if (string.IsNullOrWhiteSpace(dbPath))
{
LogAPI.Debug("GetDicDataPath 获取失败");
}
rdbHelper = RDBFactory.CreateDbHelper("Data Source=" + dbPath, DatabaseType.SQLite);
string strSQL = "select ID,ALIASNAME from Sys_DicManage ";
dtDicTypeID = rdbHelper.ExecuteDatatable("DicType", strSQL, true);
}
catch (Exception ex)
{
LogAPI.Debug(ex);
}
finally
{
if (rdbHelper != null)
{
rdbHelper.DisConnect();
}
}
}
if (dtDicTypeID != null && dtDicTypeID.Rows.Count > 0)
{
foreach (DataRow item in dtDicTypeID.Rows)
{
if (item[0] != null && !(item[0] is DBNull))
{
if (item[1].ToString() == pDicType.ToString())
result = item[0].ToString();
if (DicTypes.ContainsKey(item[0].ToString()))
continue;
DicTypes.Add(item[0].ToString(), item[1].ToString());
}
}
}
return result;
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (dtDicTypeID != null)
{
dtDicTypeID.Clear();
dtDicTypeID.Dispose();
}
}
return string.Empty;
}
/// <summary>
/// 设置显示字段列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnSetFieldsTable_Click(object sender, RoutedEventArgs e)
{
try
{
SetFieldsPage.Visibility = Visibility.Visible;
dgTableMapping.ItemsSource = null;
dgTableMapping.ItemsSource = GetAllBatchAttributes();
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.BtnSetFieldsTable_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.BtnSetFieldsTable_Click 异常:" + ex.StackTrace);
}
}
private List<BatchAttribute> GetAllBatchAttributes()
{
List<BatchAttribute> batchAttributes = new List<BatchAttribute>();
IRDBHelper rDBHelper = null;
if (ProjectInfo == null) return null;
try
{
string packagePath = _taskPackage.PackagePath;
if (_taskPackage.PackageTempPath != null && File.Exists(_taskPackage.PackageTempPath))
packagePath = _taskPackage.PackageTempPath;
rDBHelper = RDBFactory.CreateDbHelper($"{packagePath}{ProjectInfo.Pathpassword}", DatabaseType.SQLite);
DataTable dataTable = rDBHelper.ExecuteDatatable("data", "SELECT * FROM DTBDLTBGX;", true);
if (dataTable == null)
{
LogAPI.Debug("未找到DTBDLTBGX文件中存在表或者DTBDLTBGX文件数据为空!");
return null;
}
LayerFieldCfg Cfg = null;
string cfgFilePath = System.IO.Path.Combine(SysAppPath.GetConfigPath(), "LayerFieldsCfg.xml");
if (!string.IsNullOrEmpty(cfgFilePath) && Cfg == null)
Cfg = SerializeAPI.DeserializeToObject2<LayerFieldCfg>(cfgFilePath);
string cfgname = $"{""}_{ProjectInfo.CODE.Substring(0, 2)}";
LayerInfo layer = Cfg.Layers.FirstOrDefault(f => f.CfgName == cfgname);
//LayerInfo layer = Cfg.Layers[0];
string fieldValue = "";
foreach (FieldCfg Fielditem in layer.Fields)
{
if (Fielditem.IsReadOnly == true) continue;
if (AttributeBMAndName.ContainsValue(Fielditem.Name.ToUpper()) || (Fielditem.DicName != null && AttributeBMAndName.ContainsValue(Fielditem.DicName.ToUpper()))) continue;
fieldValue = "";
BatchAttribute tempBatchAttribute = new BatchAttribute();
enumPropertyType PropertyType = Fielditem.EnumPropertyType == null ? enumPropertyType.TextBox : (enumPropertyType)System.Enum.Parse(typeof(enumPropertyType), Fielditem.EnumPropertyType);
tempBatchAttribute.PropertyType = PropertyType;
if (PropertyType == enumPropertyType.ComboBox)
{
var dic = GetNoGroupDic(Fielditem.DicName, Dics);
tempBatchAttribute.DicData = dic;
}
if (Fielditem.DicName != null && dataTable.Columns.Contains(Fielditem.DicName))
{
fieldValue = dataTable.Rows[0][Fielditem.DicName].ToString();
tempBatchAttribute.AttributeName = Fielditem.DicName;
tempBatchAttribute.AttributeAliasName = Fielditem.AliasName;
tempBatchAttribute.AttributeValue = fieldValue;
batchAttributes.Add(tempBatchAttribute);
}
else if (Fielditem.Name != null && dataTable.Columns.Contains(Fielditem.Name))
{
fieldValue = dataTable.Rows[0][Fielditem.Name].ToString();
tempBatchAttribute.AttributeName = Fielditem.Name;
tempBatchAttribute.AttributeAliasName = Fielditem.AliasName;
tempBatchAttribute.AttributeValue = fieldValue;
batchAttributes.Add(tempBatchAttribute);
}
}
return batchAttributes;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute InitListBatchAttributes 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute InitListBatchAttributes 异常:" + ex.StackTrace);
return batchAttributes;
}
finally
{
if (rDBHelper != null)
rDBHelper.DisConnect();
}
}
/// <summary>
/// 刷新列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnRefresh_Click(object sender, RoutedEventArgs e)
{
gridPackage.ItemsSource = InitListBatchAttributes(_taskPackage);
}
private void BtnSaveBatchAttribute_Click(object sender, RoutedEventArgs e)
{
IRDBHelper rDBHelper = null;
IFeatureCursor _cursor = null;
try
{
string packagePath = _taskPackage.PackagePath;
if (ProjectInfo == null) return;
ProjectInfo.ListBatchAttributes = gridPackage.ItemsSource as List<BatchAttribute>;
if (ProjectInfo.ListBatchAttributes == null || ProjectInfo.ListBatchAttributes.Count == 0) return;
if (this.dgSetTBTableMapping == null || (dgSetTBTableMapping.ItemsSource as List<ListTbbsm>) == null || (dgSetTBTableMapping.ItemsSource as List<ListTbbsm>).Count == 0)
{
MessageHelper.ShowTips("未设置图斑列表或需要修改的图斑列表是空");
LogAPI.Debug("未设置图斑列表或需要修改的图斑列表是空");
return;
}
//listTBBSM = dgSetTBTableMapping.ItemsSource as List<ListTbbsm>;
if (listTBBSM == null || listTBBSM.Count == 0)
{
MessageHelper.ShowTips("未设置图斑列表或需要修改的图斑列表是空");
LogAPI.Debug("未设置图斑列表或需要修改的图斑列表是空");
return;
}
string btbsms = string.Join("','", listTBBSM.FindAll(a => a.IsCheck).Select(x => x.tbbsm));
IFeatureLayer DtbFeatureLayer = MapsManager.Instance.MapService.GetFeatureLayerByName("DLTBBG");
if (_taskPackage.PackageTempPath != null && File.Exists(_taskPackage.PackageTempPath))
packagePath = _taskPackage.PackageTempPath;
rDBHelper = RDBFactory.CreateDbHelper($"{packagePath}{ProjectInfo.Pathpassword}", DatabaseType.SQLite);
DataTable dataTable = rDBHelper.ExecuteDatatable("data", $"SELECT * FROM DTBDLTBGX;", true);
if (dataTable == null || dataTable.Rows.Count <= 0) return;
this.ShowLoading("正在批量赋属性值,请稍后......", 0, 0);
string nameForValue = "";
foreach (BatchAttribute currentBatchAttribute in ProjectInfo.ListBatchAttributes)
{
if (!dataTable.Columns.Contains(currentBatchAttribute.AttributeName)) continue;
if (currentBatchAttribute.DicData != null && AttributeBMAndName.ContainsKey(currentBatchAttribute.AttributeName.ToUpper()))
{
AttributeBMAndName.TryGetValue(currentBatchAttribute.AttributeName.ToUpper(), out string name);
if (dataTable.Columns.Contains(name))
{
nameForValue = currentBatchAttribute.DicData.FirstOrDefault(a => a.CODE == currentBatchAttribute.AttributeValue).NAME;
rDBHelper.ExecuteNonQueryWithException(string.Format("update dtbdltbgx set {0}='{1}' WHERE BSM in ('{2}') ", name, nameForValue, btbsms), CommandType.Text);
if (DtbFeatureLayer != null && DtbFeatureLayer as FeatureClass != null)
(DtbFeatureLayer as FeatureClass).Workspace.ExecuteSQL(string.Format("update DLTBBG set {0}='{1}' WHERE BSM in ('{2}') ", name, nameForValue, btbsms));
}
}
if ("TBMJ,KCXS,KCMJ,TBDLMJ,XZDWKD,GDDB,SJNF".Contains(currentBatchAttribute.AttributeName))
{
if (string.IsNullOrEmpty(currentBatchAttribute.AttributeValue))
rDBHelper.ExecuteNonQueryWithException(string.Format("update dtbdltbgx set {0}={1} WHERE BSM in ('{2}') ", currentBatchAttribute.AttributeName, 0, btbsms), CommandType.Text);
else
rDBHelper.ExecuteNonQueryWithException(string.Format("update dtbdltbgx set {0}={1} WHERE BSM in ('{2}') ", currentBatchAttribute.AttributeName, currentBatchAttribute.AttributeValue, btbsms), CommandType.Text);
}
else
rDBHelper.ExecuteNonQueryWithException(string.Format("update dtbdltbgx set {0}='{1}' WHERE BSM in ('{2}') ", currentBatchAttribute.AttributeName, currentBatchAttribute.AttributeValue, btbsms), CommandType.Text);
//更新矢量图层
if (DtbFeatureLayer != null && DtbFeatureLayer as FeatureClass != null && DtbFeatureLayer.FeatureClass != null)
{
int fieldIndex = DtbFeatureLayer.FeatureClass.Fields.FindField(currentBatchAttribute.AttributeName);
if (fieldIndex > -1)
{
esriFieldType fieldType = DtbFeatureLayer.FeatureClass.Fields.Field[fieldIndex].Type;
if (fieldType == esriFieldType.esriFieldTypeDouble)
{
if (string.IsNullOrEmpty(currentBatchAttribute.AttributeValue))
(DtbFeatureLayer as FeatureClass).Workspace.ExecuteSQL(string.Format("update DLTBBG set {0}={1} WHERE BSM in ('{2}') ", currentBatchAttribute.AttributeName, 0, btbsms));
else
(DtbFeatureLayer as FeatureClass).Workspace.ExecuteSQL(string.Format("update DLTBBG set {0}={1} WHERE BSM in ('{2}') ", currentBatchAttribute.AttributeName, currentBatchAttribute.AttributeValue, btbsms));
}
else if (fieldType == esriFieldType.esriFieldTypeString)
{
(DtbFeatureLayer as FeatureClass).Workspace.ExecuteSQL(string.Format("update DLTBBG set {0}='{1}' WHERE BSM in ('{2}') ", currentBatchAttribute.AttributeName, currentBatchAttribute.AttributeValue, btbsms));
}
}
}
}
//继承属性
_cursor = DtbFeatureLayer.FeatureClass.Update(new QueryFilterClass() { WhereClause = $"BSM in ('{btbsms}')" }, false);
IFeature f = null;
int idx = DtbFeatureLayer.FeatureClass.FindField("BSM");
if (idx > -1)
{
while ((f = _cursor.NextFeature()) != null)
{
UpdateAttributeEntity updateAttributeEntity = new UpdateAttributeEntity() { feature = f, rdbHelper = rDBHelper };
Platform.Instance.SendMsg(new KGIS.Framework.Utils.Interface.NotifyMsgPackage() { MsgType = "UpdateAttribute", Content = updateAttributeEntity });
_cursor.UpdateFeature(f);
}
}
this.CloseLoading();
MessageHelper.ShowTips("批量保存完成");
this.Close();
}
catch (Exception ex)
{
this.CloseLoading();
LogAPI.Debug("UCSetBatchAttribute.批量保存属性值异常 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.批量保存属性值异常 异常:" + ex.StackTrace);
MessageHelper.ShowTips("批量保存属性值异常:" + ex.Message);
}
finally
{
this.CloseLoading();
if (rDBHelper != null)
rDBHelper.DisConnect();
}
}
#region 字段显示设置页面
/// <summary>
/// 保存显示的字段
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnSave_Click(object sender, RoutedEventArgs e)
{
try
{
List<BatchAttribute> batchAttributes = dgTableMapping.ItemsSource as List<BatchAttribute>;
if (batchAttributes == null || batchAttributes.Count == 0) return;
List<BatchAttribute> tempBatchAttributes = batchAttributes.FindAll(a => a.IsCheck == true);
ProjectInfo.ListBatchAttributes = tempBatchAttributes;
ProjectInfo.Save();
SetFieldsPage.Visibility = Visibility.Collapsed;
gridPackage.ItemsSource = null;
gridPackage.ItemsSource = InitListBatchAttributes(_taskPackage);
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.BtnSave_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.BtnSave_Click 异常:" + ex.StackTrace);
}
}
private void BtnClose_Click(object sender, RoutedEventArgs e)
{
SetFieldsPage.Visibility = Visibility.Collapsed;
}
private void checkBox_Click(object sender, RoutedEventArgs e)
{
try
{
BatchAttribute value = dgTableMapping.SelectedItem as BatchAttribute;
if (value != null)
{
value.IsCheck = (bool)(sender as CheckBox).IsChecked;
}
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.checkBox_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.checkBox_Click 异常:" + ex.StackTrace);
}
}
private void AllCheckEidt_Click(object sender, RoutedEventArgs e)
{
try
{
if (this.dgTableMapping == null || (dgTableMapping.ItemsSource as List<BatchAttribute>) == null)
{
return;
}
List<BatchAttribute> listTableMapping = dgTableMapping.ItemsSource as List<BatchAttribute>;
bool check = (sender as CheckBox).IsChecked == null ? false : bool.Parse((sender as CheckBox).IsChecked.Value.ToString());
if (check)
{
listTableMapping.ForEach(a => a.IsCheck = true);
}
else
{
listTableMapping.ForEach(a => a.IsCheck = false);
}
dgTableMapping.ItemsSource = null;
dgTableMapping.ItemsSource = listTableMapping;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.AllCheckEidt_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.AllCheckEidt_Click 异常:" + ex.StackTrace);
MessageHelper.ShowTips("全选发生异常:" + ex.Message);
}
}
#endregion
#region 设置图斑列表页面
/// <summary>
/// 设置图斑列表
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnSetTB_Click(object sender, RoutedEventArgs e)
{
try
{
SetTBPage.Visibility = Visibility.Visible;
dgSetTBTableMapping.ItemsSource = null;
dgSetTBTableMapping.ItemsSource = listTBBSM;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.BtnSetTB_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.BtnSetTB_Click 异常:" + ex.StackTrace);
}
}
private List<ListTbbsm> GetAllTBBSM()
{
List<ListTbbsm> selectTBBSM = new List<ListTbbsm>();
IRDBHelper rDBHelper = null;
try
{
string packagePath = _taskPackage.PackagePath;
if (ProjectInfo == null) return selectTBBSM;
if (_taskPackage.PackageTempPath != null && File.Exists(_taskPackage.PackageTempPath))
packagePath = _taskPackage.PackageTempPath;
rDBHelper = RDBFactory.CreateDbHelper($"{packagePath}{ProjectInfo.Pathpassword}", DatabaseType.SQLite);
DataTable dataTable = rDBHelper.ExecuteDatatable("data", "SELECT BSM, TBBSM FROM DTBDLTBGX;", true);
if (dataTable == null || dataTable.Rows.Count <= 0) return selectTBBSM;
foreach (DataRow dataRow in dataTable.Rows)
{
selectTBBSM.Add(new ListTbbsm() { IsCheck = true, bsm = dataRow["TBBSM"].ToSafeString(), tbbsm = dataRow["BSM"].ToSafeString() });
}
return selectTBBSM;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.GetAllTBBSM 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.GetAllTBBSM 异常:" + ex.StackTrace);
return selectTBBSM;
}
finally
{
if (rDBHelper != null)
rDBHelper.DisConnect();
}
}
private void BtnSetTBOK_Click(object sender, RoutedEventArgs e)
{
SetTBPage.Visibility = Visibility.Collapsed;
}
private void setTBAllCheckEidt_Click(object sender, RoutedEventArgs e)
{
try
{
if (this.dgSetTBTableMapping == null || (dgSetTBTableMapping.ItemsSource as List<ListTbbsm>) == null)
{
return;
}
//List<ListTbbsm> listTBBSM = dgSetTBTableMapping.ItemsSource as List<ListTbbsm>;
listTBBSM = dgSetTBTableMapping.ItemsSource as List<ListTbbsm>;
bool check = (sender as CheckBox).IsChecked == null ? false : bool.Parse((sender as CheckBox).IsChecked.Value.ToString());
if (check)
{
listTBBSM.ForEach(a => a.IsCheck = true);
}
else
{
listTBBSM.ForEach(a => a.IsCheck = false);
}
dgSetTBTableMapping.ItemsSource = null;
dgSetTBTableMapping.ItemsSource = listTBBSM;
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.setTBAllCheckEidt_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.setTBAllCheckEidt_Click 异常:" + ex.StackTrace);
MessageHelper.ShowTips("全选发生异常:" + ex.Message);
}
}
private void setTBCheckBox_Click(object sender, RoutedEventArgs e)
{
try
{
ListTbbsm value = dgSetTBTableMapping.SelectedItem as ListTbbsm;
if (value != null)
{
value.IsCheck = (bool)(sender as CheckBox).IsChecked;
}
}
catch (Exception ex)
{
LogAPI.Debug("UCSetBatchAttribute.setTBCheckBox_Click 异常:" + ex.Message);
LogAPI.Debug("UCSetBatchAttribute.setTBCheckBox_Click 异常:" + ex.StackTrace);
}
}
#endregion
}
public class ListTbbsm
{
public string bsm { get; set; }
public string tbbsm { get; set; }
public bool IsCheck { get; set; }
}
}