Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Acumatica实时动态下拉列表_C#_Dropdown_Erp_Acumatica - Fatal编程技术网

C# Acumatica实时动态下拉列表

C# Acumatica实时动态下拉列表,c#,dropdown,erp,acumatica,C#,Dropdown,Erp,Acumatica,我有以下用例: Acumatica组合框/下拉列表,可以有8个左右的值,选择该值可确定用于在组合框/下拉列表中显示的表格/DAC e、 g: 如果当前StatusProfileID=WO1和Status=WCMP, WCMP是当前的UserStatus,然后UserStatus=WRJT、WEXE、WCMP 如果当前StatusProfileID=WO1和状态=WRJT, WRJT是当前的UserStatus,然后UserStatus=WEXE,WRJT 如何使显示的用户状态与当前状态一致,

我有以下用例:

Acumatica组合框/下拉列表,可以有8个左右的值,选择该值可确定用于在组合框/下拉列表中显示的表格/DAC

e、 g:

  • 如果当前
    StatusProfileID
    =WO1和
    Status
    =WCMP, WCMP是当前的
    UserStatus
    ,然后
    UserStatus
    =WRJT、WEXE、WCMP
  • 如果当前
    StatusProfileID
    =WO1和
    状态
    =WRJT, WRJT是当前的
    UserStatus
    ,然后
    UserStatus
    =WEXE,WRJT
如何使显示的用户状态与当前状态一致,并在选择其他数据时实时更改

我遵循从状态表中选择数据的方法

我知道我必须使用一个自定义的StringList属性,但是如何实现这一点的细节还不清楚


动态更改stringlist的一种方法是在适当的rowselected事件中使用下面的示例代码

if(somecondition)
 PXStringListAttribute.SetList<DAC.Field>(sender, row,
                    new string[] { "WRJT", "WEXE", "WCMP" },
                    new string[] { "WRJT", "WEXE", "WCMP" });
else
 PXStringListAttribute.SetList<DAC.Field>(sender, row,
                    new string[] { "WEXE", "WRJT" },
                    new string[] { "WEXE", "WRJT" });
if(某些条件)
PXStringListAttribute.SetList(发送方,行,
新字符串[]{“WRJT”、“WEXE”、“WCMP”},
新字符串[]{“WRJT”、“WEXE”、“WCMP”});
其他的
PXStringListAttribute.SetList(发送方,行,
新字符串[]{“WEXE”,“WRJT”},
新字符串[]{“WEXE”,“WRJT”});

只想使用选定的行示例扩展答案,但使用新语法,并适用于PXIntList:

protected virtual void _(Events.RowSelected<CROpportunity> e)
{
 if (e.Row == null)
     return;
 var opportunityExtension = e.Row.GetExtension<CROpportunityExt>();

 if (opportunityExtension.UsrProduct == 0)
 {
     var listInts = new List<int>();
     var listStrings = new List<String>();

     listInts.Add(0);
     listInts.Add(1);
     listInts.Add(2);

     listStrings.Add("String 1");
     listStrings.Add("String 2");
     listStrings.Add("String 3");

     PXIntListAttribute.SetList<CROpportunityExt.usrProposition>(e.Cache, e.Row, listInts.ToArray(), listStrings.ToArray());
 }

 if (opportunityExtension.UsrProduct == 1)
 {
     var listInts = new List<int>();
     var listStrings = new List<String>();

     listInts.Add(0);
     listInts.Add(3);
     listInts.Add(5);

     listStrings.Add("String 2");
     listStrings.Add("String 3");
     listStrings.Add("String 4");

     PXIntListAttribute.SetList<CROpportunityExt.usrProposition>(e.Cache, e.Row, listInts.ToArray(), listStrings.ToArray());
 }
}
受保护的虚拟空间(Events.rowe)
{
如果(e.Row==null)
返回;
var opportunityExtension=e.Row.GetExtension();
if(opportunityExtension.UsrProduct==0)
{
var listInts=新列表();
var listStrings=新列表();
listInts.Add(0);
增加(1);
增加(2);
添加(“字符串1”);
添加(“字符串2”);
添加(“字符串3”);
PXIntListAttribute.SetList(e.Cache,e.Row,listInts.ToArray(),listStrings.ToArray());
}
if(opportunityExtension.UsrProduct==1)
{
var listInts=新列表();
var listStrings=新列表();
listInts.Add(0);
增加(3);
增加(5);
添加(“字符串2”);
添加(“字符串3”);
添加(“字符串4”);
PXIntListAttribute.SetList(e.Cache,e.Row,listInts.ToArray(),listStrings.ToArray());
}
}