Текущее время: Ср, июл 23 2025, 20:29

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Пт, фев 12 2010, 11:23 
Специалист
Специалист

Зарегистрирован:
Вт, сен 15 2009, 16:41
Сообщения: 201
Пол: Мужской
Здравствуйте.
Итак, есть смартформа, надо организовать промежуточные итоги по странице и общий. Общий как бы не проблема. Предлагаю разобрать на одном поле пострничный подитог. Вот что я делаю для создания постраничных подитогов:
1. При обработке таблицы LOOPом, суммирую процедурой нужное мне поле по строчно в некую переменную которая будет итоговой по странице.
2. Ставлю в нижнем колонтитуле галки: "При переносе" и "в конце", так как надо чтобы подитог был и на последней странице.
3. Создаю в полонтитуле строку табличную с нужным мне полем, в котором вывожу данную переменную в которую я проссумировал при обработке таблицы, вывожу его и обнуляю для следующего подсчета итогов. НО, выводится общее значение или точнее значение +1(просто переносится всего одна строка на след страницу, пока не проверял с большим количеством строк).
А теперь вопросы:
1. Колонтитулы рисуются после обработки всей таблицы, или не посредественно после каждой страницы?
2. Как сделать так чтобы колонтитул рисовался после обрабокти каждой страницы? (может есть какое то условие).
Примечание. Высота строки в таблице варьируется динамически в зависимости от длины текста. На количество строк на странице завязываться нельзя.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Пт, фев 12 2010, 11:35 
Специалист
Специалист

Зарегистрирован:
Вт, сен 15 2009, 16:41
Сообщения: 201
Пол: Мужской
Проверил на большем количестве документов, колонтитул выводится при переносе на след страницу. Тогда остался только один вопрос:
1. Как победить строки в два или три раза выше обычной строки?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Пт, фев 12 2010, 14:10 
Специалист
Специалист

Зарегистрирован:
Вт, сен 15 2009, 16:41
Сообщения: 201
Пол: Мужской
Все вырулил не, правда как то странно, стал вычислять высоту строки. В ячейке, в которой выводится длинное наименование из которого идет перенос, вставил след код:
Code:
data: koef TYPE F, " Коэф-т для деления длины строки на макс вмещаемои число символов в одной
"строке ячеки равное 35 символов
        modkoef(10) TYPE N, " Число вычисленных добавляемых строк к ощему числу строк
        lenstr(10) TYPE N. " Длина строки (поля из за которого идет перенос)

qt = WA-FULLNAME. " Присваиваем значение длинного поля некоторой переменной которую
"выводим на экран
translate qt TO UPPER CASE. " Переводим все в верхний регистр для пущей верности:)
lenstr = strlen( qt ). "Вычисляем длину строки длинного поля
koef = lenstr / 35. "Находим чистый коэф-т
modkoef = trunc( koef ). " Отделяем целое число от дробной
IF koef > modkoef. " Если было больше целого числа то значит больше строк
modkoef = modkoef + 1. "Прибавляем единицу к числу вычиленных строк
ENDIF.
nom_pp = nom_pp + modkoef. " Прибавляем число вычисленных строк к общему


А в процедуре вывода нижнего колонтатула пишу след код

Code:
kq = massb. " Присваиваю вычисляемо значение поля по которому будет подитог в переменную
if ( SFSY-PAGE = 1 AND NOM_PP = 12 ) OR "Если страница 1ая и строк выч 12 или
( SFSY-PAGE > 1 AND NOM_PP = 38 ). "Страница больше 1ой и строк 38 то выводим колонтитул
"(подитог)

  kq = massb - WA-BRGEW. " Отнимаем от общего вычисленного значения по странице последнее
" на котором был перенос, не знаю поему но почему то он строку при переносе всегда прибавляет одну
endif.

MASSB = 0. NOM_PP = 0. "Обнуляем счетчик страниц и подитог по нужному полю
MASSB = MASSB + WA-BRGEW. "Прибавляем к нужному полю отнятое значение для слеющего расчета.




Вот такое вот вроде как рабоет.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Пн, фев 15 2010, 13:21 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
rstiv написал:
Проверил на большем количестве документов, колонтитул выводится при переносе на след страницу. Тогда остался только один вопрос:
1. Как победить строки в два или три раза выше обычной строки?
2. Колонтитулы рисуются после обработки всей таблицы, или не посредественно после каждой страницы?


высоту строки сап высчитывает из содержимого. победить (а смысл?) никак.

нижний колонтитул таблицы может выводится:
1. на каждой странице.
2. в конце таблицы
в зависимости от отмеченных чек-боксов.

промежуточные суммы делаются очень просто без особого шаманства.

например:
1. в глоб. определениях G_NETTO. - итог на странице
G_VSEGO - общий итог
2. Таблица -> закладка "Расчеты":
Операция - SUM
Имя поля - WA-G_NETTO
Целевое поле - G_NETTO
Событие - После цикла
3. В нижнем колонтитуле таблицы (в таком порядке!)
%Текст1 = &G_NETTO&
%CODE1=
Code:
                      G_VSEGO = G_VSEGO + G_NETTO.
                      clear G_NETTO.


:gigi:


Последний раз редактировалось andry_moz Чт, фев 18 2010, 11:55, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Ср, фев 17 2010, 21:09 
Специалист
Специалист

Зарегистрирован:
Вт, сен 15 2009, 16:41
Сообщения: 201
Пол: Мужской
э неее, вот и не гы - гы:)
Допустим на первый лист помещается только 10 строк, далее колонтитул с подитогом и пошел второй лист. И что если 10 ая строка занимает по высоте 2 или более строк. У меня произошло на таком примере странное оптическое явление, строка побилась на две части, причем в первом листе с суммами и подитогом а на втором просто продолжение содержимого из длинного поля. Пришлось шаманить дальше: при переборе строк в таблице в коде считывать значение длинного поля, вычислять размерность след строки, и потом по флажку перенеосить или нет командой. Есть какое нибудь попроще решение для такой пробемы? Ну и подитоги, соответственно потом пересчитывал также в коде, обнуляя их в колонтитуле.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Чт, фев 18 2010, 11:49 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
rstiv написал:
э неее, вот и не гы - гы:)
Допустим на первый лист помещается только 10 строк, далее колонтитул с подитогом и пошел второй лист. И что если 10 ая строка занимает по высоте 2 или более строк. У меня произошло на таком примере странное оптическое явление, строка побилась на две части, причем в первом листе с суммами и подитогом а на втором просто продолжение содержимого из длинного поля. Есть какое нибудь попроще решение для такой пробемы?


есть решение.
в типе строки таблицы (закладка "Таблицы", кнопка "Подробно") отметь фишку "Защита перед переносом"
вот теперь точно :gigi:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Чт, фев 18 2010, 12:17 
Специалист
Специалист

Зарегистрирован:
Вт, сен 15 2009, 16:41
Сообщения: 201
Пол: Мужской
ну и ладно :gigi: так :gigi:
При возможности возьму на вооружение, просто щас уже сделано как сделано. Меять никто не даст, так как работает уже. Спасибо!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Чт, фев 18 2010, 12:20 
Специалист
Специалист

Зарегистрирован:
Вт, сен 15 2009, 16:41
Сообщения: 201
Пол: Мужской
Откуда кстати столько навыка в смартформах? не поделитесь литературой, а то я только натыкался на пример создания какой то простой смартформы, с обработкой таблицы студентов.:(


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Чт, фев 18 2010, 12:50 
Специалист
Специалист

Зарегистрирован:
Вт, дек 30 2008, 18:10
Сообщения: 171
Пол: Мужской
rstiv написал:
Откуда кстати столько навыка в смартформах? не поделитесь литературой, а то я только натыкался на пример создания какой то простой смартформы, с обработкой таблицы студентов.:(


таблица студентов это классика. с нее я и начинал. :)
из литературы - курс BCSRVSCRSF http://help.sap.com/saphelp_47x200/help ... ameset.htm
и этот форум.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Несколько вопросов по SMARTFORMS.
СообщениеДобавлено: Пн, фев 22 2010, 18:16 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, фев 05 2010, 10:24
Сообщения: 59
"1. Как победить строки в два или три раза выше обычной строки?"

Высота строки в таблицах зависит от стиля. Если в стиле поставить интервал к примеру 0.6 очень даже <я не знать русский языка> получается.

_________________
Кто понял жизнь - тот не спешит работать...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

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


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

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


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

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