Acumatica 我可以在PXSelector中为字段设置别名吗
我有一个选择器,定义如下:Acumatica 我可以在PXSelector中为字段设置别名吗,acumatica,Acumatica,我有一个选择器,定义如下: [PXSelector(typeof(Search2<xTACTaxDocument.iD, InnerJoin<xTACEntityMappingEIN, On<xTACTaxDocument.clientEINID, Equal<xTACEntityMappingEIN.iD>>,
[PXSelector(typeof(Search2<xTACTaxDocument.iD,
InnerJoin<xTACEntityMappingEIN,
On<xTACTaxDocument.clientEINID, Equal<xTACEntityMappingEIN.iD>>,
InnerJoin<xTACEntityMappingEIN1,
On<xTACTaxDocument.investmentEINID, Equal<xTACEntityMappingEIN1.iD>>>>>),
typeof(xTACTaxDocument.iD),
typeof(xTACTaxDocument.formID),
typeof(xTACTaxDocument.year),
typeof(xTACEntityMappingEIN.eIN),
typeof(xTACEntityMappingEIN1.eIN))]
我的问题是——由于原始ein和别名DAC ein字段具有相同的名称——是否可能——仅在显示的网格中——重命名第二个字段?或者,理想情况下,将两者都重命名?我不认为这是智能感知的一个选项
这就是我想要做的(请参见别名字段):
DAC名称必须是表“别名”的唯一名称。不能像在SQL中那样设置别名,但可以声明一个继承源类的新类,为查询赋予新的“名称”。我在这里也有类似的问答: 在继承的类中,可以根据需要更改字段的显示名称,以“别名”重复的字段名称 下面是一个未经测试的快速示例:
[Serializable]
public class xTACEntityMappingEINClient : xTACEntityMappingEIN
{
//Override field to set display name = "ClientEIN"
//[PXUIField(DisplayName = "ClientEIN")]
}
[Serializable]
public class xTACEntityMappingEINInvestment : xTACEntityMappingEIN
{
//Override field to set display name = "InvestmentEIN"
//[PXUIField(DisplayName = "InvestmentEIN")]
}
[PXSelector(typeof(Search2<xTACTaxDocument.iD,
InnerJoin<xTACEntityMappingEINClient,
On<xTACTaxDocument.clientEINID, Equal<xTACEntityMappingEINClient.iD>>,
InnerJoin<xTACEntityMappingEINInvestment ,
On<xTACTaxDocument.investmentEINID, Equal<xTACEntityMappingEINInvestment.iD>>>>>),
typeof(xTACTaxDocument.iD),
typeof(xTACTaxDocument.formID),
typeof(xTACTaxDocument.year),
typeof(xTACEntityMappingEINClient.eIN),
typeof(xTACEntityMappingEINInvestment .eIN))]
[可序列化]
公共类XtaceEntityMappingEincluent:XtaceEntityMappingEin
{
//覆盖字段以设置display name=“ClientEIN”
//[PXUIField(DisplayName=“ClientEIN”)]
}
[可序列化]
公共类XtaceEntityMappingEin投资:XtaceEntityMappingEin
{
//覆盖字段以设置显示名称=“InvestmentEIN”
//[PXUIField(DisplayName=“InvestmentEIN”)]
}
[PX选择器(类型)(搜索2),
类型(xTACTaxDocument.iD),
类型(xTACTaxDocument.formID),
类型(xTACTaxDocument.year),
typeof(xTACEntityMappingEINClient.eIN),
类型(xTACEntityMappingEINInvestment.eIN))]
唯一的选择是在XtaceEntityMappingEIN1 DAC中额外覆盖EIN属性,以在PXUIFieldAttribute中使用不同的显示名称:
[Serializable]
public class xTACEntityMappingEIN1 : xTACEntityMappingEIN
{
public abstract new class iD : IBqlField { }
public abstract new class eIN : IBqlField { }
[PXDBString(50, IsUnicode = true, IsKey = true)]
[PXUIField(DisplayName = "Investment EIN")]
public override string EIN { get; set; }
}
请注意,在上面的代码片段中,我为EIN字段随机选择了字符串类型。理想情况下,XtaceEntityMappingEin和XtaceEntityMappingEin1中的EIN字段属性应接近相同,但PXUIFieldAttribute的DisplayName属性值除外
[Serializable]
public class xTACEntityMappingEINClient : xTACEntityMappingEIN
{
//Override field to set display name = "ClientEIN"
//[PXUIField(DisplayName = "ClientEIN")]
}
[Serializable]
public class xTACEntityMappingEINInvestment : xTACEntityMappingEIN
{
//Override field to set display name = "InvestmentEIN"
//[PXUIField(DisplayName = "InvestmentEIN")]
}
[PXSelector(typeof(Search2<xTACTaxDocument.iD,
InnerJoin<xTACEntityMappingEINClient,
On<xTACTaxDocument.clientEINID, Equal<xTACEntityMappingEINClient.iD>>,
InnerJoin<xTACEntityMappingEINInvestment ,
On<xTACTaxDocument.investmentEINID, Equal<xTACEntityMappingEINInvestment.iD>>>>>),
typeof(xTACTaxDocument.iD),
typeof(xTACTaxDocument.formID),
typeof(xTACTaxDocument.year),
typeof(xTACEntityMappingEINClient.eIN),
typeof(xTACEntityMappingEINInvestment .eIN))]
[Serializable]
public class xTACEntityMappingEIN1 : xTACEntityMappingEIN
{
public abstract new class iD : IBqlField { }
public abstract new class eIN : IBqlField { }
[PXDBString(50, IsUnicode = true, IsKey = true)]
[PXUIField(DisplayName = "Investment EIN")]
public override string EIN { get; set; }
}