Что нового

Как автоматически проверять данные, вводимые в формы GUI

Grizli

Новичок
Сообщения
48
Репутация
2
Ситуация в точности как в этой теме http://autoit-script.ru/index.php?topic=1978.0, только в ней все варианты решения указаны прямо на Case $INPUT1, у меня так же как у автора той темы много полей, можно ли как-то в цикле проверять все поля пустые они или нет? как-то по номеру полей для ввода? чтобы по нажатию кнопки "Сформировать" цикл проверял все Combo и INPUT пустые они или нет.
Код:
#include <MsgBoxConstants.au3>
#include <Word.au3>
#include <WordConstants.au3>


#include <GUIConstants.au3>
#include <Word.au3>
Global $error1=1,$error2=1,$error3=1
GUICreate("My GUI combo", 700, 500)

GUICtrlCreateLabel ("Выберите необходимые данные и нажмите ""Сформировать""", 10, 10)

$word = GUICtrlCreateButton ("Сформировать", 280, 40)

GUICtrlCreateLabel ("Статус вкладчика:", 10, 40)
GUICtrlCreateCombo ("", 60,40, 200)
GUICtrlSetData (-1, "Резидент|Не резидент")

;~ GUICtrlCreateLabel ("Фамилия", 10, 70)
;~ GUICtrlCreateCombo ("item2/1", 60,70, 200)
;~ GUICtrlSetData (-1, "item2/2")
GUICtrlCreateLabel ("ФИО вкладчика:", 10, 70)
GUICtrlCreateLabel ("Фамилия:", 10, 100)
GUICtrlCreateInput ("", 100,100,120,20)
GUICtrlCreateLabel ("Имя:", 10, 130)
GUICtrlCreateInput ("", 100,130,120,20)
GUICtrlCreateLabel ("Отчество:", 10, 160)
GUICtrlCreateInput ("", 100,160,120,20)
GUICtrlCreateLabel ("Паспорт вкладчика:", 10, 210)
$serialabel=GUICtrlCreateLabel ("Серия:", 10, 230)
 $seria=GUICtrlCreateInput ("", 100,230,120,20)
$nomerlabel=GUICtrlCreateLabel ("Номер:", 10, 260)
$nomer=GUICtrlCreateInput ("", 100,260,120,20)
GUICtrlCreateLabel ("Кем выдан:", 10, 290)
GUICtrlCreateInput ("", 100,290,220,20)
GUICtrlCreateLabel ("Код подразделения:", 10, 320)
GUICtrlCreateInput ("", 140,320,120,20)


GUICtrlCreateLabel ("Дата выдачи", 10, 350)
GUICtrlCreateDate ("", 120,350,140,20)
GUICtrlCreateLabel ("Дата рождения", 350, 70)
GUICtrlCreateDate ("", 460,70,140,20)
GUICtrlCreateLabel ("Пол", 350, 100)
GUICtrlCreateCombo ("", 460,100, 200)
GUICtrlSetData (-1, "Мужской|Женский")
GUICtrlCreateLabel ("Вклад:", 350, 150)
GUICtrlCreateLabel ("Валюта", 350, 180)
GUICtrlCreateCombo ("", 460,180, 200)
GUICtrlSetData (-1, "Руб|USD|EUR")
GUICtrlCreateLabel ("Вклад", 350, 220)
$vklad=GUICtrlCreateCombo ("", 460,220, 200)
GUICtrlSetData (-1, "Выгодный|Накопительный|Оптима|Оптима+|Пенсионный")
$sroklabel=GUICtrlCreateLabel ("Срок(дней)", 350, 250)
 $srok=GUICtrlCreateInput ("", 460,250,120,20)
$procent=GUICtrlCreateLabel ("Процент по вкладу", 350, 280,200)
;~ GUICtrlCreateLabel ("Имя", 10, 310)
;~ GUICtrlCreateCombo ("item3/1", 60,310, 200)
;~ GUICtrlSetData (-1, "item3/2")

;~ GUICtrlCreateLabel ("Отчество", 10, 310)
;~ GUICtrlCreateCombo ("item3/1", 60,410, 200)
;~ GUICtrlSetData (-1, "item3/2")

GUISetState ()
 GUIRegisterMsg(0x0111,"COMMAND")

Do
    $msg = GUIGetMsg()
    if $msg = $word then
	      if $error1=0 and $error2=0 and $error3=0  then

        _WordCreate (@ScriptDir & "\Report.doc")
        WinActivate ("Report.doc - Microsoft Word")
        WinWaitActive ("Report.doc - Microsoft Word")
	 Else
		MsgBox($MB_SYSTEMMODAL, "Ошибка", "Проверьте правильность введенных данных " )


	 endif
	  endif
Until $msg = $GUI_EVENT_CLOSE


И еще подскажите, как в Combo сделать чтобы выпадающий список появлялся даже при щелчке в поле комбо, а не только по стрелочке выпадающего списка?
 
Верх