/******************************************************************************* * Copyright(c) 2015 DongkeSoft All rights reserved. / Confidential * 类的信息: * 1.程序名称:F_RPT_080116.cs * 2.功能描述:QC检验分析汇总表 * 编辑履历: * 作者 日期 版本 修改内容 * 秦祺 2022/12/09 1.00 新建 *******************************************************************************/ using System; using System.Data; using System.Windows.Forms; using System.Linq; using System.Collections.Generic; 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.Client.PMModule; using Dongke.IBOSS.PRD.WCF.DataModels; using Dongke.IBOSS.PRD.WCF.Proxys; namespace Dongke.IBOSS.PRD.Client.ReportModule { public partial class F_RPT_080116 : DKDockPanelBase { #region 成员变量 // 窗体的单例模式 private static F_RPT_080116 _instance; #region 定义数据类型 //输入模糊查询字段之后,返回的关键词 System.Collections.Generic.List listNew = new List(); //下拉框初始化数据绑定 List listOnit = new List(); //数据库查询原始数据 List selectList = new List(); /// /// 空间所需类 /// public class cbinpectname { /// /// id /// public string ITEMSID { get; set; } /// /// 检验类型 /// public string INSPECTTYPE { get; set; } /// /// 名称 /// public string INSPECTNAME { get; set; } } /// /// 数据库查询数据返回类 /// public class cbinpectnameType : cbinpectname { /// /// 版本号 /// public string INSPECTVERSION { get; set; } /// /// 是否有效 /// public string VALUEFLAG { get; set; } } #endregion #endregion #region 构造函数 public F_RPT_080116() { InitializeComponent(); // 窗体显示的Title this.Text = "QC检验分析汇总表"; this.btnSearch.Text = ButtonText.BTN_SEARCH; this.tsbtnAdaptive.Text = ButtonText.TSBTN_ADAPTIVE; this.tsbtnClose.Text = ButtonText.TSBTN_CLOSE; this.btnClearCondition.Text = ButtonText.BTN_CLEARCONDITION; this.gbxCondition.Text = Constant.LABEL_QUERY_CONDITIONS; } #endregion #region 单例模式 /// /// 单例模式,防止重复创建窗体 /// public static F_RPT_080116 Instance { get { if (_instance == null || _instance.IsDisposed) { _instance = new F_RPT_080116(); } return _instance; } } #endregion #region 事件处理 /// /// 窗体加载事件 /// /// /// private void F_RPT_080116_Load(object sender, EventArgs e) { try { // 加载权限 FormPermissionManager.FormPermissionControl(this.Name, this, LogInUserInfo.CurrentUser.CurrentUserEntity.UserRightData, LogInUserInfo.CurrentUser.CurrentUserEntity.FunctionData); this.dtpCreateTimeBegin.Value = DateTime.Now.Date; this.dtpCreateTimeEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); // 设置表格不自动创建列 this.dgvBarcodeIdnrk.AutoGenerateColumns = false; // 检验标准名称 //绑定检验类型 ClientRequestEntity cre = new ClientRequestEntity(); cre.NameSpace = "F_RPT_080116"; cre.Name = "GetInspectName"; ServiceResultEntity sre = DoAsync(() => { return PCModuleProxyNew.Service.HandleRequest(cre); }); if (sre.Data != null && sre.Data.Tables.Count > 0 && sre.Data.Tables[0].Rows.Count > 0) { //将查询的数据转换成List DataTable dt = sre.Data.Tables[0]; for (int i = 0; i < dt.Rows.Count; i++) { var item = dt.Rows[i]; selectList.Add(new cbinpectnameType { ITEMSID = item.ItemArray[0].ToString(), INSPECTTYPE = item.ItemArray[1].ToString(), INSPECTNAME = item.ItemArray[2].ToString(), INSPECTVERSION = item.ItemArray[3].ToString(), VALUEFLAG = item.ItemArray[4].ToString() }); } this.cbInpectName.DisplayMember = "INSPECTNAME"; this.cbInpectName.ValueMember = "ITEMSID"; //this.cbInpectName.DataSource = sre.Data.Tables[0]; handle(radioButton1.Checked, radioButton3.Checked); } } catch (Exception ex) { // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 自动适应列宽 /// /// /// private void tsbtnAdaptive_Click(object sender, EventArgs e) { this.dgvBarcodeIdnrk.AutoResizeColumns(); } /// /// 窗体关闭事件 /// /// /// private void F_RPT_080116_FormClosed(object sender, FormClosedEventArgs e) { _instance = null; } /// /// 关闭按钮 /// /// /// private void tsbtnClose_Click(object sender, EventArgs e) { this.Close(); } /// /// 查询按钮事件 /// /// /// private void btnSearch_Click(object sender, EventArgs e) { if (this.cbInpectName.Text.Length == 0) { MessageBox.Show("请选择检验标准名称", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } try { this.dgvBarcodeIdnrk.DataSource = null; ClientRequestEntity cre = new ClientRequestEntity(); cre.NameSpace = "F_RPT_080116"; cre.Name = "Get080116Detail"; cre.Properties["CreateTimeBegin"] = this.dtpCreateTimeBegin.Value; cre.Properties["CreateTimeEnd"] = Convert.ToDateTime(this.dtpCreateTimeEnd.Value).AddSeconds(1); // cre.Properties["ITEMSID"] = this.cbInpectName.SelectedValue; cre.Properties["ITEMSID"] = listOnit.Where(ex => ex.INSPECTNAME == this.cbInpectName.Text).FirstOrDefault().ITEMSID; ServiceResultEntity sre = DoAsync(() => { return PCModuleProxyNew.Service.HandleRequest(cre); }); if (sre.Data != null && sre.Data.Tables.Count > 0 && sre.Data.Tables[0].Rows.Count > 0) { dgvBarcodeIdnrk.DataSource = sre.Data.Tables[0]; tsbtnAdaptive_Click(null, null); } 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 btnClearCondition_Click(object sender, EventArgs e) { this.dtpCreateTimeBegin.Value = DateTime.Now.Date; this.dtpCreateTimeEnd.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1); this.cbInpectName.SelectedValue = 1; //清空combobox this.cbInpectName.Text = ""; this.cbInpectName.Items.Clear(); this.cbInpectName.Items.AddRange(listOnit.ToArray()); } /// /// 编辑 /// /// /// private void tsbtnEdit_Click(object sender, EventArgs e) { try { if (this.dgvBarcodeIdnrk.CurrentCell != null) { F_RPT_080111 frm080111 = new F_RPT_080111(); frm080111.DrValue = (this.dgvBarcodeIdnrk.CurrentRow.DataBoundItem as DataRowView).Row; frm080111.ShowDialog(); if (DialogResult.OK.Equals(frm080111.DialogResult)) { btnSearch_Click(null, null); } } } 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 dgvBarcodeIdnrk_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { try { if (this.dgvBarcodeIdnrk.CurrentRow == null) { return; } //获取数据信息 DataGridViewRow dgvr = dgvBarcodeIdnrk.CurrentRow; string INSPECTITEM = dgvr.Cells["INSPECTITEM"].Value.ToString(); //跳转页 this.tabControl1.SelectTab(1); //清空数据 this.dgvQCdata.DataSource = null; this.dgvQCdata.DataSource = GetSearchDetailData(INSPECTITEM); } catch (Exception ex) { this.btnSearch.Enabled = true; this.btnClearCondition.Enabled = true; // 对异常进行共通处理 ExceptionManager.HandleEventException(this.ToString(), System.Reflection.MethodBase.GetCurrentMethod().Name, this.Text, ex); } } /// /// 查询检验计划明细 /// private DataTable GetSearchDetailData(string INSPECTITEM) { try { ClientRequestEntity cre = new ClientRequestEntity(); cre.NameSpace = "F_RPT_080116"; cre.Name = "GetDetailInspection"; cre.Properties["INSPECTITEM"] = INSPECTITEM; cre.Properties["CreateTimeBegin"] = this.dtpCreateTimeBegin.Value; cre.Properties["CreateTimeEnd"] = Convert.ToDateTime(this.dtpCreateTimeEnd.Value).AddSeconds(1); ServiceResultEntity sre = DoAsync(() => { return PCModuleProxyNew.Service.HandleRequest(cre); }); if (sre.Data != null && sre.Data.Tables.Count > 0 && sre.Data.Tables[0].Rows.Count > 0) { return sre.Data.Tables[0]; } else { return null; // 提示未查找到数据 MessageBox.Show(Messages.MSG_CMN_I002, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information); } } catch (Exception ex) { throw ex; } } #region 模糊查询 历史版本和型式检验 及数据处理 /// /// 模糊查询 /// /// /// private void cbInpectNameText_Updata(object sender, EventArgs e) { //清空combobox this.cbInpectName.Items.Clear(); //清空listNew listNew.Clear(); //遍历全部备查数据 foreach (var item in listOnit) { if (item.INSPECTNAME.Contains(this.cbInpectName.Text)) { //符合,插入ListNew listNew.Add(item); } } //combobox添加已经查到的关键词 this.cbInpectName.Items.AddRange(listNew.ToArray()); //设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列 this.cbInpectName.SelectionStart = this.cbInpectName.Text.Length; //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置。 Cursor = Cursors.Default; //自动弹出下拉框 this.cbInpectName.DroppedDown = true; } /// /// 数据处理 /// /// 是否显示历史版本 /// 是否显示型式检验 private void handle(bool a, bool b) { //清除初始数据 this.cbInpectName.Items.Clear(); listOnit.Clear(); //赋值数据以便筛选 var list = selectList; //不显示历史版本 if (!a) { list = list.Where(ex => ex.VALUEFLAG == "1").ToList(); } // 型式检验 list = !b ? list.Where(ex => ex.INSPECTTYPE != "615").ToList() : list.Where(ex => ex.INSPECTTYPE == "615").ToList(); //遍历符合数据 foreach (var item in list) { //按要求将数据装入listOnit中 listOnit.Add(new cbinpectname { ITEMSID = item.ITEMSID, INSPECTTYPE = item.INSPECTTYPE, INSPECTNAME = a ? item.INSPECTNAME + "[版本:" + item.INSPECTVERSION + "]" : item.INSPECTNAME }); } //赋值给控件 this.cbInpectName.Items.AddRange(listOnit.ToArray()); } /// /// 是否按钮数据切换 /// /// /// private void RadioButton_CheckedChanged(object sender, EventArgs e) { //滤除第一遍的请求 if (!((RadioButton)sender).Checked) { return; } handle(radioButton1.Checked, radioButton3.Checked); } #endregion #endregion } }