Duplicating records - Keep some data and clear/reset other data
I want to be able to duplicate a record, but only keep some of the data in some of the fields (all sorts of field types).
I'm using these records as templates, keeping the necessary data while clearing out the other fields.
Example 1: One field is a Yes/No field that I use as a record lock. When this record gets duplicated I want to unlock it (change from "Yes" to either "No" or "empty".
Example 2: One field is a table reference (associating a customer) that I want to disassociate in the duplicated record.
Any help on this would be GREATLY appreciate!
Thank you in advance!
12 replies
-
You can use something like this:
let d := duplicate(this);
d.('Yes / No' := false);
d.(Customer := 0);
popupRecord(d)This will duplicate the record and empties the fields: 'Yes / No' and Customer.
Αll other fields will be cloned.
-
Excellent! Thank you for your response.
Can you please tell me exactly where this code goes into each field setup? (e.g. Trigger after update, Display field on if?)
Again, thank you in advance!
-
Create a button i.e. Duplicate and enter the code in the 'On click' box.
-
Got it! Fantastic!! Thank you!
-
Interesting, It's possible use duplicathe (this) or similar function for duplicate a lot of select register?
-
This will duplicate ALL records in a table.
---
for i in select Table do
duplicate(i)end
---
I couldn't find a way to double only the selected/filtered entries, yet.
-
Thanks Nick I will test this, look, when you said "All records in a table",you know if is possible first apply some filters and only duplicate the selected register?
-
The idea is: I have one table with montlhy invoices and some of them need generate all month and the idea is applied one automatic process on close the month (all 30'th) for this reason I think one way maybe select all invoices from X month duplicated this and apply a masive update to this lot. Really I don't know the better way from resolve this monthly process.
-
As I set I'm trying to find a way to insert filters in the loop, but no success until now...
-
Hi Nick,
Please try this
__
let myMont := if month(today()) = 1 then 12 else month(today()) - 1 end;
let myYear := if month(today()) = 1 then year(today()) - 1 else year(today()) end;
for i in select Tabla1 where year('Invoice date') = myYear and month('Invoice date') = myMont do
let new := duplicate(i);
new.('Invoice date' := today())
end__
-
@alejako,
Great job!!!
(I didn't put the ends at the end of the variables...)
-
Thanks for all usefull information. Still a question: how can I include the following function: I want the duplicate record automatically contain a reference to the original record where it was copied from. How can I add this to the button script?
Robert
Content aside
- 4 yrs agoLast active
- 12Replies
- 3440Views