【发布时间】:2020-12-03 03:41:39
【问题描述】:
我已经创建了维护表,并且在放置时应用了“PXForeignReference”。 我想要的是,如果我从表中删除正在另一个表中使用的记录,它应该显示一条消息,表明它正在另一个表中使用。
但在我的示例中,它没有被实现,对于 varo,我会指出我的错误在哪里。
我在这里附上一些图片。
1.第一个维护表
namespace SKPriceIndex
{
[Serializable]
[PXCacheName("PESKPriceIndexCat")]
public class PESKPriceIndexCat : IBqlTable
{
#region CategoryID
[PXDBIdentity]
[PXUIField(DisplayName = "Category ID")]
public virtual int? CategoryID { get; set; }
public abstract class categoryID : PX.Data.BQL.BqlInt.Field<categoryID> { }
#endregion
#region CategoryCD
[PXDBString(10, IsUnicode = true, InputMask = "", IsKey = true)]
[PXUIField(DisplayName = "Category ID")]
public virtual string CategoryCD { get; set; }
public abstract class categoryCD : PX.Data.BQL.BqlString.Field<categoryCD> { }
#endregion
#region Descripcion
[PXDBString(30, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Category Description")]
public virtual string Descripcion { get; set; }
public abstract class descripcion : PX.Data.BQL.BqlString.Field<descripcion> { }
#endregion
#region State
[PXDBString(100, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "State")]
[PXSelector(typeof(State.stateID),
typeof(State.stateID), typeof(State.name), typeof(State.countryID),
DescriptionField = typeof(State.name))]
[PXMassMergableField]
public virtual string State { get; set; }
public abstract class state : PX.Data.BQL.BqlString.Field<state> { }
#endregion
#region Active
[PXDBBool()]
[PXDefault(false)]
[PXUIField(DisplayName = "Active")]
public virtual bool? Active { get; set; }
public abstract class active : PX.Data.BQL.BqlInt.Field<active> { }
#endregion
#region tstamp
public abstract class Tstamp : PX.Data.IBqlField
{
}
protected byte[] _tstamp;
[PXDBTimestamp()]
public virtual byte[] tstamp
{
get
{
return this._tstamp;
}
set
{
this._tstamp = value;
}
}
#endregion
#region CreatedByID
public abstract class createdByID : PX.Data.IBqlField
{
}
protected Guid? _CreatedByID;
[PXDBCreatedByID()]
public virtual Guid? CreatedByID
{
get
{
return this._CreatedByID;
}
set
{
this._CreatedByID = value;
}
}
#endregion
#region CreatedByScreenID
public abstract class createdByScreenID : PX.Data.IBqlField
{
}
protected string _CreatedByScreenID;
[PXDBCreatedByScreenID()]
public virtual string CreatedByScreenID
{
get
{
return this._CreatedByScreenID;
}
set
{
this._CreatedByScreenID = value;
}
}
#endregion
#region CreatedDateTime
public abstract class createdDateTime : PX.Data.IBqlField
{
}
protected DateTime? _CreatedDateTime;
[PXDBCreatedDateTime]
public virtual DateTime? CreatedDateTime
{
get
{
return this._CreatedDateTime;
}
set
{
this._CreatedDateTime = value;
}
}
#endregion
#region LastModifiedByID
public abstract class lastModifiedByID : PX.Data.IBqlField
{
}
protected Guid? _LastModifiedByID;
[PXDBLastModifiedByID()]
public virtual Guid? LastModifiedByID
{
get
{
return this._LastModifiedByID;
}
set
{
this._LastModifiedByID = value;
}
}
#endregion
#region LastModifiedByScreenID
public abstract class lastModifiedByScreenID : PX.Data.IBqlField
{
}
protected string _LastModifiedByScreenID;
[PXDBLastModifiedByScreenID()]
public virtual string LastModifiedByScreenID
{
get
{
return this._LastModifiedByScreenID;
}
set
{
this._LastModifiedByScreenID = value;
}
}
#endregion
#region LastModifiedDateTime
public abstract class lastModifiedDateTime : PX.Data.IBqlField
{
}
protected DateTime? _LastModifiedDateTime;
[PXDBLastModifiedDateTime]
public virtual DateTime? LastModifiedDateTime
{
get
{
return this._LastModifiedDateTime;
}
set
{
this._LastModifiedDateTime = value;
}
}
#endregion
}
}
2.秒维护表
namespace SKPriceIndexCST
{
[Serializable]
[PXCacheName("PESKPriceIndex")]
public class PESKPriceIndex : IBqlTable
{
#region CategoryID
[PXDBInt(IsKey = true)]
[PXUIField(DisplayName = "Category ID")]
[PXSelector(typeof(PESKPriceIndexCat.categoryID),
typeof(PESKPriceIndexCat.categoryCD),
typeof(PESKPriceIndexCat.descripcion),
DescriptionField = typeof(PESKPriceIndexCat.descripcion),
SubstituteKey = typeof(PESKPriceIndexCat.categoryCD))]
[PXMassMergableField]
[PXRestrictor(typeof(Where<PESKPriceIndexCat.active, Equal<True>>), "", typeof(PESKPriceIndexCat.active))]
public virtual int? CategoryID { get; set; }
public abstract class categoryID : PX.Data.BQL.BqlInt.Field<categoryID> { }
#endregion
#region CreatedDateTime
[PXDBCreatedDateTime()]
public virtual DateTime? CreatedDateTime { get; set; }
public abstract class createdDateTime : PX.Data.BQL.BqlDateTime.Field<createdDateTime> { }
#endregion
#region CreatedByID
[PXDBCreatedByID()]
public virtual Guid? CreatedByID { get; set; }
public abstract class createdByID : PX.Data.BQL.BqlGuid.Field<createdByID> { }
#endregion
#region CreatedByScreenID
[PXDBCreatedByScreenID()]
public virtual string CreatedByScreenID { get; set; }
public abstract class createdByScreenID : PX.Data.BQL.BqlString.Field<createdByScreenID> { }
#endregion
#region LastModifiedDateTime
[PXDBLastModifiedDateTime()]
public virtual DateTime? LastModifiedDateTime { get; set; }
public abstract class lastModifiedDateTime : PX.Data.BQL.BqlDateTime.Field<lastModifiedDateTime> { }
#endregion
#region LastModifiedByID
[PXDBLastModifiedByID()]
public virtual Guid? LastModifiedByID { get; set; }
public abstract class lastModifiedByID : PX.Data.BQL.BqlGuid.Field<lastModifiedByID> { }
#endregion
#region LastModifiedByScreenID
[PXDBLastModifiedByScreenID()]
public virtual string LastModifiedByScreenID { get; set; }
public abstract class lastModifiedByScreenID : PX.Data.BQL.BqlString.Field<lastModifiedByScreenID> { }
#endregion
#region Tstamp
[PXDBTimestamp()]
[PXUIField(DisplayName = "Tstamp")]
public virtual byte[] Tstamp { get; set; }
public abstract class tstamp : PX.Data.BQL.BqlByteArray.Field<tstamp> { }
#endregion
}
}
namespace SKPriceIndexCST
{
[Serializable]
[PXCacheName("PESKPriceIndexDetail")]
public class PESKPriceIndexDetail : IBqlTable
{
#region PriceIndexID
[PXDBIdentity]
public virtual int? PriceIndexID { get; set; }
public abstract class priceIndexID : PX.Data.BQL.BqlInt.Field<priceIndexID> { }
#endregion
#region CategoryID
[PXDBInt(IsKey =true)]
[PXUIField(DisplayName = "Category ID")]
[PXDefault(typeof(PESKPriceIndex.categoryID))]
[PXParent(typeof(Select<PESKPriceIndex, Where<PESKPriceIndex.categoryID, Equal<Current<categoryID>>>>),LeaveChildren =true)] //,LeaveChildren =true
[PXForeignReference(typeof(Field<categoryID>.IsRelatedTo<PESKPriceIndexCat.categoryID>))]
public virtual int? CategoryID { get; set; }
public abstract class categoryID : PX.Data.BQL.BqlInt.Field<categoryID> { }
#endregion
#region EffDate
[PXDBDate(IsKey =true)]
[PXDefault(typeof(AccessInfo.businessDate))]
[PXUIField(DisplayName = "Eff Date")]
public virtual DateTime? EffDate { get; set; }
public abstract class effDate : PX.Data.BQL.BqlDateTime.Field<effDate> { }
#endregion
#region BaseIndex
[PXDBInt()]
[PXUIField(DisplayName = "Base Index")]
public virtual int? BaseIndex { get; set; }
public abstract class baseIndex : PX.Data.BQL.BqlInt.Field<baseIndex> { }
#endregion
#region CreatedDateTime
[PXDBCreatedDateTime()]
public virtual DateTime? CreatedDateTime { get; set; }
public abstract class createdDateTime : PX.Data.BQL.BqlDateTime.Field<createdDateTime> { }
#endregion
#region CreatedByID
[PXDBCreatedByID()]
public virtual Guid? CreatedByID { get; set; }
public abstract class createdByID : PX.Data.BQL.BqlGuid.Field<createdByID> { }
#endregion
#region CreatedByScreenID
[PXDBCreatedByScreenID()]
public virtual string CreatedByScreenID { get; set; }
public abstract class createdByScreenID : PX.Data.BQL.BqlString.Field<createdByScreenID> { }
#endregion
#region LastModifiedDateTime
[PXDBLastModifiedDateTime()]
public virtual DateTime? LastModifiedDateTime { get; set; }
public abstract class lastModifiedDateTime : PX.Data.BQL.BqlDateTime.Field<lastModifiedDateTime> { }
#endregion
#region LastModifiedByID
[PXDBLastModifiedByID()]
public virtual Guid? LastModifiedByID { get; set; }
public abstract class lastModifiedByID : PX.Data.BQL.BqlGuid.Field<lastModifiedByID> { }
#endregion
#region LastModifiedByScreenID
[PXDBLastModifiedByScreenID()]
public virtual string LastModifiedByScreenID { get; set; }
public abstract class lastModifiedByScreenID : PX.Data.BQL.BqlString.Field<lastModifiedByScreenID> { }
#endregion
#region Tstamp
[PXDBTimestamp()]
[PXUIField(DisplayName = "Tstamp")]
public virtual byte[] Tstamp { get; set; }
public abstract class tstamp : PX.Data.BQL.BqlByteArray.Field<tstamp> { }
#endregion
}
}
当我删除价格指数记录时,并不限制删除。
我希望我的问题是明确的。
提前致谢。
【问题讨论】: