开发日记:动态表单调用不同打印模板原创
金蝶云社区-码农_李俊
码农_李俊
13人赞赏了该文章 699次浏览 未经作者许可,禁止转载编辑于2023年08月01日 15:01:40
  1. 需要根据不同条件,给当前保单创建打印任务       

           List<PrintJob> result = new List<PrintJob>();

           PrintJob printJob = new Kingdee.BOS.Core.NotePrint.PrintJob();

           printJob.FormId = formId;

           printJob.PrintJobItems = new List<Kingdee.BOS.Core.NotePrint.PrintJobItem>();

         //官方得教程是表单,传入得是单据fid ,  动态表单传入得是固定格式dynamicformpreview,templateId为套打ID

   //这里就可以根据动态表单上不同得条件,传入不同得套打ID

          printJob.PrintJobItems.Add(new PrintJobItem("dynamicformpreview", templateId));         

          result.Add(printJob);

   // printJobsKey随机,任务得KEy,调用需要用

   string printJobsKey = Guid.NewGuid().ToString();

          this.View.Session[printJobsKey]=result 

 2. 启动打印  

    JSONObject jsonObj = new JSONObject();

             jsonObj.Put("pageID", this.View.PageId);

    //当前打印任务

             jsonObj.Put("printJobId", printJobsKey);

    //jsonObj.Put("printerAddress", "Doro PDF Writer"); 打印机地址

    //JSAction.printPreview预览 ,JSAction.print 打印

            this.View.AddAction(JSAction.printPreview, jsonObj);

3.动态表单因为后台没有数据需要自己构建,这里可以根据不同条件构建不同得模板数据

    image.png


    总结:所有功能都是来源于官方帖子得组合,唯一就是加任务时候遇到难题了,没找到动态表单怎么传入打印任务,后断点取当前界面任务查询到,纪录一下方便后面使用

            printJob.PrintJobItems.Add(new PrintJobItem("dynamicformpreview", templateId));      

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

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

请选择打赏金币数 *

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