Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
пособие авар.doc
Скачиваний:
62
Добавлен:
02.09.2019
Размер:
2.34 Mб
Скачать

Поиск символьных строк в полях или внутренних таблицах

Предположим нужно найти строку 'California' в символьном поле 'Texas California New Mexico Louisiana Oregon'.

DATA: TEXT(100) VALUE 'Texas California New Mexico Louisiana Oregon'.

SEARCH TEXT FOR 'California'.

IF SY-SUBRC NE 0. WRITE 'Not found'. ENDIF.

Если поиск закончился успехом, то системный код возврата SY-SUBRC будет равен нулю. Кроме того системное поле SY_FDPOS содержит сдвиг найденной строки относительно начала. В приведенном примере SY_FDPOS=6.

Важно отметить, что команда SEARCH не различает верхнего и нижнего регистров.

Кроме того команда SEARCH может производить поиск во внутренних таблицах.

TYPES TEXT_LINE(80).

DATA: LETTER TYPE TEXT_LINE OCCURS 100.

Пусть первая строка письма LETTER содержит текст 'Diar IBS Group', вторая - 'thank you 4 your work!'. Тогда после выполнении команды

SEARCH LETTER FOR 'you'.

получим следующий результат:

  • SY-SUBRC = 0, поиск закончился успешно;

  • SY_TABIX = 2, индекс строки таблицы;

  • SY_FDPOS = 6, сдвиг относительно начала строки.

Символ «Перенос каретки»

В тестовых файлах символы переноса строки (или символы переноса каретки) имеют вид «#13#10». В языке ABAP они записываются как CL_ABAP_CHAR_UTILITIES=>CR_LF.

Запись данных

В ABAP/4 вывод информации на экран или принтер осуществляется с помощью команды WRITE.

Простой формат вывода

Операторы WRITE формируют выходную страницу. Рассмотрим пример вывода строковой информации, содержащую текущую дату:

WRITE: 'This is the current date:', SY-DATUM.

Результат выполнения выглядит следующим образом.

Рисунок 19

По умолчанию, символьные поля форматируются по левой границе, числовые - по правой. Т.е. оператор

WRITE: / 'String1', 15, 'String2', 16.

приведет к следующему форматированию:

Рисунок 20

Для того, чтобы информация выводилась с новой строки можно использовать команду NEW-LINE, символ "/" в команде WRITE или команду SKIP. В следующем примере показаны все три способа.

WRITE '1st line'.

NEW-LINE.

WRITE: 'New line',

/ 'Yet another line'.

SKIP 3.

WRITE / 'skip 3 produces three empty lines.'.

Задать положение поля в списке можно с помощью дополнения AT оператора WRITE или команды POSITION.

WRITE AT 5 'position 5'.

POS = 20.

WRITE AT POS 'position 20'.

POSITION 40.

WRITE 'position 40'.

Использование символов и пиктограмм

ABAP/4 имеет около 200 предварительно определенных символов и пиктограмм, которые можно вывести, использую дополнения AS SYMBOL и AS ICON команды WRITE. Для включения символов и пиктограмм необходимо использовать команду INCLUDE.

INCLUDE: <SYMBOL>, <ICON>

WRITE: / SYM_PHONE AS SYMBOL, 'telephone',

/ SYM_FAX AS SYMBOL, 'fax machine',

/ SYM_LEFT_HAND AS SYMBOL, 'hand pointing left',

/ SYM_CAUTION AS SYMBOL, 'caution',

/ ICON_ARROW_LEFT AS ICON, 'arrow left',

/ ICON_COST_CENTER AS ICON, 'cost center',

/ ICON_HOLD AS ICON, 'hold',

/ ICON_PRINT AS ICON, 'print'.

Результат показан на следующем рисунке.

Рисунок 21

Полный список символов и пиктограмм можно посмотреть в документации. Вот только некоторые из них:

Рисунок 22