/*******************************************************************************
* Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
* 类的信息:
* 1.程序名称:F_RPT_020104.cs
* 2.功能描述:窑车状态表
* 编辑履历:
* 作者 日期 版本 修改内容
* 王鑫 2015/06/15 1.00 新建
*******************************************************************************/
using System;
using System.Data;
using System.Windows.Forms;
using Dongke.IBOSS.PRD.Basics.BaseResources;
using Dongke.IBOSS.PRD.Basics.DockPanel;
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_020104 : DKDockPanelBase
{
#region 成员变量
// 窗体的单例模式
private static F_RPT_020104 _instance;
//默认窑炉选定值(清空按钮所用)
private int _clearKilnValue = -1;
// 当前选择的行
private int _selectedRowIndex;
#endregion
#region 构造函数
///
/// 构造函数
///
public F_RPT_020104()
{
InitializeComponent();
SetFromTitleInfo();//设置按钮文本
}
#endregion
#region 单例模式
///
/// 单例模式,防止重复创建窗体
///
public static F_RPT_020104 Instance
{
get
{
if (_instance == null || _instance.IsDisposed)
{
_instance = new F_RPT_020104();
}
return _instance;
}
}
#endregion
#region 事件
///
/// 窗体加载事件
///
///
///
private void F_RPT_020104_Load(object sender, EventArgs e)
{
try
{
// 设置表格不自动创建列
this.dgvKilnCar.AutoGenerateColumns = false;
this.dgvKilnCarDetail.AutoGenerateColumns = false;
this.dgvKilnCarDetail.AutoGenerateColumns = false;
// 加载权限
FormPermissionManager.FormPermissionControl(this.Name, this,
LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData, LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData);
// 窑炉编码
DataSet dsKiln = (DataSet)DoAsync(new AsyncMethod(() =>
{
return SystemModuleProxy.Service.GetKilnData(0);
}));
this.cmbKiln.DisplayMember = "KilnCode";
this.cmbKiln.ValueMember = "KilnID";
this.cmbKiln.DataSource = dsKiln.Tables[0];
if (dsKiln.Tables[0].Rows.Count > 0)
{
this._clearKilnValue = Convert.ToInt32(dsKiln.Tables[0].Rows[0]["KilnID"]);
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 自动适应列宽
///
///
///
private void tsbtnAdaptive_Click(object sender, EventArgs e)
{
this.dgvKilnCar.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
this.dgvKilnCarDetail.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
this.dgvKilnCarGoods.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);
}
///
/// 窗体关闭事件
///
///
///
private void F_RPT_020104_FormClosed(object sender, FormClosedEventArgs e)
{
_instance = null;
}
///
/// 关闭按钮事件
///
///
///
private void tsbtnClose_Click(object sender, EventArgs e)
{
this.Close();
}
///
/// 清空按钮事件
///
///
///
private void btnClearCondition_Click(object sender, EventArgs e)
{
this.txtKilnCarCode.Text = string.Empty;
this.cmbKiln.SelectedValue = this._clearKilnValue;
}
///
/// 查询按钮事件
///
///
///
private void btnSearch_Click(object sender, EventArgs e)
{
try
{
//没有对应的生产线权限,返回 因为有无责任工序,则可以不用分配工序的权限,不分配,只能查无责任工序
if (string.IsNullOrEmpty(this.cmbKiln.Text.Trim()))
{
MessageBox.Show("窑炉编码必须填写", this.Text,
MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
this._selectedRowIndex = 0;
// 记录当前选中行
int selectRowIndex = this._selectedRowIndex;
// 异步处理
this.btnSearch.Enabled = false;
this.btnClearCondition.Enabled = false;
string KilnCode = this.cmbKiln.Text.Trim();
ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new AsyncMethod(() =>
{
return ReportModuleProxy.Service.GetKilnCarStatusByCode(KilnCode, this.txtKilnCarCode.Text.Trim() == "" ? "" : KilnCode + this.txtKilnCarCode.Text.Trim());
}));
this.btnSearch.Enabled = true;
this.btnClearCondition.Enabled = true;
if (sre.Status == Constant.ServiceResultStatus.Success)
{
// 控制明细不查询
this.Tag = false;
this.dgvKilnCar.DataSource = sre.Data.Tables[0];
this.dgvKilnCar.Rows[selectRowIndex].Selected = true;
this.dgvKilnCar.CurrentCell = this.dgvKilnCar.Rows[selectRowIndex].Cells["kilncode1"];
this.Tag = true;
dgvKilnCar_SelectionChanged(null, null);
this.dgvKilnCar.Focus();
}
else
{
// 提示未查找到数据
MessageBox.Show(Messages.MSG_CMN_I002, this.Text,
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
catch (Exception ex)
{
this.btnSearch.Enabled = true;
this.btnClearCondition.Enabled = true;
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
}
///
/// 主表选定项发生改变时
///
///
///
private void dgvKilnCar_SelectionChanged(object sender, EventArgs e)
{
try
{
// 在绑定总表时 不查询明细
if (!Convert.ToBoolean(this.Tag)
|| this.dgvKilnCar.CurrentCell == null)
{
return;
}
// 选中行时查询明细
else
{
if (this.txtKilnCarCode.ReadOnly)
{
return;
}
//this.dgvKilnCar.Enabled = false;
this._selectedRowIndex = this.dgvKilnCar.CurrentCell.RowIndex;
this.dgvKilnCarDetail.DataSource = null;
this.dgvKilnCarGoods.DataSource = null;
string kilncarcode1 = this.dgvKilnCar.Rows[_selectedRowIndex].Cells["kilncarcode1"].Value.ToString();
ServiceResultEntity sre = (ServiceResultEntity)DoAsync(new AsyncMethod(() =>
{
return ReportModuleProxy.Service.GetKilnCarStatusDetailByCode(kilncarcode1);
}));
if (sre.Status == Constant.ServiceResultStatus.Success)
{
this.dgvKilnCarDetail.DataSource = sre.Data.Tables[0];
this.dgvKilnCarGoods.DataSource = sre.Data.Tables[1];
this.dgvKilnCar.Focus();
}
}
}
catch (Exception ex)
{
// 对异常进行共通处理
ExceptionManager.HandleEventException(this.ToString(),
System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex);
}
finally
{
this.dgvKilnCar.Enabled = true;
}
}
#endregion
#region 私有方法
///
/// 设置窗体按钮的文本信息
///
private void SetFromTitleInfo()
{
this.Text = FormTitles.F_RPT_020104;
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
}
}