Hallo leute!
Ich bastel gerade an ein dienstplan mit hilfe von BugFix experimentiere ich mit array´s klapt auch ganz gut , so zu mein problem!
Wenn ich in meinen code 21 tage rechnen lasse also 21 schichttage vergebe wird nicht das richtige ergebnis angezeigt!
Also man gibt für 21 tag F = frühschicht = 7,8 stunden durch die berechnung ohne WE müßte am ende -7,8 stunden also ein tag fehlt aber bei mir kommt 999998 raus und wenn ich
23 tage vergebe, sollte ein tag also 7,8 plus sein aber als ergebniss bekomme ich 000001???
Ich habe die rechnung anders geschrieben neu geschrieben aber ich finde den fehler nicht vieleicht findet ihn einer von euch?
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <Date.au3>
#include <Misc.au3>
#include <array.au3>
Opt('GUIOnEventMode', 1)
Global $pichinetgo = @ScriptDir & '\5-r.gif'
Local $miusB, $plusB,$base = '',$plusminuszteit
$Gui = GUICreate('', 1003, 600, -1, -1)
GUISetBkColor(0xFFFACD, $Gui)
GUISetOnEvent(-3, '_Exit')
GUICtrlCreatePic($pichinetgo, 0, 0, 1000, 10)
GUICtrlCreatePic($pichinetgo, 175, 79, 690, 5)
GUICtrlCreatePic($pichinetgo, 175, 138, 682, 5)
$Menu = GUICtrlCreateMenu(' M&enü ')
GUICtrlCreateLabel('Monat :', 12, 20, 40, 20)
GUICtrlSetFont(-1, 9, 400, 2)
GUICtrlCreateLabel('Soll', 868, 65, 20, 20)
GUICtrlSetTip(-1, 'Gesamter Monats Zeitraum ')
GUICtrlCreateLabel('Ist', 920, 65, 20, 20)
GUICtrlSetTip(-1, 'Wieviel im Monat geleistet')
GUICtrlCreateLabel('Übertrag', 950, 65, 42, 20)
GUICtrlSetTip(-1, 'Plus Minus Stunden Übertragen')
GUICtrlCreateLabel('Jahr :', 17, 44, 40, 20)
GUICtrlSetFont(-1, 9, 400, 2)
$monataus = GUICtrlCreateLabel('Bitte wählen', 60, 20, 75);--------------Monats Wahl
$monatzahl = GUICtrlCreateLabel('0', -100, 0, 0, 0);-----------------------------------------Versteckt zahl für monats wahl
$miusB = GUICtrlCreateButton('-', 135, 20, 15, 15)
GUICtrlSetOnEvent(-1, 'PlusMinus')
$plusB = GUICtrlCreateButton('+', 150, 20, 15, 15)
GUICtrlSetOnEvent(-1, 'PlusMinus')
$jahr = GUICtrlCreateLabel(@YEAR, 60, 44, 40, 19);-----------------------Jahres Wahl
$minus = GUICtrlCreateButton('-', 135, 44, 15, 15)
GUICtrlSetOnEvent(-1, 'PlusMinus')
$plus = GUICtrlCreateButton('+', 150, 44, 15, 15)
GUICtrlSetOnEvent(-1, 'PlusMinus')
$Schalt = GUICtrlCreateLabel('',860,35,100,25)
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlCreateInput('', 9, 79, 120, 19);--------------------Name
GUICtrlSetTip(-1, 'Name')
GUICtrlCreateInput('', 9, 101, 120, 19);-----------------------------Stellenbeschreibung
GUICtrlSetTip(-1, 'Stellenbezeichnung')
GUICtrlCreateGroup('', 9, 117, 120, 24);--------------------------Urlaub
GUICtrlCreateLabel('R=', 108, 125, 20, 12)
GUICtrlSetTip(-1, 'Urlaub')
$plusminuszteit = GUICtrlCreateInput('', 130, 79, 45, 21);------------------------------- + - Zeiten
GUICtrlSetTip(-1, '+ / - Zeiten')
$stundendiewoche = GUICtrlCreateInput('39', 130, 101, 45, 21);-------------------------------Stunden die woche
GUICtrlSetTip(-1, 'Stunden / Wochen')
$Urlaub = GUICtrlCreateInput('', 130, 123, 45, 18);------------------------------------Urlaub
GUICtrlSetTip(-1, 'Urlaub')
;-------------------------------------------------------------------Kalender und Schichtsetzen --------------------------------------------------------------------
Local $arTage[31][2]
$x = 176 ; +22
For $i = 0 To 30
$arTage[$i][0] = GUICtrlCreateInput(StringRight('0' & $i+1, 2), $x, 20, 21, 20)
$arTage[$i][1] = GUICtrlCreateInput('', $x, 41, 21, 20)
$x += 22
Next
Local $aschTage[31][2]
$x = 176 ; +22
For $i = 0 To 30
$aschTage[$i][0] = GUICtrlCreateInput('', $x, 90, 21, 20)
$aschTage[$i][1] = GUICtrlCreateInput('', $x, 111, 21, 20)
$x += 22
Next
$soll = GUICtrlCreateInput('', 858, 79, 45, 21);--------------------Arbeitzeit SOLL
$ist = GUICtrlCreateInput('', 904, 79, 45, 21);-------------------Arbeitzeit IST
$uebertrag = GUICtrlCreateInput('', 950, 79, 45, 21);-------------------Arbeitzeit ÜBERTRAGEN
$resrtulaub = GUICtrlCreateInput('', 904, 120, 45, 21);------------------Rest URLAUB
GUICtrlCreateGroup('', 858, 116, 45, 25)
GUICtrlCreateLabel('R=', 880, 125, 20, 12)
$soller = GUICtrlCreateInput('', 950, 120, 45, 21);------------------SOLL EREICHT
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func _Exit()
Exit
EndFunc ;==>_Exit
;-------------------------------------------------------------------Kalender und Schichtsetzen --------------------------------------------------------------------
Local $Color = 0x000000
While 1
Sleep(10)
If StringLeft(GUICtrlRead($plusminuszteit), 1) = "-" Then
If $Color <> 0xff0000 Then
$Color = 0xff0000
GUICtrlSetColor($plusminuszteit, $Color)
EndIf
ElseIf $Color <> 0x000000 Then
$Color = 0x000000
GUICtrlSetColor($plusminuszteit, $Color)
EndIf
_abrech()
WEnd
Func PlusMinus()
Switch @GUI_CtrlId
Case $miusB
GUICtrlSetData($monatzahl, GUICtrlRead($monatzahl) - 1)
Case $plusB
GUICtrlSetData($monatzahl, GUICtrlRead($monatzahl) + 1)
Case $minus
GUICtrlSetData($jahr, GUICtrlRead($jahr) - 1)
Case $plus
GUICtrlSetData($jahr, GUICtrlRead($jahr) + 1)
EndSwitch
_Wochentag()
_stimmo()
EndFunc
Func _Wochentag();-----------------------------------------------------------------------------------------------------------------aktualisieren Plus
GUICtrlSetData($monataus, _getmonatwahl(GUICtrlRead($monatzahl)))
For $i = 0 To 30
GUICtrlSetData($arTage[$i][1], _getwochwntag(_DateToDayOfWeek(GUICtrlRead($jahr), GUICtrlRead($monatzahl), GUICtrlRead($arTage[$i][0]))))
Next
_Schaltjahr()
EndFunc ;==>_aktualplus
Func _Schaltjahr();--------------------------------------------Schaltjahr
If _DateIsLeapYear(GUICtrlRead($jahr)) Then
GUICtrlSetData($Schalt, 'Schaltjahr')
Else
GUICtrlSetData($Schalt, '')
EndIf
EndFunc
Func _getwochwntag($wtag);---------------------------------Wochentag wandler
Local $aWT[8] = ['','So','Mo','Di','Mi','Do','Fr','Sa']
Return $aWT[$wtag]
EndFunc ;==>_getwochwntag
Func _getmonatwahl($monatw);------------------------------Monats wandler
If $monatw = 0 Then
_GUICtrlButton_Enable($miusB, False)
ElseIf $monatw = 1 Then
_GUICtrlButton_Enable($miusB, True)
ElseIf $monatw = 13 Then
_GUICtrlButton_Enable($plusB, False)
ElseIf $monatw = 12 Then
_GUICtrlButton_Enable($plusB, True)
EndIf
Local $aMonat[14] = ['Bitte wählen','Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember','Bitte wählen']
Return $aMonat[$monatw]
EndFunc ;==>_getmonatwahl
func _stimmo()
Local $anzSaSo = 0
For $i = 0 To 30
If _DateToDayOfWeek(GUICtrlRead($jahr), GUICtrlRead($monatzahl), GUICtrlRead($arTage[$i][0])) = 1 Then
$anzSaSo += 1
ElseIf _DateToDayOfWeek(GUICtrlRead($jahr), GUICtrlRead($monatzahl), GUICtrlRead($arTage[$i][0])) = 7 Then
$anzSaSo += 1
EndIf
Next
$rechnung = GUICtrlRead($stundendiewoche)
$rechnung = StringReplace($rechnung, ',', '.')
$y = $rechnung/5
$xy = $anzSaSo * $y
$iDays = _DateDaysInMonth(GUICtrlRead($jahr),GUICtrlRead($monatzahl))
$yy = $iDays * $y - $xy
$yy = StringReplace($yy, '.', ',')
GUICtrlSetData($soll,$yy)
EndFunc
Func _abrech()
Local $anzSicht = 0
For $i = 0 To 30
If GUICtrlRead($aschTage[$i][0]) = 'F' Then
$anzSicht += 1
ElseIf GUICtrlRead($aschTage[$i][0]) = 'S' Then
$anzSicht += 1
ElseIf GUICtrlRead($aschTage[$i][0]) = 'Z' Then
$anzSicht += 1
EndIf
Next
Local $anzSicht1 = 0
For $i = 0 To 30
If GUICtrlRead($aschTage[$i][0]) = 'F2' Then
$anzSicht1 += 1
ElseIf GUICtrlRead($aschTage[$i][0]) = 'S2' Then
$anzSicht1 += 1
EndIf
Next
Local $anzSicht2 = 0
For $i = 0 To 30
If GUICtrlRead($aschTage[$i][0]) = 'FF' Then
$anzSicht2 += 1
ElseIf GUICtrlRead($aschTage[$i][0]) = 'SS' Then
$anzSicht2 += 1
EndIf
Next
Local $anzSicht3 = 0
For $i = 0 To 30
If GUICtrlRead($aschTage[$i][0]) = 'Na' Then
$anzSicht3 += 1
EndIf
Next
Local $anzSicht4 = 0
For $i = 0 To 30
If GUICtrlRead($aschTage[$i][1]) = 'U' Then
$anzSicht4 += 1
EndIf
Next
$rechnung1 = GUICtrlRead($stundendiewoche)
$rechnung1 = StringReplace($rechnung1, ',', '.')
$xy1 = $rechnung1/5
$x = $anzSicht * 7.8
$xx = $anzSicht1 * 6.24
$xxx = $anzSicht2 * 3.9
$xxxx = $anzSicht3 * 8.8
$xxxxx = $anzSicht4 * $xy1
$xxxxxx = $x + $xx + $xxx + $xxxx + $xxxxx
$xxxxxx = StringReplace($xxxxxx,'.', ',')
GUICtrlSetData($ist,$xxxxxx)
$sollaus = GUICtrlRead($soll)
$sollaus = StringReplace($sollaus, ',', '.')
$istaus = GUICtrlRead($ist)
$istaus = StringReplace($istaus, ',', '.')
$sollistrech = $istaus - $sollaus
$sollistrech = StringReplace($sollistrech, '.', ',')
GUICtrlSetData($soller,$sollistrech)
$pmaus = GUICtrlRead($plusminuszteit)
$pmaus = StringReplace($pmaus, ',', '.')
$solleraus = GUICtrlRead($soller)
$solleraus = StringReplace($solleraus, ',', '.')
$uebertragrech = $solleraus + $pmaus
$uebertragrech = StringReplace($uebertragrech, '.', ',')
GUICtrlSetData($uebertrag,$uebertragrech)
$c = GUICtrlRead($Urlaub)
$c = StringReplace($c,',', '.')
$url = $c - $anzSicht4
$url = StringReplace($url,'.', ',')
GUICtrlSetData($resrtulaub,$url)
EndFunc
[/autoit]LG Kleiner