2015-07-21 2 views
0

Я попытался переопределить существующий метод, но после публикации я получил эту ошибку.Acumatica - ошибка переопределения метода

Попытка методом 'Wrapper.PX.Objects.AR.Cst_ARPaymentEntry.ARPayment_RowSelectedGeneratedWrapper (PX.Objects.AR.ARPaymentEntry, PX.Data.PXCache, PX.Data.PXRowSelectedEventArgs)' для метода доступа «PX.Objects .AR.ARPaymentEntry_Extension.ARPayment_RowSelected (PX.Data.PXCache, PX.Data.PXRowSelectedEventArgs) 'не удалось.

Когда я попытался удалить атрибут PXOverride, ошибки не произошло. Я использую версию 5.10.072.

[PXOverride] 
    protected void ARPayment_RowSelected(PXCache cache, PXRowSelectedEventArgs e) 
    { 

    } 

ответ

3

Проблема в том, что вы пытаетесь переопределить обработчик событий - не общий виртуальный метод BLC. Для этого нужно использовать другой подход. А именно, вам нужно объявить обработчик события без атрибута PXOverride, но с дополнительным аргументом типа PXRowSelected, а затем либо вызовите его, либо нет на основе вашей внутренней логики. Вот пример такого объявления:

protected void ARPayment_RowSelected(PXCache cache, PXRowSelectedEventArgs e, PXRowSelected invokeBaseHandler) 
{ 
    /* your custom event handling logic here */ 

    if(/* your custom condition may go here */) 
     invokeBaseHandler(cache, e); 

    /* some more of your logic here if needed */ 
} 

Обратите внимание, что если вы просто хотите, чтобы ваш обработчик будет выполняться вместе с базой один, вам не нужен дополнительный аргумент - просто объявить обработчик с вашим кодом и этим будет вызываться после исходных обработчиков.

Вы можете найти гораздо больше информации и explanatiions по этой теме в справочной статье под Помощь> Customization> Примеры функциональных Customization> Добавление или изменение BLC обработчика событий в любом экземпляре Acumatica.

+0

Спасибо, я понял, что некоторое время назад я вспомнил об основной концепции переопределяющих методов. спасибо за широкую информацию. – xxxAcuGeekxxx

Смежные вопросы