Nummernkreislauf generieren

  • Hallo liebe Leute,

    ich versuche folgendes Programm zu schreiben:

    Es soll ein Kreislauf von Auftragsnummern erstellt werden. Sprich Ich drücke einen Button und es werden 20 Nummern ab 200 angezeigt die ich ausdrucken kann. Wenn der nächste auf dem Button drückt sollen 20 Nummern ab 221 angezeigt werden und so weiter. Wird die Zahl 500 erreicht, soll der der Zähler wieder auf 200 gesetzt werden und von vorne anfangen.
    Wichtig ist auch, dass das Programm auch mit mehreren gleichzeitig aktiven Leuten klar kommt. Wäre doof, wenn das Programm dann abstürzt oder Nummern bei 2 Nutzern gleich anzeigt.

    Habt ihr da eine Idee?

    Gruß
    Philip

  • Hi,

    evtl kannst du da mit einer "ini" (oder txt geht auch) arbeiten, die eine darin enthaltene Zahl immer weiter hochzählt, sobald jemand auf seinen Button klickt und diese Zahl genauso vor der Ausgabe ausliest.

    Ich würds jedenfalls so versuchen :)

    Gruß,
    x0r

    Simon nörgelt, Simon nervt - aber Simon verbessert die Welt. Glaubt er.

  • Ok. Meine Idee zum Programmablauf wäre dann :
    Autoit erstellt eine ini nach dem Knopfdruck die 20 fortlaufende Nummern enthält, welche man dann ausdrucken kann . Außerdem setzt er noch in einer anderen ini Datei eine Variable +20. Wird der Knopf wieder betätigt, guckt er nach der ini Datei und liest die ggf aus. Sie enthält dann ja eine um 20 erhöhte Variable. Da rechnet er wieder 20 drauf gibt es aus und schreibt wieder +20 in die Quellini. Code enthält dann natürlich auch eine Prüfung, ob wert schon zu hoch ist und fängt ggf von vorne an. Würde das so funktionieren?

  • Hi,

    erstellt eine ini nach dem Knopfdruck die 20 fortlaufende Nummern enthält

    Du benötigst keine *.ini mit 20 fortlaufenden Nummern, du benötigst eigentlich nur eine Textdatei.
    Btw. sollen diese "Nummern" auch ausgedruckt werden, soll dafür ein spezielles Format herhalten?
    Wieso AutoIt?
    Gibt es bei euch in der Firma ggf. Excel? Damit wäre sowohl der Nummernkreis als auch der Ausdruck mit einigen Zeilen VBA-Code erledigt! Und eine extra Datei gespeichert werden müsste auch nicht...

  • Hier mit Server/Client Prinzip. IpAdresse musst du dann jeweils ändern, oder den Nutzer eintragen lassen,...

    Server:


    Client:


    Hoffe, das geht in die Richtung von dem, was du haben möchtest. Kannst es ja dementsprechend anpassen.

  • Ah jetzt klappt es super soweit. Gute Arbeit Kanashius!
    Zwei Probleme habe ich aber noch:
    - Wenn ich das Server-Script beende speichert er nicht die letzte Nummer. Also wenn ich den Servercomputer neustarten muss, fängt er wieder von vorne an. Kann man das beheben?
    - Er zeigt die Nummern schön an, aber ich brauche noch einen Button zum drucken. Ist das möglich?

    Ein letzter Punkt fällt mir auch noch ein. Ist es möglich $giveAufNr als Eingabefeld in den Client zu intigrieren, dass jeder Client selbst entscheidet, wieviel er braucht?

    2 Mal editiert, zuletzt von Kloppstock (21. April 2016 um 10:33)

  • Klar! Kannst den Aktuellen Wert beim Beenden SPeichern und beim Starten laden. SIehe: IniWrite, IniRead (oder einfach normales fileread/filewrite).
    Für die Anzahl: Nen Input dazupacken, wo ne Zahl reinkommt, diese Zahl an den Server senden, dort dann Abfragen und passend reagieren.

    Heut (späten)abend kann ich das machen. Grad nur noch 4% Akku aufm Laptop ^^

  • Fehlt nur noch ein Button zur Ausgabe in einer Doc oder zum direkten drucken :)

    Edit:
    Oh mir fällt gerade auf, dass er bei 0 anfängt, wenn die 500 erreicht sind, sollte aber eigentlich wieder bei 200 starten
    Edit2: Ah ok. Ich versuche nebenbei ja auch etwas zu lernen und das Script, zu verstehen. Da habe ich $aktAufNr=0 gesehen, geändert und es funktioniert.

    Du hast echt viel Ahnung von Autoit. Da kann ich noch viel lernen!

  • Hab Drucken hinzugefügt. Das Design kannst du in Zeile 12 ändern bei $html, sowie in Zeile 91: $str&="<li>"&$ar[$i]&"</li>". Wenn nichts gedruckt wird erhöhe $TimeToPrint (in 1000 Schritten). Solange wartet er (in ms), wenn das Druckenfenster verschwunden ist, darauf, dass der IE den Druckauftrag gibt... Hab bisher keine bessere Methode gefunden, dass er drucken kann, bevor _IEQuit kommt.

    Habs jetzt so hinbekommen, dass er das garnicht speichern muss :)

    Server wurde nicht geändert.

  • Genau so habe ich mir das vorgestellt!
    Echt super.
    Ein letzer Wunsch fällt mir noch ein.
    Kann man eine Begrenzung rein machen, dass ein bestimmter Computername oder IP nur 50 Nummern am Tag erstellen darf?
    Will verhindern, dass ein Troll 10000 Nummern erstellt.

  • Wenn das nicht 100% sein muss füg einfach am Schluss der Funktion für den Generieren Knopf folgendes ein

    AutoIt
    Sleep(1000 * 60) ;Sind 1000 mal 60 millisekunden (1minute)

    Das wird es für einen Troll echt unattraktiv machen

    -