Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Forms “提交”按钮是否覆盖PowerApps中excel表格中以前填充的行?_Forms_Powerapps_Powerapps Formula_Powerapps Canvas_Powerapps Selected Items - Fatal编程技术网

Forms “提交”按钮是否覆盖PowerApps中excel表格中以前填充的行?

Forms “提交”按钮是否覆盖PowerApps中excel表格中以前填充的行?,forms,powerapps,powerapps-formula,powerapps-canvas,powerapps-selected-items,Forms,Powerapps,Powerapps Formula,Powerapps Canvas,Powerapps Selected Items,我正在创建一个表单,最终用户可以通过单击“提交”按钮提交表单条目。此任务的数据源是Excel表格。我创建了两个屏幕。[更多更新见下文] 屏幕1以图库形式包含许多系统(Sys1、Sys2、Sys3…)的摘要。当最终用户单击其中一个选项卡(比如“Sys1”)时,它会将他们带到新屏幕(其中包含Sys1详细信息),最终用户可以通过查看摘要屏幕注册。我在屏幕底部添加了“注册”按钮,可以导航到屏幕2 屏幕2包含最终用户可以注册系统的编辑表单。我还想使用屏幕1中的一些值(比如System 1 ID、Model

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

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

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

我对上述流程有两个问题

  • 当用户单击“提交”按钮时,Excel表格中的上一个条目将被覆盖。我也想保存以前的条目
  • 当Screen2重新打开时,之前的所有条目都不清晰
  • 阿伦评论后更新

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

    图1初始Excel表格(数据源)

    图2:预期产出

    您应该使用写入/附加到excel文件,而不是
    提交表单(Form1)

    对于创建:

    Patch(ExcelSource, 
    Defaults(ExcelSource), 
    {NameColumn: TextInput.Text, SurveyResultColumn: Value})
    
    更新内容:

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

    编辑

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


    谢谢您的回复!我尝试了上面的代码,由于某种原因,我得到了一个错误,它说“一个名为“Pr”的字段在这个记录中被多次指定”。我尝试的代码是补丁(表1,LookUp(表1,Pr=DatacardValue10.Text),{Pr:DatacardValue10.Text,Pr:DatacardValue10})。这里Pr=列名。有什么建议我的上述代码有什么问题吗?提前谢谢@biggboss2019试试这个:
    补丁(表1,查找(表1,Pr=DatacardValue10.Text),{Pr:DatacardValue10.Text})
    。你有公关:这是作业两次:)谢谢!好像在点击提交按钮。我无法在excel中保存我的条目。DatacardValue10的默认值设置为“”。有什么建议吗?@biggbos2019是的,正确。尝试编码一些值并首先查看。此外,我认为我的问题被误解了。我要查找的是第一个PowerApp表单将找到包含“系统”行的行。说出“Sys1”并用模型信息更新该行。下次当用户再次选择“Sys1”时,用户输入的信息将追加到新行中。因此,您需要的是“if,else”块,如果已经有条目-补丁更新,else补丁创建,如我的回答所示:)@ArunVinoth..我也在想同样的问题,但不确定如何编写它?如果可能,您能在这方面提供帮助吗?提前谢谢!)更新了我的答案,我还没有测试过。请verify@ArunVinoth谢谢你更新答案。每次我运行编辑的代码时,只执行Else条件(“创建”代码)。不确定问题出在哪里?很遗憾,现在编辑的代码只运行FALSE condition(创建)condition:(将尝试检查您的参考资料。
    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}))