|
Как вывести повторяющиеся строки на одной странице в макете | ☑ | ||
---|---|---|---|---|
0
Штурман
15.11.13
✎
15:40
|
В результате работы запроса есть повторяющиеся строки, пример:
Иванов Иванов Петров Эти строки выводятся в макет, каждая строка на отдельной странице, как-то так: Пока Выборка.Следующий() Цикл ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; Однако при таком подходе каждая строка выводится на отдельной странице. Как на одной странице вывести дубликаты? Т.е. на одной странице выводим двух Ивановых, а на следующей Петрова. |
|||
1
Fram
15.11.13
✎
15:50
|
Элементарная задачка. В чем сложность?
|
|||
2
Штурман
15.11.13
✎
15:52
|
(1) Просвяти штоль?
|
|||
3
Fram
15.11.13
✎
15:57
|
Для начала отсортируй результат запроса по фамилии. Дальше рассказывать?
|
|||
4
bolobol
15.11.13
✎
15:57
|
По моему, вся проблема в макете - в нём разрыв страницы выводится после каждой фамилии. Разве нет? Доработайте макет и всё станет пучком.
|
|||
5
bolobol
15.11.13
✎
16:00
|
Описание для ТабличныйДокумент.Вывести:
Выводит табличный документ в результирующий табличный документ, добавляя его со следующей строки вслед за самой нижней выведенной строкой, начиная с первой колонки. - нигде не написано про новую строку - в примере (0) тоже нет разделения на страницы = разрыв страницы в ОбластьМакета |
|||
6
Штурман
15.11.13
✎
16:01
|
(4) Ага, после каждой фамилии, чет не врублю как вывести дубликаты на одной странице
|
|||
7
Штурман
15.11.13
✎
16:02
|
(5) А в типовых конфах есть пример подобного вывода в макет дубликатов?
|
|||
8
bolobol
15.11.13
✎
16:14
|
(6) В макете ещё нет фамилий, там только Параметр, куда выводится Фамилия. А вместе с этим параметром в макете усановлен разрыв страницы, скорее всего. Иначе, из приведённого текста в (0) не понять.
Кстати, не совсем понял, почему в цикле нет самого заполнения параметра? Фамилии же в выборке должны быть, разве нет? (7) И забудьте о выводе дубликатов. Есть понятие - вывести разрыв страницы. То есть, когда все одинаковые фамилии добавите на страницу - выводится отдельно разрыв страницы, например. |
|||
9
samozvanec
15.11.13
✎
16:14
|
(7) Если НЕ Дубликат Тогда
ВставитьРазделитель(); КонецЕсли; |
|||
10
Штурман
15.11.13
✎
16:32
|
Всем спасибо, попробую :)
|
|||
11
Штурман
19.11.13
✎
12:22
|
Пишу:
Пока Выборка.Следующий() Цикл ОбластьМакета.Параметры.ФИО = Выборка.ФИО; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; Как тут вообще 2 дубликата на одной странице поместить? |
|||
12
Штурман
19.11.13
✎
12:24
|
Пробовал через условие Если... и
Выборка.НайтиСледующий( Так вообще не находит дубликатов |
|||
13
User_Agronom
19.11.13
✎
12:28
|
Всё грустно, однако.
Даже не знаю как подсказать автору. (3) Это удалось сделать? Как проверили? |
|||
14
Штурман
19.11.13
✎
12:50
|
Пока Выборка.Следующий() цикл
ф = Выборка.ФИО; Если ф = Выборка.НайтиСледующий(ф, "ФИО") тогда сообщить(Выборка.ФИО); иначе сообщить("----------------"); конецесли; конеццикла; |
|||
15
Штурман
19.11.13
✎
14:48
|
^
|
|||
16
hhhh
19.11.13
✎
15:08
|
(14) ПоследняяФИО = "";
Пока Выборка.Следующий() цикл Если Выборка.ФИО <> ПоследняяФИО тогда Сообщить("перевод страницы"); КонецЕсли; ПоследняяФИО = Выборка.ФИО; сообщить(Выборка.ФИО); конеццикла; |
|||
17
Штурман
19.11.13
✎
15:39
|
(16) Спасибо, так просто оказалось :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |