Files
004_comission/_resources/it114105/itp4512/Assignment/ZASG_YOURNAME_UP.abap
louiscklaw 6c60a73f30 update,
2025-01-31 19:15:17 +08:00

141 lines
5.1 KiB
ABAP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

*&---------------------------------------------------------------------*
*& 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.