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

Canvas App Form Bulk Items

I have a canvas app that takes sales data from a form and pushes it to Sharepoint Online List. One department has a need to add say 20 records at a time all data is the same except for a Stock number. This is easy in excel as a user can drag to copy field values down a list. What I have been doing is manually copying and pasting directly into the Sharepoint List. I am hoping there might be a solution to have the user input the data themselves freeing me up for other things? Thanks for any help in advance.

2 ACCEPTED SOLUTIONS

Accepted Solutions
rbrooks66
Resolver I
Resolver I

This is probably not as easy as the ability to copy in Excel, but I have a similar need where a user is inputting data and could possibly need to input more than one record during a session.  I created 2 additional buttons (Reset and Keep Client) to allow the user to reset all fields or keep the fields that are going to be the same.  In my instance there are only 3 fields that are retained but you could just only reset the field that is going to change.

 

Screenshot 2022-06-29 155544 Keep Client Button.png

 

Screenshot 2022-06-29 160017 Keep Client Logic.png

View solution in original post

rubin_boer
Super User
Super User

you have a few way then to go about this. a form is great to submit a single record, you can tweak it for multiple rows but it i snot the intent of that control. if  the number were sequential you could do a forall and patch them etc.

 

There are two ways i suggest to go about this:

1. Submit your data and set a variable on it OnSuccess to capture the LastSubmit. the user will have to change the stock number and submit it. this can be  done in various ways.

2. Use a gallery and when the users needs 10 entries set all the controls to the same value except for the stock numbers.

 

Here is an example for option 2

add a gallery

The gallery is connected to a collection (colW) that will have a single entry

ClearCollect(colW,{entry: "10"}) //just a placeholde "10"

The user complete it and patch the SP list as usual

When the users want multiple entries the user enter the total they want and create more

Collect(
    colW,
    ForAll(
        Sequence(
            TextInput14.Text,
            1
        ),
        {entry: Text(TextInput12.Text)}
    )
)

colW is the initial collection to be used to patch the SP list. 

TextInput14.Text is where the user enter how many records

 

Result

Peek 2022-06-29 23-04.gif

 

Hope it helps to give you an idea how to go about it,

R

 

 

 

hey there if you liked the post give it a thumbs up, and if it solved your question please accept it as a solution.

View solution in original post

9 REPLIES 9
rbrooks66
Resolver I
Resolver I

This is probably not as easy as the ability to copy in Excel, but I have a similar need where a user is inputting data and could possibly need to input more than one record during a session.  I created 2 additional buttons (Reset and Keep Client) to allow the user to reset all fields or keep the fields that are going to be the same.  In my instance there are only 3 fields that are retained but you could just only reset the field that is going to change.

 

Screenshot 2022-06-29 155544 Keep Client Button.png

 

Screenshot 2022-06-29 160017 Keep Client Logic.png

BenzGuy
Frequent Visitor

That might be an option. I appreciate you sharing the code behind it as well. 

rubin_boer
Super User
Super User

hi @BenzGuy whats is the type of your stock numbers?

hey there if you liked the post give it a thumbs up, and if it solved your question please accept it as a solution.
BenzGuy
Frequent Visitor

Single line of text on SP List. Its 6-8 digits text and numbers.

tnx @BenzGuy and the sequence which you wish are the numbers. e.g. when you have ABC1001 you will need ABC1002-21?

hey there if you liked the post give it a thumbs up, and if it solved your question please accept it as a solution.
BenzGuy
Frequent Visitor

No they aren't.

rubin_boer
Super User
Super User

you have a few way then to go about this. a form is great to submit a single record, you can tweak it for multiple rows but it i snot the intent of that control. if  the number were sequential you could do a forall and patch them etc.

 

There are two ways i suggest to go about this:

1. Submit your data and set a variable on it OnSuccess to capture the LastSubmit. the user will have to change the stock number and submit it. this can be  done in various ways.

2. Use a gallery and when the users needs 10 entries set all the controls to the same value except for the stock numbers.

 

Here is an example for option 2

add a gallery

The gallery is connected to a collection (colW) that will have a single entry

ClearCollect(colW,{entry: "10"}) //just a placeholde "10"

The user complete it and patch the SP list as usual

When the users want multiple entries the user enter the total they want and create more

Collect(
    colW,
    ForAll(
        Sequence(
            TextInput14.Text,
            1
        ),
        {entry: Text(TextInput12.Text)}
    )
)

colW is the initial collection to be used to patch the SP list. 

TextInput14.Text is where the user enter how many records

 

Result

Peek 2022-06-29 23-04.gif

 

Hope it helps to give you an idea how to go about it,

R

 

 

 

hey there if you liked the post give it a thumbs up, and if it solved your question please accept it as a solution.
BenzGuy
Frequent Visitor

Thanks another idea to tinker with.

BenzGuy
Frequent Visitor

Thanks for all the help I got it figured out. For future reference...

 

Here's my form (clean up still needed). Fill out the form, Add Next sends it to collection in a table below for easy tracking. When done Save All sends to SP List. Had to figure out the Year field to Patch to SP List. The table had it as Text, SP List is a Number. 

 

Here's the code for Add Next 

Collect(FleetDeal,DeliveryDate:DataCardValue81_2.SelectedDate,StockNumber:DataCardValue95_1.Text,CustomerName:DataCardValue79_1.Text,SalesRep1:DataCardValue102_1.Text,Year:DataCardValue94.Text,Model:DataCardValue106_1.Text,Program:DataCardValue221_1.Text,Notes:DataCardValue227_1.Text,DDR:DataCardValue258_1.Text});Set(ResetStockNumber,true)

 

Here's the Save All code

ForAll(FleetDeal,Patch('My SP List Name',Defaults('My SP List Name'),{DeliveryDate:DeliveryDate,StockNumber:StockNumber,CustomerName:CustomerName,SalesRep1:SalesRep1,Year:Value(Year),Model:Model,Program:Program,Notes:Notes,DDR:DDR}));Clear(FleetDeal);ResetForm(Form2)

 

Screenshot 2022-07-08 141932.jpg

Helpful resources

Announcements
Ignite 2022

WHAT’S NEXT AT MICROSOFT IGNITE 2022

Explore the latest innovations, learn from product experts and partners, level up your skillset, and create connections from around the world.

Power Apps Africa Challenge 2022

Power Apps Africa Challenge

Your chance to join an engaging competition of Power Platform enthusiasts.

Super User 2 - 2022 Congratulations

Welcome Super Users

The Super User program for 2022 - Season 2 has kicked off!

September Events 2022

Check out all of these events

Attend in person or online, there are incredible conferences and events happening all throughout the month of September.

Users online (2,871)