*&---------------------------------------------------------------------*
*& Report Z_DEV016015_MEDIATHEK
*&
*&---------------------------------------------------------------------*
*&
*& 2DO:
*& Kunden ändern Implemenation
*& Mitarbeiter ändern Implemenation
*& Medien ändern Implemenation
*& GUI Verträge anlegen
*& GUI Verträge ändern + Implemenation
*& GUI Statistiken
*&
*&
*&---------------------------------------------------------------------*
DATA:
ok_code LIKE sy-ucomm ,
save_ok LIKE ok_code ,
" Tabellen
tab_kunde TYPE ZTAB_KUNDE,
tab_medium TYPE ZTAB_MEDIUM,
tab_mitarbeiter TYPE ZTAB_MITARBEITER,
tab_vertrag TYPE ZTAB_VERTRAG.
******************************PBO-MODULE********************************************************
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* Startbildschirm
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '100'.
SET TITLEBAR '100'.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
* Kundenverwaltung - Start
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
SET PF-STATUS '200'.
SET TITLEBAR '200'.
ENDMODULE. " STATUS_0200 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0210 OUTPUT
*&---------------------------------------------------------------------*
* Kunden anlegen
*----------------------------------------------------------------------*
MODULE STATUS_0210 OUTPUT.
SET PF-STATUS '210'.
SET TITLEBAR '210'.
" Variablen deklaration
DATA: kundennr TYPE ZTAB_KUNDE-KUNDENNR,
kundenname TYPE ZTAB_KUNDE-NAME,
kundenvorname TYPE ZTAB_KUNDE-VORNAME,
kundenstrasse TYPE ZTAB_KUNDE-STRASSE,
kundenplz TYPE ZTAB_KUNDE-PLZ,
kundenort TYPE ZTAB_KUNDE-ORT,
kundentelefon TYPE ZTAB_KUNDE-TELEFON.
" Neue Kundennummer anhand der Datenbanktabelle automatisch ermitteln
SELECT MAX
( kundennr
) FROM ZTAB_KUNDE
INTO kundennr.
kundennr = kundennr + 1.
ENDMODULE. " STATUS_0210 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0220 OUTPUT
*&---------------------------------------------------------------------*
* Kunden ändern
*----------------------------------------------------------------------*
MODULE STATUS_0220 OUTPUT.
SET PF-STATUS '220'.
SET TITLEBAR '220'.
TYPES: BEGIN OF KUNDEN_STRUKTUR,
KUNDENNR TYPE ZTAB_KUNDE-KUNDENNR,
NAME TYPE ZTAB_KUNDE-NAME,
VORNAME TYPE ZTAB_KUNDE-VORNAME,
STRASSE TYPE ZTAB_KUNDE-STRASSE,
PLZ TYPE ZTAB_KUNDE-PLZ,
ORT TYPE ZTAB_KUNDE-ORT,
TELEFON TYPE ZTAB_KUNDE-TELEFON,
END OF KUNDEN_STRUKTUR.
TYPES KUNDEN_TYP TYPE STANDARD TABLE OF KUNDEN_STRUKTUR.
DATA: ITAB_KUNDEN TYPE KUNDEN_TYP.
ENDMODULE. " STATUS_0220 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0230 OUTPUT
*&---------------------------------------------------------------------*
* Kunden ausgeben
*----------------------------------------------------------------------*
MODULE STATUS_0230 OUTPUT.
SET PF-STATUS '230'.
SET TITLEBAR '230'.
ENDMODULE. " STATUS_0230 OUTPUT
*----------------------------------------------------------------------*
* MODULE lade0230 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE lade0230 OUTPUT.
SELECT KUNDENNR NAME VORNAME STRASSE PLZ ORT TELEFON
FROM ZTAB_KUNDE
INTO TABLE ITAB_KUNDEN.
ENDMODULE. "lade0230 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
* Mitarbeiterverwaltung - Start
*----------------------------------------------------------------------*
MODULE STATUS_0300 OUTPUT.
SET PF-STATUS '300'.
SET TITLEBAR '300'.
ENDMODULE. " STATUS_0300 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0310 OUTPUT
*&---------------------------------------------------------------------*
* Mitarbeiter anlegen
*----------------------------------------------------------------------*
MODULE STATUS_0310 OUTPUT.
SET PF-STATUS '310'.
SET TITLEBAR '310'.
" Variablen deklaration
DATA: mitarbeiternr TYPE ZTAB_MITARBEITER-MITARBEITERNR,
mitarbeitername TYPE ZTAB_MITARBEITER-NAME,
mitarbeitervorname TYPE ZTAB_MITARBEITER-VORNAME,
mitarbeiterstrasse TYPE ZTAB_MITARBEITER-STRASSE,
mitarbeiterplz TYPE ZTAB_MITARBEITER-PLZ,
mitarbeiterort TYPE ZTAB_MITARBEITER-ORT,
mitarbeitertelefon TYPE ZTAB_MITARBEITER-TELEFON.
" Neue Mitarbeiternummer anhand der Datenbanktabelle automatisch ermitteln
SELECT MAX
( mitarbeiternr
) FROM ZTAB_MITARBEITER
INTO mitarbeiternr.
mitarbeiternr = mitarbeiternr + 1.
ENDMODULE. " STATUS_0310 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0320 OUTPUT
*&---------------------------------------------------------------------*
* Mitarbeiter ändern
*----------------------------------------------------------------------*
MODULE STATUS_0320 OUTPUT.
SET PF-STATUS '320'.
SET TITLEBAR '320'.
TYPES: BEGIN OF MITARBEITER_STRUKTUR,
MITARBEITERNR TYPE ZTAB_MITARBEITER-MITARBEITERNR,
NAME TYPE ZTAB_MITARBEITER-NAME,
VORNAME TYPE ZTAB_MITARBEITER-VORNAME,
STRASSE TYPE ZTAB_MITARBEITER-STRASSE,
PLZ TYPE ZTAB_MITARBEITER-PLZ,
ORT TYPE ZTAB_MITARBEITER-ORT,
TELEFON TYPE ZTAB_MITARBEITER-TELEFON,
END OF MITARBEITER_STRUKTUR.
TYPES: MITARBEITER_TYP TYPE STANDARD TABLE OF MITARBEITER_STRUKTUR.
DATA: ITAB_MITARBEITER TYPE MITARBEITER_TYP.
ENDMODULE. " STATUS_0320 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0330 OUTPUT
*&---------------------------------------------------------------------*
* Mitarbeiter ausgeben
*----------------------------------------------------------------------*
MODULE STATUS_0330 OUTPUT.
SET PF-STATUS '330'.
SET TITLEBAR '330'.
ENDMODULE. " STATUS_0330 OUTPUT
*----------------------------------------------------------------------*
* MODULE lade0330 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE lade0330 OUTPUT.
SELECT MITARBEITERNR NAME VORNAME STRASSE PLZ ORT TELEFON
FROM ZTAB_MITARBEITER
INTO TABLE ITAB_MITARBEITER.
ENDMODULE. "lade0330 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
* Medienverwaltung - Start
*----------------------------------------------------------------------*
MODULE STATUS_0400 OUTPUT.
SET PF-STATUS '400'.
SET TITLEBAR '400'.
ENDMODULE. " STATUS_0400 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0410 OUTPUT
*&---------------------------------------------------------------------*
* Medien anlegen
*----------------------------------------------------------------------*
MODULE STATUS_0410 OUTPUT.
SET PF-STATUS '410'.
SET TITLEBAR '410'.
" Variablen deklaration
DATA: mediumnr TYPE ZTAB_MEDIUM-MEDIUMNR,
mediumname TYPE ZTAB_MEDIUM-NAME,
mediumart TYPE ZTAB_MEDIUM-ART,
mediumverliehen TYPE ZTAB_MEDIUM-VERLIEHEN,
mediumlagerort TYPE ZTAB_MEDIUM-LAGERORT.
" Neue Mediumnummer anhand der Datenbanktabelle automatisch ermitteln
SELECT MAX
( mediumnr
) FROM ZTAB_MEDIUM
INTO mediumnr.
mediumnr = mediumnr + 1.
ENDMODULE. " STATUS_0410 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0420 OUTPUT
*&---------------------------------------------------------------------*
* Medien ändern
*----------------------------------------------------------------------*
MODULE STATUS_0420 OUTPUT.
SET PF-STATUS '420'.
SET TITLEBAR '420'.
TYPES: BEGIN OF MEDIUM_STRUKTUR,
MEDIUMNR TYPE ZTAB_MEDIUM-MEDIUMNR,
NAME TYPE ZTAB_MEDIUM-NAME,
ART TYPE ZTAB_MEDIUM-ART,
VERLIEHEN TYPE ZTAB_MEDIUM-VERLIEHEN,
LAGERORT TYPE ZTAB_MEDIUM-LAGERORT,
END OF MEDIUM_STRUKTUR.
TYPES: MEDIUM_TYP TYPE STANDARD TABLE OF MEDIUM_STRUKTUR.
DATA: ITAB_MEDIUM TYPE MEDIUM_TYP.
ENDMODULE. " STATUS_0420 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0430 OUTPUT
*&---------------------------------------------------------------------*
* Medien ausgeben
*----------------------------------------------------------------------*
MODULE STATUS_0430 OUTPUT.
SET PF-STATUS '430'.
SET TITLEBAR '430'.
ENDMODULE. " STATUS_0430 OUTPUT
*----------------------------------------------------------------------*
* MODULE lade0430 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE lade0430 OUTPUT.
SELECT MEDIUMNR NAME ART VERLIEHEN LAGERORT
FROM ZTAB_MEDIUM
INTO TABLE ITAB_MEDIUM.
ENDMODULE. "lade0430 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0600 OUTPUT
*&---------------------------------------------------------------------*
* Vertragsverwaltung - Start
*----------------------------------------------------------------------*
MODULE STATUS_0600 OUTPUT.
SET PF-STATUS '600'.
SET TITLEBAR '600'.
ENDMODULE. " STATUS_0600 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0610 OUTPUT
*&---------------------------------------------------------------------*
* Verträge anlegen
*----------------------------------------------------------------------*
MODULE STATUS_0610 OUTPUT.
SET PF-STATUS '610'.
SET TITLEBAR '610'.
" Variablen deklaration
DATA: vertragnr TYPE ZTAB_VERTRAG-VERTRAGNR,
vertragkundennr TYPE ZTAB_VERTRAG-KUNDENNR,
vertragmitarbeiternr TYPE ZTAB_VERTRAG-MITARBEITERNR,
vertragdatum TYPE ZTAB_VERTRAG-DATUM,
vertragverleihdauer TYPE ZTAB_VERTRAG-VERLEIHDAUER.
" Neue Vertragnummer anhand der Datenbanktabelle automatisch ermitteln
SELECT MAX
( vertragnr
) FROM ZTAB_VERTRAG
INTO vertragnr.
vertragnr = vertragnr + 1.
ENDMODULE. " STATUS_0610 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0620 OUTPUT
*&---------------------------------------------------------------------*
* Verträge ändern
*----------------------------------------------------------------------*
MODULE STATUS_0620 OUTPUT.
SET PF-STATUS '620'.
SET TITLEBAR '620'.
TYPES: BEGIN OF VERTRAG_STRUKTUR,
VERTRAGNR TYPE ZTAB_VERTRAG-VERTRAGNR,
VERTRAGKUNDENNR TYPE ZTAB_VERTRAG-KUNDENNR,
VERTRAGMITARBEITERNR TYPE ZTAB_VERTRAG-MITARBEITERNR,
VERTRAGDATUM TYPE ZTAB_VERTRAG-DATUM,
VERTRAGVERLEIHDAUER TYPE ZTAB_VERTRAG-VERLEIHDAUER,
END OF VERTRAG_STRUKTUR.
TYPES: VERTRAG_TYP TYPE STANDARD TABLE OF VERTRAG_STRUKTUR.
DATA: ITAB_VERTRAG TYPE VERTRAG_TYP.
ENDMODULE. " STATUS_0620 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0630 OUTPUT
*&---------------------------------------------------------------------*
* Verträge ausgeben
*----------------------------------------------------------------------*
MODULE STATUS_0630 OUTPUT.
SET PF-STATUS '630'.
SET TITLEBAR '630'.
ENDMODULE. " STATUS_0630 OUTPUT
*----------------------------------------------------------------------*
* MODULE lade0630 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE lade0630 OUTPUT.
SELECT VERTRAGNR KUNDENNR MITARBEITERNR DATUM VERLEIHDAUER
FROM ZTAB_VERTRAG
INTO TABLE ITAB_VERTRAG.
ENDMODULE. "lade0630 OUTPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0700 OUTPUT
*&---------------------------------------------------------------------*
* Statistiken
*----------------------------------------------------------------------*
MODULE STATUS_0700 OUTPUT.
SET PF-STATUS '700'.
SET TITLEBAR '700'.
ENDMODULE. " STATUS_0700 OUTPUT
************************************************************************************************
******************************PAI-MODULE********************************************************
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* Startbildschirm
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'EXIT'.
LEAVE PROGRAM.
WHEN 'GUI_KUNDEN'.
LEAVE TO SCREEN 200.
WHEN 'GUI_MITARBEITER'.
LEAVE TO SCREEN 300.
WHEN 'GUI_MEDIEN'.
LEAVE TO SCREEN 400.
WHEN 'GUI_LAGERORTE'.
LEAVE TO SCREEN 500.
WHEN 'GUI_VERTRAEGE'.
LEAVE TO SCREEN 600.
WHEN 'GUI_STATISTIKEN'.
LEAVE TO SCREEN 700.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
* Kundenverwaltung - Start
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
LEAVE To SCREEN 210.
WHEN 'AENDERN'.
LEAVE To SCREEN 220.
WHEN 'AUSGEBEN'.
LEAVE To SCREEN 230.
ENDCASE.
ENDMODULE. " USER_COMMAND_0200 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0210 INPUT
*&---------------------------------------------------------------------*
* Kunden anlegen
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0210 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 200.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
" Temp-Tabelle leeren
" Werte in Temp-Tabelle schreiben
tab_kunde-KUNDENNR = kundennr.
tab_kunde-NAME = kundenname.
tab_kunde-VORNAME = kundenvorname.
tab_kunde-STRASSE = kundenstrasse.
tab_kunde-PLZ = kundenplz.
tab_kunde-ORT = kundenort.
tab_kunde-TELEFON = kundentelefon.
" Temp-Tabelle in Datenbanktabelle schreiben
INSERT INTO ZTAB_KUNDE VALUES tab_kunde.
" Ergebnis in Messagebox anzeigen
IF sy-subrc NE 0.
ROLLBACK WORK.
MESSAGE I000(Z_DEV016015) WITH kundenvorname kundenname.
ELSE.
MESSAGE I001(Z_DEV016015) WITH kundenvorname kundenname.
CLEAR: kundenname, kundenvorname, kundenstrasse, kundenplz, kundenort, kundentelefon.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0210 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0220 INPUT
*&---------------------------------------------------------------------*
* Kunden ändern
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0220 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 200.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0220 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0230 INPUT
*&---------------------------------------------------------------------*
* Kunden ausgeben
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0230 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 200.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0230 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------*
* Mitarbeiterverwaltung - Start
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0300 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
LEAVE To SCREEN 310.
WHEN 'AENDERN'.
LEAVE To SCREEN 320.
WHEN 'AUSGEBEN'.
LEAVE To SCREEN 330.
ENDCASE.
ENDMODULE. " USER_COMMAND_0300 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0310 INPUT
*&---------------------------------------------------------------------*
* Mitarbeiter anlegen
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0310 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 300.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
" Temp-Tabelle leeren
" Werte in Temp-Tabelle schreiben
tab_mitarbeiter-MITARBEITERNR = mitarbeiternr.
tab_mitarbeiter-NAME = mitarbeitername.
tab_mitarbeiter-VORNAME = mitarbeitervorname.
tab_mitarbeiter-STRASSE = mitarbeiterstrasse.
tab_mitarbeiter-PLZ = mitarbeiterplz.
tab_mitarbeiter-ORT = mitarbeiterort.
tab_mitarbeiter-TELEFON = mitarbeitertelefon.
" Temp-Tabelle in Datenbanktabelle schreiben
INSERT INTO ZTAB_MITARBEITER VALUES tab_mitarbeiter.
" Ergebnis in Messagebox anzeigen
IF sy-subrc NE 0.
ROLLBACK WORK.
MESSAGE I002(Z_DEV016015) WITH mitarbeitervorname mitarbeitername.
ELSE.
MESSAGE I003(Z_DEV016015) WITH mitarbeitervorname mitarbeitername.
CLEAR: mitarbeitername, mitarbeitervorname, mitarbeiterstrasse, mitarbeiterplz, mitarbeiterort, mitarbeitertelefon.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0310 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0320 INPUT
*&---------------------------------------------------------------------*
* Mitarberiter ändern
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0320 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 300.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
* WHEN 'AENDERN'.
*
* SELECT MITARBEITERNR NAME VORNAME STRASSE PLZ ORT TELEFON
* FROM ZTAB_MITARBEITER
* INTO TABLE ITAB_MITARBEITER WHERE MITARBEITERNR = MITARBEITERNR.
ENDCASE.
ENDMODULE. " USER_COMMAND_0320 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0330 INPUT
*&---------------------------------------------------------------------*
* Mitarbeiter ausgeben
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0330 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 300.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0330 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0400 INPUT
*&---------------------------------------------------------------------*
* Medienverwaltung - Start
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0400 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
LEAVE To SCREEN 410.
WHEN 'AENDERN'.
LEAVE To SCREEN 420.
WHEN 'AUSGEBEN'.
LEAVE To SCREEN 430.
ENDCASE.
ENDMODULE. " USER_COMMAND_0400 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0410 INPUT
*&---------------------------------------------------------------------*
* Medien anlegen
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0410 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 400.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
" Temp-Tabelle leeren
" Werte in Temp-Tabelle schreiben
tab_medium-MEDIUMNR = mediumnr.
tab_medium-NAME = mediumname.
tab_medium-ART = mediumart.
tab_medium-VERLIEHEN = mediumverliehen.
tab_medium-LAGERORT = mediumlagerort.
" Temp-Tabelle in Datenbanktabelle schreiben
INSERT INTO ZTAB_MEDIUM VALUES tab_medium.
" Ergebnis in Messagebox anzeigen
IF sy-subrc NE 0.
ROLLBACK WORK.
MESSAGE I004(Z_DEV016015) WITH mediumname.
ELSE.
MESSAGE I005(Z_DEV016015) WITH mediumname.
CLEAR: mediumname, mediumart, mediumverliehen, mediumlagerort.
ENDIF.
ENDCASE.
ENDMODULE. " USER_COMMAND_0410 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0420 INPUT
*&---------------------------------------------------------------------*
* Medien ändern
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0420 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 400.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0420 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0430 INPUT
*&---------------------------------------------------------------------*
* Medien ausgeben
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0430 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 400.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0430 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0600 INPUT
*&---------------------------------------------------------------------*
* Vertragsverwaltung - Start
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0600 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'ANLEGEN'.
LEAVE To SCREEN 610.
WHEN 'AENDERN'.
LEAVE To SCREEN 620.
WHEN 'AUSGEBEN'.
LEAVE To SCREEN 630.
ENDCASE.
ENDMODULE. " USER_COMMAND_0600 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0610 INPUT
*&---------------------------------------------------------------------*
* Verträge anlegen
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0610 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 600.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0610 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0620 INPUT
*&---------------------------------------------------------------------*
* Verträge ändern
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0620 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 600.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0620 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0630 INPUT
*&---------------------------------------------------------------------*
* Verträge ausgeben
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0630 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 600.
WHEN 'GUI_HAUPTM'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0630 INPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0700 INPUT
*&---------------------------------------------------------------------*
* Statistiken
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0700 INPUT.
save_ok = ok_code.
CASE save_ok.
WHEN 'BACK'.
LEAVE TO SCREEN 100.
ENDCASE.
ENDMODULE. " USER_COMMAND_0700 INPUT
************************************************************************************************
*&SPWIZARD: DECLARATION OF TABLECONTROL 'TABLECONTROL' ITSELF
CONTROLS: TABLECONTROL TYPE TABLEVIEW USING SCREEN 0230.
*&SPWIZARD: LINES OF TABLECONTROL 'TABLECONTROL'
DATA: G_TABLECONTROL_LINES LIKE SY-LOOPC.
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE TABLECONTROL_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE ITAB_KUNDEN LINES TABLECONTROL
-lines.
ENDMODULE. "TABLECONTROL_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE TABLECONTROL_GET_LINES OUTPUT.
G_TABLECONTROL_LINES = SY-LOOPC.
ENDMODULE. "TABLECONTROL_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE TABLECONTROL_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC
USING 'TABLECONTROL'
'ITAB_KUNDEN'
' '
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE. "TABLECONTROL_USER_COMMAND INPUT
*----------------------------------------------------------------------*
* INCLUDE TABLECONTROL_FORMS *
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form USER_OK_TC *
*&---------------------------------------------------------------------*
FORM USER_OK_TC
USING P_TC_NAME
TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME
CHANGING P_OK LIKE SY-UCOMM.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA: L_OK TYPE SY-UCOMM,
L_OFFSET TYPE I.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: Table control specific operations *
*&SPWIZARD: evaluate TC name and operations *
SEARCH P_OK FOR P_TC_NAME.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
L_OFFSET = STRLEN( P_TC_NAME ) + 1.
L_OK = P_OK+L_OFFSET.
*&SPWIZARD: execute general and TC specific operations *
CASE L_OK.
WHEN 'INSR'. "insert row
PERFORM FCODE_INSERT_ROW
USING P_TC_NAME
P_TABLE_NAME.
WHEN 'DELE'. "delete row
PERFORM FCODE_DELETE_ROW
USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
WHEN 'P--' OR "top of list
'P-' OR "previous page
'P+' OR "next page
'P++'. "bottom of list
PERFORM COMPUTE_SCROLLING_IN_TC
USING P_TC_NAME
L_OK.
* WHEN 'L--'. "total left
* PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
*
* WHEN 'L-'. "column left
* PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
*
* WHEN 'R+'. "column right
* PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
*
* WHEN 'R++'. "total right
* PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
*
WHEN 'MARK'. "mark all filled lines
PERFORM FCODE_TC_MARK_LINES
USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
WHEN 'DMRK'. "demark all filled lines
PERFORM FCODE_TC_DEMARK_LINES
USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
* WHEN 'SASCEND' OR
* 'SDESCEND'. "sort column
* PERFORM FCODE_SORT_TC USING P_TC_NAME
* l_ok.
ENDCASE.
*&---------------------------------------------------------------------*
*& Form FCODE_INSERT_ROW *
*&---------------------------------------------------------------------*
USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME .
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA L_LINES_NAME LIKE FELD-NAME.
DATA L_SELLINE LIKE SY-STEPL.
DATA L_LASTLINE TYPE I.
DATA L_LINE TYPE I.
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <LINES> TYPE I.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME
'[]' INTO L_TABLE_NAME.
"table body
ASSIGN (L_TABLE_NAME
) TO <TABLE>.
"not headerline
*&SPWIZARD: get looplines of TableControl *
ASSIGN (L_LINES_NAME
) TO <LINES>.
*&SPWIZARD: get current line *
GET CURSOR LINE L_SELLINE.
IF SY-SUBRC <> 0. " append line to table
L_SELLINE = <TC>-LINES + 1.
*&SPWIZARD: set top line *
IF L_SELLINE > <LINES>.
<TC>-TOP_LINE = L_SELLINE - <LINES> + 1 .
ELSE.
<TC>-TOP_LINE = 1.
ENDIF.
ELSE. " insert line into table
L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1.
L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1.
ENDIF.
*&SPWIZARD: set new cursor line *
L_LINE = L_SELLINE - <TC>-TOP_LINE + 1.
*&SPWIZARD: insert initial line *
INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
<TC>-LINES = <TC>-LINES + 1.
*&SPWIZARD: set cursor *
SET CURSOR LINE L_LINE.
*&---------------------------------------------------------------------*
*& Form FCODE_DELETE_ROW *
*&---------------------------------------------------------------------*
USING P_TC_NAME TYPE DYNFNAM
P_TABLE_NAME
P_MARK_NAME .
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE cxtab_control.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <WA>.
FIELD-SYMBOLS <MARK_FIELD>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME
'[]' INTO L_TABLE_NAME.
"table body
ASSIGN (L_TABLE_NAME
) TO <TABLE>.
"not headerline
*&SPWIZARD: delete marked lines *
DESCRIBE TABLE <TABLE> LINES <TC>
-LINES.
LOOP AT <TABLE> ASSIGNING <WA>.
*&SPWIZARD: access to the component 'FLAG' of the table header *
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA>
TO <MARK_FIELD>.
IF <MARK_FIELD> = 'X'.
DELETE <TABLE> INDEX SYST-TABIX.
IF SY-SUBRC = 0.
<TC>-LINES = <TC>-LINES - 1.
ENDIF.
ENDIF.
*&---------------------------------------------------------------------*
*& Form COMPUTE_SCROLLING_IN_TC
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_TC_NAME name of tablecontrol
* -->P_OK ok code
*----------------------------------------------------------------------*
FORM COMPUTE_SCROLLING_IN_TC
USING P_TC_NAME
P_OK.
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA L_TC_NEW_TOP_LINE TYPE I.
DATA L_TC_NAME LIKE FELD-NAME.
DATA L_TC_LINES_NAME LIKE FELD-NAME.
DATA L_TC_FIELD_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE cxtab_control.
FIELD-SYMBOLS <LINES> TYPE I.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: get looplines of TableControl *
CONCATENATE 'G_' P_TC_NAME
'_LINES' INTO L_TC_LINES_NAME.
ASSIGN (L_TC_LINES_NAME
) TO <LINES>.
*&SPWIZARD: is no line filled? *
IF <TC>-LINES = 0.
*&SPWIZARD: yes, ... *
L_TC_NEW_TOP_LINE = 1.
ELSE.
*&SPWIZARD: no, ... *
EXPORTING
ENTRY_ACT = <TC>-TOP_LINE
ENTRY_FROM = 1
ENTRY_TO = <TC>-LINES
LAST_PAGE_FULL = 'X'
LOOPS = <LINES>
OK_CODE = P_OK
OVERLAPPING = 'X'
IMPORTING
ENTRY_NEW = L_TC_NEW_TOP_LINE
EXCEPTIONS
* NO_ENTRY_OR_PAGE_ACT = 01
* NO_ENTRY_TO = 02
* NO_OK_CODE_OR_PAGE_GO = 03
OTHERS = 0.
ENDIF.
*&SPWIZARD: get actual tc and column *
GET CURSOR FIELD L_TC_FIELD_NAME
AREA L_TC_NAME.
IF SYST-SUBRC = 0.
IF L_TC_NAME = P_TC_NAME.
*&SPWIZARD: et actual column *
SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
ENDIF.
ENDIF.
*&SPWIZARD: set the new top line *
<TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
*&---------------------------------------------------------------------*
*& Form FCODE_TC_MARK_LINES
*&---------------------------------------------------------------------*
* marks all TableControl lines
*----------------------------------------------------------------------*
* -->P_TC_NAME name of tablecontrol
*----------------------------------------------------------------------*
FORM FCODE_TC_MARK_LINES
USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME.
*&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------*
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE cxtab_control.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <WA>.
FIELD-SYMBOLS <MARK_FIELD>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME
'[]' INTO L_TABLE_NAME.
"table body
ASSIGN (L_TABLE_NAME
) TO <TABLE>.
"not headerline
*&SPWIZARD: mark all filled lines *
LOOP AT <TABLE> ASSIGNING <WA>.
*&SPWIZARD: access to the component 'FLAG' of the table header *
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA>
TO <MARK_FIELD>.
<MARK_FIELD> = 'X'.
*&---------------------------------------------------------------------*
*& Form FCODE_TC_DEMARK_LINES
*&---------------------------------------------------------------------*
* demarks all TableControl lines
*----------------------------------------------------------------------*
* -->P_TC_NAME name of tablecontrol
*----------------------------------------------------------------------*
FORM FCODE_TC_DEMARK_LINES
USING P_TC_NAME
P_TABLE_NAME
P_MARK_NAME .
*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
DATA L_TABLE_NAME LIKE FELD-NAME.
FIELD-SYMBOLS <TC> TYPE cxtab_control.
FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
FIELD-SYMBOLS <WA>.
FIELD-SYMBOLS <MARK_FIELD>.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*
*&SPWIZARD: get the table, which belongs to the tc *
CONCATENATE P_TABLE_NAME
'[]' INTO L_TABLE_NAME.
"table body
ASSIGN (L_TABLE_NAME
) TO <TABLE>.
"not headerline
*&SPWIZARD: demark all filled lines *
LOOP AT <TABLE> ASSIGNING <WA>.
*&SPWIZARD: access to the component 'FLAG' of the table header *
ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA>
TO <MARK_FIELD>.
<MARK_FIELD> = SPACE.
*&SPWIZARD: DECLARATION OF TABLECONTROL 'MITARBEITER_TC' ITSELF
CONTROLS: MITARBEITER_TC TYPE TABLEVIEW USING SCREEN 0330.
*&SPWIZARD: LINES OF TABLECONTROL 'MITARBEITER_TC'
DATA: G_MITARBEITER_TC_LINES LIKE SY-LOOPC.
*&SPWIZARD: OUTPUT MODULE FOR TC 'MITARBEITER_TC'. DO NOT CHANGE THIS LI
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE MITARBEITER_TC_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE ITAB_MITARBEITER LINES MITARBEITER_TC
-lines.
ENDMODULE. "MITARBEITER_TC_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'MITARBEITER_TC'. DO NOT CHANGE THIS LI
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE MITARBEITER_TC_GET_LINES OUTPUT.
G_MITARBEITER_TC_LINES = SY-LOOPC.
ENDMODULE. "MITARBEITER_TC_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'MITARBEITER_TC'. DO NOT CHANGE THIS LIN
*&SPWIZARD: PROCESS USER COMMAND
MODULE MITARBEITER_TC_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC
USING 'MITARBEITER_TC'
'ITAB_MITARBEITER'
' '
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE. "MITARBEITER_TC_USER_COMMAND INPUT
*&SPWIZARD: DECLARATION OF TABLECONTROL 'MEDIUM_TC' ITSELF
CONTROLS: MEDIUM_TC TYPE TABLEVIEW USING SCREEN 0430.
*&SPWIZARD: LINES OF TABLECONTROL 'MEDIUM_TC'
DATA: G_MEDIUM_TC_LINES LIKE SY-LOOPC.
*&SPWIZARD: OUTPUT MODULE FOR TC 'MEDIUM_TC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE MEDIUM_TC_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE ITAB_MEDIUM LINES MEDIUM_TC
-lines.
ENDMODULE. "MEDIUM_TC_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'MEDIUM_TC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE MEDIUM_TC_GET_LINES OUTPUT.
G_MEDIUM_TC_LINES = SY-LOOPC.
ENDMODULE. "MEDIUM_TC_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'MEDIUM_TC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE MEDIUM_TC_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC
USING 'MEDIUM_TC'
'ITAB_MEDIUM'
' '
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE. "MEDIUM_TC_USER_COMMAND INPUT
*&SPWIZARD: DECLARATION OF TABLECONTROL 'VERTRAEGE_TC' ITSELF
CONTROLS: VERTRAEGE_TC TYPE TABLEVIEW USING SCREEN 0630.
*&SPWIZARD: LINES OF TABLECONTROL 'VERTRAEGE_TC'
DATA: G_VERTRAEGE_TC_LINES LIKE SY-LOOPC.
*&SPWIZARD: OUTPUT MODULE FOR TC 'VERTRAEGE_TC'. DO NOT CHANGE THIS LINE
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE VERTRAEGE_TC_CHANGE_TC_ATTR OUTPUT.
DESCRIBE TABLE ITAB_VERTRAG LINES VERTRAEGE_TC
-lines.
ENDMODULE. "VERTRAEGE_TC_CHANGE_TC_ATTR OUTPUT
*&SPWIZARD: OUTPUT MODULE FOR TC 'VERTRAEGE_TC'. DO NOT CHANGE THIS LINE
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE VERTRAEGE_TC_GET_LINES OUTPUT.
G_VERTRAEGE_TC_LINES = SY-LOOPC.
ENDMODULE. "VERTRAEGE_TC_GET_LINES OUTPUT
*&SPWIZARD: INPUT MODULE FOR TC 'VERTRAEGE_TC'. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE VERTRAEGE_TC_USER_COMMAND INPUT.
OK_CODE = SY-UCOMM.
PERFORM USER_OK_TC
USING 'VERTRAEGE_TC'
'ITAB_VERTRAG'
' '
CHANGING OK_CODE.
SY-UCOMM = OK_CODE.
ENDMODULE. "VERTRAEGE_TC_USER_COMMAND INPUT