我正在基于表单模式 DetailsTransaction 构建一个简单的日记帐表单。在此模式中,它具有标准的两个视图布局,标题/*journalTable 网格和行/*journalTrans 网格。
但是,当我单击新建按钮两个创建一个新的标题/日志时,它会自动调用 taskSwitchToDetailsView 任务并切换到行。我希望阻止这种情况发生,但我不确定如何去做。有没有办法阻止这个任务被调用?
我正在基于表单模式 DetailsTransaction 构建一个简单的日记帐表单。在此模式中,它具有标准的两个视图布局,标题/*journalTable 网格和行/*journalTrans 网格。
但是,当我单击新建按钮两个创建一个新的标题/日志时,它会自动调用 taskSwitchToDetailsView 任务并切换到行。我希望阻止这种情况发生,但我不确定如何去做。有没有办法阻止这个任务被调用?
您是否尝试过 theviewEditModeHelper()
和其他表单事件处理程序?
现在我面前没有环境,但这里有一个小片段,可能会让你知道在哪里看。我知道这不完全是你要找的,但我会想同样的风格。
[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 方法的 create 方法中(超级调用通过调用 task(#taskSwitchToDetailsView) 将表单的上下文更改为行。为了解决这个问题,我只需调用 task (#taskSwitchToGridView) 紧跟在 super 之后。
[DataSource]
class CustomJournalTable
{
public void create(boolean _append = false)
{
#Task
super(_append);
element.task(#taskSwitchToGridView);
}
}