Показать сообщение отдельно
  #1  
Старый 30.07.2010, 09:15
timkit timkit вне форума
Прохожий
 
Регистрация: 30.07.2010
Сообщения: 1
Репутация: 10
Сообщение копирование и вставка записей в cxDBTreelist

Здравствуйте, уважаемые эксперты!
Есть cxDbTreeList->ClientDataSet->данные из cds файла. Режим выделения записей cxDbTreeList - Multiselect. Как скопировать и вставить несколько выделенных записей в тот же cxDbTreeList? Пробовал следующим способом:

//Заполнение массива buffer индексами выделенных узлов cxDbTreeList
Код:
procedure InptData;
var
I: Integer;
begin
SetLength(buffer,300);
for I := 0 to cxDbTreeList1.SelectionCount-1 do
begin
buffer[i]:=inttostr(cxDBTreeList1.Selections[i].AbsoluteIndex);
ListBox1.Items.Add(buffer[i])
end;
end;
// Теперь вставляем записи с соответствующими данными выделенных узлов (с сопоставленными индексами из массива buffer)
procedure PasteData;
var
j: Integer;
begin
if Length(buffer)=0 then
exit else
for j := 0 to cxDbTreeList1.SelectionCount-1 do
begin
CL.AppendRecord([nil (здесь ключевое поле ID),ParentID, ==>cxDBTreeList1.Columns[2].Values[Strtoint(buffer[j])]]);
ProgressBar.Position:=j;
end;
buffer:=NIL;
end;
Admin: Пользуемся тегами!

Это работает, но только не для записей имеющих "родителей", копируется запись на строку ниже копируемой. Помогите пожалуйста разобраться или подскажите иной способ.
Ответить с цитированием