I'm trying to use a button to navigate to another screen (Company Detail screen). The button should take the value from a cell in the start screen, say "Acme" in cell [Company] and when you click the button it navigates you to the new screen and puts the value, Acme (=$[Company]) into the drop-down data cell in the new screen (=$[InputRow]). I have the button navigating and putting the value in the InputRow data cell which controls the dropdown, but it isn't actually selecting the value in the dropdown.
Having the new screen see that the dropdown (InputRow) has an entry selected is key as the rest of the page displays data relative to what is chosen in the dropdown, which in this case is a company name with the company profile under it.
So, any way to have a button enter the data in the dropdown field and have the field actually recognize an entry was made/selected so the new page updates accordingly?
When you select the next screen, do not forget to set variable to pass current row to the variable $[InputRow] in your Navigate action. Once you do this, you should be able to display data relative to what you chose in previous screen.
I've tried it with THISROW() (first screenshot) and also using the data cell reference, which in this case is =$[Opportunity Name] (second screnshot). Neither works. Screenshots attached of the setup and the end result which is a page where the value is in the dropdown/picklist filter but the value isn't really selected in the picklist so the rest of the page doesn't display what it should - essentially a blank page with no data (third screenshot). I then I have to go to the drop down to select the item. It is the latter part I need to have to avoid doing. Need the picklist to have the data and be "selected" on that value (fourth screenshot where I manually selected the item). And when I use THISROW I think I get an error vs just a blank page.
I am guessing it is most likely a mismatch between what you are sending and what the picklist expects. Would you please share the screenshot of the picklist on the detail page to make sure its pulling from list of companies, and the cell that contains the company info on the main screen? It'll be also good to see if the main page is a list or just a form.
Hi @Allen, thought I'd chime in here to see if I could provide any further help. As @Khushboo had mentioned, we've seen this happen with mismatches but it's odd that according to your screen shots there shouldn't be a mismatch. Here's how it should work...
Check the properties of the data cell doing the filtering (InputRow). As the below picture shows, the format should be Rowlink and the source type should be Table, and then the whatever table you are referencing.
Lastly, try temporarily creating a separate variable data cell in the detail screen. Have your initial screen send over the =THISROW() to the new variable data cell. Run the app and see if the variable is properly populated with the source list item.
This is the pick list on the details page - and this this works fine (just doesn't work when navigating to it from another page)
Next screenshot if the form where the value is coming from and the field that is edited by the user. It is this field that I want written to the opportunity detail table, which it does, and then navigate to the detail page (from #1 above) and set the value of the picklist in the detail page to the newly added item.
Third screenshot is the button action. I've only captured the "next screen" actions as the prior actions, writing to the tables, work fine and are too long to capture. So this step should write the "Opportunity Name" to the InputRow in screenshot #1 which then should select that item in the picklist which then controls the display of the next page. I usually get a #VALUE error.
Thanks - some of your functionality works for me, particularly the video you showed where you can navigate. My current issue appears to be a bit different.
What I'm trying to do is have a form for users to enter a new opportunity. They ideally do this by inputting a name in a form. User then clicks submit. This writes the value to the table. Submit button also navigates to the opportunity detail page where the user can see all fields related to the opportunity that they can then complete/edit. Another use case is if I'm entering people into a contacts Db. The "input form" could just be the person's name. Clicking submit takes you to a detail page that is controlled by a picklist list so when clicking submit the button navigates to the page and selects the new contact in the picklist.
I cannot get the navigating to the new page, which has a picklist, to show the new entry in the picklist. I get a #VALUE error.
With regard to your suggestions:
I did confirm the Block's data source is InputRow on the details page
The InputRow properties are a Rowlink, but not to a table. It is to a Filter so that the dropdown is sorted alphabetically. Assume that is not the issue. My filter is: "=Filter(p_Opportunities,"ORDER BY p_Opportunities[Name] ASC")" If I were to just use the table vs a filter then the table would be p_Opportunities
The temporary field test you referenced works fine - it is setting the value of the picklist that seems to be the core of the issue as it isn't working. Again, writing to the value of the picklist (ie writing to InputRow) seems to be a different action than choosing an item in a picklist. Just my nontechnical guess.
...by inputting a name in a form. User then clicks submit. This writes the value to the table. Submit button also navigates to the opportunity detail page where the user can see all fields related to the opportunity that they can then complete/edit.
Add a screen "OppDetail", add a data cell, name it $[oppRow], and set it as a variable. We'll need to pass a rowlink into this later.
Add another screen "NewOpp", add a data cell, name the data cell $[oppName].
Change $[oppName] to a variable. This allows the cell to actually hold a new value that can be passed into the automation.
Add a button, and add an automation to the button.
Button Automation steps: A) Add row to table, take data from $[oppName] and write to =[column]. Of course, change the word column to match your column name. . B) Navigate to: "OppDetail". Set variable $[oppRow] to =findlastrow(table). Replace 'table' with the name of the table you're adding to. This is the crucial step that will find the row that was just added in step A, and then pass that entire row into the variable oppRow we created on the first page.
Back to the "OppDetail" screen. Add a new block. Set the source of the block to $[oppRow].
Now, add data cells for each column. Mark them as editable. The source for each will be a simple column reference like =[column]
Test it in the app, and make sure everything works.
Select the block that holds the $[oppRow], and set visibility to =false.