【问题标题】:How To Passing Parameter to Subreport in Crystal Reports XICrystal Reports XI中如何将参数传递给子报表
【发布时间】:2015-11-29 09:50:24
【问题描述】:

我有一个 .rpt,它是从 Crystal Reports XI 中的空白报表创建的。 主报表只是一个简单的选择查询,可以提示1个参数,子报表是查询列之一的成员(在这种情况下,我想为每个部门的员工详细信息创建一个子报表)。

问题是,子报表必须接收另一个根本不链接到主报表的 2 参数。 我尝试了一种正常的方式来一个一个地接收参数,但是我得到一个错误:

java.lang.IndexOutOfBoundsException: Index: 1, Size: 1

我知道这是因为报表 (.rpt) 只想从主报表中接收 1 个参数,因为它在主报表查询中只需要 1 个参数。

这是我分配参数的方法(我在 jsp 脚本中使用它):

/**
 * Modify the crystal report document current value parameters.
 *
 * @param paramIndex the index position of the parameter.
 * @param valContent the value content for the parameter.
 * @param clientDoc the ReportClientDocument object.
 */
public void setDocParameter(int paramIndex, String valContent, ReportClientDocument clientDoc)
   throws ReportSDKException {
ParameterField newParameterField = null;
ParameterFieldDiscreteValue newDiscreteValue = null;

// Get the copy of the param object.
newParameterField = new ParameterField();
((ParameterField)clientDoc.getDataDefinition().getParameterFields().getField(paramIndex)).copyTo(
    newParameterField, true);

System.out.println(paramIndex);
// Set Discrete value.
newDiscreteValue = new ParameterFieldDiscreteValue();
newDiscreteValue.setValue(valContent);

// Set ParameterField with the Discrete value.
newParameterField.getCurrentValues().add(newDiscreteValue);

    // Modify with the new ParameterField
clientDoc.getDataDefController().getParameterFieldController().modify(
        (IParameterField)      clientDoc.getDataDefinition().getParameterFields().getField(paramIndex)
        , newParameterField);
}

将多个值传递给主报表查询一切正常,但是当我想将它传递给子报表查询时,它不起作用并显示数组索引超出范围(因为它没有识别出子报表也需要一些值)

有人可以帮助我做我想做的最佳实践吗?我可以通过使用 group by 而不使用子报表以简单的方式做到这一点,但我想先尝试子报表。抱歉我的提问方式不好,我只是一个代码新手。谢谢。

【问题讨论】:

  • 你找到解决办法了吗?

标签: java jsp crystal-reports struts crystal-reports-xi


【解决方案1】:

我建议仍然从主报告传递参数,即使它不是真的来自那里。只需在主报表上创建 2 个新参数,然后将参数从主报表传递到子报表。并以同样的方式使用代码将值从 c# 获取到水晶对象中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    相关资源
    最近更新 更多