Показать сообщение отдельно
Старый 07.09.2005, 11:16   #8  
Alterant is offline
Alterant
Участник
 
378 / 10 (1) +
Регистрация: 31.03.2004
RecordRef является указателем. При присваивании одного RecordRef другому они начинают указывать на одну и ту же таблицу (переменную типа Record), естественно в одной и той же фирме.
Копировать RecordRef можно только по полям.

DUPLICATE создает новую переменную типа Record в той же фирме и делает на нее указатель.

Вместо
<div class='CALtop'>C/AL</div><div class='CAL'>
FieldTable.RESET;
   FieldTable.SETRANGE(TableNo,TableID);
   IF FieldTable.FIND('-') THEN BEGIN
     REPEAT
       FromFilds:= FromTable.FIELD(FieldTable."No.");
       ToFields:=ToTable.FIELD(FieldTable."No.");
       ToFields.VALUE:=FromFilds.VALUE;
     UNTIL FieldTable.NEXT=0;
   END;
</div>

мне кажется лучше использовать:
<div class='CALtop'>C/AL</div><div class='CAL'>
for i := 1 to FromTable.FIELDCOUNT do begin
 FromFilds := FromTable.FIELDINDEX(i);
 ToFields := ToTable.FIELDINDEX(i);
 ToFields.VALUE := FromFilds.VALUE;
end;
</div>