Блокировать выполнение задачи FormRun в шаблоне DetailsTransaction - PullRequest
0 голосов
/ 03 октября 2019

Я строю простую форму журнала на основе шаблона формы DetailsTransaction. В этом шаблоне он имеет стандартную компоновку двух представлений: сетку header / * journalTable и сетку lines / * journalTrans.

Однако, когда я нажимаю кнопку «Создать» два, создаем новый заголовок / журнал, он автоматически вызываетзадача taskSwitchToDetailsView и переключается на линии. Я хочу, чтобы это не произошло, но я не уверен, как это сделать. Есть ли способ заблокировать выполнение этой задачи?

Ответы [ 2 ]

1 голос
/ 04 октября 2019

Экспериментировали ли вы с viewEditModeHelper() и другими обработчиками событий формы?

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

[FormEventHandler(formStr(LogisticsPostalAddress), FormEventType::Initialized)]
public static void MyForm_OnInitialized(xFormRun sender, FormEventArgs e)
{
    // Subscribe event handlers
    FormRun formRun = sender as FormRun;

    formRun.viewEditModeHelper().EditModeSwitched += eventhandler(MyEventHandler.ViewEditModeSwitched);

}
0 голосов
/ 04 октября 2019

В журналах OOTB много сложностей, и если бы мне понадобилась надежная реализация журнала, я бы создал классы, производные от JournalFormController и JournalFormTable / JournalFormTrans, которые обеспечивают генерацию последовательности номеров, блокировку / блокировку, проверку и многое другое. очень полезная и мощная функциональность для формы журнала + структура таблицы.

Однако мне это не нужно. Поэтому, чтобы решить мою конкретную проблему, я добавил это к методу create метода create источника данных * journalTable (супер-вызов изменяет контекст формы на строки, вызывая задачу (#taskSwitchToDetailsView). Чтобы противостоять этому, я просто вызываю задачу(#taskSwitchToGridView) сразу после супер.

[DataSource]
class CustomJournalTable
{
    public void create(boolean _append = false)
    {
        #Task

        super(_append);

        element.task(#taskSwitchToGridView); 
    }
}
...