从类方法调用(报告)功能
问题描述:
我想在触发特定类方法时更改dynpro中的标题栏。所以我想我可以在我的dynpro所在的报告中调用一个函数,这些更改使用'SET TITLE'来更改标题栏内容。从类方法调用(报告)功能
这是可能的,究竟如何?或者还有更好的方法吗?
谢谢!
答
在PBO处理过程中使用SET TITLEBAR
- 直接使用方法,FORM或模块无关紧要。我建议在控制流程中的同一点上总是调用一个单一的SET TITLEBAR
语句,而不是使用SET TITLEBAR
语句抛出代码以实现更好的可维护性。
答
最近,我需要实现类似的东西,所以我定义了一个类层次结构,其中我使用方法'CALL_DYNPRO'创建了一个抽象类。该方法旨在将特定的dynpro加载到具体的类中。
因此,根据我在内部定义的操作生成适当的实例,然后方法'CALL_DYNPRO'加载我用自己的gui状态和标题创建的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().
这是PBOs中的代码。
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我创建它,然后编写具体的类加载它。
非常简单,工作非常好。
希望它有帮助。
为什么?这背后的商业原因是什么?答案取决于此的实际原因... – vwegert
自定义类或标准?这是什么报道? – Suncatcher
我的同事做了一个报告(可运行程序),它正在调用一个类的所有方法。它应该成为柜台的软件。但现在这只是一个练习。 例如,如果某人付了他的东西,标题栏应该为新客户获得一个新号码。 所以问题是,在实际报告中没有真正发生,但调用方法。我不知道如何从类方法改变标题栏。 – Dyrdek