|
Как правильно организовать метод ПроверитьВывод() | ☑ | ||
---|---|---|---|---|
0
location
naïve
24.06.22
✎
11:57
|
Есть данные
Группа Номенклатуры и Номенклатура. Необходимо выводить печатную форму так: например есть 3 группы и какое то определенное количество в ней позиций для каждой группы выводится шапка далее нужно вывести печатную форму так, если все 3 группы с позициями умещаются на 1 страницу выводим 3, если умещаются только 2, выводим 2 и 1 на след странице. т.е. проверить если группы целиком влазят без разбиения на страницу их выводим, если нет то переносим, группы разрывать нельзя, количество позиций в группе может быть разное |
|||
1
butterbean
24.06.22
✎
12:35
|
Делать массивы областей и проверять по очереди
|
|||
2
location
naïve
24.06.22
✎
12:56
|
(1) ну у меня есть массив областей строка и шапка, так вот массивов областей строка сколько угодно может быть.
получается надо сначала проходить цикл, добавлять область строку каждый раз в массив, а потом еще раз цикл проходить и выводить? |
|||
3
Fedor-1971
24.06.22
✎
13:02
|
(2) нет, логика такая:
1. делаем массив 2. добавляем в него только что заполненную область 3. ПроверитьВывод() - типа вылезли за страницу добавляем табДок.РазделительСтраниц чистим массив, записываем в него текущую область выводим область в табДок -типа нормально просто выводим область в табДок |
|||
4
arsik
гуру
24.06.22
✎
13:11
|
(3) Может проще можно сделать?
Сначала сформировать массив из 3х областей, по группам. Потом проверять, влазит все 3. Вывести все3, не лазить, последнюю из массива убрать и снова проверять. Суть такая - 1 раз пробегаешься, что бы все 3 области заполнить. Потом уже этими областями оперируешь. |
|||
5
Fedor-1971
24.06.22
✎
13:14
|
(4) не не получится, если не влезло, где возьмём выброшенную область?
в моём варианте, мы идём линейно и формируем табличный документ параллельно проверяем заполнение для каждой страницы |
|||
6
arsik
гуру
24.06.22
✎
13:28
|
(5) Ну так не выбрасывай ее насовсем.
|
|||
7
Fedor-1971
24.06.22
✎
13:34
|
(6) это дело хозяйское, пусть ТС решает как удобнее
|
|||
8
location
naïve
24.06.22
✎
13:41
|
(3) не понял, получается я вывел 1 таблицу там 50 строк, далее вывожу вторую строку например 1,2,3,4,5, проверяю вывод, влазит строки, их вывожу, 6 не влазит, вылезли, получилось разорвал страницу, как отменить то что уже вывел
|
|||
9
Fedor-1971
24.06.22
✎
13:49
|
(8) ты одновременно заполняешь табДок и массив для проверки (по нему работает ПроверитьВывод)
когда у тебя не лезет 6 строка очищаешь массив уже выведенных и добавляешь в него 6 строку (в табДок вставляешь разрыв страницы перед выводом 6 строки) Сам табДок чистить не нужно - это многостраничный документ |
|||
10
location
naïve
24.06.22
✎
14:24
|
(9) так я уже вывел 5 строк в таб документ, а должен был вывести на втором листе
"в табДок вставляешь разрыв страницы перед выводом 6 строки" я не должен выводить 6 строк на той странице |
|||
11
Fedor-1971
24.06.22
✎
14:48
|
(10) Ладно, на картинке:
ТабДок лист 1 стр 1 стр 2 стр 3 стр 4 стр 5 Разрыв страницы - признак начала листа 2 для принтера, т.к. 6 строка не лезет лист 2 стр 6 |
|||
12
arsik
гуру
24.06.22
✎
15:00
|
(10) Я по другому предлагаю.
3 элемента массива для каждой группы. В каждом элементе табличный документ - уже заполненный по 3м разным группам. Ну а дальше сам поймешь. |
|||
13
arsik
гуру
24.06.22
✎
15:01
|
+(12) Что то я хуйню какую то написал.
3 элемента массива. 1 элемент для каждой группы. |
|||
14
arsik
гуру
24.06.22
✎
15:12
|
Примерно так. Дальше сам разберешься.
Макет = УправлениеПечатью.МакетПечатнойФормы("ОбщийМакет.МояПечатнаяФорма");
|
|||
15
location
naïve
24.06.22
✎
16:33
|
(11) на примере
Лист 1 Группа 1 стр 1 стр 2 стр 3 стр 4 стр 5 Группа 2 стр 1 стр 2 стр 3 стр 4 стр 5 строка 6 не влазит Должно быть Лист 1 Группа 1 стр 1 стр 2 стр 3 стр 4 стр 5 Лист 2 Группа 2 стр 1 стр 2 стр 3 стр 4 стр 5 стр 6 |
|||
16
Злопчинский
25.06.22
✎
02:06
|
если автор хреново прогает, то случится жпс когда размер группы больше размера листа...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |