AutoIt: 3.3.8.1
Версия: 3.0
Категория: Полезная информация (Напоминалка)
Описание: Программа для тех кто работает (у кого работают), по скользящему графику 3/2.
Код/Пример:
Файл: Smena3.au3
Снимок:

История версий:
Источник: autoit-script.ru
Автор(ы): Andrey14
Версия: 3.0
Категория: Полезная информация (Напоминалка)
Описание: Программа для тех кто работает (у кого работают), по скользящему графику 3/2.
Код/Пример:
Код:
#NoTrayIcon
#include <Array.au3>
#Include <date.au3>
#include <file.au3>
Dim $ArrayS[6]=[5, "первая с", "вторая с", "третья с", "первый выходной после", "второй выходной после"]
Dim $ArrayT[4]=[3, "08:00", "00:00", "16:00"]
Dim $ArrayD[6]=[5, "2012/08/24", "2012/08/15", "2012/08/21", "2012/08/27", "2012/08/18"] ;~ Дата первой с 08:00 для смен: А; Б; В; Г; Д;
Dim $ArrayFIO[1]=[0]
Dim $data= _NowCalcDate(), $tim=" 00:00:00", $FIO="", $HOUR=int(@HOUR), $W=0
$Form1 = GUICreate("График 3/2 на: ", 615, 215, 192, 124)
$Group1 = GUICtrlCreateGroup(_DateTimeFormat ($data,1), 10, 7, 240, 175, 768)
$Group2 = GUICtrlCreateGroup( "Ф. И. О.", 263, 7, 160, 175, 768)
$MonthCal1 = GUICtrlCreateMonthCal($data, 430, 18, 170, 164)
For $x=1 to 5
$W=$W+30
Assign("Label" & $x, GUICtrlCreateLabel("", 18, $W, 225, 17,0x1000))
Assign("Combo" & $x, GUICtrlCreateCombo("", 270, $W, 145, 25, 66))
Next
GUISetState(@SW_SHOW)
If Not _FileReadToArray("smene3.data",$ArrayFIO) Then Dim $ArrayFIO[6]=[5, "Салыга А. Е.", "Забродский В. Н.", "Бушила П. Д.", "Турчак А. Г.", "Акчурин И. И."]
For $x=1 to $ArrayFIO[0]
if StringInStr ( $FIO, $ArrayFIO[$x])=0 Then $FIO=$FIO & $ArrayFIO[$x] & "|"
Next
For $x=1 to 5
GUICtrlSetData(Eval("Combo" & $x),$FIO,$ArrayFIO[$x])
Next
_Calc()
While 1
$nMsg = GUIGetMsg()
$data=guiCtrlread($MonthCal1)
Switch $nMsg
Case -3
_Combo()
Exit
Case $MonthCal1
GUICtrlSetData($Group1,_DateTimeFormat($data,1))
_Calc()
EndSwitch
WEnd
Func _Calc()
Dim $ArrayC[6]=[5,0x7B7B7B,0x7B7B7B,0x7B7B7B,0x7B7B7B,0x7B7B7B]
For $d=1 To 5
$p=0
Do
$z=_DateDiff( 'd',_DateAdd( 'd',$p,$ArrayD[$d] & $tim), $data & $tim)/15
$p=$p+1
Until IsInt($z)
If $p<=5 Then dim $t=1, $p2=$p
If $p<=10 AND $p>5 Then dim $t=2, $p2=$p-5
If $p<=15 AND $p>10 Then dim $t=3, $p2=$p-10
GUICtrlSetData(Eval("Label" & $d), "У смены " & Chr (191+$d) & " " & $ArrayS[$p2] & " " & $ArrayT[$t])
if $p2<=3 AND $t==1 AND $HOUR>=8 Then $ArrayC[$d]=0xFF0000
if $p2<=3 AND $t==1 AND $HOUR<8 Then $ArrayC[$d]=0x333399
if $p2<=3 AND $t==1 AND $HOUR>=16 Then $ArrayC[$d]=0x006600
if $p2<=3 AND $t==2 AND $HOUR<8 Then $ArrayC[$d]=0xFF0000
if $p2<=3 AND $t==2 AND $HOUR>=8 Then $ArrayC[$d]=0x006600
if $p2<=3 AND $t==2 AND $HOUR>=16 Then $ArrayC[$d]=0x333399
if $p2<=3 AND $t==3 AND $HOUR>=8 Then $ArrayC[$d]=0x333399
if $p2<=3 AND $t==3 AND $HOUR>=16 Then $ArrayC[$d]=0xFF0000
if $p2<=3 AND $t==3 AND $HOUR<8 Then $ArrayC[$d]=0x006600
Next
_ColorSet($ArrayC)
EndFunc
Func _Combo()
For $b=1 to 5
$x=_ArraySearch ($ArrayFIO,GUICtrlRead(Eval("Combo" & $b)))
if $x<>-1 Then _ArrayDelete($ArrayFIO,$x)
Next
For $b=1 to 5
_ArrayInsert ($ArrayFIO,$b,GUICtrlRead(Eval("Combo" & $b)))
Next
$ArrayFIO[0]=UBound($ArrayFIO)-1
_FileWriteFromArray("smene3.data",$ArrayFIO,1)
EndFunc
Func _ColorSet($ArrayC)
For $x=1 to 5
GUICtrlSetColor(Eval("Label" & $x),$ArrayC[$x])
GUICtrlSetColor(Eval("Combo" & $x),$ArrayC[$x])
Next
EndFunc
Файл: Smena3.au3
Снимок:
История версий:
Первая публичная
Источник: autoit-script.ru
Автор(ы): Andrey14