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

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


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

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


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

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