For loop crystal报表中公式内的For循环
假设我想在列表中找到十件最常见的事情。Crystal reports允许您使用Nthmostfrequent函数逐个轻松地执行此操作。我很好奇,如果我们能更有效地做到这一点,比如说使用for循环 我试过了For loop crystal报表中公式内的For循环,for-loop,crystal-reports,For Loop,Crystal Reports,假设我想在列表中找到十件最常见的事情。Crystal reports允许您使用Nthmostfrequent函数逐个轻松地执行此操作。我很好奇,如果我们能更有效地做到这一点,比如说使用for循环 我试过了 local numbervar i; local stringvar result; local stringvar result = nthmostfrequent(i,{ticket.diagnosis}); for i :=1 to 10 do ( nthmostfrequent
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()
将不接受变量作为其第一个参数值;必须向其传递一个显式整数。此方法无效。谢谢您的回复!我仍然得到同样的错误,说“这里需要一个数字”,然后光标转到第n个最频繁的I。我使用的是过时的crystal reports版本,所以也许这就是问题所在?@BrinnRiordan Nope,你说得对。Crystal也不允许我使用变量作为第一个参数。帮助文件明确地说是“整数”,我认为他们在数字类型之间画了一个区别。对不起,我认为这终究行不通。该死的这种僵化!再次感谢你的帮助!