cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Frequent Visitor

How to display in ViewForm only one row from the data source?

Hi,

            I'm want to know whether is there a way to display only one row of data from data source into a VIEWFORM, without using Gallery to select the from the entire table of data one by one. 

           To be more detail, in a empty screen, I only need a "Display Form" where it only shows data from one row in a table, without the use of gallery. I tried it with gallery and selected the data I want to display in the form and set the visibility of the gallery to FALSE, but when I save and open the screen back, it always displays the first row data in the table.

Please help me out, Thank you.

10 REPLIES 10
Highlighted
Resolver II
Resolver II

Re: How to display in ViewForm only one row from the data source?

@rgane Gallery will always have the first raw selected when there was no previous interactions.

There is the option you could use the  functions to extract exactly one item:

First(- that extract first item form DS

Last(- that extract last item from data source 

 

Not sure how you would like to provide the information with which item you want to work?

You could use the query string and read the parameter. Lets say that you are doing that and the parameter will be ID, then you can view that item by:
First(Filter(dataSource,ID=Value(Param(ID))))

The value function is added to match the types ID is int and Param returns string.

 

Alternative approach would to give User ability to insert ID to text control at the top of the Screen, the syntax will be almost the same:
First(Filter(dataSource,ID=Value(TextControl.Text)))

 

If you need to cover different scenario I'm happy to help.

 

Hope it make sense - please let me know if you need more details if not please mark this as the solution to your problem.

 

Ps. If you are using SharePoint you can use Customized Form and SharePoint integration will connect Form with Selected item for you = no gallery required.

Highlighted
Frequent Visitor

Re: How to display in ViewForm only one row from the data source?

@365CornerDawid Actually the data source I'm working with is a Survey where the table has 3 columns which is (Question ID, Question, Criticality), under this table the data data will be like (1.1, XXXXXXX, Major) and the data continues around 25 questions. So in each page I have to display only one question which means only one row of data. i tried the method you mentioned and ending up with error. Any other way ? Sorry as I can't  attach any images as I'm working with confidential files. 

Thank you

Highlighted
Super User
Super User

Re: How to display in ViewForm only one row from the data source?

@365CornerDawid and @rgane

I would like to add a minor statement/correction.

A gallery doesn't always have to select the first record. The default property can be set to {} so no record is selected by default.

Also the default property could be used to set the default value of a gallery to a particular value by using LookUp as an example.

Similarly, Last and First are not the only ways you can use to extract one time. A LookUp is a perfect example.

For example to get the record that was just created by a form, you can do
LookUp(DataSource, ID = Form.LastSubmit.ID)

Let me know if this helps.

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution.

Thanks!
Hardit Bhatia
The Power Addict
https://thepoweraddict.com
Highlighted
Resolver II
Resolver II

Re: How to display in ViewForm only one row from the data source?

@rgane my method was in general working items.

What is your data source? 
Is the Survey questions as separate list with 25 items? And Questions Answers are stored separately?

 Or This is like one huge list and you are wondering how to display data cards of the Form?

Highlighted
Super User
Super User

Re: How to display in ViewForm only one row from the data source?

@rgane,

If you know which question to display on each page, you could simply do this:

Page1:
First(Sort(Datasource, QuestionID, Ascending))

Page2:
Last(FirstN(Sort(Datasource, QuestionID, Ascending)))

And so on....

Hopefully this gives you an idea as to how to fetch the records you want on each page.

---
If you like this reply, please give kudos. And if this solves your problem, please accept this reply as the solution.

Thanks!
Hardit Bhatia
The Power Addict
https://thepoweraddict.com
Highlighted
Microsoft
Microsoft

Re: How to display in ViewForm only one row from the data source?

Agree with @PowerAddict , @365CornerDawid said.

You can use Filter, First or other formula to select one row from your data source.

And another question is how you will show the data, with what compoent? if you don't use gellary, you should choose others, like data table, label.

 

For example, if I have a data source(Vacation Data), a list from SharePoint, it contains many columns: name, AvailableLeaves, TotalLeaves.

And I can add a Label control, the text property equals: First('Vacation Data').AvailableLeaves

It will show the data value of AvailableLeaves field, in the first row. 

Or you can use a datatable control to render the data, set the Items property to First('Vacation Data')

 

You need 2 steps:

1. select the row you prefered from the data source

2. choose the control to show the data

Highlighted
Resolver II
Resolver II

Re: How to display in ViewForm only one row from the data source?

@PowerAddict 
Assume you where thinking about: 
Page 2
Last(FirstN(Sort(Datasource, QuestionID, Ascending),2))
Page 3
Last(FirstN(Sort(Datasource, QuestionID, Ascending),3))
Etc
That will then create static solution.
@rgane 
Think there is alternative for that and to keep 25 screens where you need to display question and answer feeling that this might be heavy to maintain.
What if the Questions are collected and Collection is extended with two properties: ID and Answer
You could then build gallery which display only one question at time.
Button in gallery to capture answers:

Patch(colPytaniaIOdpowiedzi,ThisItem,{Answer:TextInput2.Text});Reset(TextInput2)


Two icons/bottons Next and Back which would increment the variable 1-25 

Select(btnRun);UpdateContext({varStep:varStep+1});

Back

Select(btnRun);UpdateContext({varStep:varStep-1})


Gallery would display only single item at time thanks to the increment variable.

Filter(colPytaniaIOdpowiedzi,ID=varStep)


Thanks to that you could say in single screen in one gallery and manage one collection 🙂 this might looks harder to apply but can paid off later on:)
 

Highlighted
Super User
Super User

Re: How to display in ViewForm only one row from the data source?

@365CornerDawid there is always a better solution 🙂 Just trying to throw some ideas out there to get the juices flowing 🙂

Doesn't the above approach assume that the ID of the questions are in the same order as the order of the screens?

Again, no right or wrong answer. Just as how every answer can have a better answer 🙂

Thanks,
Hardit Bhatia
https://thepoweraddict.com
Highlighted
Resolver II
Resolver II

Re: How to display in ViewForm only one row from the data source?

@PowerAddict think your solution is very good for person who is starting the Power Apps journey, for sure much easier to setup 🙂 couple my friends did it like that and it worked fine.

Based on that I challenge myself if there is other way to do it and come out with idea to keep it in gallery. 
I'm considering my as the alternative only:)

Doesn't the above approach assume that the ID of the questions are in the same order as the order of the screens?

Was thinking to keep the Questions as separate list and have the control over the questions order in column used for the ID's thanks to that if something will change in the Survey you can apply quick change. And you can move forward to add fields like active to have even grater control over the questions.


Again, no right or wrong answer. Just as how every answer can have a better answer 🙂


Agree 1000% I'm just trying to throw the ideas and learn at the same time 🙂 It is awesome - just second day here but already learn new stuff 🙂 The community is awesome a lot of great questions and people willing to help like you:) 

 

Helpful resources

Announcements
secondImage

New Return to Workplace

Reopen responsibly, monitor intelligently, and protect continuously with solutions for a safer work environment.

Experience what’s next for Power Apps

Join us for an in-depth look at the new Power Apps features and capabilities at the free Microsoft Business Applications Launch Event.

Check this Out

Helpful information

Featuring samples like Return to the Workplace and Emergency Response Applications

secondImage

Power Platform 2020 release wave 2 plan

Features releasing from October 2020 through March 2021

Top Solution Authors
Top Kudoed Authors
Users online (8,348)