Select-Options

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

Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Hallo zusammen
Ich habe wieder einmal ein Problem bezüglich Listenprogrammierung.
Ich möchte gerne jedes Feld mit Select-Options ansteuern. Leider kann ich dies in einer Join Bedingung nicht machen.
Wie gehe ich am besten vor? Könnt ihr mit vielleicht sogar ein Beispiel aufzeigen?
Danke

Code: Alles auswählen.

Report ZR_AUSW LINE-SIZE 1000 LINE-COUNT 5000.


*--------------------------------------------------------------------*
*Tabellenarbeitsbereich deklarieren*
*--------------------------------------------------------------------*

DATA: wa_mara  TYPE MARA,
      wa_makt  TYPE MAKT,
      wa_marc  TYPE MARC,
      wa_mbew  TYPE MBEW.

*--------------------------------------------------------------------*
*Felder deklarieren*
*--------------------------------------------------------------------*
DATA: zeilen_itab01 TYPE i.




*--------------------------------------------------------------------*
*Datentypen für Zeilen deklarieren*
*--------------------------------------------------------------------*

TYPES: BEGIN OF zeile01_typ,
        MATNR LIKE MARA-MATNR, "Materialnummer
        MATKL LIKE MARA-MATKL, "Warengruppe
        PRDHA LIKE MARA-PRDHA, "Produkthirarchie
        MTART LIKE MARA-MTART, "Materialart
        MSTAE LIKE MARA-MSTAE, "Werksstatus
        MAKTX LIKE MAKT-MAKTX, "Materialtext
        SPRAS LIKE MAKT-SPRAS, "Sprache
        EKGRP LIKE MARC-EKGRP, "Einkäufergruppe
        DISPO LIKE MARC-DISPO, "Disponent
        MMSTA LIKE MARC-MMSTA, "Materialstatus
        NCOST LIKE MARC-NCOST, "Nicht-Kalkulieren häckchen
        LOSGR LIKE MARC-LOSGR, "Losgrösse
        VPRSV LIKE MBEW-VPRSV, "Preissteuerung S/V
        VERPR LIKE MBEW-VERPR, "Gleitender Preis V
        STPRS LIKE MBEW-STPRS, "Standartpreis S
        HRKFT LIKE MBEW-HRKFT, "Herkunftsgruppe
END OF zeile01_typ.

Data : PREIS(10) type p DECIMALS 2.


*--------------------------------------------------------------------*
*Datentypen für interne Tabellen deklarieren*
*--------------------------------------------------------------------*
TYPES itab01_typ TYPE STANDARD TABLE OF zeile01_typ.



*--------------------------------------------------------------------*
*Interne Tabellen deklarieren ohne Kopfzeile*
*--------------------------------------------------------------------*
DATA itab01 TYPE itab01_typ.


*--------------------------------------------------------------------*
*Workareas für interen Tabellen deklarieren*
*--------------------------------------------------------------------*
DATA wa_itab01 TYPE zeile01_typ.

*--------------------------------------------------------------------*
*Selektionsbild gestalten*
*--------------------------------------------------------------------*

SELECT-OPTIONS: S_MATNR FOR wa_MARA-MATNR.
SELECT-OPTIONS: S_MTART FOR wa_MARA-MTART.
PARAMETERS S_SPRAS TYPE MAKT-SPRAS OBLIGATORY.
PARAMETERS S_WERKS TYPE MARC-WERKS OBLIGATORY.
PARAMETERS S_MSTAE TYPE MARA-MSTAE.
PARAMETERS S_MMSTA TYPE MARC-MMSTA.



*--------------------------------------------------------------------*
*Interne Tabelle itab01 füllen*
*--------------------------------------------------------------------*
START-OF-SELECTION.
     SELECT *
    INTO CORRESPONDING FIELDS OF TABLE itab01
    FROM MARA

    JOIN  MAKT
      ON  MAKT~MATNR = MARA~MATNR
     AND  MAKT~SPRAS = S_SPRAS


    JOIN  MARC
      ON  MARC~MATNR =  MARA~MATNR
     AND  MARC~WERKS =  S_WERKS
     AND  MARC~MMSTA EQ S_MMSTA



    JOIN  MBEW
      ON  MBEW~MATNR = MARA~MATNR



     WHERE MARA~MATNR IN S_MATNR
     AND   MARA~MTART IN S_MTART
     AND   MARA~MSTAE =  S_MSTAE.




END-OF-SELECTION.




  LOOP AT itab01 INTO wa_itab01.


                IF wa_itab01-VPRSV = 'V'.
         MOVE wa_itab01-VERPR TO PREIS.
         ELSE.
           MOVE wa_itab01-STPRS TO PREIS.
        ENDIF.


      WRITE:/ wa_itab01-MATNR, wa_itab01-MAKTX, wa_itab01-PRDHA, wa_itab01-MTART, wa_itab01-MATKL,
      wa_itab01-MSTAE, wa_itab01-MMSTA, wa_itab01-DISPO, wa_itab01-EKGRP, wa_itab01-NCOST,
      wa_itab01-LOSGR, wa_itab01-HRKFT, wa_itab01-VPRSV, wa_itab01-VERPR, wa_itab01-STPRS,
      Preis.
      CLEAR PREIS.


     ENDLOOP.

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


Re: Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo Christof,

vielleicht stehe ich gerade einfach nur auf dem Schlauch, aber was genau möchtest du wissen?
Welche Werte in deinen Range-Tabellen (nichts anderes sind Select-Options) stehen?
Oder willst du aus deinen Parametern auch Select-Options machen?
Gruß,
der Matze

Re: Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Hallo

Ja die Parameter möchte ich auch in Select-Options.
Ich kann nur über die MARA-Tabelle Select-Options einbauen.
Die anderen Tabellen werden über eine Join-Bedingung mit der MARA-Tabelle verknüpft.
Wenn ich nun ein Select-Options bei anderen Tabellen einbaue gibt es eine Fehlermeldung, dass IN bei ON-Bedingungen nicht möglich sind.
Ich hoffe du kommst bei meiner Beschreibung nach :D

Re: Select-Options

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
christof hat geschrieben:Wenn ich nun ein Select-Options bei anderen Tabellen einbaue gibt es eine Fehlermeldung, dass IN bei ON-Bedingungen nicht möglich sind.
Was hindert dich daran die IN-Bedingung für gejointe Tabellen in die WHERE-Bedingung zu schreiben?

Code: Alles auswählen.

 SELECT *
    INTO CORRESPONDING FIELDS OF TABLE itab01
    FROM MARA
    JOIN  MAKT
      ON  MAKT~MATNR = MARA~MATNR
     WHERE MARA~MATNR IN S_MATNR
     AND   MARA~MTART IN S_MTART
     AND   MARA~MSTAE =  S_MSTAE
     AND  MAKT~SPRAS IN S_SPRAS.
Gruß Hendrik

Re: Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Hallo christof,

du scheinst das Prinzip der JOIN-Verknüpfung noch nicht ganz verstanden zu haben. der ON-Part der JOIN Verknüpfung bezieht sich nun mal auf einzelne Schlüsselwerte mit denen die zu verknüpfende Tabelle einbezogen wird, soll heißen: das System selektiert im Hintergrund einen Datensatz der Mara, hat damit eine Materialnummer am Wickel und zieht sich zu dieser Materialnummer den passenden MAKT-Satz. Das geht nun mal nur für einzelne Werte. Und diese Selektion führt das System für jeden Datensatz den es in der MARA findet aus.
Wenn du nun deine Selektion weitereinschränken möchtest kannst du NACH der ON-Verknüpfung ganz normal mit IN-Operatoren arbeiten, so wie es JHM schon demonstriert hat.
Gruß,
der Matze

Re: Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Guten Abend zusammen

Ja so funktioniert es perfekt und dazu habe ich wieder einmal etwas gelernt
Vielen Dank.
Nun werden alle Felder die ich brauche ausgegeben. Aber für die Benutzung von diesem Programm
müssen noch die Spalten mit Überschriften versehen werden. Am liebsten eine klassische ABAP- Liste.
Kann mir jemand eine Anleitung oder einen sonstigen Hinweis geben. Ich hab es mit einer Anleitung und
mit dem Paket SLIS probiert. Habe aber am Schluss nur Fehlermeldungen bekommen :cry:

Re: Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Wie MarcelS habe ich genau dasselbe Problem mit dem Feldkatalog
(http://www.abapforum.com/forum/viewtopi ... 846#p73846)
Leider hilft mir die Antwort von Bugfix13 nicht viel weiter. Wenn ich etwas an meinem Code verändere wird es nur noch schlimmer.
Ich habe mal die Fehlermeldung sowie den Code komplett rauf kopiert. Vielleicht kann mir jemand helfen
Vielen Dank zum voraus

Fehlermeldung
In dem Programm "CL_GUI_ALV_GRID===============CP" wurde durch eine
RAISE-Anweisung die Exception
(Ausnahmebedingung) "NO_FIELDCATALOG_AVAILABLE" ausgelöst.
Da die Exception nicht durch ein in der Aufrufhierarchie darüber-
liegendes Programm abgefangen ist, wurde die Verarbeitung abgebrochen.



Code: Alles auswählen.

Report ZR_AUSW LINE-SIZE 1000 LINE-COUNT 5000.


*--------------------------------------------------------------------*
*Tabellenarbeitsbereich deklarieren*
*--------------------------------------------------------------------*

DATA: wa_mara  TYPE MARA,
      wa_makt  TYPE MAKT,
      wa_marc  TYPE MARC,
      wa_mbew  TYPE MBEW.

*--------------------------------------------------------------------*
*Felder deklarieren*
*--------------------------------------------------------------------*
DATA: zeile_itab01 TYPE i.


*--------------------------------------------------------------------*
*Datentypen für Zeilen deklarieren*
*--------------------------------------------------------------------*

TYPES: BEGIN OF zeile01_typ,
        MATNR LIKE MARA-MATNR, "Materialnummer
        MATKL LIKE MARA-MATKL, "Warengruppe
        PRDHA LIKE MARA-PRDHA, "Produkthirarchie
        MTART LIKE MARA-MTART, "Materialart
        MSTAE LIKE MARA-MSTAE, "Werksstatus
        MEINS LIKE MARA-MEINS, "Basismengeneinheit
        BRGEW LIKE MARA-BRGEW, "Bruttogewicht
        MAKTX LIKE MAKT-MAKTX, "Materialtext
        SPRAS LIKE MAKT-SPRAS, "Sprache
        BESKZ LIKE MARC-BESKZ, "Beschaffungsart
        EKGRP LIKE MARC-EKGRP, "Einkäufergruppe
        DISPO LIKE MARC-DISPO, "Disponent
        MMSTA LIKE MARC-MMSTA, "Materialstatus
        NCOST LIKE MARC-NCOST, "Nicht-Kalkulieren häckchen
        LOSGR LIKE MARC-LOSGR, "Losgrösse
        BASMG LIKE MARC-BASMG, "Basismenge
        DISLS LIKE MARC-DISLS, "Dispolosgrösse
        DISMM LIKE MARC-DISMM, "Dispomerkmal
        VPRSV LIKE MBEW-VPRSV, "Preissteuerung S/V
        VERPR LIKE MBEW-VERPR, "Gleitender Preis V
        STPRS LIKE MBEW-STPRS, "Standartpreis S
        HRKFT LIKE MBEW-HRKFT, "Herkunftsgruppe
        EKALR LIKE MBEW-EKALR, "Mengengerüst
        BKLAS LIKE MBEW-BKLAS, "Bewertungsklasse

END OF zeile01_typ.

Data : PREIS(10) type p DECIMALS 2.





*--------------------------------------------------------------------*
*Datentypen für interne Tabellen deklarieren*
*--------------------------------------------------------------------*
TYPES itab01_typ TYPE STANDARD TABLE OF zeile01_typ.


*--------------------------------------------------------------------*
*ALV-GRID aufrufen
*--------------------------------------------------------------------*
DATA: ok_code LIKE sy-ucomm.

DATA: go_grid               TYPE REF TO cl_gui_alv_grid,
      go_custom_container   TYPE REF TO cl_gui_custom_container.



*--------------------------------------------------------------------*
*Interne Tabellen deklarieren ohne Kopfzeile*
*--------------------------------------------------------------------*
DATA itab01 TYPE itab01_typ.


*--------------------------------------------------------------------*
*Workareas für interen Tabellen deklarieren*
*--------------------------------------------------------------------*
DATA wa_itab01 TYPE zeile01_typ.


*--------------------------------------------------------------------*
*Selektionsbild gestalten*
*--------------------------------------------------------------------*

SELECT-OPTIONS: S_MATNR FOR wa_MARA-MATNR.
SELECT-OPTiONS: S_MTART FOR wa_MARA-MTART.
SELECT-OPTIONS: S_MATKL FOR wa_MARA-MATKL.
SELECT-OPTIONS: S_MSTAE FOR wa_MARA-MSTAE.
SELECT-OPTIONS: S_MMSTA FOR wa_MARC-MMSTA.
SELECT-OPTIONS: S_DISPO FOR wa_MARC-DISPO.
SELECT-OPTIONS: S_EKGRP FOR wa_MARC-EKGRP.
SELECT-OPTIONS: S_BESKZ FOR wa_MARC-BESKZ.
SELECT-OPTIONS: S_NCOST FOR wa_MARC-NCOST.
SELECT-OPTIONS: S_VPRSV FOR wa_MBEW-VPRSV.
SELECT-OPTIONS: S_HRKFT FOR wa_MBEW-HRKFT.

PARAMETERS S_SPRAS TYPE MAKT-SPRAS OBLIGATORY.
PARAMETERS S_WERKS TYPE MARC-WERKS OBLIGATORY.




*--------------------------------------------------------------------*
*Interne Tabelle itab01 füllen*
*--------------------------------------------------------------------*
START-OF-SELECTION.
SET SCREEN '100'.

END-OF-SELECTION.




  LOOP AT itab01 INTO wa_itab01.


                IF wa_itab01-VPRSV = 'V'.
         MOVE wa_itab01-VERPR TO PREIS.
         ELSE.
           MOVE wa_itab01-STPRS TO PREIS.
        ENDIF.


      WRITE:/
      wa_itab01-MATNR,
      wa_itab01-MAKTX,
      wa_itab01-PRDHA,
      wa_itab01-MTART,
      wa_itab01-MATKL,
      wa_itab01-MSTAE,
      wa_itab01-MMSTA,
      wa_itab01-BESKZ,
      wa_itab01-DISPO,
      wa_itab01-EKGRP,
      wa_itab01-DISLS,
      wa_itab01-DISMM,
      wa_itab01-NCOST,
      wa_itab01-LOSGR,
      wa_itab01-HRKFT,
      wa_itab01-VPRSV,
      wa_itab01-VERPR,
      wa_itab01-STPRS,
      Preis,
      wa_itab01-EKALR,
      wa_itab01-BASMG,
      wa_itab01-MEINS,
      wa_itab01-BKLAS,
      wa_itab01-BRGEW.





      CLEAR PREIS.


     ENDLOOP.


*---------------------------------------------------------------------*
*Module  STATUS_0100 ausgeben
*---------------------------------------------------------------------*

MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.
*  SET TITLEBAR 'xxx'.

  IF go_custom_container IS INITIAL.
    CREATE OBJECT go_custom_container
    EXPORTING
      container_name = 'ALV_CONTAINER'.

    CREATE OBJECT go_grid
    EXPORTING
      i_parent = go_custom_container.

    PERFORM load_data_into_grid.

    ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT



*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*

MODULE USER_COMMAND_0100 INPUT.
  CASE ok_code.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
      ENDCASE.
      CLEAR ok_code.

ENDMODULE.                 " USER_COMMAND_0100  INPUT





*&---------------------------------------------------------------------*
*&      Form  LOAD_DATA_INTO_GRID
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*


FORM LOAD_DATA_INTO_GRID.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE itab01

        FROM MARA

    JOIN  MAKT
      ON  MAKT~MATNR = MARA~MATNR
     AND  MAKT~SPRAS = S_SPRAS


    JOIN  MARC
      ON  MARC~MATNR =  MARA~MATNR
     AND  MARC~WERKS =  S_WERKS





    JOIN  MBEW
      ON  MBEW~MATNR = MARA~MATNR



     WHERE MARA~MATNR IN S_MATNR
     AND   MARA~MTART IN S_MTART
     AND   MARA~MATKL IN S_MATKL
     AND   MARA~MSTAE IN S_MSTAE
     AND   MARC~MMSTA IN S_MMSTA
     AND   MARC~DISPO IN S_DISPO
     AND   MARC~EKGRP IN S_EKGRP
     AND   MARC~NCOST IN S_NCOST
     AND   MARC~BESKZ IN S_BESKZ
     AND   MBEW~VPRSV IN S_VPRSV
     AND   MBEW~HRKFT IN S_HRKFT.



    CALL METHOD go_grid->set_table_for_first_display
    EXPORTING
      i_structure_name = 'itab01'
      CHANGING
        it_outtab = itab01.

ENDFORM.                    " LOAD_DATA_INTO_GRID

END-OF-SELECTION.

Re: Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Guten Morgen Christof,

schau dir mal den Text deiner Fehlermeldung an:

if m_cl_variant-> mt_fieldcatalog is initial. Darin liegt der Fehler! Dein Feldkatalog ist sozusagen einfach mal nicht da. Du solltest den Namen deiner Struktur IMMER in Großbuchstaben schreiben! Sonst geht schnell mal irgendwas nicht! Und wenn das nicht ausreicht könntest du einen Feldkatalog aufbauen und diesen zusätzlich mitgeben.

Bugfix13's Vorschlag bezieht sich im übrigen NICHT auf die Methodik die du genutzt hast, sondern auf die SALV-Klassen mit denen sich auf wesentlich simplere Weise ALV's erzeugen lassen. Bezogen auf dein Programm bedeutet das, das du in der Formroutine "LOAD_DATA_INTO_GRID" deinen Code nach der Selektion durch den Part aus Bugfix13's Post ersetzen musst der beginnt mit "ALV darstellen.
Natürlich musst du dann noch die Datendeklrationen anpassen.
Gruß,
der Matze

Re: Select-Options

Beitrag von PeterPaletti (Specialist / 336 / 29 / 96 ) »
Der Fehler liegt im Aufruf von set_table_for_first_display

Code: Alles auswählen.

 CALL METHOD go_grid->set_table_for_first_display
    EXPORTING
      i_structure_name = 'itab01'
      CHANGING
        it_outtab = itab01.

Bei dem Parameter i_structure_name muss du den Namen einer Data-Dictionary angeben, nicht den Namen deiner internen Tabelle.
Du hast im Endeffekt zwei Möglichkeiten:
a) du definierst eine DDIC-Struktur, die wie deine interne Tabelle aufgebaut ist und übergibst den Namen im Parameter i_structure_name
b) du erstellst dir den Feldkatalog selber und übergibst diesen im Parameter IT_FIELDCATALOG, den Parameter i_structure_name lässt du dann weg.

Gruß
Peter

Re: Select-Options

Beitrag von Bugfix13 (ForumUser / 97 / 17 / 5 ) »
Hallo Christof

Ich habe dir dein Programm mal umgebaut. Ich finde halt die Variante ohne eigene Erstellung des Feldkatalogs am besten.
Ich kann aus eigener Erfahrung als Anfäger sagen, dass 95% der Fehler bei einer ALV im Feldkatalog liegen, darum lass den doch weg und spar dir viel Zeit.

Der Code sollte bei deinem Programm so funktionieren ( mit Dynpro 100)

Code: Alles auswählen.

Report ZR_AUSW LINE-SIZE 1000 LINE-COUNT 5000.

DATA: wa_mara  TYPE mara,
      wa_makt  TYPE makt,
      wa_marc  TYPE marc,
      wa_mbew  TYPE mbew.

DATA: zeile_itab01 TYPE i.

TYPES: BEGIN OF zeile01_typ,
        matnr LIKE mara-matnr, "Materialnummer
        matkl LIKE mara-matkl, "Warengruppe
        prdha LIKE mara-prdha, "Produkthirarchie
        mtart LIKE mara-mtart, "Materialart
        mstae LIKE mara-mstae, "Werksstatus
        meins LIKE mara-meins, "Basismengeneinheit
        brgew LIKE mara-brgew, "Bruttogewicht
        maktx LIKE makt-maktx, "Materialtext
        spras LIKE makt-spras, "Sprache
        beskz LIKE marc-beskz, "Beschaffungsart
        ekgrp LIKE marc-ekgrp, "Einkäufergruppe
        dispo LIKE marc-dispo, "Disponent
        mmsta LIKE marc-mmsta, "Materialstatus
        ncost LIKE marc-ncost, "Nicht-Kalkulieren häckchen
        losgr LIKE marc-losgr, "Losgrösse
        basmg LIKE marc-basmg, "Basismenge
        disls LIKE marc-disls, "Dispolosgrösse
        dismm LIKE marc-dismm, "Dispomerkmal
        vprsv LIKE mbew-vprsv, "Preissteuerung S/V
        verpr LIKE mbew-verpr, "Gleitender Preis V
        stprs LIKE mbew-stprs, "Standartpreis S
        hrkft LIKE mbew-hrkft, "Herkunftsgruppe
        ekalr LIKE mbew-ekalr, "Mengengerüst
        bklas LIKE mbew-bklas, "Bewertungsklasse

END OF zeile01_typ.

DATA : preis(10) TYPE p DECIMALS 2.
TYPES itab01_typ TYPE STANDARD TABLE OF zeile01_typ.


DATA: ok_code LIKE sy-ucomm.
DATA: go_custom_container   TYPE REF TO cl_gui_custom_container,
      gcl_alv TYPE REF TO  cl_salv_table. "ALV

DATA itab01 TYPE itab01_typ.
DATA wa_itab01 TYPE zeile01_typ.

SELECT-OPTIONS: s_matnr FOR wa_mara-matnr.
SELECT-OPTIONS: s_mtart FOR wa_mara-mtart.
SELECT-OPTIONS: s_matkl FOR wa_mara-matkl.
SELECT-OPTIONS: s_mstae FOR wa_mara-mstae.
SELECT-OPTIONS: s_mmsta FOR wa_marc-mmsta.
SELECT-OPTIONS: s_dispo FOR wa_marc-dispo.
SELECT-OPTIONS: s_ekgrp FOR wa_marc-ekgrp.
SELECT-OPTIONS: s_beskz FOR wa_marc-beskz.
SELECT-OPTIONS: s_ncost FOR wa_marc-ncost.
SELECT-OPTIONS: s_vprsv FOR wa_mbew-vprsv.
SELECT-OPTIONS: s_hrkft FOR wa_mbew-hrkft.

PARAMETERS s_spras TYPE makt-spras OBLIGATORY.
PARAMETERS s_werks TYPE marc-werks OBLIGATORY.

"Programm starten
START-OF-SELECTION.
  CALL SCREEN '100'.

**----------------------------------------------------------------------*
**  MODULE status_0100 OUTPUT
**----------------------------------------------------------------------*
**
**----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS_0100'.
*  set titlebar 'xxx'.

  "Daten auslesen
  PERFORM read_data.

  IF go_custom_container IS INITIAL.
    CREATE OBJECT go_custom_container
      EXPORTING
        container_name = 'ALV_CONTAINER'.

      TRY.
          cl_salv_table=>factory(  EXPORTING  list_display   = abap_false
                                              r_container    = go_custom_container
                                   IMPORTING  r_salv_table   = gcl_alv
                                   CHANGING   t_table        = itab01[] ).
        CATCH cx_salv_msg.
          EXIT.
      ENDTRY.

      DATA: ls_lay_key           TYPE         salv_s_layout_key,
            lt_cols              TYPE         salv_t_column_ref,
            ls_cols              TYPE         salv_s_column_ref,
            lcl_col              TYPE REF TO  cl_salv_columns_table,
            lcl_disp             TYPE REF TO  cl_salv_display_settings,
            lcl_func             TYPE REF TO  cl_salv_functions,
            lcl_sel              TYPE REF TO  cl_salv_selections,
            lcl_lay              TYPE REF TO  cl_salv_layout.

*     Layouteinstellungen
      lcl_lay           = gcl_alv->get_layout( ).
      ls_lay_key-report = sy-cprog.

*     Spalten holen (für Spalteneigenschaften )
      lcl_col = gcl_alv->get_columns( ).
      lt_cols = lcl_col->get( ).

*     Spaltenoptimierung
      lcl_col->set_optimize( value = cl_salv_functions=>true ).

*     Eigenschaften der ALV (für gesamte Liste)
      lcl_disp = gcl_alv->get_display_settings( ).
      lcl_disp->set_striped_pattern( cl_salv_display_settings=>true ).

      gcl_alv->display( ).

   ENDIF.

ENDMODULE.                 " STATUS_0100  OUTPUT

*----------------------------------------------------------------------*
*  MODULE user_command_0100 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.
  CASE ok_code.
    WHEN 'EXIT'.
      LEAVE TO SCREEN 0.
  ENDCASE.
  CLEAR ok_code.
ENDMODULE.                 " USER_COMMAND_0100  INPUT

*&---------------------------------------------------------------------*
*&      Form  load_data_into_grid
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM read_data.

  SELECT *
    INTO CORRESPONDING FIELDS OF TABLE itab01
        FROM mara
    JOIN  makt
      ON  makt~matnr = mara~matnr
     AND  makt~spras = s_spras
    JOIN  marc
      ON  marc~matnr =  mara~matnr
     AND  marc~werks =  s_werks
    JOIN  mbew
      ON  mbew~matnr = mara~matnr
    WHERE mara~matnr IN s_matnr
     AND   mara~mtart IN s_mtart
     AND   mara~matkl IN s_matkl
     AND   mara~mstae IN s_mstae
     AND   marc~mmsta IN s_mmsta
     AND   marc~dispo IN s_dispo
     AND   marc~ekgrp IN s_ekgrp
     AND   marc~ncost IN s_ncost
     AND   marc~beskz IN s_beskz
     AND   mbew~vprsv IN s_vprsv
     AND   mbew~hrkft IN s_hrkft.

ENDFORM.                    " LOAD_DATA_INTO_GRID


Re: Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Vielen Dank

Ist es richtig das itab01&#91;&#93; ) durch itab01[];[]; ) ersetzt werden muss.
Also [ ] sind eckige Klammer auf und eckige Klammer zu?

Vielen Dank

Re: Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
christof hat geschrieben:Vielen Dank

Ist es richtig das itab01&#91;&#93; ) durch itab01[];[]; ) ersetzt werden muss.
Also [ ] sind eckige Klammer auf und eckige Klammer zu?

Vielen Dank
Ja :)
Gruß,
der Matze

Re: Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
es müsste wohl so Aussehen

itab01[] )

:D :D

Vielen vielen vielen vielen Dank, nun habe ich ein super Beispiel für weiter Listenprogrammierung.

Re: Select-Options

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Ja genau so muss das aussehen!

Dann viel Erfolg weiterhin! ;)
Gruß,
der Matze

Re: Select-Options

Beitrag von christof (Specialist / 122 / 6 / 0 ) »
Nun möchte ich Layoutvarianten anlegen, ändern oder sichern.
Dazu habe ich diesen Code geschrieben.
Kannst du mur einen Tipp geben was falsch ist?

Code: Alles auswählen.

FORM f4_alv_variant  CHANGING p_variant LIKE ITAB01.
  DATA: l_layout  TYPE disvariant.

  l_layout-report = sy-repid.
  l_layout-handle = '0001'.
  l_layout-username = sy-uname.
  CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
    EXPORTING
      is_variant    = l_layout
      i_save        = 'A'
    IMPORTING
      es_variant    = l_layout
    EXCEPTIONS
      not_found     = 1
      program_error = 2
      OTHERS        = 3.
  CHECK sy-subrc = 0.
  p_variant = p_variant.
ENDFORM.                    " f4_alv_variant

Vergleichbare Themen

0
Antw.
1759
Views
select-options depend on select-options.
von dragospirnut1 » 19.07.2017 09:54 • Verfasst in ABAP® Core
10
Antw.
5789
Views
2 Select-Options zu einem für Select zusammenfügen
von manuk » 23.03.2005 11:02 • Verfasst in ABAP® Core
4
Antw.
17875
Views
Select nach Parameter & Select-Options
von doeme » 10.07.2012 16:37 • Verfasst in ABAP® für Anfänger
2
Antw.
3427
Views
SELECT - Options & SELECT Abfrage
von Mavrix » 14.05.2007 08:41 • Verfasst in ABAP® für Anfänger
2
Antw.
1909
Views
SELECT-OPTIONS
von Caro » 05.10.2004 12:04 • Verfasst in ABAP® Core

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 36 Minuten von msfox 2 / 34
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

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.

Aktuelle Forenbeiträge

Zugriff auf Daten via Webdav
vor 36 Minuten von msfox 2 / 34
Interne Tabelle
vor 17 Stunden von sap_enthusiast 3 / 163
Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141