The other day I was tinkering around with a request to have different fields hidden based on the mode (New, Edit, View) the SharePoint form was in. The process seemed to be pretty straight forward, but for some reason it didn’t quite work out as expected. I finally figured out the cause and thought sharing the steps for creating dedicated PowerApps forms for each mode in a SharePoint list might help others out.
How Not To Do It
So first off let’s start with how not to do it. The settings are located as properties of the SharePoint Integration object in your solution.
Properties of the SharePoint Integration Object
I had thought that by simply calling the EditForm function and passing the form I had used for editing, it would automatically load for me:
EditForm(SMRequestForm_Edit)
Unfortunately this did nothing.
Creating Dedicated PowerApps Forms for Each Mode in a SharePoint List
So above we are telling the form that we want to declare our edit form as the SMRequestForm_Edit, but we aren’t actually telling PowerApps how to get there. So we just need to add a little bit of code that tells it to move to that particular screen:
As you see in the screenshot below, I have actually done something similar for all of the forms. However, I haven’t created a View Form yet so it is looking at the EditForm.
Check out the transition in action:
Preparing for Updates
One thing I would like to suggest you do is add a bit of code at the beginning of the transition component that tells your form what stage you are at. This is to assist with any custom code you might want to add depending on the form stage you are at (I will be covering this in a future post). Simply modify your code by adding the initializing and setting of a variable (I called it formStage).
Comments