我想为库存事务历史屏幕创建一个GI(IN405000)。
由于数据库中没有表库存tranhistenqresult ...此屏幕的列中很少有Intran Tabl。
。我找不到以下列: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是:
在此处输入图像描述
查看页面图中页面背后的信息将为您提供问题的答案。库存事务历史记录屏幕(IN405000)使用Graph 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,因为它仅在页面中构建。如果您需要的信息很重要,您可能需要考虑通过自定义将所需的内容添加到此历史页面上,或制作自己的版本。