【问题标题】:Pass parameter to SSRS report, while initializing a default value将参数传递给 SSRS 报告,同时初始化默认值
【发布时间】:2017-11-06 20:08:53
【问题描述】:

我正在尝试将新参数传递给 SSRS 报告,因此我在 Contract 类中创建了 2 个方法:

    [DataMemberAttribute('LanguageId')]
public LanguageId parmLanguageId(languageId _languageId = languageId)
{

    languageId = _languageId;

    return languageId;
}

另一个检索值:

    public LanguageId getLanguageId()
{
    return languageId;
}

在我的 DP 类中,我也在检索值:

languageId = _contract.getLanguageId();

到目前为止,一切都很好,运行我的报告时的对话框正在通过我的对话框中选择的语言 ID 的值。

我遇到的问题是,在对话框中初始化默认值时,它没有传递我选择的值,而是在打开对话框时初始化了默认值。

我正在考虑编辑我的 parmLanguageId,例如:

[DataMemberAttribute('LanguageId')]
public LanguageId parmLanguageId(languageId _languageId = 'DefaultLanguageValue')
{

    languageId = _languageId;

    return languageId;
}

但是,接下来是我必须将变量更改为选定值的部分,我可能会错过一个简单的解决方案,但我该如何完成呢?

【问题讨论】:

  • 你不能把这些放到 procs 中,让它们在需要它们的参数之前解决,然后级联。似乎比您尝试做的更容易。
  • 感谢您的回复,您能解释一下您的解决方案吗?我不确定你的意思。

标签: reporting-services dynamics-ax-2012 x++


【解决方案1】:

尝试在您的报表控制器类中覆盖方法prePromptModifyContract 并在其中添加以下行:

YourContract contract = this.parmReportContract().parmRdpContract() as YourContract;  
contract.parmLanguageId('DefaultLanguageValue');

【讨论】:

  • 我尝试在 Controller 类中添加这一行,但它不会将语言值传递给对话框。当我添加断点并使用调试器检查时,语言参数为空。
  • prePromptModifyContract 在参数对话框显示给用户之前被调用。您是否尝试过在此方法中设置断点,它对您有用吗?您是否尝试过在您的 Contract 类的 parmLanguageId 中设置断点来监控正在发生的事情?以防万一,您在更改后是否生成了 CIL?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-25
  • 1970-01-01
相关资源
最近更新 更多