搜索文章

推荐内容

快逸做的更好

产品优势

您的位置: 首页 > 报表技术分享 > 快逸在CS模式下实现参数查询

快逸在CS模式下实现参数查询

需求背景

基于Swing开发项目的用户,不仅仅满足于把结果报表JFrame窗口中展现、打印,他们还希望自己能够输入查询条件,以实现实时的数据查询

解决思路

1.做一个带有参数查询的报表,报表的具体复杂报表设计" target="_blank" class="quieeLink1">设计如下图所示。

2.构建参数查询面板

在面板中通过JLabelJTextFieldJButton对象,分别作为参数查询的提示字符,参数输入框,以及查询按钮控件,构建出参数模板的样式

3.传递参数给报表,

对于JButton控件添加事件监听,对于输入的参数可以传递到报表中,以便计算报表。

4.报表在面板中进行展现

构造CSReport控件,设置在面板中显示的相应属性,在面板中进行输出。

需求实现的部分代码

1.构建查询面板

frame new JFrame(参数模板);

frame.setSize(900, 900);

panel = new JPanel();

FlowLayout flowLayout = new FlowLayout();

flowLayout.setHgap(10);

flowLayout.setVgap(10);

panel.setLayout(flowLayout);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setContentPane(panel);

frame. show ();

button = new JButton();

button.setText(查询);

label = new JLabel();

label.setText(请您输入参数);

text=new JTextField(20);

2.JButton的按钮添加事件监听。

button.addActionListener(new Listener(text));

panel.add(label);

panel.add(text);

panel.add(button);

frame.validate();

3.在监听类中获取到JTextField中输入的值。

public class Listener implements ActionListener {

JTextField lab;

public Listener(JTextField text) {

this.lab = text;

}

public void actionPerformed(ActionEvent e) {

String param = lab.getText();}}

4.设置报表参数值。

ParamMetaData pmd = rd.getParamMetaData(); // 从报表定义中取得参数元对象ParamMetaData

String paramOrMocrName = “”;

if (pmd != null) {

for (int i = 0, count = pmd.getParamCount(); i < count; i++) { // 讲究优化的写法

paramOrMocrName = pmd.getParam(i).getParamName(); // 获取参数名

ctx.setParamValue(paramOrMocrName, param); // 设参数值

5.计算报表并在进行展现

Engine engine = new Engine(rd, ctx);

IReport iReport = engine.calc(); // 运算代码,获得一个IReport对象

CSReport csReport = new CSReport(iReport); // 构造CSReport控件

JFrame jf = new JFrame(快逸报表); // 构造JFrame界面

try {

jf.getContentPane().add(csReport.getDisplayPane());

} catch (Throwable e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

} // 设置JFrame的相关属性并展现

jf.setSize(600, 400);

jf.setLocation(200, 100);

jf. show ();

需求实现的效果图:

在参数模板中的文本输入框中输入table_id1,点击查询,弹出根据参数计算后的报表。

实例总述

swing中进行参数查询,首先通过控件构建出参数模板的样式,给输入控件添加监听,在事件触发时,将参数模板中的值取到,同时,也要获取到报表中所涉及的参数,将输入的参数值赋给对应的参数,计算报表,最终在面板中展现。

本文标签: