dynamische Dynprofelder mit Bezug zum Dictionary

Benutzeroberflächen in SAP Systemen.

dynamische Dynprofelder mit Bezug zum Dictionary

Postby Ahmet1547 » Thu Aug 28, 2003 2:20 pm

Hallo,

zunächst einmal vielen Dank für die bisherigen Tips.

Ich habe eine interne Tabelle mit Textinhalten wie z.B. MARA-MATNR. Diese Felder setze ich als Namen in meinem Dynproelement (Eingabezeile) ein. Außerdem setze ich die Kennzeichnung fürs Übernehmen aus dem Distionary. Wenn ich den nachstehenden Code ausführe sieht das Dynpro unter SE80 im Painter so aus, wie es aussehen soll, jedoch nicht bei der Ausführung der Transaktion. Wenn ich das Dynpro unter SE80 "von Hand" nochmals aktiviere und das Programm ausführe, ist die Ausgabe in Ordnung.

Für einen Hinweis was nicht in Ordnung ist bin ich sehr dankbar.

Grüße

A. Fuss

Codeauszug:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. ...
  2.  LOOP AT EINGABEN.    " EINGABEN enthält Daten aus einer Tabelle
  3. *  in <FI> befindet sich z.B. "MARA-MATNR"
  4.     ASSIGN EINGABEN-TXT TO <FI>.
  5.  
  6.     CLEAR F.
  7.     TABIX = TABIX + 1.
  8.     F-LINE = TABIX.
  9.     F-COLN = 10.
  10.     F-LENG = 15.
  11.     F-TYPE = 'CHAR'.
  12.     SET BIT 1 OF F-FLG1 TO 1.
  13.     F-FLG1 = 'A'.
  14.     F-FMB1 = 0.  
  15.     F-FLG3 = '8'.
  16.     F-RES2 = 'X'.
  17.  
  18.     IF <FI> NE ''.
  19.       LOOP AT F WHERE FNAM = <FI>.
  20.         DELETE F.
  21.       ENDLOOP.
  22.       F-FNAM = <FI>.
  23.       INSERT  F INTO F INDEX TABIX.
  24.     ENDIF.
  25.  
  26.   EXPORT DYNPRO H F E M
  27.     ID 'ZPROGRAMM1             9000'.
  28.  
  29.   GENERATE DYNPRO H F E M
  30.     ID 'ZPROGRAMM1             9000'
  31.     MESSAGE D1 LINE D2 WORD D3.
  32. ...
  33.  
GeSHi ©
Ahmet1547
..
..
 
Posts: 10
Joined: Fri Aug 22, 2003 12:56 pm

Postby Gertrud2025 » Wed Sep 03, 2003 9:00 am

mein tip wäre, daß du noch ein paar parameter, die für das dynpro wichtig sind vergessen hast bzw. nicht belegt hast.
und daß es nach dem aktivieren per hand in der se80 richtig aussieht ist, daß es nicht durch das programm manuell aktiviert wird, da das objekt schon generiert wurde.
Gertrud2025
..
..
 
Posts: 24
Joined: Tue Sep 02, 2003 4:21 pm

Re: dynamische Dynprofelder mit Bezug zum Dictionary

Postby Willy1492 » Wed Sep 03, 2003 10:46 pm

fuss hat geschrieben:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   EXPORT DYNPRO H F E M
  2.     ID 'ZPROGRAMM1             9000'.
  3.  
  4.   GENERATE DYNPRO H F E M
  5.     ID 'ZPROGRAMM1             9000'
  6.     MESSAGE D1 LINE D2 WORD D3.
  7.  
GeSHi ©

Definiere Dir mal eine Struktur H2, itabs F2 und M2 (E2 kannst Du mit Sicherheit ignorieren, die Ablauflogik ändert sich beim Generieren aus SE80 oder SE51 nicht), füge nach GENERATE DYNPRO ... ein
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. CALL FUNCTION 'DB_COMMIT'.
  2. IMPORT DYNPRO H2 F2 E M2 ID ...
  3. IF H2 NE H. BREAK-POINT. ENDIF.
  4. IF F2[] NE F[]. ...
GeSHi ©

Wenn Du auf den ersten BREAK-POINT läufst, ist das Dynpro generiert und die Änderungen sind committed.
In einem 2. Modus generierst Du das Dynpro aus SE80 heraus, dann lasse das Programm im Debugger weiterlaufen.
jetzt suche nach Änderungen, die durch Generierung in SE80 passiert sind.
Evtl. ist das sogar besser automatisch als manuell erledigt:
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. LOOP AT F.
  2.   READ TABLE F2 INDEX SY-TABIX.
  3.   DO.
  4.     ASSIGN COMPONENT SY-INDEX OF STRUCTURE: F to <fa>, F2 to <fb>.
  5.     IF SY-SUBRC NE 0.
  6.       EXIT.
  7.     ENDIF.
  8.     IF <fa> ne <fb>.
  9.       WRITE: / sy-tabix, sy-index, <fa>, <fb>.
  10.     ENDIF.
  11.   ENDDO.
  12.  
GeSHi ©

Dann solltest Du herausgefunden haben, was Du noch ändern musst.

Frank
Willy1492
....
....
 
Posts: 581
Joined: Tue Dec 03, 2002 4:44 pm


Return to Dialogprogrammierung

Who is online

Users browsing this forum: No registered users and 12 guests