|
Как в форме добавить новую строку на верхний уровень непустого дерева значений? |
☑ |
0
Fragster
гуру
06.05.13
✎
20:20
|
Толстый клиент, как в форме добавить новую строку на верхний уровень непустого дерева значений? Добавляет на второй уровень :(
Пока сделал заляпуху с установкой текущей строкой строки верхнего уровня и копированием - но это бред же...
|
|
1
Fragster
гуру
06.05.13
✎
20:23
|
Добавлять строку в данные не вариант, потому что тогда отмена редактирования не работает.
|
|
2
drongo-god
06.05.13
✎
20:40
|
(0) Что ты имеешь в виду под "верхним уровнем"?
это первая строка в дереве или строка у которой нет владельца?
|
|
3
drongo-god
06.05.13
✎
20:41
|
(2) точнее "родителя"
|
|
4
craxx
06.05.13
✎
20:58
|
Стр=Дерево.Вставить(0)
не?
|
|
5
drongo-god
06.05.13
✎
21:03
|
(4) А что будет со строкой у которой был индекс 0?
|
|
6
Fragster
гуру
06.05.13
✎
21:04
|
(2) строка у которой нет родителя
(4) как это решит проблему интерактивности? т.е. при нажатии на esc строки как и не было?
|
|
7
ПесняПроЗайцев
06.05.13
✎
21:56
|
Внезапно: дерево.добавить
|
|
8
ПесняПроЗайцев
06.05.13
✎
21:57
|
*строки.добавить )
|
|
9
Fragster
гуру
06.05.13
✎
21:58
|
(7) Еще раз. Нажми инсерт в таб. поле - попадаешь в режим редактиварония строки. Нажми эскейп - строки как и не было.
|
|
10
Fragster
гуру
06.05.13
✎
21:58
|
мне нужно такое же поведение, но чтобы на "0" уровне строка добавлялась
|
|
11
ПесняПроЗайцев
06.05.13
✎
22:04
|
(9) не путай тп, данные, и собственно принцип работы тп.
|
|
12
Fragster
гуру
06.05.13
✎
23:00
|
(11) это ты не путай. мне нужно именно поведение формы.
|
|
13
Dethmont
07.05.13
✎
02:57
|
Строки = ДЗ.Строки;
Стр = Строки.Добавить();
МаксимальныйИндексСтрокВерхнегоУровня = ДЗ.Строки.Количество()-1;
Строки.Сдвинуть(Стр,-МаксимальныйИндексСтрокВерхнегоУровня);
|
|
14
MSII
07.05.13
✎
07:11
|
(12) А если перед началом добавления присвоить Родителю Неопределено, не то самое поведение получится?
|
|
15
chelentano
07.05.13
✎
07:20
|
(12) сразу добавить какую-нибудь строку 1-го уровня, которой будут подчинены все твои строки
|
|
16
kosts
07.05.13
✎
07:58
|
Может так как-то? Но не уверен, что сработает...
Процедура ТабличноеПоле1ПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель)
Отказ = Истина;
Строка = ТабличноеПоле1.Строки.Добавить(); //Добавить куда нужно
ЭлементыФормы.ТабличноеПоле1.ИзменитьСтроку();
СвояНоваяСтрока = Истина;
КонецПроцедуры
Процедура ТабличноеПоле1ПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
Если СвояНоваяСтрока и ОтменаРедактирования Тогда
// Удалить строку
КонецЕсли;
КонецПроцедуры
|
|
17
Fragster
гуру
07.05.13
✎
11:13
|
(16) да, подобная заляпуха работает. лучше, чем вариант с копированием, но все равно страшный.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший