LODOP一个任务多列,只打一列如何维护
打印维护是针对整个任务进行维护的,打印多少个打印项就要维护多少个打印项,维护了多少打印项,就要打印多少内容。
但是打印的时候不需要打印其他列,可以把其他列的数值传入空置,add_print_text纯文本空值的时候背景又是透明的,和不存在差不多。
不能通过判断等方法,只加载需要的打印项,不需要的打印项不加载,因为这样就和维护的打印项个数不同了,如果打印项不设置项目类名之类的,维护是根据的打印项的序号,因为打印项个数不同,所以维护的序号也就不同。
例如本文我测了一下,打印维护用的是四个打印项,而实际打印或预览,是通过判断的两个打印项,然后通过打印维护把每列的第二个打印项移动位置。
最后再通过实际打印或预览,如果是第一列,打印项显示正常,是维护后的,但是到第二列之后,第二个打印项的位置就不正常了,这是因为打印维护根据的是序号进行维护和修改的。
如本文的图示,在打印维护中,第二个打印项就是A002的位置被维护了,所以打印维护根据任务名记忆,记忆了第二个打印项修改后的位置,而当选择第二列是,第二个打印项的位置还会跑到A002的位置,但是实际需要的是它在B002的位置。
位置根据序号到不该在位置,这就是维护的打印项个数和预览或打印个数不同会造成的现象。
如该文中测试的,现象就是两列,维护完后,打印的时候只能是第一列是正常维护的,第二列经过维护的都会跑到第一列去,因为在任务中的序号已经改变了。
测试代码(错误测试演示代码,请勿使用,请参考本博客下方的另一份代码):
<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>
<input type="radio" id="r1" name="r" checked>打第一列<br>
<input type="radio" id="r2" name="r">打第二列<br>
<a href="javascript:prn0_preview()">打印预览(维护个数和打印不同)</a><br>
<a href="javascript:prn1_preview()">打印维护(维护个数和打印不同)</a><br>
<script language="javascript" type="text/javascript">
var LODOP; //声明为全局变量
function prn0_preview() {//错的演示,请勿使用
LODOP=getLodop();
LODOP.PRINT_INITA(0,0,"100mm","100mm","某两列内容打一列");
LODOP.SET_PRINT_PAGESIZE(1,1000,1000,"");
LODOP.ADD_PRINT_SETUP_BKIMG("<img src='bg.png'>");
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true);
if(document.getElementById("r1").checked)
{
LODOP.ADD_PRINT_TEXT(128,54,100,20,"A001");
LODOP.ADD_PRINT_TEXT(196,56,100,20,"A002");}
else{
LODOP.ADD_PRINT_TEXT(128,209,100,20,"B001");
LODOP.ADD_PRINT_TEXT(193,217,100,20,"B002");}
LODOP.PREVIEW();
};
function prn1_preview() {//错的演示,请勿使用
LODOP=getLodop();
LODOP.PRINT_INITA(0,0,"100mm","100mm","某两列内容打一列");
LODOP.SET_PRINT_PAGESIZE(1,1000,1000,"");
LODOP.ADD_PRINT_SETUP_BKIMG("<img src='bg.png'>");
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true);
LODOP.ADD_PRINT_TEXT(128,54,100,20,"A001");
LODOP.ADD_PRINT_TEXT(196,56,100,20,"A002");
LODOP.ADD_PRINT_TEXT(128,209,100,20,"B001");
LODOP.ADD_PRINT_TEXT(193,217,100,20,"B002");
LODOP.PRINT_SETUP();
};
</script>
</body>
图示:(错误测试样式代码 )后面的bg是用PS做的一个背景图,一般套打都是根据背景图套打的。
正确维护的代码(打印项个数与维护个数一致,序号一致)
function prn0_preview() {//
LODOP=getLodop();
LODOP.PRINT_INITA(0,0,"100mm","100mm","某两列内容打一列2");
LODOP.SET_PRINT_PAGESIZE(1,1000,1000,"");
LODOP.ADD_PRINT_SETUP_BKIMG("<img src='bg.png'>");
LODOP.SET_SHOW_MODE("BKIMG_IN_PREVIEW",true);
if(document.getElementById("r1").checked)
{
LODOP.ADD_PRINT_TEXT(128,54,100,20,"A001");
LODOP.ADD_PRINT_TEXT(196,56,100,20,"A002");
LODOP.ADD_PRINT_TEXT(128,209,100,20,"");//传入空置
LODOP.ADD_PRINT_TEXT(193,217,100,20,"");//传入空置
}
else{
LODOP.ADD_PRINT_TEXT(128,54,100,20,"");//传入空置
LODOP.ADD_PRINT_TEXT(196,56,100,20,"");//传入空置
LODOP.ADD_PRINT_TEXT(128,209,100,20,"B001");
LODOP.ADD_PRINT_TEXT(193,217,100,20,"B002");
}
LODOP.PREVIEW();
};
图示:
LODOP一个任务多列,只打一列如何维护的更多相关文章
- 新建一个DataTable(只针对一列)
/// <summary> /// 新建一个DataTable(只针对一列) /// </summary> /// <param name="dataStr&q ...
- Excel下拉框多列显示,如何只显示一列
小编最近接手一个项目,之于需要导数据,但是我们需要提前把表头什么的设置好,更方便其他小伙伴们帮助我们导入数据,小伙伴们都知道,在excel中设置下拉菜单很简单,直接用数据有效性-序列就可以实现,今天小 ...
- LODOP循环多任务 同模版只设置不同队列任务名
LODOP中从PRINT_INIT(或PRINT_INITA)到最后PRINT(或PREVIEW等),是一个任务,关于Lodop中一个任务,以及一个任务中可以包含哪些语句,详细可查看本博客另一篇博文: ...
- ios 一个正则表达式测试(只可输入中文、字母和数字)
一个正则表达式测试(只可输入中文.字母和数字) 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上 ...
- Sql查询一个列对应多个列
Sql查询一个列对应多个列 今天遇到一个问题,表table1有两个字段col1.col2两个字段.先记录下来,以后有个参考. 现在需要查询出的数据满足如下要求: 1.col1重复.col2重复的数据只 ...
- 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?
在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?(效果图如下:): 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列(效果图) 实现该 ...
- 在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解决,谢谢!
在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解 ...
- SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...
- 1130mysql explain中的type列含义和extra列的含义
很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是"访问类型" ...
随机推荐
- 使用gitlab下载代码(附常用命令)
Git是现在很多人常用的代码管理工具,这里有一些常用的命令详解,本人接触也不是很久,若有错误,请在评论指出,谢谢. 若计算机中没有安装GIT,可自行查找安装教程,十分简便. ①首先,我们需要下载项目, ...
- 《BUG创造队》第六次作业:团队项目系统设计改进与详细设计
项目 内容 这个作业属于哪个课程 2016级软件工程 这个作业的要求在哪里 实验十 团队作业6:团队项目系统设计改进与详细设计 团队名称 BUG创造队 作业学习目标 1.编写完整<软件系统设计说 ...
- python 批量打印PDF
有一批PDF文件,好几百个,每个只打印第2,3页,双面打印. 网上搜索一波,方案如下: 安装Ghostscript,GhostView,使用gsprint命令打印pdf文件. gsprint命令参数说 ...
- 【CLAA系列】CLAA协议学习(CS方向)
工作上用Lora,需要开发相关模块,分享一下学习的内容: Lora: 博主是做IT的,对Lora不了解.简单理解为LPWAN(Low Power Wide Area Network)中一种技术,目前主 ...
- 4、NameNode启动过程详解
NameNode 内存 本地磁盘 fsimage edits 第一次启动HDFS 格式化HDFS,目的就是生成fsimage start NameNode,读取fsimage文件 start Data ...
- shell脚本 基础应用
变量分为普通变量可只读变量 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ...
- JavaScript基础05——严格模式
严格模式: 除了正常运行模式,ECMAscript5添加了第二种运行模式:“严格模式”(strict mode).顾名思义,这种模式是的Javascript在更严格的条件下运行. 严格模式的作用: 1 ...
- WinDbg常用命令系列---符号相关命令
ld (Load Symbols) ld命令加载指定模块的符号并更新所有模块信息. ld ModuleName [/f FileName] 参数: ModuleName指定要加载其符号的模块的名称.m ...
- The database returned no natively generated identity value错误解决方案
原因:hibernate项目中在学生表的配置文件中: <id name="studentno" column="studentno"> <ge ...
- 微信小程序电影模板
[外链图片转存失败(img-STw401rR-1565101469846)(https://upload-images.jianshu.io/upload_images/11158618-52efd0 ...