2016-11-14 3 views
0

Это мой сценарий:Щелчок по полю с AutoIt в программе ERP

Я начинаю записывать AutoIT. Я записываю с помощью клавиатуры, так как использование мыши заставляет скрипт останавливаться большую часть времени или что-то неточное при запуске после этого.

Что я делаю, я открываю шаблон Excel, который я создал. Затем я перехожу в систему ERP и копирую несколько столбцов, которые я вставляю в Excel. После того, как эти столбцы вставлены, еще несколько столбцов вычисляются по формулам, которые я ранее вставлял.

Проблема в том, что когда я вхожу в систему ERP, я выбрал определенный период времени ... Скажем, с 1 ноября по 31 ноября. Затем я сохраняю excel и использую параметр Excel, чтобы отправить электронное письмо конкретным людям с прилагаемым отчетом Excel.

Я скомпилирую сценарий autoit в exe, и у меня есть планировщик, который запускает exe. Проблема в том, что мне нужен способ изменить дату на декабрь, затем на январь и т. Д. Как это сделать с помощью AutoIt? Можно ли это сделать вообще?

Это как дата выглядит в программе ERP: enter image description here

+0

Вы пытались использовать: Send, ControlSend, ControlCommand, ControlSetText? Кроме того, вы можете остановить перемещение мыши, пока ваш скрипт активен - см. BlockInput. – Xenobiologist

+0

Нет, у меня нет. Я посмотрю на них и снова отвечу, если не смогу этого сделать. Спасибо за информацию до сих пор! –

ответ

0

Вы должны сначала проверить программу с помощью AutoIt Window Info инструмента: перетащить иконку цели в поданных вы хотите, чтобы нажать на - использовать ControlClick , Давайте возьмем пример с Excel, он говорит, что название: «Книга1 - Excel» и идентификатор кнопки я выбрал это «1001», то сценарий будет:

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

Если нет каких-либо ID , это будет сложнее, как вам нужно MouseClick по координатам, которые склонный к ошибкам ...

Изменение времени: для того, чтобы изменить дату выбора в соответствии с текущим месяцем вам нужно что-то вроде :

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 

Где: @MON - макрос, а StringLeft - это как начинается с того, что первые 2 символа хороши для вас (например, Январь - 01).

+0

Однако как я могу автоматически менять дату AutoIT каждый месяц? –

+0

Вы можете получить дату с помощью https://www.autoitscript.com/autoit3/docs/libfunctions/_NowDate.htm и соответственно решить в сценарии, что нажать, в вашем случае это что-то вроде: if (line.StartsWith (monthNumber)) Затем нажмитеCell ' – Moshisho

+0

Помог ли мой ответ решить вашу проблему? – Moshisho

 Смежные вопросы

  • Нет связанных вопросов^_^