|
v8: Как в табличном документе на каждой странице внизу вывести область | ☑ | ||
---|---|---|---|---|
0
Zaika333
24.11.11
✎
20:41
|
Здраствуйте, есть таб документ надо на каждой странице при выводе на печать внизу вывести област (табличку типо лист изм, ответст, и т.д.) , количество строк на странице сосчитать проктичести не возможно они зависят от группировок в запросе, пробую Таб.ПовторятьПриПечатиСтроки = Таб.Область("R7") ничего не выходить помогите пож-та))
|
|||
1
KarpovDeniska
24.11.11
✎
22:36
|
(0) колонтитулы тебя спасут
|
|||
2
KarpovDeniska
24.11.11
✎
22:39
|
||||
3
Zaika333
24.11.11
✎
22:49
|
Спасибо конечно но в колонтитулах у меня № листа из листов и дата, а мне надо поместить штампик из 3 строчек который потом будут заполнять ручками
|
|||
4
KarpovDeniska
24.11.11
✎
23:06
|
||||
5
KarpovDeniska
24.11.11
✎
23:07
|
(0) поиск не работает?
|
|||
6
Zaika333
26.11.11
✎
17:45
|
вот как у меня написано, но не работает кол-ты есть а подвала как не было так и нет что не так то?
ТабДокумент.ВерхнийКолонтитул.Выводить = Истина; ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 1; ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "СТО 231-2010 Приложение П 070.124"; ТабДокумент.НижнийКолонтитул.Выводить = Истина; ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 1; ТабДокумент.НижнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы] Листов [&СтраницВсего] "; ТабДокумент.НижнийКолонтитул.ТекстСлева = "[&Дата]"+" " + ОбъектНормирования; ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Вывести(ОбластьМакетаПодвал); ТабДокумент.Показать(); |
|||
7
kosts
26.11.11
✎
18:25
|
(0) 1. Сделать все области одинаковой высоты. Соответственно можно расчитать, когда нужно выводить подвал.
2. Хитро использовать ПроверитьВывод. Проверку делать области состоящей из подвала и предыдущей строки. Если входит, то выводим строку, не входит выводим подвал и выводим горизонтальный разделитель. |
|||
8
Zaika333
26.11.11
✎
19:21
|
написала так , но выходит только на последней странице(((((
ТабДокумент.ВерхнийКолонтитул.Выводить = Истина; ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 1; ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "СТО 231-2010 Приложение П 070.124"; ТабДокумент.НижнийКолонтитул.Выводить = Истина; ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 1; ТабДокумент.НижнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы] Листов [&СтраницВсего] "; ТабДокумент.НижнийКолонтитул.ТекстСлева = "[&Дата]"+" " + ОбъектНормирования; //ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Вывести(ОбластьМакетаПодвал); Если Не ТабДокумент.ПроверитьВывод(ТабДокумент) тогда ТабДокумент.Вывести(ОбластьМакетаПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДокумент.Показать(); |
|||
9
kosts
26.11.11
✎
19:48
|
(8) Нужно вставить не в конце, а в цикле вывода.
И примерно так Если Не ТабДокумент.ПроверитьВывод(ОбластьСостоящаяИзПредыдущейСтрокиИПодвала) тогда Иначе КонецЕсли; Тут нужно продумать, что бы наверное подвал был такой же высоты что и предыдущая область. |
|||
10
Zaika333
26.11.11
✎
19:50
|
Да я тоже уже об этом подумала, но вот только как это сделать цикл то не один и области разные((
Макет = ПолучитьМакет("Макет"); ТабДокумент = Новый ТабличныйДокумент; ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СпецНормы"; // Зададим параметры макета по умолчанию ТабДокумент.ПолеСверху = 10; ТабДокумент.ПолеСлева = 20; ТабДокумент.ПолеСнизу = 10; ТабДокумент.ПолеСправа = 10; ТабДокумент.РазмерКолонтитулаСверху = 15; ТабДокумент.РазмерКолонтитулаСнизу = 15; ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ОбластьМакетаЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьМакетаРаздел = Макет.ПолучитьОбласть("Раздел"); ОбластьМакетаГруппа = Макет.ПолучитьОбласть("Группа"); ОбластьМакетаПодгруппа = Макет.ПолучитьОбласть("Подгруппа"); ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьМакетаИтоги = Макет.ПолучитьОбласть("Итоги"); ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка"); ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал"); //ОбластьМакетаСТО = Макет.ПолучитьОбласть("СТО")); ОбластьМакетаЗаголовок.Параметры.ЗаголовокТекст = "Ведомость специфицированных норм расхода на изделие " + ОбъектНормирования.Наименование; ТабДокумент.Вывести(ОбластьМакетаЗаголовок); ТабДокумент.Вывести(ОбластьМакетаШапка); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ku_СоставИзделияСрезПоследних.КодШифратора.Раздел КАК Раздел, | ku_СоставИзделияСрезПоследних.КодШифратора.Группа КАК Группа, | ku_СоставИзделияСрезПоследних.КодШифратора.Подгруппа КАК Подгруппа, | ku_СоставИзделияСрезПоследних.КодШифратора, | ku_СоставИзделияСрезПоследних.Подразделение, | СУММА(ku_СоставИзделияСрезПоследних.Количество) КАК Количество, | СУММА(ku_СоставИзделияСрезПоследних.Норма1) КАК Норма1, | СУММА(ku_СоставИзделияСрезПоследних.Норма2) КАК Норма2, | СУММА(ku_СоставИзделияСрезПоследних.Норма3) КАК Норма3, | СУММА(ku_СоставИзделияСрезПоследних.Вес) КАК Вес, | СУММА(ku_СоставИзделияСрезПоследних.КИМ) КАК КИМ |ИЗ | РегистрСведений.ku_СоставИзделия.СрезПоследних КАК ku_СоставИзделияСрезПоследних |ГДЕ | ku_СоставИзделияСрезПоследних.ОбъектНормирования = &ОбъектНормирования | |СГРУППИРОВАТЬ ПО | ku_СоставИзделияСрезПоследних.КодШифратора.Раздел, | ku_СоставИзделияСрезПоследних.КодШифратора.Группа, | ku_СоставИзделияСрезПоследних.КодШифратора.Подгруппа, | ku_СоставИзделияСрезПоследних.КодШифратора, | ku_СоставИзделияСрезПоследних.Подразделение |ИТОГИ ПО | Раздел, | Группа, | Подгруппа |АВТОУПОРЯДОЧИВАНИЕ"; Запрос.УстановитьПараметр("ОбъектНормирования", ОбъектНормирования); Результат = Запрос.Выполнить(); ВыборкаКодШифратораРаздел = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаКодШифратораРаздел.Следующий() Цикл Если ВыборкаКодШифратораРаздел.Раздел <> NULL тогда // Вставить обработку выборки ВыборкаКодШифратораРаздел ОбластьМакетаРаздел.Параметры.Раздел = ВыборкаКодШифратораРаздел.Раздел.Наименование; ТабДокумент.Вывести(ОбластьМакетаРаздел); // Если Не ТабДокумент.ПроверитьВывод(ОбластьМакетаРаздел) тогда ТабДокумент.Вывести(ОбластьМакетаПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; // КонецЕсли; ВыборкаКодШифратораГруппа = ВыборкаКодШифратораРаздел.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаКодШифратораГруппа.Следующий() Цикл // Вставить обработку выборки ВыборкаКодШифратораГруппа Если ВыборкаКодШифратораГруппа.Группа <> NULL тогда ОбластьМакетаГруппа.Параметры.Группа = ВыборкаКодШифратораГруппа.Группа.Наименование; ОбластьМакетаИтоги.Параметры.ИтогоГруппа1 = ВыборкаКодШифратораГруппа.Норма1; ОбластьМакетаИтоги.Параметры.ИтогоГруппа2 = ВыборкаКодШифратораГруппа.Норма2; ОбластьМакетаИтоги.Параметры.ИтогоГруппа3 = ВыборкаКодШифратораГруппа.Норма3; ОбластьМакетаИтоги.Параметры.ВсегоНаИзделияГр = ВыборкаКодШифратораГруппа.Количество; ОбластьМакетаИтоги.Параметры.ЧистВесГр = ВыборкаКодШифратораГруппа.Вес; ОбластьМакетаИтоги.Параметры.КИМГр = ВыборкаКодШифратораГруппа.КИМ; ТабДокумент.Вывести(ОбластьМакетаГруппа); Конецесли; ВыборкаКодШифратораПодгруппа = ВыборкаКодШифратораГруппа.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаКодШифратораПодгруппа.Следующий() Цикл // Вставить обработку выборки ВыборкаКодШифратораПодгруппа Если ВыборкаКодШифратораПодгруппа.Подгруппа <> NULL тогда ОбластьМакетаПодгруппа.Параметры.Подгруппа = ВыборкаКодШифратораПодгруппа.Подгруппа.Наименование; ОбластьМакетаПодгруппа.Параметры.ИотогоПодгр1 = ВыборкаКодШифратораПодгруппа.Норма1; ОбластьМакетаПодгруппа.Параметры.ИотогоПодгр2 = ВыборкаКодШифратораПодгруппа.Норма2; ОбластьМакетаПодгруппа.Параметры.ИотогоПодгр3 = ВыборкаКодШифратораПодгруппа.Норма3; ОбластьМакетаПодгруппа.Параметры.ВсегоНаИзделияПодгр = ВыборкаКодШифратораПодгруппа.Количество; ОбластьМакетаПодгруппа.Параметры.ВесПодгр = ВыборкаКодШифратораПодгруппа.Вес; ОбластьМакетаПодгруппа.Параметры.КИМПодгр = ВыборкаКодШифратораПодгруппа.КИМ; ТабДокумент.Вывести(ОбластьМакетаПодгруппа); ТабДокумент.Вывести(ОбластьМакетаИтоги); КонецЕсли; ВыборкаДетальныеЗаписи = ВыборкаКодШифратораПодгруппа.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл // Вставить обработку выборки ВыборкаДетальныеЗаписи ОбластьМакетаСтрока.Параметры.Цех = ВыборкаДетальныеЗаписи.Подразделение; ОбластьМакетаСтрока.Параметры.Наименование = ВыборкаДетальныеЗаписи.КодШифратора.Наименование; ОбластьМакетаСтрока.Параметры.ЕдИзм = ВыборкаДетальныеЗаписи.КодШифратора.ЕдиницаИзмерения; ОбластьМакетаСтрока.Параметры.Марка = ВыборкаДетальныеЗаписи.КодШифратора.Марка; ОбластьМакетаСтрока.Параметры.Шифр = ВыборкаДетальныеЗаписи.КодШифратора.Код; ОбластьМакетаСтрока.Параметры.ГОСТ = ВыборкаДетальныеЗаписи.КодШифратора.ГОСТ; ОбластьМакетаСтрока.Параметры.Размер = ВыборкаДетальныеЗаписи.КодШифратора.Размер; ОбластьМакетаСтрока.Параметры.Норма1 = ВыборкаДетальныеЗаписи.Норма1; ОбластьМакетаСтрока.Параметры.Норма2 = ВыборкаДетальныеЗаписи.Норма2; ОбластьМакетаСтрока.Параметры.Норма3 = ВыборкаДетальныеЗаписи.Норма3; ОбластьМакетаСтрока.Параметры.Количество = ВыборкаДетальныеЗаписи.Количество; ОбластьМакетаСтрока.Параметры.Вес = ВыборкаДетальныеЗаписи.Вес; ОбластьМакетаСтрока.Параметры.КИМ = ВыборкаДетальныеЗаписи.КИМ; ТабДокумент.Вывести(ОбластьМакетаСтрока); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; ТабДокумент.Вывести(ОбластьМакетаПодвал); ТабДокумент.ВерхнийКолонтитул.Выводить = Истина; ТабДокумент.ВерхнийКолонтитул.НачальнаяСтраница = 1; ТабДокумент.ВерхнийКолонтитул.ТекстСправа = "СТО 231-2010 Приложение П 070.124"; ТабДокумент.НижнийКолонтитул.Выводить = Истина; ТабДокумент.НижнийКолонтитул.НачальнаяСтраница = 1; ТабДокумент.НижнийКолонтитул.ТекстСправа = "Лист [&НомерСтраницы] Листов [&СтраницВсего] "; ТабДокумент.НижнийКолонтитул.ТекстСлева = "[&Дата]"+" " + ОбъектНормирования; //ТабДокумент.ПовторятьПриПечатиСтроки = ТабДокумент.Вывести(ОбластьМакетаПодвал); Если Не ТабДокумент.ПроверитьВывод(ОбластьМакетаПодвал) тогда ТабДокумент.Вывести(ОбластьМакетаПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ТабДокумент.Показать(); |
|||
11
Zaika333
26.11.11
✎
19:52
|
(9) подскажите как захватить предыдущую строку?
|
|||
12
Шапокляк
26.11.11
✎
20:09
|
(11) а так не получится?
.... перед ТабДокумент.Вывести(ОбластьМакетаСтрока); добавить кусочек: ТД=Новый ТабличныйДокумент; ТД.Вывести(ОбластьМакетСтрока); ТД.Вывести(ОбластьМакетПодвал); Если Не ТабДокумент.ПроверитьВывод(ТД) Тогда ТабДокумент.Вывести(ОбластьМакетаПодвал); ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; |
|||
13
Zaika333
26.11.11
✎
20:26
|
пишет что Переменная не определена (ОбластьМакетСтрока)
ТД.Вывести(ТабДокумент.Вывести(<<?>>ОбластьМакетСтрока)); (Проверка: Толстый клиент (обычное приложение)) |
|||
14
Zaika333
26.11.11
✎
20:29
|
ой извините не заметила свою ошибку)), работает только последняя стока подвала уходит на след стр или просто со скакивает
|
|||
15
Шапокляк
26.11.11
✎
20:32
|
(14) да это мой ляп. Я бы тогда вот что сделала в (12)
вместо ТД=Новый ТабличныйДокумент; ТД.Вывести(ОбластьМакетСтрока); ТД.Вывести(ОбластьМакетПодвал); написать ТД=Новый ТабличныйДокумент; ТД.Вывести(ОбластьМакетСтрока); ТД.Вывести(ОбластьМакетСтрока);//2 строчки проверять, короче ТД.Вывести(ОбластьМакетПодвал); |
|||
16
Шапокляк
26.11.11
✎
20:33
|
ОбластьМакетАСтрока, сорри
|
|||
17
Zaika333
26.11.11
✎
20:42
|
Спасибо Вы лучшая, получается))) а то я тут два дня уже парюсь!))
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |