|
‌VBA代码需求说明:使用销售订单数据按规则生成流转卡‌
‌一、 核心目标‌
编写VBA代码,将【销售订单】工作表中的销售明细数据,按照【流转卡模板】的格式样式,在【流转卡输出】工作表中批量生成流转卡,每张流转卡间隔2行。
‌二、 基础数据映射规则‌
‌客户名称‌:将【销售订单】的【单位全名】列内容填入【流转卡模板】的B2单元格。
‌产品名称‌:将【销售订单】的【商品全名】列内容填入【流转卡模板】的B3单元格。
‌产品规格‌:将【销售订单】的【规格】列内容填入【流转卡模板】的B4单元格。
‌BOM配置‌:将【销售订单】的【BOM清单名称】列内容填入【流转卡模板】的B5单元格。
‌包装备注‌:将【销售订单】的【单据备注】列内容填入【流转卡模板】的B6单元格。
‌制卡日期‌:在【流转卡模板】的E2单元格填入系统当天日期,格式为 yyyy-mm-dd。
‌编号回填‌:将生成的每一张流转卡的编号,回填到【销售订单】对应行的Y列中,多张卡号用换行符分隔。
‌三、 流转卡分类与生成逻辑‌
流转卡的生成逻辑取决于【单据备注】的内容,分为以下四类:
‌第一类:普通类‌
‌特征‌:【单据备注】中‌不包含‌“对X”或“混X”字样。
‌编号规则‌:yymmdd-三位流水号 (例如:260423-001)。
‌数量与张数‌:每行数据需生成的流转卡张数 = 订单数量 / 数量关系。每张卡的数量填写 数量关系。
‌示例‌:行号1,订单数量500,数量关系250,则生成2张卡:
卡1:编号 260423-001,数量 250
卡2:编号 260423-002,数量 250
‌第二类:纯配对类‌
‌特征‌:【单据备注】中‌仅包含‌"对X"字样(如"对1"、"对2"),且‌不包含‌"混X"字样。
‌配对逻辑‌:同一订单编号下,备注为"对1"的两行产品组成一对,备注为"对2"的两行产品组成另一对,以此类推
配对本质‌:两个不同的产品组合成一个完整的产品单元
‌配对组识别‌:相同"对X"标记的产品行自动归为同一配对组
‌配对数量‌:每个配对组通常包含2行产品数据
‌编号规则‌:yymmdd-三位流水号-对X/Y。其中X/Y表示该产品在配对组内的序号/配对组总产品数(通常为2)。
‌数量与张数‌:每行数据需生成的流转卡张数 = (订单数量 / 数量关系) * 2。每张卡的数量 = 数量关系 * 0.5。
‌示例‌:行号2和3是一对同属于【对1】组,订单数量均为500,数量关系均为250。需要生成8张流转卡, 只需要4个 三位流水号
行2生成4张卡:编号分别为 260423-003-对1/2、260423-004-对1/2、260423-005-对1/2、260423-006-对1/2,每张卡数量均为 125。
行3生成4张卡:编号分别为 260423-003-对2/2、260423-004-对2/2、260423-005-对2/2、260423-006-对2/2,每张卡数量均为 125。
‌第三类:纯混装类‌
‌特征‌:同一订单编号下,【单据备注】中‌仅包含‌“混X”(如混1、混2),各“混X”组中 没有包换“对X”字样的。行数不一定挨在一起。
‌混装逻辑‌:同一订单编号下,备注为相同“混X”标记的所有行属于一个混装组。
‌编号规则‌:yymmdd-三位流水号-混A/B。其中A/B表示该产品在混装组内的顺序/混装组内产品种类总数。
‌数量与张数‌:混装组内‌每行数据生成一张流转卡‌。每张卡的数量 = 该行的 订单数量。
‌示例1‌:行号11、12、13同属“混1”组。
行11:编号 260423-017-混1/3,数量 300
行12:编号 260423-017-混2/3,数量 100
行13:编号 260423-017-混3/3,数量 20
‌示例‌2:行号18、20、21同属“混1”组。
行18:编号 260423-028-混1/3,数量 300
行20:编号 260423-028-混2/3,数量 100
行21:编号260423-028-混3/3,数量 20
‌第四类:混装中包含配对类‌
‌特征‌:同一订单编号下,【单据备注】中‌同同一“混X”组中某些行也存在“对Y”的情况,即一个混装组内包含了配对产品。行数不一定挨在一起。
‌复合编号规则‌:yymmdd-三位流水号[-对X/Y][-混A/B]。
同一混装组共享一个流水号。
若某行有配对标记,则编号中包含对X/Y。
混A/B中的B代表该混装组内‌独立单元‌的总数。一个配对组(无论包含几行)计为1个单元,一个独立的非配对产品行也计为1个单元。
‌示例分析1(行6-8)‌:属于“混3”组,其中包含一个“对2”配对组(行6、7)和一个独立产品(行8,仅“混3”)。
行6(对2,混3):260423-011-对1/2-混1/2 (配对组第1个,混装组第1个单元)
行7(对2,混3):260423-011-对2/2-混1/2 (配对组第2个,混装组第1个单元)
行8(混3):260423-011-混2/2 (混装组第2个单元)
‌示例分析2(行22-26)‌:属于“混3”组,其中包含两个配对组(“对2”组:行22、23;“对3”组:行25、26)和一个独立产品(行24,仅“混3”)。
行22(对2,混3):260423-029-对1/2-混1/3
行23(对2,混3):260423-029-对2/2-混1/3
行24(混3):260423-029-混2/3
行25(对3,混3):260423-029-对1/2-混3/3
行26(对3,混3):260423-029-对2/2-混3/3
‌四、 全局执行流程‌
按【销售订单】中【订单编号】及行顺序从上到下处理。
根据上述四类规则,判断每一行或每一组(配对组/混装组)需要生成的流转卡张数及每张卡的详细信息。
按照【流转卡模板】格式,在【流转卡输出】工作表中依次生成每一张流转卡,并填充对应数据。
将生成的所有流转卡编号,按行回填至【销售订单】的Y列。最终回填到y列的流转看编号 与 z列的举例一致,z列只是为了ai理解提现按照逻辑手写的,实际应用时没有
流转卡生成.zip
(10.7 KB, 下载次数: 0)
|
重要声明:以上内容仅代表作者神鰰神观点,不代表本站测量协会立场。如有涉及侵权请尽快告知,我们将会在第一时间处理。作者原创内容未经允许不得转载!
站长联系邮箱:1339305021@qq.com
站长联系微信:dddnnbbb
|