Suchhilfe mit 2 Rückgabewerten

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

Suchhilfe mit 2 Rückgabewerten

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
Hallole,

folgendes Problem, ich habe auf einem Dynpro 3 Felder, Materialnr, Materialtext und Posnr. Dazu habe ich eine Struktur im DDIC angegelegt, in der u.a. diese 3 Felder enthalten sind. Der Materialnummer ist eine eigene Suchhilfe zugeordnet, die einen DB-View über die Tabellen QMFE und MAKT abbildet. Die Felder sind als Exportparameter definiert und in der Struktur auch der Suchhilfe zugewiesen.

[url]http://h.imagehost.org/0498/SHilfe.jpg[/url]
[url]http://h.imagehost.org/0934/SHilfe_01.jpg[/url]

Führe ich die Suchhilfe im Programm aus, wird mir nur die Materialnummer an das Dynpro übergeben.
Teste ich die Suchhilfe über die SE11 funktioniert bis dahin alles wunderbar.

Hab das Thema schon in mehreren Einträgen im Forum gefunden, und bin der Meinung, das ich es genauso mache. Es tut aber nicht.

Für Eure Hilfe vielen Dank.
Ciao
Jens

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


Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Und die Namen der Felder befinden sich auch so auf dem Dynpro, also du hast die Struktur mit TABLES eingebunden?

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
Die Struktur für das Dynpro habe ich mit

*---> Dynpro-Fields Declarations
DATA: gs_maengelbericht TYPE zst_maengelbericht.

deklariert. im PBO wird die Struktur mit den schon vorhandenen Werten gefüllt. Die Dynprofelder beziehen sich auf gs_maengelbericht.

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von ewx (Top Expert / 4884 / 317 / 644 ) »
Die Dynprofelder müssen sich auf die DDIC-Struktur zst_maengelbericht beziehen!!

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von Prego (Specialist / 106 / 22 / 1 ) »
Hi Enno,

dann funktioniert es. Ich muß zwar das ganze Programm umschreiben, aber es tut. Gibt es da einen bestimmten Grund, warum die Struktur selbst auf dem Dynpro sein muß, und es nicht ausreicht die referierende Struktur zu nehmen.

Ciao
Jens

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von ewx (Top Expert / 4884 / 317 / 644 ) »
Habe ich auch nie verstanden, warum das so sein muss... :|

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Prego


Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von casman (Specialist / 420 / 1 / 63 ) »
Servus Jens,

genau das meinte ich mit "Namen der Felder"...dumm gefragt. :D In einem Report musst du die Sturuktur mit TABLES angeben um die Felder so aufs Dynpro zu bekommen und in einem Dialogprogramm muss dem Feldnamen die DDIC-Struktur vorangestellt werden. Das ist übrigens auch der einzige Anwendungsfall, wozu du noch die TABLES-Anweisung verwenden solltest.

Warum das so ist, weiß ich auch nicht genau...

Folgende Benutzer bedankten sich beim Autor casman für den Beitrag:
Prego


Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Hallo,

ich stand heute vor dem selben Problem, habe mir eine Struktur im Topinclude mit Data definiert und wolte diese im Dynpro mit der Suchhilfe verwenden. Ging leider nur für das 1 Feld und nicht für die anderen. Mit Tables klappt das ganze. Wieso kann ich es nicht auch mit meiner eigenen Struktur schaffen??

In Objektorientierter Abap-programmierung kann man Tables doch nicht verwenden?

Es geht mir einfach darum den 2. Datenbank zugriff zu umgehen, schon aus Prinzip. Die Suchhilfe findet mir schließlich genau mein Datensatz den ich brauche. Zur zeit kann ich aber nur durch ein anschließendes single select ODER über die Tables anweisung zu den anderen Daten kommen.

Für eure tipps schonmal vielen Dank!

VG

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von a-dead-trousers (Top Expert / 4438 / 226 / 1193 ) »
hi!

Klarstellung: Ein Dynpro/Programm ist NICHT Bestandteil von ABAP-OO.

Dass die Suchhilfen nur auf eine vermeintliche TABLES-Anweisung reagieren, liegt daran, dass für den Feldtransport auf dem Dynpro die Bezeichnungen aus der Suchhilfe selbst herangezogen werden und da sind die Felder nun mal (meistens) mit dem DDIC-Namen definiert. Es würde glaube ich auch mit einer DATA Anweisung funktionieren, wenn der Variablenname gleich der DDIC-Struktur ist. Das sollte meines Wissens außerhalb von ABAP-OO kein Problem sein.

Es gibt aber noch eine andere (aufwändigere) Methode indem man die Suchhilfe selbet mit den richtigen Parametern versorgt.
Mittels FuBa F4IF_GET_SHLP_DESCR kann man die Suchhilfe auslesen.
Im Parameter SHLP-INTERFACE kann man dann die Felder aus der jeweiligen Suchhilfe mit den entsprechenden Feldern aus dem Dynpro (VALFIELD und VALUE) verknüpfen.
Ruft man dann die Suchhilfe mit F4IF_START_VALUE_REQUEST auf, werden sowohl das Feld auf dem F4 gedrückt wurde (F4FIELD) als auch die anderen Felder von der Suchhilfe automatisch versorgt.

Über diesem Weg ist es auch möglich sich eine Suchhilfe zur Laufzeit anzuelgen oder eine bestehende nach den eigenen Vorstellungen zu modifizieren ohne eine Standardänderung durchführen zu müssen.

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.18
Basis: 7.50

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von black_adept (Top Expert / 4130 / 130 / 955 ) »
RIG hat geschrieben:In Objektorientierter Abap-programmierung kann man Tables doch nicht verwenden?
Aber du kannst einen workaround nehmen, der das selbe bewirkt:
z.b. statt

Code: Alles auswählen.

TABLES T000. 
einfach

Code: Alles auswählen.

DATA: T000 type T000.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Super, vielen Dank für diese Antwort.
In diesem Fall darf ich Tables trotz prorammierung mit Klassen verwenden?
Ich habe auch noch nicht herausgefunden warum man TABLES in Klassen nicht mehr verwenden darf. Es steht nur in jedem Buch und allen Hilfen das es verboten ist, aber der Hintergrund wird leider nicht erleutert.
Mit dem Workarround erstelle ich ja trotzdem eine iTab mit Kopfzeile. Dies scheint also nicht der Grund zu sein sondern eher das es eine DDIC-Struktur mit Namen einer Datenbanktabelle gibt - richig?

VG RIG

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von a-dead-trousers (Top Expert / 4438 / 226 / 1193 ) »
Jein.

Du hast schon recht, dass es in ABAP-OO nicht erlaubt ist Tabellen mit Kopfzeilen zu verwenden, was ja die TABLES Anweisung bewirkt.
Jedoch erstellt DATA in diesem Fall keine Tabelle mit Kopfzeile sondern nur eine Struktur.
Erst mit

Code: Alles auswählen.

DATA: T000 type standard table of T000 with default non-unique key with header line.
würde ebenfalls eine Tabelle mit Kopfzeile erstellt werden.

Anm.: Die Angaben

Code: Alles auswählen.

STANDARD TABLE
und

Code: Alles auswählen.

with default non-unique key
sind optionale Angaben. Werden jedoch eben im ABAP-OO für eine vollständige Variablendeklaration benötigt (sonst wäre es ein sog. generischer Datentyp)

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.18
Basis: 7.50

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von RIG (Specialist / 110 / 30 / 1 ) »
Vielen Dank für die Antworten, das hilft mir schon sehr weiter für das Gesamtverständnis.

Werde mein Programm gleich mal dementsprechend umbauen und testen.


VG RIG

Re: Suchhilfe mit 2 Rückgabewerten

Beitrag von black_adept (Top Expert / 4130 / 130 / 955 ) »
Das hast mich jetzt doch interessiert, warum SAP bei nicht auf TABLES-bezogenen Feldern das nicht zurückstellt bzw. ob das wirklich immer noch gilt. Der Originalbeitrag ist ja schon ein paar Jährchen alt.
Ein paar Test und ein paar Kommentare im Programmcoding, das ich im Debugger durchlaufen habe zeitigten folgende Resultate: ( Suchhilfe für WERKS - test ob MATNR mit gefüllt wird )
( ECC 6.0, SAP-Basis 700 bis Patch 21 --> leider kein EHP2 )

1.) Es funktioniert inzw. auch , wenn man sich auf programmintern definierte Variablen bezieht.

Code: Alles auswählen.

REPORT.

DATA: BEGIN OF gs_mard,
        matnr LIKE mard-matnr,
        werks LIKE mard-werks,
      END OF gs_mard.

SELECT-OPTIONS: s_matnr FOR gs_mard-matnr,
                s_werks FOR gs_mard-werks.
2.) Es funktioniert NICHT, wenn man mehrere Felder hat, die gleichartig definiert wurden ( SAP weiß dann nicht, welche Felder zueinander gehören

Code: Alles auswählen.

REPORT.

DATA: BEGIN OF gs_mard,
        matnr LIKE mard-matnr,
        werks LIKE mard-werks,
      END OF gs_mard.

DATA: BEGIN OF gs2_mard,
        matnr LIKE mard-matnr,
        werks LIKE mard-werks,
      END OF gs2_mard.

SELECT-OPTIONS: s_matnr FOR gs_mard-matnr,
                s_werks FOR gs_mard-werks.
SELECT-OPTIONS: s2_matnr FOR gs2_mard-matnr MODIF ID so2,
                s2_werks FOR gs2_mard-werks MODIF ID so2.
3.) Allerdings funktioniert es dann doch wieder mit mehreren gleichartigen Variablen, wenn diese sich in einem Block befinden und innerhalb dieses Blocks nicht fall 2.) auftritt. Man kann den Block selber sogar unsichtbar schalten - es geht nur darum ob die Variablen innerhalb eines Blocks angeordnet sind und dort eine eindeutige Zuordnung machbar ist.

Code: Alles auswählen.

REPORT.

DATA: BEGIN OF gs_mard,
        matnr LIKE mard-matnr,
        werks LIKE mard-werks,
      END OF gs_mard.

DATA: BEGIN OF gs2_mard,
        matnr LIKE mard-matnr,
        werks LIKE mard-werks,
      END OF gs2_mard.


SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE text-bl1.
SELECT-OPTIONS: s_matnr FOR gs_mard-matnr,
                s_werks FOR gs_mard-werks.
SELECTION-SCREEN END OF BLOCK bl1.
SELECTION-SCREEN BEGIN OF BLOCK bl2 WITH FRAME TITLE text-bl2.
SELECT-OPTIONS: s2_matnr FOR gs2_mard-matnr MODIF ID so2,
                s2_werks FOR gs2_mard-werks MODIF ID so2.
SELECTION-SCREEN END OF BLOCK bl2.

AT SELECTION-SCREEN OUTPUT.
  LOOP AT SCREEN.

    IF screen-group3 = 'BLK'.
      screen-invisible = 1.
    ENDIF.
    MODIFY SCREEN.

  ENDLOOP.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

3
Antw.
5471
Views
Suchhilfe: Zwei Dynpro-Felder aus 1 Suchhilfe beschicken
von meinrad » 03.03.2006 15:24 • Verfasst in Dialogprogrammierung
3
Antw.
7897
Views
ALV Suchhilfe
von sap_all » 20.09.2005 10:23 • Verfasst in ABAP® Core
4
Antw.
2528
Views
Suchhilfe
von Horst » 16.11.2005 12:54 • Verfasst in ABAP® für Anfänger
3
Antw.
2102
Views
Suchhilfe F4
von fbo » 04.12.2006 15:19 • Verfasst in ABAP® Core
4
Antw.
2060
Views
Suchhilfe
von lernen.2007 » 14.01.2008 10:05 • Verfasst in ABAP® für Anfänger

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.