我正在尝试设置一个自定义,它将使用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>
我计划使用公式函数并使用switch语句设置我想要的值
[PXFormula(null,typeof(Switch<Case<Where<Current<UsrMPSMSPlanSelected, Equal<SMSPlans.A>>,0>))]
然而,我被困住了:
答案 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中的场顺序非常重要。我会阅读培训信息和帮助指南,了解更多相关信息。