我在向网格添加自定义字段的选择器时遇到问题。我有很多问题,我有点迷失。
我们需要在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。”)。
但是又出现了另一个问题 - Refernce 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'
此时此刻我很失落。我确信我做了很多错事,只是不确定它是什么。
答案 0 :(得分:0)
第一:
您应该将typeof(Search<DAC.FIELD>)
作为第一个参数提供给PXSelector
。
所以改变这一行
[PXSelector(typeof(ARRegister.refNbr),
到
[PXSelector(typeof(Search<ARRegister.refNbr>),
第二: 消息
当你没有在数据库表中创建字段时,列名称无效&#39; UsrUploadDocNbr&#39;
主要显示(如果字段用PXDB...
类似的属性修饰)。