Acumatica GI - 库存交易历史记录屏幕

时间:2017-08-31 14:29:58

标签: customization acumatica

我想为库存交易历史记录屏幕(IN405000)创建一个GI。

由于数据库中没有表InventoryTranHistEnqResult ...此屏幕的几列都是从INTran表中获取的。

我无法找到以下列:BegQty,QtyIn,QtyOut,EndQty ......

我还在数据库上尝试了以下查询来查找这些列

SELECT c.name AS ColName, t.name AS TableName
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE '%EndQty%'

这些字段的DAC是:

enter image description here

1 个答案:

答案 0 :(得分:0)

在页面图中查看页面背后的信息将为您提供问题的答案。库存交易历史记录屏幕(IN405000)使用图表InventoryTranHistEnq。此页面中的网格在以下视图中使用DAC InventoryTranHistEnqResult

PXSelectJoin<InventoryTranHistEnqResult,
CrossJoin<INTran>,
Where<True, Equal<True>>,
OrderBy<Asc<InventoryTranHistEnqResult.gridLineNbr>>> ResultRecords

使用以下内容在查询中动态构建ResultsRecords

protected virtual IEnumerable resultRecords()
{
    int startRow = PXView.StartRow;
    int totalRows = 0;
    decimal? beginQty = null;

    List<object> list = InternalResultRecords.View.Select(PXView.Currents, PXView.Parameters, new object[PXView.SortColumns.Length], PXView.SortColumns, PXView.Descendings, PXView.Filters, ref startRow, PXView.MaximumRows, ref totalRows);
    PXView.StartRow = 0;

    foreach (PXResult<InventoryTranHistEnqResult> item in list)
    {
        InventoryTranHistEnqResult it = (InventoryTranHistEnqResult)item;
        it.BegQty = beginQty = (beginQty ?? it.BegQty);
        decimal? QtyIn = it.QtyIn;
        decimal? QtyOut = it.QtyOut;
        beginQty += (QtyIn ?? 0m) - (QtyOut ?? 0m);
        it.EndQty = beginQty;
    }
    return list;
}

所以我想简短的回答是你不能将这个页面的结果用于GI,因为它只在页面中构建。如果您需要的信息非常重要,您可能需要考虑通过自定义添加您对此历史记录页面所需的内容,或制作您自己的此页面/图形/ dac版本。