Anfängerfrage: Fortschrittsanzeige für User?

  • Hi,


    zugegeben es ist ein wenig ne Spielerei, aber trotzdem...


    ich habe einen LS-Agenten der aufgrund einer Schleife recht viel Zeit in Anspruch nimmt, daher würde ich den Agenten gerne mit einer Art Fortschrittsanzeige versehen, damit man (zumindest ungefähr) weiß wie lang es noch dauert.
    Beim recherieren in Lektüre und DesignerHelp hab ich nichts vorgefertigtes gefunden. Daher hab ich einen eigenen Ansatz entwickelt um die Sache ein wenig in den Griff zu bekommen:


    Da die Anzahl der Schleifendurchläufe schon vorher feststeht, mußte ich nur noch einen Zähler einbauen und in jeder Schleife einmal den prozentualen Fortschritt berechen lassen, den lass ich dann mit Print in der Statuszeile (wenn man dass bei Notes so nennt) ausgeben.


    Problem hierbei ist, dass ich mir damit die ganze Statuszeile vollmülle, da es hier ja eine Art History gibt und dort nun jeder einzelne Prpzentpunkt aufgeführt ist.


    Gibts da nicht eine Möglichkeit, dass die Printnachrichten nicht in diese History eingehen?


    Oder vielleicht gibts noch ein paar schickere Möglichkeiten den Fortschritt anzuzeigen und ich habs nicht gefunden?


    Grüsse

  • Moijns!


    Nicht wesentlich besser, aber lindert das Problem: lass die Anzeige in 10er Schritten ausgeben


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Oder aber was wirklich schickes ist die Nutzung einer dll.

  • Hi,


    @ dnotes:


    das muß ich auf jeden Fall mal ausprobieren... komm wahrsch. aber erst gegen Mittag dazu...


    @ all:


    Aber gibt es nicht einen Befehl ähnlich wie
    Print "Text"
    der sich nicht in der History der Statusleiste verewigt? Mir war als hätt ich sowas schon mal in einer DB gesehen, aber fällt nicht mehr ein welche...


    Grüsse

  • Ich kenne print nur wie es die -StatusBar zumuellt. aber anstatt print schau Dir mal die Klasse Noteslog an. da kannste ja auch was reinschreiben und muellst nicht die Statusbar zu.

  • Die NotesLog Klasse bringt aber nur was wenn er was mitprotokollieren will, nicht aber wenn er dem User zeigen will wieviel er schon verarbeitet hat.
    Ist also für diesen Zweck nicht wirklich sinnvoll

  • Ich hatte mich nur auf diese Nachricht bezogen:

    Code
    Aber gibt es nicht einen Befehl ähnlich wie
    Print "Text"
    der sich nicht in der History der Statusleiste verewigt? Mir war als hätt ich sowas schon mal in einer DB gesehen, aber fällt nicht mehr ein welche...


    Fuer die Fortschrittanzeige habe ich ja was anderes hinterlassen

  • Hi dnotes,


    also ich hab dien Beispiel mal in meinen Code eingebaut. Es gibt zwar keinen Fehler, allerdings tut sich auch nichts hab mir die Sache deshalb jetzt etwas näher angesehen.
    Dabei ist sind mir aber keine Fehler aufgefallen, kannst du deinen Code nochmal durchsehen und mir sagen, ob du vielleicht ne Ahnung hast warum sich da nix tut?


    Grüsse

  • Der code funktioniert...wenn Du ihn mal testen willst, kannste ihn so in einen button einbauen.
    Achte darauf, das alles dort steht, wo es stehen sollte.
    Unter Declarations.... usw...
    Und ansonsten das Ganze geschickt in Deinen code einbauen...d.h...
    For i = 0 To 100...hier ist die 100 zu ersetzen mit anzahl der Schleifendurchlaeufe..haste ja schon
    die Schleife For j = 0 To 5000 brauchste gar nicht...nur fuer Testzwecke

  • @ dnotes


    Sorry, hab den Code jetzt einfach mal nur kopiert und ausprobiert (allerdings in einen Ageenten) - ohne Erfolg. Es kommt zwar zu keinen Fehlern, aber auch hier ist nirgends etwas zu sichten...


    Ich hab Notes R6, aber ich denk daran wirds nicht liegen...


    ... hmm, ich komm einfach ned drauf....

  • Kann doch nicht so schwer sein, etwas Code zu kopieren und an der richtigen Stelle einzufuegen :roll:


    Also, wir erstellen einen Button.
    Unter Declarations kommt der folgende Code:

    Code
    Const NPB_STATUSBAR% = 32Declare Sub NEMProgressEnd Lib "nnotesws.dll" ( Byval hwnd As Long )Declare Function NEMProgressBegin Lib "nnotesws.dll" ( Byval wFlags As Integer ) As LongDeclare Sub NEMProgressSetBarPos Lib "nnotesws.dll" ( Byval hwnd As Long, Byval dwPos AsLong)Declare Sub NEMProgressSetBarRange Lib "nnotesws.dll" ( Byval hwnd As Long, Byval dwMaxAs Long )Declare Sub NEMProgressSetText Lib "nnotesws.dll" ( Byval hwnd As Long, Byval pcszLine1As String, Byval pcszLine2 As String )


    unter dem click-event kommt dieser code:


    Vielleicht hatte ich ja was vergessen...so habe ich es gerade bei mir aus einem funktionierenden Button rauskopiert..unter Windows XP

  • Da es aussieht als ob es nochmal der gleiche Code ist, will ich es erst gar nicht versuchen... wie schon gesagt: es ist nur ne Spielerei - geht auch ohne...


    und ich denk am kopieren wirds nicht gelegenhaben...


    Trotzdem Danke dnotes


    PS: Ich bin da ja nicht so der Checker, aber vielleicht lags ja daran das ich W2k hab... keine Ahnung...




    :-?

    • Offizieller Beitrag

    also ich nutze fast den identischen Code schon eine Weile und der funktioniert. Allerdings nutze ich als Const einen anderen Namen und einen anderen Wert. Setze die Const NPB_STATUSBAR% auf 1, dann sollte es funktionieren.


    gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

    • Offizieller Beitrag

    mensch taurec bei 2222 Postings musst Du aber einen ausgeben oder ich Dir :pint: ... wirste ja wohl bis zum EntwicklerCamp schaffen ;)


    Gruß
    Dirk

  • Wenn ich NPB_STATUSBAR% auf 1 setze bekomme ich die Anzeige aber im prompt...nicht in der Statusleiste.
    Warum funktioniert das woanders nicht??

    • Offizieller Beitrag

    dnotes
    Da die Notes-API angegraben wird, könnte es an der Notes- oder eventuell noch an der BS-Version?
    Wir benutzen 6.5.1-DE + Admin + Designer. Ist auch ne Neuinstallation und kein Update.
    BS ist WinXP ohne SP2 aber allen Patches.


    Vielleicht hast Du andere SW im Einsatz?


    Was anderes fällt mir dazu spontan nicht ein.



    taurec
    3 Wochen frei, da schaffe ioch eh keine 1200 Postings :cry:


    Gruß
    Dirk