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();
}
///
/// 物料编码
///
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(str);
dgvlist.AutoGenerateColumns = false;
this.dgvlist.DataSource = results.Data;
SetPrintQty();
}
#region 计算打印数量
public void SetPrintQty()
{
List items = new List();
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(str);
if (results.Status == ResultStatus.Success)
{
List itemlist = JsonConvert.DeserializeObject>(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);
}
///
/// 绑定选择Item的数据源
///
///
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 加载打印机
///
/// 加载打印机
///
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";
}
///
/// 获取模板类型
///
/// [HanHe(yjl)] CREATED 2019/7/10
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文件模版
///
/// 获取bartender文件模版
///
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(str);
//if (results.Status == ResultStatus.Success)
//{
//List v = JsonConvert.DeserializeObject>(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 打印
///
/// 打印
///
///
///
private void btnPrint_Click(object sender, EventArgs e)
{
//组织打印信息
List list = new List();
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(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 删除
///
/// 删除
///
///
///
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();
///
/// 打印
///
/// 打印机名
/// 打印模板
/// 打印数据源
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 刷新模板
///
/// 刷新模板
///
///
///
private void btnShuaxin_Click(object sender, EventArgs e)
{
//清除
GetBarMode();//从新加载
}
#endregion
#region 编辑格式限制
///
/// 编辑格式限制
///
///
///
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;
///
/// 后台打印服务
///
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 复选历史打印任务
///
/// 复选历史打印任务
///
///
///
private void cbkHistory_CheckedChanged(object sender, EventArgs e)
{
dtiStart.Visible = dtiEnd.Visible = lbl1.Visible = chkHistory.Checked;
}
#endregion
#region 补打任务
///
/// 补打任务
///
///
///
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(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 搜索
///
/// 搜索
///
///
///
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 获取打印任务
///
/// 获取打印任务
///
/// 是否自动打印
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(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>(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(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(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 选择打印机模板
///
/// 选择打印机模板
///
///
///
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 刷新未完全打印的入库单
///
/// 刷新未完全打印的入库单
///
///
///
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(strResult);
if (or.Status == ResultStatus.Success)
{
//JsonConvert.DeserializeObject>(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(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 rowstr = new List();
//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();
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(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);
}
}
///
/// C/S端 处理多个数据源
///
///
///
/// [HanHe(yjl)] CREATED 2019/6/18
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(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(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());
}
///
/// 切换打印码类型 加载对应列表
///
///
///
/// [HanHe(yjl)] CREATED 2019/7/10
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(str);
//if (op.Data != null)
//{
// DataTable dt = JsonConvert.DeserializeObject(op.Data.ToString());
// cmbPrintTemplate.DisplayMember = "CN_S_TEMPLET_NAME";
// cmbPrintTemplate.ValueMember = "CN_S_TEMPLET_NAME";
// cmbPrintTemplate.DataSource = dt;
//}
}
private void GenerateColumnList(string radioContent = "")
{
Dictionary columnLst = new Dictionary();
if (tabControl1.SelectedTabIndex == 1)
{
dgvPrintCode.Columns.Clear();
ControlLayOut();
if (cmbPrintCodeType.Text == "货位码")
{
columnLst = new Dictionary()
{
{"货位编码", "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()
{
{"容器编号", "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()
{
{"容器编号", "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()
//{
// {"料箱码", "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()
{
{"码值", "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 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(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(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(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() ;
}
}
}
}
}
}
}
}