标签版面

生成文档大概是这么一个过程:

遍历每一组产品数据,数据作为内容,模板的设计版面作为表现形式,设计版面可能有多个状态,可以把每个状态看做是一个样式,数据 + 样式 得到一个和数据关联的设计版面,封装在一个框架内部,在生成后的文档页面上分布流动,这个封装框架可以称之为标签版面。

如下图,此对页包含6个大小不一的标签版面。

每个标签版面都可以认为是数据 + 样式构成。

使用样式

如果设计版面是设计为多状态的,那么生成的文档可以有多样式,可变设计提供了一个样式面板,可以用于使用管理这些样式。

如上所述,生成的每个标签版面对应了其中一个版面样式,可以选中标签版面,点击样式面板上的其他样式,会变成一个不同的外观。

应用版面样式可以认为是:原数据不变,改变样式,组合成新的标签版面。

样式可以更新,如果想要批量修改生成的标签版面设计,并不用一个个的去修改本身,只需要去修改它们对应的样式,就是跳转到设计版面修改对应的设计版面状态,然后在样式面板上右键点击“更新”菜单项,所有使用了此样式的标签版面都会按照新的版面样式重新生成一遍。

设计面板提供了两个特别的样式:

修改数据

生成标签版面后,数据存放在标签版面的内部,双击可以弹出对话框修改数据,点应用后会根据新修改的数据重新生成标签版面。

修改数据和应用样式正好相反:改变数据,样式不变,组合成新的标签版面。

编辑内部

选中标签版面弹出右键菜单,可以隔离编辑标签版面的内容,类似于AI的隔离模式。

编辑内部适用于某些自由设计的场合,对于规范化流程来说,不建议使用编辑内部来修改内容,特别是可以直接通过编辑数据来代替的地方。

假如校对后发现需要修改一个价格,有两种方式,一种是编辑数据来重新生成标签版面,另一种是直接编辑内部来修改价格文本。编辑数据的方式没有脱离原有的数据+样式的自动化生成流程。但编辑内部就意味着主动放弃样式带来的方便了,例如人工编辑内部以后,此标签版面的显示内容和实际数据可能不一致,版面的表现形式可能也和样式自动生成的不一样,那么如果需要更新样式,重新自动化生成后人工修改的部分就失效了。

增删移动

在后期修改中,经常会有增删产品,或者移动产品顺序的情况,可变设计提供了非常方便的解决方案。

如下图,生成的每一个标签版面左上方都会有一个控件,显示了此标签版面在数据组中的序号,点击此控件,然后移动到其他标签版面,视鼠标相对于目标标签版面的位置不同,达到之前插入、交换位置、之后插入的不同目的。

流动控制

所有的标签版面在页面中是自然流动的,排列流动的规则在于容器,如果一个容器放不下,会自动流动到下一个容器,有必要的时候会自动新增页面。每个主数据组会自动另起一页,类似于书籍排版每个章节标题另起一页一样。

通常都会是每个容器放满了以后,才会自动分页(分容器),但某些时候需要人工控制分页,可变设计提供了两个选项,可以自由控制分页(分容器),选中标签版面弹出右键菜单,可以设置此标签版面起始于容器或者是起始于页面,对于大多数设计来说,两个选项的作用是一样的,因为一般都是一页一个容器,在一页有多个容器的时候作用有所不同。

更新数据

生成文档后,也可以更新(替换)数据,此时更新数据比在模板更新数据更为复杂,因为当前的数据和内容是绑定的,更新数据的时候势必会影响到版面内容。

例如在Excel中可能对数据有三种不同的修改,增加一行数据,删除一行数据,更新一行数据。假如每一行数据对应一个标签版面,那么更新数据后版面内容会有三种不同的变化:

更新数据时允许你忽略你不想要的那一部分改动,你可以自由选择响应数据的更新、增加、或者是删除中的任意一种或者多种改动。

如果会有后期更新数据这种流程,势必会有新数据和原数据的比较,那就牵涉到数据的匹配。设计数据时请注意数据的第一列,请确保这一列的值是唯一的,类似于数据库的主键,这样更新数据时,才能把新数据和原数据的行一一对应起来,从而判断除是否有增删修改,每个数据行这一列的数据可以称为此行数据的key。在数据分组的情况下,需要主页数据组的第一列是唯一的,并且设计组的第一列数据在其所在的数据组范围内是唯一的,两个组的键值结合起来是这一行数据的key。