2014-12-09 5 views
0

acumatica 기본 클래스의 이벤트 처리기를 제거해야한다고 생각하는 코드를 추가했습니다.Acumatica에서 이벤트 처리기를 제거하는 방법

public override void Initialize() 
{ 
// Remove the event handler on the APTran object for APTran_SubID_FieldDefaulting so we can override it in this module 
Base.FieldDefaulting.RemoveHandler<APTran.subID>(A PTran_SubID_FieldDefaulting); 

} 

그러나 여전히 기본 코드를 실행합니다. 이 코드를 제거하고 새 이벤트 핸들러를 유지하면, 이벤트 핸들러를 통해 실행 된 다음 Base 이벤트 핸들러를 통해 실행되는 것처럼 보입니다.

기본 이벤트 처리기를 제거하여 새 이벤트 처리기를 사용하는 방법에 대한 제안 사항이 있습니까?

답변

2

솔루션

내가 이벤트 핸들러를 제거 할 필요가 없습니다

, 나는 그냥 가리키는 세 번째 매개 변수로 확장의 이벤트 핸들러를 선언 할 필요가 (감사 이반으로 이동) 밝혀 원래 이벤트 핸들러에 전달한 다음 프로젝트에서 필요한 경우 위임자를 호출하지 않도록 선택할 수 있습니다.

예 :

protected void APTran_SubID_FieldDefaulting(PXCache sender, PXFieldDefaultingEventArgs e, PXFieldDefaulting del) 
{ 
APTran row = (APTran)e.Row; 
if (row == null) { return; } 
// do my code here 
// skip calling the original event 
//del.Invoke(sender, e); -- invokes the Base FieldDefaulting event handler 

} 
관련 문제