using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using SQLHelper; using Pub_Class; namespace WarM { /// /// 条码管理 /// public partial class Gy_BarCodeEdit : Form { public Gy_BarCodeEdit() { InitializeComponent(); } public const string ModName = ""; public const string ModCaption = "条码管理"; public Int64 HInterID = 0; //单据主内码 public Int64 HEntryID = 0; //单据子内码 // public int HMaterIDCol = 0; //物料列 // public string HBillType = ""; //单据类型 public long HMaterID = 0; //物料ID public long HProcID = 0; //工序ID public long HWhID = 0; //仓库ID public long HSCWhID = 0; //调出仓库ID public long HStockPlaceID = 0; //仓位ID public long HOutStockPlaceID = 0; //调出仓位ID public long HGroupID = 0; //班组ID public long HSourceInterID = 0; //源单主ID public long HSourceEntryID = 0; //源单子ID public string HSourceBillType = ""; //源单类型 public long HSourceItemID = 0; //源单物料ID // public DBUtility.ClsPub.Enum_BillStatus BillStatus; public DAL.ClsGy_BarCodeEdit_Ctl BillNew = new DAL.ClsGy_BarCodeEdit_Ctl(); public DAL.ClsGy_BarCodeEdit_Ctl BillOld = new DAL.ClsGy_BarCodeEdit_Ctl(); Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); // private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } //初始化网格 private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); } //刷新网格 private void Display() { //从数据库获取数据显示到网格 ClsCN SubCn = new ClsCN(); DataSet DSet; string sSql = ""; string sWhere = this.HInterID.ToString() + ",'" + HBillType + "'"; //过滤条件 sSql = "exec h_p_Gy_BarCodeEditDisplay "; // DSet = SubCn.RunProcReturn(sSql + sWhere, "Gy_Czygl", 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 = 0; string s = ""; DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name,s, FrCol); //画线 //合计 Total(); } private void GraphicsGrid() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); } //刷新按钮 private void sx_Click(object sender, EventArgs e) { Display(); } //引出按钮 private void dc_Click(object sender, EventArgs e) { DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); } //窗体初始化 private void Gy_BarCodeEdit_Load(object sender, EventArgs e) { this.Text = ModCaption; oSumGrid.ogrdMain = grdMain; //初始化 new oSumGrid.oGridsum = grdSum; //lblCaption.Text = ModCaption; initGrid(); } 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); } //合计 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 txtHBarCode_KeyDown(object sender, KeyEventArgs e) { //判断是否回车键 if (e.KeyCode == Keys.Enter) { //条码处理 set_BarCode(); txtHBarCode.Text = ""; } } //条码处理 private void set_BarCode() { //从条码档案里判断条码准确性 if (BillOld.HavParentCarCode(txtHBarCode.Text.Trim())) { //保存 Sub_SaveBill(txtHBarCode.Text.Trim()); } else { MessageBox.Show("无效的条码!"); return; } } //是否是空行 private bool IsNullRow(int Row) { return DBUtility.Xt_BaseBillFun.IsNullRow(Row, HMaterIDCol, grdMain); } //单据完整性判断 未完成 private bool Sub_AllowSave() { //必输项目是否为空 //明细表是否为零行 bool b = false; for (int i = 0; i < grdMain.RowCount; i++) { if (!IsNullRow(i)) { b = true; break; } } if (b == false) { MessageBox.Show("明细行不存在!", "提示"); return false; } return true; } private bool Sub_SaveBill(string sCode) { Int32 i; bool bResult = false; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); BillNew.DetailColl = new List(); DataSet DS; DS = oCn.RunProcReturn("Select * from Gy_BarCodeBill Where hbarcode='" + sCode + "'", "Gy_BarCodeBill", ref Pub_Class.ClsPub.sExeReturnInfo); if (DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[0]["HBarCodeType"] )== "箱号条码") { DataSet oDS; oDS = oCn.RunProcReturn("select * from h_v_Sc_PackUnionBillList where 箱号条形码=" + sCode, "Sc_PackUnionBillMain", ref Pub_Class.ClsPub.sExeReturnInfo); for (i = 0; i < oDS.Tables[0].Rows.Count; i++) { Model.ClsGy_BarCodeEdit_Model omodel = new Model.ClsGy_BarCodeEdit_Model(); omodel.HInterID = 0; omodel.HEntryID = 0; omodel.HBillType = this.HBillType; omodel.HMaterID = DBUtility.ClsPub.isLong(oDS.Tables[0].Rows[i]["HMaterID"]); omodel.HBatchNo = "0"; omodel.HProcID = 0; omodel.HWhID = HWhID; omodel.HSCWhID = 0; omodel.HStockPlaceID = 0; omodel.HOutStockPlaceID = 0; omodel.HGroupID = 0; omodel.HQty = DBUtility.ClsPub.isDoule(oDS.Tables[0].Rows[i]["数量"]); omodel.HBarCode = DBUtility.ClsPub.isStrNull(oDS.Tables[0].Rows[i]["物料条形码"]); omodel.HBarCodeType = DBUtility.ClsPub.isStrNull(oDS.Tables[0].Rows[i]["箱号条形码"]); omodel.HAddr = ""; omodel.HSourceInterID = 0; omodel.HSourceEntryID = 0; omodel.HSourceBillType = "0"; omodel.HSourceItemID = 0; BillNew.DetailColl.Add(omodel); } } else { for (i = 0; i < DS.Tables[0].Rows.Count; i++) { Model.ClsGy_BarCodeEdit_Model omodel = new Model.ClsGy_BarCodeEdit_Model(); omodel.HInterID = 0; omodel.HEntryID = 0; omodel.HBillType = this.HBillType; omodel.HMaterID = DBUtility.ClsPub.isLong(DS.Tables[0].Rows[i]["HMaterID"]); omodel.HBatchNo = "0"; omodel.HProcID = 0; omodel.HWhID = HWhID; omodel.HSCWhID = 0; omodel.HStockPlaceID = 0; omodel.HOutStockPlaceID = 0; omodel.HGroupID = 0; omodel.HQty = DBUtility.ClsPub.isDoule(DS.Tables[0].Rows[i]["HQty"]); omodel.HBarCode = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HBarCode"]); omodel.HAddr = ""; omodel.HSourceInterID = DBUtility.ClsPub.isLong(DS.Tables[0].Rows[i]["HSourceInterID"]); ; omodel.HSourceEntryID = DBUtility.ClsPub.isLong(DS.Tables[0].Rows[i]["HSourceEntryID"]); ; omodel.HSourceBillType = DBUtility.ClsPub.isStrNull(DS.Tables[0].Rows[i]["HSourceBillType"]); ; omodel.HSourceItemID = 0; BillNew.DetailColl.Add(omodel); } } //保存完毕后处理 if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew) { bResult = BillNew.AddNew(); } //提示 if (bResult == true) { if (BillStatus == DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew) { this.Display(); } return true; } else { MessageBox.Show("保存失败!原因:" + ClsPub.sExeReturnInfo, "提示"); return false; } } private void grdMain_Paint(object sender, PaintEventArgs e) { GraphicsGrid(); } private void back_Click(object sender, EventArgs e) { this.Visible = false; } private void del_Click(object sender, EventArgs e) { DAL.ClsGy_BarCodeEdit_Ctl oBar = new DAL.ClsGy_BarCodeEdit_Ctl(); int a = grdMain.CurrentRow.Index; long str = ClsPub.isLong( grdMain.Rows[a].Cells["HItemId"].Value) ; oBar.DeleteByID(str); this.Display(); } } }