有没有办法在Acumatica网格中显示行号?你可以显示LineID;但是,当您对列进行排序时,LineID将会变得混乱。
谢谢,
答案 0 :(得分:3)
有两种可能的情况:
1.您需要在现有屏幕上添加行号
2.您需要在屏幕上添加行号
对于案例1,请考虑您要将行号添加到页面po301000,选项卡文档详细信息。选项卡文档详细信息中的网格绑定到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>
在完成所有这些后,我在矿页采购订单上看到以下内容:
第二种情况与此处首次描述的非常类似,只是区别在于您不需要扩展任何内容。