using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Data.SqlClient;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Windows.Forms;
|
using System.Drawing.Printing;
|
using System.IO;
|
using HH.WMS.Client;
|
using Newtonsoft.Json;
|
using DevComponents.DotNetBar.Controls;
|
using System.Collections;
|
using Newtonsoft.Json.Linq;
|
using System.Net;
|
using System.Management;
|
using HH.WMS.Client.Common;
|
using HH.WMS.Entitys.Basic;
|
using HH.WMS.Entitys.Entitys.PrintDataSource;
|
using HH.WMS.Client.frm;
|
using HH.WMS.Entitys.Sys;
|
using DevComponents.DotNetBar;
|
using HH.WMS.Entitys.wxys;
|
|
|
namespace WindowsFormsApplication2
|
{
|
public partial class OrderPrintForWxys : frmTemplet
|
{
|
//全局变量
|
DataTable dt = new DataTable();
|
private string currentPrintOrder = "";
|
public OrderPrintForWxys()
|
{
|
InitializeComponent();
|
}
|
/// <summary>
|
/// 物料编码
|
/// </summary>
|
public bool isItems { get; set; }
|
|
private void ItemTagPrint_Load(object sender, EventArgs e)
|
{
|
dgvWaitPrintDg.AutoGenerateColumns = false;
|
PrintService();
|
GetOrder();
|
GetPrintCodeType();
|
setOrderType();
|
setWorkArea();
|
GetPrinter();
|
GetBarMode();
|
|
|
DevComponents.DotNetBar.ButtonItem btnItemSet = new DevComponents.DotNetBar.ButtonItem();
|
btnItemSet.Image = global::HH.WMS.Client.Properties.Resources.moban;
|
btnItemSet.ItemAlignment = DevComponents.DotNetBar.eItemAlignment.Center;
|
//btnItemHome.Name = "btnItemHome";
|
btnItemSet.PopupWidth = 100;
|
btnItemSet.Text = "设置";
|
btnItemSet.Click += btnItemSet_Click;
|
//btnItemSet.ItemAlignment = DevComponents.DotNetBar.eItemAlignment.Far;
|
this.AddMenu(btnItemSet);
|
}
|
|
void btnItemSet_Click(object sender, EventArgs e)
|
{
|
frmTempletSet from = new frmTempletSet();
|
from.ShowDialog();
|
}
|
|
|
//填充表格
|
public void BindData(string opNo)
|
{
|
dgvlist.Refresh();
|
string str = "";
|
var type = this.cmbOrderType.Text;
|
if (type == "入库单")
|
{
|
str = WebApiManager.HttpWMS_Get("/api/In/GetListInventoryDtl?opNo=" + opNo);
|
}
|
else if (type == "采购单")
|
{
|
str = WebApiManager.HttpWMS_Get("/api/In/GetInDtlList?opNo=" + opNo);
|
}
|
else if (type == "到货单")
|
{
|
str = WebApiManager.HttpWMS_Get("/api/Arrival/GetDtlList?opNo=" + opNo);
|
}
|
OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
dgvlist.AutoGenerateColumns = false;
|
|
this.dgvlist.DataSource = results.Data;
|
SetPrintQty();
|
}
|
|
#region 计算打印数量
|
public void SetPrintQty()
|
{
|
List<string> items = new List<string>();
|
foreach (DataGridViewRow r in this.dgvlist.Rows)
|
{
|
items.Add(r.Cells["CN_S_ITEM_CODE"].Value.ToString());
|
}
|
string str = WebApiManager.HttpWMS_Get("/api/Item/GetItemModels?itemCodes=" + string.Join(",", items));
|
OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
|
if (results.Status == ResultStatus.Success)
|
{
|
List<AutoBomItemEntity> itemlist = JsonConvert.DeserializeObject<List<AutoBomItemEntity>>(results.Data.ToString());
|
|
foreach (DataGridViewRow r in this.dgvlist.Rows)
|
{
|
AutoBomItemEntity item = itemlist.Find(x => x.CN_S_ITEM_CODE.Equals(r.Cells["CN_S_ITEM_CODE"].Value.ToString()));
|
if (item == null)
|
{
|
MessageBoxEx.Show("Mongo中未找到该物料!");
|
return;
|
}
|
if (item.CN_F_MIN_PACK_QTY == 0)
|
{
|
r.Cells["CN_F_MIN_PACK_QTY"].Value = Convert.ToInt16(r.Cells["CN_F_QUANTITY"].Value);
|
r.Cells["PrintQuantity"].Value = 1;
|
}
|
else
|
{
|
r.Cells["CN_F_MIN_PACK_QTY"].Value = item.CN_F_MIN_PACK_QTY;
|
r.Cells["PrintQuantity"].Value = Convert.ToInt16(Convert.ToInt16(r.Cells["CN_F_QUANTITY"].Value) / item.CN_F_MIN_PACK_QTY);
|
}
|
}
|
}
|
}
|
#endregion
|
|
//事件处理方法
|
void frm_TransfEvent(string value)
|
{
|
BindData(value);
|
}
|
/// <summary>
|
/// 绑定选择Item的数据源
|
/// </summary>
|
/// <param name="ds"></param>
|
public void GetItemlist(DataTable ds)
|
{
|
isItems = true;
|
dgvlist.Refresh();
|
dgvlist.AutoGenerateColumns = false;
|
ds.Columns.Add("PrintQuantity");
|
foreach (DataRow dr in ds.Rows)
|
dr["PrintQuantity"] = 1;
|
this.dgvlist.DataSource = ds; //results.Data;
|
|
}
|
|
#region 加载打印机
|
/// <summary>
|
/// 加载打印机
|
/// </summary>
|
public void GetPrinter()
|
{
|
PrintDocument print = new PrintDocument();
|
string sDefault = print.PrinterSettings.PrinterName;//默认打印机名
|
var printers = PrinterSettings.InstalledPrinters;//获取全部打印机
|
foreach (string sPrint in PrinterSettings.InstalledPrinters)//获取所有打印机名称
|
{
|
cmbPrinter.Items.Add(sPrint);
|
cmbPrinterList.Items.Add(sPrint);
|
locationPrinters.Items.Add(sPrint);
|
}
|
}
|
#endregion
|
|
//加载单据
|
public void GetOrder()
|
{
|
DataTable dt = new DataTable();
|
dt.Columns.Add("id", typeof(string));
|
dt.Columns.Add("name", typeof(string));
|
dt.Rows.Add("0", "--请选择--");
|
dt.Rows.Add("1", "入库单");
|
dt.Rows.Add("2", "采购单");
|
dt.Rows.Add("3", "到货单");
|
|
this.cmbOrderType.DataSource = dt;
|
this.cmbOrderType.ValueMember = "id";
|
this.cmbOrderType.DisplayMember = "name";
|
|
}
|
|
/// <summary>
|
/// 获取模板类型
|
/// </summary>
|
/// <history>[HanHe(yjl)] CREATED 2019/7/10</history>
|
private void GetPrintCodeType()
|
{
|
|
DataTable dt = new DataTable();
|
dt.Columns.Add("id", typeof(string));
|
dt.Columns.Add("name", typeof(string));
|
dt.Rows.Add("0", "--请选择--");
|
dt.Rows.Add("1", "货位码");
|
dt.Rows.Add("2", "托盘码");
|
dt.Rows.Add("3", "料箱码");
|
dt.Rows.Add("4", "指令批号");
|
dt.Rows.Add("5", "工单号");
|
this.cmbPrintCodeType.DataSource = dt;
|
this.cmbPrintCodeType.ValueMember = "id";
|
this.cmbPrintCodeType.DisplayMember = "name";
|
}
|
|
public void setOrderType()
|
{
|
DataTable dt = new DataTable();
|
dt.Columns.Add("id", typeof(string));
|
dt.Columns.Add("name", typeof(string));
|
//dt.Rows.Add("0", "--请选择--");
|
dt.Rows.Add("1", "产品入库单");
|
dt.Rows.Add("2", "生产领料单");
|
dt.Rows.Add("3", "退库单");
|
dt.Rows.Add("4", "其他出库单");
|
dt.Rows.Add("5", "其他入库单");
|
|
this.orderTypes.DataSource = dt;
|
this.orderTypes.ValueMember = "id";
|
this.orderTypes.DisplayMember = "name";
|
}
|
|
public void setWorkArea()
|
{
|
DataTable dt = new DataTable();
|
dt.Columns.Add("id", typeof(string));
|
dt.Columns.Add("name", typeof(string));
|
//JsonConvert.DeserializeObject(str, typeof(DataTable)) as DataTable;
|
string str = WebApiManager.HttpWMS_Get("/api/YuShouApi/GetDictionary?dictName=工作中心");
|
HH.WMS.Common.Log.Info("获取工作中心结果:", str);
|
dt = JsonConvert.DeserializeObject(str, typeof(DataTable)) as DataTable;
|
//dt.Rows.Add("1", "产品入库单");
|
//dt.Rows.Add("2", "生产领料单");
|
//dt.Rows.Add("3", "退库单");
|
//dt.Rows.Add("4", "其他出库单");
|
//dt.Rows.Add("5", "其他入库单");
|
|
this.cmbWorkArea.DataSource = dt;
|
this.cmbWorkArea.ValueMember = "NAME";
|
this.cmbWorkArea.DisplayMember = "NAME";
|
}
|
|
#region 获取bartender文件模版
|
/// <summary>
|
/// 获取bartender文件模版
|
/// </summary>
|
public void GetBarMode()
|
{
|
this.cmbBartender.Items.Clear();
|
|
string path = @"ActionReport/Template/";
|
DirectoryInfo root = new DirectoryInfo(path);
|
FileInfo[] files = root.GetFiles();
|
|
foreach (FileInfo m in files)
|
this.cmbBartender.Items.Add(m.Name);
|
|
|
|
//string str = WebApiManager.HttpWMS_Get("/api/PrintTemplet/GetPrintTemplet?ip=" + StaticUtil.Ip
|
// + "&mac=" + StaticUtil.Mac);
|
//OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
//if (results.Status == ResultStatus.Success)
|
//{
|
//List<TN_WM_PRINT_TEMPLETEntity> v = JsonConvert.DeserializeObject<List<TN_WM_PRINT_TEMPLETEntity>>(results.Data.ToString());
|
//this.cmbBartender.DataSource = v.FindAll(x => x.CN_S_TEMPLET_TYPE.Equals("物料标签") && x.CN_S_MAC.Equals(StaticUtil.Mac));
|
//this.cmbBartender.DisplayMember ="CN_S_TEMPLET_NAME";
|
//}
|
//else
|
//{
|
// MessageBoxEx.Show("打印模板加载失败!");
|
//}
|
}
|
#endregion
|
|
#region 打印
|
/// <summary>
|
/// 打印
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnPrint_Click(object sender, EventArgs e)
|
{
|
//组织打印信息
|
List<MONGO_PRINT_BARCODE> list = new List<MONGO_PRINT_BARCODE>();
|
dt = new DataTable();
|
if (this.dgvlist.Rows.Count == 0)
|
{
|
MessageBoxEx.Show("请选择打印信息!", "汉和信息");
|
return;
|
}
|
//if (string.IsNullOrEmpty(this.cmbBartender.Text))
|
//{
|
// MessageBoxEx.Show("请选择打印模版!", "汉和信息");
|
// return;
|
//}
|
TN_WM_B_STRATEGY_VALUEEntity strategy = StaticUtil.StrategyList.Find(x => x.CN_S_CODE.Equals("IsUseSNCode"));
|
string IsUseSNCode = "Y";
|
if (strategy != null)
|
IsUseSNCode = strategy.CN_S_VALUE;
|
|
DataTable printDt = new DataTable();
|
printDt.Columns.Add("ItemCode");
|
printDt.Columns.Add("ItemName");
|
printDt.Columns.Add("Model");
|
printDt.Columns.Add("Qty");
|
printDt.Columns.Add("Unit");
|
printDt.Columns.Add("FigureNo");
|
printDt.Columns.Add("UniqueCode");
|
|
for (int i = 0; i < dgvlist.Rows.Count; i++)
|
{
|
int printQuantity = Convert.ToInt32(dgvlist.Rows[i].Cells["PrintQuantity"].FormattedValue);
|
|
for (int j = 0; j < printQuantity; j++)
|
{
|
string itemCode = dgvlist.Rows[i].Cells["CN_S_ITEM_CODE"].Value.ToString();
|
decimal packQty = Convert.ToDecimal(dgvlist.Rows[i].Cells["CN_F_MIN_PACK_QTY"].Value);
|
//if (packQty == 0)
|
//{
|
// MessageBoxEx.Show("请维护最小包装数!");
|
// return;
|
//}
|
string uniqueCode = "";
|
if (IsUseSNCode == "Y")
|
{
|
//启用唯一码时生成 PAK唯一号
|
uniqueCode = Guid.NewGuid().ToString();
|
}
|
printDt.Rows.Add(
|
itemCode,
|
dgvlist.Rows[i].Cells["CN_S_ITEM_NAME"].Value,
|
dgvlist.Rows[i].Cells["CN_S_MODEL"].Value,
|
packQty,
|
dgvlist.Rows[i].Cells["CN_S_MEASURE_UNIT"].Value,
|
dgvlist.Rows[i].Cells["CN_S_FIGURE_NO"].Value,
|
uniqueCode);
|
|
list.Add(new MONGO_PRINT_BARCODE()
|
{
|
CN_S_IN_ORDER = currentPrintOrder,
|
CN_S_ITEM_CODE = itemCode,
|
CN_S_ITEM_NAME = dgvlist.Rows[i].Cells["CN_S_ITEM_NAME"].Value.ToString(),
|
CN_S_FIGURE_NO = dgvlist.Rows[i].Cells["CN_S_FIGURE_NO"].Value.ToString(),
|
CN_S_UNIQUE_CODE = uniqueCode,
|
//CN_S_PACKING_UNIT =
|
CN_F_PACKING_QTY = packQty,
|
CN_F_QUANTITY = packQty//.ToDecimal(dgvlist.Rows[i].Cells["CN_F_QUANTITY"].Value)
|
});
|
}
|
}
|
currPrintDS = printDt;
|
//var info = SysStrategyList.Where(x => (x["CN_S_STOCK_CODE"]).ToString() ==StaticUtil.StockCode && (x["CN_S_CODE"]).ToString() == "IsUseSNCode").ToArray();
|
//if (IsUseSNCode.Equals("Y"))
|
//{
|
// string str = WebApiManager.HttpWMS_Post("/api/PrintTag/PrintItemTag", JsonConvert.SerializeObject(list));
|
|
// OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
// if (results.Status == ResultStatus.Error)
|
// {
|
// MessageBoxEx.Show("打印失败", "合肥汉和");
|
// return;
|
// }
|
//}
|
OperateResult or = ArPrint(cmbPrinter.Text, "物料标签.rdlx", currPrintDS); //cmbBartender.Text
|
if (or.Status != ResultStatus.Success)
|
MessageBoxEx.Show(or.Msg);
|
else
|
MessageBoxEx.Show("打印成功!");
|
//ArPrint();
|
}
|
#endregion
|
|
#region 删除
|
/// <summary>
|
/// 删除
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnDelete_Click(object sender, EventArgs e)
|
{
|
if (this.dgvlist.SelectedRows.Count == 0)
|
{
|
MessageBoxEx.Show(this, "请选择需要删除的行!", "合肥汉和");
|
return;
|
}
|
|
DialogResult dr = MessageBoxEx.Show(this, "确定要删除选中行数据码?", "合肥汉和", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
|
if (dr == System.Windows.Forms.DialogResult.Yes)
|
{
|
for (int i = this.dgvlist.SelectedRows.Count; i > 0; i--)
|
{
|
dgvlist.Rows.RemoveAt(dgvlist.SelectedRows[i - 1].Index);
|
if (dgvlist.Rows.Count == 0)
|
btnSelectOne.Enabled = true;
|
}
|
}
|
}
|
#endregion
|
|
//新增
|
private void btnSelectOne_Click(object sender, EventArgs e)
|
{
|
ItemForm item = new ItemForm();
|
item.Text = "单品选择";
|
item.itemCodes += GetItemlist;
|
item.Show();
|
}
|
//弹出子窗体
|
private void btnSelect_Click(object sender, EventArgs e)
|
{
|
var fromtext = this.cmbOrderType.Text;
|
if (fromtext == "--请选择--")
|
{
|
MessageBoxEx.Show("请选择单据类型", "合肥汉和");
|
return;
|
}
|
if (fromtext == "入库单")
|
{
|
InFrom f2 = new InFrom();
|
f2.Text = fromtext;
|
//注册事件
|
f2.TransfEvent += frm_TransfEvent;
|
f2.ShowDialog();
|
}
|
else if (fromtext == "采购单")
|
{
|
InOrderFrom io = new InOrderFrom();
|
io.Text = fromtext;
|
//注册事件
|
io.TransfEvent += frm_TransfEvent;
|
io.ShowDialog();
|
}
|
else if (fromtext == "到货单")
|
{
|
ArrivalOrderForm ao = new ArrivalOrderForm();
|
ao.Text = fromtext;
|
ao.TransfEvent += frm_TransfEvent;
|
ao.ShowDialog();
|
}
|
}
|
|
private void dgvlist_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
|
{
|
for (int i = 0; i < this.dgvlist.Rows.Count; i++)
|
{
|
DataGridViewRow r = this.dgvlist.Rows[i];
|
r.HeaderCell.Value = string.Format("{0}", i + 1);
|
}
|
}
|
|
private void btnEmpty_Click(object sender, EventArgs e)
|
{
|
this.dgvlist.DataSource = null;
|
btnSelectOne.Enabled = true;
|
}
|
|
//设置默认值
|
private void dgvlist_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
|
{
|
e.Row.Cells["PrintQuantity"].Value = "1";
|
}
|
|
#region 打印
|
private DataTable currPrintDS;
|
private DataSet currPrintDataSet = new DataSet();
|
/// <summary>
|
/// 打印
|
/// </summary>
|
/// <param name="printer">打印机名</param>
|
/// <param name="templetName">打印模板</param>
|
/// <param name="dt">打印数据源</param>
|
private OperateResult ArPrint(string printer, string templetName, DataTable dt)
|
{
|
try
|
{
|
currPrintDS = dt;
|
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new System.IO.FileInfo(@"ActionReport/Template/" + templetName + ""));//打开模版
|
rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(SetPrintDataSource);
|
rpt.Document.Printer.PrinterName = printer;
|
//this.viewer1.LoadDocument(rpt.Document);
|
bool b = GrapeCity.ActiveReports.PrintExtension.Print(rpt.Document, false, false);
|
if (b)
|
return OperateResult.Succeed();
|
else
|
return OperateResult.Error("打印异常!");
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
|
private void SetPrintDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
|
{
|
args.Data = currPrintDS;
|
}
|
#endregion
|
|
#region 刷新模板
|
/// <summary>
|
/// 刷新模板
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnShuaxin_Click(object sender, EventArgs e)
|
{
|
//清除
|
GetBarMode();//从新加载
|
}
|
#endregion
|
|
#region 编辑格式限制
|
/// <summary>
|
/// 编辑格式限制
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
TextBox control;
|
private void dgvlist_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
|
{
|
if (e.Control.GetType().BaseType.Name == "TextBox")
|
{
|
control = new TextBox();
|
control = (TextBox)e.Control;
|
if (control.Text == "0") //需要限制输入数字的单元格
|
{
|
control.KeyPress += new KeyPressEventHandler(control_KeyPress);
|
}
|
else
|
{
|
//非数字类型单元格
|
control.Leave += new EventHandler(control_Leave);
|
}
|
}
|
}
|
|
void control_KeyPress(object sender, KeyPressEventArgs e)
|
{
|
//限制只能输入-9的数字,退格键,小数点和回车
|
//if (((int)e.KeyChar >= 48 && (int)e.KeyChar <= 57) || e.KeyChar == 13 || e.KeyChar == 8 || e.KeyChar == 46)
|
if (((int)e.KeyChar >= 48 && (int)e.KeyChar <= 57) || e.KeyChar == 13 || e.KeyChar == 8)
|
{
|
e.Handled = false;
|
}
|
else
|
{
|
e.Handled = true;
|
MessageBoxEx.Show("只能输入数字!");
|
}
|
}
|
void control_Leave(object sender, EventArgs e)
|
{
|
//如果需要限制字符串输入长度
|
//if (control.Text.Length != 11)
|
//{
|
// MessageBox.Show("只能为位!");
|
// control.Focus();
|
//}
|
}
|
#endregion
|
|
#region 后台打印服务
|
Timer GetTaskTimer;
|
/// <summary>
|
/// 后台打印服务
|
/// </summary>
|
private void PrintService()
|
{
|
GetTaskTimer = new Timer();
|
GetTaskTimer.Interval = 2000;
|
GetTaskTimer.Tick += GetTaskTimer_Tick;
|
GetTaskTimer.Start();
|
}
|
|
|
|
private void GetTaskTimer_Tick(object sender, EventArgs e)
|
{
|
GetPrintTask(true);
|
}
|
#endregion
|
|
#region 复选历史打印任务
|
/// <summary>
|
/// 复选历史打印任务
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cbkHistory_CheckedChanged(object sender, EventArgs e)
|
{
|
dtiStart.Visible = dtiEnd.Visible = lbl1.Visible = chkHistory.Checked;
|
}
|
#endregion
|
|
#region 补打任务
|
/// <summary>
|
/// 补打任务
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnRePrint_Click(object sender, EventArgs e)
|
{
|
try
|
{
|
if (dgvTask.SelectedRows.Count == 0)
|
{
|
MessageBoxEx.Show("请选择需要补打的行!");
|
return;
|
}
|
bool isOk = true;
|
foreach (DataGridViewRow m in dgvTask.SelectedRows)
|
{
|
string content = m.Cells["CN_S_CONTENT"].Value.ToString().Replace('<', '[').Replace('(', '{').Replace('\\', '\"').Replace(')', '}').Replace('>', ']');
|
currPrintDS = JsonConvert.DeserializeObject<DataTable>(content);
|
|
OperateResult or = ArPrint(m.Cells["CN_S_PRINTER"].Value.ToString().Replace('!', '\\'), m.Cells["CN_S_TEMPLET_NAME"].Value.ToString(), currPrintDS);
|
if (or.Status == ResultStatus.Success)
|
WebApiManager.HttpWMS_Get("/api/PrintTemplet/UpdatePrintFlag?guids=" + m.Cells["CN_GUID"].ToString());
|
else
|
{
|
m.Cells["columnRemark"].Value = or.Msg;
|
isOk = false;
|
}
|
}
|
if (!isOk)
|
{
|
MessageBoxEx.Show("打印失败,请查看备注!");
|
}
|
}
|
catch (Exception ex)
|
{
|
MessageBoxEx.Show(ex.Message);
|
}
|
}
|
#endregion
|
|
#region 搜索
|
/// <summary>
|
/// 搜索
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnSearch_Click(object sender, EventArgs e)
|
{
|
if (chkHistory.Checked && (dtiStart.Value.ToShortDateString().Equals("0001/1/1") || dtiEnd.Value.ToShortDateString().Equals("0001/1/1")))
|
{
|
MessageBoxEx.Show("请选择查找范围!");
|
return;
|
}
|
GetPrintTask(false);
|
}
|
#endregion
|
|
#region 获取打印任务
|
/// <summary>
|
/// 获取打印任务
|
/// </summary>
|
/// <param name="isPrint">是否自动打印</param>
|
private void GetPrintTask(bool isPrint)
|
{
|
string startDate = "", endDate = "";
|
if (chkHistory.Checked)
|
{
|
startDate = dtiStart.Value.ToShortDateString();
|
endDate = dtiEnd.Value.ToShortDateString();
|
}
|
string str = WebApiManager.HttpWMS_Get("/api/PrintTemplet/GetPrintTask?mac=" + StaticUtil.Mac + "&isHistory=" + (chkHistory.Checked ? "Y" : "N") + "&key=" + txtKey.Text + "&startDate=" + startDate + "&endDate=" + endDate);
|
|
OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
if (results.Status == ResultStatus.Error)
|
{
|
return;
|
}
|
if (!isPrint)
|
{
|
dgvTask.Rows.Clear();
|
}
|
if (!results.Data.ToString().Equals("[]"))
|
{
|
foreach (TN_WM_PRINT_TASKEntity m in JsonConvert.DeserializeObject<List<TN_WM_PRINT_TASKEntity>>(results.Data.ToString()))
|
{
|
bool b = true;
|
foreach (DataGridViewRow r in dgvTask.Rows)
|
{
|
if (r.Cells[0].Tag.ToString().Equals(m.CN_GUID))
|
{
|
b = false;
|
break;
|
}
|
}
|
if (!b)
|
continue;
|
if (!chkHistory.Checked)
|
{
|
DataGridViewRow row = new DataGridViewRow();
|
DataGridViewCheckBoxCell cell0 = new DataGridViewCheckBoxCell();
|
cell0.Tag = m.CN_GUID;
|
row.Cells.Add(cell0);
|
DataGridViewTextBoxCell cell1 = new DataGridViewTextBoxCell();
|
cell1.Value = m.CN_S_TEMPLET_TYPE.Trim();
|
row.Cells.Add(cell1);
|
DataGridViewTextBoxCell cell2 = new DataGridViewTextBoxCell();
|
cell2.Value = m.CN_S_TEMPLET_NAME.Trim();
|
row.Cells.Add(cell2);
|
DataGridViewTextBoxCell cell3 = new DataGridViewTextBoxCell();
|
cell3.Value = m.CN_S_PRINTER.Trim();
|
row.Cells.Add(cell3);
|
DataGridViewTextBoxCell cell5 = new DataGridViewTextBoxCell();
|
cell5.Value = m.CN_S_CONTENT.Trim();
|
row.Cells.Add(cell5);
|
DataGridViewTextBoxCell cell9 = new DataGridViewTextBoxCell();
|
cell9.Value = m.CN_T_CREATE;
|
row.Cells.Add(cell9);
|
DataGridViewTextBoxCell cell8 = new DataGridViewTextBoxCell();
|
cell8.Value = m.CN_C_IS_PRINTED.Trim();
|
row.Cells.Add(cell8);
|
dgvTask.Rows.Add(row);
|
}
|
if (isPrint)
|
{
|
m.CN_S_CONTENT = m.CN_S_CONTENT.Replace('<', '[').Replace('(', '{').Replace('\\', '\"').Replace(')', '}').Replace('>', ']');
|
currPrintDS = JsonConvert.DeserializeObject<DataTable>(m.CN_S_CONTENT);
|
|
OperateResult or = ArPrint(m.CN_S_PRINTER.Replace('!', '\\'), m.CN_S_TEMPLET_NAME, currPrintDS);
|
if (or.Status == ResultStatus.Success)
|
{
|
string strResult = WebApiManager.HttpWMS_Get("/api/PrintTemplet/UpdatePrintFlag?guids=" + m.CN_GUID.Trim());
|
or = JsonConvert.DeserializeObject<OperateResult>(strResult);
|
if (or.Status == ResultStatus.Success)
|
{
|
//清除已打印的任务
|
foreach (DataGridViewRow r in dgvTask.Rows)
|
{
|
if (r.Cells[0].Tag.ToString().Trim().Equals(m.CN_GUID.Trim()))
|
{
|
dgvTask.Rows.Remove(r);
|
break;
|
}
|
}
|
}
|
else
|
{
|
foreach (DataGridViewRow r in dgvTask.Rows)
|
{
|
if (r.Cells[0].Tag.ToString().Trim().Equals(m.CN_GUID.Trim()))
|
{
|
r.Cells["columnRemark"].Value = or.Msg;
|
break;
|
}
|
}
|
}
|
}
|
else
|
{
|
foreach (DataGridViewRow r in dgvTask.Rows)
|
{
|
if (r.Cells[0].Tag.ToString().Trim().Equals(m.CN_GUID.Trim()))
|
{
|
r.Cells["columnRemark"].Value = or.Msg;
|
break;
|
}
|
}
|
}
|
}
|
}
|
}
|
}
|
#endregion
|
|
#region 选择打印机模板
|
/// <summary>
|
/// 选择打印机模板
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void cmbBartender_SelectedValueChanged(object sender, EventArgs e)
|
{
|
if (cmbBartender.SelectedValue != null)
|
{
|
string printer = cmbBartender.SelectedValue.ToString().Replace('!', '\\');
|
cmbPrinter.SelectedIndex = cmbPrinter.Items.IndexOf(printer);
|
}
|
}
|
#endregion
|
|
#region 刷新未完全打印的入库单
|
/// <summary>
|
/// 刷新未完全打印的入库单
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void btnRef_Click(object sender, EventArgs e)
|
{
|
GetOrderData();
|
}
|
|
private void GetOrderData()
|
{
|
var startTime = dateTimeStart.Text;
|
var endTime = dateTimeEnd.Text;
|
if (!string.IsNullOrEmpty(startTime))
|
{
|
startTime = Convert.ToDateTime(startTime).ToString("yyyy-MM-dd");
|
}
|
if (!string.IsNullOrEmpty(endTime))
|
{
|
endTime = Convert.ToDateTime(endTime).ToString("yyyy-MM-dd");
|
}
|
var trayCode = tbTrayCode.Text;
|
|
var searchModel = new
|
{
|
TokenId = "",
|
PageIndex = "",
|
PageSize = "",
|
SearchCondition = new
|
{
|
CN_S_STOCK_CODE = "",
|
CN_S_STOCK_AREA = "",
|
CN_S_LOCATION_CODE = "",
|
CN_S_ITEM_CODE = "",
|
CN_S_ITEM_NAME = "",
|
CN_S_MODEL = "",
|
CN_S_PRODUCTION_BATCH = "",
|
CN_S_OP_NO = "",
|
CN_S_OWNER = "",
|
CN_T_START = startTime,//!string.IsNullOrEmpty(valueDate) ? date[0] : "",
|
CN_T_END = endTime,//!string.IsNullOrEmpty(valueDate) ? date[1] : "",
|
CN_S_TRAY_CODE = trayCode,
|
CN_S_ORDER_TYPE = orderTypes.Text,
|
CN_S_ORDER_NO = tbOrderNo.Text
|
}
|
};
|
string strResult = WebApiManager.HttpWMS_Post("api/YuShouApi/GetPrintData", JsonConvert.SerializeObject(searchModel));
|
OperateResult or = JsonConvert.DeserializeObject<OperateResult>(strResult);
|
if (or.Status == ResultStatus.Success)
|
{
|
//JsonConvert.DeserializeObject<List<TN_WM_PRINT_TASKEntity>>(results.Data.ToString())
|
dgvWaitPrintDg.DataSource = or.Data;
|
}
|
else
|
{
|
MessageBoxEx.Show(or.Msg);
|
}
|
}
|
#endregion
|
|
|
private void dgvWaitPrintDg_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
{
|
//if (e.ColumnIndex == 0)
|
//{
|
// string opNo = dgvWaitPrintDg.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
|
// string str = WebApiManager.HttpWMS_Get("/api/In/GetListInventoryDtl?opNo=" + opNo);
|
// OperateResult results = JsonConvert.DeserializeObject<OperateResult>(str);
|
// if (results.Status == ResultStatus.Success)
|
// {
|
// tabControl1.SelectedTabIndex = 1;
|
// btnSelectOne.Enabled = false;
|
// currentPrintOrder = opNo;
|
|
// dgvlist.AutoGenerateColumns = false;
|
// this.dgvlist.DataSource = results.Data;
|
// SetPrintQty();
|
|
// colPrintedQty.Visible = true;
|
// }
|
//}
|
}
|
|
private void labelX1_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
private void cmbOrderType_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
|
}
|
|
private void orderTypes_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
|
}
|
|
private DataTable GetCheck()
|
{
|
if (dgvWaitPrintDg.Rows.Count > 0)
|
{
|
string str = "[";
|
for (int i = 0; i < dgvWaitPrintDg.Rows.Count; i++)
|
{
|
string selectValue = dgvWaitPrintDg.Rows[i].Cells["CN_S_SELECT"].EditedFormattedValue.ToString();
|
if (selectValue == "True")
|
{
|
str += (this.dgvWaitPrintDg.Rows[i].DataBoundItem.ToString() + ",");
|
}
|
}
|
if (str.Length > 1)
|
{
|
str = str.Substring(0, str.Length - 1) + "]";
|
currentTable = JsonConvert.DeserializeObject(str, typeof(DataTable)) as DataTable;
|
}
|
|
}
|
return currentTable;
|
}
|
|
private void buttonX1_Click(object sender, EventArgs e)
|
{
|
try
|
{
|
if (string.IsNullOrEmpty(cmbPrinterList.Text))
|
{
|
MessageBoxEx.Show("请先选择打印机!");
|
return;
|
}
|
//var text = GetCheck();
|
//var data = dgvWaitPrintDg.SelectedRows;
|
List<string> rowstr = new List<string>();
|
|
//string str = "[";
|
//foreach (DataGridViewRow i in data)
|
//{
|
// str += (i.DataBoundItem.ToString() + ",");
|
//}
|
//str = str.Substring(0, str.Length - 1) + "]";
|
|
var billType = "";
|
var ruleName = "";
|
var workCenter = cmbWorkArea.Text;
|
|
if (orderTypes.Text.Equals("产品入库单"))
|
{
|
billType = "产品入库";
|
ruleName = "产品入库单号";
|
}
|
else if (orderTypes.Text.Equals("生产领料单"))
|
{
|
billType = "";
|
ruleName = "生产领料单号";
|
}
|
else if (orderTypes.Text.Equals("退库单"))
|
{
|
billType = "";
|
ruleName = "退库单号";
|
}
|
else if (orderTypes.Text.Equals("其他出库单"))
|
{
|
billType = "其他出库单(通用)";
|
ruleName = "其他出库单号";
|
}
|
else if (orderTypes.Text.Equals("其他入库单"))
|
{
|
billType = "其他入库单(通用)";
|
ruleName = "其他入库单号";
|
}
|
|
currPrintDataSet.Tables.Clear();
|
DataTable DataSet_DTL = GetCheck(); //JsonConvert.DeserializeObject(str, typeof(DataTable)) as DataTable;
|
if (DataSet_DTL.Rows.Count <= 0)
|
{
|
MessageBoxEx.Show("未选中数据,请至少打印一行!");
|
return;
|
}
|
DataSet_DTL.TableName = "DataSet_DTL";
|
DataSet_DTL.Columns["CN_N_ROW_NO"].ReadOnly = false;
|
DataSet_DTL.Columns.Add("CN_S_WEIGHT", Type.GetType("System.String"));
|
|
//var guids = "";
|
var selectedOrderNo = "";
|
var orderPrints = new List<SetOrderPrintEntity>();
|
var allowResult = OrderPrintHelper.AllowPrintByOrderNo(DataSet_DTL);
|
if (allowResult.Success)
|
{
|
selectedOrderNo = allowResult.Message;
|
}
|
else
|
{
|
MessageBoxEx.Show(allowResult.Message);
|
return;
|
}
|
|
var index = 1;
|
foreach (DataRow row in DataSet_DTL.Rows)
|
{
|
row["CN_F_ALL_QTY"] = FormatMoney((Convert.ToInt32(Convert.ToDecimal(row["CN_F_PACKING_QTY"]))).ToString());
|
row["CN_S_WEIGHT"] = row["CN_F_QUANTITY"].ToString();
|
row["CN_N_ROW_NO"] = index.ToString();
|
index++;
|
orderPrints.Add(new SetOrderPrintEntity{
|
CN_S_ITEM_CODE = row["CN_S_ITEM_CODE"].ToString(),
|
CN_S_LOCATION_CODE = row["CN_S_LOCATION_CODE"].ToString(),
|
CN_S_LOT_NO = row["CN_S_LOT_NO"].ToString(),
|
CN_S_FIGURE_NO = row["CN_S_FIGURE_NO"].ToString()
|
});
|
if (orderTypes.Text.Equals("产品入库单"))
|
{
|
row["CN_S_ITEM_CODE"] = row["CN_S_ITEM_CODE"].ToString() + row["CN_S_ITEM_NAME"].ToString();
|
}
|
}
|
currPrintDataSet.Tables.Add(DataSet_DTL);
|
|
string orderNo = "";
|
if (string.IsNullOrEmpty(selectedOrderNo))
|
{
|
orderNo = WebApiManager.HttpWMS_Get("/api/YuShouApi/GetBillNo?ruleName=" + ruleName);
|
if (!string.IsNullOrEmpty(orderNo))
|
orderNo = orderNo.Substring(3, orderNo.Length - 3);
|
if(!string.IsNullOrEmpty(DataSet_DTL.Rows[0]["CN_S_PRODUCTION_BATCH"].ToString()))
|
{
|
workCenter = DataSet_DTL.Rows[0]["CN_S_PRODUCTION_BATCH"].ToString();
|
}
|
var reuslt = WebApiManager.HttpWMS_Post("/api/YuShouApi/SetPrintNo", JsonConvert.SerializeObject(new
|
{
|
orderNo,
|
orderType = orderTypes.Text,
|
userName = StaticUtil.User.userName,
|
workCenter = workCenter,
|
setOrderPrints = orderPrints
|
}));
|
OperateResult result = JsonConvert.DeserializeObject<OperateResult>(reuslt);
|
if (!result.Success)
|
{
|
MessageBoxEx.Show("打印失败!原因:" + result.Msg);
|
}
|
}
|
else
|
{
|
orderNo = selectedOrderNo;
|
workCenter = DataSet_DTL.Rows[0]["CN_S_PRODUCTION_BATCH"].ToString();
|
}
|
|
DataTable DataSet_MST = new DataTable();
|
DataSet_MST.TableName = "DataSet_MST";
|
DataSet_MST.Columns.Add("WorkCenter"); //工作中心
|
DataSet_MST.Columns.Add("BillType"); //凭证性质
|
DataSet_MST.Columns.Add("BillNo"); //单据号
|
DataSet_MST.Columns.Add("BillDate"); //单据日期
|
DataSet_MST.Columns.Add("Remark"); //备注
|
DataSet_MST.Columns.Add("BillCreator"); //制单
|
DataSet_MST.Columns.Add("BillOperator");//经办
|
DataSet_MST.Columns.Add("BillReceiver");//签收人
|
DataSet_MST.Rows.Add(
|
workCenter,
|
billType,
|
orderNo,
|
DateTime.Now.ToString("yyyy-MM-dd"),
|
"备注:",
|
"制单:" + StaticUtil.User.userName,
|
"经办:",
|
"签收人:"
|
);
|
currPrintDataSet.Tables.Add(DataSet_MST);
|
OperateResult printResult = PrintMultiSource(cmbPrinterList.Text, orderTypes.Text + "模板.rdlx");
|
if (printResult.Success)
|
{
|
MessageBoxEx.Show("打印成功!");
|
}
|
else
|
{
|
MessageBoxEx.Show(printResult.Msg);
|
}
|
GetOrderData();
|
|
}
|
catch (Exception ex)
|
{
|
MessageBoxEx.Show("打印失败!" + ex.Message);
|
}
|
}
|
|
private void cmbBartender_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
|
}
|
|
#region C/S端 处理多个数据源
|
|
private OperateResult PrintMultiSource(string printer, string templetName)
|
{
|
try
|
{
|
string path = Application.StartupPath + "/ActionReport/Template/" + templetName;
|
GrapeCity.ActiveReports.PageReport rpt = new GrapeCity.ActiveReports.PageReport(new FileInfo(path));//打开模版
|
rpt.Document.LocateDataSource += new GrapeCity.ActiveReports.LocateDataSourceEventHandler(SetMultiPrintDataSource);
|
rpt.Document.Printer.PrinterName = printer;
|
//this.viewer1.LoadDocument(rpt.Document);
|
|
//rpt.Report.PaperOrientation = GrapeCity.ActiveReports.PageReportModel.PaperOrientation.Portrait;//Landscape;//Portrait;
|
bool b = GrapeCity.ActiveReports.PrintExtension.Print(rpt.Document, false, false);
|
if (b)
|
return OperateResult.Succeed();
|
else
|
return OperateResult.Error("打印异常!");
|
}
|
catch (Exception ex)
|
{
|
return OperateResult.Error(ex.Message);
|
}
|
}
|
|
/// <summary>
|
/// C/S端 处理多个数据源
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="args"></param>
|
/// <history>[HanHe(yjl)] CREATED 2019/6/18</history>
|
private void SetMultiPrintDataSource(object sender, GrapeCity.ActiveReports.LocateDataSourceEventArgs args)
|
{
|
if (args.DataSourceName == "DataSource" || args.DataSourceName == "OutFormOrderDS" || args.DataSourceName == "SortingDataSource")
|
{
|
if (args.DataSetName == "DataSet_MST")
|
{
|
args.Data = currPrintDataSet.Tables["DataSet_MST"];
|
}
|
else if (args.DataSetName == "DataSet_DTL")
|
{
|
args.Data = currPrintDataSet.Tables["DataSet_DTL"];
|
}
|
else
|
{
|
args.Data = currPrintDS;
|
}
|
}
|
|
}
|
#endregion
|
|
private void labelX4_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
private void cmbPrinter_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
|
}
|
|
private void cmbPrinterList_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
|
}
|
|
private void PrintCodePager_Load(object sender, EventArgs e)
|
{
|
|
}
|
|
private int PrintCodePage_Paging(WindowsApp.MyControl.EventPagingArg e)
|
{
|
if (tabControl1.SelectedTabIndex != 1)
|
return 0;
|
int totalRows = 0;
|
|
try
|
{
|
string opr = BindPrintCodeSource();
|
OperateResult op = JsonConvert.DeserializeObject<OperateResult>(opr);
|
if (op.Status == ResultStatus.Error)
|
{
|
// ShowMessage(op.Msg, MsgType.Error);
|
return 0;
|
}
|
DataTable dt = new DataTable();
|
JObject joct = (JObject)JsonConvert.DeserializeObject(op.Data.ToString());
|
totalRows = Convert.ToInt32(joct["total"] ?? 0);
|
dt = JsonConvert.DeserializeObject<DataTable>(joct["rows"].ToString());
|
WindowsApp.MyControl.PageData pageData = new WindowsApp.MyControl.PageData();
|
pageData.PageIndex = this.PrintCodePager.PageCurrent;
|
pageData.PageSize = this.PrintCodePager.PageSize;
|
this.PrintCodePager.bindingSource.DataSource = dt;
|
this.PrintCodePager.bindingNavigator.BindingSource = PrintCodePager.bindingSource;
|
dgvPrintCode.DataSource = null;
|
dgvPrintCode.AutoGenerateColumns = false;
|
dgvPrintCode.DataSource = this.PrintCodePager.bindingSource;
|
}
|
catch (Exception)
|
{
|
|
}
|
return totalRows;
|
|
//return 0;
|
}
|
|
private string BindPrintCodeSource()
|
{
|
int pageIndex = this.PrintCodePager.PageCurrent == 0 ? 1 : this.PrintCodePager.PageCurrent;
|
int pageSize = this.PrintCodePager.PageSize;
|
if (cmbPrintCodeType.Text == "托盘码")
|
{
|
labelSearchName.Text = "托盘码:";
|
var searchModel = new
|
{
|
TokenId = StaticUtil.TokenId,
|
PageIndex = pageIndex,
|
PageSize = pageSize,
|
SearchCondition = new
|
{
|
CN_S_TRAY_CODE = tbLocationContent.Text.Trim(),
|
CN_S_TRAY_TYPE = "托盘"
|
//CN_S_SPEC = cmbSpec.Text.Trim()
|
}
|
};
|
string opr = WebApiManager.HttpWMS_Post("Api/YuShouApi/GetTrayList", JsonConvert.SerializeObject(searchModel));
|
return opr;
|
}
|
else if (cmbPrintCodeType.Text == "货位码")
|
{
|
labelSearchName.Text = "货位码:";
|
string opr = WebApiManager.HttpWMS_Get("Api/YuShouApi/GetLocationList?areaCode=" //+ cmbStockArea.SelectedValue
|
+ "&roadWay=" //+ txtRoadWay.Text.Trim()
|
+ "&row=" //+ txtRow.Text.Trim()
|
+ "&PageIndex=" + pageIndex
|
+ "&pageSize=" + pageSize
|
+ "&locationNo=" + tbLocationContent.Text.Trim());//+ txtLocationNo.Text.Trim());
|
|
return opr;
|
}
|
else if (cmbPrintCodeType.Text == "料箱码")
|
{
|
labelSearchName.Text = "料箱码:";
|
var searchModel = new
|
{
|
TokenId = StaticUtil.TokenId,
|
PageIndex = pageIndex,
|
PageSize = pageSize,
|
SearchCondition = new
|
{
|
CN_S_TRAY_CODE = tbLocationContent.Text.Trim(),
|
CN_S_TRAY_TYPE = "料箱"
|
//CN_S_SPEC = cmbSpec.Text.Trim()
|
}
|
};
|
//string opr = WebApiManager.HttpWMS_Get("Api/YuShouApi/GetBoxingList?PageIndex=" + pageIndex
|
// + "&pageSize=" + pageSize);//+ txtLocationNo.Text.Trim());
|
string opr = WebApiManager.HttpWMS_Post("Api/YuShouApi/GetTrayList", JsonConvert.SerializeObject(searchModel));
|
|
return opr;
|
}
|
else if (cmbPrintCodeType.Text == "指令批号")
|
{
|
labelSearchName.Text = "指令批号:";
|
}
|
else if (cmbPrintCodeType.Text == "工单号")
|
{
|
labelSearchName.Text = "工单号:";
|
}
|
else
|
{
|
labelSearchName.Text = "内容:";
|
return JsonConvert.SerializeObject(OperateResult.Error("", null));
|
}
|
return JsonConvert.SerializeObject(OperateResult.Succeed());
|
}
|
|
/// <summary>
|
/// 切换打印码类型 加载对应列表
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
/// <history>[HanHe(yjl)] CREATED 2019/7/10</history>
|
private void ChangePrintTypeCode_Click(object sender, EventArgs e)
|
{
|
DynamicBindTemplate();
|
GenerateColumnList();
|
if (cmbPrintCodeType.Text != "其他码")
|
{
|
InvokePager();
|
}
|
}
|
|
private void DynamicBindTemplate()
|
{
|
//cmbPrintTemplate.DataSource = null;
|
//string str = WebApiManager.HttpWMS_Get("api/Common/GetPrintTypeTemplet?stockCode=" + StaticUtil.StockCode + "&templetType=" + cmbPrintCodeType.Text.ToString() + "&printer=" + cmbPrinterOne.Text + "&logistics=" + string.Empty);
|
//OperateResult op = JsonConvert.DeserializeObject<OperateResult>(str);
|
//if (op.Data != null)
|
//{
|
// DataTable dt = JsonConvert.DeserializeObject<DataTable>(op.Data.ToString());
|
// cmbPrintTemplate.DisplayMember = "CN_S_TEMPLET_NAME";
|
// cmbPrintTemplate.ValueMember = "CN_S_TEMPLET_NAME";
|
// cmbPrintTemplate.DataSource = dt;
|
//}
|
}
|
|
private void GenerateColumnList(string radioContent = "")
|
{
|
|
Dictionary<string, string> columnLst = new Dictionary<string, string>();
|
if (tabControl1.SelectedTabIndex == 1)
|
{
|
dgvPrintCode.Columns.Clear();
|
ControlLayOut();
|
if (cmbPrintCodeType.Text == "货位码")
|
{
|
columnLst = new Dictionary<string, string>()
|
{
|
{"货位编码", "CN_S_LOCATION_CODE"}, {"所属库区", "CN_S_AREA_CODE"},
|
{"所属巷道", "CN_S_ROADWAY"}, {"排", "CN_S_ROW"},
|
{"列", "CN_S_COL"}, {"层", "CN_S_FLOOR"}
|
};
|
}
|
else if (cmbPrintCodeType.Text == "托盘码")
|
{
|
columnLst = new Dictionary<string, string>()
|
{
|
{"容器编号", "CN_S_TRAY_CODE"}, {"容器类型", "CN_S_TRAY_TYPE"}, {"容器规格", "CN_S_SPEC"},
|
{"分格行数", "CN_N_ROW_NUM"},
|
{"分格列数", "CN_N_COLUMN_NUM"}, {"载重", "CN_F_LOADBEARING"}, {"自重", "CN_F_GROSSWEIGHT"}
|
};
|
}
|
else if (cmbPrintCodeType.Text == "料箱码")
|
{
|
columnLst = new Dictionary<string, string>()
|
{
|
{"容器编号", "CN_S_TRAY_CODE"}, {"容器类型", "CN_S_TRAY_TYPE"}, {"容器规格", "CN_S_SPEC"},
|
{"分格行数", "CN_N_ROW_NUM"},
|
{"分格列数", "CN_N_COLUMN_NUM"}, {"载重", "CN_F_LOADBEARING"}, {"自重", "CN_F_GROSSWEIGHT"}
|
};
|
//columnLst = new Dictionary<string, string>()
|
//{
|
// {"料箱码", "CN_S_UNIQUE_CODE"}, {"指令批号", "CN_S_LOT_NO"}, {"物料编码", "CN_S_ITEM_CODE"},
|
// {"物料名称", "CN_S_ITEM_NAME"},
|
// {"工单号", "CN_S_FIGURE_NO"}
|
//};
|
}
|
else if (cmbPrintCodeType.Text == "其他码")
|
{
|
columnLst = new Dictionary<string, string>()
|
{
|
{"码值", "PRINT_CODE_VALUE"}
|
};
|
DataTable dt = new DataTable();
|
//AddNewRow(dt);
|
}
|
else
|
{
|
dgvPrintCode.DataSource = null;
|
}
|
}
|
|
CycleColumnList(columnLst);
|
}
|
|
private void ControlLayOut()
|
{
|
if (cmbPrintCodeType.Text == "货位码")
|
{
|
|
}
|
else if (cmbPrintCodeType.Text == "托盘码")
|
{
|
|
}
|
else if (cmbPrintCodeType.Text == "其他码")
|
{
|
|
|
}
|
else
|
{
|
|
}
|
}
|
|
private void CycleColumnList(Dictionary<string, string> dicList)
|
{
|
if (tabControl1.SelectedTabIndex == 1)
|
{
|
dgvPrintCode.Columns.Clear();
|
System.Windows.Forms.DataGridViewCheckBoxColumn Column1;
|
Column1 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
|
this.dgvPrintCode.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
|
Column1.HeaderText = "全选";
|
Column1.Name = "Column1";
|
Column1.ReadOnly = false;
|
Column1.Width = 62;
|
this.dgvPrintCode.Columns.Add(Column1);
|
foreach (var item in dicList)
|
{
|
DataGridViewTextBoxColumn printColumn = new DataGridViewTextBoxColumn();
|
printColumn.HeaderText = item.Key;
|
printColumn.DataPropertyName = item.Value;
|
printColumn.Width = SetColumnWidth(1, item.Key);
|
if (cmbPrintCodeType.Text != "其他码")
|
{
|
printColumn.ReadOnly = true;
|
}
|
else
|
{
|
printColumn.Width = 1800;
|
printColumn.ReadOnly = false;
|
}
|
|
dgvPrintCode.Columns.Add(printColumn);
|
}
|
}
|
|
|
}
|
|
private int SetColumnWidth(int type, string columnName)
|
{
|
int width;
|
if (type == 2) //加此参数作用见上 此外每个tab里面多个子选项卡是公用宽度的
|
{
|
switch (columnName)
|
{
|
case "唯一码": width = 254; break;
|
case "物料编码": width = 254; break;
|
case "物料名称": width = 236; break;
|
case "规格型号": width = 257; break;
|
case "包装单位": width = 133; break;
|
case "包装数量": width = 133; break;
|
case "总数量": width = 109; break;
|
case "计量单位": width = 133; break;
|
case "图号": width = 254; break;
|
case "到货批次": width = 176; break;
|
case "生产批次": width = 236; break;
|
case "份数": width = 109; break;
|
default: width = 176; break;
|
}
|
}
|
else
|
{
|
switch (columnName)
|
{
|
case "货位编码": width = 266; break;
|
case "所属库区": width = 266; break;
|
case "所属巷道": width = 220; break;
|
case "排": width = 176; break;
|
case "列": width = 176; break;
|
case "层": width = 176; break;
|
case "容器编号": width = 223; break;
|
case "容器类型": width = 188; break;
|
case "容器规格": width = 293; break;
|
default: width = 142; break;
|
}
|
}
|
|
return width;
|
}
|
|
private void InvokePager()
|
{
|
this.PrintCodePager.PageCurrent = 1;
|
this.PrintCodePager.GetComboxPageSize();
|
this.PrintCodePager.Bind();
|
}
|
|
private void labelX9_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
#region 打印货位、托盘、其他
|
//cmbPrintCodeType 打码类型
|
private DataTable currentTable = new DataTable();
|
|
private void btnLocationPrint_Click(object sender, EventArgs e)
|
{
|
if (string.IsNullOrEmpty(locationPrinters.Text))
|
{
|
MessageBoxEx.Show("请先选择打印机!");
|
return;
|
}
|
|
currentTable = new DataTable();
|
|
var printType = cmbPrintCodeType.Text; //打码类型
|
if (printType.Equals("指令批号"))
|
{
|
currentTable.Columns.Add("OrderNo", Type.GetType("System.String"));
|
DataRow dr = currentTable.NewRow();
|
dr["OrderNo"] = "ZLPH" + tbLocationContent.Text;
|
currentTable.Rows.Add(dr);
|
}
|
else if (printType.Equals("工单号"))
|
{
|
currentTable.Columns.Add("OrderNo", Type.GetType("System.String"));
|
DataRow dr = currentTable.NewRow();
|
dr["OrderNo"] = "GDH" + tbLocationContent.Text;
|
currentTable.Rows.Add(dr);
|
}
|
else if (printType.Equals("托盘码") || printType.Equals("货位码") || printType.Equals("料箱码"))
|
{
|
DataTable dt = IsCheck();
|
if (dt.Rows.Count == 0)
|
{
|
//btnPrintCode.Enabled = true;
|
MessageBoxEx.Show("请勾选要打印的信息!");
|
return;
|
}
|
|
currentTable = dt;
|
//DataRow dr = currentTable.NewRow();
|
//dr["OrderNo"] = "GDH" + tbLocationContent.Text;
|
//currentTable.Rows.Add(dr);
|
}
|
|
OperateResult or = ArPrint(locationPrinters.Text, printType + "模板.rdlx", currentTable);
|
if (or.Status != ResultStatus.Success)
|
{
|
btnPrint.Enabled = true;
|
MessageBoxEx.Show(or.Msg);
|
}
|
else
|
{
|
MessageBoxEx.Show("打印成功!");
|
btnPrint.Enabled = true;
|
}
|
}
|
|
private DataTable IsCheck()
|
{
|
bool isFirstInitial = true;
|
if (dgvPrintCode.Rows.Count > 0)
|
{
|
for (int i = 0; i < dgvPrintCode.Rows.Count; i++)
|
{
|
string selectValue = dgvPrintCode.Rows[i].Cells["Column1"].EditedFormattedValue.ToString();
|
if (selectValue == "True")
|
{
|
DataRow dr = currentTable.NewRow();
|
dr = (this.dgvPrintCode.Rows[i].DataBoundItem as DataRowView).Row;
|
if (isFirstInitial)
|
{
|
currentTable = dr.Table.Clone();
|
isFirstInitial = false;
|
}
|
currentTable.Rows.Add(dr.ItemArray);
|
}
|
}
|
}
|
return currentTable;
|
}
|
|
#endregion
|
|
private void btnOrderCancel_Click(object sender, EventArgs e)
|
{
|
|
var orderNo = tbOrderNo.Text;
|
var orderType = orderTypes.Text;
|
if (string.IsNullOrEmpty(orderNo))
|
{
|
MessageBoxEx.Show("请先填写单据号!");
|
return;
|
}
|
|
var reuslt = WebApiManager.HttpWMS_Get("/api/YuShouApi/CancelPrintNo?orderNo=" + orderNo + "&orderType=" + orderType, "");
|
OperateResult result = JsonConvert.DeserializeObject<OperateResult>(reuslt);
|
if (result.Success)
|
{
|
MessageBoxEx.Show("单据号:" + orderNo + "取消成功!");
|
tbOrderNo.Text = "";
|
btnRef_Click(sender, e);
|
}
|
else
|
{
|
MessageBoxEx.Show("取消失败!" + result.Msg);
|
}
|
}
|
|
protected string FormatMoney(string money)
|
{
|
//处理带有负号情况
|
int negNumber = money.IndexOf("-");
|
string prefix = string.Empty;
|
if (negNumber != -1)
|
{
|
prefix = "-";
|
money = money.Substring(1);
|
}
|
//处理有小数位情况
|
int decNumber = money.IndexOf(".");
|
string postfix = string.Empty;
|
if (decNumber != -1)
|
{
|
postfix = money.Substring(decNumber);
|
money = money.Substring(0, decNumber - 1);
|
}
|
//开始添加”,“号
|
if (money.Length > 3)
|
{
|
string str1 = money.Substring(0, money.Length - 3);
|
string str2 = money.Substring(money.Length - 3, 3);
|
if (str1.Length > 3)
|
{
|
return prefix + FormatMoney(str1) + "," + str2 + postfix;
|
}
|
else
|
{
|
return prefix + str1 + "," + str2 + postfix;
|
}
|
}
|
else
|
{
|
return prefix + money + postfix;
|
}
|
}
|
|
private void buttonX2_Click(object sender, EventArgs e)
|
{
|
string opr = BindPrintCodeSource();
|
OperateResult op = JsonConvert.DeserializeObject<OperateResult>(opr);
|
if (op.Status == ResultStatus.Error)
|
{
|
// ShowMessage(op.Msg, MsgType.Error);
|
return ;
|
}
|
DataTable dt = new DataTable();
|
JObject joct = (JObject)JsonConvert.DeserializeObject(op.Data.ToString());
|
dt = JsonConvert.DeserializeObject<DataTable>(joct["rows"].ToString());
|
WindowsApp.MyControl.PageData pageData = new WindowsApp.MyControl.PageData();
|
pageData.PageIndex = this.PrintCodePager.PageCurrent;
|
pageData.PageSize = this.PrintCodePager.PageSize;
|
this.PrintCodePager.bindingSource.DataSource = dt;
|
this.PrintCodePager.bindingNavigator.BindingSource = PrintCodePager.bindingSource;
|
dgvPrintCode.DataSource = null;
|
dgvPrintCode.AutoGenerateColumns = false;
|
dgvPrintCode.DataSource = this.PrintCodePager.bindingSource;
|
}
|
|
private void dgvPrintCode_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
{
|
|
}
|
|
private void dgvPrintCode_CellClick(object sender, DataGridViewCellEventArgs e)
|
{
|
if (e.RowIndex == -1)
|
{
|
if (e.ColumnIndex == 0)
|
{
|
if (dgvPrintCode.Rows.Count > 0)
|
{
|
for (int i = 0; i < dgvPrintCode.Rows.Count; i++)
|
{
|
dgvPrintCode.Rows[i].Cells["Column1"].Value = true;
|
}
|
}
|
}
|
//MessageBoxEx.Show("e.RowIndex:" + e.RowIndex + ", e.ColumnIndex:" + e.ColumnIndex);
|
}
|
//else
|
//{
|
// MessageBoxEx.Show("1");
|
//}
|
}
|
|
private void dgvWaitPrintDg_CellClick(object sender, DataGridViewCellEventArgs e)
|
{
|
if (e.RowIndex == -1)
|
{
|
if (e.ColumnIndex == 0)
|
{
|
if (dgvWaitPrintDg.Rows.Count > 0)
|
{
|
for (int i = 0; i < dgvWaitPrintDg.Rows.Count; i++)
|
{
|
dgvWaitPrintDg.Rows[i].Cells["CN_S_SELECT"].Value = true;
|
}
|
}
|
}
|
}
|
else
|
{
|
if (e.ColumnIndex == 0)
|
{
|
if (dgvWaitPrintDg.Rows.Count > 0)
|
{
|
for (int i = 0; i < dgvWaitPrintDg.Rows.Count; i++)
|
{
|
if (i == e.RowIndex && !string.IsNullOrEmpty(dgvWaitPrintDg.Rows[i].Cells["CN_S_PRODUCTION_BATCH"].Value.ToString()))
|
{
|
cmbWorkArea.SelectedValue = dgvWaitPrintDg.Rows[i].Cells["CN_S_PRODUCTION_BATCH"].Value.ToString() ;
|
}
|
}
|
}
|
}
|
}
|
}
|
|
}
|
}
|