我有一个包含三个页面的画布应用程序。
第 1 页有一个库列表记录。 当用户选择库中的项时,将执行以下操作
Set(SelectedRecord, ThisItem);
Navigate('Page 2',ScreenTransition.Fade);
第 2 页有一个标签
Text = SelectedRecord.Field1
以及用于打开第 3 页的链接
第 3 页有一个具有相同数据集的表单,第 1 页上的库和
items = SelectedRecord
和一个保存按钮
OnSelect = SubmitForm(Form_1);
Navigate('Page 2', ScreenTransition.Fade);
我的问题是,当控件返回到第 2 页时,标签仍然显示旧值,我希望全局变量将链接到数据集并在进行更改时更新。
这里是否有错误或使用更新的数据更新全局变量的某些过程?
从逻辑上讲,您从第 3 页导航到第 2 页,但您没有对第 2 页给出任何指示,应该执行什么。 第 2 页处于其最后一个状态(来自第 1 页,带有 SelectedRecord.Field1(
当您来自第 3 页时,您必须清除第 2 页文本 = ">
但请确保仅在从第 3 页导航时才为空
当您设置 SelectedRecord 全局变量时,它将存储数据源中记录的副本。当数据源更改时,它不会自动更新。
您可以在"保存"按钮中显式更新变量:
OnSelect = SubmitForm(Form_1);
Navigate('Page 2', ScreenTransition.Fade);
Set(SelectedRecord...
或者,您可以将逻辑更改为仅将记录的 ID 存储在变量中,并在标签中使用 LookUp((。这将反映对数据源所做的更改:
LookUp('DataSource',ID=SelectedRecordID).Field1
还有一个建议:与其使用全局变量(可能会与其他屏幕上的逻辑发生冲突(,不如使用 Navigate(( 函数传递 record/id,如下所示:
Navigate('Page 2',Fade,{ selectedRecord: <<value>> })