一种条码生成和打印的方法、装置及系统与流程

文档序号:14176020阅读:368来源:国知局
本发明涉及条码生成和打印领域,特别涉及一种条码生成和打印的方法、装置及系统。
背景技术
::条形码(barcode)是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)排成的平行线图案。条形码可以标出物品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等许多信息,因而在商品流通、图书管理、邮政管理、银行系统等许多领域都得到广泛的应用。现有技术中,条形码的生成的数据离线打印,这样生成的数据只是一个bin(一种文件格式binary的缩写)对应的数据,那么对每个bin的数据都要用此工具重新生成,比较麻烦。每次生成的数据是一个bin,所以多个bin则要每次用工具生成,比较麻烦;生成的是离线数据,下次打印有可能与其他bin对应数据混淆;导入的数据对应位置是确定的数据格式,比如浮点数或以数字开头的数,并且导入数据库的数据固定;离线数据有可能与其他bin对应数据混淆;不能确定某个数据是否已打印及随时补印。技术实现要素:为了解决以上的问题,本发明提供一种条码生成和打印的方法、装置及系统。本发明公开了一种条码生成和打印的方法,包括:s1.将多行的条形码数据制作成表格;s2.将表格中的数据导入至数据库;s3.将数据库中的流水码数据导出打印成标签。进一步地,所述的步骤s3还包括步骤s4,具体包括:将打印过的条形码数据的数据库加以更新。进一步地,所述的步骤s2具体是:利用vs2015开发工具向指定的数据库中导入表格,并通过所述的数据库指定的订单号与bin号查询该bin所对应的其他数据,将这些数据根据打印需求写入数据库的标签文件。进一步地,所述的步骤s3,具体是:通过shellexecute函数打开用于打印的批处理文件,通过所述的批处理文件调用打印机以打印所述的标签文件,形成标签。本发明公开了一种条码生成和打印的装置,包括:条形码表格制作单元,用于将多行的条形码数据制作成表格;导入单元,用于将表格中的数据导入至数据库;打印单元,用于将数据库中的流水码数据导出打印成标签。进一步地,所述的打印单元之后还包括更新单元,具体包括:用于将打印过的条形码数据的数据库加以更新。进一步地,所述的导入单元具体是:利用vs2015开发工具向指定的数据库中导入表格,并通过所述的数据库指定的订单号与bin号查询该bin所对应的其他数据,将这些数据根据打印需求写入数据库的标签文件。进一步地,所述的打印单元,具体是:通过shellexecute函数打开用于打印的批处理文件,通过所述的批处理文件调用打印机以打印所述的标签文件,形成标签。本发明公开了一种条码生成和打印的系统,包括数据库、与数据库相连接的显示终端及打印终端、与所述的数据库、显示终端及打印终端均相连接的控制器,其特征在于,所述的控制器具有上述的装置。实施本发明的一种条码生成和打印的方法、装置及系统,具有以下有益的技术效果:区别于现有技术中每次生成的数据是一个bin,所以多个bin则要每次用工具生成,比较麻烦;本申请与数据库连接,通过表导入工具将数据导入数据库,能够将更多相似产品的数据通过表导入工具导入数据库实现打印。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明的第一实施例条码生成和打印的方法流程图;图2是本发明的第一实施例条码生成和打印的装置方框图;图3是本发明的实施例条码生成和打印的系统模块图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。请参阅图1,本发明的方法的第一实施例,一种条码生成和打印的方法,包括:s1.将多行的条形码数据制作成表格;本申请与数据库连接,通过表导入工具将数据导入数据库并可使用导出打印工具将数据库中的数据更新,每打印一次将更新数据库中该bin对应的数据;本数据库中一个bin号对应一组数据(或者一行数据),使数据库中的数据简单清晰。首先创建订单文件夹名,文件夹命名格式第四位必须是“-”,位数最小为12位,如201-0013401_50;其次生成类型选择“mac+sn”是指生成卷带的数据,选择之后只有卷带数据可操作,选择“ntk326”是指生成外箱的数据,同样只能操作外箱数据对应的位置;年尾号、月号(十六进制)、日期都是系统获取的,其他可选择的数据选择之后在代码中都对应相应的显示规则,如电压选择“2.6-2.7”,生成数据对应显示“a”,手动可改正的流水码都是达到最大值后归一(这些都是在程序中设定好的),如wo小工单号在达到“zz”下一位从“01”开始,eqp流水码在达到“zzz”下一位从“001”开始。s2.将表格中的数据导入至数据库;首先根据表的格式将数据制作成表,然后将表格通过表导入工具将数据导入数据库,再通过导出打印工具依据标签数量的变化更新数据库中流水码数据并导出数据打印。使用这种方式不用直接生成数据,制作的表格中每一行数据就是一个bin,然后在导出打印工具中输入标签数,点击打印将在d:/barcode目录下会生成该bin号对应的数据,并向此目录下批处理文件写入需要打印的标签数,再自动运行批处理文件,开启条码软件打印并打印对应条码模板的条码。s3.将数据库中的流水码数据导出打印成标签。在导出打印工具程序中,对数据库中的数据进行了分割,使导出打印生成的数据与条码打印系统中数据对应的域关联,并在模板中将流水码数据对应的域按照三十六进制设置序列和归位数据。本申请连接了数据库,可将数据导入到数据库保存,并且数据库中每一行对应一个bin,这样下次打印数据不用再使用现有技术的工具再次生成数据而使用导出打印工具直接从数据库提取bin号对应的数据打印即可。现有技术中对条码模板不做更多设置,而本申请对条码模板中有关流水码数据的设置要多一些。步骤s3还包括步骤s4,具体包括:将打印过的条形码数据的数据库加以更新。具体包括:将打印过的条形码中的数据依据打印数量进行数据库的更新,还包括保存时间的更新、保存数量的更新等等。步骤s2具体是:利用vs2015开发工具向指定的数据库中导入表格,并通过所述的数据库指定的订单号与bin号查询该bin所对应的其他数据,将这些数据根据打印需求写入数据库的标签文件。步骤s3,具体是:通过shellexecute函数打开用于打印的批处理文件,通过所述的批处理文件调用打印机以打印所述的标签文件,形成标签。本方案借助vs2015开发工具向指定的数据库中导入表格,并通过该数据库指定的订单号与bin号查询该bin所对应的其他数据,将这些数据根据打印需求写入文件,并通过shellexecute函数打开某个批处理文件,通过该批处理文件调用打印机打印固定模板的标签。vs2015支持多种设备的开发工具,可编写面向ios、android和windows的应用程序和游戏以及共享通用基本代码,支持多种语言。向数据库中导入表格数据,使用insertcolumn(intncol,lpctstrlpszcolumnheading,intnformat,intnwidth,intnsubitem)向list列表中插入一列,并用mysql_init()初始化数据库对象,使用mysql_real_connect(mysql*mysql,constchar*host,constchar*user,constchar*passwd,constchar*db,unsignedintport,constchar*unix_socket,unsignedlongclient_flag)连接数据库;使用coinitialize函数初始化excel表格接口并createdispatch验证office文件是否可以正确运行,然后在弹出的路径文件中选择要导入的表格,getworkbooks()获得工作表的名称并open()打开这个表格,然后利用这个表格模板创建新的表格文档attachdispatch();并getsheets()统计表格列数,attachdispatch(sheet.getusedrange())、attachdispatch(usedrange.getrows())、attachdispatch(sheet.getcells(),true)选择得到单元格元素,getrange()取表格中的数据,并通过variant数据类型控制数据库表格中数据的类型,比如某列中数据是浮点数,则用dblval转换,字符串则用pbstrval转换,正确取到所有数据后通过createtable命令创建表格,mysql_num_fields与mysql_fetch_row遍历数据库表格,将表格中所有取到的数据插入数据库insertitem()对应的行列中。导出打印中也需先mysql_init()初始化数据库对象,mysql_real_connect成功连接数据库后,通过select语句查询数据库中bin的值,当bin在数据库中存在时,mysql_num_fields返回该行(bin对应)中字段的数量,调用mysql_real_query遍历数据库,mysql_use_result()产生一个结果集,mysql_fetch_row()调用这个结果集,对数据库中每一行分别进行检索,直接从服务器读取数据,mysql_fetch_row()读取数据后将这些数据保存在row中,并使用mid()函数对这些数据按需求截取组成一个以逗号分隔的字符串,将这个字符串写入自定义的txt文件中,因为有些数据的某几位是三十六进制的流水号,需要将这些数据序列化,所以需要使用自定义封装的十进制与三十六进制的函数:convertto36(intval)、changenum(cstringstr,intlength);同时通过界面控件输入的打印条码数量num向d:\barcode\barprint.bat文件中”/s=”写入打印机命令”/s=num”,然后根据打印数量使用update命令更新数据库数据并在程序中调用shellexecute(hwnd:hwnd,operation,filename,parameters,directory:pchar,showcmd:integer)函数运行并打开外部程序bartender打印软件,打印软件将依据标签模板打印数据。本申请的优点在于:与数据库连接,数据不易丢失;程序中自动启动打印程序,不需人为设定数据;可更新数据库中需要变化的数据。下面介绍实现以上方法的装置,装置中没记载的部分,可以参考以上方法的记载。请参阅图2、一种条码生成和打印的装置1,包括:条形码表格制作单元10,用于将多行的条形码数据制作成表格;导入单元20,用于将表格中的数据导入至数据库;打印单元30,用于将数据库中的流水码数据导出打印成标签。打印单元30之后还包括更新单元40,具体包括:用于将打印过的条形码数据的数据库加以更新。导入单元20具体是:利用vs2015开发工具向指定的数据库中导入表格,并通过所述的数据库指定的订单号与bin号查询该bin所对应的其他数据,将这些数据根据打印需求写入数据库的标签文件。打印单元30,具体是:通过shellexecute函数打开用于打印的批处理文件,通过所述的批处理文件调用打印机以打印所述的标签文件,形成标签。请参阅图3、一种条码生成和打印的系统100,包括数据库200、与数据库200相连接的显示终端300及打印终端350、与数据库200、显示终端300及打印终端350均相连接的控制器500,控制器500具有上述的装置1。本申请的优点在于:进步1:与数据库连接,数据根据标签数量自动更新;进步2:启动外部程序(打印机);进步3:程序中使用bartender命令控制数据的序列化等;本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1