2015-01-14 108 views
1

說我想找到列表中的十個最常見的東西。 Crystal報表允許您輕鬆地使用Nthmostfrequent函數輕鬆完成此操作。我很好奇,如果我們能做到這一點使用一個for循環更多的有效說..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; 

不過,這並不公式中的工作說了一些,預計在我。

編輯:思考我還需要初始化一個數組以容納結果? 任何幫助非常感謝!

回答

0

你的配方有幾個問題。最值得注意的是:

  1. 在第3行上,您正試圖在初始化之前使用i
  2. 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()將不接受其第一個參數值的變量;它必須通過一個明確的整數。此方法不起作用。

+0

感謝您的迴應!我仍然得到同樣的錯誤,說「在這裏預期的數字」,然後光標在第i頻繁地進入我。我正在使用水晶報告的過時版本,所以這可能是問題所在? –

+0

@BrinnRiordan不,你說得對。 Crystal也不會讓我使用變量作爲第一個參數。幫助文件明確指出「整數」,我認爲他們正在區分數值類型。對不起,我不認爲這將起作用。 – Ryan

+0

補償這種僵化!再次感謝你的幫助! –