Заявление недоступно - PullRequest
0 голосов
/ 16 марта 2020

есть ошибка в строке 49, где я написал CALL METHOD lclref->lcm . как я могу ее решить?

REPORT ZPRACTICE_TILL_NOW.

include zlc.
include zinc.

START-OF-SELECTION.
create OBJECT lclref.
CALL METHOD lclref->lcm .

сначала включают в себя:

class zlcl DEFINITION.
  PUBLIC SECTION.
  METHODS: lcm.
  ENDCLASS.

  CLASS zlcl IMPLEMENTATION.
    method lcm.
    new-LINE.
    WRITE: 'method called '.
    ENDMETHOD.
    ENDCLASS.

второй включают в себя:

*&---------------------------------------------------------------------*
*&  Include           ZINC
*&---------------------------------------------------------------------*

    data lclref TYPE REF TO zlcl.

Ответы [ 2 ]

0 голосов
/ 16 марта 2020
*&---------------------------------------------------------------------*
*&  Include           ZINC
*&---------------------------------------------------------------------*

    data lclref TYPE REF TO zlcl.

Вы уверены, что сначала INCLUDE - это zin c

class zlcl DEFINITION.
  PUBLIC SECTION.
  METHODS: lcm.
  ENDCLASS.

  CLASS zlcl IMPLEMENTATION.
    method lcm.
    new-LINE.
    WRITE: 'method called '.
    ENDMETHOD.
    ENDCLASS.

Когда я пытался с вашим кодом, я не получил никакой ошибки. Пожалуйста, проверьте ваш INCLUDE, какой из них является первым?

Я не знаю вашу версию SAP. Если поддерживается, вы можете использовать встроенную декларацию. Вы можете увидеть пример ниже. Нет необходимости в дополнительных декларациях данных

DATA(lo_lcl) = new zlcl( ).
lo_lcl->lcm( ).
0 голосов
/ 16 марта 2020

Ошибка «Оператор недоступен» вызвана тем, что lclref является объектом. Для вызова метода объекта, на который ссылается класс (в данном случае объект -> lclref и класс -> zlcl).

, вы можете напрямую указать объект и метод.

Следовательно, исправленный код будет выглядеть так: lclref-> lcm.

Веселитесь.

...