Acumatica实时动态DropDown列表

时间:2016-06-23 03:30:44

标签: c# dropdown erp acumatica

我有以下用例:

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

e.g:

  • 如果当前StatusProfileID = WO1且Status = WCMP, WCMP是当前UserStatus,然后UserStatus = WRJT,WEXE,WCMP
  • 如果当前StatusProfileID = WO1且Status = WRJT, WRJT是当前UserStatus,然后UserStatus = WEXE,WRJT

如何根据当前状态显示出现的用户状态,并在选择其他数据时实时更改

我按照Acumatica Dynamic MultiSelect Dropdown的方式从状态表中选择数据

据我所知,我必须使用自定义StringList属性,但有关如何执行此操作的详细信息并不清楚。

Screen Drop Down List

Data from table status

2 个答案:

答案 0 :(得分:1)

动态更改字符串列表的一种方法是通过适当的行选择事件中的以下示例代码

var table_body = $(el).closest('div').find('tbody');
table_body.append(rowItem);

答案 1 :(得分:0)

只想用RowSelected示例扩展答案,但要使用新语法,并且适用于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());
 }
}