我正在尝试在SmartPanel网格上显示attributeID和Values,并增加了一些功能。我能够实现显示值,但值是文本类型。我无法获得值的控件类型,比如在IN202500的Attributes选项卡中(CheckBox、Combo等)
我已经扩展了CSAnswers DAC以及字段AttributeID和Value。
public PXSelectJoin<CSAnswers3,
LeftJoin<CSAnswers,On<CSAnswers.attributeID,
Equal<CSAnswers3.attributeID>>>> DetailsView;
[Serializable]
[PXPossibleRowsList(typeof(CSAttribute.description),
typeof(CSAnswers3.attributeID), typeof(CSAnswers3.value))]
public class CSAnswers3 : CSAnswers
{
[PXDBString(10, InputMask = "", IsKey = true, IsUnicode = true)]
[PXDefault]
[PXUIField(DisplayName = "Attribute", Enabled = false)]
[CSAttributeSelector]
public override string AttributeID { get; set; }
public new abstract class attributeID : IBqlField, IBqlOperand { }
[PXDBString(255, IsUnicode = true)]
[PXUIField(DisplayName = "Value")]
[CSAttributeValueValidation(typeof(CSAnswers3.attributeID))]
[PXPersonalDataFieldAttribute.Value]
public override string Value { get; set; }
}
<px:PXSmartPanel runat="server" ID="AttributeInfo" Key="detailsView"
LoadOnDemand="True" Caption="AttributeInfo">
<px:PXGrid runat="server" ID="CstPXGrid2" AutoAdjustColumns="True"
DataSourceID="ds" MatrixMode="True" SkinID="Attributes">
<Levels>
<px:PXGridLevel DataMember="detailsView">
<Columns>
<px:PXGridColumn DataField="AttributeID" Width="120" />
<px:PXGridColumn DataField="Value" Width="280" /></Columns>
</px:PXGridLevel></Levels></px:PXGrid>
<px:PXPanel runat="server" ID="CstPanel3">
<px:PXButton runat="server" ID="CstButton4" DialogResult="OK"
Text="Close" /></px:PXPanel></px:PXSmartPanel></asp:Content>
我正在尝试获取控件类型的值(CheckBox、Combo等)。在网格上,就像在库存项目屏幕的属性选项卡中一样。
发布于 2019-07-12 03:11:47
Acumatica数据库中有一个列为ControlType的表CSAttribute。在Sales demo数据库的示例中,您可以看到属性'SALESGOALY‘的ControlType可以通过以下SQL发现:
select * from CSAttribute where AttributeID = 'SALESGOALY'
你可以使用下面的BQL来获取类型:
PXSelect<CSAttribute, Where<CSAttribute.attributeID, Equal<Required<CSAttribute.attributeID>>>>.Select(Base, "SALESGOALY");
下面的Acumaitca源代码片段给出了输入的确切答案:
[PXDBInt]
[PXDefault(1)]
[PXUIField(DisplayName = "Control Type", Visibility = PXUIVisibility.SelectorVisible)]
[PXIntList(new int[] {1, 2, 6, 4, 5}, new string[] {"Text", "Combo", "Multi Select Combo", "Checkbox", "Datetime"})]
public virtual int? ControlType
{
get
{
return this._ControlType;
}
set
{
this._ControlType = value;
}
}
表示“SALESGOALY”的类型是1,或者它是文本。
https://stackoverflow.com/questions/56993941
复制相似问题