Acumatica 启用“;AllowAddNew“;和/或;允许它”;自定义DAC选择器的研究
我已经创建了一个定制的DAC、图形和屏幕,用于为客户管理新实体的跟踪,称为“管理公司”。新屏幕是带有CRUD控件的简单网格。客户屏幕上的选择器允许我从“管理公司”条目列表中进行选择。我还向Contact DAC和DB表添加了新字段,以跟踪指定联系人的“管理公司”。此字段是配置选择器的位置 我正在尝试启用此选择器的“AllowAddNew”和/或“AllowEdit”属性。当我设置为“True”时,按钮会显示,但它们什么也不做 我可以通过新屏幕创建新条目并保存到这个DB表中,我可以用选择器很好地检索它们。我就是不能从选择器创建新的 我已经试着查过了,但没有找到太多的信息 我怎样才能做到这一点 发援会样本:Acumatica 启用“;AllowAddNew“;和/或;允许它”;自定义DAC选择器的研究,acumatica,Acumatica,我已经创建了一个定制的DAC、图形和屏幕,用于为客户管理新实体的跟踪,称为“管理公司”。新屏幕是带有CRUD控件的简单网格。客户屏幕上的选择器允许我从“管理公司”条目列表中进行选择。我还向Contact DAC和DB表添加了新字段,以跟踪指定联系人的“管理公司”。此字段是配置选择器的位置 我正在尝试启用此选择器的“AllowAddNew”和/或“AllowEdit”属性。当我设置为“True”时,按钮会显示,但它们什么也不做 我可以通过新屏幕创建新条目并保存到这个DB表中,我可以用选择器很好地检
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;
}
}
使用系统;
使用PX数据;
使用PX.Objects.CR;
命名空间客户端代码
{
公共类管理公司名称:PXGraph
{
公共管理公司;
}
}
联系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
}
}
名称空间PX.Objects.CR
{
公共类ContactExt:PXCacheExtension
{
#区域管理公司
[PXDBString]
[PXUIField(DisplayName=“管理公司”)]
[PX选择器(
类型(搜索),
新类型[]
{
类型(UsrCustomerManagementCompany.mancompID),
类型(UsrCustomerManagementCompany.mancompName)
},
SubstituteKey=typeof(UsrCustomerManagementCompany.mancompName)
)]
公共虚拟字符串UsrManagementCompany{get;set;}
公共抽象类usrManagementCompany:IBqlField{}
#端区
}
}
我认为您所缺少的是DAC上的PXPrimaryGraph属性,该属性指示该记录类型的主图是什么
在您的情况下,请尝试添加
[PXPrimaryGraph(typeof(ClientCode.ManagementCompanyMaint))]
[Serializable]
public class UsrCustomerManagementCompany : IBqlTable
{
//...
}
以下是一些可能也有帮助的相关问题:
我认为您所缺少的是DAC上的PXPrimaryGraph属性,该属性用于指示该记录类型的主图形是什么 在您的情况下,请尝试添加
[PXPrimaryGraph(typeof(ClientCode.ManagementCompanyMaint))]
[Serializable]
public class UsrCustomerManagementCompany : IBqlTable
{
//...
}
以下是一些可能也有帮助的相关问题:
事实证明,这正是我所缺少的。我添加了PXPrimaryGraph属性并重新编译,现在我可以单击任意一个按钮并获得自定义屏幕的弹出窗口。谢谢你的及时回复!对于那些试图在Acumatica的最新版本中找到链接的人来说,试试这个:事实证明,这正是我所缺少的。我添加了PXPrimaryGraph属性并重新编译,现在我可以单击任意一个按钮并获得自定义屏幕的弹出窗口。谢谢你的及时回复!如果有人想在Acumatica的最新版本中找到链接,请尝试以下方法: