【问题标题】:Acumatica - Fields do not load when item selected from PXSelectorAcumatica - 从 PXSelector 中选择项目时不加载字段
【发布时间】:2020-01-30 00:17:18
【问题描述】:

当从选择器中选择一个值时,我无法加载我的字段。第一个屏幕(组类别)有一个组选择器,在文本字段和网格中显示描述,用户可以在其中输入类别和猫描述。这完美地工作。

// Group DAC 
[Serializable]
public class INMerchandiseGroup : IBqlTable
{
    #region GroupCD
    [PXDBString(10, IsKey = true, BqlField = typeof(INMerchandiseGroup.groupCD))]    
    [PXUIField(DisplayName = "Group Code", Visibility=PXUIVisibility.SelectorVisible)]
    [PXSelector(typeof(Search<INMerchandiseGroup.groupCD>),
    typeof(INMerchandiseGroup.groupCD),
    typeof(INMerchandiseGroup.description))]
    public virtual string GroupCD { get; set; }
    public abstract class groupCD : PX.Data.BQL.BqlString.Field<groupCD> { }
    #endregion

    #region Description
    [PXDBString(256, IsUnicode = true, BqlField = typeof(INMerchandiseGroup.description))]
    [PXUIField(DisplayName = "Description")]
    public virtual string Description { get; set; }
    public abstract class description : PX.Data.BQL.BqlString.Field<description> { }
    #endregion
}

// Group Graph
public class BPGroupCategoryMaint : PXGraph<BPGroupCategoryMaint, INMerchandiseGroup>
{    
    // Setup for GroupCd in grid 
    #region Category GroupCD
    [PXMergeAttributes(Method = MergeMethod.Append)]
    [PXDBDefault(typeof(INMerchandiseGroup.groupCD))]
    protected virtual void INMerchandiseCategory_GroupCD_CacheAttached(PXCache cache)
    {
    }
    #endregion   

    public PXSelect<INMerchandiseGroup> CurrentGroup;
    public PXSave<INMerchandiseGroup> Save;
    public PXCancel<INMerchandiseGroup> Cancel;

    public PXSelect<INMerchandiseCategory,
    Where<INMerchandiseCategory.groupCD, Equal<Current<INMerchandiseGroup.groupCD>>>>
    GroupCategories;
}

我在类别部门屏幕中有相同的设置。用户从选择器中选择类别,猫描述和组 CD 应填充文本框,但类别描述和 groupcd 仅在第一次填充。之后,缓存中的值为空。我做错了什么?

// Category DAC (this is used in the grid of Group screen, and as a record header in Category screen.
[Serializable]
public class INMerchandiseCategory : IBqlTable
{     
    #region CategoryCD
    [PXDBString(10,  IsKey = true, BqlField = typeof(INMerchandiseCategory.categoryCD, InputMask = ">CCCCCCCCCC")]
    [PXUIField(DisplayName = "Category Code")]
    public virtual string CategoryCD { get; set; }
    public abstract class categoryCD : PX.Data.BQL.BqlString.Field<categoryCD> { }       
    #endregion

    #region Description
    [PXDBString(256, IsUnicode = true, BqlField = typeof(INMerchandiseCategory.categoryDescription))]
    [PXUIField(DisplayName = "Category Description")]
    public virtual string CategoryDescription { get; set; }
    public abstract class categoryDescription : PX.Data.BQL.BqlString.Field<categoryDescription> { }
    #endregion

    #region GroupCD
    [PXDBString(10, IsKey = true, BqlField = typeof(INMerchandiseCategory.groupCD) )]
    [PXUIField(DisplayName = "Group Code")]
    public virtual string GroupCD { get; set; }
    public abstract class groupCD : PX.Data.BQL.BqlString.Field<groupCD> { }
    #endregion      
}

// Category Graph
public class BPCategoryDeptMaint : PXGraph<BPCategoryDeptMaint>
{
    [PXMergeAttributes(Method = MergeMethod.Merge)]
    [PXUIField(DisplayName = "Category Code", Visibility=PXUIVisibility.SelectorVisible)]   
    [PXSelector(typeof(Search2<INMerchandiseCategory.categoryCD,
    InnerJoin<INMerchandiseGroup, On<INMerchandiseCategory.groupCD, Equal<INMerchandiseGroup.groupCD>>>>),
    typeof(INMerchandiseCategory.categoryCD),
    typeof(INMerchandiseCategory.categoryDescription),
    typeof(INMerchandiseCategory.groupCD),
    typeof(INMerchandiseGroup.description))]    
    protected virtual void INMerchandiseCategory_CategoryCD_CacheAttached(PXCache cache)
    {

    }

    #region Dept GroupCD
    [PXMergeAttributes(Method = MergeMethod.Append)]
    [PXDefault(typeof(INMerchandiseCategory.groupCD), PersistingCheck = PXPersistingCheck.Nothing)]
    protected virtual void INMerchandiseDept_GroupCD_CacheAttached(PXCache cache)
    {
    }
    #endregion     

    #region Dept CategoryCD
    [PXMergeAttributes(Method = MergeMethod.Append)]
    [PXDefault(typeof(INMerchandiseCategory.categoryCD), PersistingCheck = PXPersistingCheck.Nothing)]
    protected virtual void INMerchandiseDept_CategoryCD_CacheAttached(PXCache cache)
    {
    }
    #endregion     

    public PXSelect<INMerchandiseCategory> CurrentCategory;
    public PXSave<INMerchandiseCategory> Save;
    public PXCancel<INMerchandiseCategory> Cancel;

    public PXSelect<INMerchandiseDept,
    Where<INMerchandiseDept.groupCD, Equal<Current<INMerchandiseCategory.groupCD>>,
    And<INMerchandiseDept.categoryCD, Equal<Current<INMerchandiseCategory.categoryCD>>>>>
    CategoryDepts;            
    }
}

【问题讨论】:

    标签: customization selector acumatica


    【解决方案1】:

    确保 ASPX 中的字段具有属性 commit=true。如果标记为提交,则 UI 将在控件更改时将更新发送到服务器。

    【讨论】:

    • ASPX 已经有 CommitChanges="true"。还有其他 Commit 吗?
    • 没有。我注意到 GroupCD 被设置为一个键。这是故意的吗?
    猜你喜欢
    • 2016-02-27
    • 2022-01-15
    • 2016-08-31
    • 2021-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多