Ceum 中的每个列表页都回答关于一种记录的问题。“哪些发票未付款?”是发票列表的问题。“我的活跃客户中,哪些既有未付款的发票、又有仍在进行的项目?”则不是任何单个列表能回答的问题,因为答案一次横跨三种记录。
组合视图正是这个问题的去处。你描述一叠层级——客户在上,它们的项目与发票在下——在每一层分别加上筛选条件,再把结果当作一棵可展开的树来读。这篇演练从一个空标签页开始构建一个视图,最后得到一份可以发给别人的文件。
组合视图属于 Plus 和 Pro 方案。Plus 账户最多保留十个已保存的视图;Pro 则不限个数。下面的内容在两者上完全一样——各档还包含什么,请参阅方案与账单。
目标
一个已保存的视图:从你的客户出发,向下展开到每个客户下方的项目与发票,每一层都只显示你关心的记录,并且导出的文件与屏幕上的内容一致。
1. 起一份草稿,并选定它从什么读起
打开组合视图。你的账户里已经有两个视图可供参考——“客户总览”与“项目工作”——不过还是新建一个:标签栏中的 + 会添加一个标签页,并带你去它的结构页,那里是唯一能写下视图形状的地方。
顶层卡片就是视图的出发记录。八种记录中的任何一种都可以放在那里。选客户。
同一张卡片里还有两个选择,两个都值得现在就做,而不是留到以后:
- 列决定每一行显示什么,也决定导出时文件里带什么——导出对话框里没有选列的地方。
- 排序方式与方向设定静止时的顺序。开始读视图之后,你仍可以点击列标题来排序;那个顺序存在页面地址里而不是视图里,因此它是你用链接发出去的东西,而不是你保存下来的东西。
2. 在下方嵌套层级
添加层级会把下一层放到上一层之下。一个视图连顶层在内共四层深,无处可再向下时该按钮就会消失。
嵌套的一层要说明它是怎么抵达的:你从上一层挑一种关联——这个客户的“项目”、这个项目的“任务”、这个任务的“时间记录”。只有真正存在的关联才会被提供,因此视图的形状永远不会超出数据的形状。
一层可以并排容纳最多四组记录。在第二层上点添加另一组,一个客户就会同时展开它的项目与它的发票,而不必在两者间二选一。每一组各自获取、分页与排序,各自也有自己的标题行。
3. 各层各按自己的条件筛选
每一组都带有自己的筛选条件,而这正是组合视图超出列表页所能表达的地方。列表页把不同列上的条件永远以“并且”相连。这里的筛选条件是一棵树:你为一组条件选择同时满足或任一满足,而一个群组还可以嵌在另一个群组里。
于是客户层可以要求状态为 活跃,而它下方的发票要求“状态不是 已付款 或者 到期日早于今天”——一个问题,两层,两套不同的规则。一个条件由字段、比较方式与值构成,每个字段只会被提供对它有意义的比较方式;完整的一套见组合视图。
没有条件的一组会显示全部记录,这与空群组不是一回事——把一个群组清空就等于移除它。筛选条件也可能大到或嵌套深到无法保存,编辑器会在你按保存视图之前指出你越过了哪条界限。
有两种结果初看奇怪,知道原因就不奇怪了:项目全都不符合筛选条件的客户仍会出现,展开后空无一物;嵌套层的行数可能多于其父层,因为关联到两个客户的项目会在两者下方各出现一次。
4. 在列出之前给一组记录分组
添加分组把长长的一串行变成带标签的桶。把交易按类型分组,这一组就成了一个“收入”行和一个“支出”行,各自展开到自己的记录。分组可以叠三层,因此先按类型再按客户,就能在两者中各自看到客户。
不是每个字段都能分组——从不重复的值,或读取行时才算出来的值,没有可分的桶——编辑器会说明是哪一种,而不是把选项藏起来。
分组行是标签,不是记录:在它上面没有可打开、可编辑或可删除的东西。
5. 保存它——或者不保存
保存视图把标签页变成存在你账户里的已保存视图,可在所有设备上使用,并计入你方案的上限。在此之前它是一份草稿,在标签栏中有标记,且只留在这个浏览器里。
草稿并不低人一等。它能挺过一次重新加载,可以和已保存的视图一样导出,而且不占用你的视图数额——因此实验就一直是实验,直到你认定它挣得了一席之地。关掉一个已保存的标签页并不会删除该视图;打开视图会列出所有未打开的已保存视图,也是你彻底删除某个视图的地方。
视图上屏之后,各行的行为就跟它们本来的记录一样——名称可以打开记录,单元格接受铅笔以就地编辑,右键给出的菜单与该记录在自己列表页上的菜单相同。只有顶层会预先加载;展开一行才会取来它下方的内容,而再显示 N 条是在父行内部追加下一批,而不是翻页。
6. 把整个视图取出成一份文件
视图页上的导出把屏幕上的内容变成一份文件——你正在看的那个标签页,无论已保存还是草稿,都按你排好的顺序。你从来不必为了拿到文件而去保存一个视图。
选 Excel 或 PDF 可保留整个视图。Excel 每组记录一个工作表;PDF 没有工作表,于是把每组放进一个子表格。两种方式下嵌套都以缩进保留下来,因此项目会按屏幕上的顺序缩进在其客户之下。CSV 只容纳第一组,因为这个格式没有第二组的概念。大到走不完的视图会被拒绝,而不是悄悄截断——收窄一个筛选条件,再生成一次。
生成好的文件会汇集到视图导出页,你可以在那里重新下载或删除;生成失败的则提供重新生成。那个页面上没有发起新导出的入口——文件总是来自它所属的视图。
你最终得到什么
一个横跨三种记录来回答问题的视图,每一层都有自己的规则,保存一次,下次打开页面它就在那儿——外加一份随时可以在别人开口时交出去的同样内容的文件。结构才是功夫;此后读它只需一次点击。