【问题标题】:PXSelector on DAC field causing column filter issuesDAC 字段上的 PXSelector 导致列过滤器问题
【发布时间】:2019-03-16 16:27:02
【问题描述】:

我有一个 DAC,它有一个从 table1 到 Table1ID 的 FK1 和一个从 table2 到 Table2ID 的 FK2。我在这些字段上添加了一个 PXSelector 以显示友好名称而不是 ID 号。当用户在 Table2ID 上过滤并在屏幕上添加新记录并从列到列以输入信息时,Table1ID 列值消失。用户可以将值添加回列,但我试图弄清楚为什么会消失。如果我从 Table2ID 文件中删除 PXSelector 一切正常。 PXSelector 是一个简单的选择,检查 IsActive 是否为真。

   <px:PXGridColumn DataField="AdministrationRouteID" DisplayMode="Text" Width="100px" CommitChanges="True" />
   <px:PXGridColumn DataField="MedicationID" DisplayMode="Text" Width="200px" CommitChanges="True" />


    public abstract class administrationRouteID : PX.Data.IBqlField
    {
    }
    protected int? _AdministrationRouteID;
    [PXDBInt()]
    [PXDefault()]
    [PXSelector(typeof(Search<SsAhAdministrationRoute.administrationRouteID,
        Where<SsAhAdministrationRoute.isActive, Equal<True>>>), DescriptionField = typeof(SsAhAdministrationRoute.name))]
    [PXUIField(DisplayName = "Administration Route")]
    public virtual int? AdministrationRouteID
    {
        get
        {
            return this._AdministrationRouteID;
        }
        set
        {
            this._AdministrationRouteID = value;
        }
    }



    public abstract class medicationID : PX.Data.IBqlField
    {
    }
    protected int? _MedicationID;
    [PXDBInt()]
    [PXDefault()]
    [PXSelector(typeof(Search<SsAhMedication.medicationId,
        Where<SsAhMedication.isActive, Equal<True>>>), DescriptionField = typeof(SsAhMedication.name))]
    [PXUIField(DisplayName = "Medication Name")]
    public virtual int? MedicationID
    {
        get
        {
            return this._MedicationID;
        }
        set
        {
            this._MedicationID = value;
        }
    }

【问题讨论】:

  • 听起来像一个关键错误,如果您可以在答案中发布尽可能多的代码(图形、dac、aspx)会有所帮助。

标签: acumatica


【解决方案1】:

检查 CommitChanges="true" 是否仅应用于需要该功能的 GridColumns。如果不需要,请尝试从选择器列中删除 CommitChanges="true"。网格上的 SyncPosition="true" 也可能有帮助,尤其是在数据输入期间从一行跳到另一行时。

【讨论】:

    【解决方案2】:

    听起来您只需要使用 SubstituteKey 属性在选择器上指明您的 CD 字段。下面的示例假设SsAhAdministrationRoute.administrationRouteCD 是与SsAhAdministrationRoute.administrationRouteID ID 键值相关的CD 用户友好值。

    [PXSelector(typeof(Search<SsAhAdministrationRoute.administrationRouteID,
            Where<SsAhAdministrationRoute.isActive, Equal<True>>>), 
            DescriptionField = typeof(SsAhAdministrationRoute.name),
            SubstituteKey = typeof(SsAhAdministrationRoute.administrationRouteCD))]
    

    【讨论】:

      猜你喜欢
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 2015-05-07
      • 2013-06-17
      • 2020-06-28
      • 2012-10-13
      • 1970-01-01
      • 2011-01-07
      相关资源
      最近更新 更多