Ich habe mal etwas gebastelt...
Die Anwendungsmöglichkeiten sind wahrscheinlich eher begrenzt, aber gut wenn man weiss, dass es geht:
Ich habe ein Dynpro 9000 in dem Programm SAPMZTESTTAB1 angelegt. Auf diesem Dynpro ist nur ein TabstripControl mit einem Reiter. Das Control heisst DYNA1 und der Reiter DYNA1_TAB1.
in dem folgenden Programm kann man die Anzahl der zu generierenden TabReiter angeben. Das Programm liest dann soviele Einträge aus der Ländertabelle -- einfach nur damit die Reiter einen anständigen Namen kriegen und nicht TAB01 TAB02 TAB03 usw heissen.
Die DynproDefinition wird gelesen und alle zuvor generierten Reiter werden gelöscht. Dann wird der Reiter DYNA1_TAB1 als Referenz immer wieder mit anderem Text und anderem Funktionscode (Danke Frank für die Struktur RES1!) dazugefügt. Danach bleibt noch der Export der Dynprodefinition und die Generierung.
Danach wird die Transaktion aufgerufen, die das Dynpro 9000 aufruft.
In diesem Falle könnte man sich ja sogar auf dem einzigen Subscreen, der dann ja jedem Reiter zugeordnet ist, ein TableControl vorstellen, auf dem dann die Umsätze der einzelnen Länder aufgelistet werden. So oder so ähnlich.
Ach ja: Der Reiter, der kopiert wird, ist im Dynpro als "Unsichtbar markiert", so dass er nicht angezeigt wird.
.eNNo.
- Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
d2(10) TYPE n,
d3(30),
tabname(20),
xres1 like D021S_RES1,
landx TYPE landx,
nummer(2) TYPE n,
tabix TYPE sytabix.
h TYPE d020s,
f LIKE d021s OCCURS 0 WITH HEADER LINE,
e LIKE d022s OCCURS 0 WITH HEADER LINE,
m LIKE d023s OCCURS 0 WITH HEADER LINE.
ID 'SAPMZTESTTAB1 9000'.
READ TABLE f WITH KEY fnam = 'DYNA1_SCA'.
f-line = p_anz.
f-coln = '99'.
******** Alte Reiter löschen ************
LOOP AT f
WHERE fnam
&#
40;
4&#
41;
= 'TAB_' AND coln
> 1.
**** Referenz-Reiter lesen
READ TABLE f WITH KEY fnam = 'DYNA1_TAB1'.
SELECT landx
FROM t005t
INTO landx
UP TO p_anz
ROWS WHERE spras = 'D'.
nummer = sy-dbcnt.
READ TABLE f WITH KEY fnam = tabname.
tabix = sy-tabix + 1.
f-coln = f-coln + 1.
f-auth = '100'.
f-leng = 12.
SET BIT 6 OF f-fmb1 TO 0.
xres1 = f-res1.
xres1-funccode = f-fnam.
f-res1 = xres1.
f-stxt = landx.
ID 'SAPMZTESTTAB1 9000'.
GENERATE DYNPRO h f e m
ID 'SAPMZTESTTAB1 9000'
CALL TRANSACTION 'ZTESTTAB'.
- GeSHi ©