2016-11-14 3 views
0

Hier ist mein Szenario:Klicken Sie auf Feld mit AutoIt in einem ERP-Programm

Ich beginne AutoIT Recorder. Ich zeichne mit der Tastatur auf, da die Maus nach dem Mausklick das Skript meistens stoppt oder etwas Ungenaues macht, wenn ich danach starte.

Was ich tue ist, ich öffne eine Excel-Vorlage, die ich erstellt habe. Ich gehe dann in ein ERP-System und kopiere ein paar Spalten, die ich in Excel einfüge. Nachdem diese Spalten eingefügt wurden, werden einige weitere Spalten aus den Formeln berechnet, die ich zuvor eingefügt habe.

Das Problem ist, dass, wenn ich in das ERP-System bin ich einen bestimmten Zeitraum gewählt habe ... Sagen wir 1. November bis 31. November. Ich speichere dann das Excel und verwende die Excel-Option, um eine E-Mail an bestimmte Personen mit dem beigefügten Excel-Bericht zu senden.

Ich kompiliere das Autoit-Skript zu einer exe und ich habe einen Scheduler, der die exe startet. Das Problem ist, dass ich eine Möglichkeit brauche, das Datum in Dezember, dann Januar usw. zu ändern ... Wie mache ich das mit AutoIt? Kann es überhaupt getan werden?

Dies ist, wie das Datum wie im ERP-Programm aussieht: enter image description here

+0

Haben Sie versucht zu verwenden: Send, ControlSend, ControlCommand, ControlSetText? Außerdem können Sie verhindern, dass die Maus bewegt wird, während Ihr Skript aktiv ist - siehe BlockInput. – Xenobiologist

+0

Nein, habe ich nicht. Ich werde in diese schauen und wieder antworten, wenn ich es nicht tun kann. Danke für die Infos bis jetzt! –

Antwort

0

Sie müssen zuerst das Programm prüfen AutoIt Window Info Tool: Ziehen Sie das Zielsymbol auf die eingereichten Sie wollen auf klicken - verwenden ControlClick . Nehmen wir ein Beispiel mit Excel übernehmen, heißt es der Titel lautet: „Mappe1 - Excel“ und die ID der Schaltfläche wählte ich ist „1001“, wird das Skript sein:

ControlClick("Book1 - Excel", "", 1001) 

Wenn es keine ID ist , wird es schwieriger sein, wie Sie zu MouseClick durch Koordinaten benötigen, die für Fehler anfällig ist ...

ändern der Zeit:, um nach dem Datum Kommissionierung auf den aktuellen Monat ändern Sie etwas brauchen, wie :

Local $stringInCell = ControlGetText("ERP title", "text in ERP window (can be empty)", controlID) 
If @MON = StringLeft($stringInCell, 2) Then 
    ControlClick("ERP title", "text in ERP window (can be empty)", controlID) 
EndIf 

Wo @MON ist ein Makro, und StringLeft ist wie beginnt mit, vorausgesetzt, die ersten 2 Zeichen sind gut für Sie (z. Januar ist 01).

+0

Wie aber sollte ich AutoIT das Datum jeden Monat automatisch ändern? –

+0

Sie können das Datum mit https://www.autoitscript.com/autoit3/docs/libfunctions/_NowDate.htm abrufen und im Skript entsprechend entscheiden, auf was Sie klicken, in Ihrem Fall ist es so etwas wie 'if (line.StartsWith (monthNumber)) Dann clickCell ' – Moshisho

+0

Hat meine Antwort Ihr Problem gelöst? – Moshisho

Verwandte Themen