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_CusBarCodeBillList : Form { public Gy_CusBarCodeBillList() { InitializeComponent(); } public frmBillQueryCondition_New frmCondition; public string ViewName = "h_v_Gy_BarCodeBill_CusList"; public string ModCaption = "客户标签列表"; public const string ModName = "3302"; public const string ModRightName = "Gy_CusBarCodeBillList"; public const string ModRightNameEdit = ModRightName + "_Edit"; //删除 public const string ModRightNameDelete = ModRightName + "_Delete"; //作废 public const string ModRightNamePrint = ModRightName + "_Print"; //打印 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); public int selectRow = 0; public int selectRow2 = 0; #region 固定代码 private void Gy_CusBarCodeBillList_Load(object sender, EventArgs e) { frmCondition = new frmBillQueryCondition_New(); this.Text = ModCaption; lblCaption.Text = ModCaption; initGrid(); } private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); } 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; } else { if (MessageBox.Show("确定要删除所选条码?删除后不能恢复,请谨慎操作!", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { string HItemID = ""; string HBarCode = ""; string[] NewBarCode; 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); NewBarCode = HBarCode.Split(Convert.ToChar("#")); oCn.BeginTran(); //批量删除条码 oCn.RunProc("Delete from Gy_BarCodeBill_Cus where HItemID in (" + HItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); //写入系统日志 for (int i = 0; i <= NewBarCode.Length - 1; i++) { oCn.RunProc("Insert into System_log (GeginDate, userid, WorkstationName, WorkList, SystemName, NetuserName, State) select GETDATE(),'" + DBUtility.ClsPub.CurUserName + "','" + DBUtility.ClsPub.ComputerName + "','删除条码:" + NewBarCode[i] + "','WMS系统-客户标签列表模块','" + DBUtility.ClsPub.IPAddress + "','删除'", ref DBUtility.ClsPub.sExeReturnInfo); } oCn.Commit(); MessageBox.Show("删除成功!", "提示"); Display(); } } } #endregion #region 打印设置 GridppReport Report; int CurRows = 0; string sBarCodeItemID = ""; //条码自增列 string HBarCodeType = ""; //条码类型 //预览 private void yl_Click(object sender, EventArgs e) { //打印预览权限 if (!DBUtility.ClsPub.Security_Log(ModRightNamePrint, 1, true, DBUtility.ClsPub.CurUserName)) { return; } //打印前判断条码是否超过允许可打印次数 if (ReportPrintBegin()) { 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.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()) { 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); Thread.Sleep(1000); } } //打印前判断条码是否超过允许可打印次数 private bool ReportPrintBegin() { 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(); if(HBarCodeType != "超聚变内标签" && DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.SelectedRows[i].Index].Cells[Fun_GetCol("条码类型")].Value)== "超聚变内标签") { HBarCodeType = "超聚变内标签"; } } sBarCodeItemID = sBarCodeItemID.Remove(0, 1); if (HBarCodeType == "超聚变内标签") { DataSet DS; DS = oCn.RunProcReturn("select top 1 1 from Gy_BarCodeBill_Cus with(nolock) where HPrintQty >=1 and HBarCodeType = '超聚变内标签' and HItemID in (" + sBarCodeItemID + ")", "Gy_BarCodeBill_Cus"); if (DS == null || DS.Tables[0].Rows.Count == 0) { return false; } else { return true; } } 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.PrintBegin += new _IGridppReportEvents_PrintBeginEventHandler(ReportPrintBegin2); 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 ReportPrintBegin2() { //打印前判断条码是否已打印过 if (ReportPrintBegin()) { MessageBox.Show("条码已打印,不允许再次打印!"); Report.AbortPrint(); } } //打印结束后回填条码打印次数 private void ReportPrintEnd() { 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); //更新 条码打印次数 oCn.RunProc("update Gy_BarCodeBill_Cus set HPrintQty=isnull(HPrintQty,0)+1 where HItemID in (" + sBarCodeItemID + ")", ref DBUtility.ClsPub.sExeReturnInfo); } #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 } }