Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
27 Beiträge • Seite 1 von 2 (current) Nächste
27 Beiträge Seite 1 von 2 (current) Nächste

Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Guten Morgen zusammen,

ich hätte da mal eine kleine Frage. Und zwar geht es um die Steuerdaten von Materialien. In der MM03 gibt es eine Tabelle "Steuerdaten", in der verschiedene Länder und ihre Steuerdaten stehen, u.a. die Steuerklassifikation. Dort müsste überall eine "1" drin stehen, da es eigentlich ein Mussfeld ist. Tut es aber nicht. Nun wollte ich ein Programm schreiben, bei dem man die gewünschten Materialnummern und das Land selektiert und dann in einem ALV alle Materialnummern ausgibt, bei denen die 1 fehlt.

Das klappt aber irgendwie nicht, wenn ich abfrage bei welchen Materialnummern die 1 drinnen steht bringt er mir die korrekten Nummern, frage ich allerdings ab wo das Feld leer ist oder eine 0 drin steht, bringt er mir gar nix.

Hat jemand eine Idee, bitte?

Code: Alles auswählen.

Select matnr aland taxm1
    FROM mlan
    INTO CORRESPONDING FIELDS OF wa_mlan
    WHERE matnr IN so_matnr
    AND aland IN so_aland
    AND taxm1 = 0.

  APPEND wa_mlan TO it_mlan.

  ENDSELECT.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Stopp, kleine Korrektur. Auf 0 abfragen funktioniert, allerdings funktioniert es nicht wenn das Feld komplett leer ist.

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Guten Morgen

Prüfe doch noch ob das Feld leer ist??

Code: Alles auswählen.

SELECT matnr aland taxm1
    FROM mlan
    INTO CORRESPONDING FIELDS OF wa_mlan
    WHERE matnr IN so_matnr
    AND aland IN so_aland
    AND taxm1 = 0 OR taxm1 IS INITIAL.


Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Ja, so dachte ich mir das auch. Funktioniert aber nicht. Er zeigt mir keine Datensätze an.

Bzw. IS INITIAL lässt er gar nicht zu, nur auf IS NULL. Geht aber nicht :(

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Hmm.

Und hast du das auch schon probiert?

Code: Alles auswählen.

    AND taxm1 = 0 OR taxm1 EQ ' '. 

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Danke, das hatte ich tatsächlich noch nicht probiert :o

Jetzt bringt er mir mehrere Materialien, allerdings nicht meine selektierte. Muss ich eigentlich eingrenzen, wenn ich die Materialnummer nur auf einer Sicht (einer Verk.Org.) prüfen möchte?


Vielen Dank für deine Hilfe! :)

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Also wenn du die Verkaufsorganisation auch noch einschränken möchtest musst du die Tabelle MLAN mit MVKE verknüpfen.
Übrigens wenn du INTO CORRESPONDING FIELDS OF TABLE nimmst kannst du dir den APPEND-Befehl sparen.

Schau mal ob dir das was hilft :)

Code: Alles auswählen.


    SELECT mlan~matnr mlan~aland mlan~taxm1
    INTO CORRESPONDING FIELDS OF TABLE it_mlan
    FROM mlan
      INNER JOIN MVKE
      ON mlan~matnr EQ mvke~matnr
    WHERE mlan~matnr IN so_matnr
      AND mlan~aland IN so_aland
      AND mlan~taxm1 EQ 0 OR taxm1 EQ '  '
      AND mvke~vkorg EQ '1000'.



Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Das gibt es doch gar nicht!

Er ignoriert einfach meine Einschränkungen und selektiert mir sämtliche Materialnummern und sämtliche Länder, bei denen das Feld leer ist.

Woran kann das denn liegen? Ich versteh nur noch Bahnhof... Ich dachte, das dürfte nicht schwer sein und jetzt ist trotzdem alles irgendwie so kompliziert :twisted:

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Schicke mal den ganzen Code :). Was steht vor der Abfrage in so_matnr bzw. so_aland drinnen?

Irgendwie habe ich das Gefühl diese sind leer vor der Abfrage?

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »

Code: Alles auswählen.

TABLES: mlancheck.

DATA: it_mlan TYPE TABLE OF mlancheck,
      wa_mlan LIKE LINE OF it_mlan.

DATA: d_variant TYPE disvariant.

* Selektionsbildschirm
START-OF-SELECTION.

  SELECTION-SCREEN BEGIN OF BLOCK selektion WITH FRAME TITLE text-001.
  SELECT-OPTIONS: so_matnr FOR wa_mlan-matnr,
                  so_aland FOR wa_mlan-aland.
*                  so_taxm1 FOR mlan-taxm1.
  SELECTION-SCREEN END OF BLOCK selektion.

END-OF-SELECTION.


  IF so_matnr IS INITIAL.
    MESSAGE 'Bitte Selektion einschränken!'(002) TYPE 'I' DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.


  SELECT mlan~matnr mlan~aland mlan~taxm1
    INTO CORRESPONDING FIELDS OF TABLE it_mlan
    FROM mlan
      INNER JOIN MVKE
      ON mlan~matnr EQ mvke~matnr
    WHERE mlan~matnr IN so_matnr
      AND mlan~aland IN so_aland
      AND mlan~taxm1 EQ 0 OR taxm1 EQ '  '
      AND mvke~vkorg EQ 'UML'.



  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_structure_name = 'mlancheck'
      i_grid_title     = 'Materialnummern'(002)
      i_default        = 'X'
      i_save           = 'X'
      is_variant       = d_variant
    TABLES
      t_outtab         = it_mlan
    EXCEPTIONS
      program_error    = 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.
Ich danke dir!!

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Müsste da bei VKORG nicht eine Nummer drin stehen? oder gibts bei dir wirklich UML als Verkaufsorganisation in der Tabelle MVKE?

Probier mal folgenden Code. Vlt. ist es ja besser jetzt?

Code: Alles auswählen.


TABLES: mlan, mlancheck.

DATA: it_mlan TYPE TABLE OF mlan,
      wa_mlan LIKE LINE OF it_mlan.

DATA: d_variant TYPE disvariant.

* Selektionsbildschirm
START-OF-SELECTION.

  SELECTION-SCREEN BEGIN OF BLOCK selektion WITH FRAME TITLE text-001.
  SELECT-OPTIONS:  so_matnr FOR mlan-matnr,
                   so_aland FOR mlan-aland.
*                  so_taxm1 FOR mlan-taxm1.
  SELECTION-SCREEN END OF BLOCK selektion.

END-OF-SELECTION.

  IF so_matnr IS INITIAL.
    MESSAGE 'Bitte Selektion einschränken!'(002) TYPE 'I' DISPLAY LIKE 'E'.
    EXIT.
  ENDIF.

  SELECT mlan~matnr mlan~aland mlan~taxm1
    INTO CORRESPONDING FIELDS OF TABLE it_mlan
    FROM mlan
      INNER JOIN MVKE
      ON mlan~matnr EQ mvke~matnr
    WHERE mlan~matnr IN so_matnr
      AND mlan~aland IN so_aland
      AND mlan~taxm1 EQ 0 OR taxm1 EQ '  '
      AND mvke~vkorg EQ 'UML'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_structure_name = 'MLANCHECK'
      i_grid_title     = 'Materialnummern'(002)
      i_default        = 'X'
      i_save           = 'X'
      is_variant       = d_variant
    TABLES
      t_outtab         = it_mlan
    EXCEPTIONS
      program_error    = 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.


Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Es steht tatsächlich UML drin.

Nein es funktioniert leider nicht, selektiert mir weiterhin sämtliche Nummern... :(

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Mach mal beim SELECT auch noch:

Code: Alles auswählen.

AND mvke~matnr IN so_matnr

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Beginner014 (ForumUser / 46 / 4 / 0 ) »
Juhu, ein Schritt weiter :)

Also er selektiert jetzt die richtigen Materialnummern, sprich wenn ich 1* eingebe wirklich nur alle 1er Nummern und nicht mehr alle.

Dafür aber trotzdem noch mehrere Länder die ich nicht selektiert habe.......

Re: Evtl. nicht gepflegtes Feld aus Tabelle auslesen

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Was gibst du denn bei dem Land ein?

Vergleichbare Themen

4
Antw.
2188
Views
ein Feld aus der ? Tabelle auslesen
von HH_ABAP » 28.01.2019 16:05 • Verfasst in ABAP® für Anfänger
1
Antw.
709
Views
Feld einer Tabelle auslesen
von Alexity » 16.09.2019 13:44 • Verfasst in ABAP® für Anfänger
1
Antw.
781
Views
meistgenutzte Abflugstadt aus Tabelle auslesen und an Feld übergeben
von Steqh » 21.02.2021 10:48 • Verfasst in ABAP® für Anfänger
3
Antw.
1068
Views
11
Antw.
25421
Views
Feld bzw. String auslesen
von robin1at » 08.06.2006 08:07 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 22 Stunden von Bright4.5 1 / 489
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2131
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8726