/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_RPT_020101_1.cs
* 2.功能描述:产品跟踪表
* 编辑履历:
* 作者 日期 版本 修改内容
* 袁新成 2015/4/9 1.00 新建
*******************************************************************************/
using System;
using System.Data;
using System.Windows.Forms;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Client.CommonModule;
using Dongke.IBOSS.PRD.Client.Controls;
using Dongke.IBOSS.PRD.Client.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels;
using Dongke.IBOSS.PRD.WCF.DataModels.ReportModule;
using Dongke.IBOSS.PRD.WCF.Proxys;
namespace Dongke.IBOSS.PRD.Client.ReportModule
{
///
/// 产品跟踪表
///
public partial class F_RPT_020101_1 : DKDockPanelBase
{
#region 成员变量
// 窗体的单例模式
private static F_RPT_020101_1 _instance;
//定义实体类
private SearchGoodsFollowingEntity searchGoodsFollowingEntity = new SearchGoodsFollowingEntity();
#endregion
#region 构造函数
public F_RPT_020101_1()
{
InitializeComponent();
// 窗体显示的Title
this.Text = FormTitles.F_RPT_020101;
this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE;
this.tsbtnClose.Text = ButtonText.TSBTN_CLOSE;
this.btnSearch.Text = ButtonText.BTN_SEARCH;
this.btnClearCondition.Text = ButtonText.BTN_CLEARCONDITION;
this.gbxCondition.Text = Constant.LABEL_QUERY_CONDITIONS;
}
#endregion
#region 单例模式
///
/// 单例模式,防止重复创建窗体
///
public static F_RPT_020101_1 Instance
{
get
{
if (_instance == null || _instance.IsDisposed)
{
_instance = new F_RPT_020101_1();
}
return _instance;
}
}
#endregion
#region 事件处理
///
/// 窗体加载事件
///
///
///
private void F_RPT_0201_1_Load(object sender, EventArgs e)
{
try
{
// 加载权限
FormPermissionManager.FormPermissionControl(this.Name, this,
LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData,
LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData);
// 设置表格不自动创建列
this.dgvProductionFollowing.AutoGenerateColumns = false;
this.dgvProductionDetail.AutoGenerateColumns = false;
this.txtBarCode.Focus();
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 自动适应列宽
///
///
///
private void tsbtnAdaptive_Click(object sender, EventArgs e)
{
this.dgvProductionFollowing.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
this.dgvProductionDetail.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
///
/// 查询按钮事件
///
///
///
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
if (!string.IsNullOrEmpty(this.txtBarCode.Text.Trim()))
{
//清空数据
this.dgvProductionDetail.DataSource = null;
this.dgvProductionFollowing.DataSource = null;
DataSet dsQuery = this.GetSearchData();
if (dsQuery != null)
{
if (dsQuery.Tables.Count > 1)
{
this.dgvProductionFollowing.DataSource = dsQuery.Tables[0];
DataTable detailTable = dsQuery.Tables[1];
DataColumn column = new DataColumn("ParentID");
detailTable.Columns.Add(column);
for (int i = 0; i < detailTable.Rows.Count; i++)
{
detailTable.Rows[i]["ParentID"] = 0;
}
this.dgvProductionDetail.DataSource = detailTable;
if (!this.radioNo.Checked && this.radioYes.Checked && dsQuery.Tables.Count > 2)
{
DataTable idnrkInformation = dsQuery.Tables[2];
DataTable newDatable = detailTable.Clone();
DataColumn columns = new DataColumn("IdnrkInformation");
newDatable.Columns.Add(columns);
for (int i = 0; i < detailTable.Rows.Count; i++)
{
newDatable.ImportRow(detailTable.Rows[i]);
for (int j = 0; j < idnrkInformation.Rows.Count; j++)
{
if (detailTable.Rows[i]["ProcedureName"].ToString() == idnrkInformation.Rows[j]["ProcedureName"].ToString())
{
newDatable.ImportRow(idnrkInformation.Rows[j]);
}
}
}
this.dgvProductionDetail.DataSource = newDatable;
}
}
else
{
this.dgvProductionFollowing.DataSource = dsQuery.Tables[0];
}
}
}
else
{
MessageBox.Show(string.Format(Messages.MSG_CMN_W005, "产品条码"),
this.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning);
this.txtBarCode.Focus();
}
}
catch (Exception ex)
{
this.btnSearch.Enabled = true;
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 根据界面查询条件获取数据集
///
private DataSet GetSearchData()
{
try
{
RPT020101_SE se = new RPT020101_SE();
se.Barcode = this.txtBarCode.Text.Trim();
// 调用服务器端获取数据集
ServiceResultEntity sre = DoAsync(() =>
{
return ReportModuleProxy.Service.GetRPT020101SData(se);
}
);
if (sre.Status == Constant.ServiceResultStatus.Success)
{
return sre.Data;
}
return null;
}
catch (Exception ex)
{
throw ex;
}
}
///
/// 清空条件按钮事件
///
///
///
private void btnClearCondition_Click(object sender, EventArgs e)
{
this.txtBarCode.Text = string.Empty;
}
///
/// 窗体关闭事件
///
///
///
private void F_RPT_0201_1_FormClosed(object sender, FormClosedEventArgs e)
{
_instance = null;
}
///
/// 关闭按钮
///
///
///
private void tsbtnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 按回车查询
///
///
///
private void txtBarCode_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter && !string.IsNullOrEmpty(this.txtBarCode.Text.Trim()))
{
this.btnSearch_Click(null, null);
}
}
#endregion
///
/// 是否变化按钮
///
///
///
private void radioYes_CheckedChanged(object sender, EventArgs e)
{
if (this.radioYes.Checked)
{
this.radioNo.Checked = false;
}
else
{
this.radioNo.Checked = true;
}
}
///
/// 是否变化按钮
///
///
///
private void radioNo_CheckedChanged(object sender, EventArgs e)
{
if (this.radioNo.Checked)
{
this.radioYes.Checked = false;
}
else
{
this.radioYes.Checked = true;
}
}
}
}