Ansicht
Dokumentation
STC1_POPUP_WITH_TABLE_CONTROL - Popup mit Table Control
ROGBILLS - Synchronize billing plans TXBHW - Original Tax Base Amount in Local CurrencyDiese Dokumentation steht unter dem Copyright der SAP AG.
Allgemeines Table Control
Zweck
Viele allgemeine Tools benutzen Table Controls zur Eingabe der Daten. Dies kann zur Zeit nur über generierte Table Contols (z.B. SM30) gemacht werden. Der Aufwand, ein TC zu Generieren ist recht hoch, so daß er nicht zur Laufzeit gemacht werden kann.
Auch ist es für normale Transaktionen ein erhöhter aufwand, ein Table Control mit allen von der Ergonomie geforderten Funktionen zu programmieren. Viele der Funktionen, wie Blättern, Sortieren, Einfügen und Löschen sind bereits einige 100-mal im R/3 immer wieder neu erfunden worden.
Um hier den Programmieraufwand zu reduzieren, andererseits aber auch generische Funktionen zu vereinfachen und auch dem Kunden ein einheitliches Verhalten von Table Controls zu zeigen, wurde das Generic Table Control entwickelt.
Aufbau
Das Table Control ist als Subscreen definiert, um es an beliebige Stelle in ein vorhandenes Dynpro einbauen zu können. Es können auch mehrere (bis zu 16) Table Controls verwaltet werden, um ab Tabstrips mehrere Tabellen bearbeiten zu können
Begrenzungen
Zur Zeit ist das TC begrenzt auf 36 Felder und 16 Table Controls.
Auch können keine Ikonen auf dem Table Control dargestellt werden.
Die maximale Breite ist 8000 Zeichen.
Aufruf eines TableControls
Der Aufruf ist 4-teilig:
Die Daten werden zum PBO einmalig (oder auch mehrfach) mit STC1_SELECT_SUBSCREEN an das Table Control übergeben.
Danach wird innerhalb der Ablauflogik das Subscreen mit CALL SUBSCREEN SUBSCREEN INCLUDING PROGRAM DYNSUB aufgerufen, wobei PROGRAM und DYNSUB von STC1_SELECT_SUBSCREEN übergeben werden.
Zum PAI wird das TC mit CALL SUBSCREEN SUBSCREEN aufgerufen. Die OK-Codes, die alle mit TC_ anfangen, werden an den Baustein STC1_SET_COMMAND zur Auswertung übergeben.
Die Daten können mit STC1_GET_DATA wieder zurückgeholt werden.
Aufruf bei mehreren TableControls
Wenn mehrere TableControls aufgebaut werden müssen, kann der Benutzer vor jedem TC-Wechsel mit STC1_SET_TABLE zwischen den Daten zu den Table_controls umschalten.
Einfaches Beispiel
REPORT YKTESTTC .
TABLES CCCEXIT.
DATA IT_CCCEXIT LIKE CCCEXIT OCCURS 0 WITH HEADER LINE.
DATA IT_NTAB LIKE DFIES OCCURS 0 WITH HEADER LINE.
DATA IT_FDIF LIKE FIELD_DIF OCCURS 0 WITH HEADER LINE.
DATA PROGRAM LIKE SY-CPROG.
DATA DYNSUB LIKE SY-DYNNR.
DATA OK_CODE(20).
DATA SAVE_OK_CODE(20).
SELECT * FROM CCCEXIT INTO TABLE IT_CCCEXIT.
SORT IT_CCCEXIT.
IT_FDIF-TABNAME = 'CCCEXIT'.
IT_FDIF-FIELDNAME = 'REPFBNAME'.
IT_FDIF-DISPLENGTH = 10.
APPEND IT_FDIF.
CALL FUNCTION 'STC1_SELECT_SUBSCREEN'
EXPORTING
HEADER = 'Testprogramm CCCEXIT'
TABNAME = 'CCCEXIT'
DISPLAY_ONLY = ' '
ENDLESS = 'X'
IMPORTING
DYNPROREPORT = PROGRAM
DYNPRONR = DYNSUB
TABLES
NAMETAB = IT_NTAB
TABLE = IT_CCCEXIT
FIELDDIF = IT_FDIF.
CALL SCREEN 100.
LOOP AT IT_CCCEXIT.
WRITE IT_CCCEXIT.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.
SAVE_OK_CODE = OK_CODE.
CLEAR OK_CODE.
IF SAVE_OK_CODE(3) = 'TC_'.
CALL FUNCTION 'STC1_SET_COMMAND'
EXPORTING
* TABNAME =
COMMAND = SAVE_OK_CODE.
ENDIF.
CASE SAVE_OK_CODE.
WHEN 'BACK'.
CALL FUNCTION 'STC1_GET_DATA'
* EXPORTING
* TABNAME = 'CCCEXIT'
TABLES
TABLE = IT_CCCEXIT
* MODIFIED_DATA =
EXCEPTIONS
TABLE_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'EXIT'.
SET SCREEN 0.
LEAVE SCREEN.
WHEN 'SAVE'.
CALL FUNCTION 'STC1_GET_DATA'
EXPORTING
TABNAME = 'CCCEXIT'
TABLES
TABLE = IT_CCCEXIT
* MODIFIED_DATA =
EXCEPTIONS
TABLE_NOT_FOUND = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
MODIFY CCCEXIT FROM TABLE IT_CCCEXIT.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS '100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
Technische Implementierung
Es sind 16 Dynpros mit TableControls definiert, die bei der Datenübergabe fest an einen Datensatz, definiert durch einen Tabellennamen, vergeben werden.
Zur Laufzeit werden in jedem Subscreen zum Zeitpunkt PBO erst die Überschriften und Breiten des Table-Controls angepaßt und gleichzeitig die Dynprofelder den Daten der internen Tabelle zugewiesen. (Assign)
Danach werden in Step-loop die Daten als Character-Werte angezeigt.
Zum Zeitpunkt PAI werden nach dem erneuten ASSIGN der Dynprofelder die Daten im Step-loop einer Fremdschlüsselprüfung unterzogen und der internen Tabelle wieder zugewiesen.
Die Daten können dann mit SCT1_GET_DATA aus der internen Tabelle ausgelesen werden.
Schnittstellen
Parameter
DELETE_CHECKDISPLAY_ONLY
DISPLAY_TOGGLE
ENDLESS
FIELDDIF
HEADER
INSERT_CHECK
MODIFY_CHECK
MODIFY_DISP_FIELD
NAMETAB
NO_BUTTON
NO_DELETE
NO_INSERT
NO_MOVE
NO_UNDO
SORT_FORBIDDEN
TABLE
TABNAME
X_END
X_START
Y_END
Y_START
Ausnahmen
HANDLE_NOT_VALIDNAMETAB_NOT_VALID
NO_MORE_TABLES
TOO_MANY_FIELDS
Funktionsgruppe
STC1Fill RESBD Structure from EBP Component Structure PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 8091 Date: 20240523 Time: 101003 sap01-206 ( 111 ms )