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

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


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

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


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

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