Acumatica GI - 库存交易记录屏幕
我想为库存交易记录屏幕(IN405000)创建一个GI。Acumatica 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这些领域是:
在页面图会告诉你答案的网页背后的信息看你的题。库存交易记录屏幕(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版本。
好的...所以我想在这个屏幕上添加一个Customer列(https://stackoverflow.com/q/45742684/4405230),它会显示客户ID与特定库存相关......但是在定制过程中再次添加数据字段时,它说InventoryTranHistEnqResult表不存在......那么,如何将网格列添加到此表中? – Naina
因为它不作为实际的表存在,所以不能添加它。您需要将其添加到存在并加入您的GI的另一个表中 – Brendan
如果我想在此库存事务处理历史记录屏幕中添加一列,该怎么办?由于表不存在,无法完成......有没有办法可以在此屏幕上添加另一个表格? – Naina
您需要查看Acumatica中的DAC以了解它是如何构建的。最好是搜索字段的源代码,而不要在任何字段上查看SQL。 GI建立在DAC上,而不是SQL,因为DAC可能是PXProjection或包含未绑定/计算的字段。 – Brendan
我经历了这些领域的DAC,但找不到解决方案..所有这些领域的DAC是 [PXDBQuantity()] [PXDefault(TypeCode.Decimal,“0.0”)] [PXUIField(DisplayName =“Qty.Out”,Visibility = PXUIVisibility.SelectorVisible)] – Naina