Создавать отдельный проект тоже громоздко, попробую тогда по функционально уточнить.
имеется таблица - porych_GD, в ней текстовое поле - nom_porGD.
nom_porGD допустим содержит следующие строки (номера поручений):
6
6.1
6.1.1
6.1.1.1
6.1.2
6.1.2.1
Нужно при добавлении (нового) поручения присвоить новый номер. Например выбираем в таблице 6.1 то новой записи должен присвоиться (которая на уровень находится ниже 6.1. т.е. будет являться подчиненной к 6.1.) номер 6.1.3, т.е. нужно проверить сколько у 6.1. есть подчиненных на уровень ниже и собственно сгенерировать следующий номер.
пока накидал такой запрос. но не совсем корректно работает ))
sss := poruch_gd.Edit1.Text +'.'; // копируем в переменную № выбранного поручения и добавляем точку (если выбрали №6 то в переменной будет 6.)
new_poruch_GD.Label20.Caption := IntToStr (SQLexecute('SELECT count(*) FROM porych_GD WHERE LOCATE (".",nom_porGD,"'+sss+'")=0 AND nom_porGD LIKE ("'+sss+'%")')) ;
new_poruch_GD.Edit13.Text := (poruch_gd.Edit1.Text + '.' + new_poruch_GD.Label20.Caption); // записываем в поле № задачи как - 1.1, 1.2.1, и т.п.