首页 > 解决方案 > Acumatica - 图形扩展

问题描述

美好的一天先生/女士,

如果社区中已经提出过这个问题,请原谅我问这个问题,但我似乎无法找到我的问题的正确答案。

我有一个扩展图,其中包含 2 个自定义视图,即ReservationDetails 和 PropertyItems

图形

    public class SOOrderEntryExt : PXGraphExtension<SOOrderEntry>
    {
            #region Selects

            public PXSelect<RECOReservationDetail,
                                Where<RECOReservationDetail.reservationNbr,
                                    Equal<Current<SOOrder.orderNbr>>>> ReservationDetails;


            public PXSelectReadonly<InventoryItem,
                                Where<InventoryItem.inventoryID,
                                    Equal<Current<RECOReservationDetail.inventoryID>>>> PropertyItems;
            #endregion
    }

数模转换器

[Serializable]
    public class RECOReservationDetail : IBqlTable
    {

        #region Reservation Nbr.

        [PXDBString(15, IsKey = true)]
        [PXUIField(DisplayName = "Reservation Nbr.")]
        [PXDefault()]
        public virtual string ReservationNbr { get; set; }
        public abstract class reservationNbr : IBqlField { }

        #endregion

        #region Branch ID

        [PXDBInt]
        [PXSelector(typeof(Search<Branch.branchID>),
                    SubstituteKey = typeof(Branch.branchCD))]
        [PXUIField(DisplayName = "Branch ID", Required = true)]
        [PXDefault(typeof(AccessInfo.branchID), PersistingCheck = PXPersistingCheck.Nothing)]
        public virtual int? BranchID { get; set; }
        public abstract class branchID : IBqlField { }

        #endregion

        #region Inventory ID

        [StockItem]
        [PXUIField(DisplayName = "Inventory ID", Required = true)]
        public virtual int? InventoryID { get; set; }
        public abstract class inventoryID : IBqlField { }

        #endregion

        #region Salesperson ID

        [PXDBInt]
        [PXDefault(PersistingCheck = PXPersistingCheck.Nothing)]
        [PXUIField(DisplayName = "Salesperson ID")]
        [PXSelector(typeof(Search<SalesPerson.salesPersonID>),
                    SubstituteKey = typeof(SalesPerson.salesPersonCD))]
        public virtual int? SalespersonID { get; set; }
        public abstract class salespersonID : IBqlField { }

        #endregion

        #region Quantity

        [PXDBDecimal(2)]
        [PXUIField(DisplayName = "Quantity", Enabled = false)]
        [PXDefault(TypeCode.Decimal, "1.0", PersistingCheck = PXPersistingCheck.Nothing)]
        public virtual decimal? ItemQty { get; set; }
        public abstract class itemQty : IBqlField { }

        #endregion

        #region Reservation Fee

        [PXDBDecimal(2)]
        [PXUIField(DisplayName = "Reservation Fee")]
        [PXDefault(TypeCode.Decimal, "0.0", PersistingCheck = PXPersistingCheck.Nothing)]
        public virtual decimal? ReservationFee { get; set; }
        public abstract class reservationFee : IBqlField { }

        #endregion

        #region Reservation Cash Disc.

        [PXDBDecimal(2)]
        [PXUIField(DisplayName = "Reservation Cash Disc.")]
        [PXDefault(TypeCode.Decimal, "0.0", PersistingCheck = PXPersistingCheck.Nothing)]
        public virtual decimal? ReservationCashDiscAmt { get; set; }
        public abstract class reservationCashDiscAmt : IBqlField { }

        #endregion

        #region Amount

        [PXDBDecimal(2)]
        [PXUIField(DisplayName = "Amount")]
        [PXDefault(TypeCode.Decimal, "0.0", PersistingCheck = PXPersistingCheck.Nothing)]
        public virtual decimal? ReservationAmt { get; set; }
        public abstract class reservationAmt : IBqlField { }

        #endregion

        #region Product Type
        [PXDBString(15)]
        [PXDefault(ProductTypes.Lot, PersistingCheck = PXPersistingCheck.Nothing)]
        [PXStringList(
            new string[] {
                ProductTypes.HouseConstruction,
                ProductTypes.HouseLot,
                ProductTypes.HouseLotAdjacentLot,
                ProductTypes.Lot
            },
            new string[] {
                "House Construction",
                "House & Lot",
                "House & Lot with Adjacent Lot",
                "Lot"
            })]
        [PXUIField(DisplayName = "Product Type")]
        public virtual string ProductType { get; set; }
        public abstract class productType : IBqlField { }
        #endregion
    }

现在,当我尝试更改页面中的库存 ID 时出现问题,它清除了页面上所有控件的值。

在我更改库存 ID 之前

在我更改了库存 ID 之后

每次我更改库存 ID 时,控件上的记录都会被清除。

我只是不明白在扩展图表时我在哪里犯了错误。

谢谢你,我希望你能帮助我解决这个问题。

更新 - 2018 年 10 月 1 日

这是页面的整个布局。我已经输入了订单 nbr / 预订 nbr,但是每当我尝试填写时,详细信息部分的库存 ID 仍然会清除所有内容。

我也尝试替换页面上的库存 id 控件,但仍然没有解决问题。

最后更新

我终于解决了这个问题。我不知道为什么,但是在我将 PxParent 属性放在我的预订 nbr 上之后,它解决了子选项卡上的清除问题。非常感谢您提供的所有帮助。快乐编码!

#region Reservation Nbr.

        [PXDBString(15, IsKey = true)]
        [PXUIField(DisplayName = "Reservation Nbr.")]
        [PXParent(typeof(Select<SOOrder, 
                            Where<SOOrder.orderNbr, 
                                Equal<Current<RECOReservationDetail.reservationNbr>>>>))]
        [PXDBDefault(typeof(SOOrder.orderNbr))]
        public virtual string ReservationNbr { get; set; }
        public abstract class reservationNbr : IBqlField { }

#endregion

标签: graphacumaticadac

解决方案


我通过在我的 DAC 中的 ReservationNbr 上添加 PXParent 属性解决了这个问题。虽然我不明白它为什么起作用。(^_^)

    #region Reservation Nbr.

    [PXDBString(15, IsKey = true)]
    [PXUIField(DisplayName = "Reservation Nbr.")]
    [PXParent(typeof(Select<SOOrder, 
                        Where<SOOrder.orderNbr, 
                            Equal<Current<RECOReservationDetail.reservationNbr>>>>))]
    [PXDBDefault(typeof(SOOrder.orderNbr))]
    public virtual string ReservationNbr { get; set; }
    public abstract class reservationNbr : IBqlField { }

    #endregion

非常感谢您提供的所有帮助。快乐编码!:)


推荐阅读