【问题标题】:How Can I Check The Status (Active/Inactive) In Acumatica Event Handler?如何在 Acumatica 事件处理程序中检查状态(活动/非活动)?
【发布时间】:2015-05-22 00:31:08
【问题描述】:

谁能告诉我如何在 Acumatica 中检查客户状态是活跃还是不活跃。我正在使用以下代码,但无法弄清楚真正的价值应该是什么:

if (row != null){
        if (row.Status == <status.Active>){
          //DO SOMETHING
        }
        else{
          //DO SOMETHING ELSE
        }
      }

如果我想检查客户状态是否处于活动状态,我可以用什么替换?

谢谢, G

【问题讨论】:

  • 我想帮助你,但为了做到这一点,我需要知道你使用哪个页面,屏幕的哪个元素,以及哪个字段。我问这个是因为客户在不同的屏幕和图表上有不同的存在。因此,请更具体地提出您的问题

标签: acumatica


【解决方案1】:

我想如果你有类似的东西:

if (row.status == Customer.status.Active)

它应该工作。您将需要 AR 对象的使用/引用。

【讨论】:

    【解决方案2】:

    您可以通过在设计模式下打开客户表单来查看状态字段上的属性。通过这样做,您可以看到它实际上是 DAC 中的哪个字段以及该字段的下拉列表中可用的内容。以下是状态字段的属性。

    new string[] { Active, Hold, CreditHold, Inactive, OneTime },
    new string[] { CR.Messages.Active, CR.Messages.Hold,CR.Messages.CreditHold, CR.Messages.Inactive, CR.Messages.OneTime }) { }
    }}
    [PXDBString(1, IsFixed = true)]
    [PXDefault(status.Active)]
    [PXUIField(DisplayName = "Status")]
    [status.List()]
    
    // below are the values for the CR.Messages if you care to see
    
    public const string Active = "Active";
    public const string Hold = "On Hold";
    public const string HoldPayments = "Hold Payments";
    public const string Inactive = "Inactive";
    public const string OneTime = "One-Time";
    public const string CreditHold = "Credit Hold";
    

    进一步查看源代码表明,客户状态字段实际上是 BAccount 表中称为状态的字段。它是一个单字符字段,Active = 'A',Inactive = 'I' 的值。 (还有更多值)

    因此,如果您只是想知道客户是否处于活动状态,类似于 Max 发布的内容,您只需在当前行定义为行的事件处理程序之一中执行此操作:

    if (row.status == 'A')  // if customer status is Active...
    {
    //do something
    }
    

    你可以使用一个常量,这样会更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-05
      • 2015-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-02
      • 1970-01-01
      相关资源
      最近更新 更多