Текущее время: Чт, май 15 2025, 21:37

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Строка не добивается пробелами :)
СообщениеДобавлено: Пн, окт 03 2005, 17:17 
Специалист
Специалист

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
Всем привет.
Нужно "добить" содержимое строки пробелами до конца.

Делаю так:
string --- строка с переменным содержимым, которую нужно дополнить пробелами до максимума (до 60 символов)

len = STRLEN( string ).
*количество пробелов, которыми нужно добить строку
count_space = 60 - len.

DO count_space TIMES.
MOVE space TO string+len(1).
len = len + 1.
ENDDO.

В результате длина переменной string не меняется (пробелами не заполняется), если любой другой символ пишу, то все ОК.

Что не так сделал?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 02:42 
Гость
а зачем если не секрет ?
Мне кажется достаточно того, что указана длинна переменной.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Строка не добивается пробелами :)
СообщениеДобавлено: Вт, окт 04 2005, 06:33 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Geolog написал(а):
Всем привет.
Нужно "добить" содержимое строки пробелами до конца.

Делаю так:
string --- строка с переменным содержимым, которую нужно дополнить пробелами до максимума (до 60 символов)

len = STRLEN( string ). ....

Что не так сделал?

http://help.sap.com/saphelp_47x200/help ... ameset.htm


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

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
EHOT написал(а):
а зачем если не секрет ?
Мне кажется достаточно того, что указана длинна переменной.


это для формуляра нужно
а точнее для того, чтобы слово, которое следует за содержимым переменной string не смещалось... т.е. я знаю, что при длине содержимого string в 60 символов все выводится корректно - ровно


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Строка не добивается пробелами :)
СообщениеДобавлено: Вт, окт 04 2005, 09:46 
Специалист
Специалист

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
sy-uname написал(а):
Geolog написал(а):
Всем привет.
Нужно "добить" содержимое строки пробелами до конца.

Делаю так:
string --- строка с переменным содержимым, которую нужно дополнить пробелами до максимума (до 60 символов)

len = STRLEN( string ). ....

Что не так сделал?

http://help.sap.com/saphelp_47x200/help ... ameset.htm


ну хорошо, не считает она пробелы, но в формуляре эта строка все равно выводится "короткой" (без них)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 09:51 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июн 22 2005, 09:51
Сообщения: 208
Пол: Мужской
Code:
DATA: s TYPE string,
      len TYPE i,
      count_space TYPE i.

s = 'Я очень люблю ПэЖэ'.
len = strlen( s ).
*количество пробелов, которыми нужно добить строку
count_space = 60 - len.
DO count_space TIMES.
  CONCATENATE s '' INTO s SEPARATED BY space.
* в 4.6Це выдало ошибку
*MOVE space TO s+len(1).
  len = len + 1.
ENDDO.
CONCATENATE s 'Ку' INTO s.

WRITE:/  s.


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

_________________
С уважением, В.Ш.
4.6C


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Строка не добивается пробелами :)
СообщениеДобавлено: Вт, окт 04 2005, 10:18 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Geolog написал(а):
...

ну хорошо, не считает она пробелы, но в формуляре эта строка все равно выводится "короткой" (без них)

http://help.sap.com/saphelp_47x200/help ... ameset.htm


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

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
Виктор(Минск) написал:
Code:
DATA: s TYPE string,
      len TYPE i,
      count_space TYPE i.

s = 'Я очень люблю ПэЖэ'.
len = strlen( s ).
*количество пробелов, которыми нужно добить строку
count_space = 60 - len.
DO count_space TIMES.
  CONCATENATE s '' INTO s SEPARATED BY space.
* в 4.6Це выдало ошибку
*MOVE space TO s+len(1).
  len = len + 1.
ENDDO.
CONCATENATE s 'Ку' INTO s.

WRITE:/  s.


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


Да, работает, но хотелось бы без "ку" :) Т.е. заполнить так, чтобы в конец строки ничего не добивать.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Строка не добивается пробелами :)
СообщениеДобавлено: Вт, окт 04 2005, 10:28 
Специалист
Специалист

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
sy-uname написал(а):
Geolog написал(а):
...

ну хорошо, не считает она пробелы, но в формуляре эта строка все равно выводится "короткой" (без них)

http://help.sap.com/saphelp_47x200/help ... ameset.htm


А вот это более любопытные механизмы. Спасибо.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 10:58 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
Geolog написал(а):
EHOT написал(а):
а зачем если не секрет ?
Мне кажется достаточно того, что указана длинна переменной.


это для формуляра нужно
а точнее для того, чтобы слово, которое следует за содержимым переменной string не смещалось... т.е. я знаю, что при длине содержимого string в 60 символов все выводится корректно - ровно


разве не правильнее было бы (если уж речь идет о формуляре) использовать табуляторы для того чтобы:
Цитата:
...слово, которое следует за содержимым переменной string не смещалось...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 12:46 
Специалист
Специалист

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
разве не правильнее было бы (если уж речь идет о формуляре) использовать табуляторы для того чтобы:
Цитата:
...слово, которое следует за содержимым переменной string не смещалось...
[/quote]

может быть и правильнее, только как?

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


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

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
2 Geolog: Откровенно говоря не понимаю как ты создаешь формуляр, если не знаешь как пользоваться табуляторами, ну да ладно:

1. Стан.редактор формуляра представляет собой окно с двумя столбцами: столбец формата и столбец со строкой где собственно говоря и определяешь выводимые данные
2. При обработке формата абзаца можно задать табуляторы, там есть для этого спец.кнопарь
3. Использовать табуляторы просто: для того, чтобы текст выводился с позиции N-го табулятора необходимо поставить перед этим текстом N двойных запятых ,,
Т.е. если мы определили,например, формат абзаца A1 с табуляторами 50, 150, 200 мм (с левым выравниванием), а в редакторе написали нечто типа:

A1 Текст1,,,,,,Текст3 (само собой А1 указывается в столбце формата)

то Текст3 будет выведен с позиции 200 мм


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 14:43 
Специалист
Специалист

Зарегистрирован:
Пн, дек 06 2004, 11:36
Сообщения: 151
OlegDm написал(а):
2 Geolog: Откровенно говоря не понимаю как ты создаешь формуляр, если не знаешь как пользоваться табуляторами, ну да ладно:

1. Стан.редактор формуляра представляет собой окно с двумя столбцами: столбец формата и столбец со строкой где собственно говоря и определяешь выводимые данные
2. При обработке формата абзаца можно задать табуляторы, там есть для этого спец.кнопарь
3. Использовать табуляторы просто: для того, чтобы текст выводился с позиции N-го табулятора необходимо поставить перед этим текстом N двойных запятых ,,
Т.е. если мы определили,например, формат абзаца A1 с табуляторами 50, 150, 200 мм (с левым выравниванием), а в редакторе написали нечто типа:

A1 Текст1,,,,,,Текст3 (само собой А1 указывается в столбце формата)

то Текст3 будет выведен с позиции 200 мм


Честно говоря, обходился без них... сечас вот думаю, как же мне это удавалось :-). Видел только, что в смартстилях есть закладка Табуляторы, как и использовать не знал. Теперь все проясняется.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 14:49 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, авг 24 2004, 07:19
Сообщения: 3952
Откуда: ECC 6.0, South Kazakhstan
я про SapScript писал, но похоже правильное направление ты уловил :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, окт 04 2005, 15:32 
Начинающий
Начинающий

Зарегистрирован:
Вт, июл 19 2005, 11:17
Сообщения: 10
Просто когда в формуляре выводишь переменную, напиши например не string, а string(60). По моему так все будет ок и не надо никаких табуляторов.


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

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


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

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


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

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