列表页只显示一种记录。组合视图则一次显示多种,并且彼此嵌套:客户,以及每个客户下方的项目、文档与发票。结构只需描述一次,保存之后下次打开就在那里。
你的账户初始带有两个视图:客户总览 和 项目工作。
一个视图由什么组成
一个视图是最多四个层级的堆叠,由外向内。最上层是视图的起始记录。下面的每一层都通过一种关系抵达——“这个客户的项目”“这个项目的任务”。
视图中可以出现八种记录:客户、项目、任务、文档、发票、交易、时间记录与订阅。其中任何一种都可以作为视图的起始。在最上层之下,你只能从与上一层确实相关的种类中挑选——例如时间记录挂在任务之下,订阅挂在交易之下。
一层可以包含不止一组记录——最多四组。正因如此,客户可以同时展开成它的项目和它的文档,两者并列,无需二选一。每一组各自加载、各自分页,并拥有自己的表头行来标注列名——因为项目和文档的字段并不相同,共用一个表头必然要对其中之一说谎。
每一组在列出之前还可以按其中某个字段分组。例如把交易按类型分组,一长串列表就变成一行收入和一行支出,各自展开到自己的记录。分组最多可以叠加三层:先按类型再按客户分组,两行之中就各自出现客户。
筛选某一层
每组记录都有自己的筛选条件,而筛选是一棵条件树,不是一个扁平列表。你为一组条件选择同时满足或任一满足,并且可以把一个分组嵌套进另一个分组。
这正是它与列表页筛选的不同之处:在列表页上,不同列的条件永远以且组合。在这里你可以要求“状态为进行中或截止日期早于月底”,而这是列表页完全无法表达的。
一个条件由字段、比较方式和值组成。比较方式共有十四种,每个字段都会拿到对它有意义的那些:文本可以包含某内容或以某内容开头,数字和日期可以大于、小于或介于两者之间,状态或标签可以是某个集合中的一项。有两种比较——为空和不为空——完全不需要值。
没有条件的一组会显示全部记录,这与一个内部没有条件的分组并不相同。清空一个分组即会将其移除。
一个筛选最多容纳 64 个条件与分组(合计),嵌套最多四层。超出任一界限的视图会被拒绝而不是保存,因为那种规模的规则树会编译成没人愿意等的查询。
标签页
打开的视图在页面顶部显示为标签页。
- + 新建一个视图。它是草稿:只存在于当前浏览器中,并在标签栏中带有标记,直到你保存它。
- 保存视图把草稿变成已保存的视图。此后它存储在你的账户中,并可在任何设备上打开。该按钮位于结构页面,视图就是在那里写成的。
- × 关闭标签页。关闭一个已保存的视图并不会删除它——视图仍留在账户中。
- 打开视图会以表格列出所有尚未打开的已保存视图,可以搜索和排序,并显示每个视图的说明和最后修改时间,因此在打开之前就能分辨名称相近的两个视图。关闭的视图从这里回来,彻底删除视图也在这里进行。
右键点击标签页可以重命名、关闭,或者左移、右移。重命名已保存的视图会在各处生效;重命名草稿只影响这里。按住 Alt 并用左右方向键也可以移动已聚焦的标签页,而且只有已保存的视图能移动——草稿没有可以保留的位置。
每个标签页都有自己的网址,因此视图可以加入书签,链接也会在另一台设备上打开同一个视图。每个标签页会记住你展开过的行,所以看一眼旁边的标签页再回来,树还是你离开时的样子。改动视图的结构会重新折叠它,因为原先展开的行在新的形状里未必存在。
行是怎样加载的
视图一次只加载一层。打开页面时只加载最上层;下面的一层要等你展开它上方的行才会加载,而且每一层各自分页。你从未展开的分支不产生任何开销。
最上层像应用里其他表格一样分页:行下方有页码选择器,并沿用你为列表设定的每页条数。下面一层是在上级行内部展开的一段行,因此它是增长而不是翻页——再显示 N 条会把下一批追加在后面,你已经在读的内容留在原处。
由此引出两点,而且两点都容易被误读:
一行可能保持为空。 某个客户的项目全部未通过筛选时,该客户仍会出现,展开后没有任何内容。这是诚实的回答——“这个客户没有符合你规则的项目”——而不是把客户直接去掉,留你猜它去了哪里。
嵌套层的行数可能多于上一层。 一个项目可以关联多个客户,因此会出现在每个客户下方。把某一层加总后与上一层比较是对不上的,对不上也并不代表出了问题。
使用一行
视图里的一行就是记录本身;在它自己的列表页上能做的事,在这里都能做。
点名称就能打开它。 点击第一列里的名称,就会进入那条记录自己的页面。单元格里的名称也是链接——任务的项目、发票的客户——放不下时,+2 会展开其余的。
单元格的画法和记录自己的页面一致。 金额按开票时的货币显示,而不是一个光秃秃的数字;日期用你的格式;状态显示为带颜色的徽章;标签带着各自的颜色。
可以就地编辑。 把指针移到单元格上会出现一支铅笔;回车或对勾保存,Esc 或叉号放弃。在自己的列表页上没有铅笔的字段,这里也没有——由明细行汇总出来的合计仍然是算出来的,不是敲进去的。
在一行上点右键,会得到这条记录在自己列表页上的同一个菜单:打开、复制、标记、删除等等。无论你在那里做了什么,视图都会自己跟上。
分组行没有这些。一个分组代表若干条记录,所以没有什么可打开、可编辑或可删除的。
排序
点击列标题即可按它排序——点一次升序,再点一次降序,第三次清除排序。第一列,也就是放着每条记录名称的那一列,同样可以排序。
排序作用于整组记录,而不只是你点击的那一个分支。这个客户下的发票和那个客户下的发票属于同一组,所以它们一起动;分别排序会让同一页的两个部分互相矛盾。
排序保存在页面地址里,而不在视图里。因此它可以加书签、可以发给别人,也会跟着你在分页之间走——但它不会改动视图,别人的那份也不会跟着动。
视图不做的事
视图不包含任何记录。它只是对“读什么”的描述,因此删除视图不会改变它所显示的客户、项目或发票——而在视图里编辑单元格,改的是记录,不是视图。
导出视图
导出会把屏幕上的视图变成一个文件——就是你正在看的那个分页,无论是否已保存,所以你不必为了拿到文件而先保存视图,并且会按你排好的顺序导出。
文件中每组记录各占一张工作表,因为客户层与文档层没有共同的列,用一张表就必然会对其中一层张冠李戴。巢状结构以缩进保留:项目缩进显示在它的客户之下,顺序与屏幕上一致。文件带有视图所带的列,因此与你所阅读的内容一致。
CSV 只包含第一张工作表,因为该格式没有第二张的概念。若要保留整个视图,请选择 Excel 或 PDF。视图过大时会被拒绝而不是截断;请收窄其筛选条件后再试。