Posts Tagged ‘多选’

快逸报表:填报中的下拉多选列表框

01.12.2010 by hewei - 0 Comment - 0
Posted in web报表应用

快逸报表应用的填报页面中,下拉框是最常见的了。下拉选择框可以简化用户的输入,可以避免用户的错误录入,还可以轻松实现中文与代码的映射关系,可谓用途多多。

可是随着业务的越来越复杂,各种奇怪的需求均可能冒出来,比如说,数据库中的某个字段的取值,有可能同时存在多种,比如员工基本信息表里的擅长的外 语字段,有些人仅仅擅长一门外语,有些人擅长两门,有些人擅长三门、四门,甚至有些神童从小就精通七八门外语,如果一门外语搞一个字段,人家可能擅长七八 门外语,你岂不是要为他设计七八个外语字段,分别命名为外语1、外语2、外语3、……外语n,这样的表结构岂不是让人发疯?

但是,如果外语的下拉选择框允许多选(比如:下图中的多选效果),那么可以把擅长的多门外语用逗号分隔存入一个字段中,这样岂不是轻松地解决了这个问题?

multi_select_input.png

这个功能看似很简单,做个多选框不就行了,可是仔细推敲,其实不然。

首先,网页上的多选框在form里提交后,后台request里接收到的是一个数组,你必须在后台写程序把数组拼成逗号分隔的串,然后才能存到数据库中;

其次,把数据取回来修改的时候,还需要把数据库中逗号分隔的串解析回数组,并展现在界面里。

更为复杂些的要求,就是当选项非常多的时候,不能用简单的多选框,而可能要用下拉树,把数据组织成树状结构,这样才方便选择,否则几千甚至几万个选 项,眼睛都要看花了。而下拉树要实现多选,那更是要费一番功夫。比如叶子节点允许多选,枝节点不允许多选等等五花八门的需求,会把人弄晕。

幸好注重细节的快逸报表把所有这些麻烦都解决了。它为下拉列表、下拉数据集、下拉树等编辑风格都提供了多选的选项,使用起来非常方便,步骤如下:

实现步骤

  1. 设计一个填报表,定义下拉列表、下拉数据集、下拉树等编辑风格
  2. 在这些编辑风格的属性编辑框里,把多选选项打勾
  3. 发布

引自: 报表工具知识库
原文链接:快逸报表:填报中的下拉多选列表框
相关文章: 普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法

在快逸报表应用的填报页面中,下拉框是最常见的了。下拉选择框可以简化用户的输入,可以避免用户的错误录入,还可以轻松实现中文与代码的映射关系,可谓用途多多。

可是随着业务的越来越复杂,各种奇怪的需求均可能冒出来,比如说,数据库中的某个字段的取值,有可能同时存在多种,比如员工基本信息表里的擅长的外 语字段,有些人仅仅擅长一门外语,有些人擅长两门,有些人擅长三门、四门,甚至有些神童从小就精通七八门外语,如果一门外语搞一个字段,人家可能擅长七八 门外语,你岂不是要为他设计七八个外语字段,分别命名为外语1、外语2、外语3、……外语n,这样的表结构岂不是让人发疯?

但是,如果外语的下拉选择框允许多选(比如:下图中的多选效果),那么可以把擅长的多门外语用逗号分隔存入一个字段中,这样岂不是轻松地解决了这个问题?

multi_select_input.png

这个功能看似很简单,做个多选框不就行了,可是仔细推敲,其实不然。

首先,网页上的多选框在form里提交后,后台request里接收到的是一个数组,你必须在后台写程序把数组拼成逗号分隔的串,然后才能存到数据库中;

其次,把数据取回来修改的时候,还需要把数据库中逗号分隔的串解析回数组,并展现在界面里。

更为复杂些的要求,就是当选项非常多的时候,不能用简单的多选框,而可能要用下拉树,把数据组织成树状结构,这样才方便选择,否则几千甚至几万个选 项,眼睛都要看花了。而下拉树要实现多选,那更是要费一番功夫。比如叶子节点允许多选,枝节点不允许多选等等五花八门的需求,会把人弄晕。

幸好注重细节的快逸报表把所有这些麻烦都解决了。它为下拉列表、下拉数据集、下拉树等编辑风格都提供了多选的选项,使用起来非常方便,步骤如下:

实现步骤

  1. 设计一个填报表,定义下拉列表、下拉数据集、下拉树等编辑风格
  2. 在这些编辑风格的属性编辑框里,把多选选项打勾
  3. 发布

引自: 报表工具知识库
原文链接:快逸报表:填报中的下拉多选列表框
相关文章: 普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法

填报中的下拉多选列表框

12.31.2009 by hewei - 0 Comment - 0
Posted in web报表应用
快逸报表应用的填报页面中,下拉框是最常见的了。下拉选择框可以简化用户的输入,可以避免用户的错误录入,还可以轻松实现中文与代码的映射关系,可谓用途多多。 可是随着业务的越来越复杂,各种奇怪的需求均可能冒出来,比如说,数据库中的某个字段的取值,有可能同时存在多种,比如员工基本信息表里的擅长的外 语字段,有些人仅仅擅长一门外语,有些人擅长两门,有些人擅长三门、四门,甚至有些神童从小就精通七八门外语,如果一门外语搞一个字段,人家可能擅长七八 门外语,你岂不是要为他设计七八个外语字段,分别命名为外语1、外语2、外语3、……外语n,这样的表结构岂不是让人发疯? 但是,如果外语的下拉选择框允许多选(比如:下图中的多选效果),那么可以把擅长的多门外语用逗号分隔存入一个字段中,这样岂不是轻松地解决了这个问题? multi_select_input.png 这个功能看似很简单,做个多选框不就行了,可是仔细推敲,其实不然。 首先,网页上的多选框在form里提交后,后台request里接收到的是一个数组,你必须在后台写程序把数组拼成逗号分隔的串,然后才能存到数据库中; 其次,把数据取回来修改的时候,还需要把数据库中逗号分隔的串解析回数组,并展现在界面里。 更为复杂些的要求,就是当选项非常多的时候,不能用简单的多选框,而可能要用下拉树,把数据组织成树状结构,这样才方便选择,否则几千甚至几万个选 项,眼睛都要看花了。而下拉树要实现多选,那更是要费一番功夫。比如叶子节点允许多选,枝节点不允许多选等等五花八门的需求,会把人弄晕。 幸好注重细节的快逸报表把所有这些麻烦都解决了。它为下拉列表、下拉数据集、下拉树等编辑风格都提供了多选的选项,使用起来非常方便,步骤如下:

实现步骤

  1. 设计一个填报表,定义下拉列表、下拉数据集、下拉树等编辑风格
  2. 在这些编辑风格的属性编辑框里,把多选选项打勾
  3. 发布

引自: 报表工具知识库

原文链接:快逸报表:填报中的下拉多选列表框

相关文章: 普及报表系统功能说明 ; 好用的java开发工具 ; 数据集由内建还原为sql后没有数据 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法

其他相关内容: 润乾报表 ; RAQSOFT ; 润乾商业智能解决方案 ; web报表研究 ; 专业.net报表工具

如何在Web填报报表中实现:关联过滤输入同时支持单选,多选和全不选(空填报)

04.05.2009 by fengzhou - 0 Comment - 0
Posted in web相关技术

在你web报表项目中,常常会遇到在填报报表中用下来框实现关联过滤的情况,比如,在省份填报格中下来选定山东省后,在接下来的城市选择框中会自动出现山东省内的城市,供用户选择。

但问题紧接着就来了,用户可能会选择山东省的一个城市,或者选多个城市,甚至什么都不选,从而想输出山东省所有城市的信息,这时应该如何实现?

有过Web报表开发经验的人可能都会知道这个看似简单的功能实现起来有多么复杂!比如用Hibernate编程实现会非常麻烦。
下文提供一个基于快逸报表的解决方案,可以非常方便地解决这个问题!快逸报表是一个纯Java开发的强大的Web报表工具软件,开发人员可以很方便地基于快逸实现关联过滤输入时对单选,多选和全不选(空填报)的支持。
实现下面的方法需要下载并安装快逸报表,快逸报表下载地址:http://www.quiee.com.cn/archives/337

问题描述:
假设web报表用户需要相关城市的订单信息,现在在快逸报表有如下两个报表文件:
一张为参数模板dingdan_arg.raq,一张为报表dingdan.raq。

参数模板:

在参数模板dingdan_arg.raq中,设置的数据集的SQL如下:
SQL:SELECT 订单.货主地区,订单.货主城市 FROM 订单

dingdan_arg.raq中有A,B两列和1,2两行,格式和excel文件的格式一样,所以此填报表单的格式
        A           B
1   货主地区   下拉数据集1        (其中B1格对应的变量名为 arg1)
2   货主城市   下拉数据集2        (其中B2格对应的变量名为 arg2)

而且在dingdan_arg.raq中B1关联过滤B2,也就是说,下拉选中B1中的某个地区,那么在B2中则可以下拉选择这个地区中所有的城市。

报表:

在报表dingdan.raq中,设置的数据集的SQL如下:
SQL:SELECT 订单.订单ID,订单.订购日期,订单.发货日期,订单.货主名称,订单.货主地区,订单.货主城
市,订单.运货商,订单.运货费 FROM 订单 where (订单.货主地区=? or ? is null) and (订单.货主城市 =? or ? is null)

dingdan.raq中的参数为:arg1和arg2,分别对应从dingdan_arg.raq传过来的arg1和arg2.

设置到这里,这张关联过滤报表已经可以运行的,现在是用户想在”货主城市”中可以通过下拉数据集输入多个城市值。如果用字符串组,arg2类型定义成字符串组,在SQL里就要写成”and (订单.货主城市 in (?))”,这样,当”货主城市”不输入值(全不选)的时候,就又什么都查不出来了。
但是此项目中,用户就是想可以同时选择多个城市值,而且又当一个都不选择的时候,又可以把全部城市的信息查出来。

问题解决:

要达到用户的需求,用快逸报表的动态宏可以达到,但有时用动态宏做判断会不方便。所以我们选择对上面的方法稍作调整来实现客户要求:
第一步:参数模板dingdan_arg.raq不变;
第二步:更改报表dingdan.raq中的SQL语句为下所示:

SQL:SELECT 订单.订单ID,订单.订购日期,订单.发货日期,订单.货主名称,订单.货主地区,订单.货主城
市,订单.运货商,订单.运货费 FROM 订单 where (订单.货主地区=? or ? is null) and (订单.货主城市 in (?) or ? is null)

第三步:更改dingdan.raq的参数配置:在语法后面的参数表达式那里增加4个参数:arg1 arg1 arg2 str(arg2),如下图所示

canshu.jpg

第四步,在菜单:配置->参数 中设置两个参数,arg1和arg2。arg2的数据类型设置为”字符串组”,参数类型为”普通参数”。

这样,发布Web报表后,用户就可以在”货主城市”框里对城市进行单选、多选,或者不选(为空)的操作了。
从而用快逸报表的关联过滤功能,实现了对订单数据在相应”货主地区”下查询一个城市、多个城市和所有城市的订单信息了。

引自:Web报表工具知识库
原文链接:如何在Web填报报表中实现:关联过滤输入同时支持单选,多选和全不选(空填报)
相关文章:报表工具分类-实现技术;修改下拉数据集默认的不选择;输入时的动态关联顾虑;填报-web报表工具必不可少的功能
其他相关内容:用快逸设计WEB报表;专业.net报表工具;探讨报表工具;web报表博客

实现Web上行式输入打勾多选和批量删除

03.04.2009 by hewei - 0 Comment - 0
Posted in java报表相关

快逸报表用户在使用行式填报进行数据输入的时候,页面上往往有很多行数据。有些情况下,终端用户要批量操作很多数据,例如:删除30行数据中的28行。如果每一行点一下删除,那么网页要刷新28次,效率比较低。
因此,我们给出一种可以打勾选择多行数据,集中批量操作的方案。

最终效果如图,完整的demo(raq文件和jsp文件):

chenhu01.jpg

解决方案

报表设计

chenhu02.jpg

其中:A2设置为复选框,关值为0,开值为1。

批量删除的Javascript脚本

在展现的jsp文件中增加如下的脚本。
其原理是:遍历选中行,将选中行依次赋值给currCell,调用行式填报的_deleteRow(report),依次删除,实现批量的勾选删除。

function deleteRows(){
var report = document.getElementById(’report1′);
for(var i=report.rows.length-2;i>0;i–){
var row = report.rows[i];
if(!row.all.tags(”input”)[0].checked) continue;
var cell = row.cells[1];
report.currCell = cell;
_deleteRow(report);
}
}

增加checkbox控件

在展现的jsp文件中增加如下的脚本。

function selcheck() {
var objs = report1.getElementsByTagName(”input”);
for(var i=0; i<objs.length; i++) {
if(objs[i].type.toLowerCase() == “checkbox” )
objs[i].checked =event.srcElement.checked;
}
}

批量操作按钮设置

在展现的jsp文件中增加如下的HTML文本。

<table>
<tr>
<td style=”background-color:”>
<div noWrap style=”font-family:宋体;font-size:13px;color:;”>
全选:<INPUT type=”checkbox” onclick=”selcheck()”>&nbsp;
<span style=”cursor:pointer” onclick=”_insertRow( report1 )”>插入</span>&nbsp;
<span style=”cursor:pointer” onclick=”_appendRow( report1 )”>添加</span>&nbsp;
<span style=”cursor:pointer” onclick=”deleteRows()”>删除勾选</span>&nbsp;
<span style=”cursor:pointer” onclick=”_submitRowInput( report1 )”>提交</span>
</div>
</td>
</tr>
</table>

这样,就轻松实现了行式填报的打勾多选(复选)和批量删除,使得报表不仅能用来展现数据和图表,而且在进行输入时也能更方便。

引自:报表工具知识库
原文链接:实现Web上行式输入打勾多选和批量删除
相关文章:普及报表系统功能说明 ; 好用的java开发工具 ; 快逸报表在瑞星2009下填报编辑框无法使用的解决办法
其他相关内容:润乾报表 ; RAQSOFT ; 润乾商业智能解决方案