Ansicht
Dokumentation

STC1_PUT_DATA - Datenübergabe

STC1_PUT_DATA - Datenübergabe

Vendor Master (General Section)   CPI1466 during Backup  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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_DATA
HANDLE
STABLE_CURSOR
TABLE

Ausnahmen

HANDLE_NOT_VALID
NAMETAB_NOT_VALID
NO_MORE_TABLES
TOO_MANY_FIELDS

Funktionsgruppe

STC1

Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 7784 Date: 20240523 Time: 091349     sap01-206 ( 92 ms )