|
ПроверитьВывод() как правильно использовать? | ☑ | ||
---|---|---|---|---|
0
K1RSAN
30.01.18
✎
15:16
|
Настраиваю макет в 8.2, там надо сделать так, чтобы в случае, когда строка не входит на лист - проводился переход на следующую страницу, на новой странице выводилась шапка и вывод продолжался?
Так же в первом переходе требуется вывести подвал с примечаниями. Прочитал про метод ПроверитьВывод(), там говорится, что надо использовать массив. Загоняю в массив области макета, проверка на вхождение которых должна выполняться. Но что-то идет не так, и выводит некорректно. То есть подвал просто не входит на страницу, соответственно он лезет на следующую страницу и после нее идет обрезание. Также последующие разделения на страницу работают странно (через раз что ли) Или надо объединить области в одну или как? Тут кусок кода, где идет именно заполнение массива и использование метода ПроверитьВывод() ВыводимыеОбласти.Очистить(); Если Подвал = Истина Тогда ВыводимыеОбласти.Добавить(ОбластьПодвал3); КонецЕсли; ВыводимыеОбласти.Добавить(ОбластьДанные3); Если Не ТабличныйДокумент.ПроверитьВывод(ВыводимыеОбласти) Тогда Если Подвал Тогда ТабличныйДокумент.Вывести(ОбластьПодвал3); КонецЕсли; ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); Перенос = Истина; Подвал = Ложь; ТабличныйДокумент.Вывести(ОбластьДоп); ТабличныйДокумент.Вывести(ОбластьШапка3); КонецЕсли; ТабличныйДокумент.Вывести(ОбластьДанные3); |
|||
1
K1RSAN
30.01.18
✎
15:17
|
*Опечатка, БП 3.0
|
|||
2
Вафель
30.01.18
✎
15:19
|
посмотри в торг12
|
|||
3
mistеr
30.01.18
✎
15:28
|
(0) Похоже подвал сам по себе не влезает.
Ты его с каждой строкой проверяешь? |
|||
4
K1RSAN
30.01.18
✎
15:32
|
(3) Да, до тех пор, пока она один раз не выйдет.
|
|||
5
K1RSAN
30.01.18
✎
15:32
|
она = подвал* (4)+
|
|||
6
K1RSAN
01.02.18
✎
08:35
|
Может есть возможность просто следить за оставшейся "высотой" на листе? И просто при выводе каждого компонента проверять, хватает ли высоты на вывод на этом листе или нет?
Код немного изменился, но суть не поменялась пока что. Но ищу другие выходу |
|||
7
K1RSAN
01.02.18
✎
08:35
|
ВыводимыеОбласти.Очистить();
Если Подвал = Истина Тогда ВыводимыеОбласти.Добавить(ОбластьПодвал3); Иначе ВыводимыеОбласти.Добавить(ОбластьДанные3); КонецЕсли; Если Не ТабличныйДокумент.ПроверитьВывод(ВыводимыеОбласти) Тогда Если Подвал Тогда ТабличныйДокумент.Вывести(ОбластьПодвал3); Подвал = Ложь; КонецЕсли; //ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); Перенос = Истина; ТабличныйДокумент.Вывести(ОбластьДоп); ТабличныйДокумент.Вывести(ОбластьШапка3); КонецЕсли; ТабличныйДокумент.Вывести(ОбластьДанные3); |
|||
8
K1RSAN
01.02.18
✎
08:38
|
Небольшая опечатка
Если Подвал = Истина Тогда ВыводимыеОбласти.Добавить(ОбластьПодвал3); КонецЕсли; ВыводимыеОбласти.Добавить(ОбластьДанные3); Таким образом, если в этой таблице еще не был выведен подвал ни разу - он проверяет, поместится ли подвал и еще одна строка. Если не помещается - выводит подвал, а на новой странице - заново выводится шапка и потом заполняется строка. А если подвал уже был выведен - то уже проверяет только на "влезаемость" строки. Но что-то идет не так и не срабатывает как надо |
|||
9
Мимохожий Однако
01.02.18
✎
08:42
|
С подвалом проверяй последнюю строчку, а остальные строчки без подвала.
|
|||
10
K1RSAN
01.02.18
✎
08:45
|
(9) В каком смысле последнюю строчку? Получили новую форму отчетности, там подвал находится на первой странице. Проконсультировался с человеком, который обычно рассматривает эту форму -она говорит выводить подвал на первой странице таблицы
|
|||
11
K1RSAN
01.02.18
✎
08:49
|
(9) И даже когда проверяется только последняя строка - то он некорректно срабатывает. По правильному шапка должна быть на каждой странице, а выходит через страницу или типа того
|
|||
12
Мимохожий Однако
01.02.18
✎
08:55
|
(11) Я тебе про подвал, а ты про шапку )). Проверяй вывод после каждой строчки. А вот последнюю проверяй вместе с подвалом.
|
|||
13
Мимохожий Однако
01.02.18
✎
09:00
|
ТабличныйДокумент (SpreadsheetDocument)
ПовторятьПриПечатиСтроки (RepeatOnRowPrint) Использование: Чтение и запись. Описание: Тип: ОбластьЯчеекТабличногоДокумента. Содержит область строк, которая будет повторяться при печати каждого нового листа табличного документа. |
|||
14
catena
01.02.18
✎
09:16
|
Во-первых, не вижу, где переменная Подвал возводится в истину
|
|||
15
catena
01.02.18
✎
09:17
|
Во-вторых, подвал надо проверять с каждой строкой.
ВыводимыеОбласти.Очистить(); ВыводимыеОбласти.Добавить(ОбластьДанные3); ВыводимыеОбласти.Добавить(ОбластьПодвал3); Если Не ТабличныйДокумент.ПроверитьВывод(ВыводимыеОбласти) Тогда ТабличныйДокумент.Вывести(ОбластьПодвал3); ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); Перенос = Истина; ТабличныйДокумент.Вывести(ОбластьДоп); ТабличныйДокумент.Вывести(ОбластьШапка3); КонецЕсли; ТабличныйДокумент.Вывести(ОбластьДанные3); |
|||
16
K1RSAN
01.02.18
✎
09:29
|
(13) В документе много таблиц. Или можно переопределять в ходе работы? В общем попробую это
(15) зачем с каждой строкой? Ведь если он один раз выведен - второй раз не надо уже. |
|||
17
Мимохожий Однако
01.02.18
✎
09:36
|
(16) Каждую таблицу можно делать отдельно и потом объединять в одну общую.
Каждую строку надо проверять для того, чтобы новая страница определялась программно, а не принтером. Тогда при этом не будет пропадать шапка таблицы. |
|||
18
dezss
01.02.18
✎
09:38
|
а если подвал выше строки и даже сам он не помещается?
может следует сравнивать с 2 строками данных? |
|||
19
Злопчинский
01.02.18
✎
09:40
|
Тебе что надо? Обеспечить чтобы подвал влезал на страницу без разрыва? И не был "висящим"?
|
|||
20
catena
01.02.18
✎
09:42
|
(16)Подвал на каждой странице или только в конце?
|
|||
21
catena
01.02.18
✎
09:43
|
Если на каждой странице, логика такая:
"скажи мне, милый адинэс, если я выведу вот эту строку, у меня потом еще подвал поместится? Да? Тогда вывожу строку. Нет? Тогда вывожу подвал, а вот эту строку печатаю на следующей странице" |
|||
22
catena
01.02.18
✎
09:46
|
(18)Нет, в том-то и дело, если текущая строка+подвал не помещаются, то выводится только подвал, а текущая строка выводится на следующей странице.
|
|||
23
Злопчинский
01.02.18
✎
09:47
|
Я так нихрена не понял чтоиавтору надо. Так мутно описать мог только восьмерочник
|
|||
24
K1RSAN
01.02.18
✎
09:49
|
(19) Да
|
|||
25
K1RSAN
01.02.18
✎
09:49
|
(20) Подвал только на первой странице
|
|||
26
K1RSAN
01.02.18
✎
09:50
|
(23) Таким образом, если в этой таблице еще не был выведен подвал ни разу - он проверяет, поместится ли подвал и еще одна строка. Если не помещается - выводит подвал, а на новой странице - заново выводится шапка и потом заполняется строка. А если подвал уже был выведен - то уже проверяет только на "влезаемость" строки. Но что-то идет не так и не срабатывает как надо
|
|||
27
K1RSAN
01.02.18
✎
09:50
|
(21) Типа такого
|
|||
28
Злопчинский
01.02.18
✎
09:56
|
Выводит в черновик сначала и на нем проверяй вывод, если влезло - выводит в чистовик.
В черновик вывести подвал СНАЧАЛА, а потом выводить строки и проверять вывод на черновика. Если влезло - тогда выводишь строку в чистовик. Если не влезло - выводишь в чистовик подвал. |
|||
29
Йохохо
01.02.18
✎
10:00
|
так то
Если Подвал = Истина Тогда ВыводимыеОбласти.Добавить(ОбластьДанные3); ВыводимыеОбласти.Добавить(ОбластьПодвал3); Иначе ВыводимыеОбласти.Добавить(ОбластьДанные3); КонецЕсли; но до сих пор не написали что же не так идет и видимо (25) читать как "подвал выводится один раз для одной таблицы, которых в табдок потом много" |
|||
30
K1RSAN
01.02.18
✎
10:02
|
(29) Идет не так - Почему-то выводит шапку не каждый раз, а 1 в 3 страницы, что является неверным.
Знание как не надо вам все равно лишнее. Я подозреваю, что неправильно использую метод, а для этого вроде достаточно выведено |
|||
31
Мимохожий Однако
01.02.18
✎
10:02
|
(29) Не все телепаты... А полного кода никто не видел..Даже ТС ))
|
|||
32
K1RSAN
01.02.18
✎
10:04
|
(31) Я вывел код, ответственный за вывод на страницы именно проблемной части. Думаю, вас не заинтересует процесс получения областей из макетов, а расчеты не мои, я правлю уже сделанный отчет, у которого поменялась форма в новом году.
|
|||
33
K1RSAN
01.02.18
✎
10:05
|
(32) + ну и проблема не в расчетах, заполняются области правильно, проблема только с выводом.
|
|||
34
catena
01.02.18
✎
10:07
|
(32)Это чистый код, изнутри ничего не удалялось? Заполнение областей идет в какой момент?
|
|||
35
K1RSAN
01.02.18
✎
10:07
|
Я уже подумываю начать химичить с вещами типа высоты. Сказали, что подвал ладно, главное шапку выводить в начале каждой страницы.
|
|||
36
catena
01.02.18
✎
10:08
|
Ориентация печати при просмотре не отличается от программной?
|
|||
37
K1RSAN
01.02.18
✎
10:09
|
(34) Заполнение областей идет в начале цикла. Сначала заполняется через Параметры.Заполнить(), потом ручками. (сделано до меня, переписывать пока задачи нет, потом еще свои косяки искать)
(36) это посмотрю |
|||
38
Злопчинский
01.02.18
✎
10:11
|
Над (28) лень подумать, видимо...
|
|||
39
dezss
01.02.18
✎
10:13
|
А отступы и т.п. у тебя в табдоке настроены так же, как и в предварительном просмотре?
|
|||
40
K1RSAN
01.02.18
✎
10:14
|
(36) Спасибо проблема оказалась настолько банальной... Отчет формируется с ориентацией ландшафт, а перед формированием не указывается явно.
(38) На это у меня не хватает мозгов, я же восьмерошник, и вообще знаю о существовании уанасса полгода. |
|||
41
Злопчинский
01.02.18
✎
10:28
|
(40) алгоритм
Инициализировать чистовик и черновик Вывести в чистовик и черновик все что нужно для первой страницы включая заголовок таблицы Вывести в черновик подвал Цикл Вывести в черновик строку Если черновик.проверитьвывод() < 2страниц тогда Вывести строку в чистовик Иначе Ввести в чистовик подвал Прервать цикл Конецесли Конеццикла |
|||
42
catena
01.02.18
✎
10:36
|
(41)ПроверитьВывод() чем не устраивает?
|
|||
43
Злопчинский
01.02.18
✎
10:41
|
(42) лично меня - почти всем. Что не устраивает автора - хз
|
|||
44
Злопчинский
01.02.18
✎
10:47
|
(42) я хз. В клюшках пока вывод в макет не сделаешь - с легонца не поймешь влезло или нет на страницу. А отменить сделанный вывод нельзя.
Если в снеговике проверить вывод работает без реального вывода в проверяемых макет - тоивообще лепота Ещё не знаю есть ли в снеговика такая настройка как в клюшках типа "вместе со следующим" - тогда ряд задач по выводу ещё проще можно сделать |
|||
45
assasu
01.02.18
✎
10:49
|
(0) если по какой-то причине отвалится принтер , то на этой строчке все встанет и не увидишь печатную форму. надо это иметь ввиду
|
|||
46
catena
01.02.18
✎
11:00
|
(44)Работает именно без вывода. В этом и прелесть.
"Вместе со следующим" не помню что такое, я клюшки последний раз в 2010 году открывала)) |
|||
47
alxxsssar
01.02.18
✎
11:05
|
А кто-нибудь делал большие документы с оглавлением и указанием номеров страниц в начале? ахаха
|
|||
48
K1RSAN
01.02.18
✎
11:21
|
(41) Спасибо
|
|||
49
K1RSAN
01.02.18
✎
11:34
|
(47) Это типа фиктивно печатать документ и в момент начала глав выводить главу в реальный документ?
|
|||
50
alxxsssar
01.02.18
✎
11:42
|
(49) большой документ с динамически формируемым текстом (неизвестное количество строк, рисунки, таблицы и т.д.) разделен на главы. В начале текста- оглавление с указанием реальных номеров страниц. 2 макета и проверить вывод() помогли.
|
|||
51
K1RSAN
01.02.18
✎
11:58
|
(50) Может не 2 макета, а 2 табличных документа по одному макету?
|
|||
52
alxxsssar
01.02.18
✎
12:07
|
(51) конечно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |