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 • Seite 1 von 4 (current) Nächste
57 Beiträge Seite 1 von 4 (current) Nächste

Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Hallo Leute,

habe ein logisches Problem,

habe ein Programm welches die technischen NAmen von Objekten ausgibt und anhand eines Zählers am Ende vom Namen das als nächstes zu erstellende Objekt vorschlägt. Soweit so gut, hab es so gelöst, dass die OBjekte sortiert werden, und das Objekt mit dem höchsten Zähler zuerst erscheint. Soll nun eines vorgeschlagen werden wird hierzu +1 addiert.
Nun ist das Problem aber falls es angenommen die Objekte 01,02,03 und dan 05 gibt, die 04 also ausgelassen worden ist. So wird mir dann die 06 vorgeschlagen, ich will aber die 04 ebenso angezeig tbekommen?? Jemand eine Idee? Kann ich i-wie prüfen ob es nach der Reihenfolge 1,2,3, geschieht und bei Auslassen dann den ausgelassenen ausgebe??


Grüße Patryk

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


Re: Problem bei Zähler

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Ja, kannst Du.

Da es sich um ein logisches Problem handelt (und es ist kein schweres logisches Problem) solltest Du versuchen es selber zu loesen.
Kann ich i-wie prüfen
Was soll das heissen?
"Kann ich irgendwie pruefen" oder "kann ich "i" pruefen"?

Es wird Dir als Anfaenger nicht viel bringen, wenn wir Dir hier alle Loesungen frei Haus liefern.

Mach selber Vorschlaege, wie Du vorgehen wuerdest.
Es muss ja nicht die kuerzeste Loesung sein, die Du Vorschlaegst, nur den Weg solltest Du selber finden.
Wir helfen Dir dann auch evtl. mit Befehlen aus.

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Soll irdengwie heißen sorry, ja das Programm soll dann durchzählen und falls die Reihenfolge nicht eingehalten wird, sprich zum beispiel die 04 ausgelassen worden ist will ich dieses in der Ausgabe bekommen , aber wie ich das umsetzte weiss ich überhaupt nicht ...

Re: Problem bei Zähler

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Erster Tipp: LINES( itab ) < letzte Nr.? ---> es fehlt eine Nr., also ....

zweiter Tipp: Loop at internal Table .... (sortierung muss aufsteigend sein)
vergleiche .......

Es ist nicht klar, ob Du nur die erste fehlende Nr. sehen willst oder ALLE fehlenden Nummern.

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
alle fehlenden Nummern, aber verstehe das nicht so ganz kannst du es beispielhaft erläutern bitte? Sortierung muss allerdings absteigend bleiben, da dies in meinem Programm nötig ist?

Re: Problem bei Zähler

Beitrag von Unit605 (Expert / 975 / 37 / 93 ) »
Was verstehst Du nicht?

Warum brauchst Du alle fehlenden Nummern? Was wenn tausende fehlen? Du willst doch nur das naechste Objekt erstellen, also brauchst Du doch nur eine Nummer... die fuer das naechste Objekt.

Angenommen die Nr. 4, 7 und 12 fehlen, dann ist fuer Dich doch nur die 4 interessant.
Beim evtl. naechsten Objekt wuerde dann noch die 7 und die 12 fehlen und dann interessiert Dich nur die 7.

Warum muss die Tabelle absteigen bleiben? Gruende???
Man kann Tabellen auch wieder umsortieren oder eine "Schattentable" (Duplikat der Original Tabelle) erstellen...

Re: Problem bei Zähler

Beitrag von JHM (Top Expert / 1197 / 1 / 197 ) »
patlau hat geschrieben:aber verstehe das nicht so ganz kannst du es beispielhaft erläutern bitte? Sortierung muss allerdings absteigend bleiben
Welche Ansätze hast du denn schon probiert?

Klar könnte man dir jetzt hier eine Lösung hin pinnen, der Lerneffekt wäre aber dann sehr klein (Lerneffekt: ein spezielles Problem lösen). Besser wäre es, wenn du dir einen Lösungsweg überlegst und bei Problemen hier fragst (Lerneffekt: Wie gehe ich ein Problem an um irgendein Problem zu lösen + ein spezielles Problem lösen).

Unit605 hat dir zwei Ansätze gegeben, die du nicht verstehst.
- Hast du dir denn mal die Doku zur angebauten Funktion LINES( ) angeschaut (Auch wenn die F1-hilfe nicht geht, SAP hat die Hilfe online stehen).
- Die zweite Lösung hast du schon ausgeschlossen, wegen der Sortierung (Sortieren kann man mehrfach im Programm, ist also eigentlich kein Argument). Über diese wirst du es aber lösen müssen.


verbal ist die Lösung schnell formuliert:

Code: Alles auswählen.

gegeben.: aufsteigend nach Key sortierte interneTabelle 

Schleife über interneTabelle
  Für jeden Satz:
    Wenn kein neues Objekt:
      Wenn aktueller Zähler <> (gemerkten Zähler + 1)
        dann: erzeuge fehlenden Satz
      merke aktuellen Zähler
   
  Wenn neues Objekt:
    Wenn aktuelle Zähler <> 1
       dann erzeuge solange neue Sätze bis aktueller Zähler erreicht
    merke aktuellen Zähler  
Gruß Hendrik

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Wenn ich es aufsteigend mache, wie lese ich dann den letzten Satz aus? Habe momentan absteigend und lese den obersten also letzten Satz über Index1.
Könnte ich nicht einfach

Wenn aktueller Zähler <> (gemerkten Zähler - 1) machen?
Wie sorge ich für jeden Satz?
Und wie erzeuge ich dann den fehlenden SAtz?

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
ich bekomme es nich hin könnt ihr nicht doch ein Beispiel aufzeigen :( ?

Re: Problem bei Zähler

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
patlau hat geschrieben:Wenn ich es aufsteigend mache, wie lese ich dann den letzten Satz aus?

F1 Hilfe: DESCRIBE TABLE itab LINES lv_line. ;) letzter Eintrag is in der letzten Zeile, also nur den Index ändern.
patlau hat geschrieben:Wenn aktueller Zähler <> (gemerkten Zähler - 1) machen?
Wie sorge ich für jeden Satz?
Und wie erzeuge ich dann den fehlenden SAtz?
Was willst du denn mit gmerkter Zähler - 1 erreichen?
Versuch dir mal ein genaues Konzept zu überlegen (von grob nach fein) was du erreichen willst. und je mehr du es verfeinerst, desto eher wirst du auf Möglichkeiten stoßen die du schon kennst und benutzen kannst, selbst wenns am Anfang aufwendigere Codes werden als nötig, so lernst du zumindest die Funktionsweise. :)

OFFTOPIC: deinem Ausbilder/Betreuer in deinem Betrieb gehört mal ganz gehörig die Meinung gegeigt, das ist das allerletzte einen blutigen Anfänger derart allein zu lassen mit seinen Problemen!!
Gruß,
der Matze

Re: Problem bei Zähler

Beitrag von Dele (Specialist / 307 / 4 / 47 ) »

Code: Alles auswählen.

report.

data:    begin of wa1object,
               nummer type i,
         end   of wa1object.
data:    wa2object like wa1object.
data:    itobject like standard table of wa1object.
data:    l_tabix  like sy-tabix.

"füllen itab mit lücken
do 100 times.
   compute sy-fdpos = sy-index mod 4.
   check sy-fdpos ne 0.
   move   sy-index to wa1object-nummer.
   append wa1object to itobject.
enddo.

sort itobject descending by nummer.
"ermitteln der lücken
describe table itobject lines l_tabix.
do.
  clear: wa1object, wa2object.
  read table itobject into wa1object index l_tabix.
  if   sy-subrc eq 0.
       subtract 1 from l_tabix.
       read table itobject into wa2object index l_tabix.
  endif.
  "ausgeben der lücken
  add 1 to wa1object-nummer.
  while wa1object-nummer lt wa2object-nummer.
     write: /01 'Fehlende Nummer', wa1object-nummer.
     add 1 to wa1object-nummer.
  endwhile.
  if wa2object-nummer is initial.
     exit.
  endif.
enddo.

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
Versteh ich leider überhaupt nicht :(

@ Thanatos,habe ich mir auch gedacht dass ich Index ändern muss, aber ich weiss ja nicht welche Ziffer der letzte Tabellensatz hat was muss ich dann eintragen?

Habe ja ein Konzept:
Ich prüfe den letzten Tabellensatz zb 05.
Nun soll getestet werden ob der Stand -1 also 04 existiert. Existiert er nicht gibt es ja die Lücke und so soll dies vorgeschlagen werden..
Exisitert es muss weiter geprüft werden, ob es die 03 gibt und so weiter,

Mir fehlt allerdings die Idee wie ich es umsetze :(

Re: Problem bei Zähler

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Lies dir mal die Hilfe zu DESCRIBE TABLE itab LINES lv_lines durch. Das wird dir deine Frage beantworten.

Dein Konzept ist m.M.n. noch recht grob. wie willst du prüfen? wie würdest du mit -1 rechnen? geh weiter in die Tiefe. versuch dir das ganz rein logisch auszudenken, quasi in deiner eigenen programmiersprache :D
Aber als Tipp: obigen Code mal genauer anschauen und die unklaren Befehle in der SAP Hilfe nachlesen.. könnte dir grad richtig weiterhelfen ;)
Gruß,
der Matze

Re: Problem bei Zähler

Beitrag von patlau (Specialist / 126 / 11 / 0 ) »
das ist mir ehrlich gesagt ein bisschen zu kompliziert :cry:

Re: Problem bei Zähler

Beitrag von Thanatos82 (Expert / 699 / 32 / 123 ) »
Was ist dir denn daran zu kompliziert? du brauchst doch im Endeffekt nur diesen Codeausschnitt und da sind nun nicht wirklich viele fremde Befehle drin. :)

Code: Alles auswählen.

SORT itobject DESCENDING BY nummer.
"ermitteln der lücken
DESCRIBE TABLE itobject LINES l_tabix.
DO.
  CLEAR: wa1object, wa2object.
  READ TABLE itobject INTO wa1object INDEX l_tabix.
  IF   sy-subrc EQ 0.
       SUBTRACT 1 FROM l_tabix.
       READ TABLE itobject INTO wa2object INDEX l_tabix.
  ENDIF.
  "ausgeben der lücken
  ADD 1 TO wa1object-nummer.
  WHILE wa1object-nummer LT wa2object-nummer.
     WRITE: /01 'Fehlende Nummer', wa1object-nummer.
     ADD 1 TO wa1object-nummer.
  ENDWHILE.
  IF wa2object-nummer IS INITIAL.
     EXIT.
  ENDIF.
ENDDO.
Gruß,
der Matze

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