ABAP, OpenUI5 06.01.2025
Всем привет!
Тут будет тема по программированию на ABAP, и немного по OpenUI5. По ABAP у меня есть сертификат:

Есть такие у меня умные книжки:

Тут https://programming.mybb.ru/viewtopic.php?id=180 я писал немного про OpenUI5.
Моя ФЛ Он и ОнаКороче начнём болтавню про ABAP. ABAP сильно похож по синтаксису на COBOL. В некоторых языках программирования начинается с названия программы.
Допустим когда я учил в университете язык программирования Паскаль, там мы писали так:
program HelloWorld;
В COBOL пишут так:
IDENTIFICATION DIVISION. PROGRAM-ID. HELLOWORLD.
А в ABAP пишут так:
REPORT z_hello_world.
Когда я ходил на курсы по программирование ABAP, нас учили что название начинается с буквы "z", т.е. точнее "z_".
Моя ФЛ Он и ОнаЧтобы закомментировать код, нужно пользоваться либо *, или ".
Символ * в начале строки программы указывает на то, что вся строка является комментарием.
Символ " , который можно ввести в любом месте строки, указывает на то, что оставшееся содержимое строки является комментарием. Это правило не применяется к символу " в символьных литералах и псевдокомментариях.
Например:
****************************************** * Пример кода * ****************************************** REPORT z_demo_code. WRITE 'Hello World'. "Выводим Hello World на экран
Моя ФЛ Он и ОнаПродолжим...
Поговорим про типы данных.
Короче в ABAP-е как и в других языках программирования есть типы данных.
|
Тип данных |
Длина |
Значение по умолчанию |
Описание |
|
Числовые типы данных |
|
|
|
|
I |
4 |
0 |
Целое число |
|
F |
8 |
0.0 |
Число с плавающей точкой |
|
P |
8 |
0 |
Упакованное число |
|
N |
1 |
9 |
Последовательность числовых символов |
|
Байтовые/строковые типы данных |
|
|
|
|
C |
1 |
'' (пустая строка) |
Последовательность символов |
|
X |
1 |
'00' |
Байтовая последовательность |
|
String |
Переменной длины |
|
Строка |
|
Xstring |
Переменной длины |
|
Hexadecimal строка |
|
Дата и время типы данных |
|
|
|
|
D |
8 |
"00000000" |
Дата, формат (YYYYMMDD) |
|
T |
6 |
"000000" |
Время, формат (HHMMSS) |
Чтобы объявить переменную нужно использовать оператор/ключевое слово DATA.
Пример:
REPORT Z_DEMO_DATATYPE. DATA firstname TYPE c LENGTH 50.
Ну или можно так:
REPORT Z_DEMO_DATATYPE. DATA firstname(30) TYPE c.
Чтобы записать в переменную то надо использовать ключевое слово VALUE:
REPORT Z_DEMO_DATATYPE. DATA firstname TYPE c LENGTH 50 VALUE 'Антоша'.
Теперь выведем на экран "Антоша":
REPORT Z_DEMO_DATATYPE. DATA firstname TYPE c LENGTH 50 VALUE 'Антоша'. WRITE c.
Моя ФЛ Он и ОнаОпечатка, надо не так
WRITE c.
А вот так:
REPORT Z_DEMO_DATATYPE. DATA firstname TYPE c LENGTH 50 VALUE 'Антоша'. WRITE firstname.
Моя ФЛ Он и ОнаОператор IF. Короче вот так:
IF выражение. ... ELSEIF выражение. ... ELSE. ... ENDIF.
Пример:
REPORT Z_DEMO_IFOPERATOR. DATA my_var TYPE i VALUE 3. IF my_var = 3. WRITE 'my_var равно 3'. ELSE. WRITE 'my_var не равно 3'. ENDIF.
P.S.:Кстати в Visual Basic примерно такое-же выражение т.е.:
IF выражение THEN ... ELSE IF выражение THEN
... ELSE ... END IF
Моя ФЛ Он и ОнаПродолжаем обсуждать ABAP. Теперь поговорим про классы. Вот код:
REPORT z_class_demo.
CLASS lcl_person DEFINITION.
PUBLIC SECTION.
METHODS:
constructor IMPORTING name TYPE string;
say_name.
PRIVATE SECTION.
DATA name TYPE string.
ENDCLASS.
CLASS lcl_person IMPLEMENTATION.
METHOD constructor.
me->name = name.
ENDMETHOD.
METHOD say_name.
WRITE: 'Hello ', me->name.
ENDMETHOD.
ENDCLASS.
Моя ФЛ Он и Онаme->name = name.
WRITE: 'Hello ', me->name.
me - есть в Visual Basic, а -> есть в Си++.
Моя ФЛ Он и ОнаПредположем у нас есть таблица person, в которой находятся данные о людях. В этой табице есть поля firstname - имя, lastname - фамилия, birthday - дата рождения, gender - пол.
Чтобы вывести все данные из таблицы и отобразить на экране, нужно написать такой код:
REPORT z_display_person.
DATA: lt_person TYPE TABLE OF person,
wa_person TYPE person.
SELECT * INTO TABLE lt_person FROM person.
IF sy-subrc = 0.
LOOP AT lt_person INTO wa_person.
WRITE: / 'Имя:', wa_person-firstname,
/ 'Фамилия:', wa_person-lastname,
/ 'Дата рождения:', wa_person-birthday,
/ 'Пол:', wa_person-gender.
ENDLOOP.
ENDIF.
Моя ФЛ Он и Она
список