Select-Option in Form & Perform


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

Moderatoren: Jan, Steff

Select-Option in Form & Perform

Beitragvon debianfan » 05.07.2018, 15:04

Guten Tag allerseits,

TABLES: dbtab.

SELECT-OPTIONS: so_vertrag FOR dbtab-vertrag.

START-OF-SELECTION.

PERFORM get_data using so_vertrag[]

END-OF-SELECTION.


FORM get_data using p_so_vertrag type XXXXXXXXX.

" Code

Endform.

Die Frage ist nun, wie das "XXXXX" lauten muss.

Ich dachte immer, dass dort RSDSSELOPT_T rein sollte - da es ja der Tabletyp von einer Select-Option ist.

Aber Pustekuchen :-(

Das Entwicklerhandbuch sagt aber aus, dass dies typisiert sein muss - also weglassen gibts nicht.

gruss :o
Ich weiß viel - aber nicht alles - deswegen lerne ich gern dazu & bin für Hinweise von erfahrenen ITlern immer dankbar.
debianfan
ForumUser
 
Beiträge: 71
Registriert: 25.04.2017, 12:42
Dank erhalten: 0 mal
Ich bin: Student/in

Sponsor

Alte ABAP-Entwicklerweisheit: Weißt du weder aus noch ein, baust du einen BADI ein

Re: Select-Option in Form & Perform

Beitragvon ralf.wenzel » 05.07.2018, 15:52

Du brauchst einen Tabellentyp vom Zeilentyp deiner SELOPT, also sowas wie RSDSSELOPT_T, nur mit LOW und HIGH vom Typ DBTAB-VERTRAG.

Wenn das ein SAP-Feld ist würde ich im DDIC danach suchen, das gibt es dann wahrscheinlich schon. SE11 und dann nach Tabellentypen, die den Namen des DE und "RANG" im Namen haben (also z. B. *VBEL*RANG* für das Feld VBELN).

Streng genommen müssen nur Typ und Länge des Feldes stimmen, der Rest ist egal. Wenn du also ein CHAR10-Feld hast, das DBTAB-VERTRAG heißt, brauchst du einen Tabellentyp, bei dem LOW und HIGH ein CHAR10-Feld sind. Aber das ist dann deutlich weniger transparent.


Ralf
Zuletzt geändert von ralf.wenzel am 05.07.2018, 15:55, insgesamt 1-mal geändert.

Für diese Nachricht hat ralf.wenzel einen Dank bekommen :
debianfan
ralf.wenzel
Top Expert
 
Beiträge: 3151
Registriert: 18.09.2004, 13:03
Wohnort: Hamburg
Dank erhalten: 179 mal
Ich bin: Freiberufler/in

Re: Select-Option in Form & Perform

Beitragvon ewx » 05.07.2018, 15:55

Bei typisierten Parametern musst die Select-Options leider exakt so definieren, wie sie mit SELECT-OPTIONS auf den entsprechenden Typen definiert wird.
Du kannst es so lösen:
Code: Alles auswählen

TYPES tt_range_datum TYPE RANGE OF sy-datum.
TYPES tt_range_uzeit TYPE RANGE OF sy-uzeit.
TYPES ts_range_uzeit type LINE OF tt_range_uzeit.
SELECT-OPTIONS s_datum FOR sy-datum.
SELECT-OPTIONS s_uzeit FOR sy-uzeit.


START-OF-SELECTION.

  PERFORM check
        TABLES s_uzeit
        USING s_datum[].

FORM check
        TABLES it_range_uzeit type tt_range_uzeit
        USING it_range_datum  TYPE tt_range_datum.

  Write: / 'Datum'.
  LOOP AT it_range_datum INTO DATA(selopt).
    WRITE: / selopt-sign,
             selopt-option,
             selopt-low,
             selopt-high.
  ENDLOOP.

  write: / 'Uhrzeit'.
  LOOP AT it_range_uzeit INTO selopt.
    WRITE: / selopt-sign,
             selopt-option,
             selopt-low,
             selopt-high.
  ENDLOOP.

ENDFORM.
 

Für diese Nachricht hat ewx einen Dank bekommen :
debianfan
ewx
Top Expert
 
Beiträge: 3739
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 296 mal

Re: Select-Option in Form & Perform

Beitragvon ST22 » 05.07.2018, 15:57

Code: Alles auswählen
REPORT zslg_type_range_of_selopt.
* um auf TABLES zu verzichten, Typdeklaration mit den Feldern für die Selopts
TYPES:
  BEGIN OF ty_selection_s,
    matnr TYPE matnr,
  END   OF ty_selection_s.

* Typ für die Formroutine
TYPES:
  ty_selopt_matnr_t TYPE RANGE OF matnr.

* global definierte Struktur wegen des Verzichts auf TABLES Anweisung
DATA:
  gs_selection TYPE ty_selection_s.

SELECT-OPTIONS: s_matnr FOR gs_selection-matnr.

START-OF-SELECTION.

  PERFORM get_matnr USING s_matnr[].

*&---------------------------------------------------------------------*
*&      Form  get_matnr
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PT_MATNR   text
*----------------------------------------------------------------------*
FORM get_matnr USING pt_matnr TYPE ty_selopt_matnr_t.

ENDFORM.                    "get_matnr

Für diese Nachricht hat ST22 einen Dank bekommen :
debianfan
ST22
Specialist
 
Beiträge: 218
Registriert: 15.04.2005, 07:34
Dank erhalten: 20 mal
Ich bin: Entwickler/in

Re: Select-Option in Form & Perform

Beitragvon ewx » 05.07.2018, 15:58

Bei Methoden kannst du CONV verwenden:
Code: Alles auswählen
TYPES tt_range_datum TYPE RANGE OF sy-datum.
SELECT-OPTIONS s_datum FOR sy-datum.

CLASS test DEFINITION.
  PUBLIC SECTION.
    CLASS-METHODS check IMPORTING it_selopt TYPE rsdsselopt_t.
ENDCLASS.

CLASS test IMPLEMENTATION.
  METHOD check.
    WRITE: / 'Datum'.
    LOOP AT it_selopt INTO DATA(selopt).
      WRITE: / selopt-sign,
               selopt-option,
               selopt-low,
               selopt-high.
    ENDLOOP.
  ENDMETHOD.
ENDCLASS.


START-OF-SELECTION.

  test=>check( CONV #( s_datum[] ) ).
 

Für diese Nachricht hat ewx einen Dank bekommen :
debianfan
ewx
Top Expert
 
Beiträge: 3739
Registriert: 04.08.2003, 19:55
Wohnort: Schleswig-Holstein
Dank erhalten: 296 mal

Re: Select-Option in Form & Perform

Beitragvon debianfan » 06.07.2018, 12:48

ewx hat geschrieben:Bei typisierten Parametern musst die Select-Options leider exakt so definieren, wie sie mit SELECT-OPTIONS auf den entsprechenden Typen definiert wird.
Du kannst es so lösen:
Code: Alles auswählen

TYPES tt_range_datum TYPE RANGE OF sy-datum.
TYPES tt_range_uzeit TYPE RANGE OF sy-uzeit.
TYPES ts_range_uzeit type LINE OF tt_range_uzeit.
SELECT-OPTIONS s_datum FOR sy-datum.
SELECT-OPTIONS s_uzeit FOR sy-uzeit.


 


So hab ich es auch gelöst - Danke :-)

..so einfach - so banal ;-)

wieder was gelernt
Ich weiß viel - aber nicht alles - deswegen lerne ich gern dazu & bin für Hinweise von erfahrenen ITlern immer dankbar.
debianfan
ForumUser
 
Beiträge: 71
Registriert: 25.04.2017, 12:42
Dank erhalten: 0 mal
Ich bin: Student/in


Zurück zu ABAP® für Anfänger

  Aktuelle Beiträge   
Positionstypenverwendung im SD
vor 16 Minuten von SAP_ENTWICKLER 2 Antw.
Hilfe bei SQL Join
vor 10 Stunden von deejey 1 Antw.
Hilfe bei SQL Join
vor 17 Stunden von moo_jo 0 Antw.
LISTBOX: SELECTION-SCREEN
vor 2 Stunden von ewx 3 Antw.
Eine Message in der Taskleiste von alv ausgeben
vor 20 Stunden von ewx 4 Antw.

  Ähnliche Beiträge beta
SELECT Wertepaar Select-Option
12.08.2013, 10:58 von a-dead-trousers 2 Antw.
Select-Option aus DSO Tabelle
08.05.2013, 13:03 von patlau 1 Antw.
dynamische Where -Bedingung mit Select-Option
30.08.2006, 14:43 von BesenWesen 8 Antw.
Select Option dynamisch erstellen
06.05.2008, 15:48 von ewx 12 Antw.
Suchhilfe an Select-Option anbinden
05.09.2008, 07:58 von xxxx 9 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot]