LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

LODOP循环多任务 同模版只设置不同队列任务名

admin
2023年9月27日 0:34 本文热度 427

LODOP中从PRINT_INIT(或PRINT_INITA)到最后PRINT(或PREVIEW等),是一个任务,关于Lodop中一个任务,以及一个任务中可以包含哪些语句,详细可查看本博客另一篇博文:Lodop打印语句最基本结构介绍(什么是一个任务)

一个任务中,可以有多页,可以是自动分页或手动分页得来的,
例如:Lodop打印控件 超文本自动分页Lodop强制分页LODOP.NewPage()和LODOP.NewPageA()

如果一个任务中页数过多,会因为一次性占用太多的系统资源而需要等待很长时间,因此需要把页数过多的任务拆分一下,可以分组分任务打印,在分任务的过程中,如果内容不是相同的模版,需要给每个任务设置不同的任务,否则用打印维护功能调整某个任务的时候,会把所有任务都调整,同名任务会互相影响,当然如果不想用打印维护,禁用打印维护的客户端本地调整功能,置空任务也是可以的。如果是相同的模版,只是内容不同,类似多任务套打那种,可以用相同的Lodop任务名,如果想在打印任务队列里区分,可以用 LODOP.SET_PRINT_MODE("CUSTOM_TASK_NAME","LODOP打印任务"+i);//为每个打印单独设置任务名,这个任务名是队列的任务名。
只设置队列的任务名,打印维护缓存的文件就会针对所有(同一个初始化任务名的所有任务调整)的哦。

多任务有两种方式,
一是设置不同的Lodop任务名(打印维护的时候调整只针对这一个任务),例如如下代码,改变了初始化PRINT_INIT的任务名名。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:prn1()">循环多任务</a><br><br>
<script language="javascript" type="text/javascript">  
   var LODOP; //声明为全局变量
   function prn1() {    //单个任务循环
        LODOP=getLodop();  
       
var myprn = new Array()
        myprn[
0] = "PREVIEW:打印预览"
        myprn[
1] = "PRINT:直接打印"
        myprn[
2] = "PRINT_DESIGN:打印设计"
     for (i=0;i<myprn.length;i++)
  {  
   
//任务开始
  LODOP.PRINT_INIT("LODOP打印任务的"+i);//初始化在循环中
  LODOP.SET_PRINT_PAGESIZE(0,1000,700," ");//设置纸张
  LODOP.ADD_PRINT_TEXT(30,30,300,20,myprn[i]);  
  LODOP.PRINT();
 
//任务结束  
  //LODOP.PRINT();//直接打印在循环中  
  //多任务如果是预览或设计LODOP.PRINT_DESIGN();等,会弹出多次,所以批量打印直接打印 LODOP.PRINT();。
  }
   };
</script>
</body>

二是设置相同的Lodop任务名,然后设置队列里不同任务名(打印维护的时候是针对Lodop任务名,所有队列的任务都会被调整。例如如下代码不改变Lodop任务名,改变打印机队列任务名)

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>WEB打印控件LODOP</title>
<script language="javascript" src="LodopFuncs.js"></script>
</head>
<body>
<a href="javascript:prn1()">循环多任务</a><br><br>
<script language="javascript" type="text/javascript">  
   var LODOP; //声明为全局变量
   function prn1() {    //单个任务循环
        LODOP=getLodop();  
       
var myprn = new Array()
        myprn[
0] = "PREVIEW:打印预览"
        myprn[
1] = "PRINT:直接打印"
        myprn[
2] = "PRINT_DESIGN:打印设计"
     for (i=0;i<myprn.length;i++)
  {  
   
//任务开始
  LODOP.PRINT_INIT("LODOP打印任务");//初始化在循环中
  LODOP.SET_PRINT_PAGESIZE(0,1000,700," ");//设置纸张
  LODOP.ADD_PRINT_TEXT(30,30,300,20,myprn[i]);
  LODOP.SET_PRINT_MODE(
"CUSTOM_TASK_NAME","LODOP打印任务"+i);//为每个打印单独设置任务名
  LODOP.PRINT_SETUP();
 
// LODOP.PRINT();
  //任务结束  
  //LODOP.PRINT();//直接打印在循环中  
  //多任务如果是预览或设计LODOP.PRINT_DESIGN();等,会弹出多次,所以批量打印直接打印 LODOP.PRINT();。
  }
   };
</script>
</body>
</html>

LODOP循环多任务 同模版只设置不同队列任务名(初始化任务名是相同的,缓存ini文件是相同的,调整后对所有任务有效):

使用LODOP.PRINT_SETUP();改变第一个任务位置,然后点应用保存当前模版布局,在电脑生成该Loodop任务名的ini文件,该缓存的ini配置文件对所有同一lodop任务名的任务有效,在队里的则是每个任务名都不同的。关于打印维护缓存ini文件,可查看本博客另一篇博文:Lodop打印维护PRINT_SETUP本地缓存ini文件

LODOP循环多任务 同模版只设置不同队列任务名(初始化任务名是相同的,缓存ini文件是相同的,调整后对所有任务有效)图示:
使用LODOP.PRINT_SETUP();改变第一个任务位置,然后点应用保存当前模版布局,在电脑生成该Loodop任务名的ini文件,该缓存的ini配置文件对所有同一lodop任务名的任务有效,在队里的则是每个任务名都不同的。
如图,代码里的该文本项的top值是30,通过打印维护调整后缓存在本地任务名的ini文件,实际打印top值变成了一百多,并且对之后的任务,即三个任务都是有效的,而队列里任务是不同的。

 

刚开始我以为是设置不同的lodop任务名,后来觉得如果是不同任务名,直接循环设置不同的初始化名称就行了,后来进入技术手册,看到这个是设置打印机队列的任务名,如果批量打印相同模版,进入队列都是一样名称,不容易看出打了多少,以及是否有任务有问题,所以同模版打印机队列的任务名很方便的,此博文用来介绍区别。
不同lodop任务名,和相同Lodop任务名 不同打印机队列任务名的 代码图:


该文章在 2023/9/27 0:34:37 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2024 ClickSun All Rights Reserved