标签版面
生成文档大概是这么一个过程:
遍历每一组产品数据,数据作为内容,模板的设计版面作为表现形式,设计版面可能有多个状态,可以把每个状态看做是一个样式,数据 + 样式 得到一个和数据关联的设计版面,封装在一个框架内部,在生成后的文档页面上分布流动,这个封装框架可以称之为标签版面。
如下图,此对页包含6个大小不一的标签版面。
每个标签版面都可以认为是数据 + 样式构成。
使用样式
如果设计版面是设计为多状态的,那么生成的文档可以有多样式,可变设计提供了一个样式面板,可以用于使用管理这些样式。
如上所述,生成的每个标签版面对应了其中一个版面样式,可以选中标签版面,点击样式面板上的其他样式,会变成一个不同的外观。
应用版面样式可以认为是:原数据不变,改变样式,组合成新的标签版面。
样式可以更新,如果想要批量修改生成的标签版面设计,并不用一个个的去修改本身,只需要去修改它们对应的样式,就是跳转到设计版面修改对应的设计版面状态,然后在样式面板上右键点击“更新”菜单项,所有使用了此样式的标签版面都会按照新的版面样式重新生成一遍。
设计面板提供了两个特别的样式:
- 无样式:假如修改样式后需要更新大部分标签版面,但需要保持少数不变,可以将这部分指定为无样式,这样更新样式就不会影响到它们。
- 自动样式:设计版面的多状态通常会设置条件,根据数据本身的特点来决定应该使用何种状态,那么对应到样式面板,同样也是如此,你可以直接指定明确的样式,也可以使用自动样式,让模板的条件+数据来决定应该使用哪个样式。
修改数据
生成标签版面后,数据存放在标签版面的内部,双击可以弹出对话框修改数据,点应用后会根据新修改的数据重新生成标签版面。
修改数据和应用样式正好相反:改变数据,样式不变,组合成新的标签版面。
编辑内部
选中标签版面弹出右键菜单,可以隔离编辑标签版面的内容,类似于AI的隔离模式。
编辑内部适用于某些自由设计的场合,对于规范化流程来说,不建议使用编辑内部来修改内容,特别是可以直接通过编辑数据来代替的地方。
假如校对后发现需要修改一个价格,有两种方式,一种是编辑数据来重新生成标签版面,另一种是直接编辑内部来修改价格文本。编辑数据的方式没有脱离原有的数据+样式的自动化生成流程。但编辑内部就意味着主动放弃样式带来的方便了,例如人工编辑内部以后,此标签版面的显示内容和实际数据可能不一致,版面的表现形式可能也和样式自动生成的不一样,那么如果需要更新样式,重新自动化生成后人工修改的部分就失效了。
增删移动
在后期修改中,经常会有增删产品,或者移动产品顺序的情况,可变设计提供了非常方便的解决方案。
如下图,生成的每一个标签版面左上方都会有一个控件,显示了此标签版面在数据组中的序号,点击此控件,然后移动到其他标签版面,视鼠标相对于目标标签版面的位置不同,达到之前插入、交换位置、之后插入的不同目的。
流动控制
所有的标签版面在页面中是自然流动的,排列流动的规则在于容器,如果一个容器放不下,会自动流动到下一个容器,有必要的时候会自动新增页面。每个主数据组会自动另起一页,类似于书籍排版每个章节标题另起一页一样。
通常都会是每个容器放满了以后,才会自动分页(分容器),但某些时候需要人工控制分页,可变设计提供了两个选项,可以自由控制分页(分容器),选中标签版面弹出右键菜单,可以设置此标签版面起始于容器或者是起始于页面,对于大多数设计来说,两个选项的作用是一样的,因为一般都是一页一个容器,在一页有多个容器的时候作用有所不同。
更新数据
生成文档后,也可以更新(替换)数据,此时更新数据比在模板更新数据更为复杂,因为当前的数据和内容是绑定的,更新数据的时候势必会影响到版面内容。
例如在Excel中可能对数据有三种不同的修改,增加一行数据,删除一行数据,更新一行数据。假如每一行数据对应一个标签版面,那么更新数据后版面内容会有三种不同的变化:
- 增加:增加若干行数据后,页面上会自动生成新数据对应的新增空白标签版面,之所以生成空白标签版面而不是直接应用一个样式,原因很简单,如果直接应用了样式,但并不能确定就是你想要的样式,你得费力找出新增的并且改为你想要的样式,并不是那么好找,因为和原有的相似度非常高,直接生成空白标签能够让你一眼就能看到新增的内容,然后㐓自由选择需要应用的样式。
- 删除:删除若干行数据后,版面上会自动删除对应的标签版面。
- 更新:内容有改动的数据行,对应的标签版面会自动更新为新数据并重新生成。
更新数据时允许你忽略你不想要的那一部分改动,你可以自由选择响应数据的更新、增加、或者是删除中的任意一种或者多种改动。
如果会有后期更新数据这种流程,势必会有新数据和原数据的比较,那就牵涉到数据的匹配。设计数据时请注意数据的第一列,请确保这一列的值是唯一的,类似于数据库的主键,这样更新数据时,才能把新数据和原数据的行一一对应起来,从而判断除是否有增删修改,每个数据行这一列的数据可以称为此行数据的key。在数据分组的情况下,需要主页数据组的第一列是唯一的,并且设计组的第一列数据在其所在的数据组范围内是唯一的,两个组的键值结合起来是这一行数据的key。