Acumatica - 显示行号

时间:2017-11-08 14:14:40

标签: acumatica

有没有办法在Acumatica网格中显示行号?你可以显示LineID;但是,当您对列进行排序时,LineID将会变得混乱。

谢谢,

1 个答案:

答案 0 :(得分:3)

有两种可能的情况:
1.您需要在现有屏幕上添加行号
2.您需要在屏幕上添加行号

对于案例1,请考虑您要将行号添加到页面po301000,选项卡文档详细信息。选项卡文档详细信息中的网格绑定到DataMember Transactions,如屏幕截图片段所示:
DataMember Transactions
拼图的第二部分是图形,您需要扩展它。从屏幕截图中可以看出,您需要扩展PX.Objects.PO.POOrderEntry: graph for extension

您需要的第三部分是POLine的扩展。您可以使用以下代码示例来实现它:

public class POLineExt : PXCacheExtension<POLine>
{
    public abstract class rowNumber : IBqlField
    {

    }

    [PXInt]
    public int RowNumber { get; set; }
}

并像这样扩展图形:

public class POOrderEntryExt : PXGraphExtension<POOrderEntry>
{
    public PXSelect<POLine, Where<POLine.orderType, Equal<Current<POOrder.orderType>>, And<POLine.orderNbr, Equal<Optional<POOrder.orderNbr>>>>, OrderBy<Asc<POLine.orderType, Asc<POLine.orderNbr, Asc<POLine.lineNbr>>>>> Transactions;

    protected IEnumerable transactions()
    {
        var result = Base.Transactions.Select();
        int rowNumber = 1;
        foreach (PXResult<POLine> lineBoxed in result)
        {
            var line = lineBoxed.GetItem<POLine>();
            var lineExt = line.GetExtension<POLineExt>();
            lineExt.RowNumber = rowNumber;
            rowNumber++;
        }

        return result;
    }

最后一部分,您需要在页面上添加自定义列:

 <px:PXGridLevel DataMember="Transactions">
                            <Columns>
                                <px:PXGridColumn DataField="RowNumber" Width="80px"></px:PXGridColumn>

在完成所有这些后,我在矿页采购订单上看到以下内容:

enter image description here

第二种情况与此处首次描述的非常类似,只是区别在于您不需要扩展任何内容。