Home > Forum > Rules, JS, SQL > Deleting lines of a list, one by one

Deleting lines of a list, one by one
0

Hello,

I'm trying to create a more complex delete of line function.

To explain this briefly, I have a list, where I can't use the normal delete button. So instead, I'm adding one using a dataRow form field, where I call the JS function like this: deteteFunction(list ordinal number);
In this list there is a column called IsOld, and it's values can be OLD or NEW.
* If the line I want to delete has the value NEW in the IsOld column, then I want to just simply delete that line using the basic SubelementDelete(#{WFCON:2602}#, rowID); function.
* If the line I want to delete has the value OLD in the IsOld column, then I want to invoke a menu button and do something else which is not important right now.
Unfortunately what happens is looking like this:

ordinalNumber -- unimportantFormField(I'll just put number from 1 to 6 so it's easier to observe) -- isOld
1 -- 01 -- NEW
2 -- 02 -- NEW
3 -- 03 -- NEW -- THE LINE I'M DELETING
4 -- 04 -- NEW
5 -- 05 -- NEW
6 -- 06 -- NEW

First results will look good:
ordinalNumber -- unimportantFormField(I'll just put numbers from 1 to 6 so it's easier to observe) -- isOld
1 -- 01 -- NEW
2 -- 02 -- NEW
4 -- 04 -- NEW -- THE LINE I WANT TO DELETE THE SECOND TIME
5 -- 05 -- NEW
6 -- 06 -- NEW


Because the page is not saving, the ordinal number is not resetting,so results now after trying to detele the line where the unimportantFormField value is 04 will be:

ordinalNumber -- unimportantFormField(I'll just put numbers from 1 to 6 so it's easier to observe) -- isOld
1 -- 01 -- NEW
2 -- 02 -- NEW
4 -- 04 -- NEW
6 -- 06 -- NEW

because will actually delete the line where the ordinal number is 4, like originally, instead of deleting the new ordinal number which is 3 now....

Has anyone any idea how to solve this using JS? Version: 2023.1.2.68
Thank you!

MVP

Hi,
try this solution:
1. add a technical column of type "Data row" and define it as "OrdinarNumber".
2. pass the value of the technical column to the StergerAction function as a parameter
3. inside the StergerAction function you should make a for loop and go through all the elements and check if the technical column is equal to the passed parameter. If so, delete the row with id = i from the loop


-- edit --

ad 2. you can probably skip this point - as you do now it should be ok

Did you know that with WEBCON you can automate virtually any process? Even baking cookies 🍪
 
Speaking of cookies: we use the ones that are essential for our website to function properly, as well as additional ones that help us customize our content to your preferences. If you don’t mind cookies, click Accept. If you want to learn more, explore settings.
Settings