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.
Solved! Go to Solution.
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.
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
Hope it helps to give you an idea how to go about it,
R
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.
That might be an option. I appreciate you sharing the code behind it as well.
hi @BenzGuy whats is the type of your stock numbers?
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?
No they aren't.
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
Hope it helps to give you an idea how to go about it,
R
Thanks another idea to tinker with.
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)