Problem bei Zähler

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
57 Beiträge • Vorherige Seite 4 von 4 (current)
57 Beiträge Vorherige Seite 4 von 4 (current)

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Kann mir keiner helfen, bekomme es nicht hin die Variable mit in die interne Tabelle einzubauen.

Habe es auch so probiert

Code: Alles auswählen.

    objname = ty_rsdiobj-iobjnm+7(2).
APPEND objname to l_t_rsdiobj.
und dann sagt er bei der Sortierung, dass kein objname vorhanden ist :cry:

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


Re: Problem bei Zähler

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
patlau hat geschrieben:Kann mir keiner helfen
Dann poste doch mal deine vollständige DATA-Definition und erkläre kurz, wie die Daten in die ITAB kommen (sollen). Würde das Helfen sehr viel einfacher bzw. erst möglich machen (Bei diesem Thema bist du echt beratungsresistent).


Von der Idee her (und einigen Annahmen aus älteren Postings):

Code: Alles auswählen.

* zuerstmal einen Typ definieren
TYPES: BEGIN OF ty_rsdiobj,
         iobjnm TYPE rsdiobj-iobjnm,
         ....   "die ganzen anderen Felder
         objname TYPE n LENGTH 2,
       END OF ty_rsdiobj.                   

* Dann die Variablen
DATA:  l_t_rsdodso TYPE TABLE OF ty_rsdiobj,  "interne Tabelle
       l_s_rsdodso TYPE ty_rsdiobj.         "Arbeitsbereich = eine Zeile  

START-OF-SELECTION.
* itab füllen
SELECT *
  INTO TABLE l_t_rsdodso
  .....

* Sortierkriterium aufbauen
LOOP AT l_t_rsdodso INTO l_s_rsdodso.
  l_s_rsdodso-objname = l_s_rsdodso-iobjnm+7(2).
  MODIFY TABLE l_t_rsdodso FROM l_s_rsdodso.  "'Änderung in itab übernehmen
ENDLOOP.

SORT l_t_rsdodso BY objname.
BTW: objname würde ich als Feldbezeichnung nicht nehmen, eher obj_cnt oder dergleichen, damit man direkt ersehen kann, was sich genau in dem Feld befindet.
Gruß Hendrik

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Meine Tabelle wird so gefüllt, wo baue ich die Variable dann ein ?

Code: Alles auswählen.

SELECT iobjnm  objvers FROM rsdiobj
  INTO CORRESPONDING FIELDS OF TABLE l_t_rsdiobj
  WHERE  objvers = 'A'.
      
  LOOP AT l_t_rsdiobj ASSIGNING <rsdiobj_fields>.
    SELECT SINGLE txtlg FROM rsdiobjt
      INTO <rsdiobj_fields>-txtlg
      WHERE iobjnm = <rsdiobj_fields>-iobjnm.
  ENDLOOP.

Re: Problem bei Zähler

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
patlau hat geschrieben:Kann mir keiner helfen, bekomme es nicht hin die Variable mit in die interne Tabelle einzubauen.

Habe es auch so probiert

Code: Alles auswählen.

    objname = ty_rsdiobj-iobjnm+7(2).
APPEND objname to l_t_rsdiobj.
und dann sagt er bei der Sortierung, dass kein objname vorhanden ist :cry:
Bei dem Code dreht sich mir der Magen um.

ty_rsdiobj-iobjnm ein TYPE?
Was soll objname sein oder werden?

Dir kann nur noch jemand helfen, der den ganzen Thread verfolgt oder sich von vorne bis hinten durchbeisst.

Re: Problem bei Zähler

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
patlau hat geschrieben:wo baue ich die Variable dann ein ?
In die immer noch nicht gepostete DATA bzw. TYPES Anweisung!

Das Füllen dieser dann an entsprechender Stelle.

Da du sowie so über die ITAB Loopst (SELECT SINGLE), kann man das da mit rein packen (spart durch das FieldSymbol auch noch den MODIFY).
Gruß Hendrik

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Hier die Data und Types Anweisung

Code: Alles auswählen.

 TYPES: BEGIN OF ty_rsdiobj,
         iobjnm TYPE rsdiobj-iobjnm,
         objvers TYPE rsdiobj-objvers,
         txtlg TYPE rsdiobjt-txtlg,
         obj_cnt TYPE n length 2,
       END OF ty_rsdiobj,
DATA:
 BEGIN OF ty_rsdiobj,
         iobjnm TYPE rsdiobj-iobjnm,
          END OF ty_rsdiobj,
           ty_rsdiobj2 like ty_rsdiobj,

           l_s_rsdiobj TYPE ty_rsdiobj,
           l_t_rsdiobj TYPE STANDARD TABLE OF ty_rsdiobj,

           l_s_rsdiobjt TYPE ty_rsdiobjt,
           l_t_rsdiobjt TYPE STANDARD TABLE OF ty_rsdiobjt,
Und dann SELECT SINGLE obj_cnt FROM ??

Re: Problem bei Zähler

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
patlau hat geschrieben:Hier die Data und Types Anweisung
Ich sehe in deinem Posting keine DATA oder TYPES Anweisungen (also das vor BEGIN OF...). Aber gerade die sind interessant!

Ich puzzel jetzt noch einmal:

l_t_rsdiobj ist die ITAB mit den Daten die sortiert werden soll...was nicht geht und es wird eine neue Sortierspalte benötigt.
l_t_rsdiobj ist als Tabelle über den TYPE ty_rsdiobj definiert
Also muss ty_rsdiobj um eine neue Spalte erweitert werden (hast du bereits gemacht: obj_cnt).

Zu erst mußt du die Itab l_t_rsdiobj mit den Daten füllen, dann mußt du für jeden Satz das neue Feld füllen. Eine Loop-Schleife hast du schon, also kann man das da mit rein packen:

Code: Alles auswählen.

  LOOP AT l_t_rsdiobj ASSIGNING <rsdiobj_fields>.
    SELECT SINGLE txtlg FROM rsdiobjt
      INTO <rsdiobj_fields>-txtlg
      WHERE iobjnm = <rsdiobj_fields>-iobjnm.

* Sortierspalte füllen
    <rsdiobj_fields>-obj_cnt = <rsdiobj_fields>-iobjnm+7(2).
  ENDLOOP.
Gruß Hendrik

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Vielen Dank hat wunderbar geklappt. Jetzt aber noch eine Sache.. musste den Code für das iobj ein bisschen logisch abändern damit es passt mit der Augabe fehlender Objekte.
Hier der von mir umgewandelte COde.

Code: Alles auswählen.

 DESCRIBE TABLE l_t_rsdiobj LINES l_tabix.
    DO.
      CLEAR: ty_rsdiobj, ty_rsdiobj2.
      READ TABLE l_t_rsdiobj INTO ty_rsdiobj INDEX l_tabix.
      IF   sy-subrc EQ 0.
        SUBTRACT 1 FROM l_tabix.
        READ TABLE l_t_rsdiobj INTO ty_rsdiobj2 INDEX l_tabix.
      ENDIF.

      ADD 1 TO ty_rsdiobj-iobjnm+7(1).
      SHIFT ty_rsdiobj-iobjnm+7(2) RIGHT DELETING TRAILING space.
      TRANSLATE ty_rsdiobj+7(1) USING ' 0'.
      SHIFT ty_rsdiobj2-iobjnm+7(2) RIGHT DELETING TRAILING space.
      TRANSLATE ty_rsdiobj2+7(1) USING ' 0'.
      WHILE ty_rsdiobj-iobjnm+7(2) LT ty_rsdiobj2-iobjnm+7(2).
        WRITE: /01 'Ausgelassenes Objekt, welches zuerst erstellt werden muss: ', ty_rsdiobj-iobjnm.
        ADD 1 TO ty_rsdiobj-iobjnm+7(2).
        SHIFT ty_rsdiobj-iobjnm+7(2) RIGHT DELETING TRAILING space.
        TRANSLATE ty_rsdiobj+7(1) USING ' 0'.
      ENDWHILE.
      IF ty_rsdiobj2-iobjnm IS INITIAL.
        EXIT.
      ENDIF.
    ENDDO.
  ENDIF.
Im Debugger läuft es genau so ab wie ich mir das wünsche..allerdings hat er wohl ein Problem mit dem Exit, da es die Ausgabe letztendlich nicht ausführt. Habe ich da i-wie eine Endlosschleife ? Bitte um Hilfe, finde den Fehler nicht...

Re: Problem bei Zähler

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
patlau hat geschrieben:allerdings hat er wohl ein Problem mit dem Exit, da es die Ausgabe letztendlich nicht ausführt. Habe ich da i-wie eine Endlosschleife ? Bitte um Hilfe, finde den Fehler nicht...
da zietier ich mich mal selber:
JHM hat geschrieben:Zwei Hinweise:
- Dein gezeigtes Coding hat mMn eine falsche Schachtelung. Die WHILE-Schleife darf nur dann durchlaufen werden, wenn der erste READ TABLE funktioniert hat. (Wobei du dann eine Endlosschleife bekommen solltest, das gezeigte Coding scheint also nicht 1zu1 kopiert worden zu sein).
Gruß Hendrik

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
hmm habe das das letzte mal schon nicht verstanden.. kannst du es mir kurz aufzeigen bitte ?

EDIT: Habe es doch genauso wie DELE auf der ersten Seie beschrieben hat, weiss den Fehler echt nicht.

Re: Problem bei Zähler

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »

Code: Alles auswählen.

 DESCRIBE TABLE l_t_rsdiobj LINES l_tabix.
    DO.
      CLEAR: ty_rsdiobj, ty_rsdiobj2.
      READ TABLE l_t_rsdiobj INTO ty_rsdiobj INDEX l_tabix.
      IF   sy-subrc EQ 0.
        SUBTRACT 1 FROM l_tabix.
        READ TABLE l_t_rsdiobj INTO ty_rsdiobj2 INDEX l_tabix.
*      ENDIF.    "falsche Schachtelung, hier gehört kein ENDIF hin

      ADD 1 TO ty_rsdiobj-iobjnm+7(1).
      SHIFT ty_rsdiobj-iobjnm+7(2) RIGHT DELETING TRAILING space.
      TRANSLATE ty_rsdiobj+7(1) USING ' 0'.
      SHIFT ty_rsdiobj2-iobjnm+7(2) RIGHT DELETING TRAILING space.
      TRANSLATE ty_rsdiobj2+7(1) USING ' 0'.
      WHILE ty_rsdiobj-iobjnm+7(2) LT ty_rsdiobj2-iobjnm+7(2).
        WRITE: /01 'Ausgelassenes Objekt, welches zuerst erstellt werden muss: ', ty_rsdiobj-iobjnm.
        ADD 1 TO ty_rsdiobj-iobjnm+7(2).
        SHIFT ty_rsdiobj-iobjnm+7(2) RIGHT DELETING TRAILING space.
        TRANSLATE ty_rsdiobj+7(1) USING ' 0'.
      ENDWHILE.
  ENDIF. "NEU EINGEFÜGT

      IF ty_rsdiobj2-iobjnm IS INITIAL.
        EXIT.
      ENDIF.
    ENDDO.
  ENDIF.

Folgende Benutzer bedankten sich beim Autor JHM für den Beitrag:
patlau

Gruß Hendrik

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Vielen Dank für die ganze Hilfe :)

Vergleichbare Themen

3
Antw.
2012
Views
Group by Zähler
von gs3rr4 » 16.07.2015 10:42 • Verfasst in ABAP® für Anfänger
5
Antw.
1274
Views
BAPI_ACC_DOCUMENT_CHECK - Zähler Positionen
von Rabea1103 » 27.09.2019 11:50 • Verfasst in ABAP® für Anfänger
10
Antw.
4610
Views
Zähler nebem Überschrifm FB 'REUSE_ALV_GRID_DISPLAY'
von managero » 02.07.2008 16:09 • Verfasst in Dialogprogrammierung
1
Antw.
10042
Views
Zähler für das Zählen von Reportaufrufen im Portal
von kaim77 » 01.03.2012 09:49 • Verfasst in Enterprise Portal
25
Antw.
4066
Views
Ausgabe für letztes erstelltes Objekt durch Zähler
von patlau » 14.05.2013 11:33 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

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

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 11 / 842
Zeilenumbrüche ersetzen
vor 18 Stunden von ralf.wenzel 6 / 168
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2329
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1544

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.

Aktuelle Forenbeiträge

Eclipse - warum/wann verwendet ihr es [nicht]
vor einer Stunde von tar 11 / 842
Zeilenumbrüche ersetzen
vor 18 Stunden von ralf.wenzel 6 / 168
Dialog-Container mit Toolbar/Status
Gestern von tar gelöst 19 / 2329
SAP Trial Version für SAP Fiori
vor 2 Tagen von tar 2 / 1544

Unbeantwortete Forenbeiträge

Daten an Tabelle binden
vor 2 Tagen von Bright4.5 1 / 608
aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2237
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8829