如何为服务订单类型添加多个属性?

时间:2018-10-19 14:46:13

标签: acumatica

我尝试使用下一篇文章中提供的说明为服务订单和约会提供属性,但是当我尝试向图形扩展中的第二个声明的视图添加属性时,会将其添加到第一个视图。

How to add Attribute Support to out-of-box Sales Order Entity?

更新:此自定义在2018 R1中完成。

这是我使用演示数据进行的设置。我试图将重复的PXViewNames更改为不同,如注释行所示,但这无济于事。

public class SvrOrdTypeMaint_Extension : PXGraphExtension<SvrOrdTypeMaint>
{
    [PXViewName(PX.Objects.CR.Messages.Attributes)]
    //[PXViewName("SvcOrdAttributes")]
    public CSAttributeGroupList<FSSrvOrdType, FSServiceOrder> SvcOrdMapping;

    [PXViewName(PX.Objects.CR.Messages.Attributes)]
    //[PXViewName("ApptAttributes")]
    public CSAttributeGroupList<FSSrvOrdType, FSAppointment> ApptMapping;
}

服务订单和约会DAC扩展

public class FSServiceOrderExt : PXCacheExtension<FSServiceOrder>
{
    #region UsrAttributes
    public abstract class usrAttributes : IBqlField { }
    [CRAttributesField(typeof(FSServiceOrder.srvOrdType))]
    public virtual string[] UsrAttributes { get; set; }
    #endregion
}

public class FSAppointmentExt : PXCacheExtension<FSAppointment>
{
    #region UsrAttributes
    public abstract class usrAttributes : IBqlField { }
    [CRAttributesField(typeof(FSAppointment.srvOrdType))]
    public virtual string[] UsrAttributes { get; set; }
    #endregion
}

“服务订单类型”屏幕中的ASPX代码(FS202300)

<px:PXTabItem Text="Service Order Attributes">
    <Template>
        <px:PXGrid runat="server" ID="CstPXGrid1" Height="150" MatrixMode="True" SkinID="Details" Width="100%" DataSourceID="ds" BorderWidth="0px">
            <Levels>
                <px:PXGridLevel DataMember="SvcOrdMapping">
                    <Columns>
                        <px:PXGridColumn DataField="IsActive" Type="CheckBox" TextAlign="Center" />
                        <px:PXGridColumn DataField="AttributeID" Width="81px" LinkCommand="ShowDetails" AutoCallBack="True" />
                        <px:PXGridColumn DataField="Description" Width="351px" AllowNull="False" />
                        <px:PXGridColumn DataField="SortOrder" Width="81px" TextAlign="Right" />
                        <px:PXGridColumn DataField="Required" Type="CheckBox" TextAlign="Center" AllowNull="False" />
                        <px:PXGridColumn DataField="CSAttribute__IsInternal" Type="CheckBox" TextAlign="Center" AllowNull="True" />
                        <px:PXGridColumn DataField="ControlType" Width="81px" Type="DropDownList" AllowNull="False" />
                        <px:PXGridColumn DataField="DefaultValue" Width="100px" AllowNull="True" RenderEditorText="False" />
                    </Columns>
                    <RowTemplate>
                        <px:PXSelector runat="server" ID="CstPXSelector3" DataField="AttributeID" FilterByAllFields="True" AllowEdit="True" CommitChanges="True" />
                    </RowTemplate>
                </px:PXGridLevel>
            </Levels>
        </px:PXGrid>
    </Template>
</px:PXTabItem>
<px:PXTabItem Text="Appointment Attributes">
    <Template>
        <px:PXGrid runat="server" ID="CstPXGrid2" BorderWidth="0px" Height="150px" MatrixMode="True" SkinID="Details" Width="100%" DataSourceID="ds">
            <Levels>
                <px:PXGridLevel DataMember="ApptMapping">
                    <Columns>
                        <px:PXGridColumn DataField="IsActive" Type="CheckBox" TextAlign="Center" />
                        <px:PXGridColumn DataField="AttributeID" Width="81px" LinkCommand="ShowDetails" AutoCallBack="True" />
                        <px:PXGridColumn DataField="Description" Width="351px" AllowNull="False" />
                        <px:PXGridColumn DataField="SortOrder" Width="81px" TextAlign="Right" />
                        <px:PXGridColumn DataField="Required" Type="CheckBox" TextAlign="Center" AllowNull="False" />
                        <px:PXGridColumn DataField="CSAttribute__IsInternal" AllowNull="True" Type="CheckBox" TextAlign="Center" />
                        <px:PXGridColumn DataField="ControlType" Width="81px" Type="DropDownList" AllowNull="False" />
                        <px:PXGridColumn DataField="DefaultValue" Width="100px" AllowNull="True" RenderEditorText="False" />
                    </Columns>
                    <RowTemplate>
                        <px:PXSelector runat="server" ID="CstPXSelector4" DataField="AttributeID" CommitChanges="True" AllowEdit="True" FilterByAllFields="True" />
                    </RowTemplate>
                </px:PXGridLevel>
            </Levels>
        </px:PXGrid>
    </Template>
</px:PXTabItem>

注意:我不包括实际的服务订单和约会图以及aspx代码,因为一旦在服务订单类型屏幕中关联了适当的属性,它就可以工作。

在配置时,请按照以下步骤查看问题。 在下图中,我开始为约会属性指定一个属性,这是图形扩展中的第二个声明的视图。当我保存在第二张图像中时,它会显示在第一张视图中。我发现切换图形中的视图声明会切换行为,因此我必须在图形中缺少某些内容。

enter image description here

enter image description here

0 个答案:

没有答案