生产制造追溯系统-再说条码打印

前言

在之前的博客中我介绍了如何实现生产现场的条码打印,我们的生活中到处都是条码,一维码、二维码随处可见,更别说一家从事生产制造加工的工厂了,而条码种类繁多、离线打印等情况就直接导致了条码管控上的难度,甚至会出现较为严重的品质事件,上一个版本中我是通过Web应用程序调用 WinForm 中的函数进行打印,WinForm中嵌套了 WebBrowser 来浏览网页,通过这几年的实际运用,这个方法基本能够满足大部分需求,但还是美中不足,由于 WebBrowser 所示用的浏览器内核比较低,导致很多样式无法兼容,尽管网络上有一些方法去改变这个问题(比如webkit,cef,修改注册表等等),但总是或多或少有一些问题。

新的方案,告别 WinForm & WebBrowser

我们本次以生产线 卡通包装 工位为例,进行描述:

通常情况下,操作员会扫描多个彩盒条码,这个扫描的数量一个到多个不等,每一个彩盒上面都有一个唯一的条形码或二维码,当彩盒扫描完成以后需要结束装箱,此时系统应该直接将对应的卡通标贴打印出来,操作员从打印机上撕下卡通标贴并贴于卡通箱,在此之前我们需要提前将卡通标贴的打印模板制作出来并上传至系统中,操作界面如下,支持同一个产品打印多张标贴

此时,我们需要编写一个 Api 来获取服务器上面的模板文件以及需要打印出来的数据列表,关键代码如下:

     string ServerUrl = XmlHelper.GetXmlReader(path, "Config", "Server");
            string Api = XmlHelper.GetXmlReader(path, "Config", "Api");

            //通过 API 获取模板文件*******************************************************************
            string _Btw_Url = Api + "?action=get_carton_label&carton_sn=" + _carton_sn;
            HttpHelper http_btw = new HttpHelper();
            //创建Httphelper参数对象
            HttpItem item_btw = new HttpItem()
            {
                URL = _Btw_Url,//URL必需项
                ContentType = "application/json",
            };

            HttpResult req_result_btw = http_btw.GetHtml(item_btw);
            string btw_str = req_result_btw.Html;
            JObject obj_btw = (JObject)JsonConvert.DeserializeObject(btw_str);
            DataTable dt = Library.JsonLib.ToDataTable(obj_btw["msg"].ToString());

            //通过 API 获取模板文件*******************************************************************
 WebClient web = new WebClient();             

            string _Api_Url = Api + "?action=get_carton_print_list&carton_sn=" + _carton_sn;
            HttpHelper http_data_list = new HttpHelper();
            //创建Httphelper参数对象
            HttpItem item_data_list = new HttpItem()
            {
                URL = _Api_Url,//URL必需项
                ContentType = "application/json",
            };

            HttpResult req_result_data_list = http_data_list.GetHtml(item_data_list);
            string print_str = req_result_data_list.Html;
            JObject obj = (JObject)JsonConvert.DeserializeObject(print_str);
            string _Key = obj["msg"]["key"].ToString();
            string _Value = obj["msg"]["value"].ToString();
            string splitKey = "*";
            string[] keys = _Key.Split(splitKey.ToCharArray(), StringSplitOptions.None);
            string[] values = _Value.Split(splitKey.ToCharArray(), StringSplitOptions.None);

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                _file_url = ServerUrl + "app/cartonlabel/" + dt.Rows[i]["LABEL_FILE"].ToString();
                _file_name = System.Guid.NewGuid().ToString() + "_" + dt.Rows[i]["LABEL_FILE"].ToString();
                web.DownloadFile(_file_url, _directory + _file_name);
                _print();
            }

Api 编写完成之后我们进行发布,发布到本地指定一个文件夹留作备用,现在我们还差一步,那就是如何通过网页在客户端本地打印?大家都知道我们的网站是部署在服务器而非客户端本地的,但是打印的条码必须出现在客户端本地的打印机,此时你可以考虑通过网络共享打印机的办法来实现,但是这种方法非常不稳定,一些安全方面的设置就足以让你内流满面,因此我们可以考虑使用 CassiniDev 来实现,大致思路如下:

  • 新建一个批处理或者其它类型的程序。
  • 在项目中引用 CassiniDev 文件至。
  • 在本地new一个服务实例并启动。

通过如下代码即可启动该服务:

new Server(9001, "/", System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Service"), System.Net.IPAddress.Parse("127.0.0.1"), "", 0, false, false);

在包装之前我们将该服务启动起来,我做了一个简单的界面,如下图所示:

此时,我们需要用到上一步发布的 Api,将发布的 Api 文件拷贝至Service目录,这个Service目录在这个批处理程序的根目录下面,至此所有的前期工作已经做完了,现在只需要调用本地这个Api 即可。 我们选择 MO-00002 这个工单进行演示:

下面开始扫描条码进行包装,该产品的包装容量为每一个卡通箱需要包装 4 个彩盒。

系统提示打印命令发送成功的时候,我们的打印机已经自动将标贴打印出来了,如下图所示:

结论

相对之前的 WebBrowser,目前这种方式可以更好的兼容样式表,比如H5,再就是同一套系统不用分为网页端与客户端,尽管打开的是同一个网站;维护起来也要更加方便。

原文地址:https://www.cnblogs.com/allen0118/p/10804336.html

时间: 2024-08-03 12:54:21

生产制造追溯系统-再说条码打印的相关文章

生产制造追溯系统-通过微信小程序实现移动端报表平台

前言 前两篇文章主要梳理了一下在生产过程中如何更高效.更稳定的实现条码打印,有不少园子里的朋友私信我,互相讨论了一些技术方面的问题,双方都各有收获,再此感谢博客园提供的这个交流平台,让五湖四海的朋友能够汇聚在一起,互相学习.互相进步!! 生产制造追溯系统-条码打印 生产制造追溯系统-再说条码打印 突破,将报表延伸至移动端 最近几年手机应用的发展速度大家有目共睹,就拿移动支付来说,放在十年前根本不敢想象现如今出门完全不用带现金,一部手机足够了,甚至有的地方可以刷脸支付,忘了带手机也没关系:随着科技

生产制造追溯系统

生产制造追溯系统,包括流程控制.客户资料.产品资料.工单资料等基础信息维护,全程条码化管理. 系统特点: 1)采用强大数据采集引擎.整合数据采集渠道,覆盖整个工厂制造现场,保证现场数据的实时.准确.全面 2)全面完整的产品追踪追溯功能 3)生产WIP状况监视 4)个性化门户,通过WEB浏览器,随时随地都能掌握生产现场实时信息 5)打造生产数据采集平台,为质量提高保证 6)更合理计划生产与人员分配,提高生产的效率 7)对作业人员的全面管控 8)实现报表与文档的一致性,实时性 9)通过生产过程的优化

生产制造追溯系统-IQC来料检验

前言 相信大家都知道,任何一家工厂都有自己的仓库,用来存储采购回来的物料,那么在供应商将我们采购的物料送到工厂之后,我们都需要一个检验动作,也就是今天要说的===>IQC来料检验,这个检验动作是非常重要的一个环节,直接关系着品质问题,试想一下如果大批量生产的成品,最后发现原材料是不合格的,这个损失可想而知,不仅仅面临着大量的返工还要承担着客户高昂的罚款以及投诉. 系统代替人工做出最终判定 首先我们必须引用 AQL 国际标准进行批次判定,这个标准无论说到哪里都是能说的过去的,在系统中建立 AQL

基于Web的制造追溯系统DEMO

写在前面 本文不贴任何代码,以图片为主,也许图片更直观,请各位园友谅解! 很久没有写过博客了,这是2016年的第一篇文章:最近主要是忙着完成公司的一个新项目,逛园子的时间都明显少了,只有下班回到家睡觉之前浏览一下首页的文章:也许这是借口,但却也是事实,以前每天凌晨1点之前从不会睡觉(逛论坛.搞程序等),现在下班回来只想睡觉,精力不够:白天在公司要做公司的项目(开弓没有回头箭,要做就必须做好),下班回来还需整合自己的一个Deom,仍然是与生产有关的,毕竟作者从参加工作以来几乎都是从事的生产制造方面

工艺流程管理难怎么办?生产制造ERP系统智能化解

我们买了新手机,为了防刮.防摔.抗污等,都习惯贴膜,而且很多都选钢化膜.那么,您知道这薄薄一片带着AB双面胶的钢化膜,需要经过切割.裁边.抛光.钢化.贴胶.清洗.包装等很多流程生产而成吗?这一系列连续的流程,就是机械行业所说的工艺流程,或加工路线.工艺流程好坏,不仅反映企业生产技术高低,也直接影响产品质量和企业效益,而其数据量大.频繁变化.贯穿全程的特性,更是成为很多生产制造企业管理痛点 智邦国际ERP系统,利用智能.连接.柔性等技术,推出全新的工艺流程机器人管理模式,从工艺流程设计.审核.使用

生产制造ERP对企业信息化管理有哪些帮助?

身处互联网制造时代,对生产制造企业来说,经营管理中最头疼的事情,既不是效率问题,也不是质量和成本问题,而是隐藏在这些现象背后的信息整合难题.用户买了什么.需要生产多少.什么时候生产--企业很难将所有这些信息汇集,所以导致生产过程问题不断,管理混乱.生产制造ERP通过企业一体化管理思想和软件技术,实现客户.销售.产品.合同.采购.库存.生产.委外.财务.办公等信息实时共享和联动,成为生产制造企业信息化管理首选. 一.全方位信息采集 生产制造企业日常经营的信息,涉及不同渠道.环节.部门等,包括线上线

Sun杰瑞生产制造执行系统源码 联系QQ:847129860

一.源码描述    杰瑞生产制造执行系统(MES)可以划分生产线为:产线-工艺段-工序 三段式,并且动态可配置,    可以使得系统满足产线流程的变化.即使产线流程更改只需少量改动就能很好的适应.整体功能    比较完善,可以很方便的进行二次开发使用.二.功能介绍    该源码的功能具体介绍如下:    1.系统管理: 系统配置(参数类别.参数设置.客户端配置.标签打印配置).权限管理    (用户.用户组.用户权限)    2.工厂模型:组织机构(工厂信息.部门信息.岗位信息.人员信息).生产

可视化、高智能、多功能、XML配置型工业条码打印、标签打印解决方案

前言 现代工业生产中,标签打印无处不在,可以说标签就是产品的脸面.标签种类繁琐,特别是在工业生产中,标签信息需要与生产系统相关联,动态地获取打印信息.当然我们可以为每个标签写一个生成程序,但如果标签种类成千上万,那么就需要投入大量的人力.物力.比如一个很小的布局变动也去修改程序代码,显然是不明智的.如何构建一个可视化.高智能.多功能的工业条码打印解决框架,正是我们迫切需要解决的难题. 可视化.高智能.多功能.XML配置型工业条码打印解决方案应运而生,旨在解决上述难题.下面简要的给出部分截图,有兴

c# 条码打印—电子监管码打印

说到条码打印,很多人会说直接调用诸如codesoft 或者bartender之类的软件来打印.没错,简单单独打印是可以使用这些方法.但实际项目应用中所需要的条码打印功能却很复杂,必须结合公司的业务软件才能很到位的打印条码.这时候,咱们不能依赖别人给的软件来打印,必须自己写代码耦合应用程序中去.看下图: 如何打印中国药品电子监管码的条码?看起来很容易,实际上生成药品监管码有一定的命名规则.在这里就不说了,自己上网看一下就明白了.以后大家买药前也可以去http://www1.drugadmin.co