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();
}
}
}