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 Gy_BarCodeBillList : Form
|
{
|
public Gy_BarCodeBillList()
|
{
|
InitializeComponent();
|
}
|
public frmBillQueryCondition_New frmCondition;
|
public string ViewName = "h_v_IF_BarCodeBillList";
|
public string ModCaption = "条码档案列表";
|
public const string ModName = "3302";
|
public const string ModRightName = "Gy_BarCodeBillList";
|
public const string ModRightNameEdit = ModRightName + "_Edit"; //删除
|
public const string ModRightNameDelete = ModRightName + "_Delete"; //作废
|
public const string ModRightNamePrint = ModRightName + "_Print"; //打印
|
|
DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl();
|
SQLHelper.ClsCN oCn = new SQLHelper.ClsCN();
|
public int selectRow = 0;
|
public int selectRow2 = 0;
|
public long PrintQty = 0; //允许条码打印次数
|
public string PrintQtyCtl = ""; //条码打印次数控制
|
public string UpdatePrintQtyCtl = ""; //条码打印次数更新
|
public string SourceQtyCtl = ""; //超源单数量控制
|
|
#region 固定代码
|
|
private void Gy_BarCodeBillList_Load(object sender, EventArgs e)
|
{
|
frmCondition = new frmBillQueryCondition_New();
|
this.Text = ModCaption;
|
lblCaption.Text = ModCaption;
|
initGrid();
|
Sub_GetSystemParameter();
|
}
|
|
private void initGrid()
|
{
|
DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name);
|
}
|
|
//获取系统参数信息
|
private void Sub_GetSystemParameter()
|
{
|
//获取系统参数
|
ClsXt_SystemParameter oSystemParameter = new ClsXt_SystemParameter();
|
if (oSystemParameter.ShowBill(ref DBUtility.ClsPub.sExeReturnInfo) == false)
|
{
|
MessageBox.Show("获取系统参数失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示");
|
return;
|
}
|
else
|
{
|
PrintQty = oSystemParameter.omodel.BarCode_PrintQty;
|
PrintQtyCtl = oSystemParameter.omodel.BarCode_PrintQtyCtl;
|
UpdatePrintQtyCtl = oSystemParameter.omodel.BarCode_UpdatePrintQtyCtl;
|
SourceQtyCtl = oSystemParameter.omodel.BarCode_SourceQtyCtl;
|
}
|
}
|
|
private void timer1_Tick(object sender, EventArgs e)
|
{
|
timer1.Enabled = false;
|
initGrid();
|
Display();
|
}
|
|
private void timer2_Tick(object sender, EventArgs e)
|
{
|
timer2.Enabled = false;
|
frmCondition = new frmBillQueryCondition_New();
|
SetCondition(frmCondition, ViewName, this.Name);
|
frmCondition.ShowDialog();
|
if (frmCondition.Tag.ToString() == "OK")
|
{
|
timer1.Enabled = true;
|
}
|
}
|
|
public void SetCondition(frmBillQueryCondition_New frmCondition, string ViewName, string Name)
|
{
|
frmCondition.Tag = "";
|
frmCondition.ViewName = ViewName;
|
frmCondition.ModName = Name;
|
}
|
|
private void grdMain_Paint(object sender, PaintEventArgs e)
|
{
|
GraphicsGrid();
|
}
|
|
private void GraphicsGrid()
|
{
|
DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain);
|
}
|
|
private Int32 Fun_GetCol(string sCol)
|
{
|
return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain);
|
}
|
|
//保存列宽
|
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);
|
}
|
|
#endregion
|
|
|
#region 查询功能
|
|
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();
|
}
|
}
|
|
private void Display()
|
{
|
ClsCN SubCn = new ClsCN();
|
DataSet DSet;
|
string sSql = "";
|
string sWhere = "";
|
//过滤条件
|
if (frmCondition.SqlStr.Trim().Length == 0)
|
return;
|
sSql = frmCondition.SqlStr + sWhere + " order by HItemID desc ";
|
//
|
DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo);
|
//生成首行标题
|
if (DSet == null)
|
{
|
MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo);
|
return;
|
}
|
//
|
grdMain.DataSource = DSet.Tables[0].DefaultView;
|
//冻结
|
int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text);
|
string s = frmCondition.cmbHComplete.Text;
|
DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, s, FrCol);
|
//画线
|
GraphLine();
|
}
|
|
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() + " 条记录";
|
}
|
|
#endregion
|
|
|
#region 刷新功能
|
|
private void sx_Click(object sender, EventArgs e)
|
{
|
timer1.Enabled = true;
|
}
|
|
#endregion
|
|
|
#region 删除功能
|
|
//单条删除
|
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;
|
}
|
if (grdMain.CurrentRow == null)
|
{
|
MessageBox.Show("请先选择需要删除的条码!", "提示");
|
return;
|
}
|
if (grdMain.SelectedRows.Count != 1)
|
{
|
MessageBox.Show("不允许多行删除,请重新选择要删除的条码!");
|
return;
|
}
|
else
|
{
|
if (MessageBox.Show("确定要删除所选条码?删除后不能恢复,请谨慎操作!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
|
{
|
Int64 HItemID = 0;
|
string HBarCode = "";
|
HItemID = DBUtility.ClsPub.isLong(grdMain.SelectedRows[0].Cells[Fun_GetCol("hmainid")].Value);
|
HBarCode = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[0].Cells[Fun_GetCol("条码编号")].Value);
|
|
if (!oBar.DeleteBill(HItemID, HBarCode, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
MessageBox.Show(DBUtility.ClsPub.sExeReturnInfo, "提示");
|
return;
|
}
|
else
|
{
|
MessageBox.Show("删除成功!", "提示");
|
Display();
|
}
|
}
|
}
|
}
|
|
//批量删除
|
private void ps_Click(object sender, EventArgs e)
|
{
|
Sub_MulDeleteBill();
|
}
|
|
private void Sub_MulDeleteBill()
|
{
|
//判断权限
|
if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, true, DBUtility.ClsPub.CurUserName))
|
{
|
return;
|
}
|
if (grdMain.CurrentRow == null)
|
{
|
MessageBox.Show("请先选择需要删除的条码!", "提示");
|
return;
|
}
|
if (grdMain.SelectedRows.Count > 300)
|
{
|
MessageBox.Show("批量删除条码选中行数不能超过300行!", "提示");
|
return;
|
}
|
else
|
{
|
if (MessageBox.Show("确定要批量删除所选条码?删除后不能恢复,请谨慎操作!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK)
|
{
|
string HItemID = "";
|
string HBarCode = "";
|
for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++)
|
{
|
HItemID = HItemID + "," + DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value.ToString());
|
if (i != 0 && i % 100 == 0)
|
{
|
HBarCode = HBarCode + "#" + DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value);
|
}
|
else
|
{
|
HBarCode = HBarCode + "," + DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value);
|
}
|
}
|
|
HItemID = HItemID.Remove(0, 1); //去掉字符串第一个字符
|
HBarCode = HBarCode.Remove(0, 1);
|
if (!oBar.MulDeleteBill(HItemID, HBarCode, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
MessageBox.Show(DBUtility.ClsPub.sExeReturnInfo, "提示");
|
return;
|
}
|
else
|
{
|
MessageBox.Show("批量删除成功!", "提示");
|
Display();
|
}
|
}
|
}
|
}
|
|
#endregion
|
|
|
#region 作废功能
|
|
private void zf_Click(object sender, EventArgs e)
|
{
|
//判断权限
|
if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName))
|
{
|
return;
|
}
|
if (grdMain.CurrentRow == null)
|
{
|
MessageBox.Show("请先选择需要作废的条码!", "提示");
|
return;
|
}
|
else
|
{
|
if (MessageBox.Show("确定要作废所选条码?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
|
{
|
return;
|
}
|
else
|
{
|
string HItemID = "";
|
string HBarCode = "";
|
for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++)
|
{
|
HItemID = HItemID + "," + DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value.ToString());
|
if (i != 0 && i % 100 == 0)
|
{
|
HBarCode = HBarCode + "#" + DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value);
|
}
|
else
|
{
|
HBarCode = HBarCode + "," + DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value);
|
}
|
}
|
|
HItemID = HItemID.Remove(0, 1); //去掉字符串第一个字符
|
HBarCode = HBarCode.Remove(0, 1);
|
if (!oBar.Cancelltion(HItemID, HBarCode, DBUtility.ClsPub.CurUserName))
|
{
|
MessageBox.Show("作废失败!", "提示");
|
return;
|
}
|
else
|
{
|
MessageBox.Show("作废成功!", "提示");
|
Display();
|
}
|
}
|
}
|
}
|
|
#endregion
|
|
|
#region 反作废功能
|
|
private void fzf_Click(object sender, EventArgs e)
|
{
|
//判断权限
|
if (!DBUtility.ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName))
|
{
|
return;
|
}
|
if (grdMain.CurrentRow == null)
|
{
|
MessageBox.Show("请先选择需要反作废的条码!", "提示");
|
return;
|
}
|
if (grdMain.SelectedRows.Count>300)
|
{
|
MessageBox.Show("同时反作废条码选中行数不能超过300行!", "提示");
|
return;
|
}
|
else
|
{
|
if (MessageBox.Show("确定要反作废所选条码?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel)
|
{
|
return;
|
}
|
else
|
{
|
string HItemID = "";
|
string HBarCode = "";
|
for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++)
|
{
|
HItemID = HItemID + "," + DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value.ToString());
|
if (i != 0 && i % 100 == 0)
|
{
|
HBarCode = HBarCode + "#" + DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value);
|
}
|
else
|
{
|
HBarCode = HBarCode + "," + DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("条码编号")].Value);
|
}
|
}
|
|
HItemID = HItemID.Remove(0, 1); //去掉字符串第一个字符
|
HBarCode = HBarCode.Remove(0, 1);
|
if (!oBar.UnCancelltion(HItemID, HBarCode, SourceQtyCtl, ref DBUtility.ClsPub.sExeReturnInfo))
|
{
|
MessageBox.Show(DBUtility.ClsPub.sExeReturnInfo, "提示");
|
return;
|
}
|
else
|
{
|
MessageBox.Show("反作废成功!", "提示");
|
Display();
|
}
|
}
|
}
|
}
|
|
#endregion
|
|
|
#region 打印设置
|
|
GridppReport Report;
|
int CurRows = 0;
|
string sBarCodeItemID = ""; //条码自增列
|
|
//预览
|
private void yl_Click(object sender, EventArgs e)
|
{
|
//打印预览权限
|
if (!DBUtility.ClsPub.Security_Log(ModRightNamePrint, 1, true, DBUtility.ClsPub.CurUserName))
|
{
|
return;
|
}
|
//打印前判断条码是否超过允许可打印次数
|
if (ReportPrintBegin())
|
{
|
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.PrintPreview(false);
|
Thread.Sleep(1000);
|
}
|
}
|
|
//打印
|
private void dy_Click(object sender, EventArgs e)
|
{
|
//打印预览权限
|
if (!DBUtility.ClsPub.Security_Log(ModRightNamePrint, 1, true, DBUtility.ClsPub.CurUserName))
|
{
|
return;
|
}
|
//打印前判断条码是否超过允许可打印次数
|
if (ReportPrintBegin())
|
{
|
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);
|
Thread.Sleep(1000);
|
}
|
}
|
|
//打印前判断条码是否超过允许可打印次数
|
private bool ReportPrintBegin()
|
{
|
DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl();
|
string sHRemark = "";
|
sBarCodeItemID = "";
|
for (int i = 0; i < grdMain.SelectedRows.Count; i++)
|
{
|
sBarCodeItemID = sBarCodeItemID + "," + DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("HItemID")].Value).ToString();
|
}
|
sBarCodeItemID = sBarCodeItemID.Remove(0, 1);
|
|
if (PrintQtyCtl == "Y")
|
{
|
if (oBar.Set_CheckPrintQty(sBarCodeItemID, PrintQty, ref sHRemark))
|
{
|
MessageBox.Show(sHRemark);
|
return true;
|
}
|
return false;
|
}
|
else
|
{
|
return false;
|
}
|
}
|
|
private void Sub_SetReport(string sOpenTmp)
|
{
|
//判断行数
|
for (int i = 0; i < grdMain.Rows.Count; i++)
|
{
|
grdMain.Rows[i].Cells[0].Value = "";
|
}
|
for (int i = 0; i < grdMain.SelectedRows.Count; i++)
|
{
|
grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[0].Value = "*";
|
}
|
//
|
Report = new GridppReport();
|
Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here .
|
Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
|
Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
|
Report.PrintEnd += new _IGridppReportEvents_PrintEndEventHandler(ReportPrintEnd);
|
}
|
|
//填入单据表头信息
|
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();
|
}
|
catch (Exception e)
|
{
|
MessageBox.Show("打印失败!表头:" + e.Message);
|
}
|
}
|
|
//填入单据表体信息
|
private void ReportFetchRecordByDataTable()
|
{
|
try
|
{
|
DataTable ds = new DataTable();
|
BLL.Utility.FillRecordToReport_Sel(Report, grdMain, ds, Fun_GetCol("选择"));
|
}
|
catch (Exception e)
|
{
|
MessageBox.Show("打印失败!表体:" + e.Message);
|
}
|
}
|
|
//打印结束后回填条码打印次数
|
private void ReportPrintEnd()
|
{
|
DAL.ClsGy_BarCodeBill_Ctl oBar = new DAL.ClsGy_BarCodeBill_Ctl();
|
if (UpdatePrintQtyCtl == "Y")
|
{
|
oBar.Set_UpdatePrintQty(sBarCodeItemID);
|
}
|
}
|
|
#endregion
|
|
|
#region 引出功能
|
|
private void eXCELToolStripMenuItem_Click(object sender, EventArgs e)
|
{
|
DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain);
|
}
|
|
private void cSVToolStripMenuItem_Click(object sender, EventArgs e)
|
{
|
DBUtility.Gy_BaseFun.DataGridViewToExcel2(grdMain, this.Text, this.Text);
|
}
|
|
#endregion
|
|
|
#region 退出功能
|
|
private void tc_Click(object sender, EventArgs e)
|
{
|
this.Close();
|
}
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
}
|
}
|