Вы находитесь на странице: 1из 9

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

* program for: VIEWFRAME_Z202EMP_MVIEW


* generation date: 09.09.2019 at 15:01:36
* view maintenance generator version: #001407#
*---------------------------------------------------------------------*
FUNCTION VIEWFRAME_Z202EMP_MVIEW .

DATA: ENQUEUE_PROCESSED TYPE C. "flag: view enqueued by VIEWFRAME_...

*-<<<-------------------------------------------------------------->>>>*
* Entrypoint after changing maintenance mode (show <--> update) *
*-<<<-------------------------------------------------------------->>>>*
DO.
*----------------------------------------------------------------------*
* Select data from database *
*----------------------------------------------------------------------*
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = READ
VIEW_ACTION = VIEW_ACTION
VIEW_NAME = VIEW_NAME
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2.
CASE SY-SUBRC.
WHEN 1.
RAISE MISSING_CORR_NUMBER.
WHEN 2.
RAISE NO_VALUE_FOR_SUBSET_IDENT.
ENDCASE.
*-<<<-------------------------------------------------------------->>>>*
* Entrypoint after saving data into database *
* Entrypoint after refreshing selected entries from database *
*-<<<-------------------------------------------------------------->>>>*
DO.
*----------------------------------------------------------------------*
* Edit data *
*----------------------------------------------------------------------*
DO.
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = EDIT
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UCOMM = FUNCTION
UPDATE_REQUIRED = STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2.
CASE SY-SUBRC.
WHEN 1.
IF MAINT_MODE EQ TRANSPORTIEREN AND VIEW_ACTION EQ AENDERN.
MOVE VIEW_ACTION TO MAINT_MODE.
ELSE.
PERFORM BEFORE_LEAVING_FRAME_FUNCTION
USING X_HEADER-FRM_BF_END.
RAISE MISSING_CORR_NUMBER.
ENDIF.
WHEN 2.
RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN OTHERS.
EXIT.
ENDCASE.
ENDDO.
*----------------------------------------------------------------------*
* Handle usercommands... *
* ...at first handle commands which could cause loss of data *
*----------------------------------------------------------------------*
IF FUNCTION EQ BACK. FUNCTION = END. ENDIF.
IF ( FUNCTION EQ SWITCH_TO_SHOW_MODE OR
FUNCTION EQ GET_ANOTHER_VIEW OR
FUNCTION EQ SWITCH_TRANSP_TO_UPD_MODE OR
FUNCTION EQ END ) AND
STATUS_Z202EMP_MVIEW-UPD_FLAG NE SPACE.
PERFORM BEENDEN.
CASE SY-SUBRC.
WHEN 0.
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = SAVE
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UPDATE_REQUIRED = STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2
SAVING_CORRECTION_FAILED = 3.
CASE SY-SUBRC.
WHEN 0.
IF STATUS_Z202EMP_MVIEW-UPD_FLAG EQ SPACE. EXIT. ENDIF.
WHEN 1. RAISE MISSING_CORR_NUMBER.
WHEN 2. RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN 3.
ENDCASE.
WHEN 8. EXIT.
WHEN 12.
ENDCASE.
*----------------------------------------------------------------------*
* ...2nd: transport request *
*----------------------------------------------------------------------*
ELSEIF FUNCTION EQ TRANSPORT.
IF STATUS_Z202EMP_MVIEW-UPD_FLAG NE SPACE.
PERFORM TRANSPORTIEREN.
CASE SY-SUBRC.
WHEN 0.
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = SAVE
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UPDATE_REQUIRED =
STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2
SAVING_CORRECTION_FAILED = 3.
CASE SY-SUBRC.
WHEN 0. MAINT_MODE = TRANSPORTIEREN.
WHEN 1. RAISE MISSING_CORR_NUMBER.
WHEN 2. RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN 3.
ENDCASE.
WHEN 8.
EXIT.
WHEN 12.
ENDCASE.
ELSE.
MAINT_MODE = TRANSPORTIEREN.
ENDIF.
*----------------------------------------------------------------------*
* ...now reset or save requests *
*----------------------------------------------------------------------*
ELSEIF FUNCTION EQ RESET_LIST OR
FUNCTION EQ RESET_ENTRY OR
FUNCTION EQ SAVE.
*----------------------------------------------------------------------*
* Refresh selected entries from database or save data into database *
*----------------------------------------------------------------------*
CALL FUNCTION 'VIEWPROC_Z202EMP_MVIEW'
EXPORTING
FCODE = FUNCTION
VIEW_ACTION = MAINT_MODE
VIEW_NAME = VIEW_NAME
CORR_NUMBER = CORR_NUMBER
IMPORTING
UPDATE_REQUIRED = STATUS_Z202EMP_MVIEW-UPD_FLAG
TABLES
EXCL_CUA_FUNCT = EXCL_CUA_FUNCT
EXTRACT = Z202EMP_MVIEW_EXTRACT
TOTAL = Z202EMP_MVIEW_TOTAL
X_HEADER = X_HEADER
X_NAMTAB = X_NAMTAB
DBA_SELLIST = DBA_SELLIST
DPL_SELLIST = DPL_SELLIST
CORR_KEYTAB = E071K_TAB
EXCEPTIONS
MISSING_CORR_NUMBER = 1
NO_VALUE_FOR_SUBSET_IDENT = 2
SAVING_CORRECTION_FAILED = 3.
CASE SY-SUBRC.
WHEN 1. RAISE MISSING_CORR_NUMBER.
WHEN 2. RAISE NO_VALUE_FOR_SUBSET_IDENT.
WHEN 3.
ENDCASE.
ELSE.
EXIT.
ENDIF.
ENDDO.
*----------------------------------------------------------------------*
* ...now other commands... *
*----------------------------------------------------------------------*
CASE FUNCTION.
WHEN SWITCH_TO_SHOW_MODE.
* change maintenance mode from update to show
PERFORM ENQUEUE USING 'D' X_HEADER-FRM_AF_ENQ. "dequeue view
CLEAR ENQUEUE_PROCESSED.
VIEW_ACTION = ANZEIGEN.
WHEN SWITCH_TO_UPDATE_MODE.
* change maintenance mode from show to update
PERFORM ENQUEUE USING 'E' X_HEADER-FRM_AF_ENQ. "enqueue view
IF SY-SUBRC EQ 0.
MOVE 'X' TO ENQUEUE_PROCESSED.
VIEW_ACTION = AENDERN.
ENDIF.
WHEN SWITCH_TRANSP_TO_UPD_MODE.
* change maintenance mode from transport to update
VIEW_ACTION = AENDERN.
WHEN TRANSPORT.
* change maintenance mode from update to transport
VIEW_ACTION = TRANSPORTIEREN.
WHEN OTHERS.
IF ENQUEUE_PROCESSED NE SPACE.
PERFORM ENQUEUE USING 'D' X_HEADER-FRM_AF_ENQ. "dequeue view
ENDIF.
PERFORM BEFORE_LEAVING_FRAME_FUNCTION USING X_HEADER-FRM_BF_END.
EXIT.
ENDCASE.
ENDDO.
ENDFUNCTION.

*---------------------------------------------------------------------*
* program for: VIEWPROC_Z202EMP_MVIEW
* generation date: 09.09.2019 at 15:01:38
* view maintenance generator version: #001407#
*---------------------------------------------------------------------*
FUNCTION VIEWPROC_Z202EMP_MVIEW .
*----------------------------------------------------------------------*
* Initialization: set field-symbols etc. *
*----------------------------------------------------------------------*
IF LAST_VIEW_INFO NE VIEW_NAME.
ASSIGN Z202EMP_MVIEW TO <TABLE1>.
ASSIGN *Z202EMP_MVIEW TO <INITIAL>.
ASSIGN STATUS_Z202EMP_MVIEW TO <STATUS>.
PERFORM INITIALISIEREN.
ENDIF.
PERFORM JUSTIFY_ACTION_MODE.
MOVE: VIEW_ACTION TO MAINT_MODE,
CORR_NUMBER TO CORR_NBR.

*----------------------------------------------------------------------*
* Get data from database *
*----------------------------------------------------------------------*
IF FCODE EQ READ OR FCODE EQ READ_AND_EDIT.
PERFORM PREPARE_READ_REQUEST.
IF X_HEADER-FRM_RP_GET NE SPACE.
PERFORM (X_HEADER-FRM_RP_GET) IN PROGRAM.
ELSE.
PERFORM GET_DATA_Z202EMP_MVIEW.
ENDIF.
IF FCODE EQ READ_AND_EDIT. FCODE = EDIT. ENDIF.
ENDIF.

CASE FCODE.
WHEN EDIT. " Edit read data
PERFORM CALL_DYNPRO.
PERFORM CHECK_UPD.
*....................................................................*

WHEN SAVE. " Write data into database


PERFORM PREPARE_SAVING.
IF <STATUS>-UPD_FLAG NE SPACE.
IF X_HEADER-FRM_RP_UPD NE SPACE.
PERFORM (X_HEADER-FRM_RP_UPD) IN PROGRAM.
ELSE.
IF SY-SUBRC EQ 0.
PERFORM DB_UPD_Z202EMP_MVIEW.
ENDIF.
ENDIF.
PERFORM AFTER_SAVING.
ENDIF.
*....................................................................*

WHEN RESET_LIST. " Refresh all marked entries of EXTRACT from db


PERFORM RESET_ENTRIES USING LIST_BILD.
*....................................................................*

WHEN RESET_ENTRY. " Refresh single entry from database


PERFORM RESET_ENTRIES USING DETAIL_BILD.
*.......................................................................
ENDCASE.
MOVE STATUS_Z202EMP_MVIEW-UPD_FLAG TO UPDATE_REQUIRED.
ENDFUNCTION.

FUNCTION Z202CUST_BY_SELOPT.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" TABLES
*" T_CUST_DATA TYPE Z202_CUST_ADDR_T
*" T_CUST_NUM STRUCTURE SELOPT
*"----------------------------------------------------------------------

SELECT kunnr
ort01
land1
FROM KNA1
INTO TABLE T_CUST_DATA
WHERE KUNNR IN T_CUST_NUM.

ENDFUNCTION.

FUNCTION Z202FM1.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_AMT) TYPE I
*" REFERENCE(I_DENOM) TYPE I
*" EXPORTING
*" REFERENCE(E_NO_OF_NOTES) TYPE I
*" REFERENCE(E_REM_BAL) TYPE I
*"----------------------------------------------------------------------
E_NO_OF_NOTES = I_AMT DIV I_DENOM.

E_REM_BAL = I_AMT MOD I_DENOM.

ENDFUNCTION.

FUNCTION Z202_CUST_ADDR.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_LAND1) TYPE LAND1_GP
*" TABLES
*" T_CUST_ADDR TYPE Z202_CUST_ADDR_T
*" EXCEPTIONS
*" ISINITIAL
*"----------------------------------------------------------------------
SELECT KUNNR
LAND1
NAME1
ORT01
PSTLZ
FROM KNA1
INTO TABLE T_CUST_ADDR
WHERE LAND1 = I_LAND1.
IF T_CUST_ADDR[] IS INITIAL.
RAISE isinitial.
ENDIF.
ENDFUNCTION.

FUNCTION Z202_EMP_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" TABLES
*" T_EMP_DATA TYPE Y202EMP_T
*" T_EMP_NUM STRUCTURE SELOPT
*"----------------------------------------------------------------------
select dno
salkey
empno
empname
sal
from y202emp
into table t_emp_data
where empno in t_emp_num.
ENDFUNCTION.

FUNCTION Z202_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(I_FORMNAME) TYPE CHAR25
*" REFERENCE(I_PROGNAME) TYPE SY-REPID
*"----------------------------------------------------------------------
WRITE: /5 'First Line inside function module'.
PERFORM (I_FORMNAME)
IN PROGRAM (I_PROGNAME).
WRITE: /5 'Last Line inside function module.'.

ENDFUNCTION.

FUNCTION Z202_MATERIAL_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IT_MATNR_SELOPT) TYPE EFG_TAB_RANGES
*" EXPORTING
*" REFERENCE(ET_MATERIAL_DATA) TYPE Z202_MAT_T
*"----------------------------------------------------------------------

SELECT A~MATNR
A~MTART
A~MBRSH
A~MATKL
B~MAKTX
C~MTBEZ
D~MBBEZ
E~WGBEZ
FROM MARA AS A INNER JOIN MAKT AS B
ON A~MATNR = B~MATNR
INNER JOIN T134T AS C
ON A~MTART = C~MTART
INNER JOIN T137T AS D
ON A~MBRSH = D~MBRSH
INNER JOIN T023T AS E
ON A~MATKL = E~MATKL
INTO TABLE ET_MATERIAL_DATA
WHERE A~MATNR IN IT_MATNR_SELOPT
AND B~SPRAS = SY-LANGU
AND C~SPRAS = SY-LANGU
AND D~SPRAS = SY-LANGU
AND E~SPRAS = SY-LANGU.

ENDFUNCTION.

FUNCTION Z202_VENDOR_FM.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IT_VEND_SELOPT) TYPE EFG_TAB_RANGES
*" EXPORTING
*" REFERENCE(ET_VEND_DATA) TYPE Z202_LFA1_T
*"----------------------------------------------------------------------

SELECT a~LIFNR
a~NAME1
b~ebeln
b~waers
c~matnr
c~netpr
FROM LFa1 as a INNER JOIN ekko as b
ON A~lifnr = B~lifnr
INNER JOIN ekpo as c
on b~ebeln = c~ebeln
into table eT_VEND_DATA
where a~lifnr in iT_VEND_selopt.

ENDFUNCTION.

Вам также может понравиться