有人可以告诉我如何检查Acumatica中的客户状态是处于活动状态还是处于非活动状态。我正在使用以下代码,但无法弄清楚应该是什么的真正价值:
if (row != null){
if (row.Status == <status.Active>){
//DO SOMETHING
}
else{
//DO SOMETHING ELSE
}
}
如果我想检查客户状态是否有效,我可以更换什么?
谢谢, ģ
答案 0 :(得分:3)
我想如果你有类似的东西:
if (row.status == Customer.status.Active)
它应该工作。您需要拥有AR对象的使用/参考。
答案 1 :(得分:0)
通过在设计模式下打开客户表单,您可以查看状态字段中的属性。通过这样做,您可以看到它实际上在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表中名为Status的字段。它是单个字符字段,Active ='A',Inactive ='I'的值。 (还有更多值)
因此,如果您只是想知道客户是否处于活动状态,与Max发布的类似,您只需在当前行定义为行的事件处理程序中执行此操作:
if (row.status == 'A') // if customer status is Active...
{
//do something
}
你可以使用一个常数,这会更好。