Acumatica - расширение графика - PullRequest
       81

Acumatica - расширение графика

0 голосов
/ 28 сентября 2018

Добрый день, сэр / мэм,

Простите, что задаю этот вопрос, если когда-либо этот вопрос уже поднимался в сообществе, но я не могу найти правильный ответ на мою проблему.

У меня есть расширенный график, который содержит 2 пользовательских представления: ReservationDetails и PropertyItems .

GRAPH

    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
    }

Теперь возникает проблема, когда я пытаюсь изменить идентификатор инвентаризации на своей странице. Он очищает значения всех элементов управления на странице.

ДО изменения идентификатора инвентаря

ПОСЛЕ изменения идентификатора инвентаря

Записи в элементах управления очищаются каждый раз, когда я меняю идентификатор инвентаря.

Я просто не понимаю, где я допустил ошибку при расширении графика.

Спасибо, и я надеюсь, что вы можете помочь мне с этой проблемой.

ОБНОВЛЕНИЕ - 10/01/2018

Это весь макет страницы.Я ввел заказ nbr / booking nbr , но идентификатор инвентаря в разделе сведений все еще очищает все, когда я пытаюсь его заполнить.

Я также пытался заменить идентификатор инвентаряуправление на странице, но это все еще не решило проблему.

FINAL UPDATE

Я наконец исправил проблему.Я не знаю почему, но после того, как я поместил атрибут 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

1 Ответ

0 голосов
/ 01 октября 2018

Я решил проблему, добавив атрибут PXParent на ReservationNbr в моем ЦАП.Хотя я не понимаю, почему это сработало.(^ _ ^)

    #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

Большое спасибо за помощь.Удачного кодирования!:)

...