26.05.2010, 16:48 | #1 |
Участник
|
Пока не понял зачем код, выделенный жирным нужен без фильтрации или ключа??
ReqLine.RESET; ReqLine.GET("Worksheet Template Name","Journal Batch Name","Line No."); WHILE (ReqLine.NEXT <> 0) AND (ReqLine.Level > Level) DO ReqLine.DELETE(TRUE); |
|
26.05.2010, 17:24 | #2 |
Участник
|
Если учесть что Level это отступы, а отступы обозначают вложения, то логично предположить, что данный код убивает все вложения (в том числе и вложения вложений) у записи взятой GET'ом
|
|
26.05.2010, 17:57 | #3 |
Administrator
|
имхо, гетит строчку в середине таблицы и грохает записи нижее, которые по условию подходят.
но ключик я бы установил заранее... |
|
26.05.2010, 19:25 | #4 |
Участник
|
Цитата:
И ни ключика, ни фильтра там нету Поэтому если запись находится в середине таблицы, то хорошо, если нумерация была последовательная - "сначала Заголовок, потом все строки для заголовка, а затем следующий заголовок.." P.S. Я сначала думал может я совсем постарел (и как думал - пошел на пенсию), но потом вспомнил про форум.. |
|
27.05.2010, 10:39 | #5 |
Участник
|
Мужики, вы чего? 0_о
Судя по этому куску это что-то типа удаления пункта меню. За ним должны удалиться все его дочки. Пример (см. Рис.): Если мы хотим удалить пункт Запись 2, то этот код удалит ровно все его вложения (Вложение 2.1, Вложение 2.1.1, Вложение 2.2). Вложения всегда идут следом за родителем в первичном ключе. И это не "Хорошо, если...", это так должно быть по стандарту. Здесь ведь нет явного указания на родительскую строку. Если они будут не по порядку, то наступит ХАОС ну и где-то замаячит конец света А как нас уверяют это произойдет только в далеком 2012-м Если поставите там ключ другой или фильтр, то удалятся все вложения! В том числе и чужие! |
|
27.05.2010, 12:45 | #6 |
Administrator
|
согласен
WHILE ReqLine.Level > Level не позволит удалить все ниже. с картинкой стало понятнее спасибо! |
|
28.05.2010, 10:38 | #7 |
Участник
|
Поскольку это поле появилось в 246 табличке одновременно с появлением в Navision формы "Планирование Заказов" (и используется для создания отступов в ней), предположу, что именно для нее оно и было создано. В этой форме по нажатию плюсика раскрывается детализация заказа. Она всегда ниже его самого. Логично, что если строка заказа удаляется из таблицы, то и его детализация (имеющая больший номер уровня) должна удалиться тоже.
|
|
01.06.2010, 14:36 | #8 |
Участник
|
Ещё и с рекурсией.
|
|