Select-Option füllen auf Grundlage anderes Feld

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
6 Beiträge • Seite 1 von 1
6 Beiträge Seite 1 von 1

Select-Option füllen auf Grundlage anderes Feld

Beitrag von mazu (ForumUser / 59 / 1 / 0 ) »
at selection-screen : select-option füllen auf grundlage eines anderen feldes.

Ich krieg die Motten. Ich hab eine Feld A, auf dessen Eingabe ich reagieren will (wenn dort etwas eingegeben wird bzw. anderer Wert wechselt), soll die Select-Option-Tabelle von Feld B gefüllt werden automatisch

Mache ich das zum letzten Zeitpunkt AT SELECTION-SCREEN, marschiert das Programm da immer durch.
Auch wenn ich dann in der Select-Option von B wieder Felder lösche. Nicht gut.

Mache ich das zum Zeitpunkt AT SELECTION-SCREEN ON FELD A, ist es auch falsch.
Danach wird wieder der Zeitpunkt AT SELECTION-SCREEN angelaufen. Und plötzlich tauchen in meiner Select-Options-Tabelle in der Kopfzeile und Zeile 1 falsche Werte auf (und zwar die, die dann nach AT SELECTION-SCREEN ON ... auf dem Bildschirm stehen in den von/Bis-Feldern.

AT SELECTION-SCREEN ON FELD A (Korrekt)
I |BT |0070300000|0070399999 |
1 I |BT |0080400000|0080499999 |
2 I |BT |0062100000|0062199999 |
3 I |BT |0022000000|0022099999 |
4 I |BT |0036300000|0036399999 |
5 I |BT |0020300000|0020399999 |
6 I |BT |0070300000|0070399999 |

und danach kommt der Event
AT-SELCTION-SCREEN (falsch: Zeile 1 und 6 sind jetzt doppelt, die Einträge 0080400000 bis 0080499999 sind verschwunden )
I |BT |0070300000|0070399999 |
1 I |BT |0070300000|0070399999 |
2 I |BT |0062100000|0062199999 |
3 I |BT |0022000000|0022099999 |
4 I |BT |0036300000|0036399999 |
5 I |BT |0020300000|0020399999 |
6 I |BT |0070300000|0070399999 |

Egal wie ich es drehe und wende, funzt nicht. Wo liegt mein Denk-Fehler?

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


Re: Select-Option füllen auf Grundlage anderes Feld

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Tja, ohne Coding können wir nur raten...

Re: Select-Option füllen auf Grundlage anderes Feld

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Kann es sein, dass du zu einem der Zeitpunkte einen rekursiven Aufruf der IF-Schleife innerhalb des Getters der Factory-Methode machst? Da aber das Selektionsbild keine kontextfreie Grammatik ist, darfst du die Backus-Naur-Form nicht verwenden und das könnte die Ursache deines Problems sein.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
a-dead-trousers

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Select-Option füllen auf Grundlage anderes Feld

Beitrag von mazu (ForumUser / 59 / 1 / 0 ) »
Hallo,

ich habs jetzt mal eingedampft. Allerdings habt ihr ja nicht die Z-Tabelle

REPORT YDUMMY82.
TABLES: PPDIT,PA0001.
DATA: L_BEGDA LIKE SY-DATUM.
SELECTION-SCREEN: BEGIN OF BLOCK A WITH FRAME TITLE TEXT-201.
PARAMETERS: P_MONAT LIKE PC261A-FPPER.
SELECT-OPTIONS: P_GSBER FOR PPDIT-GSBER MATCHCODE OBJECT H_TGSB,
P_KOSTL FOR PPDIT-KOSTL MATCHCODE OBJECT KOST.
SELECTION-SCREEN: END OF BLOCK A.

INITIALIZATION.
P_MONAT = '012018'.


AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.
IF SCREEN-NAME = 'P_BUDGET'.
SCREEN-INVISIBLE = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.


AT SELECTION-SCREEN ON P_GSBER.
PERFORM FILL_SELECTION_TABLE_KOSTL.

AT SELECTION-SCREEN.

START-OF-SELECTION.

*&---------------------------------------------------------------------*
*& Form FILL_SELECTION_TABLE_KOSTL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILL_SELECTION_TABLE_KOSTL .

DATA: L_KOSTLAB TYPE ZKOSTLAB.
DATA: L_KOSTLBI TYPE ZKOSTLAB.
DATA: I_ZSX_Z02 LIKE TABLE OF ZSX_Z02,
W_ZSX_Z02 LIKE LINE OF I_ZSX_Z02.

CLEAR: I_ZSX_Z02. REFRESH: I_ZSX_Z02.
DESCRIBE TABLE P_GSBER.
CASE SY-TFILL.
WHEN 0.
WHEN OTHERS.
SELECT * FROM ZSX_Z02 INTO TABLE I_ZSX_Z02 WHERE GSBER IN P_GSBER AND
ZZHAUSGE NE 'X'.
CLEAR: P_KOSTL. REFRESH: P_KOSTL.
LOOP AT I_ZSX_Z02 INTO W_ZSX_Z02.
CONCATENATE '00' W_ZSX_Z02-ZZHAUSN '00000' INTO L_KOSTLAB.
CONCATENATE '00' W_ZSX_Z02-ZZHAUSN '99999' INTO L_KOSTLBI.
PERFORM FILL_SELECTION_TABLE TABLES P_KOSTL USING 'I' 'BT' L_KOSTLAB L_KOSTLBI.
ENDLOOP.
ENDCASE.

ENDFORM. " FILL_SELECTION_TABLE_KOSTL
*&---------------------------------------------------------------------*
*& Form FILL_SELECTION_TABLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_P_KOSTL text
* -->P_5454 text
* -->P_5455 text
* -->P_L_KOSTLAB text
* -->P_L_KOSTLBI text
*----------------------------------------------------------------------*
FORM FILL_SELECTION_TABLE TABLES T_RANGE
USING P_SIGN
P_OPTION
P_LOW
P_HIGH.

FIELD-SYMBOLS : <FS>.
ASSIGN COMPONENT 'SIGN' OF STRUCTURE T_RANGE TO <FS>.
<FS> = P_SIGN.
ASSIGN COMPONENT 'OPTION' OF STRUCTURE T_RANGE TO <FS>.
<FS> = P_OPTION.
ASSIGN COMPONENT 'LOW' OF STRUCTURE T_RANGE TO <FS>.
<FS> = P_LOW.
ASSIGN COMPONENT 'HIGH' OF STRUCTURE T_RANGE TO <FS>.
<FS> = P_HIGH.
APPEND T_RANGE.

ENDFORM. " FILL_SELECTION_TABLE

Re: Select-Option füllen auf Grundlage anderes Feld

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
Müsste so gehen

Code: Alles auswählen.

AT SELECTION-SCREEN.
  REFRESH P_KOSTL.
  IF P_GSBER IS NOT INITIAL.
    PERFORM FILL_SELECTION_TABLE_KOSTL.
  ENDIF.
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: Select-Option füllen auf Grundlage anderes Feld

Beitrag von mazu (ForumUser / 59 / 1 / 0 ) »
Legxis hat geschrieben:Müsste so gehen

Code: Alles auswählen.

AT SELECTION-SCREEN.
  REFRESH P_KOSTL.
  IF P_GSBER IS NOT INITIAL.
    PERFORM FILL_SELECTION_TABLE_KOSTL.
  ENDIF.
Fast....hat nur das Problem wenn du nach der Eingabe von P_GSBER in der Slect-Option P_Kostl z.b. eine Zeile wieder löscht...daann wird wieder AT SELCTION-SCREEN ausgelöst der der PERFORM durchlaufen. Hmmh???

Seite 1 von 1

Vergleichbare Themen

3
Antw.
549
Views
0 in ein Feld bei Select Option reinschreiben
von L0w-RiDer » 30.07.2019 11:18 • Verfasst in ABAP® für Anfänger
18
Antw.
3753
Views
Select-Option Feld verlängern/verbreitern
von Bright4.5 » 29.01.2019 08:27 • Verfasst in ABAP® für Anfänger
9
Antw.
4268
Views
Ausgabe des Wertes von Select-Option-Feld (Datum)
von grossmic » 02.12.2008 08:28 • Verfasst in ABAP® für Anfänger
2
Antw.
2097
Views
SELECT Wertepaar Select-Option
von myllertym » 12.08.2013 10:39 • Verfasst in ABAP® für Anfänger
3
Antw.
820
Views
SELECT * Where Datum = select-option-low
von abapfreshman » 17.09.2021 00:24 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

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.