多维表格的公式与AirScript脚本开发的相关问题

一、公式相关问题 1. 在公式中无法引用当前行的序号,也就是表格第1列更左边那个自动显示且有序的数字。导致我们无法获得表格记录的自然排序,在公式中做记录之间的顺序比较(例如父子记录的多级编号公式)时无法实现。变通方法是我们在表格中增加一个人为的编号列,但编号在调整记录顺序时是不会自动变更的,也就是无法保证编号的大小顺序与表格中记录的先后次序相同,这会导致多级编号的计算结果错乱。 建议在公式中增加获取记录序号的方式,可以把记录序号看作一个虚拟字段,与其他字段同样处理(在公式界面的字段列表中选择),或者提供一个 Row() 函数,直接在公式中使用。 2. 关联类型的字段只能获取到被关联记录的首列内容的问题。现在表格的第1列规定是记录的标题,如果表格有一个字段引用其他记录,那么在公式中获取到该字段的值只能是另一条记录的首个字段的值,这非常不灵活,并且非常侵入表格的内容。 例如:在表格中有一列的类型是“父记录”,它的值是引用到的父记录的首列的值,这意味着:如果我们要想“父记录”这一列中的内容有意义,我们必须把能区分各条记录的信息作为首列,这对表格的呈现带来极大的不便,因为习惯上说我们是把序号、类型等较为碎片的信息放在首列,而这些字段的信息量不足,在子记录的”父记录“字段中无法让使用者知道这到底是哪条记录。 我也在另一个帖子中看到有人抱怨为了实现让引用字段的显示值看起来有意义,必须把记录的描述字段放在第一列,这不符合绝大多数人的使用习惯,因此被否了多维表格的方案。 有一种变通办法是用“查找引用“类型的字段,这类字段可以设置显示查到记录的哪一列。但它需要指定查询条件,通常是字段值匹配,而记录间的关联关系不一定能通过字段值的查询条件建立。所以它并不能满足所有的显示关联记录指定内容的场景。 实际上,表格的第1列是什么,我目前看到在表格的内部是没有任何影响的,影响都在于从其他表格关联过来(也包括自关联)的时候获取的记录的值上。现在的问题就是通过关联只能获取记录第1列的值,把这个限制解除就好了。也就是通过关联字段或在公式中引用其他记录时,能够指定需要获取的字段值,而不是只能默认获取第1列记录标题的值。 3. 上接2,同时还要考虑到,如果我是希望在本条记录的字段值中显示被引用记录的多个字段的计算结果,这种情况可能在字段配置界面中配置无法实现,而需要在公式中提供支持。具体来说:在公式中提供函数,可以关联查找其他记录,或者类似于Parent()或Children()这样的函数可以获取确定的父记录或子记录关系,并且允许指定获取关联记录的任意列的值,这样会非常灵活。当然,这样的公式很可能会有多处相同的子表达式重复计算,最好能配套let函数提取公式子计算并为结果命名,这样能减轻写公式的心智负担。 二、AirScript脚本相关问题 1. 在脚本中无法获取记录的序号,导致在脚本中无法获得可靠的记录顺序。通过Application.Record.GetRecords()获取的记录数组,其中的顺序不是按当前表格中记录顺序排序的,可能是按记录创建顺序排列的,或者是按Record Id排列的,手动拖动记录也无法改变记录在返回数组中的顺序。而很多脚本处理逻辑是需要根据表格中当前记录的顺序进行的。 建议在获取的记录json中增加序号。 2. 上接1,但这样还有一个问题,从表格界面看,多级记录的非顶级子记录是没有行序号的,这可能是多维表格数据模型就这样设计的,但从我们脚本的使用者来看,这样也是很大的问题。 当然,现在可以手工在表格中增加一个“父记录“类型的引用字段,从而获取到父记录的Id,但这信息不足够支撑方便的业务处理,也不能解决记录排序的问题。 建议在API返回的记录json中带上多级记录的相关信息,例如:当前记录的父记录、级别、全局序号、在直接父记录中的序号,等等,这样能极大地方便脚本编写。如果在内部对这些数据的获取有较大的开销,可以通过API参数控制是否需要返回这些信息。但需要提供获取途径,因为它们在表中有父子记录的情况下肯定会被脚本用到的。 3. 上接2,在脚本中无法设置记录之间的父子关系,也就是无法通过脚本的API调用把一条记录设置为另一条记录的子记录。我们也需要在脚本中根据记录的数据在记录之间建立或调整父子关系。 建议增加相关API。
广东省
浏览 189
1
3
分享
3 +1
1 +1
全部评论