润乾——打印时报表的几种需求

2024-06-07 21:48

本文主要是介绍润乾——打印时报表的几种需求,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

随着客户的不同,对打印的具体需求也会发生相应变化,大概分以下集中:

一:页面上展现一张表,该报表可能增加很多背景色前景色等,但是点打印或导出时只需要黑白打印,即展现一张表打印时为另一张表

解决方法:制作一张和展现报表一样的报表文件(背景色等不同),在显示报表的jsp标签中加入 printedRaq="aa.raq",这样打印时调用的为aa.raq,并且页面上的参数也会参与相应运算。

二:客户原来自己做了相应报表,比如说填报表,只用来填写数据,润乾只是用于打印或导出,并且在客户原有页面上点打印时不再弹出jsp页面显示报表,直接调用applet展现打印预览形式。

解决方法:定义相关js函数,页面上点击按钮式onClick时调用该js函数即可,例如:

function print() {
  document.report1_printIFrame.location = "http://localhost:8001/report/servlet/com.runqian.report.view.DataServlet?name=report1&reportFileName=<%=raqName%>&canModifyBeforePrint=no&srcType=file&action=print&savePrintSetup=no&appletJarName=runqianReportApplet.jar&reportParamsId=<%=reportParamsId%>";
 }

reportParamsId即为参数id,能把一些参数也传到报表中进行计算,代码如:

String reportParamsId = null;//定义reportParamsId
   Hashtable hash = new Hashtable();
         hash.put( "arg1", "1111111" );//将参数和值放到hashtable中,arg1为报表中定义的参数,保监会中改成人员id那个参数名,111111为参数值,将userid放在这
    if( hash.size() > 0 ) {
       //生成一个ID,并把这个ID与刚才准备的hash形成键值关系
       reportParamsId = com.runqian.report.view.ParamsPool.createParamsId();//生成参数缓存id
       com.runqian.report.view.ParamsPool.put( reportParamsId, hash );//将id放到缓存中
       }

这样即可实现报表不展现,也能够实现打印或导出。

三:销售订单类报表偏多,页面上先展现各个订单号,前边带有复选框,用鼠标选中想要打印的订单号,然后点击打印,需要把所选择的订单编号所对应的明细都打印出来。

解决方法:该表通常有两种需求,一种是在一张报表中把多个订单编号数据都取出,然后扩展打印,另一种为多个订单号对应多张报表,这里说下对应多张报表时的调用方法,首先获得复选框选中的订单编号的值,然后将该值传给润乾批量打印的jsp(应用开发文档中有相关例子),这样就可以在该jsp中调用不同的报表,一次打印出来。

这篇关于润乾——打印时报表的几种需求的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1040389

相关文章

MybatisPlus中几种条件构造器运用方式

《MybatisPlus中几种条件构造器运用方式》QueryWrapper是Mybatis-Plus提供的一个用于构建SQL查询条件的工具类,提供了各种方法如eq、ne、gt、ge、lt、le、lik... 目录版本介绍QueryWrapperLambdaQueryWrapperUpdateWrapperL

检查 Nginx 是否启动的几种方法

《检查Nginx是否启动的几种方法》本文主要介绍了检查Nginx是否启动的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1. 使用 systemctl 命令(推荐)2. 使用 service 命令3. 检查进程是否存在4

详解C++ 存储二进制数据容器的几种方法

《详解C++存储二进制数据容器的几种方法》本文主要介绍了详解C++存储二进制数据容器,包括std::vector、std::array、std::string、std::bitset和std::ve... 目录1.std::vector<uint8_t>(最常用)特点:适用场景:示例:2.std::arra

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

C++打印 vector的几种方法小结

《C++打印vector的几种方法小结》本文介绍了C++中遍历vector的几种方法,包括使用迭代器、auto关键字、typedef、计数器以及C++11引入的范围基础循环,具有一定的参考价值,感兴... 目录1. 使用迭代器2. 使用 auto (C++11) / typedef / type alias

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

C# WebAPI的几种返回类型方式

《C#WebAPI的几种返回类型方式》本文主要介绍了C#WebAPI的几种返回类型方式,包括直接返回指定类型、返回IActionResult实例和返回ActionResult,文中通过示例代码介绍的... 目录创建 Controller 和 Model 类在 Action 中返回 指定类型在 Action

Redis中删除策略的几种实现方式

《Redis中删除策略的几种实现方式》本文详细介绍了Redis的过期键删除策略和内存淘汰策略,过期键删除策略包括定时删除、惰性删除和定期删除,具有一定的参考价值,感兴趣的可以了解一下... 目录前言一、设计背景:为什么需要删除策略?二、第一类:过期键的 3 种核心删除策略1. 定时删除(Timed Dele

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

java中判断json key是否存在的几种方法

《java中判断jsonkey是否存在的几种方法》在使用Java处理JSON数据时,如何判断某一个key是否存在?本文就来介绍三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目http://www.chinasem.cn录第一种方法是使用 jsONObject 的 has 方法