利用集成云脚本根据分录某字段将一张单进行拆分为多个单原创
金蝶云社区-杨发
杨发
3人赞赏了该文章 590次浏览 未经作者许可,禁止转载编辑于2022年12月26日 10:44:08

从网页上复制的空格有问题,导致在集成云脚本工具中执行失败

源数据:

{
  "name":"name",
  "number":1234,
  "entryentity":[
    {
      "suppliernumber":"a",
      "name":"name1",
    },
    {
       "suppliernumber":"b",
      "name":"name2",
    },
    {
       "suppliernumber":"c",
      "name":"name3",
    },
    {
       "suppliernumber":"c",
      "name":"name4",
    }
  ]
}
现在想根据分录suppliernumber的内容拆分为不同的单,表头都一样,只是分录不一样,
分为 a,b,c三种,也就生成三个目标单。


脚本:

var QYD={
    "name":"name",
    "number":1234,
    "entryentity":[
        {
            "suppliernumber":"a",
            "name":"name1",
        },
        {
            "suppliernumber":"b",
            "name":"name2",
        },
        {
            "suppliernumber":"c",
            "name":"name3",
        },
        {
            "suppliernumber":"c",
            "name":"name4",
        }
    ]

};
var entryentity=QYD.entryentity;//取分录
Collection.remove(QYD, e -> (e.key =="entryentity"));//从QYD里移除分录
var list=[];
QYDentryentity=Collection.group(entryentity, e->e.suppliernumber);//把分录按照suppliernumber分组
var keyset=QYDentryentity.entries(key);
var num=0;
for(var key :keyset){//遍历组装分录数据
   list[num]={};
   list[num].entryentity=QYDentryentity[key];   
   num++;
};
for(var value:list){
    value+=QYD;//给每个单加上表头
};
list;//list为单的集合


 结果数据:

[

	{
		"entryentity":[

			{
				"suppliernumber":"a",
				"name":"name1"
			}
		],
		"name":"name",
		"number":1234 
	},

	{
		"entryentity":[

			{
				"suppliernumber":"b",
				"name":"name2"
			}
		],
		"name":"name",
		"number":1234 
	},

	{
		"entryentity":[

			{
				"suppliernumber":"c",
				"name":"name3"
			},

			{
				"suppliernumber":"c",
				"name":"name4"
			}
		],
		"name":"name",
		"number":1234 
	}
]


20220629.zip(0.56KB)

图标赞 3
3人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0