【问题标题】:How can I perform Acumatica BQL JOINs in PXSelector?如何在 PXSelector 中执行 Acumatica BQL JOIN?
【发布时间】:2022-12-15 15:06:28
【问题描述】:

我有一个选择器字段,我想在其中显示 3 个不同表中的 5 列。他们是 项目、项目描述、项目类别、项目类别描述和默认仓库。 我找到了 DAC 和字段。

InventoryItem.inventoryID;

InventoryItem.descr;

INItemClass.itemClassID;

INItemClass.descr;

INItemSite.siteID;

我还编写了包含 JOIN 的 [PXSelector] 属性。

    #region Field of Me
    public abstract class fieldOfMe : BqlString.Field<fieldOfMe> { }

    [PXUIField(DisplayName = "Field Of Me")]
    [PXSelector(typeof(
        Search2<InventoryItem.inventoryID,
            LeftJoin<INItemClass,
                On<INItemClass.itemClassID, Equal<InventoryItem.itemClassID>>,
                LeftJoin<INItemSite,
                    On<INItemSite.inventoryID, Equal<InventoryItem.dfltSiteID>>>>>),
          typeof(InventoryItem.inventoryCD),
          typeof(InventoryItem.descr),
          typeof(INItemClass.itemClassCD),
          typeof(INItemClass.descr),
          typeof(INItemSite.siteID),
          ValidateValue = false
        )]
    public string FieldOfMe { get; set; }
    #endregion

这是屏幕。

我想了解如何找到默认仓库。如何编辑代码以查看活动仓库名称?我想要带复选框的那个。

我已经完成了任务的大部分,但我仍然需要一些帮助才能完成它。

【问题讨论】:

    标签: c# sql join selector acumatica


    【解决方案1】:

    我已经修改了您的选择查询以执行您想要的操作。

    请注意,在更高版本的 Acumatica 中,InventoryItem 表中的 dfltSiteID 字段将变得过时并被删除。应改用 InventoryItemCurySettings.dfltSiteID。我添加了第二个查询来演示 InventoryItemCurySettings 的使用。

    #region Field of Me
        public abstract class fieldOfMe : BqlString.Field<fieldOfMe> { }
    
        [PXUIField(DisplayName = "Field Of Me")]
        [PXSelector(typeof(
            Search2<InventoryItem.inventoryID,
                InnerJoin<INItemClass,
                    On<INItemClass.itemClassID, Equal<InventoryItem.itemClassID>>,
                LeftJoin<INSite,
                    On<InventoryItem.dfltSiteID, Equal<INSite.siteID>>>>>),
              typeof(InventoryItem.inventoryCD),
              typeof(InventoryItem.descr),
              typeof(INItemClass.itemClassCD),
              typeof(INItemClass.descr),
              typeof(INSite.siteCD),
              ValidateValue = false
            )]
        public string FieldOfMe { get; set; }
        #endregion
    

    使用 InventoryItemCurySettings.dfltSiteID

    #region Field of Me2
        public abstract class fieldOfMe2 : BqlString.Field<fieldOfMe2> { }
    
        [PXUIField(DisplayName = "Field Of Me2")]
        [PXSelector(typeof(
            Search2<InventoryItem.inventoryID,
                InnerJoin<INItemClass,
                    On<InventoryItem.itemClassID, Equal<INItemClass.itemClassID>>,
                LeftJoin<InventoryItemCurySettings, 
                    On<InventoryItem.inventoryID, Equal<InventoryItemCurySettings.inventoryID>,
                        And<InventoryItemCurySettings.curyID, Equal<Current<AccessInfo.baseCuryID>>>>,
                LeftJoin<INSite,
                    On<InventoryItemCurySettings.dfltSiteID, Equal<INSite.siteID>>>>>>),
              typeof(InventoryItem.inventoryCD),
              typeof(InventoryItem.descr),
              typeof(INItemClass.itemClassCD),
              typeof(INItemClass.descr),
              typeof(INSite.siteCD),
              ValidateValue = false
            )]
        public string FieldOfMe2 { get; set; }
        #endregion
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      • 2019-02-11
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多