|
Вывести дерево значений на форму | ☑ | ||
---|---|---|---|---|
0
abda123
24.08.15
✎
06:15
|
Доброго времени суток. Подскажите как вывести на форму результат запроса в виде дерева.
|
|||
1
abda123
24.08.15
✎
06:18
|
Вот как делаю. Добавил на форму табличное поле, тип дерево значений.
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КМРейсНаОтправку.Ссылка.Маршрут КАК Маршрут, | КМРейсНаОтправку.Ссылка.Фура КАК Фура, | КМРейсНаОтправку.Город КАК Город, | КМРейсНаОтправку.Ссылка, | КМРейсНаОтправку.КоличествоМест КАК КоличествоМест, | КМРейсНаОтправку.ВесПосылки КАК ВесПосылки, | КМРейсНаОтправку.Ссылка.ВремяЗагрузки |ИЗ | Документ.КМРейс.НаОтправку КАК КМРейсНаОтправку |ИТОГИ | СУММА(КоличествоМест), | СУММА(ВесПосылки) |ПО | Маршрут, | Фура, | Город"; Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам).Скопировать(); |
|||
2
abda123
24.08.15
✎
06:19
|
На форме в дерево значений добавил колонки, с таким же наименованием и типом как поля запроса, но он выдает только одну строку, итоговую.
|
|||
3
abda123
24.08.15
✎
06:26
|
В консоли запросов, выбираешь способ выгрузки "Дерево" и он выдает результат в виде дерева. Вот также надо вывести на форму.
|
|||
4
abda123
24.08.15
✎
06:33
|
Добавил группировки в запрос, не помогло.
|
|||
5
abda123
24.08.15
✎
06:37
|
Платформа 8.2.
|
|||
6
kosts
24.08.15
✎
06:41
|
Делай не выгрузку, а вложенные переборы и заполняй дерево.
типа так
|
|||
7
abda123
24.08.15
✎
06:45
|
Ясно, спасибо. Жаль нельзя сразу напрямую вывести результат запроса на форму, по моему в динамических списках можно сразу результат запроса выводить.
|
|||
8
kosts
24.08.15
✎
06:46
|
поправил
|
|||
9
abda123
24.08.15
✎
06:49
|
(8) а какой тип обхода результата запроса выставлять при выгрузке?
|
|||
10
kosts
24.08.15
✎
06:50
|
Такой же
|
|||
11
abda123
24.08.15
✎
06:57
|
(10) а сворачивание по уровням, при таком методе будет, или он просто все строки списком будет показывать?
|
|||
12
kosts
24.08.15
✎
07:03
|
(11) Какое же это дерево будет, если списком сделаешь...
|
|||
13
kosts
24.08.15
✎
07:07
|
(0) Вот это зачем?
.Скопировать() |
|||
14
kosts
24.08.15
✎
07:09
|
(0) Проверь, что ты выбрал нужный тип списка на форме - дерево. Возможно дерево и построилось, только плюсиков нету.
|
|||
15
abda123
24.08.15
✎
07:11
|
(14) На форме добавлено табличное поле с типом "Дерево значений". Туда добавлены колонки с именем и типом совпадающие с полями запроса.
|
|||
16
kosts
24.08.15
✎
07:14
|
Вообще метод из (0) в принципе рабочий, только "Выгрузка" в это дерево вызывает разрыв элемента на форме и данных.
После выгрузки надо делать ЭлементыФормы.Дерево.СоздатьКолонки(); По этому если колонки надо настраивать заранее, то надо обходить и заполнять дерево циклом. |
|||
17
patria0muerte
24.08.15
✎
07:17
|
(16) Так можно же сразу в данные выгружать. А данные объявить уже как реквизит формы.
СоздатьКолонки() вызывать не обязательно, но для самой левой колонки вроде нужно установить ОтображатьИерархию. Тогда дерево будет раскрываться |
|||
18
kosts
24.08.15
✎
07:19
|
|
|||
19
abda123
24.08.15
✎
07:21
|
(18) Т.е. колонки изначально создавать не нужно на форме?
|
|||
20
kosts
24.08.15
✎
07:24
|
(19) Можно не создавать, если автоматическое создание устроит.
Если создаешь, тогда уж нужно следить, что бы не пропадали. |
|||
21
patria0muerte
24.08.15
✎
07:25
|
(19) Твой метод из (0) должен работать, только отображать иерархию у одной колонки поставь и пропиши после выгрузки разворачивание дерева, если необходимо
(20) +1 |
|||
22
abda123
24.08.15
✎
07:30
|
Поподробней можете объяснить. Поясняю что есть, у меня есть обработка АРМ Оператора в транспортной компании. На форме есть панель из 3-х страниц.На 3 страницея хочу чтобы отображалась информация по загружаемым фурам на отправку, согласно запросу. Надо ли создать табличную часть, с соответствующими реквизитами и ее кинуть на форму и программно заполнять ее результатом запроса?
Или создать на форме просто табличное поле с типом дерево и его заполнять. В этом случае колонки налдо создавать заранее или при формировании дерева их создавать? |
|||
23
kosts
24.08.15
✎
07:30
|
(18) блин в одном и том же месте косячу... так надо тогда
|
|||
24
kosts
24.08.15
✎
07:32
|
(22) И так и так можно. На твое усмотрение. Я предпочитаю красиво всё заранее на форме настроить и потом заполнить построчно.
|
|||
25
patria0muerte
24.08.15
✎
07:35
|
(22)
1) Создаешь реквизиты формы "Дерево", с типом дерево значений 2) Создаешь и размещаешь табличное поле на форме. В данных указываешь "Дерево" 3) В табличном поле создаешь колонки. У колонки "Маршрут" (в твоем случае) устанавливаешь ОтображатьИерархию = Истина 4) Выполняешь свой запрос из (0) 5) Пишешь для красоты что-то типа ; Для каждого СтрокаДерева Из Дерево.Строки Цикл ЭлементыФормы.Дерево.Развернуть(СтрокаДерева, Истина); КонецЦикла; Вот и вся любовь |
|||
26
abda123
24.08.15
✎
07:37
|
(25) ок, спс)) сейчас попробую..
|
|||
27
patria0muerte
24.08.15
✎
07:38
|
+(25) *4) Запрос из (1), разумеется включая строчку
Дерево = Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам); |
|||
28
abda123
24.08.15
✎
07:41
|
(27) скопировать не использовать? Запрос.Выполнить().Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам).Скопировать();
|
|||
29
kosts
24.08.15
✎
07:42
|
(28) лишнее
|
|||
30
patria0muerte
24.08.15
✎
07:42
|
(27) А зачем? У тебя и так и так дерево значений, только при скопировать() ты лишнюю операцию выполняешь.
|
|||
31
abda123
24.08.15
✎
07:43
|
Заработало! Все спасибо. Получается единственное что нужно было, это отображать иерархию в истина поставить)
|
|||
32
abda123
24.08.15
✎
07:43
|
(30) Да и скпоировать лишнее.
|
|||
33
patria0muerte
24.08.15
✎
07:45
|
(31) Да, так и есть. Сначала тоже долго не мог понять в чем суть. )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |