Пример #1
0
        private void listPackage()
        {
            if (this.dgPackage.InvokeRequired)
            {
                this.dgPackage.Invoke(new Action(listPackage));
            }
            else
            {
                //刷新当前包列表
                using (ProxyBE p = new ProxyBE())
                {
                    SearchPackageDetailArgs packageArgs = new SearchPackageDetailArgs();
                    packageArgs.OrderBy = "[BarcodeNo] ASC";
                    if (this.CurrentOrder != null)
                    {
                        packageArgs.OrderID = this.CurrentOrder.OrderID;
                    }
                    packageArgs.IsDisabled = false;

                    if (this.CurrentPackage != null)
                    {
                        packageArgs.CabinetID = CurrentPackage.CabinetID;
                    }
                    SearchResult sr = p.Client.SearchPackageDetail(CGlobal.SenderUser, packageArgs);
                    this.dgPackage.AutoGenerateColumns = false;
                    this.dgPackage.DataSource          = sr.DataSet.Tables[0];
                    this.dgPackage.Refresh();
                }
            }
        }
Пример #2
0
 public SearchResult SearchPackageDetail(Sender sender, SearchPackageDetailArgs args)
 {
     try
     {
         using (ObjectProxy op = new ObjectProxy())
         {
             return(op.SearchPackageDetail(args));
         }
     }
     catch (Exception ex)
     {
         PLogger.LogError(ex);
         throw ex;
     }
 }
Пример #3
0
 private void listDetail()
 {
     if (this.dgPackage.InvokeRequired)
     {
         this.dgPackage.Invoke(new Action(listDetail));
     }
     else
     {
         using (ProxyBE p = new ProxyBE())
         {
             //刷新当前未分包板件列表
             SearchPackageDetailArgs unpackageArgs = new SearchPackageDetailArgs();
             if (!string.IsNullOrEmpty(this.txtOrderNo.Text.Trim()))
             {
                 unpackageArgs.OrderNo = this.txtOrderNo.Text.Trim();
             }
             if (!string.IsNullOrEmpty(this.txtCabinetName.Text.Trim()))
             {
                 unpackageArgs.CabinetName = this.txtCabinetName.Text.Trim();
             }
             if (this.CurrentPackage != null)
             {
                 unpackageArgs.CabinetID = CurrentPackage.CabinetID;
             }
             if (!string.IsNullOrEmpty(this.txtBarcode_S.Text.Trim()))
             {
                 unpackageArgs.Barcode = this.txtBarcode_S.Text.Trim();
             }
             unpackageArgs.OrderBy = "[BarcodeNo] ASC";
             if (this.CurrentOrder != null)
             {
                 unpackageArgs.OrderID = this.CurrentOrder.OrderID;
             }
             unpackageArgs.IsDisabled = false;
             unpackageArgs.IsPakaged  = false;
             SearchResult srUnPack = p.Client.SearchPackageDetail(CGlobal.SenderUser, unpackageArgs);
             this.listBarcodes.Items.Clear();
             foreach (DataRow row in srUnPack.DataSet.Tables[0].Rows)
             {
                 string text = string.Format("{0},{1}:{2} * {3} * {4} = 1", row["BarcodeNo"].ToString(), row["ItemName"].ToString(), decimal.Parse(row["MadeLength"].ToString()).ToString("#"), decimal.Parse(row["MadeWidth"].ToString()).ToString("#"), decimal.Parse(row["MadeHeight"].ToString()).ToString("#"), decimal.Parse(row["Qty"].ToString()).ToString("#"));
                 this.listBarcodes.Items.Add(text);
             }
             this.gbAll.Text = string.Format("未分包板件 -- 共{0}件", srUnPack.DataSet.Tables[0].Rows.Count);
         }
     }
 }
Пример #4
0
        /// <summary>
        /// 刷新当前未分包板件列表
        /// </summary>
        private void biObjects()
        {
            using (ProxyBE p = new ProxyBE())
            {
                //刷新当前未分包板件列表
                SearchPackageDetailArgs unpackageArgs = new SearchPackageDetailArgs();
                unpackageArgs.OrderBy = "[CabinetID],[PackageNum],[BarcodeNo] ASC";

                if (!string.IsNullOrEmpty(this.txtOrderNo.Text.Trim()))
                {
                    unpackageArgs.OrderNo = this.txtOrderNo.Text.Trim();
                }
                if (!string.IsNullOrEmpty(this.txtCabinetName.Text.Trim()))
                {
                    unpackageArgs.CabinetName = this.txtCabinetName.Text.Trim();
                }
                if (!string.IsNullOrEmpty(this.txtBarcode_S.Text.Trim()))
                {
                    unpackageArgs.Barcode = this.txtBarcode_S.Text.Trim();
                }

                SearchResult srUnPack = p.Client.SearchPackageDetail(CGlobal.SenderUser, unpackageArgs);
                this.dgPackage.AutoGenerateColumns = false;
                this.dgPackage.DataSource          = srUnPack.DataSet.Tables[0];
                this.dgPackage.Refresh();

                int unPackagedQty = srUnPack.DataSet.Tables[0].Select("IsPakaged=0").Length;

                var query = from g in srUnPack.DataSet.Tables[0].AsEnumerable()
                            group g by new
                {
                    CabinetName = g.Field <string>("CabinetName"),
                    CabinetCode = g.Field <string>("CabinetCode"),
                } into lists_Package
                    select new
                {
                    CabinetName = lists_Package.Key.CabinetName,
                    CabinetCode = lists_Package.Key.CabinetCode,
                };

                var lists = query.ToList();

                this.gbCurrent.Text = string.Format("产品合计:{2}件,板件合计:{0}件,其中未打包板件:{1}件", srUnPack.DataSet.Tables[0].Rows.Count, unPackagedQty, lists.Count());
            }
        }
Пример #5
0
        private void initTree()
        {
            try
            {
                TreeNode selected = null;
                if (this.tvPackage.SelectedNode != null)
                {
                    selected = this.tvPackage.SelectedNode;
                }
                this.tvPackage.Nodes.Clear();
                SearchPackageArgs args = new SearchPackageArgs();
                if (CurrentOrder != null)
                {
                    args.OrderID = CurrentOrder.OrderID;
                }
                else
                {
                    return;
                }
                if (CurrentPackage != null)
                {
                    args.CabinetID = CurrentPackage.CabinetID;
                }
                if (!string.IsNullOrEmpty(this.txtCabinetName.Text))
                {
                    args.CabinetName = this.txtCabinetName.Text;
                }
                args.OrderBy = "PackageNum ASC";
                using (ProxyBE p = new ProxyBE())
                {
                    SearchResult sr         = p.Client.SearchPackage(CGlobal.SenderUser, args);
                    DataTable    tb_cabinet = sr.DataSet.Tables[0].DefaultView.ToTable(true, "CabinetID");
                    foreach (DataRow cabinet_row in tb_cabinet.Rows)
                    {
                        Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, new Guid(cabinet_row["CabinetID"].ToString()));
                        if (cabinet == null)
                        {
                            return;
                        }
                        TreeNode rootnode = new TreeNode();
                        rootnode.Text = string.Format("{0}({1},{2},{3},{4})", cabinet.CabinetName, cabinet.Size, cabinet.Color, cabinet.MaterialCategory, cabinet.MaterialStyle);
                        rootnode.Tag  = "C," + cabinet.CabinetID;
                        DataRow[] rows = sr.DataSet.Tables[0].Select("CabinetID='" + cabinet_row["CabinetID"].ToString() + "'");
                        foreach (DataRow row in rows)
                        {
                            TreeNode tn = new TreeNode();
                            SearchPackageDetailArgs suborderArgs = new SearchPackageDetailArgs();
                            suborderArgs.PackageID = new Guid(row["PackageID"].ToString());
                            SearchResult subSr  = p.Client.SearchPackageDetail(CGlobal.SenderUser, suborderArgs);
                            decimal      weight = 0;
                            foreach (DataRow rw in subSr.DataSet.Tables[0].Rows)
                            {
                                TreeNode subnode = new TreeNode();
                                subnode.Text = string.Format("{0},{1}:{2} * {3} * {4}", rw["BarcodeNo"].ToString(), rw["ItemName"].ToString(), decimal.Parse(rw["MadeLength"].ToString()).ToString("#"), decimal.Parse(rw["MadeWidth"].ToString()).ToString("#"), decimal.Parse(rw["MadeHeight"].ToString()).ToString("#"));
                                subnode.Tag  = "B," + rw["ItemID"].ToString();
                                tn.Nodes.Add(subnode);
                                weight += weight = decimal.Parse(rw["MadeHeight"].ToString()) * decimal.Parse(rw["MadeLength"].ToString()) * decimal.Parse(rw["MadeWidth"].ToString()) * 0.000001M * Density;
                            }
                            tn.Text = string.Format("第{0}包,包重:{1}KG,板件数量:{2}块", row["PackageNum"].ToString(), weight.ToString("#0.00"), subSr.Total);
                            tn.Tag  = "P," + row["PackageID"].ToString();

                            if (selected == null && this.CurrentPackage != null)
                            {
                                if (row["PackageID"].ToString() == this.CurrentPackage.PackageID.ToString())
                                {
                                    selected = tn;
                                }
                            }
                            rootnode.Nodes.Add(tn);
                        }
                        if (selected != null && selected.Text != "")
                        {
                            this.tvPackage.SelectedNode = selected;
                            selected.Expand();
                        }
                        rootnode.Expand();
                        this.tvPackage.Nodes.Add(rootnode);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception("加载数据失败。原因:" + ex.Message);
            }
        }
Пример #6
0
        private void ScanBarcode()
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new dreadbarcode(ScanBarcode), null);
            }
            else
            {
                if (WorkFlowID == Guid.Empty)
                {
                    throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。");
                }
                if (WorkShiftID == Guid.Empty)
                {
                    throw new Exception("请在参数设置中设置班次和分拣对应的工序名称。");
                }
                string ItemBarcode = this.txtBarcode.Text.Trim();
                if (string.IsNullOrEmpty(ItemBarcode))
                {
                    this.txtBarcode.Clear();
                    this.txtBarcode.Focus();
                    lblMsg.Text = "【提示】请扫描板件条码";
                    PlayVoice("请扫描板件条码");
                    return;
                }
                #region 完成当前分包操作
                if (ItemBarcode.IndexOf(FinishedBarcode) >= 0 && !string.IsNullOrEmpty(FinishedBarcode))
                {
                    try
                    {
                        //打印分包标签
                        PlayVoice("打印标签");
                        //PrintDocument();
                        StartPrint(this.CurrentPackage.PackageID);
                        this.txtBarcode.Text = "";
                        this.txtBarcode.Focus();
                        this.CurrentPackage = null;
                    }
                    catch (Exception ex)
                    {
                        this.CurrentPackage = null;
                        throw ex;
                    }
                    return;
                }
                #endregion

                using (ProxyBE p = new ProxyBE())
                {
                    OrderDetail subOrder = p.Client.GetOrderDetailByBarcode(CGlobal.SenderUser, ItemBarcode);
                    if (subOrder == null)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = string.Format("提示:【{0}】条码无效", ItemBarcode);
                        PlayVoice("条码错误");
                        return;
                    }

                    Order order = p.Client.GetOrder(CGlobal.SenderUser, subOrder.OrderID);
                    //初始化订单数据:如果当前订单ID与条码的订单ID不一至时则重置订单信息
                    if (CurrentOrder == null)
                    {
                        this.CurrentOrder    = order;
                        this.txtOrderNo.Text = this.CurrentOrder.OrderNo;
                    }
                    //判断当前的板件是否为同一订单板件
                    else if (subOrder.OrderID != this.CurrentOrder.OrderID)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = "【错误】板件订单号不一致";
                        PlayVoice("订单不一致");
                        MessageBox.Show("板件订单号不一致");
                        return;
                    }

                    List <PackageDetail> pdsubOrder = p.Client.GetPackageDetailsByItemID(CGlobal.SenderUser, subOrder.ItemID);
                    pdsubOrder = pdsubOrder.FindAll(li => li.IsPakaged == false);
                    if (pdsubOrder.Count == 0)
                    {
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = string.Format("提示:【{0}】条码重复扫描", ItemBarcode);
                        PlayVoice("重复扫描");
                        return;
                    }


                    decimal weight = subOrder.MadeHeight * subOrder.MadeLength * subOrder.MadeWidth * 0.000001M * Density;
                    if (this.CurrentPackage != null)
                    {
                        if (this.CurrentPackage.Weight + weight >= MaxWeight)
                        {
                            //打印分包标签
                            PlayVoice("打印标签");
                            StartPrint(this.CurrentPackage.PackageID);
                            this.txtBarcode.Text = "";
                            this.txtBarcode.Focus();
                            this.CurrentPackage = null;
                        }
                    }

                    Order2Cabinet cabinet = p.Client.GetOrder2Cabinet(CGlobal.SenderUser, subOrder.CabinetID);
                    if (cabinet != null)
                    {
                        //初始化包数据
                        if (this.CurrentPackage == null)
                        {
                            Mes.Client.Service.BE.Package pack = new Mes.Client.Service.BE.Package();
                            pack.OrderID = this.CurrentOrder.OrderID;
                            int pageNum = 0;
                            pageNum                  = p.Client.GetMaxPackageNum(CGlobal.SenderUser, pack.OrderID, subOrder.CabinetID);
                            pack.CabinetID           = subOrder.CabinetID;
                            pack.PackageNum          = pageNum;
                            pack.PackageID           = Guid.NewGuid();
                            pack.PackageBarcode      = string.Format("0{0}{1}", CurrentOrder.Created.ToString("yyMMddHHmmss"), pageNum.ToString("00"));
                            pack.PackageLength       = 0;
                            pack.PackageHeight       = 0;
                            pack.PackageWidth        = 0;
                            pack.ItemsQty            = 0;
                            this.CurrentPackage      = pack;
                            this.txtCabinetName.Text = cabinet.CabinetName;
                        }
                        else if (CurrentPackage.CabinetID != cabinet.CabinetID)
                        {
                            this.txtBarcode.Clear();
                            this.txtBarcode.Focus();
                            lblMsg.Text = "【错误】柜体不一致!";
                            PlayVoice("柜体不一致");
                            return;
                        }
                    }
                    else
                    {
                        lblMsg.Text = string.Format("提示:【{0}】条码所属柜体数据丢失,请查看订单是否有误!", ItemBarcode);
                        PlayVoice("订单错误");
                        return;
                    }


                    try
                    {
                        p.Client.ScanBarcode(CGlobal.SenderUser, ItemBarcode, WorkShiftID, WorkFlowID);
                    }
                    catch (Exception ex)
                    {
                        PLogger.LogError(ex);
                        this.txtBarcode.Clear();
                        this.txtBarcode.Focus();
                        lblMsg.Text = ex.Message;
                        PlayVoice("扫描失败");
                        return;
                    }

                    this.CurrentPackage.Weight   += weight;
                    this.CurrentPackage.ItemsQty += 1;

                    SavePackageArgs saveArgs = new SavePackageArgs();
                    saveArgs.Package = this.CurrentPackage;
                    PackageDetail packageDetail = pdsubOrder[0];
                    packageDetail.IsPakaged = true;
                    packageDetail.PakageID  = this.CurrentPackage.PackageID;
                    saveArgs.PackageDetail  = packageDetail;
                    p.Client.SavePackage(CGlobal.SenderUser, saveArgs);

                    this.CurrentPackage = p.Client.GetPackage(CGlobal.SenderUser, this.CurrentPackage.PackageID);
                    this.gbPackage.Text = string.Format("当前:第{0}包", this.CurrentPackage.PackageNum);

                    //刷新列表
                    biForm();
                    this.txtBarcode.Clear();
                    this.txtBarcode.Focus();
                    lblMsg.Text = "扫描完成";
                    PlayVoice("OK");

                    //检查是否已经全部扫描完成
                    if (this.listBarcodes.Items.Count == 0)
                    {
                        //打印分包标签
                        PlayVoice("打印标签");
                        //PrintDocument();
                        StartPrint(this.CurrentPackage.PackageID);
                        this.txtBarcode.Text = "";
                        this.txtBarcode.Focus();
                        this.CurrentPackage = null;

                        cabinet.CabinetStatus = "F";
                        SaveOrder2CabinetArgs cabinetArgs = new SaveOrder2CabinetArgs();
                        cabinetArgs.Order2Cabinet = cabinet;
                        p.Client.SaveOrder2Cabinet(CGlobal.SenderUser, cabinetArgs);

                        SearchPackageDetailArgs p_args = new SearchPackageDetailArgs();
                        p_args.IsDisabled = false;
                        p_args.OrderID    = CurrentOrder.OrderID;
                        p_args.IsPakaged  = false;

                        SearchResult p_sr = p.Client.SearchPackageDetail(CGlobal.SenderUser, p_args);
                        if (p_sr.Total == 0)
                        {
                            //Order order = p.Client.GetOrder(CGlobal.SenderUser, CurrentOrder.OrderID);
                            order.Status = "I"; //全部打包完成后,订单状态变成待入库
                            SaveOrderArgs saveOrderArgs = new SaveOrderArgs();
                            saveOrderArgs.Order = order;
                            p.Client.SaveOrder(CGlobal.SenderUser, saveOrderArgs);
                        }
                    }
                    //加载树
                    initTree();
                }
            }
        }
Пример #7
0
        public void Print(SearchResult sr)
        {
            using (ProxyBE p = new ProxyBE())
            {
                #region :100*55的条码

                /*
                 * DataSet ds = new DataSet("DataSet1");
                 * DataTable tb = sr.DataSet.Tables[0].Copy();
                 * tb.Columns.Add(new DataColumn("Remarks", typeof(string)));
                 * tb.Columns.Add(new DataColumn("PackageDesc", typeof(string)));
                 * tb.Columns.Add(new DataColumn("Qty", typeof(int)));
                 * tb.Columns.Add(new DataColumn("Barcode", typeof(byte[])));
                 * tb.Columns.Add(new DataColumn("Logo", typeof(byte[])));
                 * tb.Columns.Add(new DataColumn("Style", typeof(string)));
                 * tb.Columns.Add(new DataColumn("PrintDate", typeof(string)));
                 * tb.Columns.Add(new DataColumn("Color", typeof(string)));
                 *
                 * //重置报表数据列
                 * foreach (DataRow row in tb.Rows)
                 * {
                 *  SearchPackageDetailArgs subArgs = new SearchPackageDetailArgs();
                 *  subArgs.OrderID = (Guid)row["OrderID"];
                 *  subArgs.PackageID = (Guid)row["PackageID"];
                 *  SearchResult subResult = p.Client.SearchPackageDetail(null, subArgs);
                 *
                 *  int totalQty = 0;
                 *  //string CabinetNum = "";
                 *  string remarks = "";
                 *  string strColor = "";
                 *  int rowscount = 1;
                 *
                 *  var query = from g in subResult.DataSet.Tables[0].AsEnumerable()
                 *              group g by new {
                 *                  Size = g.Field<string>("Size"),
                 *                  PackageNum = g.Field<int>("PackageNum"),
                 *                  PackageBarcode = g.Field<string>("PackageBarcode"),
                 *                  MaterialType = g.Field<string>("MaterialType"),
                 *                  ItemName = g.Field<string>("ItemName"),
                 *                  MadeLength = g.Field<decimal>("MadeLength"),
                 *                  MadeWidth = g.Field<decimal>("MadeWidth"),
                 *                  MadeHeight = g.Field<decimal>("MadeHeight")
                 *              } into lists_Package
                 *      select new {
                 *          ItemName = lists_Package.Key.ItemName,
                 *          MaterialType = lists_Package.Key.MaterialType,
                 *          Size = lists_Package.Key.Size,
                 *          PackageBarcode = lists_Package.Key.PackageBarcode,
                 *          PackageNum = lists_Package.Key.PackageNum,
                 *          MadeWidth = lists_Package.Key.MadeWidth,
                 *          MadeLength = lists_Package.Key.MadeLength,
                 *          MadeHeight = lists_Package.Key.MadeHeight,
                 *          Qty = lists_Package.Sum(n => n.Field<int>("Qty"))
                 *         };
                 *
                 *  if (query.ToList().Count > 0)
                 *  {
                 *      var lists = query.ToList();
                 *      foreach( var item in lists)
                 *      {
                 *          if (rowscount > 10)
                 *          {
                 *              break;
                 *          }
                 *          totalQty += item.Qty;
                 *          if (item.ItemName.Length > 4)
                 *          {
                 *              remarks += string.Format("{0}:{1}*{2}*{3}={4}\r\n", item.ItemName.Substring(0, 4), item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                 *          }
                 *          else
                 *          {
                 *              remarks += string.Format("{0}:{1}*{2}*{3}={4}\r\n", item.ItemName, item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                 *          }
                 *          strColor = item.MaterialType;
                 *          rowscount++;
                 *      };
                 *  }
                 *
                 *  string size = row["Size"].ToString();
                 *  row["Qty"] = totalQty;
                 *  row["Color"] = strColor;
                 *  row["Remarks"] = remarks;
                 *  row["Barcode"] = getQRcode(row["PackageBarcode"].ToString());
                 *  row["PackageDesc"] = string.Format("第{0}包共  包", row["PackageNum"]);
                 *  row["Logo"] = getLogoFile();
                 *  row["Style"] = "规格:" + size;
                 *  row["PrintDate"] = DateTime.Now.ToString("日期:yyyy-MM-dd");
                 * }
                 * ds.Tables.Add(tb);
                 * Microsoft.Reporting.WinForms.ReportDataSource rptDataSource = new Microsoft.Reporting.WinForms.ReportDataSource();
                 * rptDataSource.Name = "DataSet1";
                 * rptDataSource.Value = ds.Tables[0];
                 *
                 * LocalReport report = new LocalReport();
                 * report.DataSources.Clear();
                 * //设置需要打印的报表的文件名称。
                 * report.ReportEmbeddedResource = "Mes.Package.Report.rptPackage.rdlc";
                 * report.DataSources.Add(rptDataSource);
                 * //刷新报表中的需要呈现的数据
                 * report.Refresh();
                 * PrintStream(report);
                 */
                #endregion
                #region 100*70的条码
                DataSet   ds = new DataSet("dsPackageLabel");
                DataTable tb = sr.DataSet.Tables[0].Copy();
                tb.Columns.Add(new DataColumn("Remarks", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageDesc", typeof(string)));
                tb.Columns.Add(new DataColumn("Qty", typeof(int)));
                tb.Columns.Add(new DataColumn("Barcode", typeof(byte[])));
                tb.Columns.Add(new DataColumn("Logo", typeof(byte[])));
                tb.Columns.Add(new DataColumn("PrintDate", typeof(string)));


                //重置报表数据列
                foreach (DataRow row in tb.Rows)
                {
                    SearchPackageDetailArgs subArgs = new SearchPackageDetailArgs();
                    subArgs.OrderID   = (Guid)row["OrderID"];
                    subArgs.PackageID = (Guid)row["PackageID"];
                    SearchResult subResult = p.Client.SearchPackageDetail(null, subArgs);

                    int    totalQty  = 0;
                    string remarks   = "";
                    string strColor  = "";
                    int    rowscount = 1;

                    var query = from g in subResult.DataSet.Tables[0].AsEnumerable()
                                group g by new
                    {
                        Size           = g.Field <string>("Size"),
                        PackageNum     = g.Field <int>("PackageNum"),
                        PackageBarcode = g.Field <string>("PackageBarcode"),
                        MaterialType   = g.Field <string>("MaterialType"),
                        ItemName       = g.Field <string>("ItemName"),
                        MadeLength     = g.Field <decimal>("MadeLength"),
                        MadeWidth      = g.Field <decimal>("MadeWidth"),
                        MadeHeight     = g.Field <decimal>("MadeHeight")
                    } into lists_Package
                        select new
                    {
                        ItemName       = lists_Package.Key.ItemName,
                        MaterialType   = lists_Package.Key.MaterialType,
                        Size           = lists_Package.Key.Size,
                        PackageBarcode = lists_Package.Key.PackageBarcode,
                        PackageNum     = lists_Package.Key.PackageNum,
                        MadeWidth      = lists_Package.Key.MadeWidth,
                        MadeLength     = lists_Package.Key.MadeLength,
                        MadeHeight     = lists_Package.Key.MadeHeight,
                        Qty            = lists_Package.Sum(n => n.Field <int>("Qty"))
                    };

                    if (query.ToList().Count > 0)
                    {
                        var lists = query.ToList();
                        foreach (var item in lists)
                        {
                            if (rowscount > 10)
                            {
                                break;
                            }
                            totalQty += item.Qty;
                            string itemName = item.ItemName;

                            if ("A,B,C,D,E,F".Contains(itemName.Substring(0, 1)))
                            {
                                itemName = itemName.Substring(1);
                            }

                            int index = item.ItemName.LastIndexOf("mm");
                            if (index >= 0)
                            {
                                itemName = itemName.Substring(index + 2, itemName.Length - (index + 2));
                            }

                            if (item.ItemName.Length > 4)
                            {
                                remarks += string.Format("{0}:{1}*{2}*{3}={4}\r\n", itemName.Substring(0, 4), item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                            }
                            else
                            {
                                remarks += string.Format("{0}:{1}*{2}*{3}={4}\r\n", itemName, item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                            }
                            strColor = item.MaterialType;
                            rowscount++;
                        }
                        ;
                    }
                    row["Qty"]         = totalQty;
                    row["Remarks"]     = remarks;
                    row["Address"]     = row["Province"].ToString() + row["City"].ToString() + row["Address"].ToString();
                    row["Barcode"]     = getQRcode(row["PackageBarcode"].ToString());
                    row["PackageDesc"] = string.Format("第 {0} 包", int.Parse(row["PackageNum"].ToString()).ToString("00"));
                    row["Logo"]        = getLogoFile();
                    row["PrintDate"]   = DateTime.Now.ToString("yyyy-MM-dd");
                }
                ds.Tables.Add(tb);


                ReportDataSource rptDataSource = new ReportDataSource();
                rptDataSource.Name  = "dsPackageLabel";
                rptDataSource.Value = ds.Tables[0];

                LocalReport report = new LocalReport();
                report.DataSources.Clear();
                //设置需要打印的报表的文件名称。
                report.ReportEmbeddedResource = "Mes.Package.Report.rptPackageLabel.rdlc";
                report.DataSources.Add(rptDataSource);
                //刷新报表中的需要呈现的数据
                report.Refresh();
                PrintStream(report);
                #endregion
            }
        }
Пример #8
0
        /// <summary>
        /// 补打标签
        /// </summary>
        /// <param name="sr"></param>
        public void DocumentPrint(SearchResult sr)
        {
            using (ProxyBE p = new ProxyBE())
            {
                #region 70*200mm的条码
                DataSet   ds = new DataSet("tbPackageDataTable");
                DataTable tb = new DataTable();
                tb.Columns.Add(new DataColumn("OrderNo", typeof(string)));
                tb.Columns.Add(new DataColumn("OutOrderNo", typeof(string)));
                tb.Columns.Add(new DataColumn("PurchaseNo", typeof(string)));
                tb.Columns.Add(new DataColumn("CustomerName", typeof(string)));
                tb.Columns.Add(new DataColumn("Address", typeof(string)));
                tb.Columns.Add(new DataColumn("LinkMan", typeof(string)));
                tb.Columns.Add(new DataColumn("Mobile", typeof(string)));
                //tb.Columns.Add(new DataColumn("ItemName", typeof(string)));
                tb.Columns.Add(new DataColumn("CabinetName", typeof(string)));
                tb.Columns.Add(new DataColumn("MaterialStyle", typeof(string)));
                tb.Columns.Add(new DataColumn("Size", typeof(string)));
                tb.Columns.Add(new DataColumn("Color", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageNum", typeof(string)));
                tb.Columns.Add(new DataColumn("TotalPackage", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageBarcode", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemName_1", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemName_2", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemName_3", typeof(string)));
                tb.Columns.Add(new DataColumn("Barcode", typeof(byte[])));
                tb.Columns.Add(new DataColumn("Logo", typeof(byte[])));
                tb.Columns.Add(new DataColumn("PrintDate", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageDesc", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemsQty", typeof(Int32)));


                //重置报表数据列
                foreach (DataRow row in sr.DataSet.Tables[0].Rows)
                {
                    SearchPackageDetailArgs subArgs = new SearchPackageDetailArgs();
                    subArgs.OrderID   = (Guid)row["OrderID"];
                    subArgs.PackageID = (Guid)row["PackageID"];

                    //包装明细
                    SearchResult subResult = p.Client.SearchPackageDetail(CGlobal.SenderUser, subArgs);

                    var query = from g in subResult.DataSet.Tables[0].AsEnumerable()
                                group g by new
                    {
                        PackageNum     = g.Field <int>("PackageNum"),
                        PackageBarcode = g.Field <string>("PackageBarcode"),
                        ItemName       = g.Field <string>("ItemName"),
                        MadeLength     = g.Field <decimal>("MadeLength"),
                        MadeWidth      = g.Field <decimal>("MadeWidth"),
                        MadeHeight     = g.Field <decimal>("MadeHeight")
                    } into lists_Package
                        select new
                    {
                        ItemName       = lists_Package.Key.ItemName,
                        PackageBarcode = lists_Package.Key.PackageBarcode,
                        PackageNum     = lists_Package.Key.PackageNum,
                        MadeWidth      = lists_Package.Key.MadeWidth,
                        MadeLength     = lists_Package.Key.MadeLength,
                        MadeHeight     = lists_Package.Key.MadeHeight,
                        Qty            = lists_Package.Sum(n => n.Field <int>("Qty"))
                    };

                    var lists    = query.ToList();
                    int rows     = lists.Count / 3 + (lists.Count % 3 > 0 ? 1 : 0);
                    int totalQty = subResult.Total;
                    for (int i = 0; i < rows; i++)
                    {
                        DataRow newRow = tb.NewRow();

                        newRow["OrderNo"]        = row["OrderNo"];
                        newRow["OutOrderNo"]     = row["OutOrderNo"];
                        newRow["PurchaseNo"]     = row["PurchaseNo"];
                        newRow["CustomerName"]   = row["CustomerName"];
                        newRow["Address"]        = row["Address"];
                        newRow["LinkMan"]        = row["LinkMan"];
                        newRow["Mobile"]         = row["Mobile"];
                        newRow["CabinetName"]    = row["CabinetName"];
                        newRow["Size"]           = row["Size"];
                        newRow["Color"]          = row["Color"];
                        newRow["MaterialStyle"]  = row["MaterialStyle"];
                        newRow["PackageNum"]     = row["PackageNum"];
                        newRow["TotalPackage"]   = "";// row["TotalPackage"].ToString();
                        newRow["PackageBarcode"] = row["PackageBarcode"];
                        newRow["Address"]        = row["Province"].ToString() + row["City"].ToString() + row["Address"].ToString();
                        newRow["Barcode"]        = getQRcode(row["PackageBarcode"].ToString());
                        newRow["PackageDesc"]    = string.Format("第 {0} 包", int.Parse(row["PackageNum"].ToString()).ToString("00"));
                        newRow["Logo"]           = getLogoFile();
                        newRow["PrintDate"]      = DateTime.Now.ToString("yyyy年MM月dd日");

                        for (int rowindex = 1; rowindex <= 3; rowindex++)
                        {
                            var    item    = lists[i * 3 + rowindex - 1];
                            string remarks = "";

                            string itemName = item.ItemName;
                            if ("A,B,C,D,E,F".Contains(itemName.Substring(0, 1)))
                            {
                                itemName = itemName.Substring(1);
                            }

                            int index = item.ItemName.LastIndexOf("mm");
                            if (index >= 0)
                            {
                                itemName = itemName.Substring(index + 2, itemName.Length - (index + 2));
                            }
                            if (item.ItemName.Length > 5)
                            {
                                remarks = string.Format("{0}:{1}*{2}*{3}={4}", itemName.Substring(0, 5), item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                            }
                            else
                            {
                                remarks = string.Format("{0}:{1}*{2}*{3}={4}", itemName, item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                            }
                            newRow["ItemName_" + rowindex] = remarks;
                            if (i * 3 + rowindex - 1 == lists.Count - 1)
                            {
                                break;                                          //最后一条数据
                            }
                        }
                        newRow["ItemsQty"] = totalQty;
                        tb.Rows.Add(newRow);
                    }
                    for (int i = rows; i < 13; i++)
                    {
                        DataRow newRow = tb.NewRow();
                        newRow["OrderNo"]        = row["OrderNo"];
                        newRow["OutOrderNo"]     = row["OutOrderNo"];
                        newRow["PurchaseNo"]     = row["PurchaseNo"];
                        newRow["CustomerName"]   = row["CustomerName"];
                        newRow["Address"]        = row["Address"];
                        newRow["LinkMan"]        = row["LinkMan"];
                        newRow["Mobile"]         = row["Mobile"];
                        newRow["CabinetName"]    = row["CabinetName"];
                        newRow["Size"]           = row["Size"];
                        newRow["Color"]          = row["Color"];
                        newRow["MaterialStyle"]  = row["MaterialStyle"];
                        newRow["PackageNum"]     = row["PackageNum"];
                        newRow["TotalPackage"]   = "";
                        newRow["PackageBarcode"] = row["PackageBarcode"];
                        newRow["Address"]        = row["Province"].ToString() + row["City"].ToString() + row["Address"].ToString();
                        newRow["Barcode"]        = getQRcode(row["PackageBarcode"].ToString());
                        newRow["PackageDesc"]    = string.Format("第 {0} 包", int.Parse(row["PackageNum"].ToString()).ToString("00"));
                        newRow["Logo"]           = getLogoFile();
                        newRow["PrintDate"]      = DateTime.Now.ToString("yyyy年MM月dd日");
                        newRow["ItemName_1"]     = "";
                        newRow["ItemName_2"]     = "";
                        newRow["ItemName_3"]     = "";
                        newRow["ItemsQty"]       = totalQty;
                        tb.Rows.Add(newRow);
                    }
                }
                ds.Tables.Add(tb);

                ReportDataSource rptDataSource = new ReportDataSource();
                rptDataSource.Name  = "tbPackageDataTable";
                rptDataSource.Value = ds.Tables[0];

                LocalReport report = new LocalReport();
                report.DataSources.Clear();
                //设置需要打印的报表的文件名称。
                report.ReportEmbeddedResource = "Mes.Package.Report.Report1.rdlc";
                report.DataSources.Add(rptDataSource);
                //刷新报表中的需要呈现的数据
                report.Refresh();
                PrintStream(report);
                #endregion
            }
        }
Пример #9
0
        /// <summary>
        /// 打印预览
        /// </summary>
        /// <param name="sourceData"></param>
        /// <param name="LogoFile"></param>
        /// <returns></returns>
        public DataSet GetItemLabelDataSource(DataTable sourceData, string LogoFile)
        {
            DataSet ds = new DataSet("tbPackageDataTable");

            using (ProxyBE p = new ProxyBE())
            {
                #region 70*200的条码

                DataTable tb = new DataTable();
                tb.Columns.Add(new DataColumn("OrderNo", typeof(string)));
                tb.Columns.Add(new DataColumn("OutOrderNo", typeof(string)));
                tb.Columns.Add(new DataColumn("PurchaseNo", typeof(string)));
                tb.Columns.Add(new DataColumn("CustomerName", typeof(string)));
                tb.Columns.Add(new DataColumn("Address", typeof(string)));
                tb.Columns.Add(new DataColumn("LinkMan", typeof(string)));
                tb.Columns.Add(new DataColumn("Mobile", typeof(string)));
                //tb.Columns.Add(new DataColumn("ItemName", typeof(string)));
                tb.Columns.Add(new DataColumn("CabinetName", typeof(string)));
                tb.Columns.Add(new DataColumn("MaterialStyle", typeof(string)));
                tb.Columns.Add(new DataColumn("Size", typeof(string)));
                tb.Columns.Add(new DataColumn("Color", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageNum", typeof(string)));
                tb.Columns.Add(new DataColumn("TotalPackage", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageBarcode", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemName_1", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemName_2", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemName_3", typeof(string)));
                tb.Columns.Add(new DataColumn("Barcode", typeof(byte[])));
                tb.Columns.Add(new DataColumn("Logo", typeof(byte[])));
                tb.Columns.Add(new DataColumn("PrintDate", typeof(string)));
                tb.Columns.Add(new DataColumn("PackageDesc", typeof(string)));
                tb.Columns.Add(new DataColumn("ItemsQty", typeof(Int32)));


                //重置报表数据列
                foreach (DataRow row in sourceData.Rows)
                {
                    SearchPackageDetailArgs subArgs = new SearchPackageDetailArgs();
                    subArgs.OrderID   = (Guid)row["OrderID"];
                    subArgs.PackageID = (Guid)row["PackageID"];

                    //包装明细
                    SearchResult subResult = p.Client.SearchPackageDetail(CGlobal.SenderUser, subArgs);

                    var query = from g in subResult.DataSet.Tables[0].AsEnumerable()
                                group g by new
                    {
                        PackageNum     = g.Field <int>("PackageNum"),
                        PackageBarcode = g.Field <string>("PackageBarcode"),
                        ItemName       = g.Field <string>("ItemName"),
                        MadeLength     = g.Field <decimal>("MadeLength"),
                        MadeWidth      = g.Field <decimal>("MadeWidth"),
                        MadeHeight     = g.Field <decimal>("MadeHeight")
                    } into lists_Package
                        select new
                    {
                        ItemName       = lists_Package.Key.ItemName,
                        PackageBarcode = lists_Package.Key.PackageBarcode,
                        PackageNum     = lists_Package.Key.PackageNum,
                        MadeWidth      = lists_Package.Key.MadeWidth,
                        MadeLength     = lists_Package.Key.MadeLength,
                        MadeHeight     = lists_Package.Key.MadeHeight,
                        Qty            = lists_Package.Sum(n => n.Field <int>("Qty"))
                    };


                    var lists    = query.ToList();
                    int rows     = lists.Count / 3 + (lists.Count % 3 > 0 ? 1 : 0);//如果list.count为5行,则rows为2
                    int totalQty = lists.Sum(li => li.Qty);

                    //生产行数据
                    for (int i = 0; i < rows; i++)
                    {
                        DataRow newRow = tb.NewRow();
                        newRow["OrderNo"]        = row["OrderNo"];
                        newRow["OutOrderNo"]     = row["OutOrderNo"];
                        newRow["PurchaseNo"]     = row["PurchaseNo"];
                        newRow["CustomerName"]   = row["CustomerName"];
                        newRow["Address"]        = row["Address"];
                        newRow["LinkMan"]        = row["LinkMan"];
                        newRow["Mobile"]         = row["Mobile"];
                        newRow["CabinetName"]    = row["CabinetName"];
                        newRow["Size"]           = row["Size"];
                        newRow["Color"]          = row["Color"];
                        newRow["MaterialStyle"]  = row["MaterialStyle"];
                        newRow["PackageNum"]     = row["PackageNum"];
                        newRow["TotalPackage"]   = "";// row["TotalPackage"].ToString();
                        newRow["PackageBarcode"] = row["PackageBarcode"];
                        newRow["Address"]        = row["Province"].ToString() + row["City"].ToString() + row["Address"].ToString();
                        newRow["Barcode"]        = CommonView.getQRcode(row["PackageBarcode"].ToString());
                        newRow["PackageDesc"]    = string.Format("第 {0} 包", int.Parse(row["PackageNum"].ToString()).ToString("00"));
                        newRow["Logo"]           = CommonView.getLogoFile(LogoFile);
                        newRow["PrintDate"]      = DateTime.Now.ToString("yyyy年MM月dd日");

                        //处理列数据
                        for (int rowindex = 1; rowindex <= 3; rowindex++)
                        {
                            var    item     = lists[i * 3 + rowindex - 1];
                            string remarks  = "";
                            string itemName = item.ItemName;
                            if ("A,B,C,D,E,F".Contains(itemName.Substring(0, 1)))
                            {
                                itemName = itemName.Substring(1);
                            }

                            int index = item.ItemName.LastIndexOf("mm");
                            if (index >= 0)
                            {
                                itemName = itemName.Substring(index + 2, itemName.Length - (index + 2));
                            }
                            if (item.ItemName.Length > 5)
                            {
                                remarks = string.Format("{0}:{1}*{2}*{3}={4}", itemName.Substring(0, 5), item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                            }
                            else
                            {
                                remarks = string.Format("{0}:{1}*{2}*{3}={4}", itemName, item.MadeLength.ToString("#"), item.MadeWidth.ToString("#"), item.MadeHeight.ToString("#"), item.Qty);
                            }
                            newRow["ItemName_" + rowindex] = remarks;
                            if (i * 3 + rowindex - 1 == lists.Count - 1)
                            {
                                break;                                          //最后一条数据
                            }
                        }
                        newRow["ItemsQty"] = totalQty;// row["ItemsQty"];
                        tb.Rows.Add(newRow);
                    }
                    //生成右侧空数据,默认生成13行数据
                    for (int i = rows; i < 13; i++)
                    {
                        DataRow newRow = tb.NewRow();
                        newRow["OrderNo"]        = row["OrderNo"];
                        newRow["OutOrderNo"]     = row["OutOrderNo"];
                        newRow["PurchaseNo"]     = row["PurchaseNo"];
                        newRow["CustomerName"]   = row["CustomerName"];
                        newRow["Address"]        = row["Address"];
                        newRow["LinkMan"]        = row["LinkMan"];
                        newRow["Mobile"]         = row["Mobile"];
                        newRow["CabinetName"]    = row["CabinetName"];
                        newRow["Size"]           = row["Size"];
                        newRow["Color"]          = row["Color"];
                        newRow["MaterialStyle"]  = row["MaterialStyle"];
                        newRow["PackageNum"]     = row["PackageNum"];
                        newRow["TotalPackage"]   = "";
                        newRow["PackageBarcode"] = row["PackageBarcode"];
                        newRow["Address"]        = row["Province"].ToString() + row["City"].ToString() + row["Address"].ToString();
                        newRow["Barcode"]        = CommonView.getQRcode(row["PackageBarcode"].ToString());
                        newRow["PackageDesc"]    = string.Format("第 {0} 包", int.Parse(row["PackageNum"].ToString()).ToString("00"));
                        newRow["Logo"]           = CommonView.getLogoFile(LogoFile);
                        newRow["PrintDate"]      = DateTime.Now.ToString("yyyy年MM月dd日");
                        newRow["ItemName_1"]     = "";
                        newRow["ItemName_2"]     = "";
                        newRow["ItemName_3"]     = "";
                        newRow["ItemsQty"]       = totalQty;
                        tb.Rows.Add(newRow);
                    }
                }
                ds.Tables.Add(tb);
                #endregion
            }
            //string str = JSONHelper.Dataset2Json2(ds);
            return(ds);
        }