1.描述

在讲述报表设计之前,首先介绍一下FineReport报表制作的几个基本概念,本章节介绍FineReport报表赖以生存的单元格扩展。

扩展,顾名思义,就是由一变多,那么单元格扩展就是指在web端查看模板效果的时候,原来的单元格由一个变成了多个,这就是单元格扩展,如下图:

2. 单元格扩展

大家对Excel应该都不陌生,用过Excel的人都知道,其单元格只有2个方向,横向和纵向,而FineReport恰恰是一款类Excel的报表工具,其单元格也一样,因此,FineReport报表中单元格的扩展是有方向的,可纵向扩展,也可横向扩展,当然也可以不扩展。

2.1 纵向扩展

单元格中的数据依次从上至下的显示,即纵向扩展(行方向的扩展,一行变多行),如下图,在单元格中输入公式 =range(1,5),在右侧的单元格属性表-扩展属性中选择扩展方向为纵向:

2.2 横向扩展

单元格中的数据依次从左至右的显示,即横向扩展(列方向的扩展,一列变多列),如下图,在单元格中输入公式 =range(1,5),在右侧的单元格属性表-扩展属性中选择扩展方向为横向:

2.3 不扩展

单元格中的数据不扩展,如下图,在单元格中输入公式 =range(1,5),在右侧的单元格属性表-扩展属性中使用默认的扩展方向不扩展:

注:如果单元格中内容是公式则默认扩展方向为不扩展,如果是数据集中的数据列,则默认扩展方向为纵向扩展。

了解了单元格的扩展,单元格的扩展是针对具体的某一个单元格,当报表主体中绑定了多个单元格时,单元格与单元格之间是否存在联系,其扩展方向是否会相互影响呢?

如下图,在单元格中拖曳两个字段,在web端预览的时候,可以看到后面的单元格根据前面的单元格数据进行分组显示:

表明当报表主体中绑定了多个单元格的时候,单元格间会天然存在某种关系,使单元格间存在数据过滤关系,并且跟随扩展,这就是父子格,前面的单元格称之为父格,后面的单元格称之为子格,也就是说子格的数据会根据父格的数据进行过滤分组显示,并且还会跟随父格的扩展方向而扩展,下面我们来详细介绍一下父子格。

3. 父子格关系

子格的扩展属性会随着父格的扩展属性变化,当单元格左侧或上方相邻的单元格具有扩展属性时,单元格默认其左侧相邻单元格为其左父格,默认上方相邻的单元格为其上父格。

父子格关系包括两种:过滤关系和跟随关系。

3.1 过滤关系

过滤关系是指子格会默认将父格的数据作为过滤条件进行过滤,使父子格之间的数据能对应的显示出来,但是这个默认的过滤关系只限于两个单元格中的字段来自于同一个数据集,如上图,两个单元格中数据来自于同一个数据集,故华东地区单元格后面跟随华东地区的销售员,华北地区跟随华北地区的销售员,而不同数据集中的两个字段,子格会将跟随父格将所有数据重复显示,如下图,B2单元格相邻的单元格为A2,在其左侧,故A2为B2的左父格:

注:过滤关系除了可以通过父子格默认添加之外,还可手动添加,后面章节再详述。

3.2 跟随关系

跟随关系就是指子格会默认跟随父格的扩展方向进行分组,即父格纵向扩展,子格跟随父格默认纵向扩展,如上图,地区单元格A2纵向扩展,子格B2也纵向跟随扩展,父格横向扩展,子格会跟随父格横向扩展分组,同时保持自己的数据使用默认的纵向扩展,如下图,A3相邻单元格为A2,且在其上方,故A2是A3的上父格:

注:单元格中数据如果是数据集中的字段,不是公式,那么其默认扩展方向均为纵向扩展,但是会根据父格的不同而进行不同方向的分组。

4. 父子格分类

父子格包括左父格和上父格两种。

4.1左父格

左父格是指跟随父格单元格纵向扩展,即表示其父格是纵向扩展,一般来说,左父格均在单元格的左侧,单元格将其相邻的左侧纵向单元格默认为左父格,并且当鼠标选中子单元格时,左父格会显示一个蓝色向下的箭头,如下图:

4.2上父格

上父格是指跟随父格单元格横向扩展,即表示其父格是横向扩展,一般来说,上父格均在单元格的上方,单元格将其相邻的上方横向扩展单元格默认为上父格,并且当鼠标选中子单元格时,上父格会显示一个蓝色向右的箭头,如下图:

5. 父子格设置

父格的设置有3种:不设置,默认设置和自定义设置,如下图所示:

5.1无

无就是指该单元格没有父格,如下图:

5.2默认设置

默认就是指将数据列拖拽至单元格中时,该单元格会默认将其相邻上方横向扩展或者左侧纵向扩展的单元格当做上父格或者左父格。

注:必须是相邻的同行或者同列单元格,不是相邻的需要自定义设置。

另:其单元格的左侧相邻单元格不具有扩展属性时,会依次向左或向上寻找具有扩展属性的单元格,来确定它的父格。

5.3自定义设置

自定义设置就是指可以自己为指定单元格设置父格,可直接输入单元格或者快速选择,如下图所示:

本文首发CSDN:http://blog.csdn.net/szd_happy/article/details/75287265

FineReport单元格扩展与父子格设置的更多相关文章

  1. Qt实现表格控件-支持多级列表头、多级行表头、单元格合并、字体设置等

    目录 一.概述 二.效果展示 三.定制表头 1.重写数据源 2.重写QHeaderView 四.设置属性 五.相关文章 原文链接:Qt实现表格控件-支持多级列表头.多级行表头.单元格合并.字体设置等 ...

  2. c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index ...

  3. 转:c# WinForm开发 DataGridView控件的各种操作总结(单元格操作,属性设置)

    一.单元格内容的操作 *****// 取得当前单元格内容 Console.WriteLine(DataGridView1.CurrentCell.Value); // 取得当前单元格的列 Index  ...

  4. 【原创】Silverlight DataGrid对核心控件DataGrid的任意单元格进行获取和设置分析。

    前几天,公司同事有个需求需要对系统中的DataGrid控件的指定单元格(如图,申请人ID)进行禁用设置,尝试了很多次总是 整行整列的 禁用 没实现效果. 网上资料较少,没找到解决措施. 尽管silve ...

  5. aspxGridview 根据单元格值得不同,设置单元格字体的颜色(设置和读取值)

    protected void ASPxGridView1_HtmlRowCreated(object sender,DevExpress.Web.ASPxGridView.ASPxGridViewTa ...

  6. npoi的用法,动态的判断单元格的大小,设置列的宽度

    public MemoryStream GridToExcelByNPOI(DataTable dt, string strExcelFileName) { HSSFWorkbook wk = new ...

  7. 帆软报表(finereport)单元格函数,OP参数

    单元格模型:单元格数据和引用:数据类型.实际值与显示值.单元格支持的操作单元格样式:行高列宽.隐藏行列.自动换行.上下标.文字竖排.大文本字段分页时断开.标识说明.格式刷单元格Web属性:web显示. ...

  8. NPOI之Excel——合并单元格、设置样式、输入公式

    首先建立一个空白的工作簿用作测试,并在其中建立空白工作表,在表中建立空白行,在行中建立单元格,并填入内容: //建立空白工作簿 IWorkbook workbook = new HSSFWorkboo ...

  9. C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置

    一.对行高,列宽.单元格边框等的设置 这篇简短的文字对单元格的操作总结的比较全面,特此转载过来. private _Workbook _workBook = null; private Workshe ...

随机推荐

  1. docker - 关于network的一些理解

    docker 提供给我们多种(4种)网络模式,我们可以根据自己的需求来使用.例如我们在一台主机(host)或者同一个docker engine上面运行continer的时候,我们就可以选择bridge ...

  2. 关于MS12-020一次简单尝试

    由于之前着重于web漏洞,主机漏洞这块比较薄弱.也没有用过metasploit,对于很多系统漏洞还不熟悉,正好这几天不忙,就想着慢慢学习,再写点简单的东西,进行总结记录. 这次尝试的是MS12-020 ...

  3. 使用python遍历指定城市的一周气温

    处于兴趣,写了一个遍历指定城市五天内的天气预报,并转为华氏度显示.把城市名字写到一个列表里这样可以方便的添加城市.并附有详细注释 1 import requests import json#定义一个函 ...

  4. 可视化之AQICN

    上一篇和大家分享了<可视化之Berkeley Earth>,这次看一看下面这个网站---aqicn.org.先做一个提示:文末有惊喜~ 该网站在中国有一定的权威性,PM2.5数据有一点敏感 ...

  5. 如何同时完成多个ajax之后再执行某个方法 ? 使用$.when().done();

    jQuery中的$.when()方法比较复杂,这里不作全面讲解,只写一个同时完成多个ajax请求后执行操作的方法. 有时候我们需要等待多个ajax执行完以后,再执行某个操作. 写法如下: $.when ...

  6. JavaFx TableView疑难详解

    TableView是个十分有用的控件,适应性和灵活性非常强,可以对它进行任意的修改,比如界面样式.功能.本文将从一步步提问的方式讲解TableView 创建已知列的TableView 已知列的表格的创 ...

  7. spring-boot开发:使用内嵌容器进行快速开发及测试

    一.简述一下spring-boot微框架 1.spring-boot微框架是什么? 大家都知道,在使用spring框架进行应用开发时需要很多*.xml的初始化配置文件,而springBoot就是用来简 ...

  8. 整理一些提高C#编程性能的技巧

    1.使用StringBuilder代替使用string 连接符 "+" 说明:String类对象是不可变的(只读),一旦创建该对象,就不能修改该对象的值. 对象String对象的重 ...

  9. Vue实战Vue-cli项目构建(Vue+webpack系列之一)

    用Vue比较长一段时间了,大大小小做了一些项目,最近想总结一下知识点,出一个Vue+webpack系列,先从项目构建说起--vue-cli. 由于是Vue+webpack这里就不赘述git那些东西,默 ...

  10. 基于jQuery封装的分页组件

    前言: 由于项目需要实现分页效果,上jQuery插件库找了下,但是木有找到自己想要的效果,于是自己封装了个分页组件. 思路: 主要是初始化时基于原型建立的分页模板然后绑定动态事件并实现刷新DOM的分页 ...