2

我正在创建一个表单,最终用户可以通过单击提交按钮提交他们的表单条目。此任务的数据源是 Excel 表。我创建了 2 个屏幕。[更多更新见下文]

Screen1在 Gallery 表单中包含许多系统(Sys1、Sys2、Sys3...)的摘要。当最终用户单击其中一个选项卡(例如“Sys1”)时,它将通过查看摘要屏幕将他们带到最终用户可以注册的新屏幕(其中包含 Sys1 详细信息)。我在屏幕底部添加了“注册”按钮,该按钮导航到屏幕 2。

屏幕 2包含最终用户可以注册系统的编辑表单。我还想使用屏幕 1 中的一些值(例如 System 1 ID、Model# 等)。因此,对于这些项目,我将它们的“项目”属性设置为Gallery.Selected,并禁用这些字段,以便最终用户无法编辑这些字段。需要最终用户输入的字段是“文本框”形式,例如“注册人”、“注册时间”等。我在屏幕底部有提交按钮。因此最终用户可以提交表单。提交按钮的“OnSelect”属性设置为SubmitForm(Form1)

我对上述过程有两个问题

  1. 当用户单击提交按钮时,Excel 表中的先前条目将被覆盖。我也想保存以前的条目
  2. 当 Screen2 重新打开时,所有以前的条目都不清楚

Arun评论后更新

Arun 建议的用于创建和更新的代码不是我正在寻找的东西。创建代码在 Excel 表中追加两个新行。更新代码删除最后分配的值。我正在寻找一种方法Powerapps,其中PowerApps代码将首先在“Sys1”下面的情况下找到该行,并将该行更新为该列的“User1”和“Mod1”。假设“User1”想要为“Sys1”行添加另一个模型,它将附加在 Excel 表格的底部,如图 2 所示。图 2 是我想要的输出。图 1 是我最初的 Excel 表格。

图 1 初始 Excel 表(数据源)

在此处输入图像描述

图 2:预期输出

在此处输入图像描述

4

1 回答 1

1

您应该使用Patch写入/附加到 excel 文件而不是SubmitForm(Form1).

对于创建:

Patch(ExcelSource, 
Defaults(ExcelSource), 
{NameColumn: TextInput.Text, SurveyResultColumn: Value})

对于更新:

Patch(ExcelSource, 
LookUp(ExcelSource, NameColumn=TextInput.Text), 
{NameColumn: TextInput.Text, SurveyResultColumn: Value})

阅读更多

编辑

请用您的控件名称和值替换,我尝试了我的最佳假设:)

If(CountRows(Filter(Table1, System=SystemControl.Text && Model=""))>0, 
    Patch(Table1,LookUp(Table1, System=SystemControl.Text && Model=""), {Model: DatacardValue10.Text, UserName: UserControl.Text}), 
    Patch(Table1,Defaults(Table1),{System:SystemControl.Text, Model: DatacardValue10.Text, UserName: UserControl.Text}))

参考

于 2020-09-30T17:52:17.580 回答