我们常见的可变数据实现方式是:

使用一个平面数据表格,100条数据记录依次替换到一个设计模板中,可以生成100个设计页面。

可变设计同样支持这种最常用的模式,如果你有其他可变数据软件的使用经验,可以以同样的方式在可变设计中使用。

但可变设计还能做到更多,以适应一些不同需求。

数据结构及分组

平面数据或许可以满足大多数单页的可变应用,但在型录设计中,我们可能会碰到下面的情况:在一本产品型录中,产品数据会分成几个系列,一个系列包含若干个产品类别,每个产品类别可能还包含数量不等的具体型号,如下图所示:

本质上应该是一个三层的树形结构,如果我们用xml来表达产品数据,应该是如下图这种结构:

<Root>
    <masterDesign>
        <data value="A" tag="系列"/>
        <data value="休闲" tag="风格"/>
        <design>
            <data value="A0010144" tag="款型"/>
            <data value="短袖衫" tag="货品名称"/>
            <data value="女" tag="性别"/>
            <subDesign>
                <data value="1" tag="货号"/>
                <data value="热情红/纯净白" tag="配色"/>
            </subDesign>
            <subDesign>
                ...
            </subDesign>
        </design>
        <design>
            ...
        </design>
    </masterDesign>
    <masterDesign>
        ...
    </masterDesign>
</Root>

但大多数时候不得不用一个平面数据表来表示,因为通常都会用数据库或者Excel来存储数据,如下图所示:

但实际上我们能够合并单元格来还原数据实际上的逻辑结构,只不过是横向的,如下图所示:

合并单元格的依据是找出相对于下层的数据的共性,例如货号1和货号2的款型是都是A0010144,款型A0010144和A0010301的风格都是休闲,那么这些共性就可以合并。

如果我们的数据列分为三种形式,后面带+号(系列+,风格+),带-号(货号-,配色-),保持原状(款型,货品名称,性别),就可以将平面数据表的所有列分为三组,每一组的第一列可以视为关键列。

当可变设计读取数据时,会根据分组标识来自动分组,连续相同的值合并,本组的其他列根据关键列的合并情况来合并,最终得到一个三层数据结构,作为一个约定,我们将顶层数据组称为主页数据组,中间层称之为主数据组,最下层称为子数据组。

当然,也可以只分一组(保持原状),那么数据结构就和我们之前熟悉的其他可变流程一致,也可以只分两组,不管如何分组,中间层主数据组总会是流程中的主要数据,在页面中排列流动的每一个标签版面都对应了一个主数据组。

数据的作用域

三层数据结构和三层版面模型是对应关系,不同层的数据可以作用到不同层级的版面上,上层的数据可以在下层起作用,反过来则不可以,道理很简单,如上数据,风格“休闲”是属于主数据组,可以作为变量出现在动态主页上,但它同时也可以是款型A0010144的属性,所以也可以出现在主设计版面上作为款型A0010144的一个商品信息。但反过来,A0010144只是系列A的款型之一,我们通常可以用整体特征来标识个体,但反过来个体却不能代表整体,例如可以说一个上海人是中国人,但不可能见到任何一个中国人就说他是上海人,这是基本的常识。

另外在某些特殊情况下,下层数据也可以出现在上层,例如动态表格或者作为容器的动态文本,但一定是作为整体出现的,即同级的每个数据都会出现一次。

注意事项

在数据整理和标识过程中,注意如下事项:
1. 表格的第一行是列名,列名是设计版面数据域的占位符,请确保不会有重复的列名。
2. 请保持列名简洁易识别,不要包含逗号引号或者回车符制表符之类易产生歧义的字符。
3. 如果有分层,请保证每层的关键列在前面,如上图,系列(+)款型货号(-)分别是三个层次的关键列,软件会根据关键列的数据重复情况来合并行(类似于合并单元格)。