首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Acumatica采购订单屏幕的“Add Item”对话框中添加属性

在Acumatica采购订单屏幕的“Add Item”对话框中添加属性
EN

Stack Overflow用户
提问于 2020-07-30 14:45:07
回答 1查看 165关注 0票数 0

如何将“库存项目”屏幕中的属性列添加到采购订单屏幕的“添加项目”对话框中。我想将以下属性从库存项目屏幕添加到采购订单屏幕的“添加项目”对话框。请查看以下图片,查看库存项目和采购订单屏幕。

我可以在采购订单的库存查找中获得该字段,值未填充。

这是我的代码..。

代码语言:javascript
复制
namespace PX.Objects.PO
{
    [PXProjection(typeof(Select<CSAnswers, Where<CSAnswers.refNoteID, Equal<POSiteStatusSelected.noteID>, 
                                And<CSAnswers.attributeID, Equal<AttribMyAttribute>>>>), Persistent = false)]
  
    public class POSiteStatusSelectedExt : PXCacheExtension<PX.Objects.PO.POSiteStatusSelected>
    {
    #region UsrItemType
    [PXDBString(10, IsFixed = true, BqlField = typeof(CSAnswers.value))]
    [PXUIField(DisplayName = "Item Type")]
    //[PXDBScalar(typeof(Search<CSAnswers.value, Where<CSAnswers.refNoteID, Equal<POSiteStatusSelected.noteID>,
    //                            And<CSAnswers.attributeID, Equal<AttribMyAttribute>>>>))]
 
      public virtual string UsrItemType { get; set; }
      public abstract class usrItemType : IBqlField { }
        #endregion
        
    }
    public class AttribMyAttribute : Constant<string>
    {
        public AttribMyAttribute() : base("ITEMTYPE") { }
    }
}

我已经创建了POSiteStatusSeleted视图的DAC扩展,并添加了我的自定义字段,这是一个非持久化字段。在POSiteStatusSeleted中有类型为InventoryItem.noteID的noteId字段,我尝试在PXDBScalar属性中使用相同的字段(代码行被注释),这也不起作用,它显示了一个错误"Unable to convert System.Int32 to System.String“。

EN

回答 1

Stack Overflow用户

发布于 2020-07-31 05:05:40

更新答案:由于投影,我们必须创建一个继承DAC并使用PXSubstitute属性的新类。PXSubstitute的本质意味着这不是一个DAC扩展,甚至不是Graph扩展的一部分。在我的测试中,我尝试将其封装在POOrderEntry上的图形扩展中,但不起作用。通过遵循下面堆栈溢出帖子的说明,我能够创建一个名为ITEMTYPE的属性,将其分配给我的一个Item类,用包含左连接回属性表(CSAnswers)的增强版本替换PXProjection,然后将其添加到屏幕的智能面板网格中。

Extend Acumatica Projection Based DAC Query

在下面的代码示例中,神奇之处在于PXSubstitute,它将获取您创建并从基础DAC继承的新类,并用新的基础DAC替换该基础DAC。如果您指定一个图形,它将仅在该图形(或您指定的每个使用的-1\f25 PXSubstitute -1\f6属性的每个图形)中执行替换。如果不指定图形,它将覆盖在xRP框架内使用的所有情况下的基本数据访问控制。

执行所述修改的代码:

代码语言:javascript
复制
using PX.Data;
using PX.Objects.AP;
using PX.Objects.Common.Bql;
using PX.Objects.CS;
using PX.Objects.IN;
using System;

namespace PX.Objects.PO
{
    [System.SerializableAttribute()]
    [PXProjection(typeof(Select2<InventoryItem,
        LeftJoin<CSAnswers,
            On<CSAnswers.refNoteID, Equal<InventoryItem.noteID>,
            And<CSAnswers.attributeID, Equal<AttribItemType>>>,
        LeftJoin<INSiteStatus,
                        On<INSiteStatus.inventoryID, Equal<InventoryItem.inventoryID>, And<INSiteStatus.siteID, NotEqual<SiteAttribute.transitSiteID>>>,
        LeftJoin<INSubItem,
                        On<INSiteStatus.FK.SubItem>,
        LeftJoin<INSite,
                        On<INSiteStatus.FK.Site>,
        LeftJoin<INItemXRef,
                        On<INItemXRef.inventoryID, Equal<InventoryItem.inventoryID>,
                        And2<Where<INItemXRef.subItemID, Equal<INSiteStatus.subItemID>,
                                Or<INSiteStatus.subItemID, IsNull>>,
                        And<Where<CurrentValue<POSiteStatusFilter.barCode>, IsNotNull,
                        And<INItemXRef.alternateType, Equal<INAlternateType.barcode>>>>>>,
        LeftJoin<INItemPartNumber,
                        On<INItemPartNumber.inventoryID, Equal<InventoryItem.inventoryID>,
                        And<INItemPartNumber.alternateID, Like<CurrentValue<POSiteStatusFilter.inventory_Wildcard>>,
                        And2<Where<INItemPartNumber.bAccountID, Equal<Zero>,
                            Or<INItemPartNumber.bAccountID, Equal<CurrentValue<POOrder.vendorID>>,
                            Or<INItemPartNumber.alternateType, Equal<INAlternateType.cPN>>>>,
                        And<Where<INItemPartNumber.subItemID, Equal<INSiteStatus.subItemID>,
                            Or<INSiteStatus.subItemID, IsNull>>>>>>,
        LeftJoin<INItemClass,
                        On<InventoryItem.FK.ItemClass>,
        LeftJoin<INPriceClass,
                        On<INPriceClass.priceClassID, Equal<InventoryItem.priceClassID>>,
        LeftJoin<Vendor,
                        On<Vendor.bAccountID, Equal<InventoryItem.preferredVendorID>>,
        LeftJoin<INUnit,
                        On<INUnit.inventoryID, Equal<InventoryItem.inventoryID>,
                        And<INUnit.unitType, Equal<INUnitType.inventoryItem>,
                        And<INUnit.fromUnit, Equal<InventoryItem.purchaseUnit>,
                        And<INUnit.toUnit, Equal<InventoryItem.baseUnit>>>>>>>>>>>>>>>,
        Where2<CurrentMatch<InventoryItem, AccessInfo.userName>,
             And2<Where<INSiteStatus.siteID, IsNull, Or<INSite.branchID, IsNotNull, And2<CurrentMatch<INSite, AccessInfo.userName>,
                And<Where2<FeatureInstalled<FeaturesSet.interBranch>,
                    Or2<SameOrganizationBranch<INSite.branchID, Current<POOrder.branchID>>,
                    Or<CurrentValue<POOrder.orderType>, Equal<POOrderType.standardBlanket>>>>>>>>,
             And2<Where<INSiteStatus.subItemID, IsNull,
                Or<CurrentMatch<INSubItem, AccessInfo.userName>>>,
             And<InventoryItem.stkItem, Equal<boolTrue>,
             And<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.inactive>,
             And<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.unknown>,
             And<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.markedForDeletion>,
             And<InventoryItem.itemStatus, NotEqual<InventoryItemStatus.noPurchases>>>>>>>>>>), Persistent = false)]

    //[PXSubstitute(GraphType = typeof(POOrderEntry))]
    [PXSubstitute]

    public partial class POSiteStatusSelectedCst : POSiteStatusSelected
    {
        #region UsrItemType
        [PXDBString(10, BqlField = typeof(CSAnswers.value))]
        [PXUIField(DisplayName = "Item Type")]
        public string UsrItemType { get; set; }
        public abstract class usrItemType : PX.Data.BQL.BqlString.Field<usrItemType> { }
        #endregion
    }

    public class AttribItemType : PX.Data.BQL.BqlString.Constant<AttribItemType>
    {
        public AttribItemType() : base("ITEMTYPE") { }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63167592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档