Konvertieren der Werte bei Select-Options


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

Moderatoren: Jan, Steff

Konvertieren der Werte bei Select-Options

Beitragvon ManMan » 31.07.2017, 10:05

Hallo zusammen,
ich möchte die Werte (Lieferanten und Kundennummer) bei der Eingabe aus der Wertehilfe am Selection-Screen konvertieren. ‚12345678‘ ‚0012345678‘ Die Werte, die vom Benutzer eingegeben werden, haben meistens 8 Ziffern. Die Werte aus der Datenbanktabelle haben 10 Ziffern. Dafür benutze ich FuBA CONVERSION_EXIT_ALPHA_INPUT. Wenn ich alle Werte beim Ausführen ausgebe, werden die Lieferantennummer und Kundennummer mit ‚00‘ befüllt. Wenn ich durch Select-Options selektiere, hat die Tabelle keine Werte. Was mache ich falsch?

Danke für Eure Hilfe.

Code: Alles auswählen
* Wertehilfe F4 für die Liferantennummer - 1. Wert
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lifnr-low.
  PERFORM help_lifnr.

* Wertehilfe F4 für die Liferantennummer - 2. Wert
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_lifnr-high.
  PERFORM help_lifnr.

** Wertehilfe F4 für die Kundennummer - 1. Wert
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_kunnr-low.
  PERFORM help_kunnr.

* Wertehilfe F4 für die Kundennummer - 2. Wert
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_kunnr-high.
  PERFORM help_kunnr.

at selection-screen.

perform select_data.

END-OF-SELECTION.

FORM help_lifnr.

   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
   EXPORTING
      input     = s_lifnr
   IMPORTING
     output     = s_lifnr.

  SELECT DISTINCT lifnr linam INTO CORRESPONDING FIELDS OF TABLE gt_table
FROM table
    WHERE lifnr in s_lifnr.

  MOVE-CORRESPONDING gt_table TO gt_lifnr.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
     EXPORTING
       retfield        = 'LIFNR'
       dynpprog        = sy-repid    " Program name
       dynpnr          = sy-dynnr    " Screen number
       dynprofield     = 'S_LIFNR'   " F4 help need field
       value_org       = 'S'
     TABLES
       value_tab       = gt_lifnr " F4 help values
     EXCEPTIONS
       parameter_error = 1
       no_values_found = 2
       OTHERS          = 3.
ENDFORM.
FORM help_kunnr.

  SELECT DISTINCT kunnr kunam INTO CORRESPONDING FIELDS OF TABLE gt_table
FROM table
    WHERE kunnr IN s_kunnr.

MOVE-CORRESPONDING gt_table TO gt_kunnr.

  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
     EXPORTING
       retfield        = 'KUNNR'
       dynpprog        = sy-repid    " Program name
       dynpnr          = sy-dynnr    " Screen number
       dynprofield     = 'S_KUNNR'   " F4 help need field
       value_org       = 'S'
     TABLES
       value_tab       = gt_kunnr" F4 help values
     EXCEPTIONS
       parameter_error = 1
       no_values_found = 2
       OTHERS          = 3.

ENDFORM.
FORM select_data.

 SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_table " --> funktioniert
   FROM table
  WHERE lifnr IN s_lifnr
    AND kunnr IN s_kunnr.

ENDFORM.

 
ManMan
ForumUser
 
Beiträge: 26
Registriert: 10.05.2017, 19:43
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: Konvertieren der Werte bei Select-Options

Beitragvon ManMan » 31.07.2017, 10:56

Ich habe es hinbekommen. Das Problem ist, es funktioniert, nur dann wenn ich die Enter-Taste drücke. Wie kann ich es machen ohne die Enter-Taste
Code: Alles auswählen
at selection-screen output.

   loop at s_lifnr.

   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
   EXPORTING
      input     = s_lifnr-low
   IMPORTING
     output     = s_lifnr-low.

   CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
   EXPORTING
      input     = s_lifnr-high
   IMPORTING
     output     = s_lifnr-high.

   modify s_lifnr.

   endloop.

 
ManMan
ForumUser
 
Beiträge: 26
Registriert: 10.05.2017, 19:43
Dank erhalten: 0 mal
Ich bin: Student/in

Re: Konvertieren der Werte bei Select-Options

Beitragvon Thanatos82 » 31.07.2017, 11:43

Hi,

ich glaube LOOP AT screen ist hier das, was dich zum Ziel führen sollte.
Gruß,
der Matze
Thanatos82
Expert
 
Beiträge: 694
Registriert: 13.09.2012, 13:01
Wohnort: Hagen
Dank erhalten: 124 mal
Ich bin: Entwickler/in

Re: Konvertieren der Werte bei Select-Options

Beitragvon a-dead-trousers » 31.07.2017, 13:33

Normalerweise braucht man sich mit dieser Konvertierung nicht herumzuschlagen.
Wenn die verwendete Domäne (des Datenelements) die entsprechende Konvertierung bereits eingetragen hat, macht SAP bzw. der Selection-Screen die Konvertierung automatisch.
screen.jpg

Sofern du mit selbst-gestrickten F4 Hilfen arbeitest musst du deren Ergebnisse natürlich trotzdem durch die Konvertierungsroutine laufen lassen, bevor du die Werte in die Select-Option schreibst.
Also die Ergebnisse in gt_lifnr (FORM help_lifnr) bzw. gt_kunnr (FORM help_kunnr) einzeln konvertieren und dann erst in die Select-Options schreiben.

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40
a-dead-trousers
Top Expert
 
Beiträge: 2670
Registriert: 07.02.2011, 13:40
Dank erhalten: 612 mal
Ich bin: Entwickler/in

Re: Konvertieren der Werte bei Select-Options

Beitragvon sapyard » 02.08.2017, 05:15

How have you defined the S_LIFNR and S_KUNNR?
If you use the right SELECT-OPTION, say SELECT-OPTION s_lifnr for LFA1-LIFNR. Then you do not need the Conversion Exit.

Can you please show your SELECTION SCREEN declarations?
Thanking you.

With Regards,
Raju.
----------------------
Raju Shrestha
www.sapyard.com
----------------------
sapyard
ForumUser
 
Beiträge: 30
Registriert: 02.07.2017, 02:05
Wohnort: Texas, USA
Dank erhalten: 2 mal
Ich bin: Berater/in

Re: Konvertieren der Werte bei Select-Options

Beitragvon DeathAndPain » 08.08.2017, 17:00

Also ein LOOP AT screen wird hier garantiert nichts bringen. Da er sagt, dass es nach Druck auf Enter funktioniert, würde ich eher darauf tippen, dass ohne Enter die Feldwerte aus dem Dynpro noch nicht in die entsprechenden Variablen transportiert sind, so dass seine Versuche, im Programm damit zu arbeiten, ins Leere laufen.

Ich würde mal den Funktionsbaustein DYNP_VALUES_READ (siehe dessen Online-Doku) vorschalten.
DeathAndPain
Specialist
 
Beiträge: 219
Registriert: 05.05.2006, 10:14
Dank erhalten: 57 mal
Ich bin: Entwickler/in


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

  Aktuelle Beiträge   
Eclipse-Einstellungen migrieren
vor 11 Stunden von black_adept 1 Antw.
gelöst ALV TREE | Positionsänderung nach Double Click Event
vor 18 Stunden von Lukas R. 2 Antw.
Krypto-Wahn verstehen?
vor 16 Stunden von Moraim 2 Antw.
Beziehungswissen anwenden
Gestern von moo_jo 2 Antw.
gelöst ABAP - Application Log
Gestern von swonny 1 Antw.

  Ähnliche Beiträge beta
Select nach Parameter & Select-Options
11.07.2012, 15:38 von Unit605 4 Antw.
SELECT - Options & SELECT Abfrage
15.05.2007, 07:13 von Mavrix 2 Antw.
select-options ... for
11.08.2005, 12:09 von ewx 2 Antw.
Select Options
24.01.2006, 15:53 von robin1at 2 Antw.
Select Options
31.01.2006, 15:49 von robin1at 14 Antw.

 

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

Feedback ...?

Was können wir verbessern? Hinterlasse deine Kontaktdaten, wenn du eine direkte Antwort möchtest.

... Absenden!