可变状态
设计版面中任何一个设计元素都可以拥有多个状态,可以把它看做是一个多图层的对象,同一时段只能显示其中一个图层。
设计元素的状态动态显示在设计面板
上,具体显示哪个元素取决于当前选择情况。
- 选中图形(包括文本框)时,显示当前选中对象的状态列表。
- 在文本被选中或者光标在文本输入状态时,显示所在文本域的状态列表。
- 如果既没选择图形也没选择文本,显示当前设计版面的状态列表。
每个设计元素被创建时就会有一个默认的状态,可以通过右键点击状态列表弹出菜单来添加/删除状态。
- 如果想要添加一个当前状态的副本并且稍加修改,使用
复制状态
。 - 如果想要添加一个全新的和当前状态完全不同的状态,请使用
添加状态
。 - 如果需要设计元素在某些情况下隐藏,请为其
添加隐藏状态
。 - 除默认状态外,其他状态都可以被删除。
文本单元和版面通常直接使用菜单
图形对象使用组合状态组合现有图形是更方便的做法。
如上图,点击列表删上的状态项可以激活对应状态。
双击当前激活状态,可以修改此状态的名称。
为每个对象每个状态去个名字不是必须的,但如果这个模板经常被使用,那么起易于识别的名字可能应用起来更方便。
可变策略
状态提供了为每个设计元素提供了多个可能的外观选择,我们需要一种方式将状态和数据联系起来,这样就可以通过数据来驱动版面,不同的数据取值会产生不一样的结果,最简单的逻辑大概就是如下图这样。
可变设计设计目的之一就是能让设计师能够方便使用,不用写任何代码表达式,最简单最直观的方式来设计自己的逻辑,点击设计面板
右上方的if
按钮即可设置当前选择对象的可变策略。
- 选中状态时,点击
if
可以为此状态添加一个条件。 - 一个状态可以添加多个条件,选中条件,点击
and
或者or
按钮来切换此条件与下一条件的逻辑连接。 - 如果逻辑较复杂,可以使用
条件组
将选中条件组合起来,条件组
的作用类似于条件表达式中的括号。 - 默认状态不需要任何条件,当上面的条件都没满足时,自动使用默认状态。
- 在此界面可以按住鼠标拖动状态改变状态顺序。拖动状态到默认状态上,可以和原有的默认状态交换,将此状态设为默认状态。
一个条件由三部分组成,左边是数据标签(数据列名),中间是条件运算符,右边是条件取值。选择标签和运算符后,软件会自动计算出可能的取值填充到取值的下拉列表,大多数时候只需要选择即可。
左边数据标签只是一个占位,最终是实际数据行的此标签列的文本数据参与运算,我们把最终参与运算的左值称为数据值,右边设定的取值成为条件值。 那么中间各个运算符的含义如下:
大多数情况下数据值被视为文本
- =:最基本最常用的运算符,判断数据值是否等于右边的条件值。
- !=:判断数据值是否不等于右边的条件值。
- <:文本的大小比较没有任何意义,所以此处的大于小于运算符是指文本的字符数量,我们可以根据字符的多少为设计元素设计不同的状态,最常见的例如
姓名
字段,三个字的是默认,两个字的名字可以增加一个拉开字距的状态,四个字名字可以添加一个字体为细长样式的状态(假如排版姓名
的空间是有限的)。 - >:同上。
- <>:判断数据值文本中是否包含右边的条件值,例如,某数据里面包含各种服装商品,
商品名称
字段可能会有长裤、短裤、五分裤、七分裤、短袖衫、Polo衫等,那么我们如果想为裤子专门设计一个状态,就可以使用商品名称<>裤
来判断此行数据是否是裤子系列。 - ><:与<>相反,判断是否不包含右边的条件值。
- gerp:输入一个正则表达式,判断是否能在数据值文本中找到匹配。
使用带“#”的条件表达式时数据值视为数字,包括=#、!=#、<#、>#,文本被视为数字参与条件运算时,会把文本转化为数字,所以"75元"和"75.00"是相等的。
当数据有分组时,还可以使用{}=、{}>、{}<来判断子数据组的组数,可以使用pos来判断子数据组在父数据组中的位置。