Select nach Parameter & Select-Options

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

Select nach Parameter & Select-Options

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) » 10. Jul 2012 16:37

hallo!

ich habe eine vielzahl an parameter und select options, die ein user auf dem selektionsbildschirm auswählen kann bzw. befüllen. wie gestalte ich nach den gewählten parametern meinen select dann möglichst elegant? es muss doch eine schöne lösung geben, da zurzeit das ganze bei mir so ähnlich aussieht wie

Code: Alles auswählen.

if a is initial and b is not initial and c is not inital.
select ...
elseif a is initial and b is initial and c is not inital.
select ...
elseif...
select...
endif
da muss es doch eine saubere lösung geben, bitte um hilfe, danke!


Re: Select nach Parameter & Select-Options

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) » 10. Jul 2012 17:38

Es kommt auf die Anforderung an.

Mache jeden Parameter, wenn sinnvoll, mandatory. Dann sind diese Parameter schon immer "not initial", als immer gefuellt.

Du kannst einen Select-Option nehmen und diese so aussehen lassen, als ob es ein PARAMETERS ist.

Fuer alle anderen Parameter kannst Du eine Range-Tabelle, wie fuer eine Select-Option anlegen und als ersten Schritt nach "ausfuehren" mit den Parameterangaben befuellen, insbesondere wenn sie LEER sind.

Aus einem leeren Parameter wird dann z.b. eine Range-Tabelle die man dann beim SELECT immer mit " in R_TABLE" benutzen kann.

Beispiel auf die Schnelle und nicht vollstaendig:

Code: Alles auswählen.

data: r_matnr type RANGE OF mara-matnr.


Parameters P_MATNR type MATNR.

start-of-selection.
if P_matnr is initial
R_matnr-sign = 'I'.
R_matnr-Option = 'EQ'.
append r_matnr to r_matnr.
endif.

Select ....

where matnr in r_matnr.


Re: Select nach Parameter & Select-Options

Beitrag von JHM (Top Expert / 1136 / 0 / 178 ) » 11. Jul 2012 08:44

doeme hat geschrieben:wie gestalte ich nach den gewählten parametern meinen select dann möglichst elegant?
Ändert sich der Select in Abhängigkeit der gefüllten SelScreen-Felder?

Manchmal kann es Sinn machen den SelScreen in Blöcke auf zuteilen, die dann die einzelnen Felder je Select-Weg zusammen fassen. Wenn man dann noch mit RadioButtons arbeitet macht man dann auch nur die Felder für den SelectionsWeg eingabebereit:

Code: Alles auswählen.

REPORT  ztest_sel.

TYPES: BEGIN OF tys_data,
        vbeln     TYPE vbeln,
        wadat_ist TYPE likp-wadat_ist,
        erdat     TYPE vbak-erdat,
       END   OF tys_data.

DATA: gs_data TYPE tys_data.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: rb_auf RADIOBUTTON GROUP rb1 USER-COMMAND push DEFAULT 'X'.
SELECTION-SCREEN BEGIN OF BLOCK b11.
SELECT-OPTIONS: s_aubeln FOR gs_data-vbeln MODIF ID b11,
                s_erdat  FOR gs_data-erdat MODIF ID b11.
SELECTION-SCREEN END OF BLOCK b11.
PARAMETERS: rb_lif RADIOBUTTON GROUP rb1.
SELECTION-SCREEN BEGIN OF BLOCK b12.
SELECT-OPTIONS: s_vbeln FOR gs_data-vbeln MODIF ID b12,
                s_wadati FOR gs_data-wadat_ist MODIF ID b12.

SELECTION-SCREEN END OF BLOCK b12.
SELECTION-SCREEN END OF BLOCK b1.


AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.
    IF screen-group1 = 'B11'.
      CASE 'X'.
        WHEN rb_auf.
          screen-input = 1.
        WHEN rb_lif.
          screen-input = 0.
      ENDCASE.
      MODIFY SCREEN.
    ELSEIF screen-group1 = 'B12'.
      CASE 'X'.
        WHEN rb_auf.
          screen-input = 0.
        WHEN rb_lif.
          screen-input = 1.
      ENDCASE.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.

START-OF-SELECTION.

  CASE 'X'.
    WHEN rb_auf. "Einstieg über Auftrag
*      SELECT *
*       FROM vbak
    WHEN rb_lif. "Einstieg über Lierferung
*      SELECT *
*       FROM likp
  ENDCASE.
Gruß Hendrik

Re: Select nach Parameter & Select-Options

Beitrag von doeme (ForumUser / 18 / 0 / 0 ) » 11. Jul 2012 14:53

ja, leider. der SELECT kann also bei 3 versch. Parametern bis zu 9 verschiedene Varianten haben.

das mit mandatory ist auf jeden fall sinnvoll! danke für den tipp

Re: Select nach Parameter & Select-Options

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) » 11. Jul 2012 16:38

Meinf olgender Code aus dem ersten Posting ist Unsinn.

Code: Alles auswählen.

if P_matnr is initial
R_matnr-sign = 'I'.
R_matnr-Option = 'EQ'.
append r_matnr to r_matnr.
endif.
Ich versuche bei solchen Faellen, die Parameter in Select-Options umzuwandeln. Entweder direkt auf dem Screen oder im Program.
Ebenso versuche ich das bei Checkboxen anzuwenden und wandele diese intern in Select-Options.

Am besten zeigst Du uns mal ein Beispiel, damit wir damit etwas rumdoktern koennen. :-)

Seite 1 von 1

Aktuelle Forenbeiträge

SELECT-OPTIONS: NO INTERVALS auch in Fenster Mehrfachselekti
vor 36 Minuten von DeathAndPain 7 / 7180
Lookup Tabelle in Methode lesen und erweitern
vor 46 Minuten von DeathAndPain 7 / 138
ABAP Editor gelöst
vor einer Stunde von DeathAndPain 7 / 124
Fehler bei F4-Hilfe
vor einer Stunde von DeathAndPain 5 / 103

Unbeantwortete Forenbeiträge

Mini-SAP Einstiegs Logo ändern
vor 21 Stunden von Tron 1 / 85
Absenderland in Transaktion BP setzen
Gestern von SAP_ENTWICKLER 1 / 73
Funktionsbaustein QPMK_MSTCHA_VERS_CREATE
vor einer Woche von SAP_ENTWICKLER 1 / 105
OLE 2 Excel Datum konvertieren
vor einer Woche von Kerstin 1 / 95