Acumatica GI - 库存交易历史屏幕

Acumatica GI - Inventory Transaction History Screen

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

由于 table InventoryTranHistEnqResult 不存在于数据库中...此屏幕的几列取自 INTran Table。

我找不到以下列: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

查看页面图表中页面背后的信息将为您提供问题的答案。库存交易记录屏幕 (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,因为它仅构建在页面中。您可能想通过自定义将您需要的内容添加到此历史记录页面,或者制作您自己的版本 page/graph/dac 如果您需要的信息非常重要。