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

519 lines
17 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.Navigation;
using System.Windows.Shapes;
using System.Data;
namespace SiaSun.LMS.WPFClient.UC
{
/// <summary>
/// ucManageInInput.xaml 的交互逻辑
/// </summary>
public partial class ucManageInInput : UserControl
{
/// <summary>
/// 定义显示类型
/// </summary>
public enum ShowType
{
//Goods = 1, //单一显示物料
//ClassGoods = 2, //根据类别显示物料
//PlanGoods = 3, //计划物料
//StorageGoods = 4, //库存物料
//TemplateGoods = 5 //配盘模板物料
Goods, //单一显示物料
ClassGoods, //根据类别显示物料
PlanGoods, //计划物料
StorageGoods, //库存物料
TemplateGoods //配盘模板物料
}
#region ------定义变量属性
private string strWindowName = string.Empty;
private SiaSun.LMS.Enum.PLAN_INOUT enumPlanInOut = SiaSun.LMS.Enum.PLAN_INOUT.In;
private int intPlanID = 0;
private DataRowView[] arDataRow = null;
private string enumShowType = ShowType.Goods.ToString();
public delegate void U_CheckedDataGridRowsHandler();
public event U_CheckedDataGridRowsHandler U_CheckedDataGridRows;
/// <summary>
/// 显示类型
/// </summary>
public string U_ShowType
{
get { return this.enumShowType; }
set { this.enumShowType = value; }
}
/// <summary>
/// 窗体名称
/// </summary>
public string U_WindowName
{
get { return strWindowName; }
set { strWindowName = value; }
}
/// <summary>
/// 计划出入类型
/// </summary>
public SiaSun.LMS.Enum.PLAN_INOUT U_PLAN_OUT
{
get { return enumPlanInOut; }
set { enumPlanInOut = value; }
}
/// <summary>
/// 计划编号
/// </summary>
public int U_PLAN_ID
{
get { return intPlanID; }
set { intPlanID = value; }
}
/// <summary>
/// 选中的记录行
/// </summary>
public DataRowView[] U_CheckedDataRowViews
{
get { return arDataRow; }
set { arDataRow = value; }
}
#endregion
public ucManageInInput()
{
InitializeComponent();
this.ucQuery.U_Query += new ucQuickQuery.U_QueryEventHandler(ucQuery_U_Query);
}
/// <summary>
/// 初始化控件
/// </summary>
public void U_InitControl()
{
//默认选择绑定数据
//this.Data_Bind(string.Empty);
this.grpbGrid.Content = null;
//判断控件
switch (this.enumShowType)
{
case "Goods":
this.InitQueryControl("GOODS_MAIN");
break;
case "ClassGoods":
this.InitQueryControl("GOODS_MAIN");
break;
case "PlanGoods":
this.InitQueryControl("V_PLAN_LIST");
break;
case "StorageGoods":
this.InitQueryControl("V_STORAGE_LIST");
break;
case "TemplateGoods":
this.InitQueryControl("V_GOODS_TEMPLETE_LIST");
break;
}
}
#region -------查询控件
/// <summary>
/// 添加确认按钮
/// </summary>
private void AddConfirmButton()
{
//添加确认按钮
Button btnConfirm = new Button();
btnConfirm.Width = 70;
btnConfirm.Content = "添加选中";
btnConfirm.Template = (ControlTemplate)MainApp.GetStyleResource("templateImageButtonAdd");
btnConfirm.Click += new RoutedEventHandler(btnConfirm_Click);
this.ucQuery.U_AddControl(btnConfirm);
}
/// <summary>
/// 初始化查询控件
/// </summary>
private void InitQueryControl(string TableName)
{
this.ucQuery.U_WindowName = strWindowName;
this.ucQuery.U_XmlTableName = TableName;
this.ucQuery.U_InitControl();
//添加确认按钮
this.AddConfirmButton();
}
/// <summary>
/// 查询控件
/// </summary>
void ucQuery_U_Query(string QueryWhere)
{
this.Data_Bind(QueryWhere);
}
#endregion
/// <summary>
/// 控件数据绑定
/// </summary>
public void Data_Bind(string QueryWhere)
{
//清除所有控件
this.grpbGrid.Content = null;
//判断控件
switch (this.enumShowType)
{
case "Goods":
this.LoadGoodsControl(QueryWhere);
break;
case "ClassGoods":
this.LoadClassGoodsControl(QueryWhere);
break;
case "PlanGoods":
this.LoadPlanGoodsControl(QueryWhere);
break;
case "StorageGoods":
this.LoadStorageGoodsControl(QueryWhere);
break;
case "TemplateGoods":
this.LoadTemplateGoodsControl(QueryWhere);
break;
}
}
#region ------根据不同显示类型,显示不同控件
/// <summary>
/// 加载物料信息
/// </summary>
private void LoadGoodsControl(string QueryWhere)
{
//设置查询控件
this.InitQueryControl("GOODS_MAIN");
ucCommonDataGrid control = new ucCommonDataGrid();
control.U_XmlTableName = "GOODS_MAIN";
control.U_TableName = "V_GOODS";
control.U_Where = "GOODS_CLASS_CODE!='zt' AND GOODS_FLAG=1 " + (QueryWhere.Length == 0 ? string.Empty : " AND " + QueryWhere);
control.U_AllowOperatData = false;
control.U_AllowChecked = true;
control.U_InitControl();
//双击事件
control.gridApp.MouseDoubleClick+=new MouseButtonEventHandler(gridApp_MouseDoubleClick);
//加载控件
this.grpbGrid.Content = control;
}
/// <summary>
/// 加载物料类别依据物料
/// </summary>
private void LoadClassGoodsControl(string QueryWhere)
{
//设置查询控件
this.InitQueryControl("GOODS_MAIN");
//设置控件属性
ucMdiTreeViewDataGridControl control = new ucMdiTreeViewDataGridControl();
//注册双节事件
control.U_DoubleClick += new ucMdiTreeViewDataGridControl.U_DoubleClickEventHandler(control_U_DoubleClick);
this.grpbGrid.Content = control;
control.U_AllowDoubleClick = true;
control.U_AllowChecked = true;
control.U_AllowOperation = false;
control.U_LeftHeader = "物料类别";
control.U_LeftTable = "GOODS_CLASS";
control.U_LeftWhere = "GOODS_CLASS_FLAG=1";
control.U_LeftNodeTagColumn = "GOODS_CLASS_ID";
control.U_LeftNodeTextColumn = "GOODS_CLASS_NAME";
control.U_LeftNodeRelativeColumn = "GOODS_CLASS_PARENT_ID";
control.U_RightTable = "GOODS_MAIN";
control.U_RightWhere = "GOODS_FLAG=1 " + (QueryWhere.Length == 0 ? string.Empty : " AND " + QueryWhere);
control.U_RigthTagColumn = "GOODS_CLASS_ID";
//初始化
control.U_InitControl();
//定义双击事件
this.Init_Mdi_DoubleClick(control);
//加载控件
this.grpbGrid.Content = control;
}
/// <summary>
/// 加载配盘模板物料
/// </summary>
private void LoadTemplateGoodsControl(string QueryWhere)
{
//设置查询控件
this.InitQueryControl("V_GOODS_TEMPLETE_LIST");
//设置控件属性
ucMdiTreeViewDataGridControl control = new ucMdiTreeViewDataGridControl();
//注册双节事件
control.U_DoubleClick += new ucMdiTreeViewDataGridControl.U_DoubleClickEventHandler(control_U_DoubleClick);
this.grpbGrid.Content = control;
control.U_AllowDoubleClick = true;
control.U_AllowChecked = true;
control.U_AllowOperation = false;
control.U_LeftHeader = "配盘方案列表";
control.U_LeftTable = "GOODS_TEMPLETE";
control.U_LeftWhere = "GOODS_TEMPLETE_FLAG=1";
control.U_LeftNodeTagColumn = "GOODS_TEMPLETE_ID";
control.U_LeftNodeTextColumn = "GOODS_TEMPLETE_NAME";
control.U_LeftNodeRelativeColumn = "GOODS_TEMPLETE_ID";
control.U_LeftNodeRelativeColumn = string.Empty;
control.U_RightTable = "V_GOODS_TEMPLETE_LIST";
control.U_RightWhere = this.ucQuery.U_GetQuery();
control.U_RigthTagColumn = "GOODS_TEMPLETE_ID";
control.U_RightWhere = QueryWhere;
control.U_SplitGroupColumn = "GOODS_TYPE_ID";
control.U_SplitGroupHeader = "GOODS_TYPE_NAME";
control.U_SplitPropertyColumn = "GOODS_PROPERTY";
control.U_SplitPropertyType = "GOODS_TYPE";
//初始化
control.U_InitControl();
//定义双击事件
this.Init_Mdi_DoubleClick(control);
//加载控件
this.grpbGrid.Content = control;
}
/// <summary>
/// 加载计划依据物料
/// </summary>
private void LoadPlanGoodsControl(string QueryWhere)
{
//设置查询控件
this.InitQueryControl("V_PLAN_LIST");
ucSplitPropertyGridTab control = new ucSplitPropertyGridTab();
this.grpbGrid.Content = control;
control.U_AllowChecked = true;
control.U_AllowOperatData = false;
control.U_TableName = "V_PLAN_LIST";
control.U_XmlTableName = "V_PLAN_LIST";
control.U_OrderField = "PLAN_LIST_ID";
control.U_Where = intPlanID > 0 ? string.Format("PLAN_ID={0}", intPlanID) : string.Empty;
//control.U_Where = QueryWhere;
control.U_AppendWhere = QueryWhere;
control.U_SplitGroupColumn = "GOODS_TYPE_ID";
control.U_SplitGroupHeader = "GOODS_TYPE_NAME";
control.U_SplitPropertyColumn = "GOODS_PROPERTY";
control.U_SplitPropertyType = "GOODS_TYPE";
//初始化
control.U_InitControl();
//定义双击事件
Init_DataGrid_DoubleClick(control);
//加载控件
this.grpbGrid.Content = control;
}
/// <summary>
/// 加载库存依据物料
/// </summary>
private void LoadStorageGoodsControl(string QueryWhere)
{
//设置查询控件
//this.InitQueryControl("V_STORAGE_LIST");
//获得查询条件
string strWhere = this.ucQuery.U_GetQuery();
//strWhere = (intPlanID > 0) ? string.Format("GOODS_ID IN(SELECT GOODS_ID FROM PLAN_LIST WHERE PLAN_ID={0}){1}", intPlanID, (string.IsNullOrEmpty(strWhere) ? string.Empty : string.Format(" AND {0}", strWhere))) : strWhere;
ucSplitPropertyGridTab control = new ucSplitPropertyGridTab();
this.grpbGrid.Content = control;
control.U_AllowChecked = true;
control.U_AllowOperatData = false;
control.U_TableName = "V_STORAGE_LIST";
control.U_XmlTableName = "V_STORAGE_LIST";
control.U_OrderField = "STORAGE_LIST_ID";
control.U_Where = string.Format("AREA_TYPE = '{0}'", "XuNiKu");
control.U_AppendWhere = QueryWhere;
control.U_SplitGroupColumn = "GOODS_TYPE_ID";
control.U_SplitGroupHeader = "GOODS_TYPE_NAME";
control.U_SplitPropertyColumn = "GOODS_PROPERTY";
control.U_SplitPropertyType = "GOODS_TYPE";
//初始化
control.U_InitControl();
//定义双击事件
Init_DataGrid_DoubleClick(control);
//加载控件
this.grpbGrid.Content = control;
}
#endregion
#region ------双击事件
/// <summary>
/// 初始化控件的双击事件
/// </summary>
private void Init_DataGrid_DoubleClick(ucSplitPropertyGridTab control)
{
foreach (TabItem pageItem in control.tabSplitProperty.Items)
{
if (pageItem.Content != null)
{
ucCommonDataGrid grid = pageItem.Content as UC.ucCommonDataGrid;
if (grid != null)
{
grid.gridApp.MouseDoubleClick += new MouseButtonEventHandler(gridApp_MouseDoubleClick);
}
}
}
}
/// <summary>
/// 初始化双击事件
/// </summary>
private void Init_Mdi_DoubleClick(ucMdiTreeViewDataGridControl control)
{
if (control.grpboxChild.HasContent)
{
if (string.IsNullOrEmpty(control.U_SplitPropertyColumn))
{
ucCommonDataGrid ucGrid = control.grpboxChild.Content as ucCommonDataGrid;
if (ucGrid != null)
{
ucGrid.gridApp.MouseDoubleClick += new MouseButtonEventHandler(gridApp_MouseDoubleClick);
}
}
else
{
ucSplitPropertyGridTab ucSplitGrid = control.grpboxChild.Content as ucSplitPropertyGridTab;
if (ucSplitGrid != null)
{
this.Init_DataGrid_DoubleClick(ucSplitGrid);
}
}
}
}
/// <summary>
/// 双击选项,添加选项
/// </summary>
void gridApp_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
DataGridTemplate grid = e.Source as DataGridTemplate;
if (grid != null && grid.SelectedItem != null)
{
//获得数据绑定行
grid.U_CheckedRow(true, (grid.SelectedItem as DataRowView));
//确定返回
this.Confirm();
}
}
//双击添加记录
void control_U_DoubleClick()
{
this.Confirm();
}
#endregion
/// <summary>
/// 确认按钮
/// </summary>
void btnConfirm_Click(object sender, RoutedEventArgs e)
{
this.Confirm();
}
/// <summary>
/// 确认选择
/// </summary>
private void Confirm()
{
if (this.grpbGrid.Content != null)
{
object objControl = this.grpbGrid.Content;
//判断控件类型
if (objControl is ucCommonDataGrid)
{
ucCommonDataGrid control = objControl as ucCommonDataGrid;
if (control != null)
{
arDataRow = control.U_GetCheckedDataRows();
control.U_RejectCheckedRow();
}
}
if (objControl is ucSplitPropertyGridTab)
{
ucSplitPropertyGridTab control = grpbGrid.Content as ucSplitPropertyGridTab;
if (control != null)
{
arDataRow = control.U_GetCheckedDataRows();
control.U_RejectCheckedRow();
}
}
if (objControl is ucMdiTreeViewDataGridControl)
{
ucMdiTreeViewDataGridControl control = grpbGrid.Content as ucMdiTreeViewDataGridControl;
arDataRow = control.U_GetCheckedDataRows();
control.U_RejectCheckedRow();
}
//选定记录
if (this.U_CheckedDataGridRows != null)
{
this.U_CheckedDataGridRows();
}
}
}
}
}