Текущее время: Пн, авг 04 2025, 17:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Приколы на ABAP
СообщениеДобавлено: Чт, дек 06 2007, 11:52 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Пробовал публиковать приколы в "курилке", но там нас не понимают. Давайте попробуем здесь сделать один такой топик.
Итак, может ли поле типа NUMC быть "eq space"? Этого быть не может, но давайте проверим:

Code:
DATA: g_nchar1 type gjahr,
      g_nchar2 type gjahr,
      g_char(4) value '/'.

split g_char at '/' into g_nchar1 g_nchar2.
if g_nchar1 EQ space.
  CLEAR g_nchar1.
endif.


* код проверен в 4.6 и ERP 2005


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 06 2007, 12:21 
Гуру-модератор
Гуру-модератор
Аватара пользователя

Зарегистрирован:
Пн, окт 11 2004, 20:32
Сообщения: 2470
Пол: Мужской
Если память мне не изменяет - space в таких случаях считается как 0.
Вот совсем простой пример
Code:
DATA: GJAHR LIKE BKPF-GJAHR VALUE 0.

IF GJAHR = SPACE.
  WRITE:/ 'space'.
ENDIF.

результат:
space

так что никаких приколов :)
ЗЫ. версия 4.0

_________________
- Может ли настоящий мастер кунг-фу получить по морде?
- Настоящий мастер может все!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, дек 06 2007, 14:08 
Менеджер
Менеджер

Зарегистрирован:
Чт, янв 20 2005, 08:34
Сообщения: 573
Пол: Мужской
Code:
DATA: var_c TYPE c,
      var_n TYPE n,
      var_d TYPE d,
      var_t TYPE t,
      var_i TYPE i,
      var_p TYPE p,
      var_f TYPE f,     
      var_x TYPE x,
      var_s TYPE string,
      var_xs TYPE string.

IF space = var_n.
  WRITE: / 'C = N'.
ENDIF.

IF space = var_d.
  WRITE: / 'C = D'.
ENDIF.

IF space = var_t.
  WRITE: / 'C = T'.
ENDIF.

IF space = var_i.
  WRITE: / 'C = I'.
ENDIF.

IF space = var_p.
  WRITE: / 'C = P'.
ENDIF.

IF space = var_f.
  WRITE: / 'C = F'.
ENDIF.

IF space = var_x.
  WRITE: / 'C = X'.
ENDIF.

IF space = var_s.
  WRITE: / 'C = S'.
ENDIF.

IF space = var_xs.
  WRITE: / 'C = XS'.
ENDIF.




Результат:
C = N
C = I
C = P
C = F
C = S
C = XS

_________________
Волю в кулак, мышцы в узду, работай себе и не ахай!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 07 2007, 09:10 
Менеджер
Менеджер

Зарегистрирован:
Вт, авг 17 2004, 13:14
Сообщения: 664
Откуда: Москва
Пол: Мужской
Прикол в том, что в после такого split в поле типа NUMC будет действительно пустота. Более того, split прекрасно запихивает в NUMC любые символы!


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
Tim написал:
Прикол в том, что в после такого split в поле типа NUMC будет действительно пустота. Более того, split прекрасно запихивает в NUMC любые символы!
Если бы в первом сообщении вместо типа N использовать D или T, то возражений не было бы :)

Можно запихать туда текст и официальным способом:
Code:
data: d type d.
FIELD-SYMBOLS: <c> type c.
assign d to <c> CASTING.
<c> = 'text'.


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

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Tim написал:
Прикол в том, что в после такого split в поле типа NUMC будет действительно пустота. Более того, split прекрасно запихивает в NUMC любые символы!

SAP написал(а):
NUMC : 1-255 : numerischer Text : n(m)
где:
n : Any alphanumeric characters, however, valid values are only the digits 0 to 9


Code:
data: V1(5) type N
    , V2(5) type N.

field-symbols <FS> type C.

start-of-selection.

  assign V1 to <FS> casting. <FS> = 'ZZZ'. write / V1.
  assign V2 to <FS> casting. <FS> = 'YYY'. write / V2.
  add V1 to V2. write / V2.


Дамп будет только на третьей строке.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 07 2007, 12:32 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
Писал уже раз но повторюсь,
о "пользе" использования сионистских функций
Code:
report ztest.
data: KUNNR type KUNNR.
KUNNR = '9999'.
call function 'CONVERSION_EXIT_ALPHA_INPUT'
  exporting
    INPUT  = KUNNR
  importing
    OUTPUT = KUNNR.
write KUNNR using no edit mask.
KUNNR = '9999'.
call 'CONVERSION_EXIT_ALPHA_INPUT'  id 'INPUT'  field KUNNR
                                    id 'OUTPUT' field KUNNR.
write / KUNNR using no edit mask.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 07 2007, 12:46 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Mike1 написал:
Писал уже раз но повторюсь,
о "пользе" использования сионистских функций

Меж тем так все чудно работает:
Code:
DATA: KUNNR TYPE KUNNR,
      OUT_KUNNR TYPE KUNNR.
KUNNR = '9999'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
  EXPORTING
    INPUT  = KUNNR
  IMPORTING
    OUTPUT = KUNNR.
WRITE KUNNR USING NO EDIT MASK.
KUNNR = '9999'.
CALL 'CONVERSION_EXIT_ALPHA_INPUT'  ID 'INPUT'  FIELD KUNNR
                                    ID 'OUTPUT' FIELD OUT_KUNNR.
WRITE / OUT_KUNNR USING NO EDIT MASK.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, дек 07 2007, 13:18 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Ср, сен 22 2004, 08:42
Сообщения: 1079
Откуда: Москва
Пол: Мужской
[quote="John Doe"][/quote]при случае скажу самому настырному пользователю- эту программу можно оптимизировать будет работать секунд на 20 быстрее :)


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

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


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

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


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

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