我想为库存交易历史记录屏幕(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是:
答案 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版本。