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