我制作了一个UI(gridform)让用户查看SOLINESplit,SOLine,SOOrder(所有这些都是acumatica DAC) - 目标是能够更新/修改分配数量(数量) SOLINESplit轻松。
Namespace AllocationUpdate
{
public class AllocationUpdateEntry : PXGraph<AllocationUpdateEntry>
{
public PXSave<SOLineSplit> Save;
public PXCancel<SOLineSplit> Cance;
public PXSelectJoin<SOLineSplit,
RightJoin<SOLine,
On<SOLine.orderNbr, Equal<SOLineSplit.orderNbr>,
And<SOLine.inventoryID, Equal<SOLineSplit.inventoryID>,
And<SOLine.subItemID, Equal<SOLineSplit.subItemID>>>>,
RightJoin<SOOrder,
On<SOOrder.orderNbr, Equal<SOLine.orderNbr>>>>,
Where<SOLineSplit.isAllocated, Equal<True>>> Document;
但是它抛出了关于OrderDate不能为空的错误。所以我在BLC中添加了ff代码:
public class SOLineCacheExtension : PXCacheExtension<SOLineSplit>
{
#region OrderDate
public abstract class orderDate : IBqlField
{
}
[PXDBDate]
public DateTime? OrderDate { get; set; }
#endregion
但现在它抛出“'相关文档'可能不为空”错误。 我尝试像在OrderDate中那样修改它,但无济于事。
我们如何解决这个问题?谢谢。
FYI。 SOLineSplit的相关文档就是这个领域:
#region refnoteID
[PXRefNote]
[PXUIField(DisplayName = "Related Document", Enabled = false)]
public virtual Guid? RefNoteID { get; set; }
#endregion
答案 0 :(得分:1)
尝试将以下PXSelect
- s添加到Graph
,以便SOLineSplit
上的属性可以使用SOOrder
和SOLine
的缓存。< / p>
public PXSelect<SOOrder,Where<SOOrder.orderNbr,Equal<Current<SOLineSplit.orderNbr>>,
And<SOOrder.orderType,Equal<Current<SOLineSplit.orderType>>> CurrentOrder;
public PXSelect<SOLine,Where<SOLine.orderNbr,Equal<Current<SOLineSplit.orderNbr>>,
And<SOLine.orderType,Equal<Current<SOLineSplit.orderType>>,
And<SOLine.lineNbr,Equal<Current<SOLineSplit.lineNbr>>>> CurrentLine;
答案 1 :(得分:0)
我最后只是插入另一个(具有不同的数量)。我不认为它允许我更新它。但原始的非自定义Acumatica的行为似乎只是执行插入操作,因此,我的答案。