Parameters Anweisung nur bestimmte Felder anzeigen

Getting started ... Alles für einen gelungenen Start.
4 Beiträge • Seite 1 von 1
4 Beiträge Seite 1 von 1

Parameters Anweisung nur bestimmte Felder anzeigen

Beitrag von BMWi801 (ForumUser / 20 / 3 / 0 ) »
Guten Morgen,

da ich aktuell ein wenig Freizeit habe versuche ich mir Abap ein wenig selbst beizubringen. AKtuell bin ich grad dabei per Parameters den Nutzer eine Tabelle aufrufen lassen zu können, jedoch stehe ich vor dem Problem dass ich auch nur die Felder anzeigen lassen will, die er auch eingibt... Also bei Werk 045 z.B. auch nur die Sachen die in dem Werk sind.

Aktuell sieht mein Code so aus:

Code: Alles auswählen.


  TYPES: BEGIN OF gt_mard.
          INCLUDE STRUCTURE mard.
  TYPES:
  maktx TYPE makt-maktx,
  END OF gt_mard.

  DATA: gt_tabmard TYPE TABLE OF gt_mard,
        gs_tabmard TYPE gt_mard.

  SELECT mard~werks mard~lgort mard~matnr makt~maktx mard~labst
  INTO CORRESPONDING FIELDS OF TABLE gt_tabmard
        FROM mard JOIN makt ON mard~matnr = makt~matnr.

  PARAMETERS: werk TYPE mard-werks,
              lager TYPE mard-lgort,
              mat-nr TYPE mard-matnr.

  WRITE: 'Werk', 20 'Lager', 40 'Mat-Nr.', 60 'Material', 90  'Bestand'.
  SKIP.

  LOOP AT gt_tabmard INTO gs_tabmard.
    WRITE:/ gs_tabmard-werks, 20 gs_tabmard-lgort, 40 gs_tabmard-matnr, 60 gs_tabmard-maktx , 90 gs_tabmard-labst LEFT-JUSTIFIED.
    AT NEW matnr.
      NEW-LINE.
    ENDAT.
    AT END OF matnr.
      SUM.
      NEW-LINE.
      WRITE: 60 'Lagerbestand:' , 90 gs_tabmard-labst LEFT-JUSTIFIED.
    ENDAT.
  ENDLOOP.

ich weiss das es irgendwie mit einer schleife geht, wahrscheinlich if? Was muss ich machen? :) danke für eure Hilfe

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


Re: Parameters Anweisung nur bestimmte Felder anzeigen

Beitrag von ralf.wenzel (Top Expert / 3924 / 200 / 280 ) »
Moin,

du hast im SELECT keine WHERE-Bedingung, also selektiert der ALLES. Außerdem sollte der Bindestrich aus "mat-nr" raus, weil der ein Strukturkomponentenselektor ist, der ohne Struktur keinen Sinn macht.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Parameters Anweisung nur bestimmte Felder anzeigen

Beitrag von Somani (ForumUser / 81 / 12 / 20 ) »
Hallo

1.) Dein Parameter mat-nr ist nicht so prall. Das - sollte nicht da sein, weil man damit auf ein Feld in einer Struktur zugreift.

2.) Beim Joinen der MAKT solltest du die Sprache mit berücksichtigen, ansonsten hast du doppelte (oder noch mehr) Bestände sobald ein Material den Text in mehreren Sprachen gepflegt hat.

Code: Alles auswählen.

makt~spras = sy-langu
3.) Die Parameter sollten idealerweise dann ebenfalls den Select auf die DB beeinflussen und nicht erst später die Daten ausfiltern

Code: Alles auswählen.

WHERE mard~werks = werk
  AND mard~lgort = lager
*-- usw
Dabei sollte der Block "Parameters:" Dann VOR dem "Select ...." stehen. Du kannst das noch weiter abgrenzen (und solltest du auch sobald die Programme/Reports komplexer werden) indem du zuerst deine Deklarationen und Selektionsparameter schreibst und danach das "Programm" mit

Code: Alles auswählen.

START-OF-SELECTION.
beginnst.

Zuletzt aber noch der Hinweis: Wenn du mit "Parameters:" Arbeitest, dann muss der Anwender diese auch angeben, ansonsten wird der select nichts finden weil er nach dem Wert "(leer)" sucht. Das könntest du natürlich vorher abfragen und deinen Select dynamisch gestalten. Aber du könntest auch anstelle "parameter" mit SELECT-OPTIONS arbeiten. Da werden dann sogenannte "RANGED" Tabellen erzeugt welche du im Select Statement mit "mard~lgort IN lager" anwenden kannst. Da sind leere Werte dann wiederum egal.

Gruss

Re: Parameters Anweisung nur bestimmte Felder anzeigen

Beitrag von BMWi801 (ForumUser / 20 / 3 / 0 ) »
Vielen Dank, hat so geklappt wie ich es mir vorgestellt habe.
Versuche mich jetzt an der select-options. ;)

Seite 1 von 1

Vergleichbare Themen

4
Antw.
3152
Views
alv grid bestimmte felder anzeigen
von kostonstyle » 18.08.2008 13:53 • Verfasst in ABAP® für Anfänger
6
Antw.
2371
Views
0 bei Parameters anzeigen
von RiffRaff » 29.12.2004 14:23 • Verfasst in ABAP® Core
5
Antw.
3616
Views
Bestimmte Selektionstexte in verschiedenen Sprachen anzeigen
von pete » 18.10.2005 14:03 • Verfasst in ABAP® Core
2
Antw.
4593
Views
Nur bestimmte Felder im IDOC übertragen? Geht das?
von niermaj » 05.07.2007 12:36 • Verfasst in ABAP® Core
3
Antw.
610
Views
Felder in der Benutzerpflege dürfen nur bestimmte Personen pflegen
von kaim77 » 12.05.2019 16:57 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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 3 Tagen von Bright4.5 1 / 775
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2395
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 8982