切换字段值语句

时间:2016-02-09 20:53:21

标签: event-handling switch-statement acumatica

我正在尝试设置一个自定义,它将使用switch语句动态显示一系列字段中的值。

如果我们专注于一个字段,我有一个字符串列表

public static class SMSPlans
{
 public const string A = "A";
 public const string B = "B";
 public const string C = "C";
 public const string Z = "Z";
}

[PXDBString(2, IsUnicode = true)]
[PXDefault(SMSPlans.Z)]
[PXUIField(DisplayName = "SMS Plan Selected")]
[PXStringList(
 new string[]
 {
 SMSPlans.A,
 SMSPlans.B,
 SMSPlans.C,
 SMSPlans.Z
 },
 new string[]
 {
 "Plan A",
 "Plan B",
 "Plan C",
 "No Text Plan"
 })]

我想将此字段设置为允许值中的任何一个时,使用相应的固定值填充一系列字段,如下图所示(如果选择任何计划,则0表示当前将显示的默认值)< / p>

Sample Image

我计划使用公式函数并使用switch语句设置我想要的值

[PXFormula(null,typeof(Switch<Case<Where<Current<UsrMPSMSPlanSelected, Equal<SMSPlans.A>>,0>))]

然而,我被困住了:

  1. 我如何使用_RowSelect()或其他事件处理程序
  2. 如果数据库中存储了由switch statment
  3. 指定的这些字段的任何值,该怎么办?
  4. 最后这个开关的结构正确,因为它当前没有工作

1 个答案:

答案 0 :(得分:0)

据我所知,你有几种方法可以解决这个问题。

1)使用PXFormula属性标签 - 您的Switch定义在上面的示例中大部分都是正确的,但根据您拥有它的位置,PXFormula定义本身是不正确的。我要做的是将PXFormula标记放在需要更新的字段上。

例如,如果您的字段是UsrMinText,请使用以下内容:

tags = soup.find_all(id="province")
for tag in tags:
    tag['readonly'] = 'readonly'

2)就这种类型的自定义而言,我会在BLC中使用实际的事件方法来执行此操作。一个很好的例子就是事件的帮助指南。

[PXFormula(typeof(Switch<Case<Where<UsrMPSMSPlanSelected,Equal<SMSPlans.A>>,{value if true},{value if false or more case statements}))]

在任一方法中,将存储在数据库中的值是您在PXFormula的{True} / {False}值或实际切换方法中指定的值中指定的值。

要记住的一件事是DACS中的场顺序非常重要。我会阅读培训信息和帮助指南,了解更多相关信息。