微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

自动编号的选择器将不允许选择现有记录

如何解决自动编号的选择器将不允许选择现有记录

我在自定义DAC中定义了以下自动编号选择器:

    #region BatchID
    [PXDBIdentity()]
    public virtual int? BatchID { get; set; }
    public abstract class batchID : PX.Data.BQL.BqlInt.Field<batchID> { }
    #endregion
      
    #region BatchCD
    [PXDBString(15,IsKey = true,IsUnicode = true,InputMask = ">CCCCCCCCCCCCCCC")]
    [PXUIField(displayName = "Batch ID")]
    [AutoNumber(typeof(MXSetup.batchNumberingID),typeof(AccessInfo.businessDate))]
    [PXSelector(typeof(MXBatch.batchID),SubstituteKey = typeof(MXBatch.batchCD))]
    public virtual string BatchCD { get; set; }  
    public abstract class batchCD : PX.Data.BQL.BqlString.Field<batchCD> { }
    #endregion 

自动编号的效果很好,但是选择现有记录后,显示的值会立即变回<NEW>

有人知道为什么会这样吗?

解决方法

发布答案,以便阅读示例代码。

当我学会做这些时,代码库中的代码示例始终使用PXSelector,尽管我不能说如果PXDimensionSelector更适合您,则使用PXDimensionSelector是错误的。但是,如果足够,您应该只使用普通的旧PXSelector。

它可能没有任何关系,但是您的自动编号是否适合您的InputMask?我将输入掩码保留为“”,因为它是由自动编号控制的。我还设置了PXDefault强制将其强制为必需,尽管这可能会过大。最后,我还给PXSelector多了一些,以定义如果有人击中放大镜该显示什么。就我而言,PXSelector简单而足够。

这是我简单的自动编号字段之一...

#region RequisitionCD
[PXDBString(15,IsKey = true,IsUnicode = true,InputMask = "")]
[PXDefault]
[AutoNumber(typeof(SSRQSetup.requisitionNumberingID),typeof(AccessInfo.businessDate))]
[PXSelector(
    typeof(SSRQRequisition.requisitionCD),typeof(SSRQRequisition.requisitionCD),typeof(SSRQRequisition.descr),typeof(SSRQRequisition.createdDateTime)
    )]
[PXUIField(DisplayName = Messages.FldRequisitionCD)]
public virtual string RequisitionCD { get; set; }
public abstract class requisitionCD : PX.Data.BQL.BqlString.Field<requisitionCD> { }
#endregion

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。