Deutsch

ABAP, OpenUI5 06.01.2025

448  
uscheswoi_82 коренной житель06.01.25 04:04
06.01.25 04:04 

Всем привет!

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



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



Тут https://programming.mybb.ru/viewtopic.php?id=180 я писал немного про OpenUI5.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#1 
uscheswoi_82 патриот29.01.25 00:36
NEW 29.01.25 00:36 
в ответ uscheswoi_82 06.01.25 04:04

Короче начнём болтавню про ABAP. ABAP сильно похож по синтаксису на COBOL. В некоторых языках программирования начинается с названия программы.

Допустим когда я учил в университете язык программирования Паскаль, там мы писали так:

program HelloWorld;



В COBOL пишут так:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLOWORLD.



А в ABAP пишут так:

REPORT z_hello_world.

Когда я ходил на курсы по программирование ABAP, нас учили что название начинается с буквы "z", т.е. точнее "z_".

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#2 
uscheswoi_82 патриот29.01.25 00:44
NEW 29.01.25 00:44 
в ответ uscheswoi_82 29.01.25 00:36, Последний раз изменено 29.01.25 00:46 (uscheswoi_82)

Чтобы закомментировать код, нужно пользоваться либо *, или ".

Символ * в начале строки программы указывает на то, что вся строка является комментарием.

Символ " , который можно ввести в любом месте строки, указывает на то, что оставшееся содержимое строки является комментарием. Это правило не применяется к символу " в символьных литералах и псевдокомментариях.


Например:

******************************************
* Пример кода                            *
******************************************
REPORT z_demo_code.
WRITE 'Hello World'. "Выводим Hello World на экран
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#3 
uscheswoi_82 патриот20.02.25 09:29
NEW 20.02.25 09:29 
в ответ uscheswoi_82 29.01.25 00:44

Продолжим...

Поговорим про типы данных.

Короче в 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.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#4 
uscheswoi_82 патриот21.02.25 04:38
NEW 21.02.25 04:38 
в ответ uscheswoi_82 20.02.25 09:29

Опечатка, надо не так

WRITE c.


А вот так:

REPORT Z_DEMO_DATATYPE.
DATA firstname TYPE c LENGTH 50 VALUE 'Антоша'. 
WRITE firstname.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#5 
uscheswoi_82 патриот01.03.25 05:59
NEW 01.03.25 05:59 
в ответ uscheswoi_82 21.02.25 04:38

Оператор 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
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#6 
uscheswoi_82 патриот25.03.25 05:46
NEW 25.03.25 05:46 
в ответ uscheswoi_82 01.03.25 05:59

Продолжаем обсуждать 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.
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#7 
uscheswoi_82 патриот25.03.25 05:48
NEW 25.03.25 05:48 
в ответ uscheswoi_82 25.03.25 05:46
me->name = name.


WRITE: 'Hello ', me->name.

me - есть в Visual Basic, а -> есть в Си++.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
#8