水晶报表中公式内的 For 循环

问题描述 投票:0回答:1

假设我想在列表中找到十个最常见的东西。 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 处需要一个数字是行不通的。

编辑:认为我还需要初始化一个数组来容纳结果? 非常感谢任何帮助!

for-loop crystal-reports
1个回答
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()
不会接受变量作为其第一个参数值;它必须传递一个显式整数。这个方法行不通。

© www.soinside.com 2019 - 2024. All rights reserved.