问题描述
我正在创建一个表单,最终用户可以通过单击“提交”按钮来提交其表单条目。此任务的数据源是Excel表。我创建了2个屏幕。[请参见下面的更多更新]
屏幕1 在“库”窗体中包含许多系统(Sys1,Sys2,Sys3 ...)的摘要。当最终用户单击一个选项卡(说“ Sys1”)时,它将带他们到新屏幕(其中包含Sys1详细信息),最终用户可以通过查看摘要屏幕来进行注册。我在屏幕底部添加了“注册”按钮,该按钮导航到屏幕2。
屏幕2 包含编辑表单,最终用户可以在其中注册系统。我还想使用屏幕1中的一些值(说系统1 ID,型号#等)。因此,对于这些项目,我将其“项目”属性设置为gallery.Selected
,并禁用了这些字段,因此最终用户无法编辑这些字段。需要最终用户输入的字段为“文本框”形式,例如“注册方式”,“注册时间”等。我在屏幕底部有“提交”按钮。因此最终用户可以提交表单。提交按钮的“ OnSelect”属性设置为SubmitForm(Form1)
。
我在上述过程中遇到两个问题
在Arun评论后更新
Arun为创建和更新建议的代码不是我想要的。创建代码在Excel表中追加两个新行。更新代码将删除最后分配的值。我正在Powerapps
中寻找一种方法,其中PowerApps
代码将首先在以下情况下找到“ Sys1”行,并将该行更新为“ User1”和“ Mod1”。假设“ User1”想要为“ Sys1”行添加另一个模型,它将附加在Excel表的底部,如图2所示。图2是我想要的输出。图1是我的初始Excel表。
图1初始Excel表(数据源)
图2:预期输出
解决方法
您应该使用Patch而不是SubmitForm(Form1)
来写入/附加到excel文件。
用于创建:
Patch(ExcelSource,Defaults(ExcelSource),{NameColumn: TextInput.Text,SurveyResultColumn: Value})
有关更新:
Patch(ExcelSource,LookUp(ExcelSource,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}),Defaults(Table1),{System:SystemControl.Text,Model: DatacardValue10.Text,UserName: UserControl.Text}))