Anfrage

Liebe/-r Experte/-in,

Liebe/-r Experte/-in,

ich stehe vor einer Aufgabe, die zu lösen gilt, und zwar
habe ich eine Tabelle mit dem Namen ANLA. Ich muss 3 Felder dieser Tabelle nach Vorgabe aus den Eingabeparametern updaten, und zwar die Felder ANLA-ANLKL, ANLA-KTOGR, ANLA-FELEI. Mein bisheriger Programmcode(wo man auch die einzelnen Parameter sehen kann) sieht so aus:

TABLES ANLA.

PARAMETERS: p_bukrs TYPE ANLA-BUKRS DEFAULT ‚0142‘ OBLIGATORY,
p_anlnr TYPE ANLA-ANLN1 DEFAULT ‚285‘ OBLIGATORY,
p_anlkl TYPE ANLA-ANLKL DEFAULT ‚6596‘ OBLIGATORY,
p_ktogr TYPE ANLA-KTOGR DEFAULT ‚6596‘ OBLIGATORY,
p_felei TYPE ANLA-FELEI DEFAULT ‚1700‘ OBLIGATORY.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME title text-T99.

PARAMETERS: p_test RADIOBUTTON GROUP rad1 DEFAULT ‚X‘,
p_echt RADIOBUTTON GROUP rad1.

SELECTION-SCREEN END OF BLOCK b1.

SELECT * FROM ANLA.
WRITE:/ ANLA-ANLKL,
ANLA-KTOGR,
ANLA-FELEi.
ENDSELECT.

Per Radiobutton soll man zwischen einem Testlauf und einem Echtlauf selektieren können. Auch hier weiß ich leider nicht, wie das gehen soll.
Die Eingabeparameter müssten soweit stimmen, jedoch weiß ich nicht wie das Programm weiter aufgebaut ist bzw. wie ich weitergehen soll, ich bin ein absoluter Neuling und ich hoffe Sie können mir weiterhelfen.
Ich bedanke mich herzlichst im Voraus und verbleibe

mit freundlichen Grüßen.

Hallo …

einiges am Stil ist hier zu verbessern.
zuerst zur Selektion:
soll nach bestimtem Parametern selektiert werden?
Beispiel: (mit deinen Selektions-Parametern)

PARAMETERS: p_bukrs TYPE ANLA-BUKRS DEFAULT ‚0142‘ OBLIGATORY,
p_anlnr TYPE ANLA-ANLN1 DEFAULT ‚285‘ OBLIGATORY,
p_anlkl TYPE ANLA-ANLKL DEFAULT ‚6596‘ OBLIGATORY,
p_ktogr TYPE ANLA-KTOGR DEFAULT ‚6596‘ OBLIGATORY,
p_felei TYPE ANLA-FELEI DEFAULT ‚1700‘ OBLIGATORY.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME title text-T99.

PARAMETERS: p_test RADIOBUTTON GROUP rad1 DEFAULT ‚X‘,
p_echt RADIOBUTTON GROUP rad1.

SELECTION-SCREEN END OF BLOCK b1.

data lt_anla type table of anla. "Programminterne Tabelle
"definieren

field-symbols type anla. "Arbeitsbereich (Zeiger)

* Selektion mit nur einem Zugriff auf die Datenbank
* ist eleganter und performanter
select * from anla
into lt_anla "in interne Tabelle
where bukrs = p_bukrs
and anlnr = p_anlnr. "und so weiter

loop at lt_anla assigning .
* hier werden die von der DB gelesenen Werte
* mit den in den im Selektionsbild eingegeben Werten
* überschrieben
-ANLKL = p_anlkl.
-KTOGR = p_ktogr.
-FELEI = p_felei.
* Ausgabe in Liste auf Bildschirm
write: / lt_anla-ankl,
lt_anla-ktogr."und so weiter

endloop."AT LT_ANLA
* Exhtlauf - update
if p_echt = ‚X‘.
update anla from table lt_anla.
elseif p_test = ‚X‘.
* Testlauf - kein Update
else.
* gibt es nicht
endif.

hallo,
du hast da normalerweise mehrere möglichkeiten.

schau mal in der hilfe beim sql-befehl update nach.

tschuess