0

我正在尝试编写一个 Java 应用程序来访问 Cognos 11 中的报告。我正在尝试将参数传递到报告中。目前,它是概念证明,因此它是硬编码字符串。问题是当我使用这种方法时,输出的 HTML 文件是参数页面而不是基础报告。

        ParameterValue parameters[] = new ParameterValue[1];
        parameters[0] = new ParameterValue();
        parameters[0].setName("pFundingDescription");

        ParmValueItem[] pvi = new ParmValueItem[1];
        SimpleParmValueItem item = new SimpleParmValueItem();
        item.setUse("AUTO PAYMENTS");
        pvi[0] = item;

        parameters[0].setValue(pvi);

报告中的参数名称是“pFundingDescription”,它是一个包含“自动付款”选项的多选。

我该如何进行这项工作?

ps:我一直在研究这个问题:Cognos v11 SDK Parameter Passing

4

2 回答 2

0

我创建了一个可以处理任何整数数组(C#)的方法,我假设您可以更新它以在 Java 中工作。检查一下,看看它是否有帮助。

private static parameterValue LoadMultipleInts(string varName, List<int> values)
    {
        try
        {
            var parameter = new parameterValue();
            parameter.name = varName.Trim();
            //Array size should equal number of id's passed in
            parmValueItem[] pvi = new parmValueItem[values.Count];

            for (int i = 0; i < values.Count; i++)
            {

                simpleParmValueItem item = new simpleParmValueItem();
                item.use = values[i].ToString();
                item.display = values[i].ToString();
                item.inclusive = true;
                pvi[i] = item;
            }
            parameter.value = pvi;
            return parameter;
        }
        catch (Exception ex)
        {
            throw ex;
        }
    }
于 2020-05-04T15:23:30.167 回答
0

你的代码看起来不错。我的猜测是提示页面要么是由报告属性触发以显示它,要么是所需的参数不存在,因此它会提示它们。

为了进一步试验,您是否可以删除其他提示(或确保任何无法删除的提示是“可选的”)并更改报表属性以指示它不提示。

于 2020-04-04T04:27:14.583 回答