Suchhilfe mit Eintrag in mehreren Feldern

Benutzeroberflächen in SAP®-Systemen.
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

Suchhilfe mit Eintrag in mehreren Feldern

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Ich suche einen Weg, auf einem Dynpro zwei Felder zu füllen, nachdem _ein_ Suchhilfefenster benutzt worden ist. Dazu habe ich in einem älteren Thread folgendes gefunden, komme aber insgesamt nicht weiter:

"Eine Suchhilfe kann mehrere Felder füllen.
Man benötigt dazu eine Struktur, in der diese Felder drin sind.
Dann definiert man eine Suchhilfe, die als Ergebnis z.B. 3 Felder
zurückliefert.
In der Struktur gibt man dann bei jedem der 3 Felder die Suchhilfe an und
bestimmt, welches Suchhilfe-Ergebnisfeld in das jeweilige Feld übernommen
werden soll."

Ich habe also folgendes getan (4.6C):

(1) Suchhilfe anlegen, (4 Felder, von denen 2 mit Festwerten versehen sind, den beiden anderen Feldern gebe ich das Kennzeichen für den Export-Parameter mit). Test funktioniert einwandfrei.

(2) Struktur anlegen mit 2 Feldern, die namensgleich zur Suchhilfe sind und deren Komponententypen identisch mit den Datenelementen der Suchhilfefelder sind.

(3) In der Struktur wurde zu beiden Feldern obige Suchhilfe explizit hinzugefügt, wobei ich nicht die Wahl hatte, das einzelne Feld auszuwählen sondern beide Felder der Suchhilfe in jedem Feld der Struktur auswählen mußte (sonst gab es Probleme beim Prüfen). => mein erstes Fragezeichen, ob das so gedacht ist

(4)
Programm: DATA test TYPE meineStruktur.
Dynpro => grafischer Screen Painter => F6 => Holen aus Programm => meine Variablen tauchen auf
test-feld1 hinzufügen,
per F2 meine selbstgebastelte Suchhilfe dazu einfügen (? ich dachte, die hängt an der Struktur und wird automatisch gezogen???)
test-feld2 hinzufügen

Testen des Programmes: F4-Hilfe bringt die korrekten Vorschlagswerte, nach Auswahl wird aber (leider erwartungsgemäß) nur das Dynprofeld test-feld1 gefüllt.

Da ich mit diesem Thema schon lange experimentiere, wollte ich nun das weise Forum fragen, denn ich denke, ich komme ohne Input von Außen nicht mehr weiter!

Gruß, Manuela.

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


Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Hallo Manuela,

ich habe mich auch schon mit dem Thema geprügelt. Meine Lösung war schliesslich ein Suchhilfe-Exit in dem ich den Funktionsbaustein dynp_values_update verwendet habe. Der setzt Feldwerte in beliebigen Dynprofeldern VOR dem nächsten PBO.

Ciao

Nordlicht

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Mich ärgert an der Sache zum einen, daß ich eine Anleitung habe und sie nicht umzusetzen verstehe und zum anderen, daß das doch eigentlich ein Standardfall sein sollte - wer will schon Schlüssel sehen, wenn es auch Langtextfelder gibt - aber als Programmierer brauche ich natürlich die Schlüsselfelder... Warum gibt es (scheinbar?) kein Ereignis, das vom Schließen einer F4-Hilfe ausgelöst wird oder durch das Ändern des Inhaltes eines Eingabefeldes? Warum müßte ich die Hilfe komplett neu programmieren, um es meinen Wünschen entsprechend zu bekommen? Oder bin ich nur zu dumm? Wie auch immer, danke für den Hinweis, daß es auch anderen so geht ;o)

Gruß, Manuela.

Beitrag von Nordlicht (Specialist / 304 / 8 / 3 ) »
Tatsächlich werden ja im Suchhilfe-Exit eine Art Ereignisse im Verlauf des "F4-Drückens" ausgelöst und durchlaufen. Deren Behandlung ist nur leider etwas gewöhnungsbedürftig.

Ciao

Nordlicht

Beispiel:

Code: Alles auswählen.

FUNCTION Y_SUCHHILFEXIT.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  TABLES
*"      SHLP_TAB TYPE  SHLP_DESCT
*"      RECORD_TAB STRUCTURE  SEAHLPRES
*"  CHANGING
*"     VALUE(SHLP) TYPE  SHLP_DESCR
*"     VALUE(CALLCONTROL) LIKE  DDSHF4CTRL STRUCTURE  DDSHF4CTRL
*"----------------------------------------------------------------------

  DATA: c_SHLPNAME type SHLPNAME value 'YVSEG_SEG_INVREC',
        rc         type sysubrc.

* EXIT immediately, if you do not want to handle this step
  IF CALLCONTROL-STEP <> 'SELONE' AND
     CALLCONTROL-STEP <> 'SELECT' AND
     CALLCONTROL-STEP <> 'PRESEL1' AND
     " AND SO ON
     CALLCONTROL-STEP <> 'DISP'.
    EXIT.
  ENDIF.

*  IF CALLCONTROL-STEP <> 'PRESEL'.
*    EXIT.
*  ENDIF.

*"----------------------------------------------------------------------
* STEP SELONE  (Select one of the elementary searchhelps)
*"----------------------------------------------------------------------
* This step is only called for collective searchhelps. It may be used
* to reduce the amount of elementary searchhelps given in SHLP_TAB.
* The compound searchhelp is given in SHLP.
* If you do not change CALLCONTROL-STEP, the next step is the
* dialog, to select one of the elementary searchhelps.
* If you want to skip this dialog, you have to return the selected
* elementary searchhelp in SHLP and to change CALLCONTROL-STEP to
* either to 'PRESEL' or to 'SELECT'.
  IF CALLCONTROL-STEP = 'SELONE'.
*   PERFORM SELONE .........
    EXIT.
  ENDIF.

*"----------------------------------------------------------------------
* STEP PRESEL  (Enter selection conditions)
*"----------------------------------------------------------------------
* This step allows you, to influence the selection conditions either
* before they are displayed or in order to skip the dialog completely.
* If you want to skip the dialog, you should change CALLCONTROL-STEP
* to 'SELECT'.
* Normaly only SHLP-SELOPT should be changed in this step.
  IF CALLCONTROL-STEP = 'PRESEL1'.
  ENDIF.
*"----------------------------------------------------------------------
* STEP SELECT    (Select values)
*"----------------------------------------------------------------------
* This step may be used to overtake the data selection completely.
* To skip the standard seletion, you should return 'DISP' as following
* step in CALLCONTROL-STEP.
* Normally RECORD_TAB should be filled after this step.
* Standard function module F4UT_RESULTS_MAP may be very helpfull in this
* step.
  IF CALLCONTROL-STEP = 'SELECT'.

    PERFORM EIGENE_WERTE_ERMITTELN
                        TABLES   RECORD_TAB
                                 SHLP_TAB
                        CHANGING SHLP
                                 CALLCONTROL
                                 RC.
    IF RC = 0.
      CALLCONTROL-STEP = 'DISP'.
    ELSE.
      CALLCONTROL-STEP = 'EXIT'.
    ENDIF.
    EXIT. "Don't process STEP DISP additionally in this call.
  ENDIF.
*"----------------------------------------------------------------------
* STEP DISP     (Display values)
*"----------------------------------------------------------------------
* This step is called, before the selected data is displayed.
* You can e.g. modify or reduce the data in RECORD_TAB
* according to the users authority.
* If you want to get the standard display dialog afterwards, you
* should not change CALLCONTROL-STEP.
* If you want to overtake the dialog on you own, you must return
* the following values in CALLCONTROL-STEP:
* - "RETURN" if one line was selected. The selected line must be
*   the only record left in RECORD_TAB. The corresponding fields of
*   this line are entered into the screen.
* - "EXIT" if the values request should be aborted
* - "PRESEL" if you want to return to the selection dialog
* Standard function modules F4UT_PARAMETER_VALUE_GET and
* F4UT_PARAMETER_RESULTS_PUT may be very helpfull in this step.
  IF CALLCONTROL-STEP = 'DISP'.
*   PERFORM AUTHORITY_CHECK TABLES RECORD_TAB SHLP_TAB
*                           CHANGING SHLP CALLCONTROL.
    EXIT.
  ENDIF.

ENDFUNCTION.

Beitrag von mawi (ForumUser / 61 / 0 / 1 ) »
Hallo Nordlicht,

hast Du dabei das "RETURN" Event verbogen? Mit Debuggen und Hin und Her komme ich zu dem Schluß, daß ich zwar die Werte mit dynp_values_update ändern kann, selbige aber nicht ziehen, weil die f4-Hilfe-Abarbeitung danach das Dynpro weiter überschreibt. Oder kannst Du einen Code-Schnipsel kopieren? Mir helfen Beispiele im Verständnis immer am Weitesten...

Gruß, Manuela.

Beitrag von ewx (Top Expert / 4871 / 314 / 644 ) »
Hi Manuela,

hast du mal versucht, eine Struktur zu definieren und an die beiden relevanten Felder explizit die Suchhilfe anzuhängen?
Im Programm musst du dich dann auf die DDIC-Struktur beziehen.

Dann müssen natürlich in der Suchhilfe beide Felder als "exporting" gekennzeichnet sein.

lg,

Beitrag von cut1 (Specialist / 121 / 0 / 0 ) »
so wie ewx, das beschrieben, funktioniert`s.

Doch leider werden dann alle Felder auf dem Dynpro angezeigt. Was für meine Zwecke unschön ist.

Ich benötige die Suchhilfe um dem Anwender eine Auswahlmöglichkeit zu geben. Zur Weiterverarbeitung benötige ich jedoch 3 Werte aus der Suchhilfe,

diese bekomme ich zurückgeliefert sofern, die Felder auf dem Dynpro vorhanden sind. Dies bedeutet das diese Felder eingabereit sein müßen, was den Anwender dazu verleiten kann diese Felder in irgeneiner Form zu verändern, -> somit muß ich diese Felder auf Richtigkeit der Eingabe überprüfen. bzw der Anwender wird unötig mit Infos belastet ...


Man kann höchstens die Felder unsichbar machen -> dh die Eingabefelder werden mit "**********" dargestellt. Aber das ist sicher keine schöne Variante
thanks und gruss
cut1

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1125
Views
Prüfen von mehreren Feldern auf bestimmte Inhalte
von ABAP-hayri » 03.12.2019 11:34 • Verfasst in ABAP® für Anfänger
8
Antw.
7943
Views
Suchhilfe eine Abhängigkeit zu anderen Feldern
von Trulchen » 18.07.2014 11:51 • Verfasst in Dialogprogrammierung
2
Antw.
3004
Views
Suchhilfe eine Abhängigkeit zu anderen Feldern
von Trulchen » 21.07.2014 10:50 • Verfasst in Web-Dynpro, BSP + BHTML
8
Antw.
4346
Views
Suchhilfe im Dynpro mit mehreren Bedingungen
von phoenix687 » 23.01.2017 09:58 • Verfasst in ABAP® Core
3
Antw.
5109
Views
Suchhilfe: Zwei Dynpro-Felder aus 1 Suchhilfe beschicken
von meinrad » 03.03.2006 15:24 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1777
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2319

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1777
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2319

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 352
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 948
MS-Word als Editor
letzen Monat von tekko 1 / 4464