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; using System.IO; using Pub_Class; namespace WarM { public partial class Kf_SellOutBill_BarCodeNote : Form { public Kf_SellOutBill_BarCodeNote() { InitializeComponent(); } public frmBillQueryCondition_New frmCondition; public string ModCaption = "销售码单打印"; public const string ModName = "1205"; public Int64 HInterID = 0; public string HBillType = "1205"; public string HMaker = DBUtility.ClsPub.CurUserName; public Int64 HStockOrgID = DBUtility.ClsPub.HOrgID; public DateTime HDate = DateTime.Today; public DBUtility.ClsPub.Enum_BillStatus BillStatus; public DAL.ClsKf_SellOutBill BillOld = new DAL.ClsKf_SellOutBill(); //对应单据类 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); #region //固定代码 //清空界面 public void Sub_ClearBill() { cmbHSourceBillType.Items.Clear(); cmbHSourceBillType.Items.Add("销售订单"); cmbHSourceBillType.Items.Add("发货通知单"); cmbHBillStatus.Items.Clear(); cmbHBillStatus.Items.Add("创建"); //获取当前组织 DataSet Ds1 = oCn.RunProcReturn("select * from Xt_ORGANIZATIONS with(nolock) where HItemID=" + HStockOrgID, "Xt_ORGANIZATIONS", ref DBUtility.ClsPub.sExeReturnInfo); if (Ds1.Tables[0].Rows.Count != 0) { cmbHStockOrgID.Text = DBUtility.ClsPub.isStrNull(Ds1.Tables[0].Rows[0]["HName"]); } DBUtility.Xt_BaseBillFun.Sub_ClearBill(gbUp); txtHBarCode.Text = ""; grdMain.DataSource = null; grdSub.DataSource = null; grdBarCode.DataSource = null; grdTM.DataSource = null; } //窗体加载 private void Kf_SellOutBill_BarCodeNote_Load(object sender, EventArgs e) { frmCondition = new frmBillQueryCondition_New(); this.Text = ModCaption; //加载组织信息 Sub_AddStockOrgList(); } //加载组织信息 private void Sub_AddStockOrgList() { DataSet ds; DAL.ClsGy_ORGANIZATIONS_View oClsGy_ORGANIZATIONS_View = new DAL.ClsGy_ORGANIZATIONS_View(); ds = oClsGy_ORGANIZATIONS_View.GetList(); if (ds == null || ds.Tables[0].Rows.Count == 0) { MessageBox.Show("获取组织失败"); return; } cmbHStockOrgID.Items.Clear(); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { cmbHStockOrgID.Items.Add(DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[i]["HName"])); } } private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); DBUtility.Xt_BaseBillFun.initGridList(grdSub, this.Name + "grdSub"); DBUtility.Xt_BaseBillFun.initGridList(grdBarCode, this.Name + "grdBarCode"); DBUtility.Xt_BaseBillFun.initGridList(grdTM, this.Name + "grdTM"); } private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; initGrid(); this.Sub_ClearBill();//清空界面 } private void grdMain_Paint(object sender, PaintEventArgs e) { GraphicsGrid(); } private void GraphicsGrid() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); } private void grdSub_Paint(object sender, PaintEventArgs e) { GraphicsGridSub(); } private void GraphicsGridSub() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdSub); } private void grdBarCode_Paint(object sender, PaintEventArgs e) { GraphicsGridBarCode(); } private void GraphicsGridBarCode() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdBarCode); } private void grdTM_Paint(object sender, PaintEventArgs e) { GraphicsGridTM(); } private void GraphicsGridTM() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdTM); } private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } private Int32 Fun_GetSubCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdSub); } private Int32 Fun_GetBarCodeCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdBarCode); } private Int32 Fun_GetTMCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdTM); } //画线 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); int MainIDCol2 = Fun_GetSubCol("hmainid"); int SubIDCol2 = Fun_GetSubCol("hsubid"); string s2 = frmCondition.cmbHComplete.Text; long n2 = 0; DBUtility.Xt_BaseBillFun.GraphLine(grdSub, MainIDCol2, SubIDCol2, s2, ref n2); int MainIDCol3 = Fun_GetBarCodeCol("hmainid"); int SubIDCol3 = Fun_GetBarCodeCol("hsubid"); string s3 = frmCondition.cmbHComplete.Text; long n3 = 0; DBUtility.Xt_BaseBillFun.GraphLine(grdBarCode, MainIDCol3, SubIDCol3, s3, ref n3); int MainIDCol4 = Fun_GetTMCol("hmainid"); int SubIDCol4 = Fun_GetTMCol("hsubid"); string s4 = frmCondition.cmbHComplete.Text; long n4 = 0; DBUtility.Xt_BaseBillFun.GraphLine(grdTM, MainIDCol4, SubIDCol4, s4, ref n4); } //保存列宽 private void bclk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); DBUtility.Xt_BaseBillFun.SaveGrid(grdSub, this.Name + "grdSub"); DBUtility.Xt_BaseBillFun.SaveGrid(grdBarCode, this.Name + "grdBarCode"); DBUtility.Xt_BaseBillFun.SaveGrid(grdTM, this.Name + "grdTM"); } //默认列宽 private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); DBUtility.Xt_BaseBillFun.DefaultGridView(grdSub, this.Name + "grdSub"); DBUtility.Xt_BaseBillFun.DefaultGridView(grdBarCode, this.Name + "grdBarCode"); DBUtility.Xt_BaseBillFun.DefaultGridView(grdTM, this.Name + "grdTM"); } #endregion #region //刷新 private void sx_Click_1(object sender, EventArgs e) { timer1.Enabled = true; } #endregion #region //扫描源单条码 private void txtHBarCode_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)Keys.Return) { if (!AddSource()) { txtHBarCode.Focus(); txtHBarCode.SelectAll(); return; } grdSub.Rows[0].Selected = true; DBUtility.Xt_BaseBillFun.Sub_ClearBill(gbUp); Sub_ShowBill(); } } private void cmdOK_Click(object sender, EventArgs e) { if (!AddSource()) { txtHBarCode.Focus(); txtHBarCode.SelectAll(); return; } DBUtility.Xt_BaseBillFun.Sub_ClearBill(gbUp); grdSub.Rows[0].Selected = true; Sub_ShowBill(); } private bool AddSource() { //将扫描单据号写入临时表 DataSet ds = oCn.RunProcReturn("exec h_p_Kf_CheckSeOrder_SellOutBillBarCodeNote '" + txtHBarCode.Text.Trim() + "'", "h_p_Kf_CheckSeOrder_SellOutBillBarCodeNote"); if (ds == null || ds.Tables[0].Rows.Count == 0) { MessageBox.Show("扫描销售订单判断错误!", "提示"); return false; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { MessageBox.Show(DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]), "提示"); return false; } else { grdSub.DataSource = ds.Tables[0].DefaultView; //冻结 int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text); string s = frmCondition.cmbHComplete.Text; DBUtility.Xt_BaseBillFun.DisplayGrid(grdSub, this.Name + "grdSub", s, FrCol); //画线 GraphLine(); return true; } } #endregion #region //双击左侧销售出库单 private void grdSub_DoubleClick(object sender, EventArgs e) { Sub_ShowBill(); } //显示单据 private void Sub_ShowBill() { Int64 lngBillKey = 0; if (grdSub.CurrentRow == null) return; lngBillKey = DBUtility.ClsPub.isLong(grdSub.SelectedRows[0].Cells[Fun_GetSubCol("HInterID")].Value); if (lngBillKey == 0) return; DataSet DSet = oCn.RunProcReturn("exec h_p_Kf_SellOutBillBarCodeNote " + lngBillKey.ToString(), "h_p_Kf_SellOutBillBarCodeNote"); if (DSet == null) { MessageBox.Show("没有返回任何结果!" + DBUtility.ClsPub.sExeReturnInfo); return; } else { //返回主表信息 txtHBillNo.Text = DSet.Tables[0].Rows[0]["单据号"].ToString(); dtpHDate.Text = DSet.Tables[0].Rows[0]["日期"].ToString(); txtHDeptName.Text = DSet.Tables[0].Rows[0]["部门"].ToString(); txtHEmpName.Text = DSet.Tables[0].Rows[0]["销售员"].ToString(); txtHSellStyle.Text = DSet.Tables[0].Rows[0]["销售方式"].ToString(); txtHSecManagerName.Text = DSet.Tables[0].Rows[0]["发货人"].ToString(); txtHSupName.Text = DSet.Tables[0].Rows[0]["客户"].ToString(); txtHKeeperName.Text = DSet.Tables[0].Rows[0]["仓管员"].ToString(); txtHWHName.Text = DSet.Tables[0].Rows[0]["仓库"].ToString(); cmbHSourceBillType.Text = DSet.Tables[0].Rows[0]["源单类型"].ToString(); txtHSourceBillNo.Text = DSet.Tables[0].Rows[0]["源单号"].ToString(); txtHConveyCompName.Text = DSet.Tables[0].Rows[0]["运输公司"].ToString(); txtHConveyType.Text = DSet.Tables[0].Rows[0]["运输方式"].ToString(); txtHLinkPhone.Text = DSet.Tables[0].Rows[0]["联系电话"].ToString(); txtHLinkMan.Text = DSet.Tables[0].Rows[0]["联系人"].ToString(); txtHRemark.Text = DSet.Tables[0].Rows[0]["备注"].ToString(); txtHBalance.Text = DSet.Tables[0].Rows[0]["客户余额"].ToString(); txtHCreditRating.Text = DSet.Tables[0].Rows[0]["客户信息额度"].ToString(); cmbHStockOrgID.Text = DSet.Tables[0].Rows[0]["销售组织"].ToString(); cmbHBillStatus.Text = DSet.Tables[0].Rows[0]["单据状态"].ToString(); txtHMoney.Text = DSet.Tables[0].Rows[0]["本单金额"].ToString(); txtHCreditDifference.Text = DSet.Tables[0].Rows[0]["信用差额"].ToString(); HInterID = DBUtility.ClsPub.isLong(DSet.Tables[0].Rows[0]["HInterID"]); txtHMaker.Text = DSet.Tables[0].Rows[0]["制单人"].ToString(); txtHChecker.Text = DSet.Tables[0].Rows[0]["审核人"].ToString(); //返回基本信息、码单信息 grdMain.DataSource = DSet.Tables[1].DefaultView; grdBarCode.DataSource = DSet.Tables[2].DefaultView; grdTM.DataSource = DSet.Tables[3].DefaultView; //冻结 int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text); string s = frmCondition.cmbHComplete.Text; DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, s, FrCol); DBUtility.Xt_BaseBillFun.DisplayGrid(grdBarCode, this.Name + "grdBarCode", s, FrCol); DBUtility.Xt_BaseBillFun.DisplayGrid(grdTM, this.Name + "grdTM", s, FrCol); //画线 GraphLine(); if (cmbHBillStatus.Text == "已审核") { sh.Enabled = false; fsh.Enabled = true; pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(DBUtility.ClsPub.AppPath + @"/Pic/Checked.jpg"); } else if (cmbHBillStatus.Text == "已关闭") { sh.Enabled = false; fsh.Enabled = false; pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(DBUtility.ClsPub.AppPath + @"/Pic/Closed.jpg"); } else if (cmbHBillStatus.Text == "已作废") { sh.Enabled = false; fsh.Enabled = false; pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(DBUtility.ClsPub.AppPath + @"/Pic/Deleted.jpg"); } else { sh.Enabled = true; fsh.Enabled = false; pic1.Visible = false; pic1.Image = null; } } } #endregion #region //审核销售出库单 private void sh_Click(object sender, EventArgs e) { DataSet ds2 = oCn.RunProcReturn("exec h_p_Kf_CheckSellOutBill_CrediControl " + HInterID.ToString(), "h_p_Kf_CheckSellOutBill_CrediControl"); if (ds2 == null || ds2.Tables[0].Rows.Count == 0) { MessageBox.Show("审核销售出库单,信用控制判断错误!", "提示"); return; } else if (DBUtility.ClsPub.isLong(ds2.Tables[0].Rows[0][0]) == 1) { MessageBox.Show(DBUtility.ClsPub.isStrNull(ds2.Tables[0].Rows[0]["HRemark"]), "提示"); return; } DataSet ds = oCn.RunProcReturn("exec h_p_Kf_SellOutBill_Check " + HInterID.ToString() + ",'" + HBillType + "','" + HMaker + "'", "h_p_Kf_SellOutBill_Check"); if (ds == null || ds.Tables[0].Rows.Count == 0) { MessageBox.Show("审核销售出库单判断错误!", "提示"); return; } else if (DBUtility.ClsPub.isLong(ds.Tables[0].Rows[0][0]) == 1) { MessageBox.Show(DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["HRemark"]), "提示"); return; } else { cmbHBillStatus.Text="已审核"; txtHChecker.Text = HMaker.ToString(); sh.Enabled = false; fsh.Enabled = true; pic1.Visible = true; pic1.Image = System.Drawing.Image.FromFile(DBUtility.ClsPub.AppPath + @"/Pic/Checked.jpg"); MessageBox.Show("审核成功!", "提示"); return; } } #endregion #region //反审核销售出库单 private void fsh_Click(object sender, EventArgs e) { if(HInterID==0) { MessageBox.Show("请先选择对应销售出库单!", "提示"); return; } if (BillOld.AbandonCheck(HInterID, ref DBUtility.ClsPub.sExeReturnInfo) == true) { cmbHBillStatus.Text = "创建"; txtHChecker.Text = ""; sh.Enabled = true; fsh.Enabled = false; pic1.Visible = false; pic1.Image = null; MessageBox.Show("反审核成功!", "提示"); return; } else { MessageBox.Show("反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } #endregion #region //申请特批 private void tp_Click(object sender, EventArgs e) { } #endregion #region //打印功能 GridppReport Report; #region //打印发货单 private void Billdy_Click(object sender, EventArgs e) { if(cmbHBillStatus.Text!= "已审核") { MessageBox.Show("所选单据对应单据状态不为‘已审核’状态,不允许打印!", "提示"); return; } //选择打印模板 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_SetReportBill(oFrm.sOpenTmp); //Report.Print(false); Report.PrintPreview(true); //预览 Thread.Sleep(1000); } } private void Sub_SetReportBill(string sOpenTmp) { Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecordBill); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTableBill); } //填入单据表头信息 private void ReportBeforePostRecordBill()//your report?kao { try { Report.FieldByName("单据编号").AsString = txtHBillNo.Text; Report.FieldByName("日期").AsString = dtpHDate.Value.ToString(); Report.FieldByName("销售部门").AsString = txtHDeptName.Text; Report.FieldByName("销售员").AsString = txtHEmpName.Text; Report.FieldByName("销售方式").AsString = txtHSellStyle.Text; Report.FieldByName("发货人").AsString = txtHSecManagerName.Text; Report.FieldByName("客户").AsString = txtHSupName.Text; Report.FieldByName("仓管").AsString = txtHKeeperName.Text; Report.FieldByName("出库仓库").AsString = txtHWHName.Text; Report.FieldByName("源单类型").AsString = cmbHSourceBillType.Text; Report.FieldByName("源单号").AsString = txtHSourceBillNo.Text; Report.FieldByName("运输公司").AsString = txtHConveyCompName.Text; Report.FieldByName("运输方式").AsString = txtHConveyType.Text; Report.FieldByName("联系电话").AsString = txtHLinkPhone.Text; Report.FieldByName("联系人").AsString = txtHLinkMan.Text; Report.FieldByName("备注").AsString = txtHRemark.Text; Report.FieldByName("客户余额").AsString = txtHBalance.Text; Report.FieldByName("客户信用额度").AsString = txtHCreditRating.Text; Report.FieldByName("销售组织").AsString = cmbHStockOrgID.Text; Report.FieldByName("单据状态").AsString = cmbHBillStatus.Text; Report.FieldByName("本单金额").AsString = txtHMoney.Text; Report.FieldByName("信用差额").AsString = txtHCreditDifference.Text; Report.FieldByName("制单人").AsString = txtHMaker.Text; Report.FieldByName("审核人").AsString = txtHChecker.Text; } catch (Exception e) { MessageBox.Show("打印失败!表头:" + e.Message); } } //填入单据表体信息 private void ReportFetchRecordByDataTableBill() { try { DataTable ds = new DataTable(); BLL.Utility.FillRecordToReport_Sel(Report, grdMain, ds, Fun_GetCol("hmainid")); } catch (Exception e) { MessageBox.Show("打印失败!表体:" + e.Message); } } #endregion #region //打印码单 private void BarCodedy_Click(object sender, EventArgs e) { //if (cmbHBillStatus.Text != "已审核") //{ // MessageBox.Show("所选单据对应单据状态不为‘已审核’状态,不允许打印!", "提示"); // return; //} //选择打印模板 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); 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 = txtHBillNo.Text; Report.FieldByName("日期").AsString = dtpHDate.Value.ToString(); Report.FieldByName("销售部门").AsString = txtHDeptName.Text; Report.FieldByName("销售员").AsString = txtHEmpName.Text; Report.FieldByName("销售方式").AsString = txtHSellStyle.Text; Report.FieldByName("发货人").AsString = txtHSecManagerName.Text; Report.FieldByName("客户").AsString = txtHSupName.Text; Report.FieldByName("仓管").AsString = txtHKeeperName.Text; Report.FieldByName("出库仓库").AsString = txtHWHName.Text; Report.FieldByName("源单类型").AsString = cmbHSourceBillType.Text; Report.FieldByName("源单号").AsString = txtHSourceBillNo.Text; Report.FieldByName("运输公司").AsString = txtHConveyCompName.Text; Report.FieldByName("运输方式").AsString = txtHConveyType.Text; Report.FieldByName("联系电话").AsString = txtHLinkPhone.Text; Report.FieldByName("联系人").AsString = txtHLinkMan.Text; Report.FieldByName("备注").AsString = txtHRemark.Text; Report.FieldByName("客户余额").AsString = txtHBalance.Text; Report.FieldByName("客户信用额度").AsString = txtHCreditRating.Text; Report.FieldByName("销售组织").AsString = cmbHStockOrgID.Text; Report.FieldByName("单据状态").AsString = cmbHBillStatus.Text; Report.FieldByName("本单金额").AsString = txtHMoney.Text; Report.FieldByName("信用差额").AsString = txtHCreditDifference.Text; Report.FieldByName("制单人").AsString = txtHMaker.Text; Report.FieldByName("审核人").AsString = txtHChecker.Text; } catch (Exception e) { MessageBox.Show("打印失败!表头:" + e.Message); } } //填入单据表体信息 private void ReportFetchRecordByDataTable() { try { DataTable ds = new DataTable(); BLL.Utility.FillRecordToReport_Sel(Report, grdBarCode, ds, Fun_GetBarCodeCol("hmainid")); } catch (Exception e) { MessageBox.Show("打印失败!表体:" + e.Message); } } #endregion #endregion #region //退出 private void tc_Click(object sender, EventArgs e) { this.Close(); } #endregion } }