如何防止用户字段通过日记帐分录发布功能?
How can I keep a user field from coming through on a Journal Entry release function?
我对“日记账交易”屏幕进行了自定义,我在其中向网格 (GLTran) 添加了一个用户字段。启动 Release 函数时,它会按原样添加行 - 但它会使用我在原始行中的值填充用户字段,我不希望这种情况发生。我怎样才能拦截这个过程(我看过源代码,我看不到任何我可以使用的函数)来防止这种情况发生?
我已尝试使用 RowInserting / RowInserted 事件将字段设置为 null 或空白,但这没有任何作用。
非常感谢-
来自 Acumatica 支持 - 需要将发布过程的覆盖添加到日记账分录 BLC 扩展代码中,添加事件处理程序如下:
public delegate IEnumerable ReleaseDelegate(PXAdapter adapter);
[PXOverride]
public IEnumerable Release(PXAdapter adapter, ReleaseDelegate baseMethod)
{
PXGraph.InstanceCreated.AddHandler<PostGraph>((graph) =>
{
graph.RowPersisting.AddHandler<GLTran>((sender, e) =>
{
var gltran = e.Row as GLTran;
if (gltran != null)
{
var gltranext = PXCache<GLTran>.GetExtension<GLTranExt>(gltran);
gltranext.UsrProject = null;
}
});
});
return baseMethod(adapter);
}
非常感谢,塞萨尔!
我对“日记账交易”屏幕进行了自定义,我在其中向网格 (GLTran) 添加了一个用户字段。启动 Release 函数时,它会按原样添加行 - 但它会使用我在原始行中的值填充用户字段,我不希望这种情况发生。我怎样才能拦截这个过程(我看过源代码,我看不到任何我可以使用的函数)来防止这种情况发生?
我已尝试使用 RowInserting / RowInserted 事件将字段设置为 null 或空白,但这没有任何作用。
非常感谢-
来自 Acumatica 支持 - 需要将发布过程的覆盖添加到日记账分录 BLC 扩展代码中,添加事件处理程序如下:
public delegate IEnumerable ReleaseDelegate(PXAdapter adapter);
[PXOverride]
public IEnumerable Release(PXAdapter adapter, ReleaseDelegate baseMethod)
{
PXGraph.InstanceCreated.AddHandler<PostGraph>((graph) =>
{
graph.RowPersisting.AddHandler<GLTran>((sender, e) =>
{
var gltran = e.Row as GLTran;
if (gltran != null)
{
var gltranext = PXCache<GLTran>.GetExtension<GLTranExt>(gltran);
gltranext.UsrProject = null;
}
});
});
return baseMethod(adapter);
}
非常感谢,塞萨尔!