using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using gregn6Lib; using SQLHelper; using DBUtility; using System.IO; using System.Reflection; using Pub_Class; namespace WorkM { public partial class MES_StationEntrustInBillList : Form { public MES_StationEntrustInBillList() { InitializeComponent(); } public DBUtility.frmBillQueryCondition_New frmCondition; public string ViewName = "h_v_MES_StationEntrustInBillList"; public string ModCaption = "委外发出列表"; public const string ModName = "3792"; public const string ModRightName = "MES_StationEntrustInBill"; public const string ModRightNameEdit = ModRightName + "_Edit"; public const string ModRightNameCheck = ModRightName + "_Check"; public const string ModRightNameClose = ModRightName + "_Close"; public const string ModRightNameDelete = ModRightName + "_Delete"; public const string ModRightNameMoney = ModRightName + "_Money"; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); public MES_StationEntrustInBill oFrm; //public MES_StationEntrustInBill_NoLot oFrm2; Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); public string sDlgWhere = ""; //外窗体递入 // private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); DBUtility.Xt_BaseBillFun.initGridList(grdSumPrint, this.Name + "123"); } // private void Display() { try { ClsCN SubCn = new ClsCN(); DataSet DSet; string sSql = ""; string sWhere = ""; if (chkWJieAn.Checked == true) { sWhere = " and HBillStatus<>3 "; } if (frmCondition.SqlStr.Trim().Length == 0) { sSql = "Select top 5000 * from " + ViewName + " Where 1=1 " + sWhere + sDlgWhere + " order by 日期 desc,单据号 desc "; } else { sSql = frmCondition.SqlStr + sWhere + sDlgWhere + " order by 日期 desc,单据号 desc "; } // DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); return; } //释放冻结 DBUtility.Xt_BaseBillFun.CancelFrozenCol(grdMain); // grdMain.DataSource = DSet.Tables[0].DefaultView; //设置合计列 string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid.BuildTotalCols(sT); // //冻结 int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text); string s = frmCondition.cmbHComplete.Text; DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, s, FrCol); //画线 GraphLine(); Total(); ////判断金额权限 //if (!ClsPub.Security_Log(ModRightNameMoney, 1, false, DBUtility.ClsPub.CurUserName)) //{ // grdMain.Columns[Fun_GetCol("单价")].Visible = false; // grdMain.Columns[Fun_GetCol("金额")].Visible = false; // grdMain.Columns[Fun_GetCol("备注")].Visible = false; //} //for (int i = 0; i < grdMain.Rows.Count; i++) //{ // if (DBUtility.ClsPub.isStrNull(grdMain.Rows[i].Cells[Fun_GetCol("是否打印")].Value) == "是") // { // grdMain.Rows[i].DefaultCellStyle.BackColor = Color.Violet; // } //} // } catch(Exception e) { MessageBox.Show("显示失败!" + e.Message); } } // private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; initGrid(); Display(); } private void tc_Click(object sender, EventArgs e) { this.Close(); } private void sx_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void dj_Click(object sender, EventArgs e) { Sub_ShowBill(); } //显示单据 private void Sub_ShowBill() { Int64 lngBillKey = 0; string HLotNo = ""; if (grdMain.CurrentRow == null) return; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); HLotNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("流转卡号")].Value); if (lngBillKey == 0) return; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (HLotNo == "无Lot卡委外") { //oFrm2 = new MES_StationEntrustInBill_NoLot(); //oFrm2.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_View; //oFrm2.BillOld = oBill; //oFrm2.ShowDialog(); //if (oFrm2.BillChange) //{ // if (MessageBox.Show("单据列表已经发生变化,是否刷新", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) // { // timer1.Enabled = true; // } //} } else { oFrm = new MES_StationEntrustInBill(); oFrm.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_View; oFrm.BillOld = oBill; oFrm.ShowDialog(); if (oFrm.BillChange) { if (MessageBox.Show("单据列表已经发生变化,是否刷新", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { timer1.Enabled = true; } } } } else { MessageBox.Show("单据未找到", "提示"); } oBill = null; } // private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } // private Int32 Fun_GetCol2(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdSub1); } // private void MES_StationEntrustInBillList_Load(object sender, EventArgs e) { // frmCondition = new frmBillQueryCondition_New(); this.Text = ModCaption; lblCaption.Text = ModCaption; oSumGrid.ogrdMain = grdMain; //初始化 new oSumGrid.oGridsum = grdSum; initGrid(); chkWJieAn.Checked = true; } private void grdMain_DblClick(object sender, EventArgs e) { Sub_ShowBill(); } private void cx_Click(object sender, EventArgs e) { frmCondition = new frmBillQueryCondition_New(); SetCondition(frmCondition, ViewName, this.Name); frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { Display(); } } public void SetCondition(frmBillQueryCondition_New frmCondition, string ViewName, string Name) { frmCondition.Tag = ""; frmCondition.ViewName = ViewName; frmCondition.ModName = Name; } private void xz_Click(object sender, EventArgs e) { // oFrm = new MES_StationEntrustInBill(); oFrm.ShowDialog(); } private void sc_Click(object sender, EventArgs e) { Sub_DeleteBill(); } //删除 private void Sub_DeleteBill() { //编辑权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName)) { return; } // Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (MessageBox.Show("确定要删除当前单据?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) { ClsXt_SystemParameter oClsXt_SystemParameter = new ClsXt_SystemParameter(); string DeleteCtl = oClsXt_SystemParameter.GetSingleSystemParameter("MES_StationEntrustInBill_DeleteCtl", ref DBUtility.ClsPub.sExeReturnInfo); if (DeleteCtl == "Y" && oBill.omodel.HMaker != DBUtility.ClsPub.CurUserName && DBUtility.ClsPub.CurUserName != "admin" && DBUtility.ClsPub.CurUserName != "Admin") { MessageBox.Show("登录用户与制单人不一致,不允许删除", "提示"); return; } string c = ""; //if (oBill.DeleteCheck(oBill.omodel.HInterID, "委外发出单", ref c) == false) //{ // MessageBox.Show(c, "提示"); // return; //} //判断会计期是否合理 string s = ""; int sYear = 0; int sPeriod = 0; if (DBUtility.Xt_BaseBillFun.Fun_AllowYearPeriod(DBUtility.ClsPub.isDate(oBill.omodel.HDate), ref sYear, ref sPeriod, ref s) == false) { MessageBox.Show(s, "提示"); return; } if (oBill.omodel.HChecker != "") { MessageBox.Show("单据已经审核,不能删除!", "提示"); return; } SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds; //判断是否存在 相同单据号 的领料单 判断生产订单是否已结案,要求计划手工反结案 ds = oCn.RunProcReturn("exec h_p_MES_StationInBill_DelCtrl '" + oBill.omodel.HBillNo + "'", "h_p_MES_StationInBill_DelCtrl"); if (ds == null) { MessageBox.Show("判断关联失败!"); return; } if (ds.Tables[0].Rows.Count > 0 && Pub_Class.ClsPub.isInt(ds.Tables[0].Rows[0][0]) == 2) { MessageBox.Show(Pub_Class.ClsPub.isStrNull(ds.Tables[0].Rows[0][1])); return; } //if (!oBill.DeleteBill(oBill.omodel.HInterID, ref DBUtility.ClsPub.sExeReturnInfo)) //写入删除日志 string WorkList = "删除委外发出单:" + oBill.omodel.HBillNo; //BLL.ClsPub_BLL.System_Log_DropAdd(WorkList); if (!oBill.DeleteBill(oBill.omodel.HInterID, oBill.omodel.HProcExchInterID, oBill.omodel.HProcExchEntryID, oBill.omodel.HBillNo, "h_p_Sc_StationInBill_WW_AfterDelCtrl", DBUtility.ClsPub.CurUserName, ref DBUtility.ClsPub.sExeReturnInfo)) { MessageBox.Show(DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } else { Display(); } } } else { MessageBox.Show("单据未找到", "提示"); } } private void timer2_Tick(object sender, EventArgs e) { timer2.Enabled = false; frmCondition = new frmBillQueryCondition_New(); SetCondition(frmCondition, ViewName, this.Name); frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { timer1.Enabled = true; } } private void bclk_Click(object sender, EventArgs e) { //保存列宽 DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); } private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); } // private void GraphLine() { int MainIDCol = Fun_GetCol("hmainid"); int SubIDCol = Fun_GetCol("hsubid"); string s = frmCondition.cmbHComplete.Text; long n = 0; DBUtility.Xt_BaseBillFun.GraphLine(grdMain, MainIDCol, SubIDCol, s, ref n); //显示 lbldj.Text = "查询出 " + n.ToString() + " 张单据"; lbljl.Text = "共有 " + grdMain.RowCount.ToString() + " 条记录"; } //审核 private void sh_Click(object sender, EventArgs e) { this.Sub_CheckBill(); } //审核单据 private void Sub_CheckBill() { //审核权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, DBUtility.ClsPub.CurUserName)) { return; } // Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) continue; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() != "") { //MessageBox.Show("单据已审核!不能再次审核", "提示"); continue; } } else { //MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } //审核 if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //MessageBox.Show("审核成功!", "提示"); continue; } else { //MessageBox.Show("审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } } MessageBox.Show("审核完毕!", "提示"); Display(); } //反审单据 private void Sub_AbandonCheck() { //审核权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, DBUtility.ClsPub.CurUserName)) { return; } // Int64 lngBillKey = 0; string sBillNo = ""; if (grdMain.CurrentRow == null) return; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); sBillNo = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("单据号")].Value); if (lngBillKey == 0) continue; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); ////检查是否开票 //string d = ""; //if (oBill.CheckIsKP(lngBillKey, ref d) == false) //{ // MessageBox.Show("单据号:" + sBillNo+"已开票,未进行反审核!", "提示"); // continue; //} //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() == "") { //MessageBox.Show("单据未审核!不需要反审核!", "提示"); continue; } } else { //MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } //反审核 if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //MessageBox.Show("反审核成功!", "提示"); continue; } else { //MessageBox.Show("反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } } MessageBox.Show("反审核完毕!", "提示"); ; Display(); } //反审核 private void qsh_Click(object sender, EventArgs e) { Sub_AbandonCheck(); } private void GraphicsGrid() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); } #region //打印设置 GridppReport Report; //预览 private void yl_Click(object sender, EventArgs e) { Int64 lngBillKey = 0; string sInterID = ""; if (grdMain.CurrentRow == null) return; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; sInterID = sInterID + lngBillKey.ToString() + ","; } if (sInterID.Length > 1) { sInterID = sInterID.Remove(sInterID.Length - 1, 1); } if (dy_Check() == false) { MessageBox.Show("不允许打印不同送货单号!"); return; } //SQLHelper.ClsCN oCn = new ClsCN(); //DataSet Ds; //Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBill_DY '" + sInterID + "','" + ClsPub.CurUserName + "'", "h_p_MES_StationEntrustInBill_DY"); //grdSub1.DataSource = Ds.Tables[0].DefaultView; //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(false); } } public bool dy_Check() { string sHInnerBillNo = ""; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { if (i == 0) { sHInnerBillNo = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("送货单号")].Value); } else { if (sHInnerBillNo != DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("送货单号")].Value)) { return false; } } } return true; } private void Sub_SetReport(string sOpenTmp) { //判断行数 // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); } private void Sub_SetReport2(string sOpenTmp) { //判断行数 // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord2); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable2); } public string sHSUPNAME; public string sHFHBILLNO; public string sHDATE; //打印赋值表头 private void ReportBeforePostRecord2()// { Report.FieldByName("客户").AsString = sHSUPNAME; Report.FieldByName("发货单号").AsString = sHFHBILLNO; Report.FieldByName("日期").AsString = sHDATE; } private void ReportFetchRecordByDataTable2() { DataTable oDt = new DataTable(); BLL.Utility.FillRecordToReport(Report, grdSumPrint, oDt, 0); } //打印赋值表头 private void ReportBeforePostRecord()// { //Report.FieldByName("供应商名称").AsString = DBUtility.ClsPub.isStrNull(grdSub1.Rows[0].Cells[Fun_GetCol2("供应商名称")].Value); Report.FieldByName("供应商").AsString = DBUtility.ClsPub.isStrNull(grdMain.Rows[0].Cells[Fun_GetCol("供应商")].Value); Report.FieldByName("日期").AsString = DBUtility.ClsPub.isStrNull(grdMain.Rows[0].Cells[Fun_GetCol("日期")].Value); //Report.FieldByName("接受人").AsString = DBUtility.ClsPub.isStrNull(grdSub1.Rows[0].Cells[Fun_GetCol2("接受人")].Value); //Report.FieldByName("供应商电话1").AsString = DBUtility.ClsPub.isStrNull(grdSub1.Rows[0].Cells[Fun_GetCol2("供应商电话1")].Value); //Report.FieldByName("供应商电话2").AsString = DBUtility.ClsPub.isStrNull(grdSub1.Rows[0].Cells[Fun_GetCol2("供应商电话2")].Value); //Report.FieldByName("币别").AsString = DBUtility.ClsPub.isStrNull(grdSub1.Rows[0].Cells[Fun_GetCol2("币别")].Value); Report.FieldByName("单据号").AsString = DBUtility.ClsPub.isStrNull(grdMain.Rows[0].Cells[Fun_GetCol("单据号")].Value); Report.FieldByName("订单跟踪号").AsString = DBUtility.ClsPub.isStrNull(grdMain.Rows[0].Cells[Fun_GetCol("订单跟踪号")].Value); } private void ReportFetchRecordByDataTable() { DataTable oDt = new DataTable(); BLL.Utility.FillRecordToReport(Report, grdMain, oDt, 0); } //预览引出 private void Sub_SetReportYc(string sOpenTmp) { //判断行数 // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecordYc); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTableYc); } //打印赋值表头 private void ReportBeforePostRecordYc()// { } private void ReportFetchRecordByDataTableYc() { DataTable oDt = new DataTable(); BLL.Utility.FillRecordToReport(Report, grdMain, oDt, Fun_GetCol2("hmainid")); } // #endregion // private void grdMain_Paint(object sender, PaintEventArgs e) { GraphicsGrid(); } //合计 new private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { oSumGrid.SetGridsum(); oSumGrid.TotalAll(); //oSumGrid.Total(); } } //合计 new private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { Total(); } //合计 new private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { //Total(); } //引出EXCEL private void dc_Click(object sender, EventArgs e) { //DataGridViewToExcel2(); ylyc(); } //打印模板预览引出 private void ylyc() { Sub_SetReportYc("委外工序转出单引出"); Report.PrintPreview(false); } private void dy_Click(object sender, EventArgs e) { Int64 lngBillKey = 0; string sInterID = ""; if (grdMain.CurrentRow == null) return; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; sInterID = sInterID + lngBillKey.ToString() + ","; } if (sInterID.Length > 1) { sInterID = sInterID.Remove(sInterID.Length - 1, 1); } if (dy_Check() == false) { MessageBox.Show("不允许打印不同送货单号!"); return; } //SQLHelper.ClsCN oCn = new ClsCN(); //DataSet Ds; //Ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBill_DY '" + sInterID + "','" + ClsPub.CurUserName + "'", "h_p_MES_StationEntrustInBill_DY"); //grdSub1.DataSource = Ds.Tables[0].DefaultView; //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // Sub_SetReport(oFrm.sOpenTmp); Report.Print(false); //更新 打印次数 for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; //oCn.RunProc("update Sc_StationInBillMain set HPrintQty=isnull(HPrintQty,0)+1 where HInterID=" + lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo); grdMain.SelectedRows[i].Cells[Fun_GetCol("是否打印")].Value = "是"; grdMain.SelectedRows[i].DefaultCellStyle.BackColor = Color.Violet; } } } private void txtHBillNo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { Sub_FastQuery(); } } //快速过滤 private void Sub_FastQuery() { string sFastSQL = ""; //单据号 if (txtHBillNo.Text.Trim() != "") { sFastSQL = sFastSQL + " and 单据号 like '%" + txtHBillNo.Text + "%'"; } //流转卡号 if (txtHLotNo.Text.Trim() != "") { sFastSQL = sFastSQL + " and 流转卡号 like '%" + txtHLotNo.Text + "%'"; } //产品 if (txtHMaterID.Text.Trim() != "") { sFastSQL = sFastSQL + " and (产品代码 like '%" + txtHMaterID.Text + "%' or 产品名称 like '%" + txtHMaterID.Text + "%')"; } //订单跟踪号 if (txtHOrderProcNO.Text.Trim() != "") { sFastSQL = sFastSQL + " and 订单跟踪号 like '%" + txtHOrderProcNO.Text + "%'"; } //送货单号 if (txtHInnerBillNo.Text.Trim() != "") { sFastSQL = sFastSQL + " and 送货单号 like '%" + txtHInnerBillNo.Text + "%'"; } //if (sFastSQL.Trim() == "") //{ // MessageBox.Show("没有输入条件!"); // return; //} sDlgWhere = sFastSQL; Display(); } private void DataGridViewToExcel2() { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl文件(*.xls)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = true; saveFileDialog.Title = "数据视图导出EXCEL文件"; saveFileDialog.ShowDialog(); if (saveFileDialog.FileName == "") { return; } Stream myStream; myStream = saveFileDialog.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312")); string str = ""; DateTime start = DateTime.Now; try { //写标题 bool sFirstCol = true; for (int i = 0; i < grdMain.ColumnCount; i++) { if (i > 0 && grdMain.Columns[i].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[i].HeaderText.Substring(0, 1) != "H" && sFirstCol != true) { str += "\t"; } if (grdMain.Columns[i].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[i].HeaderText.Substring(0, 1) != "H") { sFirstCol = false; str += grdMain.Columns[i].HeaderText; } } sw.WriteLine(str); //写内容 for (int j = 0; j < grdMain.Rows.Count; j++) { string tempStr = ""; sFirstCol = true; for (int k = 0; k < grdMain.Columns.Count; k++) { if (k > 0 && grdMain.Columns[k].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[k].HeaderText.Substring(0, 1) != "H" && sFirstCol != true) { tempStr += "\t"; } if (grdMain.Columns[k].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[k].HeaderText.Substring(0, 1) != "H") { sFirstCol = false; if (grdMain.Rows[j].Cells[k].Value == null) { tempStr += string.Empty; } else { tempStr += grdMain.Rows[j].Cells[k].Value.ToString(); } } } sw.WriteLine(tempStr); } sw.Close(); myStream.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { sw.Close(); myStream.Close(); } MessageBox.Show("将此工作表导出为excel共耗时:" + DateTime.Now.Subtract(start).TotalMilliseconds.ToString() + "毫秒"); } private void txtHLotNo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { Sub_FastQuery(); } } private void txtHOrderProcNO_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { Sub_FastQuery(); } } private void txtHMaterID_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { Sub_FastQuery(); } } private void txtHInnerBillNo_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { Sub_FastQuery(); } } private void gb_Click(object sender, EventArgs e) { //审核权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, DBUtility.ClsPub.CurUserName)) { return; } // Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) continue; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { //if (oBill.omodel.HChecker.Trim() != "") //{ // //MessageBox.Show("单据已审核!不能再次审核", "提示"); // continue; //} } else { //MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } //关闭 if (oBill.CloseBill(lngBillKey) == true) { //MessageBox.Show("审核成功!", "提示"); continue; } else { //MessageBox.Show("审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } } MessageBox.Show("关闭完毕!", "提示"); Display(); } private void hf_Click(object sender, EventArgs e) { //审核权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, DBUtility.ClsPub.CurUserName)) { return; } // Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) continue; DAL.ClsSc_StationEntrustInBill oBill = new DAL.ClsSc_StationEntrustInBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { //if (oBill.omodel.HChecker.Trim() == "") //{ // //MessageBox.Show("单据未审核!不需要反审核!", "提示"); // continue; //} } else { //MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } //反审核 if (oBill.CancelClose(lngBillKey) == true) { //MessageBox.Show("反审核成功!", "提示"); continue; } else { //MessageBox.Show("反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); continue; } } MessageBox.Show("反关闭完毕!", "提示"); ; Display(); } private void yc_Click(object sender, EventArgs e) { DataGridViewToExcel2(); } private void grdMain_Scroll(object sender, ScrollEventArgs e) { if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll) { Total(); } } //根据选择的委外发出列表 回填发货单号 private void fahuo_Click(object sender, EventArgs e) { //判断是否选择了不同供应商 Int64 sSupID = 0; string sInterID_Mul = ""; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { if (sSupID == 0) { sSupID=DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("HSUPID")].Value); } if(sSupID!=DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("HSUPID")].Value)) { MessageBox.Show("选择了不同的供应商!", "提示"); return ; } //判断是否选择了已接收的单据 if (DBUtility.ClsPub.isDoule(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("已接收合格PNL数")].Value) > 0) { MessageBox.Show("选择的发出单已经被接收不能编制!", "提示"); return ; } //叠加单据内码 sInterID_Mul = sInterID_Mul + ",'" + DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("HMainID")].Value) + "'"; } //根据单据规则自动生成发货单号(年月日+‘-’+流水号0001),找到最大的单据号加1 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); //获取单据号 DataSet ds; int iSNO = 0; string sNo = ""; string sTodayDate = DBUtility.ClsPub.GetServerDate(0).Replace("-", ""); string sFHBillNo = ""; ds = oCn.RunProcReturn("select top 1 a.HInnerBillNo,a.HDate from Sc_StationInBillMain a Where a.HInnerBillNo<>'' " + " and a.HInnerBillNo like '" + sTodayDate + "-%' " + " order by a.HInnerBillNo desc ", "Sc_StationInBillMain"); if (ds == null || ds.Tables[0].Rows.Count == 0 || DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][0]).Contains("-") == false) { iSNO = 1; } else { sFHBillNo = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0][0]); iSNO = DBUtility.ClsPub.isInt(sFHBillNo.Substring(sFHBillNo.Length - 4, 4)); iSNO = iSNO + 1; sFHBillNo = ""; } sNo = "0000" + iSNO.ToString(); sNo = sNo.Substring(sNo.Length - 4, 4); sFHBillNo = sTodayDate + "-" + sNo; //循环回填发货单并写入变量 if (sInterID_Mul.Trim() != "") { sInterID_Mul = sInterID_Mul.Substring(1, sInterID_Mul.Length - 1); } oCn.RunProc("update Sc_StationInBillMain set HInnerBillNo='" + sFHBillNo + "' Where HinterID in (" + sInterID_Mul + ")"); //写入日志 DBUtility.ClsPub.Add_Log(DBUtility.ClsPub.CurUserName, "生成发货单" + sFHBillNo + "-" + sInterID_Mul.Replace("'", ""), DBUtility.ClsPub.CurUserName); //刷新界面 Display(); } //根据选择某个发货单打印 private void fhdy_Click(object sender, EventArgs e) { //判断是否选择了多个发货单 string sFHBillNo = ""; for (int i = 0; i < grdMain.SelectedRows.Count; i++) { if (sFHBillNo == "") { sFHBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("送货单号")].Value); } if (sFHBillNo != DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("送货单号")].Value)) { MessageBox.Show("选择了不同的发货单!", "提示"); return; } } //根据发货单号 合并数据 并打印 h_p_MES_StationEntrustInBillPrint SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet ds = oCn.RunProcReturn("exec h_p_MES_StationEntrustInBillPrint '" + sFHBillNo + "'", "h_p_MES_StationEntrustInBillPrint"); if (ds == null) { MessageBox.Show("打印错误1", "提示"); return; } grdSumPrint.DataSource = ds.Tables[0].DefaultView; sHSUPNAME = DBUtility.ClsPub.isStrNull(ds.Tables[1].Rows[0]["供应商"]); sHDATE = DBUtility.ClsPub.isStrNull(ds.Tables[1].Rows[0]["日期"]); sHFHBILLNO = DBUtility.ClsPub.isStrNull(ds.Tables[1].Rows[0]["发货单号"]); // Sub_SetReport2("委外发货单合并打印"); Report.PrintPreview(false); //写入日志 DBUtility.ClsPub.Add_Log(DBUtility.ClsPub.CurUserName, "打印了发货单" + sFHBillNo , DBUtility.ClsPub.CurUserName); //刷新界面 Display(); } private void btnOK_Click(object sender, EventArgs e) { Sub_FastQuery(); } 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); } } }