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
Microsoft 365 Conference – December 6-8, 2022

Microsoft 365 Conference – December 6-8, 2022

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.

Difinity Conference 2022

Difinity Conference 2022

Register today for two amazing days of learning, featuring intensive learning sessions across multiple tracks, led by engaging and dynamic experts.

European SharePoint Conference

European SharePoint Conference

The European SharePoint Conference returns live and in-person November 28-December 1 with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Power Apps Ideas

Changes to Ideas Coming

We are excited to announce a new way to share your ideas for Power Apps!

Top Solution Authors
Top Kudoed Authors
Users online (2,670)