c-lodop获取任务页数-回调里给全局变量赋值并加减

LODOP一个任务里可以自动分页,也可以手动分页,超文本会按照打印项高度或超过纸张会自动分页(相关博文:Lodop打印控件 超文本自动分页),如果是自动分页,是无法知道究竟分了多少页,整个任务打了多少页。
可以通过LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
在预览或打印前是获取不到的,必须执行了打印预览或打印才能获取到。

该文还用到了个JS方法parseInt(字符串),具体可参考网上该方法的详细介绍,感觉和C#里的强制类型转换差不多,JS里虽然定义的时候都用var,其实也分数据类型。
该方法的作用是把字符串类型强制转换成整数型。

该文测试及结果:测试任务:有两页。
测试1:在回调里给某个全局变量赋值,然后弹出这个全局变量。
测试结果:可以在回调里给全局变量赋值,弹出弹窗显示数字2。

测试2:给全局变量赋的值是:回调获取的返回值,然后加3。在控制台输出变量值。
测试结果:返回的值是字符串类型,+3会被当做字符串连接,控制台输出的是字符串23。

测试3:给全局变量赋的值是:回调获取的返回值强制转换成整数型,然后加3,在控制台输出变量值。
测试结果:控制台没有出现返回值。

测试4:给全局变量赋的值是:回调获取的返回值。然后再对变量赋值:把获得了值的变量强制转换成整数型然后加3。
测试结果:控制台输出的是5,是页数2加上数字3的结果。

测试3和测试4的区别就是,一个是对回调的返回值value进行数据类型转换,一个是对已经赋了值的zhi进行数据类型转换。测试3是zhi=parseInt(value)+3;测试4是zhi=Value;zhi=parseInt(zhi)+3;具体参考测试代码和图示。

测试代码:

<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:prn0_preview()">打印预览(预览后才能获取页数)</a><br>
<a href="javascript:prn1_preview()">给某全局变量赋值,弹出该变量</a><br>
<a href="javascript:prn2_preview()">给某全局变量赋值并+3,返回值是字符串,字符串连接结果</a><br>
<a href="javascript:prn3_preview()">给回调的值强制转换成整数型,然后赋值给全局变量再加3,无结果</a><br>
<a href="javascript:prn4_preview()">给全局变量赋值,然后把全局变量转换成整数型,加3再赋值给该变量</a><br>
<script language="javascript" type="text/javascript">   
        var LODOP; //声明为全局变量
        var zhi;//声明个全局变量,取名为zhi
    function prn0_preview() {//该任务有两页,为强制分页所得
        LODOP=getLodop(); 
        LODOP.PRINT_INIT("");
        LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");
        LODOP.NEWPAGE();
        LODOP.ADD_PRINT_TEXT(0,0,100,20,"文本内容一");
        LODOP.PREVIEW();    
    };
    function prn1_preview() {//测试再回调里给全局变量赋值,并弹出这个全局变量
        LODOP=getLodop(); 
       if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=Value;alert(zhi);}; 
       var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
       if (!LODOP.CVERSION) {zhi=stResult; alert(zhi);}//lodop直接获取返回值
    };
    function prn2_preview() {//给返回值+3,由于是字符串,会当作字符串连接
         LODOP=getLodop(); 
       if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=Value+3;console.log(zhi);}; 
       var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
       if (!LODOP.CVERSION) { }//支线,不写了,这里只测c-lodop
    };
    function prn3_preview() {//给回调的值强制转换成整数型,然后赋值给全局变量再加3
         LODOP=getLodop(); 
       if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=parseInt(value)+3;console.log(zhi);}; 
       var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
       if (!LODOP.CVERSION) {}//支线,不写了,这里只测c-lodop
    };
    function prn4_preview() {//给全局变量赋值,然后把全局变量转换成整数型,加3再赋值给该变量
         LODOP=getLodop(); 
       if (LODOP.CVERSION) CLODOP.On_Return=function(TaskID,Value){zhi=Value;zhi=parseInt(zhi)+3;console.log(zhi);}; 
       var stResult=LODOP.GET_VALUE("PRINTSETUP_PAGE_COUNT","0");//获取页数
       if (!LODOP.CVERSION) {}//支线,不写了,这里只测c-lodop
    };
</script> 
</body>

图示:

原文地址:https://www.cnblogs.com/huaxie/p/11195400.html