打印维护是针对整个任务进行维护的,打印多少个打印项就要维护多少个打印项,维护了多少打印项,就要打印多少内容。
但是打印的时候不需要打印其他列,可以把其他列的数值传入空置,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一个任务多列,只打一列如何维护的更多相关文章

  1. 新建一个DataTable(只针对一列)

    /// <summary> /// 新建一个DataTable(只针对一列) /// </summary> /// <param name="dataStr&q ...

  2. Excel下拉框多列显示,如何只显示一列

    小编最近接手一个项目,之于需要导数据,但是我们需要提前把表头什么的设置好,更方便其他小伙伴们帮助我们导入数据,小伙伴们都知道,在excel中设置下拉菜单很简单,直接用数据有效性-序列就可以实现,今天小 ...

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

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

  4. ios 一个正则表达式测试(只可输入中文、字母和数字)

    一个正则表达式测试(只可输入中文.字母和数字) 在项目中碰到了正则表达式的运用,正则还是非常强大的,不管什么编程语言,基本上都可以用到.之前在用java时特别是对用户名或密码使用正则非常爽,写 脚本上 ...

  5. Sql查询一个列对应多个列

    Sql查询一个列对应多个列 今天遇到一个问题,表table1有两个字段col1.col2两个字段.先记录下来,以后有个参考. 现在需要查询出的数据满足如下要求: 1.col1重复.col2重复的数据只 ...

  6. 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?

    在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列?(效果图如下:): 在ASPxGridView的主从表显示中,有什么属性可以只让其每次选择只展开一列(效果图) 实现该 ...

  7. 在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解决,谢谢!

    在TreeView 控件上,如果双击任何一个节点的checkbox 只会收到一次After_Check事件 但是check属性变化两次(从false到true 再从true到false),请问该如何解 ...

  8. SQL Server 动态行转列(参数化表名、分组列、行转列字段、字段值)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 实现代码(SQL Codes) 方法一:使用拼接SQL,静态列字段: 方法二:使用拼接SQL, ...

  9. 1130mysql explain中的type列含义和extra列的含义

    很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义. 1 type列 官方的说法,说这列表示的是"访问类型" ...

随机推荐

  1. 日常SQL总结

    THEN '理财帐户' ELSE '其他' end case后可以加入条件在写when,length(String) 为string的字符长度 length(),括号里不仅可以是string的字符串, ...

  2. django--远程mysql

    settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'ttsx', # 数据 ...

  3. AFL Fuzz安装及完成一次简单的模糊测试

    关于AFL fuzz AFL fuzz是一个模糊测试工具,它封装了一个GCC/CLang编译器,用于对被测代码重新编译的过程中进行插桩.插桩完毕后,AFL fuzz就可以给其编译过的代码输入不同的参数 ...

  4. fastjson<=1.2.47反序列化RCE漏洞

    介绍:fastjson是一个Java语言编写的高性能功能完善的JSON库. 漏洞原因:fastjson在解析json的过程中,支持使用autoType来实例化某一个具体的类,并通过json来填充其属性 ...

  5. Windows用户模式调试内部组件

    简介 允许用户模式调试工作的内部机制很少得到充分的解释.更糟糕的是,这些机制在Windows XP中已经发生了根本性的变化,当许多支持被重新编写时,还通过将ntdll中的大多数例程作为本地API的一部 ...

  6. echo如何输出带颜色的文本

    本文链接:https://blog.csdn.net/qualcent/article/details/7106483 ######################################## ...

  7. a list of frequently asked questions about Circus

    转自:https://circus.readthedocs.io/en/latest/faq/,可以帮助我们了解circus 的使用,以及问题解决 How does Circus stack comp ...

  8. 使用gitstats分析git 仓库代码

    gitstats 是一个很不错的git 代码提交分析工具,可以帮助我们生成图表统计结果 工具文档信息 gitstats http://gitstats.sourceforge.net/ 安装 使用ce ...

  9. mybatis-generator 插件

    首先肯定要有mybatis的依赖 <!--mybatis spring--> <dependency> <groupId>org.mybatis.spring.bo ...

  10. 2016级移动应用开发在线测试14-MediaPlayer

    有趣有内涵的文章第一时间送达! 喝酒I创作I分享 生活中总有些东西值得分享 @醉翁猫咪 1. MediaStore类是android系统提供的一个多媒体数据库,android中多媒体信息都可以从这里提 ...