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. php curl_setopt的相关设置查询手册

    bool curl_setopt (int ch, string option, mixed value) curl_setopt()函数将为一个CURL会话设置选项.option参数是你想要的设置, ...

  2. Vulkan Tutorial 11 Shader modules

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 与之前的图像API不同,Vulkan中的着色器代码必须以二进制字节码的格式使用,而不 ...

  3. python不使用第三方变量,交换两个变量的值

    #不使用第三个变量交换两个变量的值 a=1 b=2 a,b=b,a#python的直接交换 #另一种交换方法 a=a+b#a=3 b=2 b=a-b#a=3 b=1 a=a-b#a=2 b=1 pri ...

  4. Javascript检测值

    检测原始值用typeof javascript有五种原始类型,分别为字符串.数字.布尔值.null和undefined 判断一个值是什么类型的字符串,可以通过typeof typeof variabl ...

  5. socket套接字编程

    一.概述 1.socket是一种进程间通信方式,既可以用于一台机器,也可以用于网络.常用语C/S模型. 2.可以跨越Windows和Linux操作系统,可以跨越不同语言. 3.注意网络字节序和主机字节 ...

  6. PHP:phpMyAdmin如何解决本地导入文件(数据库)为2M的限制

    经验地址:http://jingyan.baidu.com/article/e75057f2a2288eebc91a89b7.html 当我们从别人那里导出数据库在本地导入时,因为数据库文件大于2M而 ...

  7. dubbo的简单应用

    一. dubbo简介 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架. 二. 架构 引用dubbo的架构图: Provide ...

  8. canvas学习总结三:绘制虚线

    上一章节我们说到,线性路径的绘制,主要利用movoTo(),lineTo()等方法,当然 Canvas 2D API 也提供了虚线的绘制方法,CanvasRenderingContext2D.setL ...

  9. HTML基本文件, CSS基础

    HTML 一.HTML基本文件 [meta标签]        1.charset属性:单独使用.设置文档字符集编码格式.        >>>写法:<meta charset ...

  10. 用nrm一键切换npm源

    当使用官方npm源安装各种包比较慢的时候,建议修改npm源地址 查看npm源地址,在终端输入以下命令 npm config list 会看到官方的npm源 metrics-registry = &qu ...