Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Список в 3 столбца  (Прочитано 4401 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Marta_Li
Постоялец

by
Offline Offline

« : 29-02-2012 16:18 » 

Подскажите, пожалуйста, как выводить список на странице по 3 столбца? Т.е. дошли до конца страницы, дальше выводим начиная сверху следующий столбец, и затем 3-й. Потом новая страница  и т.д.
Ниже привожу упрощенный код, где вывожу все в 1 столбец "сплошмя". Как выводить в 3?

Код:
Результат = Запрос.Выполнить();

ОбластьШапкаТаблицы     = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьДетальныхЗаписей1 = Макет.ПолучитьОбласть("Детали|Столбец1");
ОбластьДетальныхЗаписей2 = Макет.ПолучитьОбласть("Детали|Столбец2");
ОбластьДетальныхЗаписей3 = Макет.ПолучитьОбласть("Детали|Столбец3");

ТабДок.Очистить();
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();

ВыборкаДетали = Результат.Выбрать();

Пока ВыборкаДетали.Следующий() Цикл
ОбластьДетальныхЗаписей1.Параметры.Заполнить(ВыборкаДетали);
ТабДок.Вывести(ОбластьДетальныхЗаписей1, ВыборкаДетали.Уровень());
КонецЦикла;

ТабДок.ЗакончитьАвтогруппировкуСтрок();

ТабДок.ПовторятьПриПечатиСтроки = ТабДок.Область("ШапкаТаблицы");
ТабДок.ПолеСверху = 8;
ТабДок.ПолеСнизу = 8;
ТабДок.ПолеСправа = 0;
ТабДок.ТолькоПросмотр = Истина;

Заранее спасибо за помощь.
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #1 : 29-02-2012 22:29 » 

У табличного документа есть метод "Присоединить(<Таблица>, <Уровень>, <Имя группы>, <Открыта>) "
Первый столбец выводим (метод вывести()), другие два присоединяем (метод присоединить())

Добавлено через 4 часа, 58 минут и 18 секунд:
А вот именно как вы говорите: "дошли до конца страницы, дальше выводим начиная сверху следующий столбец"
Так нельзя, платформой не предусмотрено
« Последнее редактирование: 01-03-2012 03:27 от dest » Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #2 : 01-03-2012 05:51 » 

Спасибо Вам за ответ. Методом "Присоединить" я пользуюсь. Мне хотелось не формировать изначально список по конкретному количеству строк в группы к трем столбцам, т.к. из-за переноса текста в ячейке высота строки может быть разной. Поэтому хотелось независимо выводить эти столбцы. Но, видимо, другого нет метода, раз нет таких средств в платформе, чтобы вернуться вверх, присоединить первую строку следующей по-порядку записи списка, далее выводим вниз следующую и т.д. Жаль.
Буду формировать значит конкретно по 3 столбца в группы.
Спасибо за помощь
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 26-04-2012 07:08 » 

Ну всегда можно доступиться к определенной ячейке в Табличном документе с использованием метода Область() - смотри методы ТабличныйДокумент в СП
Записан
Radistka
Помогающий

ru
Offline Offline
Пол: Женский

« Ответ #4 : 29-01-2013 02:59 » 

ну есть же ещё и варианты как извратиться )))
в типовых печатных формах(ТОРГ12 например) можно глянуть как проверяют влезет ли набор областей на страницу. там это используется чтобы подвал страницы распечатывать, а в данном случае можно попробовать этим же методом считать сколько раз на страницу влезет запись и начиная с первой невлезшей начинать считать сколько влезет записей во второй столбик и аналогично третий. при этом есть смысл запоминать только номера первой записи столбца а потом присоединениями выводить в три столбца.

только стоит хорошо подумать стоит ли это всех извращений )))
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 05-02-2013 13:20 » 

Radistka, предложенный вариант - для 8.х, а здесь обсуждалось 7.7 (в ней проверки нет)
Записан
Marta_Li
Постоялец

by
Offline Offline

« Ответ #6 : 05-02-2013 13:27 » 

Нет, по 8.1 вопрос был.
Записан
Kivals
Модератор

us
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 05-02-2013 14:46 » 

Marta_Li, Упсь, перепутал Жаль Код показался семерочным...
Я у себя с тех похожую задачу решил так: выводил в одну (виртуальную) таблицу методом ВывестиСекцию(), а потом копировал результат чуть правее, т.е. из первого столбца - во второй. (Правда у меня задача попроще была: расположить на странице несколько копий одной и той же таблицы, но в несколько строк/столбцов)
Но тогда, как верно подметила Radistka, хорошо бы проверять "влезаемость" данных на страницу.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines