Как добавить условие для кнопок процесса в Признать входящий НДС TX503500 - PullRequest
0 голосов
/ 08 января 2020

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

Как мне настроить действия Process, ProcessAll?

Я не нахожу эти действия в методах переопределения

спасибо за помощь, я я действительно новичок в этом

извините, если мой английский sh не так хорош

1 Ответ

0 голосов
/ 27 января 2020

В основном, Процесс / Процесс Все действия отображаются на один метод, который использует метод SetProcessDelegate представления обработки данных. Вам нужно сначала найти график (ProcessInputSVAT) экрана «Распознать входящий НДС» (TX503500). После открытия исходного кода для этого графика вы можете видеть, что он является производным от класса ProcessSVATBase. И когда вы войдете в этот класс, вы увидите упомянутую функцию SetProcessDelegate, вызываемую Data View:

    protected virtual void SVATTaxFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
    {
        SVATTaxFilter filter = (SVATTaxFilter)e.Row;
        if (filter == null)
        {
            return;
        }
        this.SVATDocuments.SetProcessDelegate(delegate(List<SVATConversionHistExt> list)
        {
            ProcessSVATBase.ProcessPendingVATProc(list, filter);
        });
    }

Итак, мы выяснили, какое расширение графа мы должны создать. Теперь необходимо переопределить событие RowSelected SVATTaxFilter DA C в графе расширений.

public class ProcessSVATBaseExt : PXGraphExtension<ProcessSVATBase>
{
    public virtual void SVATTaxFilter_RowSelected(PXCache sender, PXRowSelectedEventArgs e)
    {
        SVATTaxFilter filter = e.Row as SVATTaxFilter;
        if (filter != null)
        {
            Base.SVATDocuments.SetProcessDelegate(delegate (List<SVATConversionHistExt> list)
            {
                // Here you can manage the list items and then call the base method
                // ...
                ProcessSVATBase.ProcessPendingVATProc(list, filter); // the base method
                // Here you can manage the list items after the base method
                // ...
            });
        }
    }
}
...