[AX]AX2012 对SSRS报表参数分组

在老式的Morphx报表弹出的对话框中,我们经常使用DataFieldGroup对报表的提示参数进行分组,在SSRS报表中又该如何做呢?

对于使用RDP(Report data provider)作为数据源的报表,可以使用方法特性直接在Data contract class中对报表参数做分组。

[DataContractAttribute,
SysOperationGroupAttribute("AccountsGroup", "@SYS313802", "1", FormArrangeMethod::Vertical),
SysOperationGroupAttribute("TaxGroup", "@SYS130006", "2")]
public class SrsRDPContractSample
{
    AccountNum accountNum;
    CustAccountStatement accountStmt;
    boolean inclTax;
}


[DataMemberAttribute("AccountNum"),
SysOperationGroupMemberAttribute("AccountsGroup"),
SysOperationDisplayOrderAttribute("1")]
public AccountNum parmAccountNum(AccountNum _accountNum = accountNum)
{
    accountNum = _accountNum;
    return accountNum;
}

[DataMemberAttribute("CustAccountStatement"),
SysOperationGroupMemberAttribute("AccountsGroup"),
SysOperationDisplayOrderAttribute("2")]
public CustAccountStatement parmAccountStmt(CustAccountStatement _accountStmt = accountStmt)
{
    accountStmt = _accountStmt;
    return accountStmt;
}

[DataMemberAttribute("InclTax"),
SysOperationGroupMemberAttribute("TaxGroup"),
SysOperationDisplayOrderAttribute("1")]
public boolean parmInclTax(boolean _inclTax = inclTax)
{
    inclTax = _inclTax;
    return inclTax;
}

在上面的Data contract class类SrsRDPContractSample中使用SysOperationGroupAttribute特性定义了两个报表参数组,分别是“AccountsGroup”和“TaxGroup”,在随后的参数方法中使用SysOperationGroupMemberAttribute特性指定参数所属的报表参数组,比如accountnum参数贝放到了“AccountsGroup”参数组,SysOperationDisplayOrderAttribute特性则是指定参数在参数组中的显示顺序。上面代码的显示效果如下:

另外一种方法是直接在Visual studio中直接创建报表参数组,把报表的参数拖入到相应的参数组中,详见http://msdn.microsoft.com/EN-US/library/gg731925.aspx,和上面不同的是它支持参数组的嵌套。按照MSDN的说明,会优先使用VS定义的参数组,但是在我的测试中使用MenuItem运行SSRS报表时总是显示Data contract class定义的参数组,原因不明。

原文地址:https://www.cnblogs.com/duanshuiliu/p/2776950.html