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.Threading; namespace ProM { public partial class WW_EntrustOrderBillList : Form { public WW_EntrustOrderBillList() { InitializeComponent(); } public frmBillQueryCondition_New frmCondition; const string ViewName = "h_v_IF_EntrustOrderBillList"; const string ModCaption = "委外订单"; public const string ModName = "1601"; public const string ModRightName = "WW_EntrustOrderBill"; 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.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill(); public WW_EntrustOrderBill oFrm; public string sDlgWhere = ""; //外窗体递入 Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); public Int32 iTopRow = 0;//画横线 int _ScrollValue = 0;//刷新 回位 #region 固定代码 //反审核 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(); } private void dc_Click(object sender, EventArgs e) { DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); } //初始化网格 private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain,this.Name); } // //显示 private void Display() { 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,hsubid "; } else { sSql = "Select * from " + ViewName + " Where 1=1 " + sWhere + sDlgWhere + " order by 单据号 desc,hsubid "; } // 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[selectRows].Selected = true; } //设置合计列 string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid.BuildTotalCols(sT); //iTopRow = 0; //冻结 int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text); string s = frmCondition.cmbHComplete.Text; DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, s, FrCol); //画线 GraphLine(); //GraphicsGrid(); // 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; } //显示单据 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.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill(); if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { oFrm = new WW_EntrustOrderBill(); 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 void WW_EntrustOrderBillList_Load(object sender, EventArgs e) { // frmCondition = new frmBillQueryCondition_New(); this.Text = ModCaption; lblCaption.Text = ModCaption; oSumGrid.ogrdMain = grdMain; //初始化 new oSumGrid.oGridsum = grdSum; 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 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 WW_EntrustOrderBill(); oFrm.ShowDialog(); } //private void sc_Click(object sender, EventArgs e) //{ // Sub_DeleteBill(); //} ////删除 //private void Sub_DeleteBill() //{ // //编辑权限 // //if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 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.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill(); // if (oBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) // { // if (oBill.omodel.HBillStatus > 1) // { // MessageBox.Show("单据当前处于不能删除状态,不能删除!", "提示"); // return; // } // if (oBill.omodel.HChecker != "") // { // MessageBox.Show("单据已经审核,不能删除!", "提示"); // return; // } // if (MessageBox.Show("确定要删除当前单据?", "提示", MessageBoxButtons.OKCancel)==DialogResult.OK) // { // if (!oBill.DeleteBill(oBill.omodel.HInterID, 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; if (sDlgWhere == "") { frmCondition = new 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); } 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; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill(); //查看是否已审核,关闭,作废 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.ClsWW_EntrustOrderBill oBill = new DAL.ClsWW_EntrustOrderBill(); //查看是否已审核,关闭,作废 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 grdMain_Scroll(object sender, ScrollEventArgs e) { if (e.ScrollOrientation == ScrollOrientation.VerticalScroll) { this.iTopRow = e.NewValue; _ScrollValue = e.NewValue; } } #endregion #region //打印设置 GridppReport Report; //预览 int CurRows = 0; 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) { CurRows = grdMain.CurrentRow.Index; Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(true); Thread.Sleep(1000); } } 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()//your report?kao { try { Report.FieldByName("单据号").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("单据号")].Value.ToString(); Report.FieldByName("数量").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("数量")].Value.ToString(); Report.FieldByName("计划跟踪号").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("计划跟踪号")].Value.ToString(); Report.FieldByName("物料代码").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("物料代码")].Value.ToString(); Report.FieldByName("物料名称").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("物料名称")].Value.ToString(); Report.FieldByName("规格型号").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("规格型号")].Value.ToString(); Report.FieldByName("供应商").AsString = grdMain.Rows[CurRows].Cells[Fun_GetCol("供应商")].Value.ToString(); } catch (Exception e) { MessageBox.Show("打印失败!表头:" + e.Message); } } private void ReportFetchRecordByDataTable() { try { DataTable ds = new DataTable(); BLL.Utility.FillRecordToReport_FstRow(Report, grdMain, ds, Fun_GetCol("hmainid")); } catch (Exception e) { MessageBox.Show("打印失败!" + e.Message); } } 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) { // for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { CurRows = grdMain.SelectedRows[i].Index; Sub_SetReport(oFrm.sOpenTmp); Report.Print(false); Thread.Sleep(1000); } } } 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 fj_Click(object sender, EventArgs e) { if (grdMain.CurrentRow == null) return; string sBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("单据号")].Value); if (sBillNo.Trim() != "") { BLL.Xt_File oFile = new BLL.Xt_File(); oFile.HBillType = ModName; oFile.HBillNo = sBillNo; oFile.ShowDialog(); } } #endregion #region 额外方法 //上查 private void shc_Click(object sender, EventArgs e) { // } private void xc_Click(object sender, EventArgs e) { // } #endregion //快速过滤 private void btnOK_Click(object sender, EventArgs e) { Sub_FastQuery(); } //快速过滤 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 (txtHSupID.Text.Trim() != "") { sFastSQL = sFastSQL + " and 供应商 like '%" + txtHSupID.Text + "%'"; } if (sFastSQL.Trim() == "") { MessageBox.Show("没有输入条件!"); return; } sDlgWhere = sFastSQL; Display(); sDlgWhere = ""; } //重新同步 private void btnTB_Click(object sender, EventArgs e) { SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DataSet DS = oCn.RunProcReturn("exec h_p_WMS_ERPSourceBillToLocal '" + txtHBillNo2.Text.Trim() + "','" + ModName + "'", "h_p_WMS_ERPSourceBillToLocal"); if (DS == null) { MessageBox.Show("同步单据失败!"); } else { if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBack"]) == "2") { MessageBox.Show(DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBackRemark"])); } else { MessageBox.Show("同步单据成功!"); Display(); } } } } }