2012-07-19 7 views

Antwort

9

Try this:

newTable = originalTable; 
info(strfmt('%1 %2', newTable.recId, originalTable.recId); 

newTable.data(originalTable); 
newTable.insert(); 
info(strfmt('%1 %2', newTable.recId, originalTable.recId); 

Sie werden sehen, dass die erste Anweisung erstellt nur noch einen Zeiger auf bestehenden Datensatz. Die zweite erstellt eine neue Kopie des bestehenden Datensatzes.

+8

+1. Ich füge hinzu, dass, wenn Sie Systemfelder nicht von einem Datensatz in einen anderen kopieren möchten, sondern nur Felder mit einer funktionalen Bedeutung (d. H. Felder, die Sie im AOT sehen können), verwenden Sie buf2buf() anstelle von data(). – Max

+1

ah okay, wirft die Frage, warum es nicht so offensichtlich wie .copy() genannt wird – AnthonyBlake