账簿批量打印和导出的实现
(创建时间:2009年11月15日 19:31:00)
Jangogo :
通过新增加的功能页面 bprintledger.asp 实现批量打印和导出。
该功能页面先一次性取出所有要处理的科目,组成一个数组任务队列,通过循环来调入相应的账簿,账簿页面加载完成后立即进行打印或者导出,打印或者导出完成后,回调 bprintledger 的doNext()函数,这样就可以处理下一个任务。
相应的相关的所有账簿的页面都要更改两处地方:
第一处: 账簿加载后立即调用 打印或者导出功能
第二处:更改printme函数,让打印或者导出完成后回调父页面的doNext()
特殊地:
1.科目明细账ledgersub 因为采用多个iframe来显示多个账页,上述的功能更改稍有变化,请参考该页里面的相应两处位置的JS代码
2.往来辅助核算的明细账ledgerdep因为需要多两个Const参数: lname和bianliangid(拼音“变量ID”之意),上述代码也有所不同,请参考该页的对应JS代码
该功能页面先一次性取出所有要处理的科目,组成一个数组任务队列,通过循环来调入相应的账簿,账簿页面加载完成后立即进行打印或者导出,打印或者导出完成后,回调 bprintledger 的doNext()函数,这样就可以处理下一个任务。
相应的相关的所有账簿的页面都要更改两处地方:
第一处: 账簿加载后立即调用 打印或者导出功能
- /*function tplRev(xD,isSaveToDB){
- .....
- //原来的内容
- if(Const.acid){
- acid=Const.acid;
- UI.run("buildLedger();");
- }
- */
- //更改为以下内容,(通过Const.acid可以定位到这里)
- if(Const.acid){
- acid=Const.acid;
- if(Const.isNext==true){//批量打印或导出
- buildLedger();
- printme(true);
- }else{
- UI.run("buildLedger();");
- }
- }
- /*function printme(iStep){
- ......
- //原来的内容
- //=====开始打印===========
- //BodyDiv,HeaderElement,FooterElement,ObjPageSetup
- var ps=eval("ps_=" + $("hList").childNodes[0].getAttribute("pagesetup"));
- //try{
- LPrinter.preview($("xBody"),$("hList"),null,ps);
- //}catch(ex){}
- UI.hidewaitform();
- */
- //更改为以下内容(通过定位printme函数可以找到这里)
- var ps=eval("ps_=" + $("hList").childNodes[0].getAttribute("pagesetup"));
- if(Const.isNext==true){ //批量打印或导出
- if(Const.NPT==''){ //打印
- ps.printer=Const.NPN;//设置打印机名称
- ps.noprintersel=1;
- ps.nopreview=1;
- LPrinter.preview($("xBody"),$("hList"),null,ps);
- }else{//导出到Const.NPT
- _doExp(Const.NPT,"唯一的标志前缀"+Const.acid,"xls"); //唯一的标志前缀必须唯一字母或单词,以免和其他账簿导出的文件名重复
- }
- try{ //进行下一个
- window.parent.doNext();
- }catch(ex){}
- }else{
- LPrinter.preview($("xBody"),$("hList"),null,ps);
- UI.hidewaitform();
- }
1.科目明细账ledgersub 因为采用多个iframe来显示多个账页,上述的功能更改稍有变化,请参考该页里面的相应两处位置的JS代码
2.往来辅助核算的明细账ledgerdep因为需要多两个Const参数: lname和bianliangid(拼音“变量ID”之意),上述代码也有所不同,请参考该页的对应JS代码
文档中心