FR软件使用小结

来源:互联网 发布:linux装mysql源码包 编辑:程序博客网 时间:2024/05/03 05:25

FR软件使用小结

1.报表参数

定义数据库连接之后,添加数据库数据集,写入查询语句,${abc}即为参数,abc即为参数名称。(若数据库中有DB,则DB.TABLE即可)添加成功后出现一个名为ds1的报表数据集。

2.模板设计

类似Excel的表格,图标等设计。报表数据集中的数据直接拖入单元格即可。拖入的数据有一个基本属性表,可设置其父格和扩展方向等。过滤属性表能通过普通操作符或公式的方式设置过滤条件,对数据集中的数据进行筛选。高级属性表有排序功能,筛选功能,自定义显示,纵横向可扩展性及补充空白数据的功能。(补充空白数据多用于分页显示时填充无数据的内容)
图表设置:点击菜单栏插入,选择插入图表,选择图表类型,选择数据集,分类轴和系列设置,最后则是图表效果设置。(标题边框背景,坐标轴,系列,数据,数据表属性的设置)

3.参数设计

第一次点击参数界面会提示是否使用默认的参数界面。
控件设计:单击控件或者右击单元格点控件设置。
在控件设置里,最上方的下拉框可设置控件类型,属性栏里的控件名一般从下拉框的报表数据源参数中选取。(有允许为空,允许直接编辑和去除重复数据的复选框等选项设置,可根据不同用法做更改)
形态栏里都是该控件显示数据的方式。(有数据库表,数据查询,动态SQL,自定义和公式 五种方法)
事件编辑栏及时价格监听器在控件上,根据不同的触发条件发生作用。



4.近日学习的一些使用难点,解决方案和用法案例

1.使用超链接时,点击页面出错和不出现数据

原因:未在主表中添加子表中的参数;
方案:在主表中添加子表中的参数;
结果:在选择子表参数后可以正常打开链接并有效,但未选择子表参数时,链接有效但不现实数据;

2.无效链接问题

原因:子表通过主表传递的参数的值进行钻取,但当主表未选择子表参数时导致值为空,链接数据无法显示。
方案:对参数设置条件属性(当该参数补位空时附加超链接,即单元格的值=${abc})
结果:成功。

3.下拉复选框问题:下拉框无数据;多项选择后不显示数据。

原因:下拉框无数据原因不明;多项选择后不显示数据是由于多项数据拼接有问题,导致出现SQL语法错误。
方案:1.下拉框采用动态SQL和自定义均可解决,但大量数据时不建议使用自定义。
2.将返回值有数组改为字符串,分隔符为  ','  即可解决。
结果:成功。

4.分页显示

使用方法:对表格中最后一项设置重复结尾行,右击某个数据单元格点击条件属性,添加新的条件属性“行后分页”。条件为公式“所在单元格 % N = 0”
N为每页行数。如果有必要可以点开单元格的高级属性勾选补充空白数据。

5.下拉框级联

使用方法:父级下拉框为正常形态 “动态SQL” 获取数据;子级下拉框的动态SQL加上where条件 abc=${abc} ${abc} 为父级的参数。

6.动态分组

使用方法:
定义一个用于分组字段的参数

菜单栏中,选择定义报表参数,如:命名为p1。
点击参数设计选项界面,选择使用默认的参数界面。然后设置p1的控件类型为下拉框,其控件的数据来源设置为数据集(如:名为ds1)中的所有数据列,即设置控件的形态>公式,在实际值中输入:TABLEDATAFIELDS("ds1")即可。其函数的具体使用,可参见报表函数文档。

表样中使用数据集函数

先将所有需要显示的字段都拖入模板中(这里的B1~G2单元格),再在最左边(这里的A1、A2单元格),分别输入:=$p1(获取当前分组字段名)和 =ds1.group($p1,true,true)(通过字段名选择这列的值并分组),此函数的具体使用,可参见数据集函数的使用文档。


设置条件属性
由上表样可知,如果分组字段如选择CLASSNO,后面所有字段中必有一列与该分组字段重复,因此需要将该重复的列隐藏。
这里给B1单元格添加一个条件属性,当B1的值等于参数所选的列名时,就将该列隐藏,设置如下:

由于分组字段可能是任意的,因此需要对后面所有的数据列都加上条件属性:当与分组字段重复时隐藏列,该例中所有列设置的条件相同,因此可以选中B1~G1单元格统一设置。

7.单选按钮组赋值

使用方法:

给单选按钮组 添加状态改变事件,在function fun(){}函数中写入如下JS语句::

  1. var aa =this.getValue();  
  2. function test(){   
  3. var num = arguments[0].toString();    
  4. var curLGP = contentPane.curLGP;  
  5. curLGP.setCellValue("D3"null, num);   
  6. };  
  7. if(aa =="其他"){  
  8. var value=FR.Msg.prompt("输入""爱好""",test);  
  9. }  

当点击其他,会弹出个对话框可以输入符合自己的爱好如体育,当点击确定之后,D3单元格就显示了刚刚输入的值了。

0 0