This commit is contained in:
louiscklaw
2025-01-31 19:15:17 +08:00
parent 09adae8c8e
commit 6c60a73f30
1546 changed files with 286918 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
#### ZASG_YOURNAME TABLE
| Field | Key | Initi | Data element | DTyp | Length | Decimal | Short Description |
|------------|-----|-------|--------------|------|--------|---------|---------------------------|
| MANDT | V | V | MANDT | CLNT | 3 | 0 | Client |
| CARRID | V | V | S_CARRID | CHAR | 3 | 0 | Airline Code |
| CONNID | V | V | S_CONN_ID | NUMC | 4 | 0 | Flight Connection Number |
| CUSTOMID | V | V | S_CUSTOMER | NUMC | 8 | 0 | Customer Number |
| FLDATE | V | V | S_DATE | DATS | 8 | 0 | Flight date |
| FLTIME | | | SFLTIME | INT4 | 10 | 0 | Flight time |
| CARRNAME | | | S_CARRNAME | CHAR | 20 | 0 | Airline name |
| LUGGWEIGHT | | | S_LUGWEIGH | QUAN | 8 | 4 | Weight of Luggage |
| WUNIT | | | GEWEI | UNIT | 3 | 0 | Weight Unit |
| PASSNAME | | | S_PASSNAME | CHAR | 25 | 0 | Name of the Passenger |
| H_FLAG | | | FLAG | CHAR | 1 | 0 | General Flag |
| HKEARNING | | | AWKGR | CURR | 15 | 2 | Amount |
| CURRENCY | | | S_CURRCODE | CUKY | 5 | 0 | Local currency of airline |
| PLANETYPE | | | S_PLANETYE | CHAR | 10 | 0 | PLANE TYPE |
#### Message class Z_MESSAGE_YOURNAME
| MessageId | Message short text |
|-----------|----------------------------|
| 000 | System Erro |
| 001 | Data not found in table &1 |
| 002 | Insert Data Error |
#### Function module Z_YOURNAME_FN1
Import
| Parameter Name | Type | Associated Type | Default value | Opt.. | Pa.. | Short text |
|----------------|------|-----------------|---------------|-------|------|---------------------------|
| CURRENCY | TYPE | S_CURRCODE | | | | Local currency of airline |
| EARNING | TYPE | AWKGR | | | | Amount |
Export
| Parameter Name | Type | Associated Type | Pass Va.. | Short text |
|----------------|------|-----------------|-----------|---------------------|
| RESULT | TYPE | AWKGR | | ABAP Book Customers |
Exceptions
| Parameter Name | Type spec.. | Associated Type | Pass Va.. | Short text |
|----------------|-------------|-----------------|-----------|---------------------|
| RESULT | TYPE | AWKGR | | ABAP Book Customers |
#### Function module Z_YOURNAME_FN2
Import
| Parameter Name | Type | Associated Type | Default value | Opt.. | Pa.. | Short text |
|----------------|------|-----------------|---------------|-------|------|-------------------|
| WTUNIT | TYPE | UNIT | | | | Unit |
| LWEIGHT | TYPE | S_LUGWEIGH | | | | Weight of Luggage |
Export
| Parameter Name | Type | Associated Type | Pass Va.. | Short text |
|----------------|------|-----------------|-----------|-------------------|
| LGWEIGHT | TYPE | S_LUGWEIGH | | Weight of Luggage |

View File

@@ -0,0 +1,140 @@
*&---------------------------------------------------------------------*
*& Report  ZASG_YOURNAME_UP *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZASG_YOURNAME_UP MESSAGE-ID Z_MESSAGE_YOURNAME
TYPES: BEGIN OF ZASG_DB,
MANDT TYPE MANDT,
CARRID TYPE S_CARRID,
CARRNAME TYPE S_CARRNAME,
        CONNID TYPE S_CONN_ID,
        FLTIME TYPE S_FLTIME,
        FLDATE TYPE S_DATE,
        CUSTOMID TYPE S_CUSTOMER,
        LUGGWEIGHT TYPE S_LUGWEIGH,
        WUNIT TYPE GEWEI,
        PASSNAME TYPE S_PASSNAME,
        LOCCURAM TYPE S_L_CUR_PR,
        PRICE TYPE S_PRICE,
        CURRENCY TYPE S_CURRCODE,
        PLANETYPE TYPE S_PLANETYE,
      END OF ZASG_DB.
DATA ITAB TYPE TABLE OF ZASG_DB.
DATA WA TYPE ZASG_DB.
DATA ZASGWA TYPE ZASG_YOURNAME.
DATA MAXTIME LIKE WA-FLTIME VALUE '660'.
SELECT SBOOK~MANDT SBOOK~CARRID SCARR~CARRNAME SBOOK~CONNID
SPFLI~FLTIME
SBOOK~FLDATE SBOOK~CUSTOMID SBOOK~LUGGWEIGHT SBOOK~WUNIT
SBOOK~PASSNAME
SBOOK~LOCCURAM SFLIGHT~PRICE SBOOK~LOCCURKEY SFLIGHT~PLANETYPE
FROM SBOOK
        INNER JOIN SCARR
                ON SBOOK~CARRID = SCARR~CARRID
    INNER JOIN SPFLI
                ON SBOOK~CONNID = SPFLI~CONNID
                AND SPFLI~CARRID = SCARR~CARRID
    INNER JOIN SFLIGHT
                ON SBOOK~FLDATE = SFLIGHT~FLDATE
                AND SFLIGHT~CARRID = SCARR~CARRID
                AND SFLIGHT~CONNID = SPFLI~CONNID
    INTO TABLE ITAB.
LOOP AT ITAB INTO WA.
  DATA: EARNING TYPE P DECIMALS 2,
        HKEARNING TYPE P DECIMALS 2.
  EARNING = WA-LOCCURAM - WA-PRICE.
  CALL FUNCTION 'Z_YOURNAME_FN1'
    EXPORTING
      CURRENCY          = WA-CURRENCY
      EARNING           = EARNING
    IMPORTING
      RESULT            = HKEARNING
    EXCEPTIONS
      NO_CURRENCY       = 1
      OTHERS            = 2
IF SY-SUBRC <> 0.
MESSAGE I001(Z_MESSAGE_A).
ELSE.
    DATA: RESULT_LGWEIGHT TYPE S_LUGWEIGH,
          H_FLAG TYPE FLAG.
    CALL FUNCTION 'Z_YOURNAME_FN2'
      EXPORTING
        WTUNIT         = WA-WUNIT
        LWEIGHT        = WA-LUGGWEIGHT
      IMPORTING
        LGWEIGHT       = RESULT_LGWEIGHT
              .
    IF SY-SUBRC <> 0.
      MESSAGE I002(Z_MESSAGE_A).
    ELSE.
      IF RESULT_LGWEIGHT > 14 OR WA-FLTIME > MAXTIME.
H_FLAG = 'X'.
      ELSE.
        H_FLAG = ' '.
      ENDIF.
      ZASGWA-MANDT = WA-MANDT.
      ZASGWA-CARRID = WA-CARRID.
      ZASGWA-CONNID = WA-CONNID.
      ZASGWA-CUSTOMID = WA-CUSTOMID.
      ZASGWA-FLDATE = WA-FLDATE.
      ZASGWA-FLTIME = WA-FLTIME.
      ZASGWA-CARRNAME = WA-CARRNAME.
      ZASGWA-LUGGWEIGHT = RESULT_LGWEIGHT.
      ZASGWA-WUNIT = WA-WUNIT.
      ZASGWA-PASSNAME = WA-PASSNAME.
      ZASGWA-H_FLAG = H_FLAG.
      ZASGWA-HKEARNING = HKEARNING.
      ZASGWA-CURRENCY = WA-CURRENCY.
      ZASGWA-PLANETYPE = WA-PLANETYPE.
      INSERT INTO ZASG_YOURNAME VALUES ZASGWA.
    ENDIF.
ENDIF.
ENDLOOP.
IF SY-SUBRC = 4.
MESSAGE i002.
ELSEIF SY-SUBRC <> 0.
MESSAGE i000.
ELSE.
WRITE: /(5) 'MANDT',
        (5) 'CARRID',
        (20) 'CARRNAME',
        (6) 'CONNID',
        (10) 'FLTIME';,
        (12) 'FLDATE',
          (12) 'CUSTOMID',
        (15) 'LUGGWEIGHT',
        (5) 'WUNIT',
        (25) 'PASSNAME',
        (6) 'H_FLAG',
        (12) 'HKEARNING',
        (8) 'CURRENCY',
        (10) 'PLANETYPE'.
SELECT * FROM ZASG_YOURNAME INTO ZASGWA.
WRITE: / ZASGWA-MANDT UNDER 'MANDT',
ZASGWA-CARRID UNDER 'CARRID',
ZASGWA-CARRNAME UNDER 'CARRNAME',
ZASGWA-CONNID UNDER 'CONNID',
ZASGWA-FLTIME UNDER 'FLTIME',
ZASGWA-FLDATE UNDER 'FLDATE',
ZASGWA-CUSTOMID UNDER 'CUSTOMID',
ZASGWA-LUGGWEIGHT UNDER 'LUGGWEIGHT',
ZASGWA-WUNIT UNDER 'WUNIT',
ZASGWA-PASSNAME UNDER 'PASSNAME',
ZASGWA-H_FLAG UNDER 'H_FLAG',
ZASGWA-HKEARNING UNDER 'HKEARNING' LEFT-JUSTIFIED,
ZASGWA-CURRENCY UNDER 'CURRENCY',
ZASGWA-PLANETYPE UNDER 'PLANETYPE'.
ENDSELECT.
ENDIF.

View File

@@ -0,0 +1,83 @@
*&---------------------------------------------------------------------*
*& Report ZASG_YOURNAME_DP *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ZASG_YOURNAME_DP MESSAGE-ID Z_MESSAGE_YOURNAME
.
TABLES ZASG_YOURNAME.
SELECTION-SCREEN BEGIN OF BLOCK OPTIONS WITH FRAME TITLE OP1.
PARAMETERS R1 RADIOBUTTON GROUP FLAG.
PARAMETERS R2 RADIOBUTTON GROUP FLAG DEFAULT 'X'.
PARAMETERS S_CURREY TYPE ZASG_YOURNAME-CURRENCY DEFAULT 'USD'.
SELECT-OPTIONS S_HKEARN FOR ZASG_YOURNAME-HKEARNING DEFAULT '1.00' TO
'9999.90'.
SELECT-OPTIONS S_CARRID FOR ZASG_YOURNAME-CARRID DEFAULT 'AA' TO 'UA'
.
SELECT-OPTIONS S_PLTYPE FOR ZASG_YOURNAME-PLANETYPE DEFAULT '747-400'
.
SELECTION-SCREEN END OF BLOCK OPTIONS.
TYPES: BEGIN OF RESULT,
PLANETYPE TYPE ZASG_YOURNAME-PLANETYPE,
FLTIME TYPE ZASG_YOURNAME-FLTIME,
CARRNAME TYPE ZASG_YOURNAME-CARRNAME,
CONNID TYPE ZASG_YOURNAME-CONNID,
CUSTOMID TYPE ZASG_YOURNAME-CUSTOMID,
HKEARNING TYPE ZASG_YOURNAME-HKEARNING,
END OF RESULT.
DATA CHKFLAG TYPE ZASG_YOURNAME-H_FLAG.
DATA ITAB TYPE TABLE OF RESULT.
DATA WA TYPE RESULT.
if r1 = 'X'.
CHKFLAG = 'X'.
WRITE: / 'Report on ZASG_YOURNAME FOR H_Flag set'.
ELSE.
CHKFLAG = ''.
WRITE: / 'Report on ZASG_YOURNAME FOR H_Flag not set'.
ENDIF.
SELECT
PLANETYPE FLTIME CARRNAME CONNID CUSTOMID HKEARNING
INTO TABLE ITAB
FROM ZASG_YOURNAME
WHERE ZASG_YOURNAME~H_FLAG = CHKFLAG
AND ZASG_YOURNAME~CURRENCY = S_CURREY
AND ZASG_YOURNAME~HKEARNING IN S_HKEARN
AND ZASG_YOURNAME~CARRID IN S_CARRID
AND ZASG_YOURNAME~PLANETYPE IN S_PLTYPE.
IF SY-SUBRC = 4.
MESSAGE i001 WITH 'ZASG_YOURNAME'.
ELSEIF SY-SUBRC <> 0.
MESSAGE i000.
ELSE.
SORT ITAB BY CONNID ASCENDING CUSTOMID ASCENDING HKEARNING DESCENDING
FLTIME ASCENDING .
LOOP AT ITAB INTO WA.
ULINE.
WRITE: / 'Plane Type:', 14(10) WA-PLANETYPE.
WRITE: / 'Flight Time:', 16(10) WA-FLTIME.
WRITE: / 'Airline:', 10(20) WA-CARRNAME.
WRITE: / 'Flight No.:', 13(8) WA-CONNID.
WRITE: / 'Customer Number:', 16(8) WA-CUSTOMID NO-ZERO.
WRITE: / 'Earning in HK$:', 22(15) WA-HKEARNING.
ENDLOOP.
ENDIF.
ULINE.
WRITE 'End of Report'.
INITIALIZATION.
OP1 = 'Select Option'.

View File

@@ -0,0 +1,27 @@
FUNCTION Z_YOURNAME_FN1.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(CURRENCY) TYPE S_CURRCODE
*" REFERENCE(EARNING) TYPE AWKGR
*" EXPORTING
*" REFERENCE(RESULT) TYPE AWKGR
*" EXCEPTIONS
*" NO_CURRENCY
*"----------------------------------------------------------------------
IF CURRENCY EQ 'USD'.
RESULT = '+7.8' * EARNING.
ELSEIF CURRENCY EQ 'EUR'.
    RESULT = '+8.4' * EARNING.
  ELSEIF CURRENCY EQ 'AUD'.
    RESULT = '+5.2' * EARNING.
  ELSEIF CURRENCY EQ 'SGD'.
    RESULT = '+5.6' * EARNING.
  ELSEIF CURRENCY EQ 'JPY'.
    RESULT = '+0.07' * EARNING.
  ELSE.
    RAISE NO_CURRENCY.
  ENDIF.
ENDFUNCTION.

View File

@@ -0,0 +1,17 @@
FUNCTION Z_YOURNAME_FN2.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" REFERENCE(WTUNIT) TYPE UNIT
*" REFERENCE(LWEIGHT) TYPE S_LUGWEIGH
*" EXPORTING
*" REFERENCE(LGWEIGHT) TYPE S_LUGWEIGH
*"----------------------------------------------------------------------
IF WIUNIT CS 'KG'.
LGWEIGHT = LWEIGHT.
ELSE.
LGWEIGHT = LWEIGHT / '2.2'.
ENDIF.
ENDFUNCTION.