【问题标题】:Acumatica - Display row numbersAcumatica - 显示行号
【发布时间】:2018-04-21 06:34:35
【问题描述】:

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

谢谢,

【问题讨论】:

  • 您想在现有屏幕上添加行号还是自己添加?

标签: acumatica


【解决方案1】:

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

对于案例 1,请考虑您想将行号添加到页面 po301000,选项卡文档详细信息。选项卡 Document details 中的网格绑定到 DataMember Transactions,您可以在屏幕截图片段中看到:

谜题的第二部分是图形,您需要对其进行扩展。正如您从屏幕截图中看到的,您需要扩展 PX.Objects.PO.POOrderEntry:

您需要的第三部分是 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>

在这一切之后,我在我的页面采购订单上看到了以下内容:

第二种情况与这里第一种情况非常相似,只是你不需要扩展任何东西。

【讨论】:

  • 很好,还有虚拟字段。谢谢
猜你喜欢
  • 2019-06-16
  • 1970-01-01
  • 2014-12-08
  • 1970-01-01
  • 2018-06-03
  • 2015-05-21
  • 2014-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多