Текущее время: Чт, июн 19 2025, 20:23

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 18 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Smartforms многострочная строка таблицы
СообщениеДобавлено: Вт, май 27 2008, 09:15 
Ассистент
Ассистент

Зарегистрирован:
Пт, июл 27 2007, 12:20
Сообщения: 39
Откуда: Екатеринбург
Пол: Женский
Всем привет!
Подскажите, пожалуйста, как решить такую проблему:
В таблице в смартформе название строки очень длинное и автоматически печатается на нескольких строках, а в других столбцах печатаются данные в одну строку. Соответственно строка таблицы имеет следующий вид:
------------------------
название | 10
название |
название |
------------------------
Нужно, чтобы выглядело так:

------------------------
название |
название |
название | 10
------------------------

Можно ли это как-то реализовать стандартными средствами?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 28 2008, 06:58 
Ассистент
Ассистент

Зарегистрирован:
Пт, июл 27 2007, 12:20
Сообщения: 39
Откуда: Екатеринбург
Пол: Женский
Неужели никто не сталкивался с такой проблемой, что надо выровнять текст по вертикали?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 28 2008, 09:09 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
в smartforms нету выравнивания по вертикали. по крайней мере до 5.0 такого точно не было.

данну проблему можно решить по разному. в зависимости от размещения всей шапки и кому как удобнее.1
1) вариант ручками в первой колонке писать
название1 (переход на новую строку)
название2 (переход на новую строку)
название3 (переход на новую строку)
во второй колонке
(переход на новую строку)
(переход на новую строку)
название колонки 2.

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

иначе, по моему, ни как. можно конечно заморочиться с динамической вставкой перехода на новуй строку (в цикле вставлять пустой текст в колонке). но имхо не стоит игра свеч. в шапке в 99% случаев текст статичный а значит и разметка статична.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 28 2008, 09:19 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Pokusannoe_Zubilo написал:
в smartforms нету выравнивания по вертикали. по крайней мере до 5.0 такого точно не было.

Думаю и не будет, в связи с появлением PDF форм.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 28 2008, 09:29 
Ассистент
Ассистент

Зарегистрирован:
Пт, июл 27 2007, 12:20
Сообщения: 39
Откуда: Екатеринбург
Пол: Женский
Спасибо за ответ :)

Я как раз и делала как в варианте 1. Но, к сожалению, это текст не в шапке, а в основной области. Т.е. получается, что для каждой строки таблицы нужно проверять (причем непонятно как проверять) влезло название в строку в первом столбце или оно автоматически перенеслось на следующую строку, и ячейка расширилась, и в зависимости от этого выводить данные в других столбцах.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 28 2008, 09:33 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
ну в данном случае тогда. пробуйте динамически вставить переходы строк в других таблицах.
1) вы ведь знаете фиксированную ширину каждой колонки.
2) считайте длинну выводимой строки.
длина строки/ширину колонки = кол-во строк.
далее в остальных колонках добавляете цикл. для кол-ва строк - 1.
в котром выводите пустой текст.

прибилизительно так.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, май 28 2008, 11:39 
Начинающий
Начинающий

Зарегистрирован:
Вт, дек 18 2007, 09:41
Сообщения: 6
А нельзя как в сапскрипте:
Посчитать количество строк, и потом непосредственно в тексте в цикле "кол.строк - 1" вставлять пустые строки, после цикла выводить непосредственно значение.

/: KSTR = NSTR - 1.
/: WHILE KSTR < NSTR.
ZS
/: ENDWHILE
ZS &MENGE2&


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, май 29 2008, 09:06 
Ассистент
Ассистент

Зарегистрирован:
Пт, июл 27 2007, 12:20
Сообщения: 39
Откуда: Екатеринбург
Пол: Женский
пользователи хотят так, поэтому мне остается только мозги ломать, как это сделать :)
А насчет подсчета количества строк - это непростое дело. В таблице, если слово не вошло в строку, то оно автоматически переносится на следующую строку. Соответственно может быть так, что слово, потом пусто, а на следующей строке другое длинное слово. Т.е. реально количество строк может получиться больше, чем получается при расчетах. Может быть, кто-нибудь знает, где прописан алгоритм переноса в таблицах, чтобы его воспроизвести ;)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, июн 02 2008, 19:58 
Президент
Президент

Зарегистрирован:
Пт, апр 28 2006, 22:39
Сообщения: 2514
Откуда: North Taxolina, USA
Пол: Женский
kochia написала:
А насчет подсчета количества строк - это непростое дело.


Непростое только если строка нефиксированной длины или если hyphenation используется, типа как в Word'е. Посмотрите ФМ RKD_WORD_WRAP или более навороченный G_WRAP_LINES, правда в последнем все закомментировано, видимо "ни-че-го не по-лу-чи-лось" :lol: у SAP.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 03 2008, 05:56 
Ассистент
Ассистент

Зарегистрирован:
Пт, июл 27 2007, 12:20
Сообщения: 39
Откуда: Екатеринбург
Пол: Женский
Спасибо, посмотрю


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 03 2008, 10:02 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
kochia написала:
Спасибо, посмотрю

Стандартный модуль форматирования с переносом по словам - FORMAT_TEXTLINES, он используется в тектовом редакторе SAPScript'а, когда нажимаем кнопочку "форматировать".
Но со всеми этими модулями главная беда в том, что они не учитывают метрик шрифта, и если ваша табличка выводится не моноширинным шрифтом, то они не помогут.
На самом деле, это весомый повод сказать юзерам нет. Альтернативные пути - выводить в excel или pdf (если версия SAP'а позволяет).

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 03 2008, 12:45 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
Могу предложить еще не стандартный вариант ;)

1) Перед выводом строки подсчитываем максимальную длинну колонок.
допустим = A
2) Есть глобальная строковая переменная g_str(1000) достаточно большой длинны допустим 1000 символов.
3) Далее перед выводом каждой колонки, присваиваем этой глобальной переменной значание выводимой колонки и сдвигаем вправо, так чтобы кол-во пробелов слева+выводимое значение равнялось максимальной длинне колонки в текущей стороке.
4) в колонку выводим g_str.

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

Но здесь есть нюансы. Если вы захотите выравнять по другому текст , вывод числовых значений (не знаю как они поведут себя).

Сам не пробовал, скажу честно, но думаю такое тоже имеет место быть.
Если получиться отпишите :)))


хотя, действительно, я бы сказал юзерам НЕТ ;))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 03 2008, 12:55 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Pokusannoe_Zubilo написал:
...
2) Есть глобальная строковая переменная g_str(1000) достаточно большой длинны допустим 1000 символов.
...

А разве размер выводимого поля в SmartForm-ах не ограничен 255 символами?

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 03 2008, 22:55 
Президент
Президент

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

А вот еще такая разновидность для предложенного выше варианта. Вместо вставляния <переход на новую строку>, создается пре-форматированная internal table, которая потом и выводится построчно. Если взять за основу пример выше, то в internal table было бы два поля (1-я и 2-я колонка). В процессе форматирования получилась бы таблица с 3 записями:

название <blank>
название <blank>
название 10

Естественно, тут тоже пришлось бы возпользоваться чем-то для разделения на строки и все замечания касательно шрифтов тоже к этому варианту относятся. Хотя, если речь идет о небольших текстах, то этими условностями можно в известной мере пренебречь.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 04 2008, 07:47 
Специалист
Специалист

Зарегистрирован:
Чт, мар 22 2007, 14:40
Сообщения: 142
Пол: Мужской
sy-uname написал(а):
Pokusannoe_Zubilo написал:
...
2) Есть глобальная строковая переменная g_str(1000) достаточно большой длинны допустим 1000 символов.
...

А разве размер выводимого поля в SmartForm-ах не ограничен 255 символами?


..неа, нету ограничения не сколько я знаю ;)

попробовал вышеуказанный пример, у меня вроде получилось :)


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

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


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

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


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

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