我正在尝试使用Microsoft powerapps构建一个应用程序,该应用程序将在Excel工作表中写入/读取数据 .
我在excel表中的表中创建了一个powerapps表单 . 我很想知道是否有人知道如何根据前一个屏幕上的按钮选择填充字段中的数据 .
举个例子,假设表格中有以下字段;位置,动作,项目,用户名 .
这就是我成像和想做的事情;
我希望通过选择前一个屏幕上的按钮而不是编辑表单视图中的下拉菜单来填充前两个字段 . 可以通过在三分之一屏幕上输入文本来填充最后两个字段 .
流程:
Screen1 ;以按钮的形式呈现两个4个位置*不一定必须是按钮,但功能类似于一个 .
4个地点:纽约州,洛杉矶,亚利桑那州,LN
当用户选择“NY”按钮时,“NY”被填充/存储在表格中的“位置”字段中,并且屏幕导航到用户将选择动作的下一页面 .
Screen2 ;以按钮的形式呈现两个动作 .
2动作:删除,添加
当用户选择“删除”按钮时,“删除”被填充/存储到表单中的“动作”字段中,并且屏幕导航到下一页,其中用户将填充文本字段中的其他两个字段 .
Screen3 ;有两个文本字段,用户可以在其中填写项目和用户名的其余信息 . 此时应预先填写位置和操作 . 当用户提交表单时,将提交所有数据并在excel表中创建一行,并捕获所有信息 .
任何有关如何在前一个屏幕上进行按钮选择的信息都会预先填写一个非常棒的形式的字段!谢谢你的阅读 .
1 回答
听起来你想要使用一个集合 . 可以使用类似于全局变量的集合,并允许我们在与我们设置的屏幕不同的屏幕上访问数据 .
一些有用的信息可以在这里找到:
https://powerapps.microsoft.com/en-us/tutorials/working-with-variables/#create-a-collection
https://powerapps.microsoft.com/en-us/tutorials/function-clear-collect-clearcollect/
根据您的流程,我们假设屏幕的名称如下:
Screen1将是"SpecifyLocation"
Screen2将"SpecifyAction"
Screen3将"FinalizeInput"
名称是任意的,但我认为他们将使以下示例更容易遵循 .
在屏幕
"SpecifyLocation"
上,我们将创建四个按钮 . 它们都是相同的,除了它们引用的位置的名称 . 例如,引用"NY"的按钮如下:Text = "New York"
OnSelect = ClearCollect( LocationMetadata, "NY" ); Navigate(SpecifyAction,ScreenTransition.Cover)
请注意,
OnSelect
值是由分号分隔的两个不同函数 . 第一个函数ClearCollect()
清除集合中的所有信息,然后写入新条目 . 在这种情况下,我们有一个名为LocationMetadata
的集合,我们在其中写入值"NY"
. 第二个函数Navigate()
会更改我们正在查看的屏幕 .在屏幕
"SpecifyAction"
上,我们将创建两个按钮 . 它们将是类似的,除了它们所指的行动 . 例如,引用"Add"的按钮如下:Text = "Add"
OnSelect = ClearCollect( ActionMetadata, "Add" ); Navigate(FinalizeInput,ScreenTransition.Cover)
与之前的情况一样,我们在
ClearCollect()
电话中将LocationMetadata
更改为ActionMetadata
,因为我们要存储不同的信息 . 我们还改变了我们的Navigate()
电话,将我们移至"FinalizeInput"
屏幕 .我已经确定了你的最终屏幕,但无论如何,你将需要访问我们之前存储在集合中的数据 . 这可以通过函数
First()
来完成,它返回集合的第一个元素 .要访问我们选择的位置,您可以使用:
First(LocationMetadata).Value
要访问我们选择的操作,您可以使用:
First(ActionMetadata).Value
您应该可以使用我们设置的集合在最终屏幕上补充从您的用户收集的任何额外数据 .