【发布时间】:2018-02-01 23:21:25
【问题描述】:
我在将自定义字段的选择器添加到网格时遇到问题。我有很多问题,我有点迷茫。
我们需要在 AR302000 屏幕上的“要申请的文件”选项卡中添加一个选择器(财务 -> 应收账款 -> 付款和申请)。此选择器将基于我们添加到 ARRegister 的自定义字段。
public abstract class usrUploadDocNbr : IBqlField { }
[PXDBString(15)]
[PXUIField(DisplayName = Messages.UploadDocNbr)]
public virtual string UsrUploadDocNbr { get; set; }
我没有用 PXSelector 标记来装饰它,因为我们大部分时间都将这个字段与文本框一起使用。从那里,我将它添加到上述 AR302000 网格中,但该字段始终被禁用。当我查看可添加到网格的字段时,有 ARInvoice__UsrUploadDocNbr 和 ARRegisterAlias__UsrUploadDocNbr时间>。这对我来说有点道理,但只有一点点。
当我尝试使用其中任何一个字段时,网格中的行将始终是只读的。从这里开始,我想我会尝试将该字段添加到 ARAdj,因为这是网格中许多字段的类型。我添加了以下代码:
public abstract class usrUploadDocNbr : IBqlField, IBqlOperand { }
[PXDBString(BqlField =typeof(ArRegisterExt.usrUploadDocNbr))]
[PXUIField(DisplayName = Messages.UploadBatchNbr, Enabled = true)]
[PXSelector(typeof(ARRegister.refNbr),
typeof(ARAdjust.ARInvoice.refNbr),
typeof(ARAdjust.ARInvoice.docDate),
typeof(ArRegisterExt.usrUploadDocNbr),
typeof(ARAdjust.ARInvoice.finPeriodID),
typeof(ARAdjust.ARInvoice.customerID),
typeof(ARRegister.customerLocationID),
typeof(PX.Objects.AR.Standalone.ARRegister.curyID),
typeof(ARRegister.curyOrigDocAmt),
typeof(ARRegister.curyDocBal),
typeof(PX.Objects.AR.Standalone.ARRegister.status),
typeof(ARAdjust.ARInvoice.dueDate),
typeof(ARAdjust.ARInvoice.invoiceNbr),
typeof(PX.Objects.AR.Standalone.ARRegister.docDesc),
SubstituteKey = typeof(ArRegisterExt.usrUploadDocNbr))]
public virtual string UsrUploadDocNbr { get; set; }
当我添加这个字段时,选择器起作用了。我能够打开选择器窗口,但所有列名都是类型名称而不是带注释的名称(例如,usrUploadDocNbr 而不是“Upload Doc.Nbr”)。
但出现了另一个问题 - Reference Nbr 选择器不再起作用。我们将 UsrUploadDocNbr 添加到 Reference Nbr 选择器中。代码如下:
[PXMergeAttributes(Method = MergeMethod.Append)]
[PXCustomizeSelectorColumns(
typeof(ARAdjust.ARInvoice.refNbr),
typeof(ARAdjust.ARInvoice.docDate),
typeof(ArRegisterExt.usrUploadDocNbr),
typeof(ARAdjust.ARInvoice.finPeriodID),
typeof(ARAdjust.ARInvoice.customerID),
typeof(ARRegister.customerLocationID),
typeof(PX.Objects.AR.Standalone.ARRegister.curyID),
typeof(ARRegister.curyOrigDocAmt),
typeof(ARRegister.curyDocBal),
typeof(PX.Objects.AR.Standalone.ARRegister.status),
typeof(ARAdjust.ARInvoice.dueDate),
typeof(ARAdjust.ARInvoice.invoiceNbr),
typeof(PX.Objects.AR.Standalone.ARRegister.docDesc))]
public virtual string AdjdRefNbr { get; set; }
弹出的错误读取(它确实在一个模态中显示了两次相同的东西):
列名“UsrUploadDocNbr”无效
列名“UsrUploadDocNbr”无效
在这一点上,我很迷茫。我确信我做错了很多事情,只是不确定是什么。
【问题讨论】:
标签: acumatica