Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Axapta 阻止FormRun任务以DetailsTransaction模式执行_Axapta_X++_Dynamics 365 Operations - Fatal编程技术网

Axapta 阻止FormRun任务以DetailsTransaction模式执行

Axapta 阻止FormRun任务以DetailsTransaction模式执行,axapta,x++,dynamics-365-operations,Axapta,X++,Dynamics 365 Operations,我正在基于表单模式DetailsTransaction构建一个简单的日志表单。在该模式中,它具有标准的双视图布局,标题/*可记录网格和行/*可记录网格 但是,当我单击新建按钮创建新的标题/日志时,它会自动调用taskSwitchToDetailsView任务并切换到行。我希望阻止这种情况发生,但我不确定如何做到这一点。是否有方法阻止调用此任务?您是否尝试过使用viewEditModeHelper()和其他表单事件处理程序 我现在没有一个环境在我面前,但这里有一个小剪报,可能会给你一个想法在哪里看

我正在基于表单模式DetailsTransaction构建一个简单的日志表单。在该模式中,它具有标准的双视图布局,标题/*可记录网格和行/*可记录网格


但是,当我单击新建按钮创建新的标题/日志时,它会自动调用taskSwitchToDetailsView任务并切换到行。我希望阻止这种情况发生,但我不确定如何做到这一点。是否有方法阻止调用此任务?

您是否尝试过使用
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);

}

OOTB日志非常复杂,如果我需要一个健壮的日志实现,我会创建从JournalFormController和JournalFormTable/JournalFormTrans派生的类,这些类提供数字序列生成、阻塞/锁定、验证、,对于日志表单+表结构来说,这是非常有用和强大的功能

然而,我不需要这些。因此,为了解决我的具体问题,我将其添加到*journalTable数据源的create方法中(超级调用通过调用task(#taskSwitchToDetailsView)将表单的上下文更改为行)。为了解决这个问题,我只需在超级调用之后立即调用task(#taskSwitchToGridView)

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

        super(_append);

        element.task(#taskSwitchToGridView); 
    }
}

我认为此事件用于在窗体上的读写模式之间切换,而不是用于合并标头和行窗体的标头/行上下文切换