Текущее время: Вс, июл 27 2025, 10:00

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: ASSIGN ... CASTING.
СообщениеДобавлено: Пн, июл 18 2011, 17:29 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 09:40
Сообщения: 536
Откуда: Belgorod
Пол: Мужской
Коллеги всем привет. У меня скоро будет взрыв мозга. Есть код (хочу посмотреть последовательность символов):
Code:
TYPES: t_char TYPE c LENGTH 2.
DATA: g_hex(8) TYPE x VALUE '00310031' .
FIELD-SYMBOLS: <g_char> TYPE t_char .
DO 200 TIMES.
  IF g_hex+2(2) > '0200'.
    g_hex+2(2) = '0031'.
    g_hex(2) = g_hex(2) + 1.
  ELSE.
    g_hex+2(2) = g_hex+2(2) + 1.
  ENDIF.
  ASSIGN g_hex TO <g_char> CASTING.
  write <g_char>.
ENDDO.

выдает дамп на строке: ASSIGN g_hex TO <g_char> CASTING.
Цитата:
In the current program "ZRH_TEST1", an error occurred when setting the
field symbol "<G_CHAR>" with ASSIGN or ASSIGNING (maybe in the combination with
the CASTING addition).

When converting the base entry of the field symbol "<G_CHAR>" (number in base
table: 13), it was found that the target type requests a memory
alignment of 2.

However, the source data object has an invalid memory alignment, that is
an alignment not divisible by 2.


P.S. система unicode. При нажатии "отладка" внутри дампа, в переменной <G_CHAR> содержится значение "12", что соответствует моим представлениям при кодировании.

_________________
Новый этап на проекте - устранение доработок :).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ASSIGN ... CASTING.
СообщениеДобавлено: Пн, июл 18 2011, 20:53 
Директор
Директор

Зарегистрирован:
Чт, июн 21 2007, 09:01
Сообщения: 904
Откуда: УЖ 15/2
Пол: Мужской
Code:
TYPES: t_char TYPE c LENGTH 2.
DATA: lv_char TYPE t_char.
DATA: g_hex(8) TYPE x VALUE '00310031' .
FIELD-SYMBOLS: <g_char> TYPE t_char.
DO 200 TIMES.
  IF g_hex+2(2) > '0200'.
    g_hex+2(2) = '0031'.
    g_hex(2) = g_hex(2) + 1.
  ELSE.
    g_hex+2(2) = g_hex+2(2) + 1.
  ENDIF.
  ASSIGN g_hex TO <g_char> CASTING.
  WRITE <g_char>.
ENDDO.

Хм, а так работает.

_________________
"I have a dream"(c)Martin Luther King, Jr.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ASSIGN ... CASTING.
СообщениеДобавлено: Вт, июл 19 2011, 05:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, июн 01 2005, 09:40
Сообщения: 536
Откуда: Belgorod
Пол: Мужской
Alex80 написал:
Code:
TYPES: t_char TYPE c LENGTH 2.
DATA: lv_char TYPE t_char.
DATA: g_hex(8) TYPE x VALUE '00310031' .
FIELD-SYMBOLS: <g_char> TYPE t_char.
DO 200 TIMES.
  IF g_hex+2(2) > '0200'.
    g_hex+2(2) = '0031'.
    g_hex(2) = g_hex(2) + 1.
  ELSE.
    g_hex+2(2) = g_hex+2(2) + 1.
  ENDIF.
  ASSIGN g_hex TO <g_char> CASTING.
  WRITE <g_char>.
ENDDO.

Хм, а так работает.


Спасибо коллега. Для меня вторая строка стала прямо таки откровением в логике программирования на ABAP :D. Я знал что в системе иногда нужно использовать бубен, чётки и другие атрибуты русского народного фольклора :D, но такого еще не приходилось видеть.

_________________
Новый этап на проекте - устранение доработок :).


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: ASSIGN ... CASTING.
СообщениеДобавлено: Вт, июл 19 2011, 08:55 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
В ноте 303607 и связанных с ней вроде бы это описано? Или я не прав?

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


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

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


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

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


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

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