假设我想在列表中找到十个最常见的东西。 Crystal Reports 允许您使用 Nthmostfrequent 函数轻松地一一完成此操作。我很好奇我们是否可以更有效地做到这一点,比如使用 for 循环..
我试过了
local numbervar i;
local stringvar result;
local stringvar result = nthmostfrequent(i,{ticket.diagnosis});
for i :=1 to 10 do
(
nthmostfrequent(i,{ticket.diagnosis});
i := i+1;
);
result;
但是说公式中 i 处需要一个数字是行不通的。
编辑:认为我还需要初始化一个数组来容纳结果? 非常感谢任何帮助!
您的公式有一些问题。最值得注意的是:
i
。NthMostFrequent()
的调用不会将其结果保存在任何地方。你是对的,你需要使用数组来保存你的值。试试这个吧
local numbervar i;
local stringvar array result;
redim result [10];
for i :=1 to 10 do
(
result[i]:=nthmostfrequent(i,{ticket.diagnosis})
);
//A formula cannot evaluate to an array. This collapses the array into a string
join(result, ', ')
编辑:看起来
NthMostFrequent()
不会接受变量作为其第一个参数值;它必须传递一个显式整数。这个方法行不通。