我有一个表单设计,其中填充了已请求信息的用户名。详细信息中包含一个字段,显示此人响应请求所需的总天数。我们最多有10个字段,用于保存用户的姓名以及此人回复的天数。
我正在尝试总结这一点,以便我可以在视图中显示信息作为详细信息的摘要。
以下是详细信息的示例:
FieldName1 = Sally Jones DaysProcess1 = 3
FieldName2 = John Smith DaysProcess2 = 2
FieldName3 = Fred Johnson DaysProcess3 = 1
FieldName4 = Sally Jones DaysProcess4 = 4
FieldName5 = Fred Johnson DaysProcess5 = 2
我想在视图中显示
名称 - 号码请求 - 总天数
Sally Jones - 2 - 7
John Smith - 1 - 2
弗雷德约翰逊 - 2 - 3非常感谢您的想法 让
答案 0 :(得分:0)
这是简单的部分。 “名称”列可能如下所示:
enter code here
@ Unique(FieldName1:FieldName2:FieldName3:FieldName4:FieldName5);
现在让我们来看看困难的部分。在第二列中,您希望第一个值为2,因为Sally Jones有两个条目,对吧?那么,你的第二列必须按顺序访问唯一名称列表,并且必须计算有多少字段引用该名称。这看起来适合您的第二列公式:
theUniqueNames := @Unique(FieldName1 : FieldName2 : FieldName3 : FieldName4 : FieldName5);
allTheNames := FieldName1 : FieldName2 : FieldName3 : FieldName4 : FieldName5;
output := @Transform(theUniqueNames; "x";
@Elements(@Trim(@Replace(allTheNames;x;"")))
);
output;
最后一列需要是与刚刚为每个名称计算的FieldNameX字段对应的DaysProcessX字段的总和。那更难了。我要在这里作弊,并假设你永远不会再添加任何字段对...
theUniqueNames := @Unique(FieldName1 : FieldName2 : FieldName3 : FieldName4 : FieldName5);
allTheNames := FieldName1 : FieldName2 : FieldName3 : FieldName4 : FieldName5;
output := @Transform(theUniqueNames; "x";
@If(fieldName1 = x;DaysProcess1;0) +
@If(fieldName2 = x;DaysProcess2;0) +
@If(fieldName3 = x;DaysProcess3;0) +
@If(fieldName4 = x;DaysProcess4;0) +
@If(fieldName5 = x;DaysProcess5;0)
);
output;
如果你想在将来考虑更多的字段对,嵌套的@Transform可能会做到这一点,但是如果没有实际的测试,那就太麻烦了。 (即,我在这里说的是上面没有经过测试。希望它足够接近给你正确的想法。)