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

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


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

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


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

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