graph - 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 时,控件上的记录都会被清除。
我只是不明白在扩展图表时我在哪里犯了错误。
谢谢你,我希望你能帮助我解决这个问题。
更新 - 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
解决方案
我通过在我的 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
非常感谢您提供的所有帮助。快乐编码!:)
推荐阅读
- visual-studio-code - 如何在代码VS Studio Code之前关闭波浪形红线
- google-api - 如何获取访问令牌以与谷歌存储 URL 一起使用
- java - 有没有办法合并这2个?
- flutter - 如何启用 SystemChrome - Flutter 中的 SystemUiOverlayStyle
- javascript - 由 Javascript 创建的元素在视觉上不可见
- c# - 在 MVC 中完成异步任务后通知视图
- mysql - 在 MySQL 8.19 版中,我得到 - 错误 1525;日期值不正确:''
- sql-server - 返回表或从表中选择的 SQL 函数之间的区别
- c# - 在运行时加快加载程序集
- python - 使用正则表达式从 ifconfig 输出中提取 IPv4 地址