Вызов (Report-) функции из метода класса

Я хочу поменять заголовок в dynpro при запуске метода определенного класса. Поэтому я подумал, что мог бы вызвать функцию в своем отчете, где находится мой dynpro, который изменяет "SET TITLE" для изменения содержимого заголовка.

Возможно ли это и как именно? Или есть даже лучший способ?

Спасибо!

2 ответа

Использование SET TITLEBAR во время обработки PBO - не имеет значения, используется ли он непосредственно из метода, FORM или модуля. Я бы порекомендовал один SET TITLEBAR оператор, который всегда вызывается в одной и той же точке потока управления вместо засорения кода SET TITLEBAR заявления для лучшей ремонтопригодности.

Недавно мне нужно было реализовать нечто подобное, поэтому я определил иерархию классов, в которой я создал абстрактный класс с помощью метода CALL_DYNPRO. Этот метод предназначен для загрузки конкретного dynpro в конкретные классы.

Таким образом, в зависимости от внутреннего действия, которое я определил, я генерирую соответствующий экземпляр, а затем метод CALL_DYNPRO загружает созданный мной dynpro со своими собственными статусами и названиями графического интерфейса.

Ниже приведен более или менее код, который я создал.

********************************* The abstract class
class lc_caller definition abstract.
  public section.
    methods: call_dynpro.
endclass.

class lc_caller implementation.
  method call_dynpro.
  endmethod.
endclass.

********************************* The concrete classes
class lc_caller_01 definition inheriting from lc_caller.
  public section.
    methods: call_dynpro redefinition.
endclass.

class lc_caller_01 implementation.
  method call_dynpro.
    call screen 101.
  endmethod.
endclass.

class lc_caller_02 definition inheriting from lc_caller.
  public section.
    methods: call_dynpro redefinition.
endclass.

class lc_caller_02 implementation.
  method call_dynpro.
    call screen 102.
  endmethod.
endclass.

********************************* Factory    
class caller definition.
  public section.
  class-methods call importing i_type type char01 
                returning value(r_instance) type ref to lc_caller.
endclass.

class caller implementation.
  method call.
    data: caller1 type ref to lc_caller_01,
          caller2 type ref to lc_caller_02.
    case i_type.
      when '0'.
        create object caller1.
        r_instance = caller1.
      when '1'.
        create object caller2.
        r_instance = caller2.
      when others.
    endcase.
  endmethod.
endclass.

start-of-selection.
data obj type ref to lc_caller.
obj = caller=>call( '0' ).
obj->call_dynpro( ).

Это код внутри PBO.

Dynpro 101

module status_0101 output.
  set pf-status 'FORM1'.
  set titlebar 'VER'.
endmodule.

Dynpro 102

module status_0102 output.
  set pf-status 'FORM2'.
  set titlebar 'TRA'.
endmodule.

Если завтра мне нужно вызвать другой dynpro, я создаю его, а затем кодирую конкретный класс для его загрузки.

Очень просто и работает очень хорошо.

Надеюсь, поможет.

Другие вопросы по тегам