Is This Possible? - Multiple Forms for the Same Dataset

I have a request from higher places to have a button to open up a form that only shows limited information so that certain users can add a record to a dataset but not have to see all the fields. The fields they do not wish to see are not "required" fields and would be filled in later by other people.

I created a new form for the dataset in question, and created a button to call that form but it does two things. It breaks the app when the button is pressed, and it also seems to confuse the default "add" button when the primary view is showing.

Essentially what I need is two different ways to add data to the same dataset, one that shows the full listing of possible columns that is accessed by the system generated "add" button, and another that is a much more limited set of information to be added that still populates the same dataset, but is accessed by a secondary button with a different icon.

1 7 732
7 REPLIES 7

This can be done but there are different ways to do it so that I can't point to just one.

  1. Show_If on the same form (with require_if if necesary) based on the user, their role, etc.
  2. More than one form on the same dataset, you need to understand the way AppSheet treats user-made Ref views
    1. You will need custom actions to go to the form you need.
  3. One form per dataset, which are slices of the same data. Probably the best one.
    1. You can have a slice.
    2. Each slice that's not read-only have a default form

Also take into account that "I want to place a button wherever I want" is something AppSheet can't do. You have to understand the way the defaults work in order to make sure that the default is what you want

I appreciate the response. I am admittedly quite new to AppSheet and have zero experience in application development. I need to ask questions like this from time to time to help temper expectations as I continue trying to learn what I can and can't do with AppSheet.

No problem with that, it's part of the process. I'm glad to help actually.

In general, I would say that when it comes to UI/UX, AppSheet is quite unflexible.
But it's very powerful on the backend with enough UI/UX to serve the purpose a company needs.

Thank you again for talking with me about this. It really helps to tame the bouncing of possibilities in my head ๐Ÿ™‚

I was able to create a slice and an action/behavior today to display the form i wanted. I was even able to get the button to display in the lower right of the slice in question,  however the button also shows on another primary view that i do NOT want it on. 

Is there an expression that would say something like "only show this behavior if the user is on this view?" or something to that effect? Essentially, I want to jail this button to only show on a particular slice as opposed to showing as an option on anything the table shows up on.

thank you, that was quite helpful. A combination of using the context(view) expression and adding the behavior to the slice accomplished what was needed without breaking the app and without crushing my will to press on!

My use case for supporting multiple forms for the same table is to restrict certain users so that they could only change / edit certain fields. I accomplished this by:

  • Hiding the default System generated Edit view (setting Behavior --> "Only if this condition is true" to the value false)
  • Creating a form with just the columns that a restricted user is allowed to edit
  • Creating an Action where
    * "Do this" is set to "App: go to another view within this app"
    * Target is set to LINKTOROW where the first parameter is [_THISROW] and the second parameter is the form name above, as in "LINKTOROW([_THISROW], "Form_LimitedEdit")
  • Creating a second action to be displayed (using Behavior --> "Only if this condition is true") only to certain users. This action also has
    * "Do this" is set to "App: go to another view within this app"
    * Target is set to LINKTOROW where the first parameter is [_THISROW] and the second parameter is the default system form for the table (allows all fields to be edited). Example is: "LINKTOROW([_THISROW], "Table_Form")

Now, if the first action is clicked, only some fields may be edited. Users with the right permissions will see the second action. Clicking that will let them edit all fields.

Top Labels in this Space