cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

Show all items in a Combined Collection

Hi everyone,

 

I have a collection containing two combined sharepoint lists and I would like to display them into a gallery for viewing/editing.

ClearCollect( ColCombinedSPLists, AddColumns( SPList1,
"Combined", LookUp( SPList2, REQID = SPList1[@REQID]) ) )

 

The issue I am facing is that the LookUp function only pulls the first record where the REQID matches.

Some contain multiple records with the same REQID.

 

Is there any way to combine the two lists and show all of the records combined?

 

Thank You!

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted
Super User III
Super User III

Re: Show all items in a Combined Collection

Hi @Justin_Moz 

Sorry for the confusion.  Let's try to troubleshoot the formula by starting simple and building it up. Put a button on the screen with the OnSelect property 

 

ClearCollect(colTest, GroupBy( 
                                RenameColumns(
                                              Parts, "Reg_Num", "Reg_Number"
                                    ),
                                     "Reg_Number", "RestOfData"
                           )
}

 

Put a gallery on a screen and  make its Items property colTest.  Put a label in the gallery with a Text property  ThisItem.Reg_Number.

Then add another gallery inside of the first gallery and resize it so it doesn't fill the whole space.  Make its items property RestOfData.  Adding Items to this inside gallery should give you the rest of the items in Parts.  Please see if that works. 
In my example below i have a list of contacts called FakeNames.   I created a collection (formula inside the button and  renamed the city to thiscity. I then grouped on thiscity and collected the results in colTestsubgallery.png.  The outer gallery Items property is colText.  The inner gallery is resized colored green and its items property is restofdata.  The label in the outer gallery is ThisItem.thiscity.  This would be analogous to your Parts list and exposing the "Reg_Number" in the outer gallery.  Hopefully, this will get you to the same point as in my illustration. Let me know if this works please.

View solution in original post

18 REPLIES 18
Highlighted
Super User III
Super User III

Re: Show all items in a Combined Collection

Your formula looks fine. Can you show sample tables

------------

If you like this post, give a Thumbs up. Where it solved your request, Mark it as a Solution to enable other users find it.

Highlighted
Helper I
Helper I

Re: Show all items in a Combined Collection

Yes, it works fine except it's only collecting the first record that matches, not all of them.

I've attached an example of what SPList2 would look like.

2020-07-14_15h38_39.jpg

Highlighted
Super User III
Super User III

Re: Show all items in a Combined Collection

@Justin_Moz 

You could use GroupBy() to group the SPList2 on REQID and then Use AddColumns() to add back in items from SPList1.  Something like

 

ClearCollect(ColCombined, 
            AddColumns(
                       GroupBy(
                               SPList2, "REQID", "RestofData"
                         ),
                           "alist1Item", Lookup(
                                                 SPList1,REQID = SPList1[@REQID],alistItem
                                           )
              )
)

 

 

To visualize the data, you could create a gallery on ColCombined and a subgallery on "RestofData" to show the items from SPList2.

or just use AddColumns() to SPList2 using Lookups to SPList1

 

ClearCollect(
              ColCombined, 
                            AddColumns(
                                       RenameColumns(
                                                      SPList2, "REQID", "List2ID"
                                         ),
                                        "Title", Lookup(
                                                        SPList1,REQID = List2ID,Title
                                                  )
                             )
)

 

As many columns from SPList1 can be added with the AddColumns() function as you want.   The RenameColumns() function in the formula is used for disambiguation since it appears that REQID is the same column name in both lists.

 

Highlighted
Helper I
Helper I

Re: Show all items in a Combined Collection

@Drrickryp  Thanks for the response!

However, I'm receiving the following error when I try to recreate the first portion.

There must be something I'm missing.

Part_Requests = SPList1

Parts = SPList2

2020-07-15_09h05_56.jpg

Highlighted
Super User III
Super User III

Re: Show all items in a Combined Collection

Hi @Justin_Moz 

It could be a disambiguation problem since you have the same name for the Reg_Num in both lists.  My suggestion would be to use the RenameColumn("Reg_Num","Reg_Number) inside the GroupBy() to avoid the ambiguity of having the same column name in two different lists. Then use the new name Reg_Number as the grouping column. 

ClearCollect(
             ColCombined, 
                          AddColumns(
                                     GroupBy( 
                                             RenameColumns(
                                                      Parts, "Reg_Num", "Reg_Number"
                                               ),
                                                  "Reg_Number", "RestOfData"
                                         ),
                                             Lookup(
                                                    Part_Requests, Reg_Num = Reg_Number, Description
                                               )
                             )
)

 

Highlighted
Helper I
Helper I

Re: Show all items in a Combined Collection

Hi @Drrickryp 

That doesn't seem to want to work for me either..

I've tried it a few different ways and can't seem to add the columns. 

Do I need to bring the parts list into a collection first?

2020-07-15_11h58_34.jpg

Highlighted
Super User III
Super User III

Re: Show all items in a Combined Collection

Hi @Justin_Moz 

Sorry for the confusion.  Let's try to troubleshoot the formula by starting simple and building it up. Put a button on the screen with the OnSelect property 

 

ClearCollect(colTest, GroupBy( 
                                RenameColumns(
                                              Parts, "Reg_Num", "Reg_Number"
                                    ),
                                     "Reg_Number", "RestOfData"
                           )
}

 

Put a gallery on a screen and  make its Items property colTest.  Put a label in the gallery with a Text property  ThisItem.Reg_Number.

Then add another gallery inside of the first gallery and resize it so it doesn't fill the whole space.  Make its items property RestOfData.  Adding Items to this inside gallery should give you the rest of the items in Parts.  Please see if that works. 
In my example below i have a list of contacts called FakeNames.   I created a collection (formula inside the button and  renamed the city to thiscity. I then grouped on thiscity and collected the results in colTestsubgallery.png.  The outer gallery Items property is colText.  The inner gallery is resized colored green and its items property is restofdata.  The label in the outer gallery is ThisItem.thiscity.  This would be analogous to your Parts list and exposing the "Reg_Number" in the outer gallery.  Hopefully, this will get you to the same point as in my illustration. Let me know if this works please.

View solution in original post

Highlighted
Helper I
Helper I

Re: Show all items in a Combined Collection

Hi @Drrickryp,

This is getting very close, nice work! Just not exactly the way I've intended.

I'd like to have all items in one gallery, that way I can filter it so a user can search for either a requestor's name from the Part_Requests list or a Part_Num from the Parts list. (Eventually being able to select a record and have it populate into text fields, but I can manage that portion later on.)

Looking at the code from your previous post, I'm a little unsure how I'd add the requestor info from the parts_request list.

2020-07-15_15h15_42.jpg

Highlighted
Super User III
Super User III

Re: Show all items in a Combined Collection

Hi @Justin_Moz 

You just about got it.  I wanted to make sure you got this far before finishing the formula.  You can add a label to the outer gallery and set the Text property to Lookup(Part_Request, reg_num=reg_number, Requester).  You can populate the outer gallery with other items in the Part_Request list by replacing Requester with another column name in your Part_Request list since the reg_number is now exposed. 
I'll play around with it a bit but I think you can wrap the groupby() function with AddColumns() and add the requester name to the collection using the Lookup(Part_Request, reg_num=reg_number, Requester).  Once the requester name has been added to the collection, it can be filtered using a textinput control.

I think the key to understanding how to do this is to start with the Parts list, expose the common field and to disambiguate it by renaming it and then using a Lookup() on the Part_Request list to add more fields from that list.  In database terms, it is using the Child table to expose the foreign key and then adding data from the Parent table. In  your case the Parts_Request is the one side of a one to many relationship with the many side being the Parts.  One request can have Many parts. 

If you are serious about becoming a PowerApps developer, I would refer you to my 5 part series on the principles of database design and how they apply to PowerApps starting with the first part of the series.  https://powerusers.microsoft.com/t5/News-Announcements/Database-Design-Fundamentals-and-PowerApps-An... 

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Find your favorite faces from the community presenting at the Power Platform Community Conference!

Watch Now

Experience what’s next for Power Apps

See the latest Power Apps innovations, updates, and demos from the Microsoft Business Applications Launch Event.

Power Platform ISV Studio

Power Platform ISV Studio

ISV Studio is designed to become the go-to Power Platform destination for ISV’s to monitor & manage published 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 (5,035)