电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

如何实现合并打印

来源:金蝶云社区作者:金蝶2024-09-2317

如何实现合并打印

场景一:  

同一单据的一张单内的合并打印


1、适用版本

金蝶云苍穹 V4.0.014以上


2、解决方案

步骤1:点击数据表格的数据行

步骤2:选择合并依据字段(只能选中数据行中配置的字段),可以有多个合并依据字段

步骤3:选择需要汇总的字段,

若合并汇总字段为数值类字段时,则汇总字段进行相加。

若合并汇总字段为文本类字段时,则多个内容以逗号相隔汇总在一个单元格中。

单据数据:

打印结果:




场景二: 

同一单据的多单合并打印


1.1、适用版本

金蝶云苍穹 V6.0.9及以上


2.1、解决方案

步骤1:开启多单合并打印参数:

步骤2:设置合并依据字段和合并汇总字段


单据数据:


打印结果:


2.2、适用版本

金蝶云苍穹 V6.0.9以下


3.2、解决方案

以采购申请的一个常见场景为例,把同一个申请人的单据合并打印在一张纸上,不同的申请人进行分页。并将单据体中的金额合并计算后以中文大写金额打印在头部上,在数据表格(单据体)中展示单据编号、单据状态、物料名称、申请数量、单价、金额等信息


打印模板的配置:

二开打印插件:

package plugin.print;

import akka.util.Switch;
import kd.bos.print.core.data.DataRowSet;
import kd.bos.print.core.data.field.CollectionField;
import kd.bos.print.core.data.field.Field;
import kd.bos.print.core.data.field.TextField;
import kd.bos.print.core.plugin.AbstractPrintPlugin;
import kd.bos.print.core.plugin.event.*;
import kd.bos.print.core.plugin.event.bo.PWGridCellBo;
import kd.sdk.plugin.Plugin;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 新的打印插件
 */
public class print2merge extends AbstractPrintPlugin implements Plugin {

        //分录标识
        private static final String ENTRY="entryentity";

        //申请人名称的标识
        private static final String APPLYNAME="pio1_basedatafield.name";

        //单据编码标识
        private static final String BILLNO="billno";

        //单据状态的标识
        private static final String BILLSTATUS="billstatus";

        //分录的标识
        private static final String ENTRYDATASOUCE="pio1_testforfile.entryentity";

        @Override
        public void afterLoadData(AfterLoadDataEvent evt) {
                //获取单据数据
                List<DataRowSet> dataRowSets = evt.getDataRowSets();

                //构造合并分页数据
                List<DataRowSet> newDataRowSets=new ArrayList<>(10);

                //遍历每条单据
                for (DataRowSet dataRowSet : dataRowSets) {
                        //此申请人的数据是否在newDataRowSets中
                        Boolean isexist=false;

                        //获取分录数据
                        List<DataRowSet> entryrow = dataRowSet.getCollectionField(ENTRY).getValue();

                        //单据头的编码和状态添加到分录的每条数据
                        for (DataRowSet rowSet : entryrow) {
                                rowSet.put(BILLNO,dataRowSet.getField(BILLNO));
                                rowSet.put(BILLSTATUS,dataRowSet.getField(BILLSTATUS));
                        }
                        //单据头的编码清空
                        dataRowSet.remove(BILLNO);
                        //单据头的状态清空
                        dataRowSet.remove(BILLSTATUS);

                        //遍历已经合并的数据,检查是否存在相同的申请人,则合并在一起
                        for (DataRowSet newDataRowSet : newDataRowSets) {
                                //是否在newDataRowSets中已经存在此申请人,有则进行分录数据的合并
                                if( dataRowSet.getField(APPLYNAME).getValue().equals(newDataRowSet.getField(APPLYNAME).getValue()))
                     

如何实现合并打印

场景一: 同一单据的一张单内的合并打印1、适用版本金蝶云苍穹 V4.0.014以上2、解决方案步骤1:点击数据表格的数据行步骤2:选择合并依据...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信