我注意到,只要保存AR发票,就会在Note表中创建一张记录,其中包含新发票的附注ID。你能告诉我这是怎么实现的吗?我想让我的一个屏幕做同样的事情。我想在DAC或图表上必须有某种属性,但我无法找到它。我的DAC中的NoteID列上有PXNote属性,但它不会导致自动创建Note记录。
感谢您的帮助。
答案 0 :(得分:1)
要在保存新的父记录时自动创建Note记录,当父记录插入缓存时,应该调用静态PXNoteAttribute.GetNoteID<Field>(PXCache cache, object data)
方法。
例如,要在保存新的Stock Item时自动创建Note记录,您应该订阅InventoryItem DAC的RowInserted处理程序并调用PXNoteAttribute.GetNoteID<Field>(...)
:
public class InventoryItemMaintExt : PXGraphExtension<InventoryItemMaint>
{
public void InventoryItem_RowInserted(PXCache sender, PXRowInsertedEventArgs e)
{
var noteCache = Base.Caches[typeof(Note)];
var oldDirty = noteCache.IsDirty;
PXNoteAttribute.GetNoteID<InventoryItem.noteID>(sender, e.Row);
noteCache.IsDirty = oldDirty;
}
}
上面的代码片段可以合并到几乎所有自定义BLC中,只需一些简单的更改即可将InventoryItem替换为自定义DAC。