Вывести Таблицу

  • Автор темы 9AAAA
  • Дата начала
9

9AAAA

Гость
#1
Создаю отчет, хочу вывести для него таблицу, просто ради примера как это делается
Посмотрел на мисте на простых примерах
На форме есть два поля типа дата ни с чем не связанных
Ход мыслей следующий
В отчете есть три секции с одноименными названиями
Код:
 таб=создатьобъект("Таблица")
Таб.ВывестиСекцию("Шапка")
Таб.ВывестиСекцию("ЩапкаТаблицы")
Таб.ВывестиСекцию("Докум")
 

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
и в чем, собственно, проблема заключается?
 
A

alxrie

Гость
#3
Цикл - очень полезная штука. Например, если есть таблица с секциями

Шапка:: Таблица умножения

и

Строка:: м*1 м*2 м*3 ... м*10
(разумеется, все ячейки объявлены как Выражение)

то

Таб = СоздатьОбъект("Таблица");

Таб.ВывестиСекцию("Шапка");

Для м=1 По 10 Цикл
Таб.ВывестиСекцию("Строка");
КонецЦикла;

выведет таблицу умножения.

(А если использовать ещё и ПрисоединитьСекцию() - то станет вообще прекрасно. Ну а Область() - тут можно просто чудеса творить).
 
9

9AAAA

Гость
#4
Таблица при нажатии на кнопку сформировать не выводится
 
A

alxrie

Гость
#5
Таблица при нажатии на кнопку сформировать не выводится
А что указано в формуле кнопки "Сформировать"?
Там должен быть вызов процедуры, которая создаст таблицу.
А в конце этой процедуры должно быть

Таб.Показать();

(если переменная для таблицы называется Таб).

Перед Таб.Показать() можно ещё поиграться с режимами таблицы (при помощи методов ТолькоПросмотр(), Опции() и т.д.).
 

Allexei

Well-Known Member
02.05.2008
322
1
30
Москва
#6
Как пример "универсальная функция формирования таблиц для посмотреть просто так":
Код:
//---------------------------------------------------------------------------
//Функция УниверсальнаяФункцияПечати(Макет, Таблица, ТаблицаДляПечати, Секция)
//Вспомогательная функция для печати таблицы значений
//Параметры:
//		Макет		  - объект типа макет
//		Таблица		 - таблица которую печатаем
//		ТаблицаДляПечати - поле табличного документа в которое будет выведен результат
//		Секция 		 - секция макета 
Функция УниверсальнаяФункцияПечати(Макет, Таблица, ТаблицаДляПечати, Секция)

//Выведим шапку+
СекцияВыведена= Ложь;
Для Каждого ТекКолонка Из Таблица.Колонки Цикл
Секция.Параметры.Значение= ТекКолонка.Имя;
Если НЕ СекцияВыведена Тогда
ТаблицаДляПечати.Вывести(Секция);
СекцияВыведена= Истина;
КонецЕсли;
ТаблицаДляПечати.Присоединить(Секция);
КонецЦикла;
//Выведим шапку-

//Выведит тело+
Для Каждого ТекСтрока Из Таблица Цикл
СтрокаВыведена= Ложь;
Для Каждого ТекКолонка Из Таблица.Колонки Цикл 
Секция.Параметры.Значение= ТекСтрока[ТекКолонка.Имя];
Если НЕ СтрокаВыведена Тогда
ТаблицаДляПечати.Вывести(Секция);
СтрокаВыведена= Истина;
КонецЕсли;
ТаблицаДляПечати.Присоединить(Секция);
КонецЦикла;
КонецЦикла;
//Выведим тело-

ТаблицаДляПечати.Показать();
ТаблицаДляПечати.ОтображатьСетку= Ложь;
КонецФункции
Кидаешь в процедуру обработки нажатия кнопки данную функцию с заполненными параметрами и все гуд :rolleyes:
Если надо могу пример выложить как это дело с помощью макета компоновки данных вывести- будет намного красивее.
 
9

9AAAA

Гость
#7
Спасибо дело в том, что я не указывал Таб. Показать()