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 SQLHelper; 
 | 
  
 | 
namespace APSM 
 | 
{ 
 | 
    public partial class KF_LackMaterialAnalyse : Form   // 
 | 
    { 
 | 
        public KF_LackMaterialAnalyse() 
 | 
        { 
 | 
            InitializeComponent(); 
 | 
        } 
 | 
        public KF_LackMaterialAnalyseDetail oDetailDlg = new KF_LackMaterialAnalyseDetail(); 
 | 
        public const Int16 FixCols = 7; 
 | 
        DAL.ClsSc_ICMOSortBill oMain=new DAL.ClsSc_ICMOSortBill(); 
 | 
        public string ModName = ""; 
 | 
        public string ModCaption = "车间缺料分析"; 
 | 
  
 | 
        public const int HNumberCol = 0; 
 | 
        public const int HNameCol = 1; 
 | 
        public const int HModelCol = 2; 
 | 
        public const int HKCQtyCol = 3; 
 | 
        public const int HZTQtyCol = 4; 
 | 
        public const int HWFQtyCol = 5; 
 | 
        public const int HTotalCol = 6; 
 | 
        #region 固定代码  
 | 
  
 | 
        private void initGrid() 
 | 
        { 
 | 
            grdMain.Cols =7; 
 | 
            grdMain.Rows =2; 
 | 
            grdMain.FixedCols = 0; 
 | 
            grdMain.FixedRows = 2; 
 | 
            grdMain.ExplorerBar = VSFlex7.ExplorerBarSettings.flexExSort; 
 | 
            grdMain.AllowBigSelection = false; 
 | 
            grdMain.AllowSelection = false; 
 | 
            grdMain.SelectionMode = VSFlex7.SelModeSettings.flexSelectionByRow; 
 | 
            grdMain.ScrollTrack = true; 
 | 
            grdMain.WordWrap = true; 
 | 
            grdMain.set_ColWidth(-1, 1500); 
 | 
            grdMain.set_RowHeight(-1, 400); 
 | 
            grdMain.set_RowHeight(0, 500); 
 | 
            //隐藏列 
 | 
            grdMain.set_RowHidden(1, true); 
 | 
            grdMain.RowHeightMin = 250; 
 | 
            grdMain.Editable = VSFlex7.EditableSettings.flexEDNone; 
 | 
            grdMain.AllowUserResizing = VSFlex7.AllowUserResizeSettings.flexResizeBoth; 
 | 
            grdMain.AllowUserFreezing = VSFlex7.AllowUserFreezeSettings.flexFreezeBoth; 
 | 
            grdMain.set_FixedAlignment(-1, VSFlex7.AlignmentSettings.flexAlignCenterCenter); 
 | 
            grdMain.AutoSizeMode = VSFlex7.AutoSizeSettings.flexAutoSizeColWidth; 
 | 
            grdMain.set_TextMatrix(0, HNumberCol, "物料代码"); 
 | 
            grdMain.set_TextMatrix(0, HNameCol, "物料名称"); 
 | 
            grdMain.set_TextMatrix(0, HModelCol, "物料型号"); 
 | 
            grdMain.set_TextMatrix(0, HKCQtyCol, "即时库存"); 
 | 
            grdMain.set_TextMatrix(0, HZTQtyCol, "在途采购"); 
 | 
            grdMain.set_TextMatrix(0, HWFQtyCol, "未发数"); 
 | 
            grdMain.set_TextMatrix(0, HTotalCol, "合计"); 
 | 
            grdMain.FrozenCols = 7; 
 | 
             // 
 | 
            LoadDateCol(28); 
 | 
            Sc_ICMOSortBillFun.GetGrid(grdMain, this.Name); 
 | 
        } 
 | 
        //得到对应列 
 | 
        private int Fun_GetCol(string sColName) 
 | 
        { 
 | 
            return Sc_ICMOSortBillFun.Fun_GetCol(sColName, grdMain); 
 | 
        } 
 | 
  
 | 
        private void tc_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            this.Close(); 
 | 
        } 
 | 
  
 | 
        KF_LackMaterialAnalyseDlg oDlg = new KF_LackMaterialAnalyseDlg(); 
 | 
        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(); 
 | 
        } 
 | 
  
 | 
  
 | 
        private void timer1_Tick(object sender, EventArgs e) 
 | 
        { 
 | 
            timer1.Enabled = false; 
 | 
            if (Fun_AllowQuery()) 
 | 
            {  
 | 
                System.Windows.Forms.Application.DoEvents(); 
 | 
                Query(); 
 | 
                System.Windows.Forms.Application.DoEvents(); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        private void Xs_SellOutPriceReport_KeyUp(object sender, KeyEventArgs e) 
 | 
        { 
 | 
            if (e.KeyValue == 13) 
 | 
                timer1.Enabled = true; 
 | 
        } 
 | 
  
 | 
        private void mrlk_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            Sc_ICMOSortBillFun.DefaultGrid(grdMain, this.Name); 
 | 
        } 
 | 
  
 | 
        private void bclk_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            //保存列宽 
 | 
            Sc_ICMOSortBillFun.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() 
 | 
        { 
 | 
              
 | 
        } 
 | 
  
 | 
        private bool Fun_AllowQuery()//审核查询条件 
 | 
        { 
 | 
            //if (txtHBDeptID.Text.Trim().Length == 0) 
 | 
            //{ 
 | 
            //    MessageBox.Show(this, "请选择开始部门!", "提示"); 
 | 
            //    return false; 
 | 
            //} 
 | 
            return true; 
 | 
        } 
 | 
  
 | 
        private void Query() 
 | 
        { 
 | 
            string sSQL = ""; 
 | 
            long lngCount =0; 
 | 
            int  i =0; 
 | 
            int r =0; 
 | 
            int c =0; 
 | 
            Single cSumAmount=0; 
 | 
            Single ctmpAmount=0; 
 | 
            string sNewDate="";  
 | 
            int m =0;   
 | 
            grdMain.Redraw = VSFlex7.RedrawSettings.flexRDNone;  
 | 
            initGrid(); 
 | 
            oDetailDlg.initGrid(); 
 | 
            // 
 | 
            sNewDate = oMain.GetNewSetup(DBUtility.ClsPub.isLong(oDlg.txtHBDeptID.Tag)).ToShortDateString(); //得到最新排程 
 | 
            //加载投料记录 
 | 
            oMain.FillData(DBUtility.ClsPub.isLong(oDlg.txtHBDeptID.Tag)); 
 | 
            // 
 | 
            System.Windows.Forms.Application.DoEvents(); 
 | 
            sSQL = "exec h_p_Sc_GetICMOSortBillList "+DBUtility.ClsPub.isLong(oDlg.txtHBDeptID.Tag).ToString()+",'"+sNewDate+"'"; 
 | 
            SQLHelper.ClsCN oCn=new ClsCN(); 
 | 
            DataSet DS=oCn.RunProcReturn(sSQL,"gy_Material"); 
 | 
            pb1.Maximum = DS.Tables[0].Rows.Count; 
 | 
            pb1.Visible = true; 
 | 
            for(i=0;i<DS.Tables[0].Rows.Count;i++) 
 | 
            { 
 | 
                InputTLD(DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HNumber"]) 
 | 
                        , DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HSourceName"]) 
 | 
                        , DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HICMOBillNo"]) 
 | 
                        , DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HSplitNo"]) 
 | 
                        , DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HDate"]) 
 | 
                        , DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HQty"])); 
 | 
                System.Windows.Forms.Application.DoEvents(); 
 | 
                pb1.Value=i; 
 | 
                System.Windows.Forms.Application.DoEvents(); 
 | 
             
 | 
            } 
 | 
            pb1.Visible = false; 
 | 
            //设置未发数 
 | 
            for( i=oDetailDlg.grdMain.FixedRows;i<oDetailDlg.grdMain.Rows;i++) 
 | 
            { 
 | 
                r = -1; 
 | 
                if( DBUtility.ClsPub.isSingle(oDetailDlg.grdMain.get_TextMatrix(i, 4)) -DBUtility.ClsPub.isSingle(oDetailDlg.grdMain.get_TextMatrix(i, 5)) != 0 ) 
 | 
                { 
 | 
                    r = FindRow(oDetailDlg.grdMain.get_TextMatrix(i, 0)); 
 | 
                    if( r != -1 ) 
 | 
                    { 
 | 
                        //设置未发数 
 | 
                        grdMain.set_TextMatrix(r,5,Convert.ToString(DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(r,5))  
 | 
                                        +DBUtility.ClsPub.isSingle(oDetailDlg.grdMain.get_TextMatrix(i,4)) 
 | 
                                        -DBUtility.ClsPub.isSingle(oDetailDlg.grdMain.get_TextMatrix(i,5)))); 
 | 
                    } 
 | 
                } 
 | 
            } 
 | 
            //判断 未发数和 库存是否 够用 
 | 
            for(i=grdMain.FixedRows;i<grdMain.Rows;i++) 
 | 
            {  
 | 
                grdMain.set_Cell(VSFlex7.CellPropertySettings.flexcpBackColor, i, 3,i,3 ,DBUtility.ClsPub.Enum_Color.hx_Write); 
 | 
                grdMain.set_Cell(VSFlex7.CellPropertySettings.flexcpForeColor, i, 3,i,3, DBUtility.ClsPub.Enum_Color.hx_Black); 
 | 
                // 
 | 
                if (DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(i, 5)) -DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(i, 3)) > 0 ) 
 | 
                { 
 | 
                    //库存不足显示红色 
 | 
                    grdMain.set_Cell(VSFlex7.CellPropertySettings.flexcpForeColor, i, 3, i , 3 ,DBUtility.ClsPub.Enum_Color.hx_Red); 
 | 
                } 
 | 
            } 
 | 
            // 
 | 
            for( i=grdMain.FixedRows;i<grdMain.Rows;i++) 
 | 
            {   
 | 
                ctmpAmount = 0; 
 | 
                cSumAmount =DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(i, 6))  
 | 
                                - DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(i, 5))  
 | 
                                + DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(i, 3)); 
 | 
                for(  m=7;m<grdMain.Cols;m++) 
 | 
                { 
 | 
                    ctmpAmount = ctmpAmount + DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(i, m)); 
 | 
                    if( ctmpAmount > cSumAmount) 
 | 
                    { 
 | 
                        grdMain.set_Cell(VSFlex7.CellPropertySettings.flexcpForeColor, i, m, i, m, DBUtility.ClsPub.Enum_Color.hx_Red); 
 | 
                    } 
 | 
                } 
 | 
                //=================== 
 | 
            } 
 | 
            grdMain.Redraw = VSFlex7.RedrawSettings.flexRDBuffered; 
 | 
            System.Windows.Forms.Application.DoEvents(); 
 | 
        } 
 | 
  
 | 
         
 | 
        private void InputTLD(string sItemNumber ,string sJT ,string  sSCRWDH ,string sPGDH ,string sDate ,string  sQuantity ) 
 | 
        { 
 | 
            int c; 
 | 
            int r;  
 | 
            int w; 
 | 
            Single bl=0; 
 | 
            long i; 
 | 
            long SUM ;  
 | 
            List<DAL.Cls_ICTLDetail> oColl;  
 | 
            if( sQuantity.Trim() != "" ) 
 | 
            { 
 | 
                oColl=oMain.GetTLColl(sSCRWDH); 
 | 
                if(oColl==null || oColl.Count==0) 
 | 
                { 
 | 
                    return ; 
 | 
                } 
 | 
                foreach(DAL.Cls_ICTLDetail oTLDetail in oColl) 
 | 
                {  
 | 
                    r =  FindRow( oTLDetail.WLDM ); 
 | 
                    if(r==-1) 
 | 
                    { 
 | 
                        grdMain.Rows=grdMain.Rows+1;  
 | 
                        r = grdMain.Rows - 1; 
 | 
                    } 
 | 
                    grdMain.set_TextMatrix(r,0,oTLDetail.WLDM);  
 | 
                    grdMain.set_TextMatrix(r, 1,oTLDetail.WLMC); 
 | 
                    grdMain.set_TextMatrix(r, 2,oTLDetail.GGXH); 
 | 
                    grdMain.set_TextMatrix(r, 3,oTLDetail.StockAmount.ToString()); // 'GetSumStockAmount(otldetail.wldm) 
 | 
                    grdMain.set_TextMatrix(r, 4,oTLDetail.OrderAmount.ToString()); //'GetSumOrderAmount(otldetail.wldm) 
 | 
                    grdMain.set_TextMatrix(r, 5,""); 
 | 
                    c = FindCol(sDate); 
 | 
                    if( c != -1 ) 
 | 
                    { 
 | 
                        if( oTLDetail.FAuxQty != 0) 
 | 
                        { 
 | 
                            bl = oTLDetail.JHTLS / oTLDetail.FAuxQty; 
 | 
                        } 
 | 
                        if( DBUtility.ClsPub.isSingle(sQuantity) * bl != 0) 
 | 
                        {  
 | 
                            grdMain.set_TextMatrix(r, c,Convert.ToString( DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(r,c))+ DBUtility.ClsPub.isSingle(sQuantity)*bl)); 
 | 
                            grdMain.set_TextMatrix(r, 6,Convert.ToString( DBUtility.ClsPub.isSingle(grdMain.get_TextMatrix(r,6))+ DBUtility.ClsPub.isSingle(sQuantity)*bl)); 
 | 
                        } 
 | 
                    } 
 | 
                //''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 
 | 
                    r = FindDetailRow(oTLDetail.WLDM, oTLDetail.MainWLDM, sSCRWDH); 
 | 
                    if( r == -1 ) 
 | 
                    { 
 | 
                        oDetailDlg.grdMain.Rows = oDetailDlg.grdMain.Rows + 1; 
 | 
                        r = oDetailDlg.grdMain.Rows - 1; 
 | 
                    } 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 0, oTLDetail.WLDM);  
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 1, oTLDetail.WLMC); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 2, oTLDetail.GGXH); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 3, sSCRWDH); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 4, oTLDetail.YFSL.ToString()); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 5, oTLDetail.LLS.ToString()); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 6, oTLDetail.BLS.ToString()); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 7, sPGDH); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 8, oTLDetail.MainWLDM); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 9, oTLDetail.MainWLMC); 
 | 
                    oDetailDlg.grdMain.set_TextMatrix(r, 10, sJT); 
 | 
                    // 
 | 
                    c = FindDetailCol(sDate); 
 | 
                    if( c != -1 ) 
 | 
                    { 
 | 
                        if( oTLDetail.FAuxQty != 0) 
 | 
                        { 
 | 
                            bl = oTLDetail.JHTLS / oTLDetail.FAuxQty; 
 | 
                        } 
 | 
                        if( DBUtility.ClsPub.isSingle(sQuantity) * bl != 0) 
 | 
                        { 
 | 
                            oDetailDlg.grdMain.set_TextMatrix(r, c ,Convert.ToString( DBUtility.ClsPub.isSingle(sQuantity) * bl)); 
 | 
                            oDetailDlg.grdMain.set_TextMatrix(r, 11,Convert.ToString( DBUtility.ClsPub.isSingle(oDetailDlg.grdMain.get_TextMatrix(r, 11)) + DBUtility.ClsPub.isSingle(sQuantity) * bl)); 
 | 
                        } 
 | 
                    } 
 | 
                      
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        // 
 | 
        public int FindRow(string sItemCode) 
 | 
        { 
 | 
            // '通过物料编码查找数据所在的行 
 | 
            for(int r=grdMain.FixedRows;r<grdMain.Rows ;r++) 
 | 
            { 
 | 
                if(DBUtility.ClsPub.isStrNull(grdMain.get_TextMatrix(r, 0)).Trim() == sItemCode.Trim()) 
 | 
                { 
 | 
                    return r; 
 | 
                } 
 | 
            } 
 | 
            return  -1;// '''未找到 
 | 
        } 
 | 
        // 
 | 
        public int FindCol(string sDate) 
 | 
        { 
 | 
           // '通过日期查找日期所归属的列  
 | 
            for(int c=7;c<grdMain.Cols;c++) 
 | 
            { 
 | 
                if (DBUtility.ClsPub.isStrNull(grdMain.get_TextMatrix(1, c)) == Convert.ToDateTime(sDate).ToString("yyyy-MM-dd")) 
 | 
                { 
 | 
                    return c; 
 | 
                } 
 | 
            } 
 | 
            return  -1;// '未找到 
 | 
        } 
 | 
        // 
 | 
        public  int FindDetailRow(string sItemCode,string sMainItemCode ,string sRWDH) 
 | 
        { 
 | 
            //'通过日期查找日期所归属的列 
 | 
              //  '通过物料编码查找数据所在的行 
 | 
            int r;   
 | 
            for(r=oDetailDlg.grdMain.FixedRows ;r<oDetailDlg.grdMain.Rows ;r++) 
 | 
            { 
 | 
                if (DBUtility.ClsPub.isStrNull(oDetailDlg.grdMain.get_TextMatrix(r, 0)).Trim() == sItemCode.Trim() 
 | 
                        && DBUtility.ClsPub.isStrNull(oDetailDlg.grdMain.get_TextMatrix(r, 8)).Trim() == sMainItemCode.Trim() 
 | 
                               && DBUtility.ClsPub.isStrNull(oDetailDlg.grdMain.get_TextMatrix(r, 3)).Trim() == sRWDH.Trim()) 
 | 
                { 
 | 
                    return r; 
 | 
                } 
 | 
            } 
 | 
            return  -1;// '未找到 
 | 
        } 
 | 
  
 | 
        public int FindDetailCol(string sDate) 
 | 
        { 
 | 
            //'通过日期查找日期所归属的列 
 | 
            for(int c = 12;c< oDetailDlg.grdMain.Cols ;c++) 
 | 
            { 
 | 
                if (DBUtility.ClsPub.isStrNull(oDetailDlg.grdMain.get_TextMatrix(1, c)).Trim() == Convert.ToDateTime(sDate).ToString("yyyy-MM-dd")) 
 | 
                { 
 | 
                    return c; 
 | 
                } 
 | 
            } 
 | 
            return  -1;// '未找到 
 | 
        } 
 | 
  
 | 
        private void Display() 
 | 
        { 
 | 
            // 
 | 
        } 
 | 
  
 | 
        #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() 
 | 
        { 
 | 
            //Utility.FillRecordToReport(Report, grdMain, false); 
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
        #region 数据导出 
 | 
  
 | 
        [DllImport("User32.dll", CharSet = CharSet.Auto)] 
 | 
        public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID); 
 | 
        private void yc_Click(object sender, EventArgs e) 
 | 
        { 
 | 
            //string saveFileName = ""; 
 | 
            //bool fileSaved = false; 
 | 
            //SaveFileDialog saveDialog = new SaveFileDialog(); 
 | 
            //saveDialog.DefaultExt = "xls"; 
 | 
            //saveDialog.Filter = "Excel文件|*.xls"; 
 | 
            //saveDialog.FileName = this.Text; 
 | 
            //saveDialog.ShowDialog(); 
 | 
            //saveFileName = saveDialog.FileName; 
 | 
            //if (saveFileName.IndexOf(":") < 0) return; //被点了取消  
 | 
            //// 
 | 
            //Excel.Application xlApp = new Excel.Application(); 
 | 
  
 | 
            //if (xlApp == null) 
 | 
            //{ 
 | 
            //    MessageBox.Show(this, "无法创建Excel对象,可能您的机子未安装Excel", "提示"); 
 | 
            //    return; 
 | 
            //} 
 | 
            //Excel.Workbooks workbooks = xlApp.Workbooks; 
 | 
            //Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); 
 | 
            //Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1  
 | 
            ////写入 标题 
 | 
            //for (int i = 0; i < grdMain.Cols; i++) 
 | 
            //{ 
 | 
            //    worksheet.Cells[1, i + 1] = ClsPub.isStrNull(grdMain.get_TextMatrix(0, i)); 
 | 
            //} 
 | 
            ////写入内容 
 | 
            //for (int r = grdMain.FixedRows; r < grdMain.Rows; r++) 
 | 
            //{ 
 | 
            //    for (int i = grdMain.FixedCols; i < grdMain.Cols; i++) 
 | 
            //    { 
 | 
            //        worksheet.Cells[r + 1, i + 1] = ClsPub.isStrNull(grdMain.get_TextMatrix(r, i)); 
 | 
            //    } 
 | 
            //    System.Windows.Forms.Application.DoEvents(); 
 | 
            //} 
 | 
            //worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。 
 | 
  
 | 
            //if (saveFileName != "") 
 | 
            //{ 
 | 
            //    try 
 | 
            //    { 
 | 
            //        workbook.Saved = true; 
 | 
            //        workbook.SaveCopyAs(saveFileName); 
 | 
            //        fileSaved = true; 
 | 
            //    } 
 | 
            //    catch (Exception ex) 
 | 
            //    { 
 | 
            //        fileSaved = false; 
 | 
            //        MessageBox.Show(this, "导出文件时出错,文件可能正被打开!\n" + ex.Message, "提示"); 
 | 
            //    } 
 | 
            //} 
 | 
            //else 
 | 
            //{ 
 | 
            //    fileSaved = false; 
 | 
            //} 
 | 
            //xlApp.Quit(); 
 | 
  
 | 
            //IntPtr t = new IntPtr(xlApp.Hwnd); //得到这个句柄,具体作用是得到这块内存入口   
 | 
            //int k = 0; 
 | 
            //GetWindowThreadProcessId(t, out k); //得到本进程唯一标志k  
 | 
            //System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //得到对进程k的引用  
 | 
            //p.Kill(); //关闭进程k  
 | 
            //xlApp = null; 
 | 
            ////GC.Collect();//强行销毁  
 | 
            //if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL 
 | 
  
 | 
        } 
 | 
        #endregion 
 | 
  
 | 
  
 | 
        private void timer2_Tick(object sender, EventArgs e) 
 | 
        { 
 | 
            timer2.Enabled = false; 
 | 
            oDlg.ShowDialog(); 
 | 
            if (oDlg.IsOk == 1) 
 | 
            { 
 | 
                timer1.Enabled = true; 
 | 
            } 
 | 
        } 
 | 
        //加载 当月日期 
 | 
        private void LoadDateCol(int iDates) 
 | 
        { 
 | 
            Sc_ICMOSortBillFun.LoadDateCol(grdMain, FixCols, iDates); 
 | 
        } 
 | 
  
 | 
        private void grdMain_DblClick(object sender, EventArgs e) 
 | 
        { 
 | 
            if( grdMain.Row >= grdMain.FixedRows && grdMain.Row < grdMain.Rows) 
 | 
            { 
 | 
                string sSQL; 
 | 
                oDetailDlg.sWLDM =DBUtility.ClsPub.isStrNull( grdMain.get_TextMatrix(grdMain.Row, HNumberCol)); 
 | 
                oDetailDlg.LoadData(); 
 | 
                oDetailDlg.ShowDialog(); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
} 
 |