【发布时间】:2018-04-21 06:34:35
【问题描述】:
有没有办法在 Acumatica 网格中显示行号?您可以显示 LineID;但是,当您对列进行排序时,LineID 当然会被打乱。
谢谢,
【问题讨论】:
-
您想在现有屏幕上添加行号还是自己添加?
标签: acumatica
有没有办法在 Acumatica 网格中显示行号?您可以显示 LineID;但是,当您对列进行排序时,LineID 当然会被打乱。
谢谢,
【问题讨论】:
标签: acumatica
有两种可能的情况:
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>
在这一切之后,我在我的页面采购订单上看到了以下内容:
第二种情况与这里第一种情况非常相似,只是你不需要扩展任何东西。
【讨论】: