Текущее время: Вт, июл 29 2025, 22:22

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Пн, янв 12 2009, 21:08 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
superbizon написала:
1. На первом экране транзакции smartforms нажать кнопку "Изменить" (если сначала зайти в режиме просмотра, а потом перейти в изменение нужные кнопки почему-то остаются неактивными)

Ха-ха - в ECC 6.0 такой же глюк!

Если нельзя сделать рамку отдельно для разных клеток шаблона, то вероятно надо делать два шаблона. А Page Protection якобы можно поставить на уровне folder - тут недавно был пост, помнится.

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Вт, янв 13 2009, 11:22 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 16 2007, 09:48
Сообщения: 73
Откуда: Казань
Добрый день!

Да уж, намучилась в своё время. Нашла следующее решение, по-моему, оно подойдёт для любой версии.

Есть такой элемент в SmartForms - папка, в каких-то версиях она называется регистратором.
В закладке 'Опции вывода' у папки есть CheckBox 'Без переноса'.
Те данные, которые Вы хотите сделать неразрывными, поместите в неё. Получается, вы сможете
нарисовать отдельно шаблон с рамками для последней строки, отдельно - подписи, но поместив их
в одну папку и задав 'Без переноса', добьётесь неразрывности.

Начиная с версии 4.7 делаю так: в Основной области таблицы создаю папку, устанавливаю в ней 'Без переноса'.
Внутри папки определяю строки таблицы, после них - папка с подписями (их несколько, да еще отступы). В папке с
подписями в закладке 'Условия' определяем условие: если счётчик строк (собств.переменная) = номеру последней
строки (собств.переменная). Т.о., подписи распечатаются только после последней строки таблицы, а защита
'Без переноса' сделает своё дело, уж поверьте.

В версии 4.6 (или в предшествующей, не помню) я изощрялась по-другому (не знала ещё), но, по-моему, и там тоже
можно создать папку с защитой от переноса.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Ср, янв 14 2009, 13:05 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Цитата:
Есть такой элемент в SmartForms - папка, в каких-то версиях она называется регистратором.
В закладке 'Опции вывода' у папки есть CheckBox 'Без переноса'.
Те данные, которые Вы хотите сделать неразрывными, поместите в неё. Получается, вы сможете
нарисовать отдельно шаблон с рамками для последней строки, отдельно - подписи, но поместив их
в одну папку и задав 'Без переноса', добьётесь неразрывности.

Нифига не получается. Как только помещаю шаблон или таблицу в папку, флаг "без переноса" для папки сбрасывается и становится серым. :(

Цитата:
Начиная с версии 4.7 делаю так: в Основной области таблицы создаю папку, устанавливаю в ней 'Без переноса'.
Внутри папки определяю строки таблицы, после них - папка с подписями (их несколько, да еще отступы). В папке с
подписями в закладке 'Условия' определяем условие: если счётчик строк (собств.переменная) = номеру последней
строки (собств.переменная). Т.о., подписи распечатаются только после последней строки таблицы, а защита
'Без переноса' сделает своё дело, уж поверьте

Это решит проблему если позиции на нескольких страницах и нужно чтобы на странице подписантов была хотя бы одна позиция?
Этот вариант, я так понимаю, для одностраничного отчета.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Ср, янв 14 2009, 13:37 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 16 2007, 09:48
Сообщения: 73
Откуда: Казань
Цитата:
Нифига не получается. Как только помещаю шаблон или таблицу в папку, флаг "без переноса" для папки сбрасывается и становится серым. :(

Да, попробовала, тоже сбрасывается. Можно узнать, какая у вас версия?
Если 4.7, нет ли возможности вместо шаблона использовать таблицу? Дело в том, что в ней Вы сможете определить различные типы строк, какие-то из них - с рамками, какие-то - без.
Я-то использую таблицу, в ней определены и типы строк с рамками, и строк без рамок. Содержимое таблицы кидается в строки с рамками, подписи - в строки без рамок.

Цитата:
Это решит проблему если позиции на нескольких страницах и нужно чтобы на странице подписантов была хотя бы одна позиция? Этот вариант, я так понимаю, для одностраничного отчета.

Разумеется, отчёт многостраничный.

Вообще, надо сказать, в своё время страшно намучилась. Найдя в Helpe по SmartForms какой-то намёк о возможности сделать блоки информации неразрывными, много чего перепробовала, прежде чем получилось. Но работает замечательно! У Вас тоже должно получиться!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Ср, янв 14 2009, 14:02 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Пт, фев 16 2007, 09:48
Сообщения: 73
Откуда: Казань
На самой заре моего использования SmartForms мне досталось начинать с самого сложного отчёта. Там тоже категорически нельзя было переносить подписи отдельно, а пользователи были весьма педантичны. Тогда я не дочитала ещё о папках, о галочке ‘Без переноса’.
После долгих поисков пришла к такому решению. Перед выводом отчёта в формуляр, отображается отчёт в виде листинга (собственно, он частенько тоже пригождается). В окне статуса создаются кнопка ‘Вывод формуляра’ и ‘Перенос последней записи’. Пользователь нажимает первую кнопку, просматривает свой формуляр. Если видит, что подписи - отдельно, возвращается в окно листинга, нажимает вторую кнопку (которая создана как переключатель ‘перенести \ не переносить’), снова вызывает SmartForms, в котором последняя строка насильно переносится. Эта вторая кнопка определяет значение передаваемого в SmartForms параметра. В SmartForms затем, если этот параметр установлен как ‘перенести’, перед выводом последней строки вызывается команда принудительного перехода к новой странице.

Конечно, это не лучший вариант, но когда ничто другое не получается, задача горит, то на первое время можно реализовать и так.

Так что, вариантов может быть несколько, но задача Ваша решаема.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Ср, янв 14 2009, 14:07 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
у меня 4.6
в 4.7. все решается достаточно просто. а тут.... :(

а вариант с предпросмотром чтобы узнать переносить строку или нет не подходит мне, так как есть поточная печать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Ср, янв 14 2009, 19:56 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Ну, тогда можно разве что посоветовать подсчитывать количество строк и, если на страницу с "подписантами" строк не хватает, то перед последней делать принудительный разрыв страницы. Это, правда, будет работать, если заранее известно количество строк на странице и размер элемента с "подписантами".

А то может вообще в SAPScript это сделать? По релизу и технологии...

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Ср, янв 14 2009, 22:33 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
А нет ли какой нибудь переменной в смартформе, в которой бы было количество печатных строк на листе или чего нибудь подобного, а то даже если я буду знать сколько строк таблицы вмещается на лист, но вдруг у строк таблицы будет получаться разная высота. тогда что?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Чт, янв 15 2009, 09:55 
Директор
Директор

Зарегистрирован:
Пт, окт 07 2005, 09:10
Сообщения: 752
Откуда: 4.6C
Пол: Мужской
Если высота разная, то точный результат не получиться. По строкам системных полей нет. Для подсчета числа строк определял свои переменные. На первый взгляд понадобиться 4 переменных: общее число строк в таблице(О), текущая строка(Т), максим. возможная строка с учетом подписей(П), текущая на странице(С).
Проверяя условие (О - Т = 1) И (С > П) осуществляем переход на новую страницу.
Т наращиваем с каждой строкой, С обнуляем в начале страницы.
Возможно с применением сист. переменных SFSY-PAGE и SFSY-FORMPAGES удастся сократить число своих, но есть опасение, что с условным переходом на новую страницу возможны накладки со значением этих переменных.
Обычно вид страниц и число строк таблицы отличается на первой и последующих, так что придется сделать как мин. 2 страницы с разным числом макс. возможных строк вывода.
Еще посмотрите вариант реализации(сам не пробовал):
viewtopic.php?f=13&t=17829


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Пт, янв 23 2009, 14:18 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа! А есть ли какая нибудь информация по узлу CОMMAND? Там есть параметр "Вставить управление принтером" и значение для него "Инициализация SapScript". Вот конкретно про него хотелось бы узнать.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Пт, янв 23 2009, 19:27 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
Description of all SAPscript Print Controls

_________________
"One of the symptoms of an approaching nervous breakdown is the belief that one's work is terribly important." Bertrand Russell


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Smartforms
СообщениеДобавлено: Чт, янв 29 2009, 15:13 
Специалист
Специалист

Зарегистрирован:
Вс, янв 11 2009, 11:05
Сообщения: 152
Пол: Мужской
Господа!
Почти разобрался как сделать неотрывность подписантов от последней позиции документа. Все получается хорошо если заголовок документа не перескакивает на следующую страницу.
А вот если перескакивает, то...
Заголовок документа выводится тоже в виде таблицы (Название поля / Значение).
И в одном из значений может быть текст.
Проблема в том, что мне нужно обнулять счетчик печатаемых строк заголовка документа если заголовок перескакивает на следующую страницу. Но когда текст в ячейке перескакивает на следующий лист, то SFSY-PAGE остается предыдущим. Я так понимаю что пока не распечается вся строка таблицы, то счетчик страниц не меняется.
Как это можно обойти?
Нужно как-то выяснить сколько строк текста перекинулось на новый лист.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Smartforms  Тема решена
СообщениеДобавлено: Пн, фев 15 2010, 16:17 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пн, авг 27 2007, 10:55
Сообщения: 197
Откуда: Україна
Пол: Мужской
_garycor_ написал:
Господа!
Почти разобрался как сделать неотрывность подписантов от последней позиции документа. Все получается хорошо если заголовок документа не перескакивает на следующую страницу.
А вот если перескакивает, то...
Заголовок документа выводится тоже в виде таблицы (Название поля / Значение).
И в одном из значений может быть текст.
Проблема в том, что мне нужно обнулять счетчик печатаемых строк заголовка документа если заголовок перескакивает на следующую страницу. Но когда текст в ячейке перескакивает на следующий лист, то SFSY-PAGE остается предыдущим. Я так понимаю что пока не распечается вся строка таблицы, то счетчик страниц не меняется.
Как это можно обойти?
Нужно как-то выяснить сколько строк текста перекинулось на новый лист.


Делал в нижнем колонтитуле таблицы папку(регистратор) с запретом на перенос.
Как и в вашем случае столкнулся с проблемой переноса пустой "шапки" на следующую страницу.
Решение подходит только для вывода фиксированного количества строк таблицы
В шапке считаем кол-во. строк таблицы.
В основном блоке вывода определяем условие вывода строки: № текущей < общего количества.
В "неразрывной" папке нижнего колонтитула выводим последнюю(не отображенную в основном блоке) строку таблицы + итоги + подписи.
Итого: последняя строка таблицы будет всегда выводиться совместно с итогами и подписями, вывод пустой "шапки" на новой странице исключен.

система 4.7

Упс. поднял древнюю тему.... но ничего авось кому пригодится.. :)

_________________
Приятно Вас видеть...


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB