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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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