Are you a regular stikked user? Signup so you can keep track of your pastes!
  1. *&---------------------------------------------------------------------*
  2. *& Report  Z_DEV016015_MEDIATHEK
  3. *&
  4. *&---------------------------------------------------------------------*
  5. *&
  6. *& 2DO:
  7. *&   Kunden ändern Implemenation
  8. *&   Mitarbeiter ändern Implemenation
  9. *&   Medien ändern Implemenation
  10. *&   GUI Verträge anlegen
  11. *&   GUI Verträge ändern + Implemenation
  12. *&   GUI Statistiken
  13. *&
  14. *&
  15. *&---------------------------------------------------------------------*
  16.  
  17. REPORT  Z_DEV016015_MEDIATHEK.
  18.  
  19.  
  20.   DATA:
  21.     ok_code LIKE sy-ucomm ,
  22.     save_ok LIKE ok_code ,
  23.  
  24.     " Tabellen
  25.     tab_kunde TYPE ZTAB_KUNDE,
  26.     tab_medium TYPE ZTAB_MEDIUM,
  27.     tab_mitarbeiter TYPE ZTAB_MITARBEITER,
  28.     tab_vertrag TYPE ZTAB_VERTRAG.
  29.  
  30.   CALL SCREEN 100.
  31.  
  32.  
  33.  
  34. ******************************PBO-MODULE********************************************************
  35. *&---------------------------------------------------------------------*
  36. *&      Module  STATUS_0100  OUTPUT
  37. *&---------------------------------------------------------------------*
  38. *       Startbildschirm
  39. *----------------------------------------------------------------------*
  40. MODULE STATUS_0100 OUTPUT.
  41.   SET PF-STATUS '100'.
  42.   SET TITLEBAR '100'.
  43. ENDMODULE.                 " STATUS_0100  OUTPUT
  44.  
  45. *&---------------------------------------------------------------------*
  46. *&      Module  STATUS_0200  OUTPUT
  47. *&---------------------------------------------------------------------*
  48. *       Kundenverwaltung - Start
  49. *----------------------------------------------------------------------*
  50. MODULE STATUS_0200 OUTPUT.
  51.   SET PF-STATUS '200'.
  52.   SET TITLEBAR '200'.
  53. ENDMODULE.                 " STATUS_0200  OUTPUT
  54.  
  55. *&---------------------------------------------------------------------*
  56. *&      Module  STATUS_0210  OUTPUT
  57. *&---------------------------------------------------------------------*
  58. *       Kunden anlegen
  59. *----------------------------------------------------------------------*
  60. MODULE STATUS_0210 OUTPUT.
  61.   SET PF-STATUS '210'.
  62.   SET TITLEBAR '210'.
  63.  
  64.   " Variablen deklaration
  65.   DATA: kundennr TYPE ZTAB_KUNDE-KUNDENNR,
  66.         kundenname TYPE ZTAB_KUNDE-NAME,
  67.         kundenvorname TYPE ZTAB_KUNDE-VORNAME,
  68.         kundenstrasse TYPE ZTAB_KUNDE-STRASSE,
  69.         kundenplz TYPE ZTAB_KUNDE-PLZ,
  70.         kundenort TYPE ZTAB_KUNDE-ORT,
  71.         kundentelefon TYPE ZTAB_KUNDE-TELEFON.
  72.  
  73.   " Neue Kundennummer anhand der Datenbanktabelle automatisch ermitteln
  74.   SELECT MAX( kundennr ) FROM ZTAB_KUNDE INTO kundennr.
  75.   kundennr = kundennr + 1.
  76.  
  77. ENDMODULE.                 " STATUS_0210  OUTPUT
  78.  
  79. *&---------------------------------------------------------------------*
  80. *&      Module  STATUS_0220  OUTPUT
  81. *&---------------------------------------------------------------------*
  82. *       Kunden ändern
  83. *----------------------------------------------------------------------*
  84. MODULE STATUS_0220 OUTPUT.
  85.   SET PF-STATUS '220'.
  86.   SET TITLEBAR '220'.
  87.  
  88.   TYPES: BEGIN OF KUNDEN_STRUKTUR,
  89.          KUNDENNR TYPE ZTAB_KUNDE-KUNDENNR,
  90.          NAME TYPE ZTAB_KUNDE-NAME,
  91.          VORNAME TYPE ZTAB_KUNDE-VORNAME,
  92.          STRASSE TYPE ZTAB_KUNDE-STRASSE,
  93.          PLZ TYPE ZTAB_KUNDE-PLZ,
  94.          ORT TYPE ZTAB_KUNDE-ORT,
  95.          TELEFON TYPE ZTAB_KUNDE-TELEFON,
  96.         END OF KUNDEN_STRUKTUR.
  97.  
  98.  
  99.   TYPES KUNDEN_TYP TYPE STANDARD TABLE OF KUNDEN_STRUKTUR.
  100.  
  101.   DATA: ITAB_KUNDEN TYPE KUNDEN_TYP.
  102.  
  103. ENDMODULE.                 " STATUS_0220  OUTPUT
  104.  
  105. *&---------------------------------------------------------------------*
  106. *&      Module  STATUS_0230  OUTPUT
  107. *&---------------------------------------------------------------------*
  108. *       Kunden ausgeben
  109. *----------------------------------------------------------------------*
  110. MODULE STATUS_0230 OUTPUT.
  111.   SET PF-STATUS '230'.
  112.   SET TITLEBAR '230'.
  113. ENDMODULE.                 " STATUS_0230  OUTPUT
  114.  
  115. *----------------------------------------------------------------------*
  116. *  MODULE lade0230 OUTPUT
  117. *----------------------------------------------------------------------*
  118. *
  119. *----------------------------------------------------------------------*
  120. MODULE lade0230 OUTPUT.
  121.   SELECT KUNDENNR NAME VORNAME STRASSE PLZ ORT TELEFON
  122.         FROM ZTAB_KUNDE
  123.        INTO TABLE ITAB_KUNDEN.
  124. ENDMODULE.                    "lade0230 OUTPUT
  125.  
  126. *&---------------------------------------------------------------------*
  127. *&      Module  STATUS_0300  OUTPUT
  128. *&---------------------------------------------------------------------*
  129. *       Mitarbeiterverwaltung - Start
  130. *----------------------------------------------------------------------*
  131. MODULE STATUS_0300 OUTPUT.
  132.   SET PF-STATUS '300'.
  133.   SET TITLEBAR '300'.
  134. ENDMODULE.                 " STATUS_0300  OUTPUT
  135.  
  136. *&---------------------------------------------------------------------*
  137. *&      Module  STATUS_0310  OUTPUT
  138. *&---------------------------------------------------------------------*
  139. *       Mitarbeiter anlegen
  140. *----------------------------------------------------------------------*
  141. MODULE STATUS_0310 OUTPUT.
  142.   SET PF-STATUS '310'.
  143.   SET TITLEBAR '310'.
  144.  
  145.   " Variablen deklaration
  146.   DATA: mitarbeiternr TYPE ZTAB_MITARBEITER-MITARBEITERNR,
  147.         mitarbeitername TYPE ZTAB_MITARBEITER-NAME,
  148.         mitarbeitervorname TYPE ZTAB_MITARBEITER-VORNAME,
  149.         mitarbeiterstrasse TYPE ZTAB_MITARBEITER-STRASSE,
  150.         mitarbeiterplz TYPE ZTAB_MITARBEITER-PLZ,
  151.         mitarbeiterort TYPE ZTAB_MITARBEITER-ORT,
  152.         mitarbeitertelefon TYPE ZTAB_MITARBEITER-TELEFON.
  153.  
  154.   " Neue Mitarbeiternummer anhand der Datenbanktabelle automatisch ermitteln
  155.   SELECT MAX( mitarbeiternr ) FROM ZTAB_MITARBEITER INTO mitarbeiternr.
  156.   mitarbeiternr = mitarbeiternr + 1.
  157.  
  158. ENDMODULE.                 " STATUS_0310  OUTPUT
  159.  
  160. *&---------------------------------------------------------------------*
  161. *&      Module  STATUS_0320  OUTPUT
  162. *&---------------------------------------------------------------------*
  163. *       Mitarbeiter ändern
  164. *----------------------------------------------------------------------*
  165. MODULE STATUS_0320 OUTPUT.
  166.   SET PF-STATUS '320'.
  167.   SET TITLEBAR '320'.
  168.  
  169.   TYPES: BEGIN OF MITARBEITER_STRUKTUR,
  170.         MITARBEITERNR TYPE ZTAB_MITARBEITER-MITARBEITERNR,
  171.         NAME TYPE ZTAB_MITARBEITER-NAME,
  172.         VORNAME TYPE ZTAB_MITARBEITER-VORNAME,
  173.         STRASSE TYPE ZTAB_MITARBEITER-STRASSE,
  174.         PLZ TYPE ZTAB_MITARBEITER-PLZ,
  175.         ORT TYPE ZTAB_MITARBEITER-ORT,
  176.         TELEFON TYPE ZTAB_MITARBEITER-TELEFON,
  177.        END OF MITARBEITER_STRUKTUR.
  178.  
  179.   TYPES: MITARBEITER_TYP TYPE STANDARD TABLE OF MITARBEITER_STRUKTUR.
  180.  
  181.   DATA: ITAB_MITARBEITER TYPE MITARBEITER_TYP.
  182.  
  183. ENDMODULE.                 " STATUS_0320  OUTPUT
  184.  
  185. *&---------------------------------------------------------------------*
  186. *&      Module  STATUS_0330  OUTPUT
  187. *&---------------------------------------------------------------------*
  188. *       Mitarbeiter ausgeben
  189. *----------------------------------------------------------------------*
  190. MODULE STATUS_0330 OUTPUT.
  191.   SET PF-STATUS '330'.
  192.   SET TITLEBAR '330'.
  193. ENDMODULE.                 " STATUS_0330  OUTPUT
  194.  
  195. *----------------------------------------------------------------------*
  196. *  MODULE lade0330 OUTPUT
  197. *----------------------------------------------------------------------*
  198. *
  199. *----------------------------------------------------------------------*
  200. MODULE lade0330 OUTPUT.
  201.   SELECT MITARBEITERNR NAME VORNAME STRASSE PLZ ORT TELEFON
  202.         FROM ZTAB_MITARBEITER
  203.        INTO TABLE ITAB_MITARBEITER.
  204. ENDMODULE.                    "lade0330 OUTPUT
  205.  
  206. *&---------------------------------------------------------------------*
  207. *&      Module  STATUS_0400  OUTPUT
  208. *&---------------------------------------------------------------------*
  209. *       Medienverwaltung - Start
  210. *----------------------------------------------------------------------*
  211. MODULE STATUS_0400 OUTPUT.
  212.   SET PF-STATUS '400'.
  213.   SET TITLEBAR '400'.
  214. ENDMODULE.                 " STATUS_0400  OUTPUT
  215.  
  216. *&---------------------------------------------------------------------*
  217. *&      Module  STATUS_0410  OUTPUT
  218. *&---------------------------------------------------------------------*
  219. *       Medien anlegen
  220. *----------------------------------------------------------------------*
  221. MODULE STATUS_0410 OUTPUT.
  222.   SET PF-STATUS '410'.
  223.   SET TITLEBAR '410'.
  224.  
  225.   " Variablen deklaration
  226.   DATA: mediumnr TYPE ZTAB_MEDIUM-MEDIUMNR,
  227.         mediumname TYPE ZTAB_MEDIUM-NAME,
  228.         mediumart TYPE ZTAB_MEDIUM-ART,
  229.         mediumverliehen TYPE ZTAB_MEDIUM-VERLIEHEN,
  230.         mediumlagerort TYPE ZTAB_MEDIUM-LAGERORT.
  231.  
  232.   " Neue Mediumnummer anhand der Datenbanktabelle automatisch ermitteln
  233.   SELECT MAX( mediumnr ) FROM ZTAB_MEDIUM INTO mediumnr.
  234.   mediumnr = mediumnr + 1.
  235.  
  236. ENDMODULE.                 " STATUS_0410  OUTPUT
  237.  
  238. *&---------------------------------------------------------------------*
  239. *&      Module  STATUS_0420  OUTPUT
  240. *&---------------------------------------------------------------------*
  241. *       Medien ändern
  242. *----------------------------------------------------------------------*
  243. MODULE STATUS_0420 OUTPUT.
  244.   SET PF-STATUS '420'.
  245.   SET TITLEBAR '420'.
  246.  
  247.   TYPES: BEGIN OF MEDIUM_STRUKTUR,
  248.         MEDIUMNR TYPE ZTAB_MEDIUM-MEDIUMNR,
  249.         NAME TYPE ZTAB_MEDIUM-NAME,
  250.         ART TYPE ZTAB_MEDIUM-ART,
  251.         VERLIEHEN TYPE ZTAB_MEDIUM-VERLIEHEN,
  252.         LAGERORT TYPE ZTAB_MEDIUM-LAGERORT,
  253.        END OF MEDIUM_STRUKTUR.
  254.  
  255.   TYPES: MEDIUM_TYP TYPE STANDARD TABLE OF MEDIUM_STRUKTUR.
  256.  
  257.   DATA: ITAB_MEDIUM TYPE MEDIUM_TYP.
  258.  
  259. ENDMODULE.                 " STATUS_0420  OUTPUT
  260.  
  261. *&---------------------------------------------------------------------*
  262. *&      Module  STATUS_0430  OUTPUT
  263. *&---------------------------------------------------------------------*
  264. *       Medien ausgeben
  265. *----------------------------------------------------------------------*
  266. MODULE STATUS_0430 OUTPUT.
  267.   SET PF-STATUS '430'.
  268.   SET TITLEBAR '430'.
  269. ENDMODULE.                 " STATUS_0430  OUTPUT
  270.  
  271. *----------------------------------------------------------------------*
  272. *  MODULE lade0430 OUTPUT
  273. *----------------------------------------------------------------------*
  274. *
  275. *----------------------------------------------------------------------*
  276. MODULE lade0430 OUTPUT.
  277.   SELECT MEDIUMNR NAME ART VERLIEHEN LAGERORT
  278.         FROM ZTAB_MEDIUM
  279.        INTO TABLE ITAB_MEDIUM.
  280. ENDMODULE.                    "lade0430 OUTPUT
  281.  
  282.  
  283. *&---------------------------------------------------------------------*
  284. *&      Module  STATUS_0600  OUTPUT
  285. *&---------------------------------------------------------------------*
  286. *       Vertragsverwaltung - Start
  287. *----------------------------------------------------------------------*
  288. MODULE STATUS_0600 OUTPUT.
  289.   SET PF-STATUS '600'.
  290.   SET TITLEBAR '600'.
  291. ENDMODULE.                 " STATUS_0600  OUTPUT
  292.  
  293. *&---------------------------------------------------------------------*
  294. *&      Module  STATUS_0610  OUTPUT
  295. *&---------------------------------------------------------------------*
  296. *       Verträge anlegen
  297. *----------------------------------------------------------------------*
  298. MODULE STATUS_0610 OUTPUT.
  299.   SET PF-STATUS '610'.
  300.   SET TITLEBAR '610'.
  301.  
  302.   " Variablen deklaration
  303.   DATA: vertragnr TYPE ZTAB_VERTRAG-VERTRAGNR,
  304.         vertragkundennr TYPE ZTAB_VERTRAG-KUNDENNR,
  305.         vertragmitarbeiternr TYPE ZTAB_VERTRAG-MITARBEITERNR,
  306.         vertragdatum TYPE ZTAB_VERTRAG-DATUM,
  307.         vertragverleihdauer TYPE ZTAB_VERTRAG-VERLEIHDAUER.
  308.  
  309.   " Neue Vertragnummer anhand der Datenbanktabelle automatisch ermitteln
  310.   SELECT MAX( vertragnr ) FROM ZTAB_VERTRAG INTO vertragnr.
  311.   vertragnr = vertragnr + 1.
  312.  
  313. ENDMODULE.                 " STATUS_0610  OUTPUT
  314.  
  315. *&---------------------------------------------------------------------*
  316. *&      Module  STATUS_0620  OUTPUT
  317. *&---------------------------------------------------------------------*
  318. *       Verträge ändern
  319. *----------------------------------------------------------------------*
  320. MODULE STATUS_0620 OUTPUT.
  321.   SET PF-STATUS '620'.
  322.   SET TITLEBAR '620'.
  323.  
  324.   TYPES: BEGIN OF VERTRAG_STRUKTUR,
  325.       VERTRAGNR TYPE ZTAB_VERTRAG-VERTRAGNR,
  326.       VERTRAGKUNDENNR TYPE ZTAB_VERTRAG-KUNDENNR,
  327.       VERTRAGMITARBEITERNR TYPE ZTAB_VERTRAG-MITARBEITERNR,
  328.       VERTRAGDATUM TYPE ZTAB_VERTRAG-DATUM,
  329.       VERTRAGVERLEIHDAUER TYPE ZTAB_VERTRAG-VERLEIHDAUER,
  330.  
  331.      END OF VERTRAG_STRUKTUR.
  332.  
  333.   TYPES: VERTRAG_TYP TYPE STANDARD TABLE OF VERTRAG_STRUKTUR.
  334.  
  335.   DATA: ITAB_VERTRAG TYPE VERTRAG_TYP.
  336.  
  337. ENDMODULE.                 " STATUS_0620  OUTPUT
  338.  
  339. *&---------------------------------------------------------------------*
  340. *&      Module  STATUS_0630  OUTPUT
  341. *&---------------------------------------------------------------------*
  342. *       Verträge ausgeben
  343. *----------------------------------------------------------------------*
  344. MODULE STATUS_0630 OUTPUT.
  345.   SET PF-STATUS '630'.
  346.   SET TITLEBAR '630'.
  347. ENDMODULE.                 " STATUS_0630  OUTPUT
  348. *----------------------------------------------------------------------*
  349. *  MODULE lade0630 OUTPUT
  350. *----------------------------------------------------------------------*
  351. *
  352. *----------------------------------------------------------------------*
  353. MODULE lade0630 OUTPUT.
  354.   SELECT VERTRAGNR KUNDENNR MITARBEITERNR DATUM VERLEIHDAUER
  355.        FROM ZTAB_VERTRAG
  356.        INTO TABLE ITAB_VERTRAG.
  357. ENDMODULE.                    "lade0630 OUTPUT
  358.  
  359. *&---------------------------------------------------------------------*
  360. *&      Module  STATUS_0700  OUTPUT
  361. *&---------------------------------------------------------------------*
  362. *       Statistiken
  363. *----------------------------------------------------------------------*
  364. MODULE STATUS_0700 OUTPUT.
  365.   SET PF-STATUS '700'.
  366.   SET TITLEBAR '700'.
  367. ENDMODULE.                 " STATUS_0700  OUTPUT
  368. ************************************************************************************************
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375. ******************************PAI-MODULE********************************************************
  376. *&---------------------------------------------------------------------*
  377. *&      Module  USER_COMMAND_0100  INPUT
  378. *&---------------------------------------------------------------------*
  379. *       Startbildschirm
  380. *----------------------------------------------------------------------*
  381. MODULE USER_COMMAND_0100 INPUT.
  382.   save_ok = ok_code.
  383.   CLEAR ok_code.
  384.   CASE save_ok.
  385.     WHEN 'EXIT'.
  386.       LEAVE PROGRAM.
  387.     WHEN 'GUI_KUNDEN'.
  388.       LEAVE TO SCREEN 200.
  389.     WHEN 'GUI_MITARBEITER'.
  390.       LEAVE TO SCREEN 300.
  391.     WHEN 'GUI_MEDIEN'.
  392.       LEAVE TO SCREEN 400.
  393.     WHEN 'GUI_LAGERORTE'.
  394.       LEAVE TO SCREEN 500.
  395.     WHEN 'GUI_VERTRAEGE'.
  396.       LEAVE TO SCREEN 600.
  397.     WHEN 'GUI_STATISTIKEN'.
  398.       LEAVE TO SCREEN 700.
  399.   ENDCASE.
  400. ENDMODULE.                 " USER_COMMAND_0100  INPUT
  401.  
  402. *&---------------------------------------------------------------------*
  403. *&      Module  USER_COMMAND_0200  INPUT
  404. *&---------------------------------------------------------------------*
  405. *       Kundenverwaltung - Start
  406. *----------------------------------------------------------------------*
  407. MODULE USER_COMMAND_0200 INPUT.
  408.   save_ok = ok_code.
  409.   CLEAR ok_code.
  410.   CASE save_ok.
  411.     WHEN 'BACK'.
  412.       LEAVE TO SCREEN 100.
  413.     WHEN 'ANLEGEN'.
  414.       LEAVE To SCREEN 210.
  415.     WHEN 'AENDERN'.
  416.       LEAVE To SCREEN 220.
  417.     WHEN 'AUSGEBEN'.
  418.       LEAVE To SCREEN 230.
  419.   ENDCASE.
  420. ENDMODULE.                 " USER_COMMAND_0200  INPUT
  421.  
  422. *&---------------------------------------------------------------------*
  423. *&      Module  USER_COMMAND_0210  INPUT
  424. *&---------------------------------------------------------------------*
  425. *       Kunden anlegen
  426. *----------------------------------------------------------------------*
  427. MODULE USER_COMMAND_0210 INPUT.
  428.   save_ok = ok_code.
  429.   CLEAR ok_code.
  430.   CASE save_ok.
  431.     WHEN 'BACK'.
  432.       LEAVE TO SCREEN 200.
  433.     WHEN 'GUI_HAUPTM'.
  434.       LEAVE TO SCREEN 100.
  435.     WHEN 'ANLEGEN'.
  436.       " Temp-Tabelle leeren
  437.       CLEAR tab_kunde.
  438.  
  439.       " Werte in Temp-Tabelle schreiben
  440.       tab_kunde-KUNDENNR = kundennr.
  441.       tab_kunde-NAME = kundenname.
  442.       tab_kunde-VORNAME = kundenvorname.
  443.       tab_kunde-STRASSE = kundenstrasse.
  444.       tab_kunde-PLZ = kundenplz.
  445.       tab_kunde-ORT = kundenort.
  446.       tab_kunde-TELEFON = kundentelefon.
  447.  
  448.       " Temp-Tabelle in Datenbanktabelle schreiben
  449.       INSERT INTO ZTAB_KUNDE VALUES tab_kunde.
  450.  
  451.       " Ergebnis in Messagebox anzeigen
  452.       IF sy-subrc NE 0.
  453.         ROLLBACK WORK.
  454.         MESSAGE I000(Z_DEV016015) WITH kundenvorname kundenname.
  455.       ELSE.
  456.         MESSAGE I001(Z_DEV016015) WITH kundenvorname kundenname.
  457.         CLEAR:   kundenname, kundenvorname, kundenstrasse, kundenplz, kundenort, kundentelefon.
  458.       ENDIF.
  459.   ENDCASE.
  460.  
  461. ENDMODULE.                 " USER_COMMAND_0210  INPUT
  462.  
  463. *&---------------------------------------------------------------------*
  464. *&      Module  USER_COMMAND_0220  INPUT
  465. *&---------------------------------------------------------------------*
  466. *       Kunden ändern
  467. *----------------------------------------------------------------------*
  468. MODULE USER_COMMAND_0220 INPUT.
  469.   save_ok = ok_code.
  470.   CLEAR ok_code.
  471.   CASE save_ok.
  472.     WHEN 'BACK'.
  473.       LEAVE TO SCREEN 200.
  474.     WHEN 'GUI_HAUPTM'.
  475.       LEAVE TO SCREEN 100.
  476.   ENDCASE.
  477. ENDMODULE.                 " USER_COMMAND_0220  INPUT
  478.  
  479. *&---------------------------------------------------------------------*
  480. *&      Module  USER_COMMAND_0230  INPUT
  481. *&---------------------------------------------------------------------*
  482. *       Kunden ausgeben
  483. *----------------------------------------------------------------------*
  484. MODULE USER_COMMAND_0230 INPUT.
  485.   save_ok = ok_code.
  486.   CLEAR ok_code.
  487.   CASE save_ok.
  488.     WHEN 'BACK'.
  489.       LEAVE TO SCREEN 200.
  490.     WHEN 'GUI_HAUPTM'.
  491.       LEAVE TO SCREEN 100.
  492.   ENDCASE.
  493. ENDMODULE.                 " USER_COMMAND_0230  INPUT
  494.  
  495. *&---------------------------------------------------------------------*
  496. *&      Module  USER_COMMAND_0300  INPUT
  497. *&---------------------------------------------------------------------*
  498. *       Mitarbeiterverwaltung - Start
  499. *----------------------------------------------------------------------*
  500. MODULE USER_COMMAND_0300 INPUT.
  501.   save_ok = ok_code.
  502.   CLEAR ok_code.
  503.   CASE save_ok.
  504.     WHEN 'BACK'.
  505.       LEAVE TO SCREEN 100.
  506.     WHEN 'ANLEGEN'.
  507.       LEAVE To SCREEN 310.
  508.     WHEN 'AENDERN'.
  509.       LEAVE To SCREEN 320.
  510.     WHEN 'AUSGEBEN'.
  511.       LEAVE To SCREEN 330.
  512.   ENDCASE.
  513. ENDMODULE.                 " USER_COMMAND_0300  INPUT
  514.  
  515. *&---------------------------------------------------------------------*
  516. *&      Module  USER_COMMAND_0310  INPUT
  517. *&---------------------------------------------------------------------*
  518. *       Mitarbeiter anlegen
  519. *----------------------------------------------------------------------*
  520. MODULE USER_COMMAND_0310 INPUT.
  521.   save_ok = ok_code.
  522.   CLEAR ok_code.
  523.   CASE save_ok.
  524.     WHEN 'BACK'.
  525.       LEAVE TO SCREEN 300.
  526.     WHEN 'GUI_HAUPTM'.
  527.       LEAVE TO SCREEN 100.
  528.     WHEN 'ANLEGEN'.
  529.       " Temp-Tabelle leeren
  530.       CLEAR tab_mitarbeiter.
  531.  
  532.       " Werte in Temp-Tabelle schreiben
  533.       tab_mitarbeiter-MITARBEITERNR = mitarbeiternr.
  534.       tab_mitarbeiter-NAME = mitarbeitername.
  535.       tab_mitarbeiter-VORNAME = mitarbeitervorname.
  536.       tab_mitarbeiter-STRASSE = mitarbeiterstrasse.
  537.       tab_mitarbeiter-PLZ = mitarbeiterplz.
  538.       tab_mitarbeiter-ORT = mitarbeiterort.
  539.       tab_mitarbeiter-TELEFON = mitarbeitertelefon.
  540.  
  541.       " Temp-Tabelle in Datenbanktabelle schreiben
  542.       INSERT INTO ZTAB_MITARBEITER VALUES tab_mitarbeiter.
  543.  
  544.       " Ergebnis in Messagebox anzeigen
  545.       IF sy-subrc NE 0.
  546.         ROLLBACK WORK.
  547.         MESSAGE I002(Z_DEV016015) WITH mitarbeitervorname mitarbeitername.
  548.       ELSE.
  549.         MESSAGE I003(Z_DEV016015) WITH mitarbeitervorname mitarbeitername.
  550.         CLEAR:   mitarbeitername, mitarbeitervorname, mitarbeiterstrasse, mitarbeiterplz, mitarbeiterort, mitarbeitertelefon.
  551.       ENDIF.
  552.   ENDCASE.
  553. ENDMODULE.                 " USER_COMMAND_0310  INPUT
  554.  
  555. *&---------------------------------------------------------------------*
  556. *&      Module  USER_COMMAND_0320  INPUT
  557. *&---------------------------------------------------------------------*
  558. *       Mitarberiter ändern
  559. *----------------------------------------------------------------------*
  560. MODULE USER_COMMAND_0320 INPUT.
  561.   save_ok = ok_code.
  562.   CLEAR ok_code.
  563.   CASE save_ok.
  564.     WHEN 'BACK'.
  565.       LEAVE TO SCREEN 300.
  566.     WHEN 'GUI_HAUPTM'.
  567.       LEAVE TO SCREEN 100.
  568. *    WHEN 'AENDERN'.
  569. *
  570. *      SELECT MITARBEITERNR NAME VORNAME STRASSE PLZ ORT TELEFON
  571. *       FROM ZTAB_MITARBEITER
  572. *       INTO TABLE ITAB_MITARBEITER WHERE MITARBEITERNR = MITARBEITERNR.
  573.  
  574.  
  575.  
  576.   ENDCASE.
  577. ENDMODULE.                 " USER_COMMAND_0320  INPUT
  578.  
  579. *&---------------------------------------------------------------------*
  580. *&      Module  USER_COMMAND_0330  INPUT
  581. *&---------------------------------------------------------------------*
  582. *       Mitarbeiter ausgeben
  583. *----------------------------------------------------------------------*
  584. MODULE USER_COMMAND_0330 INPUT.
  585.   save_ok = ok_code.
  586.   CLEAR ok_code.
  587.   CASE save_ok.
  588.     WHEN 'BACK'.
  589.       LEAVE TO SCREEN 300.
  590.     WHEN 'GUI_HAUPTM'.
  591.       LEAVE TO SCREEN 100.
  592.   ENDCASE.
  593. ENDMODULE.                 " USER_COMMAND_0330  INPUT
  594.  
  595.  
  596. *&---------------------------------------------------------------------*
  597. *&      Module  USER_COMMAND_0400  INPUT
  598. *&---------------------------------------------------------------------*
  599. *       Medienverwaltung - Start
  600. *----------------------------------------------------------------------*
  601. MODULE USER_COMMAND_0400 INPUT.
  602.   save_ok = ok_code.
  603.   CLEAR ok_code.
  604.   CASE save_ok.
  605.     WHEN 'BACK'.
  606.       LEAVE TO SCREEN 100.
  607.     WHEN 'ANLEGEN'.
  608.       LEAVE To SCREEN 410.
  609.     WHEN 'AENDERN'.
  610.       LEAVE To SCREEN 420.
  611.     WHEN 'AUSGEBEN'.
  612.       LEAVE To SCREEN 430.
  613.   ENDCASE.
  614. ENDMODULE.                 " USER_COMMAND_0400  INPUT
  615.  
  616. *&---------------------------------------------------------------------*
  617. *&      Module  USER_COMMAND_0410  INPUT
  618. *&---------------------------------------------------------------------*
  619. *       Medien anlegen
  620. *----------------------------------------------------------------------*
  621. MODULE USER_COMMAND_0410 INPUT.
  622.   save_ok = ok_code.
  623.   CLEAR ok_code.
  624.   CASE save_ok.
  625.     WHEN 'BACK'.
  626.       LEAVE TO SCREEN 400.
  627.     WHEN 'GUI_HAUPTM'.
  628.       LEAVE TO SCREEN 100.
  629.     WHEN 'ANLEGEN'.
  630.       " Temp-Tabelle leeren
  631.       CLEAR tab_medium.
  632.  
  633.       " Werte in Temp-Tabelle schreiben
  634.       tab_medium-MEDIUMNR = mediumnr.
  635.       tab_medium-NAME = mediumname.
  636.       tab_medium-ART = mediumart.
  637.       tab_medium-VERLIEHEN = mediumverliehen.
  638.       tab_medium-LAGERORT = mediumlagerort.
  639.  
  640.       " Temp-Tabelle in Datenbanktabelle schreiben
  641.       INSERT INTO ZTAB_MEDIUM VALUES tab_medium.
  642.  
  643.       " Ergebnis in Messagebox anzeigen
  644.       IF sy-subrc NE 0.
  645.         ROLLBACK WORK.
  646.         MESSAGE I004(Z_DEV016015) WITH mediumname.
  647.       ELSE.
  648.         MESSAGE I005(Z_DEV016015) WITH mediumname.
  649.         CLEAR:   mediumname, mediumart, mediumverliehen, mediumlagerort.
  650.       ENDIF.
  651.   ENDCASE.
  652. ENDMODULE.                 " USER_COMMAND_0410  INPUT
  653.  
  654. *&---------------------------------------------------------------------*
  655. *&      Module  USER_COMMAND_0420  INPUT
  656. *&---------------------------------------------------------------------*
  657. *       Medien ändern
  658. *----------------------------------------------------------------------*
  659. MODULE USER_COMMAND_0420 INPUT.
  660.   save_ok = ok_code.
  661.   CLEAR ok_code.
  662.   CASE save_ok.
  663.     WHEN 'BACK'.
  664.       LEAVE TO SCREEN 400.
  665.     WHEN 'GUI_HAUPTM'.
  666.       LEAVE TO SCREEN 100.
  667.   ENDCASE.
  668. ENDMODULE.                 " USER_COMMAND_0420  INPUT
  669.  
  670. *&---------------------------------------------------------------------*
  671. *&      Module  USER_COMMAND_0430  INPUT
  672. *&---------------------------------------------------------------------*
  673. *       Medien ausgeben
  674. *----------------------------------------------------------------------*
  675. MODULE USER_COMMAND_0430 INPUT.
  676.   save_ok = ok_code.
  677.   CLEAR ok_code.
  678.   CASE save_ok.
  679.     WHEN 'BACK'.
  680.       LEAVE TO SCREEN 400.
  681.     WHEN 'GUI_HAUPTM'.
  682.       LEAVE TO SCREEN 100.
  683.   ENDCASE.
  684. ENDMODULE.                 " USER_COMMAND_0430  INPUT
  685.  
  686. *&---------------------------------------------------------------------*
  687. *&      Module  USER_COMMAND_0600  INPUT
  688. *&---------------------------------------------------------------------*
  689. *       Vertragsverwaltung - Start
  690. *----------------------------------------------------------------------*
  691. MODULE USER_COMMAND_0600 INPUT.
  692.   save_ok = ok_code.
  693.   CLEAR ok_code.
  694.   CASE save_ok.
  695.     WHEN 'BACK'.
  696.       LEAVE TO SCREEN 100.
  697.     WHEN 'ANLEGEN'.
  698.       LEAVE To SCREEN 610.
  699.     WHEN 'AENDERN'.
  700.       LEAVE To SCREEN 620.
  701.     WHEN 'AUSGEBEN'.
  702.       LEAVE To SCREEN 630.
  703.   ENDCASE.
  704. ENDMODULE.                 " USER_COMMAND_0600  INPUT
  705.  
  706. *&---------------------------------------------------------------------*
  707. *&      Module  USER_COMMAND_0610  INPUT
  708. *&---------------------------------------------------------------------*
  709. *       Verträge anlegen
  710. *----------------------------------------------------------------------*
  711. MODULE USER_COMMAND_0610 INPUT.
  712.   save_ok = ok_code.
  713.   CLEAR ok_code.
  714.   CASE save_ok.
  715.     WHEN 'BACK'.
  716.       LEAVE TO SCREEN 600.
  717.     WHEN 'GUI_HAUPTM'.
  718.       LEAVE TO SCREEN 100.
  719.   ENDCASE.
  720. ENDMODULE.                 " USER_COMMAND_0610  INPUT
  721.  
  722. *&---------------------------------------------------------------------*
  723. *&      Module  USER_COMMAND_0620  INPUT
  724. *&---------------------------------------------------------------------*
  725. *       Verträge ändern
  726. *----------------------------------------------------------------------*
  727. MODULE USER_COMMAND_0620 INPUT.
  728.   save_ok = ok_code.
  729.   CLEAR ok_code.
  730.   CASE save_ok.
  731.     WHEN 'BACK'.
  732.       LEAVE TO SCREEN 600.
  733.     WHEN 'GUI_HAUPTM'.
  734.       LEAVE TO SCREEN 100.
  735.   ENDCASE.
  736. ENDMODULE.                 " USER_COMMAND_0620  INPUT
  737.  
  738. *&---------------------------------------------------------------------*
  739. *&      Module  USER_COMMAND_0630  INPUT
  740. *&---------------------------------------------------------------------*
  741. *       Verträge ausgeben
  742. *----------------------------------------------------------------------*
  743. MODULE USER_COMMAND_0630 INPUT.
  744.   save_ok = ok_code.
  745.   CLEAR ok_code.
  746.   CASE save_ok.
  747.     WHEN 'BACK'.
  748.       LEAVE TO SCREEN 600.
  749.     WHEN 'GUI_HAUPTM'.
  750.       LEAVE TO SCREEN 100.
  751.   ENDCASE.
  752. ENDMODULE.                 " USER_COMMAND_0630  INPUT
  753.  
  754. *&---------------------------------------------------------------------*
  755. *&      Module  USER_COMMAND_0700  INPUT
  756. *&---------------------------------------------------------------------*
  757. *       Statistiken
  758. *----------------------------------------------------------------------*
  759. MODULE USER_COMMAND_0700 INPUT.
  760.   save_ok = ok_code.
  761.   CLEAR ok_code.
  762.   CASE save_ok.
  763.     WHEN 'BACK'.
  764.       LEAVE TO SCREEN 100.
  765.   ENDCASE.
  766. ENDMODULE.                 " USER_COMMAND_0700  INPUT
  767. ************************************************************************************************
  768.  
  769. *&SPWIZARD: DECLARATION OF TABLECONTROL 'TABLECONTROL' ITSELF
  770. CONTROLS: TABLECONTROL TYPE TABLEVIEW USING SCREEN 0230.
  771.  
  772. *&SPWIZARD: LINES OF TABLECONTROL 'TABLECONTROL'
  773. DATA:     G_TABLECONTROL_LINES  LIKE SY-LOOPC.
  774.  
  775. *&SPWIZARD: OUTPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE
  776. *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
  777. MODULE TABLECONTROL_CHANGE_TC_ATTR OUTPUT.
  778.   DESCRIBE TABLE ITAB_KUNDEN LINES TABLECONTROL-lines.
  779. ENDMODULE.                    "TABLECONTROL_CHANGE_TC_ATTR OUTPUT
  780.  
  781. *&SPWIZARD: OUTPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE
  782. *&SPWIZARD: GET LINES OF TABLECONTROL
  783. MODULE TABLECONTROL_GET_LINES OUTPUT.
  784.   G_TABLECONTROL_LINES = SY-LOOPC.
  785. ENDMODULE.                    "TABLECONTROL_GET_LINES OUTPUT
  786.  
  787. *&SPWIZARD: INPUT MODULE FOR TC 'TABLECONTROL'. DO NOT CHANGE THIS LINE!
  788. *&SPWIZARD: PROCESS USER COMMAND
  789. MODULE TABLECONTROL_USER_COMMAND INPUT.
  790.   OK_CODE = SY-UCOMM.
  791.   PERFORM USER_OK_TC USING    'TABLECONTROL'
  792.                               'ITAB_KUNDEN'
  793.                               ' '
  794.                      CHANGING OK_CODE.
  795.   SY-UCOMM = OK_CODE.
  796. ENDMODULE.                    "TABLECONTROL_USER_COMMAND INPUT
  797.  
  798. *----------------------------------------------------------------------*
  799. *   INCLUDE TABLECONTROL_FORMS                                         *
  800. *----------------------------------------------------------------------*
  801.  
  802. *&---------------------------------------------------------------------*
  803. *&      Form  USER_OK_TC                                               *
  804. *&---------------------------------------------------------------------*
  805. FORM USER_OK_TC USING    P_TC_NAME TYPE DYNFNAM
  806.                          P_TABLE_NAME
  807.                          P_MARK_NAME
  808.                 CHANGING P_OK      LIKE SY-UCOMM.
  809.  
  810. *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
  811.   DATA: L_OK              TYPE SY-UCOMM,
  812.         L_OFFSET          TYPE I.
  813. *&SPWIZARD: END OF LOCAL DATA------------------------------------------*
  814.  
  815. *&SPWIZARD: Table control specific operations                          *
  816. *&SPWIZARD: evaluate TC name and operations                            *
  817.   SEARCH P_OK FOR P_TC_NAME.
  818.   IF SY-SUBRC <> 0.
  819.     EXIT.
  820.   ENDIF.
  821.   L_OFFSET = STRLEN( P_TC_NAME ) + 1.
  822.   L_OK = P_OK+L_OFFSET.
  823. *&SPWIZARD: execute general and TC specific operations                 *
  824.   CASE L_OK.
  825.     WHEN 'INSR'.                      "insert row
  826.       PERFORM FCODE_INSERT_ROW USING    P_TC_NAME
  827.                                         P_TABLE_NAME.
  828.       CLEAR P_OK.
  829.  
  830.     WHEN 'DELE'.                      "delete row
  831.       PERFORM FCODE_DELETE_ROW USING    P_TC_NAME
  832.                                         P_TABLE_NAME
  833.                                         P_MARK_NAME.
  834.       CLEAR P_OK.
  835.  
  836.     WHEN 'P--' OR                     "top of list
  837.          'P-'  OR                     "previous page
  838.          'P+'  OR                     "next page
  839.          'P++'.                       "bottom of list
  840.       PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
  841.                                             L_OK.
  842.       CLEAR P_OK.
  843. *     WHEN 'L--'.                       "total left
  844. *       PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
  845. *
  846. *     WHEN 'L-'.                        "column left
  847. *       PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
  848. *
  849. *     WHEN 'R+'.                        "column right
  850. *       PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
  851. *
  852. *     WHEN 'R++'.                       "total right
  853. *       PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
  854. *
  855.     WHEN 'MARK'.                      "mark all filled lines
  856.       PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
  857.                                         P_TABLE_NAME
  858.                                         P_MARK_NAME   .
  859.       CLEAR P_OK.
  860.  
  861.     WHEN 'DMRK'.                      "demark all filled lines
  862.       PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
  863.                                           P_TABLE_NAME
  864.                                           P_MARK_NAME .
  865.       CLEAR P_OK.
  866.  
  867. *     WHEN 'SASCEND'   OR
  868. *          'SDESCEND'.                  "sort column
  869. *       PERFORM FCODE_SORT_TC USING P_TC_NAME
  870. *                                   l_ok.
  871.  
  872.   ENDCASE.
  873.  
  874. ENDFORM.                              " USER_OK_TC
  875.  
  876. *&---------------------------------------------------------------------*
  877. *&      Form  FCODE_INSERT_ROW                                         *
  878. *&---------------------------------------------------------------------*
  879. FORM fcode_insert_row
  880.               USING    P_TC_NAME           TYPE DYNFNAM
  881.                        P_TABLE_NAME             .
  882.  
  883. *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
  884.   DATA L_LINES_NAME       LIKE FELD-NAME.
  885.   DATA L_SELLINE          LIKE SY-STEPL.
  886.   DATA L_LASTLINE         TYPE I.
  887.   DATA L_LINE             TYPE I.
  888.   DATA L_TABLE_NAME       LIKE FELD-NAME.
  889.   FIELD-SYMBOLS <TC>                 TYPE CXTAB_CONTROL.
  890.   FIELD-SYMBOLS <TABLE>              TYPE STANDARD TABLE.
  891.   FIELD-SYMBOLS <LINES>              TYPE I.
  892. *&SPWIZARD: END OF LOCAL DATA------------------------------------------*
  893.  
  894.   ASSIGN (P_TC_NAME) TO <TC>.
  895.  
  896. *&SPWIZARD: get the table, which belongs to the tc                     *
  897.   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
  898.   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline
  899.  
  900. *&SPWIZARD: get looplines of TableControl                              *
  901.   CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.
  902.   ASSIGN (L_LINES_NAME) TO <LINES>.
  903.  
  904. *&SPWIZARD: get current line                                           *
  905.   GET CURSOR LINE L_SELLINE.
  906.   IF SY-SUBRC <> 0.                   " append line to table
  907.     L_SELLINE = <TC>-LINES + 1.
  908. *&SPWIZARD: set top line                                               *
  909.     IF L_SELLINE > <LINES>.
  910.       <TC>-TOP_LINE = L_SELLINE - <LINES> + 1 .
  911.     ELSE.
  912.       <TC>-TOP_LINE = 1.
  913.     ENDIF.
  914.   ELSE.                               " insert line into table
  915.     L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1.
  916.     L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1.
  917.   ENDIF.
  918. *&SPWIZARD: set new cursor line                                        *
  919.   L_LINE = L_SELLINE - <TC>-TOP_LINE + 1.
  920.  
  921. *&SPWIZARD: insert initial line                                        *
  922.   INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
  923.   <TC>-LINES = <TC>-LINES + 1.
  924. *&SPWIZARD: set cursor                                                 *
  925.   SET CURSOR LINE L_LINE.
  926.  
  927. ENDFORM.                              " FCODE_INSERT_ROW
  928.  
  929. *&---------------------------------------------------------------------*
  930. *&      Form  FCODE_DELETE_ROW                                         *
  931. *&---------------------------------------------------------------------*
  932. FORM fcode_delete_row
  933.               USING    P_TC_NAME           TYPE DYNFNAM
  934.                        P_TABLE_NAME
  935.                        P_MARK_NAME   .
  936.  
  937. *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
  938.   DATA L_TABLE_NAME       LIKE FELD-NAME.
  939.  
  940.   FIELD-SYMBOLS <TC>         TYPE cxtab_control.
  941.   FIELD-SYMBOLS <TABLE>      TYPE STANDARD TABLE.
  942.   FIELD-SYMBOLS <WA>.
  943.   FIELD-SYMBOLS <MARK_FIELD>.
  944. *&SPWIZARD: END OF LOCAL DATA------------------------------------------*
  945.  
  946.   ASSIGN (P_TC_NAME) TO <TC>.
  947.  
  948. *&SPWIZARD: get the table, which belongs to the tc                     *
  949.   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
  950.   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline
  951.  
  952. *&SPWIZARD: delete marked lines                                        *
  953.   DESCRIBE TABLE <TABLE> LINES <TC>-LINES.
  954.  
  955.   LOOP AT <TABLE> ASSIGNING <WA>.
  956.  
  957. *&SPWIZARD: access to the component 'FLAG' of the table header         *
  958.     ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
  959.  
  960.     IF <MARK_FIELD> = 'X'.
  961.       DELETE <TABLE> INDEX SYST-TABIX.
  962.       IF SY-SUBRC = 0.
  963.         <TC>-LINES = <TC>-LINES - 1.
  964.       ENDIF.
  965.     ENDIF.
  966.  
  967. ENDFORM.                              " FCODE_DELETE_ROW
  968.  
  969. *&---------------------------------------------------------------------*
  970. *&      Form  COMPUTE_SCROLLING_IN_TC
  971. *&---------------------------------------------------------------------*
  972. *       text
  973. *----------------------------------------------------------------------*
  974. *      -->P_TC_NAME  name of tablecontrol
  975. *      -->P_OK       ok code
  976. *----------------------------------------------------------------------*
  977. FORM COMPUTE_SCROLLING_IN_TC USING    P_TC_NAME
  978.                                       P_OK.
  979. *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
  980.   DATA L_TC_NEW_TOP_LINE     TYPE I.
  981.   DATA L_TC_NAME             LIKE FELD-NAME.
  982.   DATA L_TC_LINES_NAME       LIKE FELD-NAME.
  983.   DATA L_TC_FIELD_NAME       LIKE FELD-NAME.
  984.  
  985.   FIELD-SYMBOLS <TC>         TYPE cxtab_control.
  986.   FIELD-SYMBOLS <LINES>      TYPE I.
  987. *&SPWIZARD: END OF LOCAL DATA------------------------------------------*
  988.  
  989.   ASSIGN (P_TC_NAME) TO <TC>.
  990. *&SPWIZARD: get looplines of TableControl                              *
  991.   CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.
  992.   ASSIGN (L_TC_LINES_NAME) TO <LINES>.
  993.  
  994.  
  995. *&SPWIZARD: is no line filled?                                         *
  996.   IF <TC>-LINES = 0.
  997. *&SPWIZARD: yes, ...                                                   *
  998.     L_TC_NEW_TOP_LINE = 1.
  999.   ELSE.
  1000. *&SPWIZARD: no, ...                                                    *
  1001.     CALL FUNCTION 'SCROLLING_IN_TABLE'
  1002.          EXPORTING
  1003.               ENTRY_ACT             = <TC>-TOP_LINE
  1004.               ENTRY_FROM            = 1
  1005.               ENTRY_TO              = <TC>-LINES
  1006.               LAST_PAGE_FULL        = 'X'
  1007.               LOOPS                 = <LINES>
  1008.               OK_CODE               = P_OK
  1009.               OVERLAPPING           = 'X'
  1010.          IMPORTING
  1011.               ENTRY_NEW             = L_TC_NEW_TOP_LINE
  1012.          EXCEPTIONS
  1013. *              NO_ENTRY_OR_PAGE_ACT  = 01
  1014. *              NO_ENTRY_TO           = 02
  1015. *              NO_OK_CODE_OR_PAGE_GO = 03
  1016.               OTHERS                = 0.
  1017.   ENDIF.
  1018.  
  1019. *&SPWIZARD: get actual tc and column                                   *
  1020.   GET CURSOR FIELD L_TC_FIELD_NAME
  1021.              AREA  L_TC_NAME.
  1022.  
  1023.   IF SYST-SUBRC = 0.
  1024.     IF L_TC_NAME = P_TC_NAME.
  1025. *&SPWIZARD: et actual column                                           *
  1026.       SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
  1027.     ENDIF.
  1028.   ENDIF.
  1029.  
  1030. *&SPWIZARD: set the new top line                                       *
  1031.   <TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
  1032.  
  1033.  
  1034. ENDFORM.                              " COMPUTE_SCROLLING_IN_TC
  1035.  
  1036. *&---------------------------------------------------------------------*
  1037. *&      Form  FCODE_TC_MARK_LINES
  1038. *&---------------------------------------------------------------------*
  1039. *       marks all TableControl lines
  1040. *----------------------------------------------------------------------*
  1041. *      -->P_TC_NAME  name of tablecontrol
  1042. *----------------------------------------------------------------------*
  1043. FORM FCODE_TC_MARK_LINES USING P_TC_NAME
  1044.                                P_TABLE_NAME
  1045.                                P_MARK_NAME.
  1046. *&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------*
  1047.   DATA L_TABLE_NAME       LIKE FELD-NAME.
  1048.  
  1049.   FIELD-SYMBOLS <TC>         TYPE cxtab_control.
  1050.   FIELD-SYMBOLS <TABLE>      TYPE STANDARD TABLE.
  1051.   FIELD-SYMBOLS <WA>.
  1052.   FIELD-SYMBOLS <MARK_FIELD>.
  1053. *&SPWIZARD: END OF LOCAL DATA------------------------------------------*
  1054.  
  1055.   ASSIGN (P_TC_NAME) TO <TC>.
  1056.  
  1057. *&SPWIZARD: get the table, which belongs to the tc                     *
  1058.   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
  1059.   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline
  1060.  
  1061. *&SPWIZARD: mark all filled lines                                      *
  1062.   LOOP AT <TABLE> ASSIGNING <WA>.
  1063.  
  1064. *&SPWIZARD: access to the component 'FLAG' of the table header         *
  1065.     ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
  1066.  
  1067.     <MARK_FIELD> = 'X'.
  1068. ENDFORM.                                          "fcode_tc_mark_lines
  1069.  
  1070. *&---------------------------------------------------------------------*
  1071. *&      Form  FCODE_TC_DEMARK_LINES
  1072. *&---------------------------------------------------------------------*
  1073. *       demarks all TableControl lines
  1074. *----------------------------------------------------------------------*
  1075. *      -->P_TC_NAME  name of tablecontrol
  1076. *----------------------------------------------------------------------*
  1077. FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
  1078.                                  P_TABLE_NAME
  1079.                                  P_MARK_NAME .
  1080. *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
  1081.   DATA L_TABLE_NAME       LIKE FELD-NAME.
  1082.  
  1083.   FIELD-SYMBOLS <TC>         TYPE cxtab_control.
  1084.   FIELD-SYMBOLS <TABLE>      TYPE STANDARD TABLE.
  1085.   FIELD-SYMBOLS <WA>.
  1086.   FIELD-SYMBOLS <MARK_FIELD>.
  1087. *&SPWIZARD: END OF LOCAL DATA------------------------------------------*
  1088.  
  1089.   ASSIGN (P_TC_NAME) TO <TC>.
  1090.  
  1091. *&SPWIZARD: get the table, which belongs to the tc                     *
  1092.   CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
  1093.   ASSIGN (L_TABLE_NAME) TO <TABLE>.                "not headerline
  1094.  
  1095. *&SPWIZARD: demark all filled lines                                    *
  1096.   LOOP AT <TABLE> ASSIGNING <WA>.
  1097.  
  1098. *&SPWIZARD: access to the component 'FLAG' of the table header         *
  1099.     ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
  1100.  
  1101.     <MARK_FIELD> = SPACE.
  1102. ENDFORM.                                          "fcode_tc_mark_lines
  1103.  
  1104. *&SPWIZARD: DECLARATION OF TABLECONTROL 'MITARBEITER_TC' ITSELF
  1105. CONTROLS: MITARBEITER_TC TYPE TABLEVIEW USING SCREEN 0330.
  1106.  
  1107. *&SPWIZARD: LINES OF TABLECONTROL 'MITARBEITER_TC'
  1108. DATA:     G_MITARBEITER_TC_LINES  LIKE SY-LOOPC.
  1109.  
  1110. *&SPWIZARD: OUTPUT MODULE FOR TC 'MITARBEITER_TC'. DO NOT CHANGE THIS LI
  1111. *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
  1112. MODULE MITARBEITER_TC_CHANGE_TC_ATTR OUTPUT.
  1113.   DESCRIBE TABLE ITAB_MITARBEITER LINES MITARBEITER_TC-lines.
  1114. ENDMODULE.                    "MITARBEITER_TC_CHANGE_TC_ATTR OUTPUT
  1115.  
  1116. *&SPWIZARD: OUTPUT MODULE FOR TC 'MITARBEITER_TC'. DO NOT CHANGE THIS LI
  1117. *&SPWIZARD: GET LINES OF TABLECONTROL
  1118. MODULE MITARBEITER_TC_GET_LINES OUTPUT.
  1119.   G_MITARBEITER_TC_LINES = SY-LOOPC.
  1120. ENDMODULE.                    "MITARBEITER_TC_GET_LINES OUTPUT
  1121.  
  1122. *&SPWIZARD: INPUT MODULE FOR TC 'MITARBEITER_TC'. DO NOT CHANGE THIS LIN
  1123. *&SPWIZARD: PROCESS USER COMMAND
  1124. MODULE MITARBEITER_TC_USER_COMMAND INPUT.
  1125.   OK_CODE = SY-UCOMM.
  1126.   PERFORM USER_OK_TC USING    'MITARBEITER_TC'
  1127.                               'ITAB_MITARBEITER'
  1128.                               ' '
  1129.                      CHANGING OK_CODE.
  1130.   SY-UCOMM = OK_CODE.
  1131. ENDMODULE.                    "MITARBEITER_TC_USER_COMMAND INPUT
  1132.  
  1133. *&SPWIZARD: DECLARATION OF TABLECONTROL 'MEDIUM_TC' ITSELF
  1134. CONTROLS: MEDIUM_TC TYPE TABLEVIEW USING SCREEN 0430.
  1135.  
  1136. *&SPWIZARD: LINES OF TABLECONTROL 'MEDIUM_TC'
  1137. DATA:     G_MEDIUM_TC_LINES  LIKE SY-LOOPC.
  1138.  
  1139. *&SPWIZARD: OUTPUT MODULE FOR TC 'MEDIUM_TC'. DO NOT CHANGE THIS LINE!
  1140. *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
  1141. MODULE MEDIUM_TC_CHANGE_TC_ATTR OUTPUT.
  1142.   DESCRIBE TABLE ITAB_MEDIUM LINES MEDIUM_TC-lines.
  1143. ENDMODULE.                    "MEDIUM_TC_CHANGE_TC_ATTR OUTPUT
  1144.  
  1145. *&SPWIZARD: OUTPUT MODULE FOR TC 'MEDIUM_TC'. DO NOT CHANGE THIS LINE!
  1146. *&SPWIZARD: GET LINES OF TABLECONTROL
  1147. MODULE MEDIUM_TC_GET_LINES OUTPUT.
  1148.   G_MEDIUM_TC_LINES = SY-LOOPC.
  1149. ENDMODULE.                    "MEDIUM_TC_GET_LINES OUTPUT
  1150.  
  1151. *&SPWIZARD: INPUT MODULE FOR TC 'MEDIUM_TC'. DO NOT CHANGE THIS LINE!
  1152. *&SPWIZARD: PROCESS USER COMMAND
  1153. MODULE MEDIUM_TC_USER_COMMAND INPUT.
  1154.   OK_CODE = SY-UCOMM.
  1155.   PERFORM USER_OK_TC USING    'MEDIUM_TC'
  1156.                               'ITAB_MEDIUM'
  1157.                               ' '
  1158.                      CHANGING OK_CODE.
  1159.   SY-UCOMM = OK_CODE.
  1160. ENDMODULE.                    "MEDIUM_TC_USER_COMMAND INPUT
  1161.  
  1162. *&SPWIZARD: DECLARATION OF TABLECONTROL 'VERTRAEGE_TC' ITSELF
  1163. CONTROLS: VERTRAEGE_TC TYPE TABLEVIEW USING SCREEN 0630.
  1164.  
  1165. *&SPWIZARD: LINES OF TABLECONTROL 'VERTRAEGE_TC'
  1166. DATA:     G_VERTRAEGE_TC_LINES  LIKE SY-LOOPC.
  1167.  
  1168. *&SPWIZARD: OUTPUT MODULE FOR TC 'VERTRAEGE_TC'. DO NOT CHANGE THIS LINE
  1169. *&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
  1170. MODULE VERTRAEGE_TC_CHANGE_TC_ATTR OUTPUT.
  1171.   DESCRIBE TABLE ITAB_VERTRAG LINES VERTRAEGE_TC-lines.
  1172. ENDMODULE.                    "VERTRAEGE_TC_CHANGE_TC_ATTR OUTPUT
  1173.  
  1174. *&SPWIZARD: OUTPUT MODULE FOR TC 'VERTRAEGE_TC'. DO NOT CHANGE THIS LINE
  1175. *&SPWIZARD: GET LINES OF TABLECONTROL
  1176. MODULE VERTRAEGE_TC_GET_LINES OUTPUT.
  1177.   G_VERTRAEGE_TC_LINES = SY-LOOPC.
  1178. ENDMODULE.                    "VERTRAEGE_TC_GET_LINES OUTPUT
  1179.  
  1180. *&SPWIZARD: INPUT MODULE FOR TC 'VERTRAEGE_TC'. DO NOT CHANGE THIS LINE!
  1181. *&SPWIZARD: PROCESS USER COMMAND
  1182. MODULE VERTRAEGE_TC_USER_COMMAND INPUT.
  1183.   OK_CODE = SY-UCOMM.
  1184.   PERFORM USER_OK_TC USING    'VERTRAEGE_TC'
  1185.                               'ITAB_VERTRAG'
  1186.                               ' '
  1187.                      CHANGING OK_CODE.
  1188.   SY-UCOMM = OK_CODE.
  1189. ENDMODULE.                    "VERTRAEGE_TC_USER_COMMAND INPUT

Reply to "Untitled"

Here you can reply to the paste above

Create a snipurl

Make Private

Feeling clever? Set some advanced options.