• 报表开发思路之主格(主格属性)


    单元格的扩展是针对具体的某一个单元格,当报表主体中绑定了多个单元格时,单元格间会天然存在某种关系,使单元格间存在数据过滤关系,并且跟随扩展,这就是主子格,前面的单元格称之为主格,后面的单元格称之为子格,也就是说子格的数据会根据主格的数据进行过滤分组显示,并且还会跟随主格的扩展方向而扩展;主格与子格之间是相对关系,不存在绝对的主子关系;一个单元格既可以作为某个单元格的子格,也可以作为某个单元格的主格;主格分两种:左主格、上主格;下面分别详细讲解左主格、上主格、主子格之间的关系。

     第一节:左主格

    (1)、当A单元格纵向扩展时,B单元格被同步复制,此时A单元格称为B单元格的左主格,B单元格称为A单元格的附属单元格(或称为子格);

    (2)、左主格扩展时,附属单元格(子格)被纵向同步复制,并且与左主格的相对位置保持不变,附属单元格(子格)本身的附属单元格也将被复制。复制时,复制出来的新的单元格的所有属性都引用被复制单元格的属性。

    (3)、在默认的情况下,一个纵向扩展的单元格,当其纵向扩展时,其右边的单元格会自动跟随它扩展。即其右边的单元格自动是其附属格(子格)。或者说,一个单元格,会把它左边第一个(从右向左数)纵向扩展格作为其左                 主格,跟随着它进行纵向扩展。

    (4)、在实际应用中,当单元格纵向扩展时,有时候需要跟着被复制的单元格不一定在该单元格的右边,此时需要对被动复制的单元格设置左主格。

    (5)、当单元格进行纵向扩展时,同一维度范围是指当前主动纵向扩展的单元格所在的行范围内的所有单元格;在实际应用中,附属单元格往往是主格在同一维度上的更细的划分,或者是主单元格当前维度的聚集,有时候附属

                 单元格可能是主单元格的标题。

    图例1:

    A1单元格纵向扩展,B1单元格将被动跟随A1单元格进行纵向复制,B1单元格的左主格我们可以不设置,根据《2.1.3 规则认定》可以知道B1的左主格是A1,所以B1跟随A1纵向复制扩展;此时我们称为A1单元格为B1单元格的左主格,B1称为A1单元格的附属单元格(或者子格);

    图例2:

       A2单元格主动纵向扩展,A3单元格跟随A2单元格进行纵向扩展,同时A3单元格自身纵向扩展,A4单元格跟随A3单元格执行纵向扩展;

      从上可见:A2是A3的左主格,A3是A2的附属单元格(子格);A3又是A4的左主格,A4属于A3 的直接附属格,A4又属于A2的间接附属格;

       A3与A2不属于同一维度,所以需要我们手工定义A3的左主格;同理A4也需要手工定义左主格为A3;

       如上图所示,可以体现附属单元格是主单元格在同一维度上的更细划分;

    图例3:

       A2自身纵向扩展,B2跟随A2纵向扩展,则A2是B2的左主格,B2即为A2附属格;同时对B2执行自身的纵向扩展;A3 需要跟随A2进行纵向扩展,即每一个季度有一个小计行;

       则A3为A2的附属格,A2为A3的左主格;那么A2的直接附属格为B2,A3;

       A2与B2属于同一维度,所以B2的左主格可以手工设置为A2,也可以不设置,但是A3与A2不属于同一维度,需要我们手工定义A3的左主格为A2;如果A3不定义左主格,那么就不会进行跟随扩展,只在最后显示一行小计;

       综上所示,可以体现附属单元格是主单元格在当前维度的聚集;

    第二节:上主格

    (1)、当A单元格横向扩展时,B单元格被同步复制,此时A单元格称为B单元 格的上主格,B单元格称为A单元格的附属单元格(或称为子格);

    (2)、上主格扩展时,附属单元格(子格)被横向同步复制,并且与上主格的相对位置保持不变,附属单元格(子格)本身的附属单元格也将被复制。复制时,复制出来的新的单元格的所有属性都引用被复制单元格的属性。

    (3)、在默认的情况下,一个横向扩展的单元格,当其横向扩展时,其下边的单元格会自动跟随它扩展。即其下边的单元格自动是其附属格(子格)。或者说,一个单元格,会把它上边第一个(从下向上数)横向扩展格作为其              上主格,跟随着它进行横向扩展。

    (4)、在实际应用中,当单元格横向扩展时,有时候需要跟着被复制的单元格不一定在该单元格的下边,此时需要对被动复制的单元格设置上主格。

    (5)、当单元格进行横向扩展时,同一维度范围是指当前主动横向扩展的单元格所在的列范围内的所有单元格;在实际应用中,附属单元格往往是主格在同一维度上的更细的划分,或者是主单元格当前维度的聚集,有时候附属               单元格可能是主单元格的标题。

    图例1:

    A1单元格设置为横向扩展,A2单元格默认跟随A1单元格被动横向复制;此时A2单元格就被称为A1单元格的附属格,A1就被称为A2单元格的上主格;根据主格认定规则

    A2单元格的上主格我们可以不设置(因为在A1单元格的下面),根据《2.1.3 规则认定》可以知道A2的上主格是A1,所以A2跟随A1横向复制扩展;

    图例2:

    A1单元格主动横向扩展(年度),A2单元格跟随A1单元格进行横向扩展,同时A2单元格自身也横向扩展(季度),A3单元格跟随A2单元格执行横向扩展;

    同时A3单元格自身也横向扩展(月份),A4单元格跟随A3单元格扩展;从上可见:A1是A2的上主格,A2是A1的附属格;A2又是A3上主格,A3是A2的附属单元格(子格);A3又是A4的上主格,A4属于A3的直接附属格;A4又可以称为A1或A2的间接附属格;A1、A2、A3、A4属于同一维度,可以不需要手工指定对应的上主格;如上图所示,可以体现附属单元格是主单元格在同一维度上的更细划分;

    图例3:

     A1单元格主动横向扩展(年度),A2单元格跟随A1单元格进行横向扩展,同时A2单元格自身也横向扩展(季度),A3单元格跟随A2单元格执行横向扩展;

    同时A3单元格自身也横向扩展(月份),A4单元格跟随A3单元格扩展;从上可见:A1是A2的上主格,A2是A1的附属格;A2又是A3上主格,A3是A2的附属单元格(子格);A3又是A4的上主格,A4属于A3的直接附属格;A4又可以称为A1或A2的间接附属格;B1单元格需要跟随A1单元格同步扩展;因为他们不在同一维度,所以需要手工指定B1单元格的上主格为A1;同理让B4也跟随A1扩展,则上主格为A1;A1、A2、A3、A4属于同一维度,可以不需要手工指定对应的上主格;B1、B4不属于同一维度,所以需要手工指定上主格A1;

     综上所示,可以体现附属单元格是主单元格在当前维度的聚集;

  • 相关阅读:
    python 去重
    怎样稳稳获得年化高收益
    module_loader.py
    mac上安装ta-lib
    mac上安装memcache
    创建widget
    smartsvn 用法
    用nifi executescript 生成3小时间隔字符串
    TclError: no display name and no $DISPLAY environment variable
    【C#】详解C#序列化
  • 原文地址:https://www.cnblogs.com/szzzzn/p/11388325.html
Copyright © 2020-2023  润新知