Dynamischer Zugriff auf Kompontenten einer WA

Getting started ... Alles für einen gelungenen Start.

Dynamischer Zugriff auf Kompontenten einer WA

Postby Malina2502 » Wed Apr 03, 2013 2:04 pm

Hallo zusammen,

ich bin neu hier und brauche mal Eure Hilfe.

Ich habe folgendes Problem:

Ich habe eine workarea (wa). Diese besitzt 20 Komponenten, die alle bis auf die Endung gleich heissen. z. B.: wa-text1, wa-test2... wa-text20 .

Ich möchte nun anhängig vom Programmverlauf bestimmte Komponenten dynamisch lesen und prüfen.

Ich habe es versucht mit einem FIELD-SYMBOL zu machen, doch ist mir dessen benutzung nicht ganz klar.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.  LOOP AT ta_1 INTO wa_1.
  2.     v_countnr = v_count.
  3.     CONCATENATE 'text' v_countnr INTO v_komp.
  4.  
  5.     ASSIGN v_komp to <fs>.
  6.  
  7.  
  8.     if wa-<fs> <> ' '.  
  9.        "Tu irgendwas
  10. *    endif.
  11.     v_count = v_count + 1.
  12.  
  13.  
  14.  
GeSHi ©



Dies nur ein ein Beispiel und ich hoffe ich kann damit verdeutlichen was ich machen möchte. Leider komme ich echt nicht weiter. Ich wäre sau froh, wenn mir einer helfen kann.

LG

Kenny
Malina2502
.
.
 
Posts: 2
Joined: Wed Apr 03, 2013 7:20 am

Re: Dynamischer Zugriff auf Kompontenten einer WA

Postby Ines3642 » Thu Apr 18, 2013 10:40 am

Hallo Kenny,

mit ASSIGN COMPONENT (...) solltest Du weiterkommen!
Ines3642
...
...
 
Posts: 268
Joined: Tue Jan 27, 2009 5:49 pm

Re: Dynamischer Zugriff auf Kompontenten einer WA

Postby Ibrahim5159 » Fri Apr 19, 2013 11:01 am

Hallo Kenny, wichtig ist, daß Du für die workarea eine Struktur (z.B. ZKBKKAL07_ALV) anlegst.
.
.
DATA:
f_upd(1),
f_sanka like ZKBKKAL07_ALV-sanka,
f_stlty like ZKBKKAL07_ALV-stlty,
f_stlnr like ZKBKKAL07_ALV-stlnr,
f_stlkn like ZKBKKAL07_ALV-stlkn,
f_stpoz like ZKBKKAL07_ALV-stpoz,
.
.
*** Name der Datenbanktabelle
gv_sname LIKE dd02l-tabname VALUE 'ZKBKKAL07_ALV',

*** Feld-Symbole
FIELD-SYMBOLS:
*** Feld der Struktur
<feld> TYPE ANY,
*** Arbeitsbereich der internen Tabelle
<wa> TYPE ANY,
*** Die interne Tabelle mit Struktur aus GV_SNAME (Deine WA)
<itab> TYPE table.
.
.
clear: f_upd, f_stlty, f_sanka, f_stlnr, f_stlkn, f_stpoz.
LOOP AT <itab> ASSIGNING <wa>.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <wa> TO <feld>.
IF sy-subrc = 0.
case sy-index.
when 1. move <feld> to f_upd.
when 11. move <feld> to f_sanka.
when 12. move <feld> to f_stlty.
when 13. move <feld> to f_stlnr.
when 14. move <feld> to f_stlkn.
when 15. move <feld> to f_stpoz.
endcase.
ELSE.
EXIT. "from DO-LOOP
ENDIF.
ENDDO.
if f_upd eq 'X'.
select single * from stpo into wa_stpo
where stlty eq f_stlty and
stlnr eq f_stlnr and
stlkn eq f_stlkn and
stpoz eq f_stpoz.
if sy-subrc eq 0.
move f_sanka to wa_stpo-sanka.
update stpo from wa_stpo.
.
.
So kannst Du z.B. abhängig von Inhalten der WA eine Änderung in der STPO machen

Grüßle
Ibrahim5159
.
.
 
Posts: 1
Joined: Fri Apr 19, 2013 11:01 am


Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 13 guests