宜昌华友原料库管理软件
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.

728 lines
22 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
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.Shapes;
using System.Data;
namespace SiaSun.LMS.WPFClient.SYS
{
public partial class LED_CONFIG : AvalonDock.DocumentContent
{
public LED_CONFIG()
{
InitializeComponent();
this.ucQueryLED.U_Query += new UC.ucQuickQuery.U_QueryEventHandler(ucQueryLED_U_Query);
this.gridLED_MAIN.gridApp.MouseDoubleClick+=new MouseButtonEventHandler(gridApp_MouseDoubleClick);
}
private void DocumentContent_Loaded(object sender, RoutedEventArgs e)
{
try
{
this.InitQueryControl();
this.LED_MAIN_Bind(string.Empty);
this.LED_LIST_Bind(0);
}
catch (Exception ex)
{
MainApp._MessageDialog.ShowException(ex);
}
}
private void InitQueryControl()
{
this.ucQueryLED.U_WindowName = this.GetType().Name;
this.ucQueryLED.U_XmlTableName = "LED_MAIN";
this.ucQueryLED.U_InitControl();
}
private void LED_MAIN_Bind(string QueryWhere)
{
try
{
this.gridLED_MAIN.U_WindowName = this.GetType().Name;
this.gridLED_MAIN.U_TableName = "LED_MAIN";
this.gridLED_MAIN.U_XmlTableName = "LED_MAIN";
this.gridLED_MAIN.U_OrderField = "LED_ID";
this.gridLED_MAIN.U_Where = string.IsNullOrEmpty(QueryWhere) ? "1=1" : QueryWhere;
this.gridLED_MAIN.U_AllowOperatData = true;
this.gridLED_MAIN.U_AllowAdd = System.Windows.Visibility.Collapsed;
this.gridLED_MAIN.U_AllowCancel = System.Windows.Visibility.Collapsed;
this.gridLED_MAIN.U_AllowSave = System.Windows.Visibility.Visible;
this.gridLED_MAIN.U_AllowEdit = System.Windows.Visibility.Collapsed;
this.gridLED_MAIN.U_AllowDelete = System.Windows.Visibility.Collapsed;
this.gridLED_MAIN.U_AllowChecked = true;
this.gridLED_MAIN.U_AllowPage = false;
this.gridLED_MAIN.U_InitControl();
if (this.gridLED_MAIN.U_DataSource != null)
{
//当输入列值改变后验证数据是否合法
DataTable tableSourceLED_MAIN = this.gridLED_MAIN.U_DataSource.Table;
tableSourceLED_MAIN.ColumnChanged += new DataColumnChangeEventHandler(tableSourceLED_MAIN_ColumnChanged);
}
}
catch (Exception ex)
{
MainApp._MessageDialog.ShowException(ex);
}
}
void ucQueryLED_U_Query(string QueryWhere)
{
this.LED_MAIN_Bind(QueryWhere);
}
void gridApp_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (gridLED_MAIN.gridApp.SelectedItem == null)
{
this.gridLED_MAIN.U_DataSource = null;
return;
}
//获得双击的LED_MAIN
DataRowView rowViewLed = this.gridLED_MAIN.gridApp.SelectedItem as DataRowView;
int intLED_ID = (rowViewLed== null||string.IsNullOrEmpty(rowViewLed["LED_ID"].ToString())) ? 0 : Convert.ToInt32(rowViewLed["LED_ID"].ToString());
this.LED_LIST_Bind(intLED_ID);
}
/// <summary>
/// LED_MAIN表单数据列校验
/// </summary>
private void tableSourceLED_MAIN_ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
bool bResult = true;
string sResult = string.Empty;
//判断列
switch (e.Column.ColumnName)
{
case "SCREEN_WIDTH":
case "SCREEN_HEIGHT":
if (!SiaSun.LMS.Common.RegexValid.IsValidPositive(e.ProposedValue.ToString()))
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入正整数");
}
else if (Convert.ToInt32(e.ProposedValue) % 16 != 0)
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入16的倍数");
}
else
{
e.Row.SetColumnError(e.Column, null);
}
break;
case "LINE_NUM":
if (!SiaSun.LMS.Common.RegexValid.IsValidPositive(e.ProposedValue.ToString()))
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入正整数");
}
else
{
e.Row.SetColumnError(e.Column, null);
}
break;
}
if (!bResult)
{
e.Row.RowError = "数据校验失败";
}
else
{
e.Row.RowError = string.Empty;
}
}
/// <summary>
/// LED_LIST表单数据列校验
/// </summary>
private void tableSourceLED_LIST_ColumnChanged(object sender, DataColumnChangeEventArgs e)
{
bool bResult = true;
string sResult = string.Empty;
SiaSun.LMS.Model.LED_LIST mLED_LIST = MainApp._I_LEDService.LED_LIST_GetModel(Convert.ToInt32(e.Row["LED_LIST_ID"]));
//判断列
switch (e.Column.ColumnName)
{
case "LINE_NO":
if (null == mLED_LIST)
{
bResult = false;
e.Row.SetColumnError(e.Column, "未找到LED_LIST");
}
else
{
if (mLED_LIST.LINE_NO != Convert.ToInt32(e.ProposedValue))
{
bResult = false;
e.Row.SetColumnError(e.Column, "行号不可修改");
}
else
e.Row.SetColumnError(e.Column, null);
}
break;
case "AREA_X":
case "AREA_Y":
case "AREA_WIDTH":
case "AREA_HEIGHT":
if (!SiaSun.LMS.Common.RegexValid.IsValidPositive(e.ProposedValue.ToString()))
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入正整数");
}
else if (Convert.ToInt32(e.ProposedValue) % 16 != 0)
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入16的倍数");
}
else
{
e.Row.SetColumnError(e.Column, null);
}
break;
case "FONT_SIZE":
if (!SiaSun.LMS.Common.RegexValid.IsValidPositive(e.ProposedValue.ToString()))
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入正整数");
}
else
{
e.Row.SetColumnError(e.Column, null);
}
break;
case "RUN_SPEED":
if (!SiaSun.LMS.Common.RegexValid.IsValidPositive(e.ProposedValue.ToString()))
{
bResult = false;
e.Row.SetColumnError(e.Column, "请输入正整数");
}
else
{
e.Row.SetColumnError(e.Column, null);
}
break;
case "FILE_NAME":
if (string.IsNullOrEmpty(e.ProposedValue.ToString()) || e.ProposedValue == null)
{
bResult = false;
e.Row.SetColumnError(e.Column, "不能为空");
}
else
{
e.Row.SetColumnError(e.Column, null);
}
break;
}
if (!bResult)
{
e.Row.RowError = "数据校验失败";
}
else
{
e.Row.RowError = string.Empty;
}
}
/// <summary>
/// LED_LIST列表绑定
/// </summary>
private void LED_LIST_Bind(int LED_ID)
{
this.gridLED_LIST.U_Clear();
//设置属性
this.gridLED_LIST.U_WindowName = this.GetType().Name;
this.gridLED_LIST.U_TableName = "LED_LIST";
this.gridLED_LIST.U_XmlTableName = "LED_LIST";
this.gridLED_LIST.U_OrderField = "LED_LIST_ID";
this.gridLED_LIST.U_Where = LED_ID == 0 ? string.Empty : string.Format("LED_ID='{0}'",LED_ID);
this.gridLED_LIST.U_AllowAdd = System.Windows.Visibility.Collapsed;
this.gridLED_LIST.U_AllowCancel = System.Windows.Visibility.Collapsed;
this.gridLED_LIST.U_AllowSave = System.Windows.Visibility.Visible;
this.gridLED_LIST.U_AllowEdit = System.Windows.Visibility.Collapsed;
this.gridLED_LIST.U_AllowDelete = System.Windows.Visibility.Collapsed;
this.gridLED_LIST.U_AllowChecked = false;
this.gridLED_LIST.U_AllowPage = false;
try
{
this.gridLED_LIST.U_InitControl();
if (this.gridLED_LIST.U_DataSource != null)
{
//当输入列值改变后验证数据是否合法
DataTable tableSourceLED_LIST = this.gridLED_LIST.U_DataSource.Table;
tableSourceLED_LIST.ColumnChanged += new DataColumnChangeEventHandler(tableSourceLED_LIST_ColumnChanged);
}
}
catch (Exception ex)
{
MainApp._MessageDialog.ShowException(ex);
}
}
/// <summary>
/// 按钮事件
/// </summary>
private void Button_Click(object sender, RoutedEventArgs e)
{
Button btn = e.OriginalSource as Button;
if (btn != null)
{
switch (btn.Name)
{
case "btnInit":
this.Init();
break;
case "btnClose":
this.CloseServer();
break;
case "btnOpen":
this.OpenServer();
break;
case "btnSend":
this.Send();
break;
case "btnSave":
this.Save();
break;
case "btnServerSend":
this.ServerSave();
break;
}
}
}
//生成LED_LIST
private void Init()
{
bool bResult=true;
string sResult=string.Empty;
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
if (this.gridLED_MAIN.U_DataSource.Table.Rows.Count != 0)
{
bResult = MainApp._I_LEDService.INIT_LED_LIST(out sResult);
if (bResult)
{
this.LED_LIST_Bind(0);
}
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
finally
{
MainWindow.mainWin.Cursor = Cursors.Arrow;
MainApp._MessageDialog.ShowResult(bResult, sResult);
}
}
//关闭服务
private void CloseServer()
{
bool bResult = true;
string sResult = string.Empty;
DataRowView[] listDataRowView = null;
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
//获得选中记录
listDataRowView = this.gridLED_MAIN.U_GetCheckedDataRows();
//校验是否选中记录
if (listDataRowView.Length == 0)
{
bResult = false;
sResult = "请选择记录";
return;
}
List<SiaSun.LMS.Model.LED_MAIN> lsLED_MAIN = new SiaSun.LMS.Common.CloneObjectValues().GetListFromDataTable<Model.LED_MAIN>(listDataRowView.ToArray(), null);
foreach (SiaSun.LMS.Model.LED_MAIN mLED_MAIN in lsLED_MAIN)
{
//关闭服务-0,开启服务-1
mLED_MAIN.AUTO_FLAG = "0";
MainApp._I_LEDService.LED_MAIN_Update(mLED_MAIN);
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
finally
{
if (bResult)
{
this.gridLED_MAIN.U_Update();
}
MainWindow.mainWin.Cursor = Cursors.Arrow;
MainApp._MessageDialog.ShowResult(bResult, sResult);
}
}
//开启服务
private void OpenServer()
{
bool bResult = true;
string sResult = string.Empty;
DataRowView[] listDataRowView = null;
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
//获得选中记录
listDataRowView = this.gridLED_MAIN.U_GetCheckedDataRows();
//校验是否选中记录
if (listDataRowView.Length == 0)
{
bResult = false;
sResult = "请选择记录";
return;
}
List<SiaSun.LMS.Model.LED_MAIN> lsLED_MAIN = new SiaSun.LMS.Common.CloneObjectValues().GetListFromDataTable<Model.LED_MAIN>(listDataRowView.ToArray(), null);
foreach (SiaSun.LMS.Model.LED_MAIN mLED_MAIN in lsLED_MAIN)
{
//关闭服务-0,开启服务-1
mLED_MAIN.AUTO_FLAG = "1";
MainApp._I_LEDService.LED_MAIN_Update(mLED_MAIN);
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
finally
{
if (bResult)
{
this.gridLED_MAIN.U_Update();
}
MainWindow.mainWin.Cursor = Cursors.Arrow;
MainApp._MessageDialog.ShowResult(bResult, sResult);
}
}
//重新发送
private void Send()
{
bool bResult = true;
string sResult = string.Empty;
DataRowView[] listDataRowView = null;
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
//获得选中记录
listDataRowView = this.gridLED_MAIN.U_GetCheckedDataRows();
//校验是否选中记录
if (listDataRowView.Length == 0)
{
bResult = false;
sResult = "请选择记录";
return;
}
List<SiaSun.LMS.Model.LED_MAIN> lsLED_MAIN = new SiaSun.LMS.Common.CloneObjectValues().GetListFromDataTable<Model.LED_MAIN>(listDataRowView.ToArray(), null);
foreach (SiaSun.LMS.Model.LED_MAIN mLED_MAIN in lsLED_MAIN)
{
//1已发送,0未发送
mLED_MAIN.LED_STATUS = "0";
mLED_MAIN.LED_MAIN_PARA1 = System.DateTime.Now.ToString();
MainApp._I_LEDService.LED_MAIN_Update(mLED_MAIN);
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
finally
{
if (bResult)
{
this.gridLED_MAIN.U_Update();
}
MainWindow.mainWin.Cursor = Cursors.Arrow;
MainApp._MessageDialog.ShowResult(bResult, sResult);
}
}
/// <summary>
/// 默认值发送
/// </summary>
private void Save()
{
bool bResult = true;
string sResult = string.Empty;
DataRowView[] listDataRowView = null;
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
#region 校验
#region 校验内容
if (string.IsNullOrEmpty(this.txtSEND_TEXT.Text.Trim()) || this.txtSEND_TEXT.Text.Trim().Split('|').Length==0)
{
bResult = false;
sResult = string.Format("默认发送文本不能为空");
return;
}
string[] arrSEND_TEXT = txtSEND_TEXT.Text.Trim().Split('|');
//行数
int LineCount = arrSEND_TEXT.Length;
//发送内容
string SendTxt = this.txtSEND_TEXT.Text.Trim();
#endregion
#region 校验选中项
//获得选中记录
listDataRowView = this.gridLED_MAIN.U_GetCheckedDataRows();
//校验是否选中记录
if (listDataRowView.Length == 0)
{
bResult = false;
sResult = "请选择记录";
return;
}
#endregion
#endregion
List<SiaSun.LMS.Model.LED_MAIN> lsLED_MAIN = new SiaSun.LMS.Common.CloneObjectValues().GetListFromDataTable<Model.LED_MAIN>(listDataRowView.ToArray(), null);
foreach (SiaSun.LMS.Model.LED_MAIN mLED_MAIN in lsLED_MAIN)
{
bResult=MainApp._I_LEDService.AddLedDefaltTxt(mLED_MAIN, LineCount, SendTxt, out sResult);
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
finally
{
if (bResult)
{
this.gridLED_MAIN.U_Update();
this.gridLED_LIST.U_Update();
}
MainWindow.mainWin.Cursor = Cursors.Arrow;
MainApp._MessageDialog.ShowResult(bResult, sResult);
}
}
/// <summary>
/// 服务端发送测试
/// </summary>
private void ServerSave()
{
bool bResult = true;
string sResult = string.Empty;
DataRowView[] listDataRowView = null;
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
#region 校验
#region 校验内容
if (string.IsNullOrEmpty(this.txtSEND_TEXT.Text.Trim()) || this.txtSEND_TEXT.Text.Trim().Split('|').Length == 0)
{
bResult = false;
sResult = string.Format("默认发送文本不能为空");
return;
}
string[] arrSEND_TEXT = txtSEND_TEXT.Text.Trim().Split('|');
//行数
int LineCount = arrSEND_TEXT.Length;
//发送内容
string SendTxt = this.txtSEND_TEXT.Text.Trim();
#endregion
#region 校验选中项
//获得选中记录
listDataRowView = this.gridLED_MAIN.U_GetCheckedDataRows();
//校验是否选中记录
if (listDataRowView.Length == 0)
{
bResult = false;
sResult = "请选择记录";
return;
}
#endregion
#endregion
List<SiaSun.LMS.Model.LED_MAIN> lsLED_MAIN = new SiaSun.LMS.Common.CloneObjectValues().GetListFromDataTable<Model.LED_MAIN>(listDataRowView.ToArray(), null);
foreach (SiaSun.LMS.Model.LED_MAIN mLED_MAIN in lsLED_MAIN)
{
bResult=MainApp._I_LEDService.AddLedTxt(mLED_MAIN.DEVICE_CODE, LineCount, SendTxt, out sResult);
}
}
catch (Exception ex)
{
bResult = false;
sResult = ex.Message;
}
finally
{
if (bResult)
{
this.gridLED_MAIN.U_Update();
this.gridLED_LIST.U_Update();
}
MainWindow.mainWin.Cursor = Cursors.Arrow;
MainApp._MessageDialog.ShowResult(bResult, sResult);
}
}
}
}