Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe ein Problem. Ich soll in der Statusleiste während das Programm läuft ausgeben wieviele Sätze verarbeitet wurden (aber nur alle 1000) damit ich nicht in einen Laufzeitfehler rassele da es sich hier um eine unglaubliche Datenmasse handelt. Hat da jemand eine schnelle Idee oder gibt es dafür einen Baustein?

Geschrieben

DATA: v_string TYPE string.

DO 100 TIMES.

v_string = sy-index.

CONCATENATE v_string ' records selected ' INTO v_string

SEPARATED BY space.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

percentage = sy-index

text = v_string.

ENDDO.

'SAPGUI_PROGRESS_INDICATOR' malt dir unten ne uhr hin, die dann auch anzeigt wie weit er ist wenn du also weißt wie viele datensätze du hast (z.b. per describe TABLE lines VARIABLE_LINES) dann kannst du den genauen status anzeigen lassen...

oder aber du machst:

if zähler = zähler2.

MESSAGE 'text' TYPE 'S'.

add 1000 to zähler2.

endif.

der zähler ist in dem fall deiner counter der tabelle... in nem loop sy-index z.b.

Geschrieben
An welche Stelle im Coding muss ich das denn einbauen?

am besten da wo es sinn macht, also nicht NACH einem loop sondern darin ;)

Vor allem kommt bei mir in der Verarbeitung gar keine Uhr?!

Haste die Änderungen denn schon eingebaut?

Geschrieben

So ist jetzt drin nur das 100 Time Iritiert mich. So wie cih das verstanden habe macht er das 100 mal. Was ist aber wenn ich mehr oder weniger Datensätze habe. Ja er tut es, jetzt ist auch alles eingebaut. Hat auf jedenfall schonmal den gewünschten effekt. Nur halt soll da genau ausgegeben werden wieviele Datensätze das jetzt sind und am besten nur jeder 100 oder tausendste also 100 ds 200 ds 300 ds usw hochzählt bis zur tatsächlichen ds anzahl

Geschrieben

du brauchst dieses DO nicht drumherum, das ist doch nur ein beispiel

bau dir selber eine zählervariable ein, die machst du am anfang auf 1000 und wenn dein sy-index bei 1000 ist schreibst du ne meldung und setzt deine zählervariable dann +1000 (also beim 2. mal 2000, beim 3. mal sinds dann schon 300,...)

Geschrieben

Ich bin dafür heute irgendwie eindeutig zu doof. Also Hier mein Coding

DO 100 TIMES.

H_count = sy-index.

CONCATENATE h_count ' Datensätze selektiert ' INTO h_count

SEPARATED BY space.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

percentage = sy-index

text = h_count.

ENDDO.

Ich weiß ganz toll hier raus kopiert.

So in der Statusleiste zählt er jetzt hoch nur ich kapier das nicht wie ich das hinkriege das er nur alle 1000 angibt. Vor allem darf diese Anzeige nicht die Programmverarbeitung beeinträchtigen.

Also :

Im Hg arbeite er dann an dem Programm

1000 Ds verarbeitet

2000 DS Verar

3000 DS Verar

4000 DS verar

dann kommen die Selektiereten Daten auch wenn es 4256 DS sind. Haste da nicht nen paar Goldkörnchen die auch ich verstehe?

Geschrieben

wie verarbeitest du denn DEINE Daten?

In einem Loop oder Do oder Select - oder gar nichts von dem?

wenn doch...

mach folgendes:

- erstell eine neue variable, die zum anfang auf 1000 steht.

- schreib folgendes ins coding:

if sy-index = DEINE_NEUE_VARIABLE.
data: lv_string type string.
lv_string = sy-index.
MESSAGE lv_string TYPE 'S'.
add 1000 to DEINE_NEUE_VARIABLE. "er soll es erst beim nächsten tausender nochmal machen
endif.[/PHP]

und dann sollte das gehen...

Geschrieben

Die Daten werden in einem Start-Of--selection sprich in einem Loop verarbeitet. Sie werden durch verschiedenen Tabellen udn Hilfsfelder hin und her geschoben bis alles passt und dann ausgegeben. Falls nötig schicke ich dir das verarbeitungs coding gerne per pn. Weil irgendwie komme ich auf diese art wie die hier proggen gar nciht klar. Ich habe das Programm auch nicht geschrieben, ich soll es nur um die Statusleisten ausgabe erweitern.

Die status ausgabe habe ich direkt an den Anfang geschrieben.

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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.

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...