我创建了一个自定义DAC,图形和屏幕来管理对称为“管理公司”的客户新实体的跟踪。新屏幕是带有CRUD控件的简单网格。客户屏幕上的选择器使我可以从“管理公司”条目列表中进行选择。我还向Contact DAC和DB表添加了新字段,以跟踪将哪个“管理公司”分配给给定联系人。该字段是配置选择器的位置。
我正在尝试启用此选择器的“ AllowAddNew”和/或“ AllowEdit”属性。当我设置为“ True”时,将显示按钮,但是它们什么也不做。
我可以通过新屏幕创建新条目并将其保存到该数据库表,并且可以使用Selector检索它们。我只是无法从选择器创建新的。
我尝试查找此信息,但没有找到太多信息。
我该如何实现?
DAC的示例:
namespace PX.Objects.CR
{
[Serializable]
public class UsrCustomerManagementCompany : IBqlTable
{
#region MancompID
[PXDBString(16, IsUnicode = true, InputMask = ">LLLLLLLLLLLLLLLL", IsKey = true)]
[PXUIField(DisplayName = "Company ID")]
[PXDefault]
public virtual string MancompID { get; set; }
public abstract class mancompID : IBqlField { }
#endregion
#region MancompName
[PXDBString(60, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Company Name")]
[PXDefault]
public virtual string MancompName { get; set; }
public abstract class mancompName : IBqlField { }
#endregion
#region MancompDescr
[PXDBString(4000, IsUnicode = true, InputMask = "")]
[PXUIField(DisplayName = "Description")]
public virtual string MancompDescr { get; set; }
public abstract class mancompDescr : IBqlField { }
#endregion
}
}
图:
using System;
using PX.Data;
using PX.Objects.CR;
namespace ClientCode
{
public class ManagementCompanyMaint : PXGraph<ManagementCompanyMaint, UsrCustomerManagementCompany>
{
public PXSelect<UsrCustomerManagementCompany> ManagementCompanies;
}
}
联系DAC扩展和选择器:
namespace PX.Objects.CR
{
public class ContactExt : PXCacheExtension<PX.Objects.CR.Contact>
{
#region UsrManagementCompany
[PXDBString]
[PXUIField(DisplayName = "Management Company")]
[PXSelector(
typeof(Search<UsrCustomerManagementCompany.mancompID>),
new Type[]
{
typeof(UsrCustomerManagementCompany.mancompID),
typeof(UsrCustomerManagementCompany.mancompName)
},
SubstituteKey = typeof(UsrCustomerManagementCompany.mancompName)
)]
public virtual string UsrManagementCompany { get; set; }
public abstract class usrManagementCompany : IBqlField { }
#endregion
}
}
答案 0 :(得分:1)
我想您所缺少的只是DAC上的PXPrimaryGraph属性,以指示该记录类型要引用的主要图形是什么。
在您的情况下,尝试添加...
[PXPrimaryGraph(typeof(ClientCode.ManagementCompanyMaint))]
[Serializable]
public class UsrCustomerManagementCompany : IBqlTable
{
//...
}
以下一些相关问题可能也有帮助: