Здравствуйте, уважаемые эксперты!
Есть 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: Пользуемся тегами!
Это работает, но только не для записей имеющих "родителей", копируется запись на строку ниже копируемой. Помогите пожалуйста разобраться или подскажите иной способ.