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