CN110471653A - 基于c#的bom自动整理方法 - Google Patents
基于c#的bom自动整理方法 Download PDFInfo
- Publication number
- CN110471653A CN110471653A CN201910758625.7A CN201910758625A CN110471653A CN 110471653 A CN110471653 A CN 110471653A CN 201910758625 A CN201910758625 A CN 201910758625A CN 110471653 A CN110471653 A CN 110471653A
- Authority
- CN
- China
- Prior art keywords
- array
- bom
- sequence
- data
- row
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明提出一种基于C#的BOM自动整理方法,属于电路设计领域。本发明技术方案要点为:基于PCB设计工具中执行脚本文件,选择导出的字段原型后,导出BOM源数据表,同时基于C#编程语言编写控制台整理程序,以及使用数组的方式保存每个步骤中整理好的数据,并通过DLL接口,将数据写入整理表中,最终实现BOM的整理工作。本发明解决了现有的BOM表整理主要依靠人工的不足,同时对PCB导出的BOM在整理的过程使用c#编程语言编程,将各个整理好的数据用数组进行保存,当所有的物料均按照要求整理完成后,再统一写回EXCEL表中,解决了人工整理的不可靠和直接在EXCEL中整理时间长的问题。
Description
技术领域
本发明涉及电路设计技术,特别涉及一种基于C#的BOM自动整理方法。
背景技术
随着PCB上使用物料的个数和种类越来越多,硬件开发人员需要整理的量越大。当数量为几个,种类很少的时候,大概几分钟就能搞定,但当数量庞大,种类繁多的物料出现时,硬件开发人员可能会花费几天的时间才能整理完毕,而且还不能保证其正确性。这时,急需一种自动整理的解决方案来解决该问题。
发明内容
本发明的目的是提供一种基于C#的BOM自动整理方法,解决现有的BOM表整理主要依靠人工的不足,同时对PCB导出的BOM在整理的过程使用c#编程语言编程,将各个整理好的数据用数组进行保存,当所有的物料均按照要求整理完成后,再统一写回EXCEL表中,解决了人工整理的不可靠和直接在EXCEL中整理时间长的问题。
本发明解决其技术问题,采用的技术方案是:基于C#的BOM自动整理方法,包括:
基于PCB设计工具中执行脚本文件,选择导出的字段原型后,导出BOM源数据表,同时基于C#编程语言编写控制台整理程序,以及使用数组的方式保存每个步骤中整理好的数据,并通过DLL接口,将数据写入整理表中,最终实现BOM的整理工作。
具体的是,整理的BOM源数据表由PCB设计工具执行脚本文件生成,BOM源数据表的字段是通过执行脚本时选择产生的。
进一步的是,所述C#编程语言能够直接使用DLL接口Microsoft.Office.Interop.Excel来执行BOM源数据表中数据的修改、删除和写入。
具体的是,所述控制台整理程序对BOM源数据表的具体整理步骤如下:
步骤101、创建新表并拷贝BOM源数据到该表中准备整理;
步骤102、删除表中与物料无关的数据;将具有无效数据的行保存到二维数组数组1中;
步骤103、比较行与行的数据,将两行中含有相同的VALUE,DECAL,MODEL,CODE项进行合并,并生成新标题列位号和数量,将合并的NAME用逗号隔开,并将最终值放入位号列和将位号个数放入数量列,最后删除被合并的行;
步骤104、轮询下一行被比较数据,完成参数项1的比较和合并;
步骤105、轮询下一行比较数据,重复上面操作,完成整个数据表的合并工作;
步骤106、选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其按照该顺序排序,对CODE值带“DG,DZ,DR”的行,将其按照DECAL为“0402-0603-0805-1206-1210”的顺序排序,对CODE值带“QJ,JC”的行,将其按照CODE从小到大的顺序排序;
步骤107、将位号从小到大的顺序排序;
步骤108、清空整理表;
步骤109、按照数组a,数组b,数组c,数组d,数组e,数组1的顺序将数组中的数据写入整理表中;
步骤110、修改NAME为序号,并对数据列填充数据序号;
步骤111、将表字段名为CODE修改为物料代码,将字段名为MODEL修改为器件型号;添加表头,记录日期,公司,部门,订单号等附加信息。
进一步的是,步骤106中,选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其按照该顺序排序具体实现方法为:轮询表数据项,分别选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其分别保存到二维数组数组a、数组b、数组c、数组d及数组e中。
具体的是,步骤106中,对CODE值带“DG,DZ,DR”的行,将其按照DECAL为“0402-0603-0805-1206-1210”的顺序排序具体实现方法为:轮询数组a、数组b及数组c,并将其按照DECAL为“0402-0603-0805-1206-1210”的顺序进行排序。
进一步的是,步骤106中,对CODE值带“QJ,JC”的行,将其按照CODE从小到大的顺序排序具体实现方法:轮询数组d及数组e,并将其按照CODE从小到大的顺序进行排序。
具体的是,步骤107中,将位号从小到大的顺序排序具体实现方法:
步骤1071、将数组a、数组b、数组c、数组d及数组e的位号,通过字符串的split函数按照逗号分割;
步骤1072、将分割后的值保存到一维数组数组a中,通过数组的Sort函数,将位号按从小到大的顺序进行排序整理后,回写二维数组数组a、数组b、数组c、数组d及数组e;
步骤1073、清空整理表;
步骤1074、按照数组a、数组b、数组c、数组d、数组e及数组e的顺序将数组中的数据写入整理表中。
本发明的有益效果是,通过上述基于C#的BOM自动整理方法,解决了物料数量和种类庞大时,硬件人员需要一项一项的整理BOM的繁琐性;同时通过数组保存排序的数据方式,解决了在BOM表中一直写表的程序执行效率低下的问题,并且,本发明可极大减少硬件开发人员工作量,弥补了人工整理的不足,提高了整理的可靠性,减少了出错率,提高了整理的效率。
具体实施方式
下面结合实施例,详细描述本发明的技术方案。
本发明所述基于C#的BOM自动整理方法,包括:
基于PCB设计工具中执行脚本文件,选择导出的字段原型后,导出BOM源数据表,同时基于C#编程语言编写控制台整理程序,以及使用数组的方式保存每个步骤中整理好的数据,并通过DLL接口,将数据写入整理表中,最终实现BOM的整理工作。控制台整理程序通过数组来保存每个步骤中整理好的数据,这样可防止不停的写入数据表,程序执行效率低下的问题。
上述方法中,整理的BOM源数据表由PCB设计工具执行脚本文件生成,BOM源数据表的字段是通过执行脚本时选择产生的。
C#编程语言能够直接使用DLL接口Microsoft.Office.Interop.Excel来执行BOM源数据表中数据的修改、删除和写入。
控制台整理程序对BOM源数据表的具体整理步骤如下:
步骤101、创建新表并拷贝BOM源数据到该表中准备整理;
步骤102、删除表中与物料无关的数据;将具有无效数据的行保存到二维数组数组1中;
步骤103、比较行与行的数据,将两行中含有相同的VALUE,DECAL,MODEL,CODE项进行合并,并生成新标题列位号和数量,将合并的NAME用逗号隔开,并将最终值放入位号列和将位号个数放入数量列,最后删除被合并的行;
步骤104、轮询下一行被比较数据,完成参数项1的比较和合并;
步骤105、轮询下一行比较数据,重复上面操作,完成整个数据表的合并工作;
步骤106、选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其按照该顺序排序,对CODE值带“DG,DZ,DR”的行,将其按照DECAL为“0402-0603-0805-1206-1210”的顺序排序,对CODE值带“QJ,JC”的行,将其按照CODE从小到大的顺序排序;
步骤107、将位号从小到大的顺序排序;
步骤108、清空整理表;
步骤109、按照数组a,数组b,数组c,数组d,数组e,数组1的顺序将数组中的数据写入整理表中;
步骤110、修改NAME为序号,并对数据列填充数据序号;
步骤111、将表字段名为CODE修改为物料代码,将字段名为MODEL修改为器件型号;添加表头,记录日期,公司,部门,订单号等附加信息。
步骤106中,选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其按照该顺序排序具体实现方法为:轮询表数据项,分别选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其分别保存到二维数组数组a、数组b、数组c、数组d及数组e中。
步骤106中,对CODE值带“DG,DZ,DR”的行,将其按照DECAL为“0402-0603-0805-1206-1210”的顺序排序具体实现方法为:轮询数组a、数组b及数组c,并将其按照DECAL为“0402-0603-0805-1206-1210”的顺序进行排序。
步骤106中,对CODE值带“QJ,JC”的行,将其按照CODE从小到大的顺序排序具体实现方法:轮询数组d及数组e,并将其按照CODE从小到大的顺序进行排序。
步骤107中,将位号从小到大的顺序排序具体实现方法:
步骤1071、将数组a、数组b、数组c、数组d及数组e的位号,通过字符串的split函数按照逗号分割;
步骤1072、将分割后的值保存到一维数组数组a中,通过数组的Sort函数,将位号按从小到大的顺序进行排序整理后,回写二维数组数组a、数组b、数组c、数组d及数组e;
步骤1073、清空整理表;
步骤1074、按照数组a、数组b、数组c、数组d、数组e及数组e的顺序将数组中的数据写入整理表中。
实施例
本发明实施例基于C#的BOM自动整理方法在具体应用时,包括如下步骤:
一、使用PCB设计工具,执行脚本,选择需要导出BOM的字段名,分别为NAME,VALUE,DECAL,MODEL,CODE,得到整理的BOM源数据表。
二、使用C#语言编写控制台程序,将BOM源数据表放入程序工程指定目录,启动程序开始进行自动整理工作。
三、创建新表并拷贝源BOM数据到该表中,删除BOM源数据表无关物料的数据项,将具有无效数据的行保存到二维数组数组1中。
四、比较行与行的数据,将两行中含有相同的VALUE,DECAL,MODEL,CODE项进行合并,并生成新标题列位号和数量,将合并的NAME用逗号隔开,并将最终值放入位号列和将位号个数放入数量列,最后删除被合并的行;轮询下一行被比较数据,完成参数项1的比较和合并;轮询下一行比较数据,重复上面操作,完成整个数据表的合并工作。
五、轮询表数据项,分别选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其分别保存到二维数组数组a、数组b、数组c、数组d及数组e中;轮询数组a、数组b及数组c,并将其按照DECAL为“0402-0603-0805-1206-1210”的顺序进行排序;轮询数组d,数组e,并将其按照CODE从小到大的顺序进行排序。
六、将数组a、数组b、数组c、数组d及数组e的位号,通过字符串的split函数按照逗号分割,将分割后的值保存到一维数组数组a中,通过数组的Sort函数,将位号按从小到大的顺序进行排序整理后,回写二维数组数组a、数组b、数组c、数组d及数组e。
七、清空整理表;按照数组a、数组b、数组c、数组d及数组e,数组1的顺序将数组中的数据写入整理表中。
八、修改NAME为序号,并对数据列填充数据序号;将表字段名为CODE修改为物料代码,将字段名为MODEL修改为器件型号;添加表头,记录日期,公司,部门,订单号等附加信息。
本发明上述实施例的技术方案,通过该方法对BOM进行自动整理,极大的减少了硬件开发人员的工作量,提高了BOM整理工作效率;以数组的方式暂时保存排序好的数据也在一定程度上提高了整理程序的执行效率,从而提高BOM整理的工作效率;控制台整理程序方式整理BOM数据,弥补了人工整理的不足,提高了整理的可靠性,减少了出错率。
Claims (8)
1.基于C#的BOM自动整理方法,其特征在于,包括:
基于PCB设计工具中执行脚本文件,选择导出的字段原型后,导出BOM源数据表,同时基于C#编程语言编写控制台整理程序,以及使用数组的方式保存每个步骤中整理好的数据,并通过DLL接口,将数据写入整理表中,最终实现BOM的整理工作。
2.根据权利要求1所述的基于C#的BOM自动整理方法,其特征在于,整理的BOM源数据表由PCB设计工具执行脚本文件生成,BOM源数据表的字段是通过执行脚本时选择产生的。
3.根据权利要求1所述的基于C#的BOM自动整理方法,其特征在于,所述C#编程语言能够直接使用DLL接口Microsoft.Office.Interop.Excel来执行BOM源数据表中数据的修改、删除和写入。
4.根据权利要求1所述的基于C#的BOM自动整理方法,其特征在于,所述控制台整理程序对BOM源数据表的具体整理步骤如下:
步骤101、创建新表并拷贝BOM源数据到该表中准备整理;
步骤102、删除表中与物料无关的数据;将具有无效数据的行保存到二维数组数组1中;
步骤103、比较行与行的数据,将两行中含有相同的VALUE,DECAL,MODEL,CODE项进行合并,并生成新标题列位号和数量,将合并的NAME用逗号隔开,并将最终值放入位号列和将位号个数放入数量列,最后删除被合并的行;
步骤104、轮询下一行被比较数据,完成参数项1的比较和合并;
步骤105、轮询下一行比较数据,重复上面操作,完成整个数据表的合并工作;
步骤106、选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其按照该顺序排序,对CODE值带“DG,DZ,DR”的行,将其按照DECAL为“0402-0603-0805-1206-1210”的顺序排序,对CODE值带“QJ,JC”的行,将其按照CODE从小到大的顺序排序;
步骤107、将位号从小到大的顺序排序;
步骤108、清空整理表;
步骤109、按照数组a,数组b,数组c,数组d,数组e,数组1的顺序将数组中的数据写入整理表中;
步骤110、修改NAME为序号,并对数据列填充数据序号;
步骤111、将表字段名为CODE修改为物料代码,将字段名为MODEL修改为器件型号;添加表头,记录日期,公司,部门,订单号等附加信息。
5.根据权利要求4所述的基于C#的BOM自动整理方法,其特征在于,步骤106中,选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其按照该顺序排序具体实现方法为:轮询表数据项,分别选定CODE值带“DG,DZ,DR,QJ,JC”的行,并将其分别保存到二维数组数组a、数组b、数组c、数组d及数组e中。
6.根据权利要求4所述的基于C#的BOM自动整理方法,其特征在于,步骤106中,对CODE值带“DG,DZ,DR”的行,将其按照DECAL为“0402-0603-0805-1206-1210”的顺序排序具体实现方法为:轮询数组a、数组b及数组c,并将其按照DECAL为“0402-0603-0805-1206-1210”的顺序进行排序。
7.根据权利要求4所述的基于C#的BOM自动整理方法,其特征在于,步骤106中,对CODE值带“QJ,JC”的行,将其按照CODE从小到大的顺序排序具体实现方法:轮询数组d及数组e,并将其按照CODE从小到大的顺序进行排序。
8.根据权利要求4所述的基于C#的BOM自动整理方法,其特征在于,步骤107中,将位号从小到大的顺序排序具体实现方法:
步骤1071、将数组a、数组b、数组c、数组d及数组e的位号,通过字符串的split函数按照逗号分割;
步骤1072、将分割后的值保存到一维数组数组a中,通过数组的Sort函数,将位号按从小到大的顺序进行排序整理后,回写二维数组数组a、数组b、数组c、数组d及数组e;
步骤1073、清空整理表;
步骤1074、按照数组a、数组b、数组c、数组d、数组e及数组e的顺序将数组中的数据写入整理表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910758625.7A CN110471653A (zh) | 2019-08-16 | 2019-08-16 | 基于c#的bom自动整理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910758625.7A CN110471653A (zh) | 2019-08-16 | 2019-08-16 | 基于c#的bom自动整理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110471653A true CN110471653A (zh) | 2019-11-19 |
Family
ID=68511456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910758625.7A Pending CN110471653A (zh) | 2019-08-16 | 2019-08-16 | 基于c#的bom自动整理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110471653A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073679A1 (en) * | 2005-08-26 | 2007-03-29 | Chang-Wen Fu | System and method for generating a bill of material file |
CN107291762A (zh) * | 2016-04-05 | 2017-10-24 | 希姆通信息技术(上海)有限公司 | Bom表整理方法及系统 |
CN107633353A (zh) * | 2017-09-08 | 2018-01-26 | 南京国电南自电网自动化有限公司 | 基于excel表vba的物料bom表合规检查方法 |
CN108388743A (zh) * | 2018-03-06 | 2018-08-10 | 深圳市图敏智能视频股份有限公司 | 一种物料清单整理方法 |
CN109325730A (zh) * | 2018-08-28 | 2019-02-12 | 四川九州电子科技股份有限公司 | 一种支持直接将bom导入生产系统的方法 |
CN110059121A (zh) * | 2019-03-12 | 2019-07-26 | 广州明珞汽车装备有限公司 | 一种快速导出物料清单的方法、系统、装置和存储介质 |
-
2019
- 2019-08-16 CN CN201910758625.7A patent/CN110471653A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070073679A1 (en) * | 2005-08-26 | 2007-03-29 | Chang-Wen Fu | System and method for generating a bill of material file |
CN107291762A (zh) * | 2016-04-05 | 2017-10-24 | 希姆通信息技术(上海)有限公司 | Bom表整理方法及系统 |
CN107633353A (zh) * | 2017-09-08 | 2018-01-26 | 南京国电南自电网自动化有限公司 | 基于excel表vba的物料bom表合规检查方法 |
CN108388743A (zh) * | 2018-03-06 | 2018-08-10 | 深圳市图敏智能视频股份有限公司 | 一种物料清单整理方法 |
CN109325730A (zh) * | 2018-08-28 | 2019-02-12 | 四川九州电子科技股份有限公司 | 一种支持直接将bom导入生产系统的方法 |
CN110059121A (zh) * | 2019-03-12 | 2019-07-26 | 广州明珞汽车装备有限公司 | 一种快速导出物料清单的方法、系统、装置和存储介质 |
Non-Patent Citations (2)
Title |
---|
洪洲等: "《C#.NET应用开发项目教程》", 31 May 2012, 东软电子出版社 * |
蓝关故人: "字符串分割为数组的排序sort()方法", 《CSDN博客》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101266606B (zh) | 一种基于Oracle数据库的在线数据迁移方法 | |
Tocher | Review of simulation languages | |
Smith et al. | Optimizing the performance of a relational algebra database interface | |
Codd | Relational database: A practical foundation for productivity | |
US5870743A (en) | Method and apparatus for parallelizing operations that create a table | |
US7617443B2 (en) | Flexible multiple spreadsheet data consolidation system | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN110517140A (zh) | 一种区块链智能合约交易并发执行方法 | |
CN102855177A (zh) | 一种单元测试的方法和装置 | |
Marcoulides et al. | Model specification searches in structural equation modeling using Tabu search | |
CN106325833B (zh) | 一种用于企业信息管理的代码生成方法 | |
CN107315763A (zh) | 一种针对Oracle数据库跨平台数据迁移方法 | |
EP1217515A1 (en) | Workflow system | |
CN100501737C (zh) | 用于内容受管制的数据的数据库方案及其创建方法和系统 | |
JP7055064B2 (ja) | データベースマイグレーション支援システム及びプログラム | |
Glazer | Using python and Eppy for a large national simulation study | |
Tsur | Deductive databases in action | |
CN110471653A (zh) | 基于c#的bom自动整理方法 | |
US20230333973A1 (en) | Retrying failed test cases in software testing using parallel threads | |
Winkler et al. | The DISCRETE edit system | |
US7966333B1 (en) | User segment population techniques | |
CN113505184A (zh) | 一种系统间信息关系图的自动生成方法及存储介质 | |
CN107315587B (zh) | 一种基于二次链接的航天器在轨维护注入码生成方法 | |
Berg | RELTREE and Risk Spectrum: experience from and development of PSA software for PCs | |
Renfro | The early development of econometric modeling languages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191119 |
|
RJ01 | Rejection of invention patent application after publication |