Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe ein Problem in meiner ABAP Programmierung.

Es geht um das einfügen einer neuen Zeile im Table Control bzw. das freigeben aller Tabellenzeilen.

Kann mir hier vielleicht jemand weiterhelfen oder mir sagen wo ich eine Lösung finden kann?

Es ist ziemlich wichtig, da das zu meinem Abschlussprojekt gehört und ich nur noch diese Woche Zeit dafür habe!

Danke!

Geschrieben
  Tiffy schrieb:
Es geht um das einfügen einer neuen Zeile im Table Control bzw. das freigeben aller Tabellenzeilen.

Hast du das Tablecontrol selbst erstellt oder den Wizzard genommen?

Was willst du denn beim einfügen machen? Eine Zeile auf dem Screen mehr ausgeben, also anstatt 9 Zeilen jetzt 12 Zeilen oder eine neue Zeile mit Daten einfügen?

Wenn du nur eine neue Datenzeile einfügen willst ist das nicht schwer.

Du hast eine interne Tabelle, z.B. ITAB, die alle deine Daten beinhaltet. Beim PBO sendest du die Daten mit einem Steploop aus ITAB an das Table Control.

Wenn du nun während PAI diese interne Tabelle veränderst, wird die Änderung beim nächten PBO wieder zum Table Control übertragen.

Wenn du eine neue Zeile brauchst musst du diese einfach mittels APPEND hinten dran hängen bzw. mittels INSERT einfügen.

Wenn du mit freigeben initialisieren meinst musst du dementsprechend ITAB mittels REFRESH initilisieren.

Pönk

Geschrieben
  Pönk schrieb:
Wenn du mit freigeben initialisieren meinst musst du dementsprechend ITAB mittels REFRESH initilisieren.

Nachtrag: Schau dir dazu auch den Befehl "REFRESH CONTROL ctrl FROM SCREEN scr." an.

Gruß Pönk

Geschrieben

In meinem Table Control sollen Daten erfasst werden und anschließen in einer Datenbanktabelle gespeichert werden.

Wenn man den Table Control aufruft sind nur die zeilen zur Bearbeitung freigegeben, die schon in der DB-Tabelle vorhanden sind. Neue Datensätze kann ich nicht anlegen weil die Zeilen grau hinterlegt sind.

Habe das schon mit dem Wizzard probiert. Aber dann funktioniert der Rest meiner Verarbeitung nicht mehr.

Dann habe ich versucht den Teil der Zeile hinzufügen aus dem vom Wizzard erstellten Quellcode in meinen selbst erstellten einzubauen. Aber auch daran bin ich gescheitert.

Geschrieben
  Tiffy schrieb:
In meinem Table Control sollen Daten erfasst werden und anschließen in einer Datenbanktabelle gespeichert werden.

Wenn man den Table Control aufruft sind nur die zeilen zur Bearbeitung freigegeben, die schon in der DB-Tabelle vorhanden sind. Neue Datensätze kann ich nicht anlegen weil die Zeilen grau hinterlegt sind.

Habe das schon mit dem Wizzard probiert. Aber dann funktioniert der Rest meiner Verarbeitung nicht mehr.

Dann habe ich versucht den Teil der Zeile hinzufügen aus dem vom Wizzard erstellten Quellcode in meinen selbst erstellten einzubauen. Aber auch daran bin ich gescheitert.

Du legst auf dem Dnypro oder im Status einen Button mit dem Icon "ICON_INSERT_ROW" an (dieses mit dem grünen Plus, ist auch im Dictionary).

Hinter dem Funktionscode im PAI legst du dann folgenden Code:

    WHEN 'ADD_LINE'.

      CLEAR SAVE_OK.


      CLEAR ITAB.

      APPEND ITAB.

 

Dadurch erzeugst du eine neue leere Tabellenzeile.

Eine andere Möglichkeit habe ich bisher noch nicht gefunden, da die Daten, die einfach nur so im Table Control eingetragen werden, ohne dass eine entsprechende Zeile in der ITAB vorhanden sind, nicht vom PC an den Server weitergegeben werden.

Geschrieben

Habe das getestet.

Allerdings überschreibt er später im PBO, wenn er die Daten in den Table Control schreibt, diesen Eintrag wieder.

Habe ich den Quellcode falsch aufgebaut, oder funktioniert dieser Lösungsvorschlag nicht?

Geschrieben
  Tiffy schrieb:
Wenn man den Table Control aufruft sind nur die zeilen zur Bearbeitung freigegeben, die schon in der DB-Tabelle vorhanden sind.

Entweder du machst es wie SaPaul, oder du setzt die Properties richtig.

Ich beschreib hier den Weg für den grafichen ScreenPainter, wenn du noch den alten hast weiß ich auch nicht weiter:

Also dein Dynpro im SreenPainter aufrufen.

Für jedes Feld der Tabellenzeile:

Auf das Feld doppeltklicken, dann popen die Properties auf, im unteren Teil hast du die Attribute, hier auf den Reiter Programm wechseln,

Checkbox 'nur Ausgabe' muss Blank sein,

Checkbox 'Eingabefeld' muss ein 'X' haben,

speichern und das wars.

Gruß Pönk

Geschrieben

Vielen Dank für die Hilfe.

Habe gerade noch ein wenig daran gebastelt und mit ein bissl tricksen und dem vorgeschlagenen Code von SaPaul habe ich eine neue Zeile hinzufügen können.

Vielen Dank! :o)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Weiterlesen  

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...