如何根据任何条件在报表参数中填充列表

时间:2018-09-18 17:20:34

标签: acumatica

我想在报告参数中填充“客户”列表。我记得我们可以使用类似=Report.GetFieldSchema('ARPayment.CustomerID')的东西。但是,我要填充此列表,或者说要根据某些条件过滤此列表。

谁能建议我该怎么做?我可以在Acumatica报告Desinger参数中做到这一点吗?

1 个答案:

答案 0 :(得分:0)

如果您要讨论的是为报表表单中的参数过滤选择器控件的弹出窗口: enter image description here

我认为这些是根据使用的DAC字段进行过滤的。在您的情况下,这将是“ ARPayment.CustomerID”:

public class ARPayment : ARRegister, IInvoice, ICCPayment, IApprovable, IApprovalDescription
{
    #region CustomerID
    public new abstract class customerID : PX.Data.IBqlField
    {
    }
    [CustomerActive(Visibility = PXUIVisibility.SelectorVisible, Filterable = true, TabOrder = 2)]
    [PXRestrictor(typeof(Where<Customer.status, Equal<CR.BAccount.status.active>,
                Or<Customer.status, Equal<CR.BAccount.status.oneTime>,
                Or<Customer.status, Equal<CR.BAccount.status.hold>,
                Or<Customer.status, Equal<CR.BAccount.status.creditHold>>>>>), Messages.CustomerIsInStatus, typeof(Customer.status), ReplaceInherited = true)]
    [PXUIField(DisplayName = "Customer", TabOrder = 2)]
    [PXDefault()]
    public override Int32? CustomerID
    {
        get
        {
            return this._CustomerID;
        }
        set
        {
            this._CustomerID = value;
        }
    }
    #endregion

    […]
}

您可以提供另一个具有不同PXRestrictor子句的DAC来过滤客户。我认为在全局范围内重新定义“ ARPayment.CustomerID” DAC字段也可以工作,但是它的副作用是更改使用该字段的选择器过滤器。

如果您要查找的是在单个参数(例如,传递值数组的单个参数)中将多个值传递给报表,这是我所无法直接理解的,因此需要变通方法,例如传递多个值说明如下: https://www.timrodman.com/augforums/acumatica-report-designer/multiple-values-for-a-parameter/