Code: Alles auswählen.
append value #( sign = 'I' option = 'EQ' low = 'Wert1' ) to rt_value.
Code: Alles auswählen.
class-methods APPEND_RANGE
importing
!ID_SIGN type CSEQUENCE default 'I'
!ID_OPTION type CSEQUENCE default 'EQ'
!IA_LOW type ANY
!IA_HIGH type ANY optional
changing
!CT_RANGE type STANDARD TABLE .
Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
mazu
Code: Alles auswählen.
append initial line to CT_RANGE assigning <rangeline>
assign component 1 of structure <rangeline> to <fs>. <fs> = id_sign.
assign component 2 of structure <rangeline> to <fs>....
Ob es sich bei der Tabelle tatsächlich um einen Range handelt.black_adept hat geschrieben: ↑08.06.2021 15:26@a-d-t: Was hattest du denn da für Typprüfungen eingebaut? Ich hätte jetzt in der Methode etwa folgendes erwartet, aber den Aufrufer für eventuelle Prüfungen haftbar gemacht..Code: Alles auswählen.
append initial line to CT_RANGE assigning <rangeline> assign component 1 of structure <rangeline> to <fs>. <fs> = id_sign. assign component 2 of structure <rangeline> to <fs>....
Ok - ich verstehe die Intention und da du das Ganze ja zurück baust ist es eigenlich eh egal. Aber trotzdem mal so eine grundsätzliche Frage: Warum die Prüfungen überhaupt? Die Routine füllt doch erst mal nur eine Tabelle. Wenn diese sinnlos strukturiert ist ( weil ANY TABLE ) ist das halt so - dann hat der Aufrufer aber eh ein Problem, sobald er diese Tabelle irgendwo bei einer WHERE-Bedingung tatsächlich als Range einsetzen möchte und bekommt da die Fehlermeldung quasi "frei Haus" in Form eines Dumps geliefert.a-dead-trousers hat geschrieben: ↑08.06.2021 18:44Ob es sich bei der Tabelle tatsächlich um einen Range handelt.
1. Die vier Felder per Name prüfen
2. Feld drei und vier vom selben Datentyp
usw.
Sowas in der Art 😉
Ein Wort: Sanitizingblack_adept hat geschrieben: ↑09.06.2021 11:18Ok - ich verstehe die Intention und da du das Ganze ja zurück baust ist es eigenlich eh egal. Aber trotzdem mal so eine grundsätzliche Frage: Warum die Prüfungen überhaupt? Die Routine füllt doch erst mal nur eine Tabelle. Wenn diese sinnlos strukturiert ist ( weil ANY TABLE ) ist das halt so - dann hat der Aufrufer aber eh ein Problem, sobald er diese Tabelle irgendwo bei einer WHERE-Bedingung tatsächlich als Range einsetzen möchte und bekommt da die Fehlermeldung quasi "frei Haus" in Form eines Dumps geliefert.