Abap OO and .Net OO [1]

本文对比了使用ABAP和.NET实现的简单计算器类。这些类能够接收两个整数和一个操作符作为输入,并执行加、减、乘、除等基本运算。通过示例展示了如何在各自环境中实例化类并调用方法。

Abap OO and .Net OO

 

Create a new class Lcl_Calculate

 

 

.Net OO

The Below is vb.net class code ( vs.net 2005)

 

Public Class Lcl_Calculate

    Private Number1 As Integer

    Private Number2 As Integer

    Private Operate As String

 

    Public Sub SetNumber1(ByVal N1 As Integer)

        Number1 = N1

    End Sub

 

    Public Function GetNumber1() As Integer

        Return Number1

    End Function

 

    Public Sub SetNumber2(ByVal N2 As Integer)

        Number2 = N2

    End Sub

 

    Public Function GetNumber2() As Integer

        Return Number2

    End Function

 

    'Public Sub SetOperate(ByVal l_operate As String)

    '    Operate = l_operate

    'End Sub

 

    'Public Function GetOperate() As String

    '    Return Operate

    'End Function

 

    Public Property GetOperate() As String

        Get

            Return Operate

        End Get

 

        Set(ByVal value As String)

            Operate = value

        End Set

    End Property

 

 

    Public Function ToResult() As Integer

        Select Case GetOperate

            Case "+"

                Return GetNumber1 + GetNumber2()

            Case "-"

                Return GetNumber1() - GetNumber2()

            Case "*"

                Return GetNumber1() * GetNumber2()

            Case "/"

                If GetNumber2() = 0 Then

                    MessageBox.Show("The divisor can not eq 0 !")

                Else

                    Return GetNumber1() / GetNumber2()

                End If

 

        End Select

    End Function

 

End Class

 

-----Main Program----

 

 

Public Class Form1

    Private lobj_calculate As New Lcl_Calculate

 

    Private Sub Btn_Result_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Result.Click

        lobj_calculate.SetNumber1(Me.Tbx_Number1.Text)

        lobj_calculate.SetNumber2(Me.Tbx_Number2.Text)

        lobj_calculate.GetOperate = Me.Tbx_Operate.Text

        Me.Tbx_Result.Text = lobj_calculate.ToResult

 

    End Sub

End Class

 

----------------

.ABAP OO

 

 

The Below is ABAP Code

 

*-----------------------------------------------------------------------

*  Company XXX Company Limited

*

*  Report Name:  ZZW_ABAPOO_002

*

*  Author: Lilo.Zhu

*

*  Date: 2008.01.23

*-----------------------------------------------------------------------

*  Description:

* =============

*   ABAP OO Program Fro Calculate

*

*-----------------------------------------------------------------------

* Change History:

* ===============

* Task#  Date        By        Description

* 1565   2008.01.23  Lilo      Initial Implementation

*

*----------------------------------------------------------------------

 

REPORT  ZZW_ABAPOO_002                          .

*---------Class Definition----------

CLASS LCL_CALCULATE DEFINITION.

  PUBLIC SECTION.

    METHODS:

      SETNUMBER1

        IMPORTING N1 TYPE I,

      GETNUMBER1

        RETURNING VALUE(LN1) TYPE I,

 

      SETNUMBER2

        IMPORTING N2 TYPE I,

      GETNUMBER2

        RETURNING VALUE(LN2) TYPE I,

 

      SETOPERATE

        IMPORTING OP TYPE C,

      GETOPERATE

        RETURNING VALUE(LOP) TYPE STRING,

 

      TORESULT

        RETURNING VALUE(LR) TYPE I.

 

  PRIVATE SECTION.

    DATA:

      NUMBER1 TYPE I,

      NUMBER2 TYPE I,

      OPERATE TYPE C.

ENDCLASS.

 

*--------Class Implementation-----------

CLASS LCL_CALCULATE IMPLEMENTATION.

    METHOD  SETNUMBER1.

       NUMBER1 = N1.

    ENDMETHOD.

 

    METHOD GETNUMBER1.

      LN1 = NUMBER1.

    ENDMETHOD.

 

    METHOD SETNUMBER2.

      NUMBER2  = N2.

    ENDMETHOD.

 

    METHOD GETNUMBER2.

      LN2  =   NUMBER2.

    ENDMETHOD.

 

    METHOD SETOPERATE.

      OPERATE  = OP.

    ENDMETHOD.

 

    METHOD GETOPERATE.

      LOP = OPERATE.

    ENDMETHOD.

 

    METHOD TORESULT.

      DATA: Z_OP TYPE C,

            Z_N1 TYPE I,

            Z_N2 TYPE I.

 

      CALL METHOD GETNUMBER1

        RECEIVING LN1 = Z_N1.

 

      CALL METHOD GETNUMBER2

        RECEIVING LN2 = Z_N2.

 

      CALL  METHOD GETOPERATE

        RECEIVING LOP = Z_OP.

 

      CASE Z_OP.

        WHEN '+'.

          LR = Z_N1 + Z_N2.

        WHEN '-'.

          LR = Z_N1 - Z_N2.

        WHEN '*'.

          LR = Z_N1 * Z_N2.

        WHEN '/'.

          IF Z_N2 EQ 0.

            message I004(ZZWMSG) with 'The divisor can not eq 0 !'.

          ELSE.

            LR = Z_N1 / Z_N2.

          ENDIF.

 

      ENDCASE.

 

    ENDMETHOD.

 

ENDCLASS.

 

*----------Main Program-------------

DATA: LOBJ_CALCULATE TYPE REF TO LCL_CALCULATE,

      L_RE  TYPE I.

SELECTION-SCREEN BEGIN OF BLOCK B1.

  PARAMETER: P_N1  TYPE I,

             P_OP  TYPE C,

             P_N2  TYPE I.

SELECTION-SCREEN END OF BLOCK B1.

 

START-OF-SELECTION.

  CREATE OBJECT LOBJ_CALCULATE.

 

  CALL METHOD LOBJ_CALCULATE->SETNUMBER1

      EXPORTING N1 = P_N1.

 

  CALL METHOD LOBJ_CALCULATE->SETNUMBER2

      EXPORTING N2 = P_N2.

 

  CALL METHOD LOBJ_CALCULATE->SETOPERATE

      EXPORTING OP = P_OP.

 

  CALL METHOD LOBJ_CALCULATE->TORESULT

      RECEIVING  LR = L_RE.

 

WRITE: P_N1 ,P_OP , P_N2, '=' , L_RE.

END-OF-SELECTION.

 

 

转载于:https://www.cnblogs.com/sesexxoo/archive/2008/01/23/6190309.html

参考资源链接:[ABAP面向对象开发OOALV报表教程](https://wenku.csdn.net/doc/rybh7c9s3y?utm_source=wenku_answer2doc_content) 在SAP ABAP的面向对象开发中,创建自定义类封装ALV显示逻辑是一个核心步骤。首先,在定义完必要的变量和选择屏幕后,你需要通过SE24事务代码创建一个类,比如名为`cl_alv_report`的类。在这个类中,你可以定义方法来初始化ALV,如`init_alv`,获取数据`get_data`,以及显示ALV的`display_alv`方法。 在`init_alv`方法中,通常会设置ALV的布局,包括列标题、宽度、字段排序等。`get_data`方法会从数据库获取数据,并填充到内部表中,这个内部表随后会传递给ALV进行显示。`display_alv`方法则是调用ALV的函数模块,如`REUSE_ALV_GRID_DISPLAY`,并将内部表作为参数传递,以显示数据。 对于选择屏幕上的自定义事件处理,你需要在选择屏幕的事件模块中编写代码,例如在`MODULE USER_COMMAND`模块中,当用户执行特定操作时,比如点击一个按钮,你可以触发一个自定义事件。这个事件可以调用类中定义的某个方法,比如`handle_user_event`,在这个方法中实现特定的逻辑,如过滤数据或更改ALV的显示设置。 综上所述,通过创建自定义类和处理选择屏幕上的事件,你可以为ABAP OOALV报表增加更多的动态功能和用户交互性。如果想进一步提高开发技能,不妨深入学习《ABAP面向对象开发OOALV报表教程》中的高级主题,包括更复杂的ALV定制、事件处理以及数据处理技巧,这将有助于你创建更加专业和用户友好的报表。 参考资源链接:[ABAP面向对象开发OOALV报表教程](https://wenku.csdn.net/doc/rybh7c9s3y?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值