我测试的解决方案仍然是一个 hack,但在 Zoho 实现通过 GUI 对子表单记录进行排序的方法之前,这将不得不这样做。
首先,创建一个可以从任何地方调用的函数(例如,当添加或更改新的子表单记录时)--有关详细信息,请访问:http ://www.zoho.com/creator/help/script /functions.html
此函数将首先按父记录 ID 复制子表单记录(按相应列排序),然后删除在脚本启动之前插入的所有子表单记录:
int SubFormRecords_SortByAnything_ReturnCount(int ParentRecordID)
{
scriptStartTime = zoho.currenttime;
for each rSubFormRecord in SubFormRecords [ParentFieldName = input.ParentRecordID] sort by FieldName1, FieldName3, FieldName2
{
NewSubFormRecordID = insert into SubFormRecords
[
FieldName1 = rSubFormRecord.FieldName1
FieldName2 = rSubFormRecord.FieldName2
FieldName3 = rSubFormRecord.FieldName3
];
}
delete from SubFormRecords[ (Series == input.ParentRecordID && Added_Time < scriptStartTime) ];
return SubFormRecords[ParentFieldName == input.EventID].count();
}
一旦上述排序功能到位(为您的应用程序定制),请在适当的时候调用它。我在添加与子表单关联的记录或更改排序列值时调用它。
这很好用,只要您没有与添加和删除记录相关的复杂逻辑,它对应用程序性能的影响应该很小。
请让我知道这是否适合您,以及您是否有更好的想法。
警告:此解决方案不适用于包含附加子表单记录的表单,因为删除记录将删除链接的子表单值。
谢谢。