3

我正在尝试使用 Microsoft powerapps 构建一个应用程序,该应用程序将向 Excel 表写入/读取数据。

我已经从 Excel 工作表中的表格在 powerapps 中创建了一个表单。我很想知道是否有人知道如何根据前一个屏幕上的按钮选择来填充字段中的数据。

例如,假设以下字段在表单中;位置、操作、项目、用户名。

这就是我正在想象并想做的事情;

我希望通过选择前一个屏幕上的按钮而不是编辑表单视图中的下拉菜单来填充前两个字段。最后两个字段可以通过在三分之一屏幕上输入文本来填充。

流量:

屏幕1;以按钮的形式呈现两个 4 个位置*不一定必须是按钮,但功能类似。

4 个地点:纽约、洛杉矶、亚利桑那州、LN

当用户选择“NY”按钮时,“NY”被填充/存储到表单中的“位置”字段中,屏幕导航到用户将选择操作的下一页。

屏幕2;以按钮的形式呈现两个 2 动作。

2 操作:删除、添加

当用户选择“删除”按钮时,“删除”被填充/存储到表单中的“操作”字段中,屏幕导航到下一页,用户将在其中填写文本字段中的其他两个字段。

屏幕3;有两个文本字段,用户可以在其中填写项目和用户名的其余信息。此时应预先填写位置和操作。当用户提交表单时,所有数据都被提交,并在 Excel 表中创建一行,其中包含所有捕获的信息。

任何如何在前一个屏幕上选择按钮的信息都可以在表单中预填一个字段,这将是很棒的!谢谢你的阅读。

4

1 回答 1

1

听起来你想使用一个集合。集合的使用类似于全局变量,允许我们在不同于我们设置的屏幕上访问数据。

一些有用的信息可以在这里找到:
https ://powerapps.microsoft.com/en-us/tutorials/working-with-variables/#create-a-collection
https://powerapps.microsoft.com/en-us/教程/功能-clear-collect-clearcollect/

根据您的流程,我们假设屏幕命名如下:

  • Screen1 将是“指定位置”
  • Screen2 将是“SpecifyAction”
  • Screen3 将是“FinalizeInput”

这些名称是任意的,但我认为它们会使下面的示例更容易理解。

在屏幕上"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为,因为我们想要存储不同的信息。我们还更改了调用,将我们移到屏幕上。ActionMetadataClearCollect()Navigate()"FinalizeInput"

我不完全确定您是如何布置最终屏幕的,但无论如何,您都希望访问我们之前存储在集合中的数据。这可以通过First()返回集合的第一个元素的函数来完成。

要访问我们选择的位置,您可以使用:First(LocationMetadata).Value
要访问我们选择的操作,您可以使用:First(ActionMetadata).Value

您应该能够使用我们设置的集合来补充在此最终屏幕上从您的用户收集的任何额外数据。

于 2017-03-21T21:22:56.453 回答