Bedingungen aus verschiedenen Tabellen bzw. Strukturen

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

Bedingungen aus verschiedenen Tabellen bzw. Strukturen

Postby Torben2965 » Mon Mar 07, 2016 2:57 pm

Hallo zusammen, :)

als APAB und SMARTFORMS Anfänger habe ich gerade folgende Aufgabe.
Ein Rechnungsformular (Smartforms) soll erweitert werden, so dass verschiedene Ansprechpartner und deren Kontaktdaten im Formular erscheinen.

ein bissel hab ich bereits hinbekommen:

Globale Def.:
VBRK TYPE VBRK
RNFK1 TYPE RNFK1
GV_MA_RUECK_NAME TYPE CHAR40
GV_MA_RUECK_TELEFONTYPE CHAR20
GV_MA_RUECK_MAIL TYPE CHAR40

Eingabeparameter:
VBRK-ABART
RNFKR1-VBELN
RNFKR1-ABRDATUM
Ausgabeparameter:
GV_MA_RUECK_NAME
GV_MA_RUECK_TELEFON
GV_MA_RUECK_MAIL

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA: itab_vbrk TYPE vbrk.
  2. DATA: lv_abart TYPE vbrk-abart.
  3. DATA: lv_ma_name TYPE CHAR40.
  4. DATA: lv_ma_telefon type CHAR20.
  5. DATA: lv_ma_mail type CHAR40.
  6. **
  7. SELECT SINGLE * FROM vbrk INTO itab_vbrk
  8.   WHERE VBELN = RNFKR1-VBELN
  9.   AND FKDAT = RNFKR1-ABRDATUM.
  10. * Zuweisung der Abrechnungsart des gelesenen VBRK Satzes
  11. lv_abart = itab_vbrk-abart.
  12. *
  13.  
  14. *** IF für Abrechnungsart "AA" ODER "BB"
  15. IF ( lv_abart = 'AA' ) OR ( lv_abart = 'BB' ).
  16.   lv_ma_name = 'Herr Mustermann'.
  17.   lv_ma_telefon = '123456'.
  18.   lv_ma_mail = 'max@mustermail.de'.
  19. **
  20. * ELSE wenn keine der oberen Bedingungen erfüllt werden:
  21.   lv_ma_name = 'Frau Alleskönner'.
  22.   lv_ma_telefon = '999999'.
  23.   lv_ma_mail = 'maxi@mustermail.de'.
  24.  
  25. WRITE lv_ma_name TO GV_MA_RUECK_NAME.
  26. WRITE lv_ma_telefon TO GV_MA_RUECK_TELEFON.
  27. WRITE lv_ma_mail TO GV_MA_RUECK_MAIL.
GeSHi ©


Jetzt muss ich weitere Bedingungen einbauen, da nicht nur nach VBRK-ABART ausgewertet, sondern auch auf die Leistung (RNFP1-ABLST) und die Bewegungsart (RNFP1–BWART), beides in Struktur RNFP1 enthalten, geprüft werden sollen.

In der Tabelle vbrk, sowie den Strukturen RNFKR1 und RNFP1 gibt es die Komponente VBELN (Faktura/Belegsnummer).

Da das Formular schon durch andere Mitarbeiter bearbeitet wurde finde ich unter Globalen Definitionen einen Eintrag zu:
RNFP1TYPERNFP1Nspace(Vorschlagswert)

Ich habe jetzt den Code oben an einigen Stellen ergänzt... bisher erfolglos :(

Eingabeparameter:
RNFP1-ERBOE
RNFP1-ABLST
RNFP1-BWART

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA: lv_bwart TYPE RNFP1-BWART.
  2. DATA: lv_ablst TYPE RNFP1-ABLST.
  3.  
  4. * Zuweisung der Leistung
  5. lv_ablst = itab_rnfp1-ablst.
  6. * Zuweisung der Bewegungsart
  7. lv_bwart = itab_rnfp1-bwart.
  8.  
  9. **
  10. *mein Hauptproblem:
  11. Im Gegensatz zu lv_abart, kommen lv_ablst und lv_bwart nicht in Tabelle vbrk vor.
  12. Muss ein neuer SELECT Befehl geschrieben werden, wenn ja, wie sieht in diesem Fall die Syntax/Logik und Schachtelung aus?
  13. **
  14. *
  15. *ein Kollege meinte dass es mehrere Möglichkeiten gibt, aber beide funktionieren nicht...
  16. *IF lv_ablst = 'APO-Z' AND lv_bwart = 'AS'.
  17. *ODER besser so?
  18. *IF RNFP1-ABLST = 'APO-Z' AND RNFP1-BWART = 'AS'.
  19.  
GeSHi ©


Dazu ein Versuch der nicht das gewünschte Ergebnis brachte (liegt es am SELECT Befehl?)
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA: itab_vbrk TYPE vbrk.
  2. DATA: lv_ishabart TYPE vbrk-ishabart.
  3. DATA: lv_ma_name TYPE CHAR40.
  4. DATA: lv_ma_telefon type CHAR20.
  5. DATA: lv_ma_mail type CHAR40.
  6.  
  7. SELECT SINGLE * FROM vbrk INTO itab_vbrk
  8.   WHERE VBELN = RNFKR1-VBELN
  9.   AND FKDAT = RNFKR1-ABRDATUM.
  10. * Zuweisung der Abrechnungsart des gelesenen VBRK Satzes
  11.   lv_abart = itab_vbrk-abart.
  12. **
  13. * 1.IF für Abrechnungsart "AA" ODER "BB"
  14. IF ( lv_abart = 'AA' ) OR ( lv_abart = 'BB' ).
  15.   lv_ma_name = 'Herr Mustermann'.
  16.   lv_ma_telefon = '123456'.
  17.   lv_ma_mail = 'max@mustermail.de'.
  18. **
  19. ELSEIF RNFP1-ABLST = 'APO1' AND RNFP1-BWART = 'AS'.
  20.   lv_ma_name = 'Frau Alternative1'.
  21.   lv_ma_telefon = '111111'.
  22.   lv_ma_mail = '111111@mustermail.de'.
  23. **
  24. ELSEIF RNFP1-ABLST = 'APO2AND RNFP1-BWART = 'AS'.
  25.  lv_ma_name = 'Frau Alternative2'.
  26.  lv_ma_telefon = '222222'.
  27.  lv_ma_mail = '222222@mustermail.de'.
  28. ELSE.
  29.  lv_ma_name = 'Frau Alleskönner'.
  30.  lv_ma_telefon = '999999'.
  31.  lv_ma_mail = 'maxi@mustermail.de'.
  32. ENDIF.
  33.  
  34. WRITE lv_ma_name TO GV_MA_RUECK_NAME.
  35. WRITE lv_ma_telefon TO GV_MA_RUECK_TELEFON.
  36. WRITE lv_ma_mail TO GV_MA_RUECK_MAIL.
GeSHi ©


Kann mir bitte jemand bei diesem Problem helfen?

Viele Grüße
Tom
Torben2965
.
.
 
Posts: 4
Joined: Mon Dec 14, 2015 3:27 pm

Return to ABAP® für Anfänger

Who is online

Users browsing this forum: No registered users and 1 guest