New Button Gives Blank Form With No initial value


I am trying to figure out a way to bring information from a previous form.

The below screenshots are how I navigate to the page through the app.

The yellow highlights represent where I clicked. The red circle represents information that was brought from the previous screen.

The above image is where I end up with nothing pre-filled. How can I have this information filled out? It doesn’t seem possible?


I’m aware of initial values. My question is more specific as to how to fill the form by navigating through the app in the way that I did. I am able to fill the form where I have the “Location” circled in red. But when I navigate further into the app using the “New” button I am not sure how to define the page as the app doesn’t appear to “bring a key” with it to the new view.

This is a continuous problem I have been having as I build my app. I have posted about this problem in the past.
Since then I have created other actions and remove the last new button from the view by creating slices and then placing a new button on the previous screen with a custom action to prevent users from using this action. However this is a very cumbersome and time intensive procedure.

Ah, yeah… I myself find that somewhat arcane and unpredictable. I’m afraid I cannot offer any guidance here. :frowning:

@Steve Do you know who I could bother to get more attention to this?

Here is a video of my problem.

Here is a video on how I solved the problem in the past. However this does not solve the problem easily and requires making actions and slices and removing the new button for each time the table is referenced.

This solution would also require me to either make a video or explain to users how to add a contact.

As far as I see various exchanges and your short movie you posted here, I did have one observation, which I hope could be well founded.

When you have parent, child relationship between tables, you will have details for parent row and then the list of the child table row under that. That is default and standard detail view with ref type (list) to access to child table.

So called “Inline view”, we have view (n) and New button, depending on the right to that table. For instance, the child table is view only, we only have view button. If we are able to add row to child table, then we have New button to add new row.
In this context, when we hit New button, the Appsheet is wise enough to add the ID for parent table which is ref type to connect this particular new child row to parent. I assume your parent table have Workorder as a key ? Am I correct?

Then on that new child row you should have Equipment filed. This should be ref to another master table storing data for “Equipment”. Equipment table has ref connection with your Child table. When you dont see the “equipment” from the dropdown list, then you give right user to add the new one to equipment table.

Then this is a point. You dont have direct relationship between equipment master table and your child table. So when you try to add new row to equipment table, Appsheet has no way to prefill “Customer Location” filed in equipment table.

I m now thing of why you need to capture “Location” data in your master table for equipment?
User could realize where it is when they access to your child table where the location data is already captured. The listed equipment should be there as far as they are listed down there.


1 Like

Hi, @tsuji_koichi ,

Yes your description is correct. What I am wondering is why appsheet is unable to do this? I want the user to be able to add equipment from this view and not have to go to the location to add new equipment.

To answer your question the reason why I need to capture “location” data in my equipment master table is because the equipment is owned by the “location” and furthermore owned by the “customer” who has multiple “locations”. So when I look at a “customer” I want to be able to see all equipment owned by that “customer” sorted by each “location” the “customer” has. Or just be able to see all “equipment” owned by that “location”.

Is there anyone who is aware of a work around for this?

Thanks Josh

@Steve @tsuji_koichi

I think then you may need to reconsider the data schema ?

Is there a way that you would phrase this in a way that people in the user community would understand as a feature request?

To have the ability to add a child table entry with new button?

Sorry my knowledge is limited but I believe Appsheet should be able to do what I want to do.

Thanks again.

Josh, without fully submerging myself into your data to recommend a restructure, the main problem is, and no feature request will change it, you can’t dereference a dereference. Thus, AppSheet won’t bring grandparent information down to the grandchildren. That won’t change. But there is always different routes to the same destination.

Double Dereference Expressions

You cannot dereference a dereference.

For example, you might have a three level hierarchy consisting of a Customer record, a child Order record, and a grandchild Order Detail record. The Order Detail record contains a Reference to the Order record. The Order Detail record contains a Reference to the Order record.

From the Order Detail record, you can access the value of a column in the Order record using a Dereference expression as described above.

From the Order Detail record, you cannot directly access the value of a column in the Customer record by chaining dereference expressions. That is, you can’t dereference from the Order Detail record to the Order record, and then dereference from the Order record to the Customer record in a single expression.

However, from the Order Detail record you can indirectly access the value of a column in the Customer record. Do this as follows:

  1. Create a new virtual column in the Order Detail record that will serve as a Reference to the Customer record. For example, you might call the virtual column CustomerRef .
  2. In the AppFormula of the new virtual column enter an expression that copies the value from the Reference column in the Order record. Consider the Order Capture sample app. In it, the AppFormula in the new Order Detail virtual column would be [Order Id].[Customer Name] , where [Order Id] is the name of the Reference column in the Order Detail record that refers to the Order record,and [Customer Name] is the name of the Ref column in the Order record that refers to the Customer record. This expression copies the value of Customer Name Reference column to the new virtual column in the Order Detail record.
  3. Ensure that the type of the new virtual column is Ref and the Referenced Table is the Customer table.

In the Order Detail workflow template, you can now refer to column names in the Customer table be dereferencing the new virtual column. For example, if the new virtual column is called CustomerRef , you can retrieve the customer’s email address using this expression. [CustomerRef].[Email]


This 3 tier hierarchy you want to do is totally feasible, but you might have to think a little outside the box. Reanalyze your table structure and column layout. See if you can use this example to help. If you want any suggestions, I’d be happy to look at your overall table structure if you send screenshots (both in the editor and the spreadsheet) with some sample data filled in.

1 Like