从类方法调用(报告)功能

问题描述:

我想在触发特定类方法时更改dynpro中的标题栏。所以我想我可以在我的dynpro所在的报告中调用一个函数,这些更改使用'SET TITLE'来更改标题栏内容。从类方法调用(报告)功能

这是可能的,究竟如何?或者还有更好的方法吗?

谢谢!

+0

为什么?这背后的商业原因是什么?答案取决于此的实际原因... – vwegert

+0

自定义类或标准?这是什么报道? – Suncatcher

+0

我的同事做了一个报告(可运行程序),它正在调用一个类的所有方法。它应该成为柜台的软件。但现在这只是一个练习。 例如,如果某人付了他的东西,标题栏应该为新客户获得一个新号码。 所以问题是,在实际报告中没有真正发生,但调用方法。我不知道如何从类方法改变标题栏。 – Dyrdek

在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我创建它,然后编写具体的类加载它。

非常简单,工作非常好。

希望它有帮助。