using System; 
 | 
using System.Collections.Generic; 
 | 
using System.ComponentModel; 
 | 
using System.Data; 
 | 
using System.Drawing; 
 | 
using System.Text; 
 | 
using System.Windows.Forms; 
 | 
using System.Runtime.InteropServices; 
 | 
using gregn6Lib; 
 | 
using DBUtility; 
 | 
using SQLHelper; 
 | 
  
 | 
namespace WorkM 
 | 
{ 
 | 
    public partial class DefectiveDetailedYieldReport : Form   //简单报表-直接有一个存储过程+简单过滤,返回生成报表 
 | 
    { 
 | 
        public DefectiveDetailedYieldReport() 
 | 
        { 
 | 
            InitializeComponent(); 
 | 
        } 
 | 
        public string ModName = ""; 
 | 
        public string ModCaption = "不良明细良率报表"; 
 | 
  
 | 
        Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); 
 | 
  
 | 
        #region 固定代码  
 | 
  
 | 
        private void initGrid() 
 | 
        { 
 | 
            DBUtility.Xt_BaseBillFun.initGridRpt(grdMain, this.Name); 
 | 
            grdMain.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; 
 | 
        } 
 | 
        //得到对应列 
 | 
        private Int32 Fun_GetCol(string sCol) 
 | 
        { 
 | 
            return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); 
 | 
        } 
 | 
  
 | 
        private void tc_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            this.Close(); 
 | 
        } 
 | 
  
 | 
        //public  MES_ICMOBillStatusReportDlg oDlg = new MES_ICMOBillStatusReportDlg(); 
 | 
        private void cx_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            //oDlg.ShowDialog(); 
 | 
            //if (oDlg.IsOk == 1) 
 | 
            //{ 
 | 
                timer1.Enabled = true; 
 | 
            //} 
 | 
        } 
 | 
        //设置报表名称 
 | 
        private void SetFormCaption() 
 | 
        { 
 | 
            this.Text = ModCaption; 
 | 
            lblCaption.Text = this.Text; 
 | 
            initGrid();//网格标题初始化 
 | 
            initHeadCaption();//表头初始化 
 | 
        } 
 | 
  
 | 
  
 | 
        private void Frm_EasyReport_Load(object sender, EventArgs e) 
 | 
        { 
 | 
            SetFormCaption(); 
 | 
            oSumGrid.ogrdMain = grdMain;  //初始化 new 
 | 
            oSumGrid.oGridsum = grdSum; 
 | 
        } 
 | 
  
 | 
  
 | 
        private void timer1_Tick(object sender, EventArgs e) 
 | 
        { 
 | 
            timer1.Enabled = false; 
 | 
            if (Fun_AllowQuery()) 
 | 
            { 
 | 
                initGrid(); 
 | 
                Xt_Wait oFrm = new Xt_Wait(); 
 | 
                oFrm.Show(); 
 | 
                System.Windows.Forms.Application.DoEvents(); 
 | 
                Display(); 
 | 
                System.Windows.Forms.Application.DoEvents(); 
 | 
                oFrm.Close(); 
 | 
                oFrm.Dispose(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private void MES_ICMOBillStatusReport_KeyUp(object sender, KeyEventArgs e) 
 | 
        { 
 | 
            if (e.KeyValue == 13) 
 | 
                timer1.Enabled = true; 
 | 
        } 
 | 
  
 | 
        private void mrlk_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); 
 | 
        } 
 | 
  
 | 
        private void bclk_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            //保存列宽 
 | 
            DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); 
 | 
        } 
 | 
         
 | 
        //打印 
 | 
        private void dy_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            Sub_SetReport(); 
 | 
            Report.Print(true); 
 | 
        } 
 | 
        //预览 
 | 
        private void view_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            Sub_SetReport(); 
 | 
            Report.PrintPreview(true); 
 | 
        } 
 | 
        
 | 
        #endregion 
 | 
  
 | 
        #region 界面处理 
 | 
        //初始化表头显示 
 | 
        private void initHeadCaption() 
 | 
        { 
 | 
            dtpHBDate.Value = DateTime.Today; 
 | 
        } 
 | 
  
 | 
        private bool Fun_AllowQuery()//审核查询条件 
 | 
        { 
 | 
            //if (txtHBDeptID.Text.Trim().Length == 0) 
 | 
            //{ 
 | 
            //    MessageBox.Show(this, "请选择开始部门!", "提示"); 
 | 
            //    return false; 
 | 
            //} 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        private void Display() 
 | 
        { 
 | 
            SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); 
 | 
            DataSet DSet = new DataSet(); 
 | 
            //过滤条件Dlg 
 | 
            string sDlgWhere = ""; 
 | 
            if (txtHProcessExchangeBillNo.Text != "")//流转卡 
 | 
            { 
 | 
                sDlgWhere = sDlgWhere + "and c.HProcExchBillNo like '%" + txtHProcessExchangeBillNo.Text + "%'"; 
 | 
            } 
 | 
            if (txtHICMOBillNo.Text != "")//生产订单 
 | 
            { 
 | 
                sDlgWhere = sDlgWhere + "and a.HICMOBillNo like '%" + txtHICMOBillNo.Text + "%'"; 
 | 
            } 
 | 
            if (textHmaterName.Text != "")//物料 
 | 
            { 
 | 
                sDlgWhere = sDlgWhere + "and b.HName like '%" + textHmaterName.Text + "%'"; 
 | 
            } 
 | 
            if (textHprocName.Text != "")//工序 
 | 
            { 
 | 
                sDlgWhere = sDlgWhere + "and d.HName like '%" + textHprocName.Text + "%'"; 
 | 
            } 
 | 
            if (dtpHBDate.Value.ToShortDateString() != "")//开始日期 
 | 
            { 
 | 
                sDlgWhere = sDlgWhere + "and a.HMakeDate >= '" + dtpHBDate.Value.ToShortDateString() + "'"; 
 | 
            } 
 | 
            if (dtpHEDate.Value.ToShortDateString() != "")//结束日期 
 | 
            { 
 | 
                sDlgWhere = sDlgWhere + "and a.HMakeDate <= '" + dtpHEDate.Value.ToShortDateString() + "'"; 
 | 
            } 
 | 
            //过滤条件 
 | 
            //string sWhere = ""; 
 | 
            //sWhere = sWhere + ",'" + this.dtpHBDate.Value.ToShortDateString() + "'"; 
 | 
            //sWhere = sWhere + ",'" + this.dtpHEDate.Value.ToShortDateString() + "'"; 
 | 
            //sWhere = sWhere + ",1,3"; 
 | 
            ////sWhere = sWhere + ",'" + frmQuery.dtpHBakEndDate.Value.ToShortDateString() + "'"; 
 | 
            ////sWhere = sWhere + "," + frmQuery.txtHCusID.Tag.ToString().Trim(); 
 | 
            //if (sWhere.Trim().Length > 0) 
 | 
            //{ 
 | 
            //    sWhere = sWhere.Substring(1, sWhere.Length - 1); 
 | 
            //} 
 | 
            // 
 | 
            DSet = SubCn.RunProcReturn("select " + 
 | 
                "MAX(a.HMakeDate) 汇报日期, a.HICMOBillNo 任务单号," + 
 | 
                "case when isnull(ic.HBillSubType,0)='1055' then '返工' else '普通订单' end   任务单类型  , c.HProcExchBillNo 流转卡号, c.HProcID, d.HName 工序名称" + 
 | 
                ", sum(a.HWorkTimes) 工时, b.HName 物料名称, a.HICMOQty 生产订单数量, a.HPlanQty 计划数量, c.HQty 进站数量" + 
 | 
                ", co.HQty 出站合格数量, c.HQty - co.HQty - co.HWasterQty 未进站数量" + 
 | 
                ", co.HWasterQty 不合格数量, co.HQty /  nullif((co.HQty+co.HWasterQty),0) 出站良率,co.HBillSubType 业务类型, co.HName 不良明细, co.HBadQty 不良数量 " + 
 | 
                " FROM Sc_StationOutBillMain a " + 
 | 
                "left join sc_icmobillmain  ic on a.HICMOInterID =ic.HInterID " + 
 | 
                "left join Gy_Material  b on a.HMaterID = b.HItemID " + 
 | 
                "left join( " + 
 | 
                "select sum(aa.HQty) HQty, aa.HProcExchBillNo, aa.HProcExchInterID, aa.HProcID " + 
 | 
                "from Sc_StationInBillMain aa " + 
 | 
                "group by aa.HProcExchBillNo, aa.HProcExchInterID, aa.HProcID " + 
 | 
                ") c on a.HProcExchInterID = c.HProcExchInterID and a.HProcID = c.HProcID " + 
 | 
                "left join( " + 
 | 
                "select sum(aa.HQty) HQty, sum(aa.HWasterQty) HWasterQty, bad.HBadQty, bad.HName" + 
 | 
                ", aa.HProcExchBillNo, aa.HProcExchInterID, aa.HProcID,bad.HBillSubType " + 
 | 
                "from Sc_StationOutBillMain aa " + 
 | 
                "left join ( " + 
 | 
                "select qa.HProcExchInterID, qb.HBadQty, qbr.HName, qa.HProcID,qa.HBillSubType " + 
 | 
                "from QC_NoPassProdCheckBillMain qa " + 
 | 
                "left join QC_NoPassProdCheckBillsub qb on qa.HInterID = qb.HInterID " + 
 | 
                "left join Gy_BadReason qbr on qb.HBadReasonID = qbr.HItemID " + 
 | 
                "group by qa.HProcExchInterID, qbr.HName, qa.HProcID, qb.HBadQty,qa.HBillSubType " + 
 | 
                ") bad on aa.HProcExchInterID = bad.HProcExchInterID and aa.HProcID = bad.HProcID " + 
 | 
                "group by aa.HProcExchBillNo, aa.HProcExchInterID, aa.HProcID, bad.HBadQty, bad.HName,bad.HBillSubType " + 
 | 
                ") co on a.HProcExchInterID = co.HProcExchInterID and a.HProcID = co.HProcID " + 
 | 
                "left join Gy_Process d on c.HProcID = d.HItemID " + 
 | 
                "where 1 = 1 " + sDlgWhere + 
 | 
                "group by a.HICMOBillNo,c.HProcExchBillNo,d.HName,b.HName,a.HICMOQty,c.HQty,a.HPlanQty" + 
 | 
                ",case when isnull(ic.HBillSubType,0)='1055' then '返工' else '普通订单' end  " + 
 | 
                ",co.HQty,c.HProcID,co.HWasterQty,co.HName,co.HBadQty,a.HWasterQty,co.HBillSubType " + 
 | 
                "order by c.HProcID", "Sc_StationOutBillMain", ref ClsPub.sExeReturnInfo); 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
            ////过滤条件Dlg 
 | 
            //string sDlgWhere = ""; 
 | 
            //sDlgWhere = sDlgWhere + ",'" + txtHProcessExchangeBillNo.Text + "'"; 
 | 
            //sDlgWhere = sDlgWhere + ",'" + txtHICMOBillNo.Text + "'"; 
 | 
            //sDlgWhere = sDlgWhere + ",'" + textHmaterName.Text + "'"; 
 | 
            //sDlgWhere = sDlgWhere + ",'" + textHprocName.Text + "'"; 
 | 
            //sDlgWhere = sDlgWhere + ",'" + dtpHBDate.Value.ToShortDateString() + "'"; 
 | 
            //sDlgWhere = sDlgWhere + ",'" + dtpHEDate.Value.ToShortDateString() + "'"; 
 | 
            //if (sDlgWhere.Trim().Length > 0) 
 | 
            //{ 
 | 
            //    sDlgWhere = sDlgWhere.Substring(1, sDlgWhere.Length - 1); 
 | 
            //} 
 | 
  
 | 
            //DSet = SubCn.RunProcReturn("exec h_p_DefectiveDetailedYieldReport_New " + sDlgWhere, "h_p_DefectiveDetailedYieldReport_New"); 
 | 
  
 | 
            //生成首行标题 
 | 
            if (DSet == null) 
 | 
            { 
 | 
                MessageBox.Show("没有返回任何结果,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); 
 | 
                return; 
 | 
            } 
 | 
            // 
 | 
            grdMain.DataSource = DSet.Tables[0].DefaultView; 
 | 
            //设置合计列 
 | 
            string sTotalCol = ""; 
 | 
            sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); 
 | 
            string[] sT; 
 | 
            sT = sTotalCol.Split(Convert.ToChar(",")); 
 | 
            oSumGrid.BuildTotalCols(sT); 
 | 
            //   
 | 
            DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, "是", 100); 
 | 
            // 
 | 
            DBUtility.Xt_BaseBillFun.GetGrid(grdMain, this.Name); 
 | 
            TotalAll(); 
 | 
        } 
 | 
  
 | 
        #endregion 
 | 
  
 | 
        #region 打印设置 
 | 
  
 | 
        //打印设置 
 | 
        GridppReport Report; 
 | 
        //设置打印模版路径 
 | 
        private void Sub_SetReport() 
 | 
        { 
 | 
            Report = new GridppReport(); 
 | 
            Report.LoadFromFile(ClsPub.AppPath + @"\Report\应收款明细表.grf");  //here . 
 | 
            Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); 
 | 
            Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); 
 | 
        } 
 | 
        //填入单据表头信息 
 | 
        private void ReportBeforePostRecord()//your report?kao 
 | 
        { 
 | 
            //Report.FieldByName("HDateItemID").AsString = lblHDateItemID.Text; 
 | 
            //Report.FieldByName("CusNumber").AsString = lblHCusNumber.Text; 
 | 
            //Report.FieldByName("CusName").AsString = lblHCusName.Text; 
 | 
            //Report.FieldByName("BeginBalance").AsString = lblHBeginBalance.Text; 
 | 
        } 
 | 
        //填入单据明细信息 
 | 
        private void ReportFetchRecordByDataTable() 
 | 
        { 
 | 
            //BLL.Utility.FillRecordToReport(Report, grdMain, false); 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        #region 数据导出 
 | 
          
 | 
        private void yc_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain);// 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        private void timer2_Tick(object sender, EventArgs e) 
 | 
        { 
 | 
            timer2.Enabled = false; 
 | 
            //oDlg.ShowDialog(); 
 | 
            //if (oDlg.IsOk == 1) 
 | 
            //{ 
 | 
            //} 
 | 
        } 
 | 
  
 | 
        private void TotalAll() 
 | 
        { 
 | 
            if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) 
 | 
            { 
 | 
                oSumGrid.SetGridsum(); 
 | 
                oSumGrid.TotalAll(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private void Total() 
 | 
        { 
 | 
            if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) 
 | 
            { 
 | 
                oSumGrid.SetGridsum(); 
 | 
                oSumGrid.Total(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) 
 | 
        { 
 | 
            //Total(); 
 | 
        } 
 | 
  
 | 
        private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) 
 | 
        { 
 | 
            //Total(); 
 | 
        } 
 | 
  
 | 
        private void grdMain_Paint(object sender, PaintEventArgs e) 
 | 
        { 
 | 
            //DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); 
 | 
        } 
 | 
  
 | 
        private void eXCELToolStripMenuItem_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); 
 | 
        } 
 | 
  
 | 
        private void cSVToolStripMenuItem_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            DBUtility.Gy_BaseFun.DataGridViewToExcel2(grdMain, this.Text, this.Text); 
 | 
        } 
 | 
  
 | 
    } 
 | 
} 
 |