Что нового

[Элементы GUI] Как из GUICtrlCreateDate разбить на элементы месяц год и день и в переменные

Andruxakonst

Новичок
Сообщения
21
Репутация
0
Необходимо выделить из GUICtrlCreateDate отдельно день месяц и год и поместить их в переменные для дальнейшей с ними работы.
Код:
#include <GUIConstants.au3>
#include <ComboConstants.au3>
#include <Excel.au3>
#include <Array.au3>


Dim $Day_Save, $Date_Utv, $Date_Podp, $Kartr, $Doljn, $Otdel, $FIO_v_rod, $FIO_podp,$FIO_Utverjd, $Nom_Inv, $Nom_Zav, $C1 ;объявляем переменые


#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 494, 394, 193, 125)

$MonthCal1 = GUICtrlCreateDate("", 8, 96, 191)								;дата утверждения
$MonthCal2 = GUICtrlCreateDate("", 224, 96, 220)							;дата установки 


$Combo1 = GUICtrlCreateCombo("", 8, 32, 193, 25) 									;утверждающие
$Combo2 = GUICtrlCreateCombo("", 224, 32, 220, 25)									;подписывающие
$Combo3 = GUICtrlCreateCombo("", 80, 272, 337, 25)									;картриджи

$Label1 = GUICtrlCreateLabel("ФИО Утверждающего", 40, 8, 119, 17)					;надписи
$Label2 = GUICtrlCreateLabel("ФИО Подписывающего", 256, 8, 126, 17)
$Label3 = GUICtrlCreateLabel("Дата Утверждения", 40, 64, 102, 17)
$Label4 = GUICtrlCreateLabel("Дата подписания (установки)", 248, 64, 154, 17)
$Label5 = GUICtrlCreateLabel("Картридж", 16, 272, 54, 17)

$Button1 = GUICtrlCreateButton("Сохранить", 32, 312, 155, 25, 0)					;кнопки
$Button2 = GUICtrlCreateButton("Открыть", 32, 352, 155, 25, 0)
$Button3 = GUICtrlCreateButton("Выход", 232, 312, 155, 65, 0)

GUICtrlSetData(5, "Нагайчук Т.М.|Классина Н.Б.", "Нагайчук Т.М.")					;заполняем список утверждающих

$Spis_Fio_Doljn = @ScriptDir & "\FIO_Doljn.xls" 									;присваиваем путь к файлу фио и должность
$Open_Fio_Doljn = _ExcelBookOpen($Spis_Fio_Doljn,0)									;открываем файл ФИО и Должности для помещения в массив
$MassiveFIO_Doljn = _ExcelReadSheetToArray($Open_Fio_Doljn) 						;записываем содержимое файла в массив	

For $Si = 1 to 71																	;заполняем список подписывающих данными из массива по одному с 1го по 72 значение 
   GUICtrlSetData($Combo2, $MassiveFIO_Doljn[$Si][1], $MassiveFIO_Doljn[1][1])
Next

_ExcelBookClose($Open_Fio_Doljn)													;закрыли файл ФИО и Должности 

$Spis_Kartridj = @ScriptDir & "\Kartridj.xls" 										;присваиваем путь к файлу картриджи 
$Open_Kartridj = _ExcelBookOpen($Spis_Kartridj,0)									;открыли файл картриджи для помещения в массив
$Massive_Kartridj = _ExcelReadSheetToArray($Open_Kartridj)							;записываем содержимое файла в массив

For $Sj = 1 to 15																	;заполняем список подписывающих данными из массива по одному с 1го по 72 значение 
   GUICtrlSetData($Combo3, $Massive_Kartridj[$Sj][1], $Massive_Kartridj[1][1])
Next

_ExcelBookClose($Open_Kartridj) 													;закрыли файл картриджи

GUISetState(@SW_SHOW)

_ExcelBookClose($Spis_Fio_Doljn)
#EndRegion ### END Koda GUI section ###

While 1
	$nMsg = GUIGetMsg()
	
	Switch $nMsg
	
		 Case $GUI_EVENT_CLOSE 														;нажали крестик
	
			
			Exit																	;закрываем программу
		 Case $Button3																;нажата кнопка выход
			
			
			Exit																	;закрываем программу
		 Case $Button1 																;нажата кнопка сохранить
			
			$akt = @ScriptDir & "\akt.xls" 											;присваиваем переменной путь к файлу акт 
			$Open_Akt = _ExcelBookOpen($akt,0)										;открывем акт и присваеваем переменную для него
			
			
																					;описываем переменные
			$Day_Save = "27"
			$Mons_Save = "01"
			$Date_Utv = '"'& $Day_Save & '" января 2002 г' 
			$Date_Podp ='"28" января 2013 г'
			$Kartr = "NV-Print Samsung ML-D2850B для ML2850D/2851"
			$Doljn = "Специалиста-эксперта" 																; в родительном падеже
			$Otdel = "ОНИПП"
			$FIO_v_rod = "Белоусовой О.В."
			$FIO_podp = "Белоусова О.В."
			$FIO_Utverjd = "Нагайчук Т.М."
			$Nom_Inv = "ПФ123456789"
			$Nom_Zav = "SD67876847"
			
						
																					; заполняем ячейки в таблице
																					
			_ExcelWriteCell($Open_Akt, $FIO_Utverjd, 5,7)													; Записываем ФИО утверждающего
			_ExcelWriteCell($Open_Akt, $Date_Utv, 7,7) 														; Записываем дату утверждения
			_ExcelWriteCell($Open_Akt, $Kartr, 17,3) 														; Записываем наиминование картриджа
			_ExcelFontSetProperties($Open_Akt,17,3,17,3, True, False, False) 								; Жирним
			_ExcelWriteCell($Open_Akt, $Doljn &" "& $Otdel &" "& $FIO_v_rod, 19,2) 							; Записываем должность отдел и кому ставим
			_ExcelFontSetProperties($Open_Akt,19,2,19,2, True, True, True) 									; Жирним, подчеркиваем и наклоняем
			_ExcelWriteCell($Open_Akt, $Nom_Inv, 26,4) 														; Записываем инвентарный номер
			_ExcelWriteCell($Open_Akt, $Nom_Zav , 26,9) 													; Записываем заводской номер
			_ExcelWriteCell($Open_Akt, $FIO_podp, 38,2) 													; Записываем ФИО кому ставим для подписи
			_ExcelWriteCell($Open_Akt, $Date_Podp, 41,2) 													; Записываем дату подписания
			
			
																					; сохранением
																					
			DirCreate(@ScriptDir & "\akts")																						;создаем папку akts для сохранения в нее актов 
			_ExcelBookSaveAs($Open_Akt, @ScriptDir & "\akts\" &$Mons_Save&"_"& $Day_Save & "_" & $FIO_podp & ".xls")			;сохраняем заполненный акт в папку akts
			
			_ExcelBookClose($Open_Akt) 												;закрываем файл акт
			
		 Case $Button2 																;нажата кнопка открыть
			$C = GUICtrlRead($MonthCal1)
			
			
			MsgBox(1, "выбраный ГОд", $C) 
			
			

	EndSwitch
WEnd


Прошу прощения, случайно не дописав нажал отправить

Пока пекст только в разработке, понятное дело не работет полностью.
Хотелось бы по кнопке открыть что бы отдельно появился, к примеру, год
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Andruxakonst,
Публикуйте рабочие части скриптов.
 
Автор
A

Andruxakonst

Новичок
Сообщения
21
Репутация
0
Прошу прощения, случайно отправил недописав.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Andruxakonst,
Код:
_GUICtrlDTP_GetSystemTime()


Код:
#include <GUIConstantsEx.au3>
#include <GuiDateTimePicker.au3>

Global $aMes[6] = ['год: ', 'месяц: ', 'число: ', 'час: ', 'минута: ', 'секунда: '], $s_Mes

$hGui = GUICreate('Test', 200, 200)
$nDate = GUICtrlCreateDate('', 20, 20, 160, 20)
$hDate = GUICtrlGetHandle($nDate)
$nButton = GUICtrlCreateButton('Click', 70, 80, 60, 25)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton
			$aDate = _GUICtrlDTP_GetSystemTime($hDate)
			For $i = 0 To 5
				$s_Mes &= $aMes[$i] & $aDate[$i] & @LF
			Next
			MsgBox(64, 'Info', StringTrimRight($s_Mes, 1), 0, $hGui)
			$s_Mes = ''
			$aDate = 0
	EndSwitch
WEnd
 
Верх