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; namespace WorkM { public partial class Xs_SeOrderBillMulLevBOMQuery : Form { public Xs_SeOrderBillMulLevBOMQuery () { InitializeComponent(); } public DBUtility.frmBillQueryCondition_New frmCondition; const string ViewName = "h_v_Xs_SeOrderBillMulLevBOMQuery "; public string ModCaption = "订单多级展开"; public const string ModName = "3772"; public const string ModRightName = "Xs_SeOrderBillMulLevBOMQuery"; 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"; public const string ModRightNameQty = ModRightName + "_Qty"; DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); public Sc_ProcessExchangeBill oFrm; public string sDlgWhere = ""; //外窗体递入 Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); Pub_Class.ClsGridListSum oSumGrid2 = new Pub_Class.ClsGridListSum(); public Int32 iTopRow = 0;//画横线 int _ScrollValue = 0;//刷新 回位 int HQtyCol = 10; //数量列 int HCheckCol = 11; //选中列 int HSelectCol = 0;//原选中行 #region 固定代码 //初始化网格 private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); DBUtility.Xt_BaseBillFun.initGridList(grdSub, this.Name); } // //显示 private void Display() { grdSub.DataSource = null; grdSub.Columns.Clear(); ClsCN SubCn = new ClsCN(); DataSet DSet; string sSql = ""; string sWhere = ""; //特殊条件(日期限制,部门限制) DBUtility.Xt_BaseBillFun.Sub_SQLWhere(ref sWhere); if (sDlgWhere == "") { //过滤条件 if (frmCondition.SqlStr.Trim().Length == 0) return; sSql = frmCondition.SqlStr + sWhere + " order by 单据号 desc "; } else { sSql = frmCondition.SqlStr + sWhere + sDlgWhere + " order by 单据号 desc "; //sSql = "Select * from " + ViewName + " Where 1=1 " + sWhere + sDlgWhere + " order by 销售订单号 desc "; } // DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); return; } //释放冻结 DBUtility.Xt_BaseBillFun.CancelFrozenCol(grdMain); //刷新后,回滚到原位置 int selectRows = 0; if (grdMain.CurrentRow != null) { selectRows = DBUtility.ClsPub.isInt(grdMain.CurrentRow.Index); } //绑定 grdMain.DataSource = DSet.Tables[0].DefaultView; //刷新后,回滚到原位置 if (grdMain.Rows.Count > _ScrollValue) { grdMain.FirstDisplayedScrollingRowIndex = _ScrollValue; //iTopRow = _ScrollValue; } if (grdMain.Rows.Count > 0 && grdMain.Rows.Count > selectRows) { grdMain.Rows[0].Selected = false; grdMain.Rows[selectRows].Selected = true; } //设置合计列 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(); // } //时间控件 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; Sub_FastQuery(); } //显示单据 private void dj_Click(object sender, EventArgs e) { Sub_ShowBill(); } //显示单据 private void Sub_ShowBill() { 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_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { oFrm = new Sc_ProcessExchangeBill(); 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_GetColSub(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdSub); } // private void Xs_SeOrderBillMulLevBOMQuery_Load(object sender, EventArgs e) { // frmCondition = new DBUtility.frmBillQueryCondition_New(); this.Text = ModCaption; lblCaption.Text = ModCaption; oSumGrid.ogrdMain = grdMain; //初始化 new oSumGrid.oGridsum = grdSum; oSumGrid2.ogrdMain = grdSub; //初始化 new oSumGrid2.oGridsum = grdSum2; initGrid(); //初始化快速过滤 dtpHBDate.Value = DateTime.Today.AddDays(-30); dtpHEDate.Value = DateTime.Today; dtpHBDate.Checked = false; dtpHEDate.Checked = false; cmbHStatus.Text = "全部"; // } //双击查看 private void grdMain_DblClick(object sender, EventArgs e) { //Sub_ShowBill(); } //查询 private void cx_Click(object sender, EventArgs e) { frmCondition = new DBUtility.frmBillQueryCondition_New(); SetCondition(frmCondition, ViewName, this.Name); frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { Display(); } } public void SetCondition(DBUtility.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 Sc_ProcessExchangeBill(); oFrm.ShowDialog(); } private void sc_Click(object sender, EventArgs e) { Sub_DeleteBill(); } //删除 private void Sub_DeleteBill() { } private void timer2_Tick(object sender, EventArgs e) { timer2.Enabled = false; if (sDlgWhere == "") { frmCondition = new DBUtility.frmBillQueryCondition_New(); SetCondition(frmCondition, ViewName, this.Name); frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { timer1.Enabled = true; } } else { timer1.Enabled = true; } } // private void bclk_Click(object sender, EventArgs e) { //保存列宽 DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); DBUtility.Xt_BaseBillFun.SaveGrid(grdSub, this.Name); } private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); DBUtility.Xt_BaseBillFun.DefaultGridView(grdSub, 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; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsSc_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() != "") { MessageBox.Show("单据已审核!不能再次审核", "提示"); return; } if (oBill.omodel.HCloseMan.Trim() != "") { MessageBox.Show("单据已关闭!不能再次审核", "提示"); return; } if (oBill.omodel.HDeleteMan.Trim() != "") { MessageBox.Show("单据已作废!不能再次审核", "提示"); return; } } else { MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //审核 if (oBill.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("审核成功!", "提示"); return; } else { MessageBox.Show("审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //反审单据 private void Sub_AbandonCheck() { //审核权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 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_ProcessExchangeBill oBill = new DAL.ClsSc_ProcessExchangeBill(); //查看是否已审核,关闭,作废 if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (oBill.omodel.HChecker.Trim() == "") { MessageBox.Show("单据未审核!不需要反审核!", "提示"); return; } if (oBill.omodel.HCloseMan.Trim() != "") { MessageBox.Show("单据已关闭!不能再次审核", "提示"); return; } if (oBill.omodel.HDeleteMan.Trim() != "") { MessageBox.Show("单据已作废!不能再次审核", "提示"); return; } } else { MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //反审核 if (oBill.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("反审核成功!", "提示"); return; } else { MessageBox.Show("反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //反审核 private void qsh_Click(object sender, EventArgs e) { Sub_AbandonCheck(); } private void GraphicsGrid() { //画底线 DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); //画横线 DBUtility.Xt_BaseBillFun.GraphicsRowGrid(grdMain, iTopRow, iTopRow + 50, Fun_GetCol("hmainid")); } // private void grdMain_Paint(object sender, PaintEventArgs e) { GraphicsGrid(); } //合计 new private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { oSumGrid.SetGridsum(); oSumGrid.Total(); } } //合计 new private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { Total(); } //合计 new private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { Total(); } //合计 new private void Total2() { if (grdSub.Rows.Count > 0 && grdSub.ColumnCount > 0) { oSumGrid2.SetGridsum(); oSumGrid2.Total(); } } //合计 new private void grdSub_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { Total2(); } //合计 new private void grdSub_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { Total2(); } private void dc_Click(object sender, EventArgs e) { DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); } #endregion #region //打印设置 GridppReport Report; private void set_Click(object sender, EventArgs e) { //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); } private void dy_Click(object sender, EventArgs e) { //选择打印模板 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(true); } } //预览 private void yl_Click(object sender, EventArgs e) { ////选择打印模板 //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(true); //} //int Qty = grdMain.SelectedRows.Count; //int DYQty = DBUtility.ClsPub.isInt(Math.Ceiling(Qty / 2.0)); //selectRow1 = -2; //selectRow2 = -1; //for (int i = 0; i < DYQty; i++) //{ // if (i < DYQty - 1) // { // selectRow1 = selectRow1 + 2; // selectRow2 = selectRow2 + 2; // Sub_SetReport("LOT卡二维码"); // Report.PrintPreview(false); // } // else // { // selectRow1 = selectRow1 + 2; // selectRow2 = -1; // Sub_SetReport("LOT卡二维码"); // Report.PrintPreview(false); // } //} } 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 ReportBeforePostRecord()// { //Report.FieldByName("条码编号1").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow1].Cells[Fun_GetCol("单据号")].Value); //if (selectRow2 != -1) //{ // Report.FieldByName("条码编号2").AsString = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[selectRow2].Cells[Fun_GetCol("单据号")].Value); //} } private void ReportFetchRecordByDataTable() { BLL.Utility.FillRecordToReport(Report, grdMain, grdPrint, 0); } //关闭单据 private void Sub_CloseBill() { //关闭权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameClose, 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.ClsKf_InceptEntOutBill oBill = new DAL.ClsKf_InceptEntOutBill(); //查看是否已审核,关闭,作废 //if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //{ // if (oBill.omodel.HChecker.Trim() == "") // { // MessageBox.Show("单据未审核!不需要反审核!", "提示"); // return; // } // if (oBill.omodel.HCloseMan.Trim() != "") // { // MessageBox.Show("单据已关闭!不能再次审核", "提示"); // return; // } // if (oBill.omodel.HDeleteMan.Trim() != "") // { // MessageBox.Show("单据已作废!不能再次审核", "提示"); // return; // } //} //else //{ // MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); // return; //} //关闭 if (oBill.CloseBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("关闭成功!", "提示"); return; } else { MessageBox.Show("关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //反关闭单据 private void Sub_Cancel() { //反关闭权限 if (!DBUtility.ClsPub.Security_Log(ModRightNameClose, 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.ClsKf_InceptEntOutBill oBill = new DAL.ClsKf_InceptEntOutBill(); //查看是否已审核,关闭,作废 //if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //{ // if (oBill.omodel.HChecker.Trim() == "") // { // MessageBox.Show("单据未审核!不需要反审核!", "提示"); // return; // } // if (oBill.omodel.HCloseMan.Trim() != "") // { // MessageBox.Show("单据已关闭!不能再次审核", "提示"); // return; // } // if (oBill.omodel.HDeleteMan.Trim() != "") // { // MessageBox.Show("单据已作废!不能再次审核", "提示"); // return; // } //} //else //{ // MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); // return; //} //反关闭 if (oBill.CancelClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("反关闭成功!", "提示"); return; } else { MessageBox.Show("反关闭失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //作废单据 private void Sub_Cancelltion() { //作废权限 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.ClsKf_InceptEntOutBill oBill = new DAL.ClsKf_InceptEntOutBill(); //查看是否已审核,关闭,作废 //if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //{ // if (oBill.omodel.HChecker.Trim() == "") // { // MessageBox.Show("单据未审核!不需要反审核!", "提示"); // return; // } // if (oBill.omodel.HCloseMan.Trim() != "") // { // MessageBox.Show("单据已关闭!不能再次审核", "提示"); // return; // } // if (oBill.omodel.HDeleteMan.Trim() != "") // { // MessageBox.Show("单据已作废!不能再次审核", "提示"); // return; // } //} //else //{ // MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); // return; //} //作废 if (oBill.Cancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("作废成功!", "提示"); return; } else { MessageBox.Show("作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } //反作废 private void Sub_AbandonCancelltion() { //反作废权限 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.ClsKf_InceptEntOutBill oBill = new DAL.ClsKf_InceptEntOutBill(); //查看是否已审核,关闭,作废 //if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) //{ // if (oBill.omodel.HChecker.Trim() == "") // { // MessageBox.Show("单据未审核!不需要反审核!", "提示"); // return; // } // if (oBill.omodel.HCloseMan.Trim() != "") // { // MessageBox.Show("单据已关闭!不能再次审核", "提示"); // return; // } // if (oBill.omodel.HDeleteMan.Trim() != "") // { // MessageBox.Show("单据已作废!不能再次审核", "提示"); // return; // } //} //else //{ // MessageBox.Show("单据不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); // return; //} //反作废 if (oBill.AbandonCancelltion(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { MessageBox.Show("反作废成功!", "提示"); return; } else { MessageBox.Show("反作废失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } #endregion #region 额外方法 //上查 private void shc_Click(object sender, EventArgs e) { // } private void xc_Click(object sender, EventArgs e) { // } #endregion private void yc_Click(object sender, EventArgs e) { BLL.Gy_GridView_Hide oHide = new BLL.Gy_GridView_Hide(); oHide.KeyItem = this.Name; oHide.oGrd = grdMain; oHide.ShowDialog(); // DBUtility.ClsPub.HideGridView(grdMain, Name, DBUtility.ClsPub.AppPath);//设置隐藏列 } private void 关闭ToolStripMenuItem_Click(object sender, EventArgs e) { this.Sub_CloseBill(); } private void 反关闭ToolStripMenuItem_Click(object sender, EventArgs e) { this.Sub_Cancel(); } private void 审核ToolStripMenuItem_Click(object sender, EventArgs e) { this.Sub_CheckBill(); } private void 反审核ToolStripMenuItem_Click(object sender, EventArgs e) { this.Sub_AbandonCheck(); } private void 作废ToolStripMenuItem_Click(object sender, EventArgs e) { this.Sub_Cancelltion(); } private void 撤销作废ToolStripMenuItem_Click(object sender, EventArgs e) { this.Sub_AbandonCancelltion(); } private void grdMain_Scroll(object sender, ScrollEventArgs e) { if (e.ScrollOrientation == ScrollOrientation.VerticalScroll) { this.iTopRow = e.NewValue; _ScrollValue = e.NewValue; } } //清除快速过滤 private void btnOK_Click(object sender, EventArgs e) { dtpHBDate.Value = DateTime.Today.AddDays(-30); dtpHEDate.Value = DateTime.Today; dtpHBDate.Checked = false; dtpHEDate.Checked = false; cmbHStatus.Text = "全部"; txtHBillNo.Text = ""; txtHMaterName.Text = ""; txtHMaterNumber.Text = ""; txtHModel.Text = ""; } //快速过滤 private void Sub_FastQuery() { string sFastSQL = ""; //判断状态 if (cmbHStatus.Text != "全部" && cmbHStatus.Text != "") { //if (cmbHStatus.Text == "未审核") //{ // sFastSQL = sFastSQL + " and 审核人='' "; //} //if (cmbHStatus.Text == "已审核") //{ // sFastSQL = sFastSQL + " and 审核人<>'' "; //} //if (cmbHStatus.Text == "未关闭") //{ // sFastSQL = sFastSQL + " and 关闭人='' "; //} //if (cmbHStatus.Text == "已关闭") //{ // sFastSQL = sFastSQL + " and 关闭人<>'' "; //} } //判断开始日期 if (dtpHBDate.Checked) { sFastSQL = sFastSQL + " and 交货日期>='" + dtpHBDate.Value.ToShortDateString() + "'"; } //判断结束日期 if (dtpHEDate.Checked) { sFastSQL = sFastSQL + " and 交货日期<='" + dtpHEDate.Value.ToShortDateString() + "'"; } //销售订单号 if (txtHBillNo.Text.Trim() != "") { sFastSQL = sFastSQL + " and 单据号 like '%" + txtHBillNo.Text + "%'"; } //产品名称 if (txtHMaterName.Text.Trim() != "") { sFastSQL = sFastSQL + " and 产品名称 like '%" + txtHMaterName.Text + "%'"; } //产品代码 if (txtHMaterNumber.Text.Trim() != "") { sFastSQL = sFastSQL + " and 产品代码 like '%" + txtHMaterNumber.Text + "%'"; } //规格型号 if (txtHModel.Text.Trim() != "") { sFastSQL = sFastSQL + " and 规格型号 like '%" + txtHModel.Text + "%'"; } //if (sFastSQL.Trim() == "") //{ // MessageBox.Show("没有输入条件!"); // return; //} sDlgWhere = sFastSQL; Display(); sDlgWhere = ""; } private void grdMain_CellClick(object sender, DataGridViewCellEventArgs e) { if (grdMain.CurrentRow == null) return; //判断有没有选中行 bool isCheck = false; for (int i = 0; i < grdSub.Rows.Count; i++) { if (DBUtility.ClsPub.isBool(grdSub.Rows[i].Cells[HCheckCol].Value) == true) { isCheck = true; } } if (isCheck == true && HSelectCol != grdMain.CurrentRow.Index) { if (MessageBox.Show("存在未保存记录,是否放弃保存?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { grdSub_Show(); } else { grdMain.Rows[grdMain.CurrentRow.Index].Selected = false; grdMain.Rows[HSelectCol].Selected = true; grdMain.CurrentCell = grdMain.Rows[HSelectCol].Cells[Fun_GetCol("单据号")]; } } else { if (HSelectCol != grdMain.CurrentRow.Index) { grdSub_Show(); } } } private void grdSub_Show() { grdSub.DataSource = null; grdSub.Columns.Clear(); ClsCN oCn = new ClsCN(); DataSet Ds1; long sHMaterID; double sHQty; long sHInterID; long sHEntryID; sHMaterID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmaterid")].Value); sHQty = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("数量")].Value); sHInterID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); sHEntryID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hsubid")].Value); Ds1 = oCn.RunProcReturn("exec h_p_Xs_SeOrderBillMulLevBOMQuery " + sHMaterID + "," + sHQty + "," + sHInterID + "," + sHEntryID, "h_p_Xs_SeOrderBillMulLevBOMQuery"); grdSub.DataSource = Ds1.Tables[0].DefaultView; DataGridViewCheckBoxColumn columncb = new DataGridViewCheckBoxColumn(); columncb.HeaderText = "选择"; columncb.Name = "cb_check"; columncb.TrueValue = true; columncb.FalseValue = false; //column9.DataPropertyName = "IsScienceNature"; columncb.DataPropertyName = "IsChecked"; grdSub.Columns.Add(columncb); // HQtyCol = Fun_GetColSub("申请数量"); HCheckCol = grdSub.ColumnCount-1; // //设置合计列 string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(Ds1); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid2.BuildTotalCols(sT); //冻结 int FrCol = 0; string s = ""; DBUtility.Xt_BaseBillFun.DisplayGrid(grdSub, this.Name, s, FrCol); grdSub.ReadOnly = false; } private void grdSub_CellClick(object sender, DataGridViewCellEventArgs e) { if (grdSub.CurrentRow == null) return; if (e.ColumnIndex == HCheckCol && DBUtility.ClsPub.isInt(grdSub.Rows[grdSub.CurrentRow.Index].Cells[Fun_GetColSub("herpclsid")].Value)==1) { if (DBUtility.ClsPub.isBool(grdSub.Rows[grdSub.CurrentRow.Index].Cells[e.ColumnIndex].Value) == false) { grdSub.Rows[grdSub.CurrentRow.Index].Cells[e.ColumnIndex].Value = true; } else { grdSub.Rows[grdSub.CurrentRow.Index].Cells[e.ColumnIndex].Value = false; } } } private void grdSub_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e) { if (e.ColumnIndex != HQtyCol) { e.Cancel = true; } } private void cg_Click(object sender, EventArgs e) { string HBillNo; //判断有没有选中行 bool isCheck = false; for (int i = 0; i < grdSub.Rows.Count; i++) { if (DBUtility.ClsPub.isBool(grdSub.Rows[i].Cells[HCheckCol].Value) == true) { if (DBUtility.ClsPub.isDoule(grdSub.Rows[i].Cells[Fun_GetColSub("申请数量")].Value) > DBUtility.ClsPub.isDoule(grdSub.Rows[i].Cells[Fun_GetColSub("未申请数量")].Value)) { MessageBox.Show("物料代码:" + DBUtility.ClsPub.isStrNull(grdSub.Rows[i].Cells[Fun_GetColSub("物料代码")].Value) + "申请数量不能大于未申请数量!","提示"); return; } isCheck = true; } } if (isCheck == false) { MessageBox.Show("没有选择需要采购的物料!","提示"); return; } long HEmpID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("HEmpID")].Value); long HDeptID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("HDeptID")].Value); long HSourceInterID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); long HSourceEntryID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hsubid")].Value); string HSourceBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("单据号")].Value); string HSourceTranType = "81"; ClsCNK3 oCnK3 = new ClsCNK3(); try { HBillNo = DBUtility.Xt_BaseBillFun.get_MaxBillNo_K3("70", oCnK3); //得到用户ID long HBillerID; DataSet DsBiller; string HSourceBillType = ""; DsBiller = oCnK3.RunProcReturn("select top 1 fuserid from t_User where fname='" + DBUtility.ClsPub.CurUserName + "'", "t_User"); if (DsBiller.Tables[0].Rows.Count != 0) { HBillerID = DBUtility.ClsPub.isLong(DsBiller.Tables[0].Rows[0][0]); } else { HBillerID = 16394; } // DataSet Ds1; //得到mainid long HInterID=0; Ds1 = oCnK3.RunProcReturn("declare @InterID int set @InterID=0 exec GetICMaxNum 'POrequest', @InterID output, 1, " + HBillerID.ToString() + " select ltrim(@InterID)", "GetICMaxNum"); //Ds1 = oCnK3.RunProcReturn("declare @InterID int set @InterID=0 exec GetICMaxNumOld 'ICStockBill',@InterID output select ltrim(@InterID)", "xt_xtgnb"); if (Ds1.Tables[0].Rows.Count != 0) { HInterID = DBUtility.ClsPub.isLong(Ds1.Tables[0].Rows[0][0]); } if (HInterID == 0) { MessageBox.Show("生成HInterID失败!"); return; } oCnK3.BeginTran(); int j = 0; long HMaterID; long HUnitID; double HQty; for (int i = 0; i < grdSub.Rows.Count; i++) { if (DBUtility.ClsPub.isBool(grdSub.Rows[i].Cells[HCheckCol].Value) == true) { j = j + 1; HMaterID = DBUtility.ClsPub.isLong(grdSub.Rows[i].Cells[Fun_GetColSub("hmaterid")].Value); HUnitID = DBUtility.ClsPub.isLong(grdSub.Rows[i].Cells[Fun_GetColSub("HUnitID")].Value); HQty = DBUtility.ClsPub.isLong(grdSub.Rows[i].Cells[Fun_GetColSub("申请数量")].Value); ////华裕 //oCnK3.RunProc("INSERT INTO POrequestEntry " + // "(FInterID,FEntryID,FBrNo,FItemID,FAuxPropID,FQty,FUnitID,Fauxqty" + // ",FSecCoefficient,FSecQty,FAPurchTime,FBOMCategory,FBomInterID,Fuse" + // ",FSupplyID,FFetchTime,FPlanOrderInterID,FSourceBillNo,FSourceTranType" + // ",FSourceInterId,FSourceEntryID,FMrpLockFlag,FPlanMode,FIsInquiry,FMTONo) " + // "Values (" + HInterID + "," + j + ",'0'," + HMaterID + ",0," + HQty + "," + HUnitID + "," + HQty + // ",0,0,CONVERT(CHAR(10),GETDATE(),120),0,0,''" + // ",0,CONVERT(CHAR(10),GETDATE(),120),0,'" + HSourceBillNo + "'," + HSourceTranType + // "," + HSourceInterID + "," + HSourceEntryID + ",0,14036,0,'' )"); //本地 oCnK3.RunProc("INSERT INTO POrequestEntry " + "(FInterID,FEntryID,FBrNo,FItemID,FAuxPropID,FQty,FUnitID,Fauxqty" + ",FSecCoefficient,FSecQty,FAPurchTime,FBomInterID,Fuse" + ",FSupplyID,FFetchTime,FPlanOrderInterID,FSourceBillNo,FSourceTranType" + ",FSourceInterId,FSourceEntryID,FMrpLockFlag,FPlanMode,FMTONo) " + "Values (" + HInterID + "," + j + ",'0'," + HMaterID + ",0," + HQty + "," + HUnitID + "," + HQty + ",0,0,CONVERT(CHAR(10),GETDATE(),120),0,''" + ",0,CONVERT(CHAR(10),GETDATE(),120),0,'" + HSourceBillNo + "'," + HSourceTranType + "," + HSourceInterID + "," + HSourceEntryID + ",0,14036,'' )"); } } // ////华裕 //oCnK3.RunProc("INSERT INTO POrequest" + // "(FInterID,FBillNo,FBrNo,FTranType,FCancellation,FStatus,Fdate" + // ",FDeptID,FBizType,Fnote,FRequesterID,FCheckTime,FBillerID,FMRP" + // ",FMultiCheckDate1,FMultiCheckDate2,FMultiCheckDate3" + // ",FMultiCheckDate4,FMultiCheckDate5,FMultiCheckDate6" + // ",FSelTranType,FPrintCount,FPlanConfirmed,FPlanCategory" + // ",FGeneratePurBudQty,FHeadSelfP0131,FHeadSelfP0133,FHeadSelfP0132) " + // "Values (" + HInterID + ",'" + HBillNo + "','0',70,0,0,CONVERT(CHAR(10),GETDATE(),120) " + // "," + HDeptID + ",12510,''," + HEmpID + ",Null," + HBillerID + ",0" + // ",Null,Null,Null,Null,Null,Null" + // ",81,0,0,'1'" + // ",0,40274,'','')"); //本地 oCnK3.RunProc("INSERT INTO POrequest" + "(FInterID,FBillNo,FBrNo,FTranType,FCancellation,FStatus,Fdate" + ",FDeptID,FBizType,Fnote,FRequesterID,FCheckTime,FBillerID,FMRP" + ",FMultiCheckDate1,FMultiCheckDate2,FMultiCheckDate3" + ",FMultiCheckDate4,FMultiCheckDate5,FMultiCheckDate6" + ",FSelTranType,FPlanConfirmed" + ",FGeneratePurBudQty) " + "Values (" + HInterID + ",'" + HBillNo + "','0',70,0,0,CONVERT(CHAR(10),GETDATE(),120) " + "," + HDeptID + ",12510,''," + HBillerID + ",Null," + HBillerID + ",0" + ",Null,Null,Null,Null,Null,Null" + ",81,0" + ",0)"); oCnK3.Commit(); } catch (Exception ex) { oCnK3.RollBack(); throw (ex); } MessageBox.Show("单据号:" + HBillNo + ",保存完毕!"); grdSub_Show(); } private void grdMain_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) { if (grdMain.CurrentRow == null) return; HSelectCol = grdMain.CurrentRow.Index; } private void zqlfx_Click(object sender, EventArgs e) { if (grdMain.CurrentRow == null) return; long HInterID = DBUtility.ClsPub.isLong(grdMain.CurrentRow.Cells[Fun_GetCol("hmainid")].Value); long HEntryID = DBUtility.ClsPub.isLong(grdMain.CurrentRow.Cells[Fun_GetCol("hsubid")].Value); long HMaterID = DBUtility.ClsPub.isLong(grdMain.CurrentRow.Cells[Fun_GetCol("hmaterid")].Value); double HQty = DBUtility.ClsPub.isDoule(grdMain.CurrentRow.Cells[Fun_GetCol("数量")].Value); if (HInterID == 0 || HEntryID == 0 || HMaterID == 0 || HQty == 0) { return; } Sc_OrderLackMaterialAnalyse oZQLFX = new Sc_OrderLackMaterialAnalyse(); oZQLFX.HInterID = HInterID; oZQLFX.HEntryID = HEntryID; oZQLFX.HMaterID = HMaterID; oZQLFX.HQty = HQty; oZQLFX.ShowDialog(); } } }