1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Kleiner

Beiträge von Kleiner

  • Fenster mit Vertikalen Scroll?

    • Kleiner
    • 9. Oktober 2009 um 17:15

    Bin daheim!

    Habe diene beiden spoiler getestet bei mir kann ich die codes nicht ausfüren???

    Ich zeige dir ein beispiel von mir: umso mehr ich an inputs, Buttons, label erstelle desto schlimmer flakert es beim start????

    Spoiler anzeigen
    [autoit]

    #include <ScrollBarConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiButton.au3>
    #include <StructureConstants.au3>
    #include <GUIScrollBars.au3>
    #include <Date.au3>
    Opt('GUIOnEventMode', 1)
    Global $pichinetgo = @ScriptDir & '\5-r.gif'
    $Gui = GUICreate('', 1003, 600, -1, -1)
    GUISetBkColor(0xFFFACD, $Gui)
    GUISetOnEvent(-3, '_Exit')
    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

    [/autoit] [autoit][/autoit] [autoit]

    Local $aschTage[31][12]
    $x = 176 ; +22
    $y = 90
    For $i = 0 To 30
    $aschTage[$i][0] = GUICtrlCreateInput('', $x, 90, 21, 20)
    $aschTage[$i][1] = GUICtrlCreateInput('', $x, 111, 21, 20)
    GUICtrlCreateInput('', $x, $y, 21, 20)
    GUICtrlCreateInput('', $x, $y, 21, 20)
    $x += 22
    $y += 21
    Next
    GUISetState()
    GUIRegisterMsg($WM_VSCROLL, "WM_VSCROLL")
    _GUIScrollBars_Init($Gui)
    Func _Exit()
    Exit
    EndFunc ;==>_Exit
    Local $Color = 0x000000
    While 1
    Sleep(10)
    WEnd
    Func WM_VSCROLL($hWnd, $Msg, $wParam, $lParam)
    #forceref $Msg, $wParam, $lParam
    Local $nScrollCode = BitAND($wParam, 0x0000FFFF)
    Local $index = -1, $yChar, $yPos
    Local $Min, $Max, $Page, $Pos, $TrackPos

    [/autoit] [autoit][/autoit] [autoit]

    For $x = 0 To UBound($aSB_WindowInfo) - 1
    If $aSB_WindowInfo[$x][0] = $hWnd Then
    $index = $x
    $yChar = $aSB_WindowInfo[$index][2]
    ExitLoop
    EndIf
    Next
    If $index = -1 Then Return 0

    [/autoit] [autoit][/autoit] [autoit]

    ; Ermittelt alle Informationen der vertikalen Scrollbar
    Local $tSCROLLINFO = _GUIScrollBars_GetScrollInfoEx($hWnd, $SB_VERT)
    $Min = DllStructGetData($tSCROLLINFO, "nMin")
    $Max = DllStructGetData($tSCROLLINFO, "nMax")
    $Page = DllStructGetData($tSCROLLINFO, "nPage")
    $yPos = DllStructGetData($tSCROLLINFO, "nPos")
    $TrackPos = DllStructGetData($tSCROLLINFO, "nTrackPos")
    ; Speichert die y-Position für einen späteren Vergleich
    $Pos = $yPos

    [/autoit] [autoit][/autoit] [autoit]

    ; Auswertung der vom System gemeldeten Scroll-Nachricht
    Switch $nScrollCode
    Case $SB_TOP ; Der Anwender klickte auf die "Pos1"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Min)

    [/autoit] [autoit][/autoit] [autoit]

    Case $SB_BOTTOM ; Der Anwender klickte auf die "Ende"-Taste
    DllStructSetData($tSCROLLINFO, "nPos", $Max)

    [/autoit] [autoit][/autoit] [autoit]

    Case $SB_LINEUP ; Der Anwender klickte auf den oberen Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $Pos - 1)

    [/autoit] [autoit][/autoit] [autoit]

    Case $SB_LINEDOWN ; Der Anwender klickte auf den unteren Pfeil
    DllStructSetData($tSCROLLINFO, "nPos", $Pos + 1)

    [/autoit] [autoit][/autoit] [autoit]

    Case $SB_PAGEUP ; Der Anwender klickte oberhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $Pos - $Page)

    [/autoit] [autoit][/autoit] [autoit]

    Case $SB_PAGEDOWN ; Der Anwender klickte unterhalb des Scrollbalkens
    DllStructSetData($tSCROLLINFO, "nPos", $Pos + $Page)

    [/autoit] [autoit][/autoit] [autoit]

    Case $SB_THUMBTRACK ; Der Anwender zog den Scrollbalken
    DllStructSetData($tSCROLLINFO, "nPos", $TrackPos)
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    ;~ // Setzt die neue Position und ermittelt sie danach erneut.
    ;~ // Abhängig von den Windows-Einstellungen kann es sein, dass die gelesenen Werte nicht die gleichen sind, wie die vorher gesetzten.

    [/autoit] [autoit][/autoit] [autoit]

    DllStructSetData($tSCROLLINFO, "fMask", $SIF_POS)
    _GUIScrollBars_SetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    _GUIScrollBars_GetScrollInfo($hWnd, $SB_VERT, $tSCROLLINFO)
    ; // Falls sich die y-Position der Scrollbar geändert hat, den Fensterbereich verschieben und aktualisieren
    $Pos = DllStructGetData($tSCROLLINFO, "nPos")
    If ($Pos <> $yPos) Then
    _GUIScrollBars_ScrollWindow($hWnd, 0, $yChar * ($yPos - $Pos))
    $yPos = $Pos
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    Return $GUI_RUNDEFMSG

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]


    LG Kleiner

  • Fenster mit Vertikalen Scroll?

    • Kleiner
    • 9. Oktober 2009 um 10:59

    Schnitzel den zweiten spoiler habe ich ausprobirt und da flakert meine gui (das ist die func die ich zu hause gefunden hatte)wie gesagt da flakert die gui, ich bin nicht zu hause bitte um verständnis!


    Lg Kleienr

  • Fenster mit Vertikalen Scroll?

    • Kleiner
    • 9. Oktober 2009 um 09:50

    Guten morgen schnitzel!
    Das habe ich schon nur wie kann ich dem befehl sagen das er runter srollen soll bis die daten zu ende sind, das heißt wenn ich nur den befehl verwende dann tut sich nichts und wie schon gesagt eine func habe eich gefunden aber die läst meine gui flakern. Ich bin auf der suche nach ander möglichkeiten. Ich habe schon gesehen das es themen dazu gib werde ich mir anschauen wenn ich zu hause bin kann aber sein das einer von euch eine simple ( func befehle lösung ) hat! und sie mir zu verfügung stellt!

    LG Kleiner

  • Fenster mit Vertikalen Scroll?

    • Kleiner
    • 9. Oktober 2009 um 08:44

    Hallo und guten Morgen Leibe leute!

    Kann mir vieleicht jemand ''einfache'' erklären wie man einen vertikalen scroll im fenster erstellt???
    Es geht darum stellt euch vor das viel input, label,l button in einer gui sind aber es so viele sind das sie nicht auf ein desktop passen und ich sie durch ein scroll nach unten abrufen möchte!
    Den vertikalen scroll habe ich schon nur wie kann ich ihm sagen das er nach unten und bis zum ende der daten scrollt, habe da eine funktion
    bei Exemplare gefunden aber die läst meine gui flakern und ich möchte wissen was es vieleicht für möglichkeiten gäbe!?


    LG Kleiner

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 4. Oktober 2009 um 09:21

    Guten morgen!

    Aus reiner neugier was ist denn BigInteger, ich habe den begrif in die hilfe eigegeben keine treffer gelandet werde gleich mal ihr im forum in die suche eingeben!
    Zu meiner Stunden rechnung, ich habe das mal mit Excel abgeglichen ich habe das genau so nachempfunden und bis auf 20 stellen nach dem komma , was denkt ihr ist raus gekommen das gleiche irgendwo kommen 00000000000001 her ich habe den dienstplan schon mit excel erstelt doch standart zeigt er nur zwei stellen nach dem kommar also ist es mir garnicht aufgefallen! Vieleicht gibt es ja hir ein rechner profie der diese sache erklären kann. Am ende rechnen beide richtig und das ist doch die hauptsache.
    und was ich noch für alle die solch eine rechnung vorhaben denkt strukturiert wan man sich eine zahl ausgeben läst sie rechnet und wieder ausgibt wichtig ist wo man die rechnung platziert im code durch meine drei test tage sind mir die wildestet regebnise untergekommen so habe ich auch gleich gelernt wie man die rechnungen stellt!

    Und vielen dank an AutoBert!


    LG Kleiner

    _

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 3. Oktober 2009 um 18:38

    Ich weiß nicht warum ich da nicht vorher drauf gekommen bin, manchmal sieht man den wald vor lauter bäumen nicht!!! 8|

    Die lösung ......spanung .......trommel, Tada Runden wah die antwort! :thumbup:

    Bis zum nächsten mal

    Lg kleiner

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 3. Oktober 2009 um 15:14

    Es ist alles nur addieren subtrahieren multiplizieren und dividieren!
    Du wo genau die hilfe ansetzen soll kann ich dir nicht sagne!

    ich zeig dir den nuen code :

    [autoit]

    Func _abrech()
    $stwan = GUICtrlRead($stundendiewoche)
    $stwan = StringReplace($stwan, ',', '.')
    $soaus = GUICtrlRead($soll)
    $soaus = StringReplace($soaus, ',', '.')
    $x = $stwan / 5
    $anzSicht = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'F' Then
    $anzSicht += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch1 = $anzSicht * 7.80

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht1 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'S' Then
    $anzSicht1 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch2 = $anzSicht1 * 7.80

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht2 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'Z' Then
    $anzSicht2 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch3 = $anzSicht2 * 7.80

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht3 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'F2' Then
    $anzSicht3 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch4 = $anzSicht3 * 6.24

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht4 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'S2' Then
    $anzSicht4 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch5 = $anzSicht4 * 6.24

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht5 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'FF' Then
    $anzSicht5 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch6 = $anzSicht5 * 3.90

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht6 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'SS' Then
    $anzSicht6 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch7 = $anzSicht6 * 3.90

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht7 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'Na' Then
    $anzSicht7 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    $sch8 = $anzSicht7 * 8.80

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht8 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][1]) = 'U' Then
    $anzSicht8 += 1
    EndIf
    Next
    $sch9 = $anzSicht8 * $x

    [/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $xx = $sch1 + $sch2 + $sch3 + $sch4 + $sch5 + $sch6 + $sch7 + $sch8 + $sch9;<-----suweit ich mir die rechnung ausgegeben habe rechnet er bis hir immer richtig
    $xxx = $xx - $soaus; <-- und hir sobald ich hir 21 tage abziehen lasse vom soll wert dann bekomm ich -7.80000000000001 und bei 23 tagen 7.80000000000001
    ; woher er aufeinmal 0000000000001 herbekommt keine ahnung das wurmt mich gut ich habe es anders gelöst doch es wurmt mich!

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    If StringLen($xxx) = 17 Then
    GUICtrlSetData($soller, StringLeft($xxx, 5))
    ElseIf StringLen($xxx) = 16 Then
    GUICtrlSetData($soller, StringLeft($xxx, 4))
    Else
    GUICtrlSetData($soller, StringLeft($xxx, 6))
    EndIf
    $len = StringLen($xxx)

    [/autoit][autoit][/autoit][autoit]

    GUICtrlSetData($ist, $xx)

    [/autoit][autoit][/autoit][autoit]

    MsgBox(0,'',$len)
    MsgBox(0,'',$xxx)
    EndFunc

    [/autoit]


    Ich frage mich woher die 0000000000001 kommen vieleicht stimmt die rechnung nicht vieleicht ist es so oder vieleicht die zusamenrechnungen anders aber ich komm nicht drauf!

    LG Kleiner

    Nachtrag auch wenn man $xx und $soaus richtig stellt also ist vom soll abzieht kommt das gleiche !

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 3. Oktober 2009 um 08:33

    Dein gedankengang ist super diese sache wolt ich viel später angehen nun hast du mir die rätsels lösung gegeben vielen dank!

    LG Kleiner

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 2. Oktober 2009 um 23:26

    Hallo leute!
    Ich habe die rechnungen ein wenig anders geschrieben und der fehler ist immer noch immere einen tag bevor man auf null kommt in meinen beispiel würde ein tag 7,8 stunden sein die rechnung die jetzt habe rechnet an den tag -7,80000000000001 und wenn ein tag plus dann 7,80000000000001 ich habe ihn und her überlegt vor und nach den beiden tagen wird richtig weiter gerechnet dnek ... denk ... dan kam ich auf die ide zu testen bei welchen sicheten das eigentlich ist und es ist bei jeder schicht so also 123 las ich in einer if abfrage schauen wenn ein wert 17 stellen hat dann las ich ihn bis auf 5 von links abschneiden und bei 16, 4 von links!

    Ich wohlt mal sagen das ich das richtig super finde 70 leute haben reingeschaut und schaut mal wieviel hilfe ich bekommen habe! :rofl:

    Bis zum nächsten mal

    LG Kleiner

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 2. Oktober 2009 um 13:50

    Stunden die Wochen in unserm fall 39 wird durch 5 geteilt um auf die Stunden am Tag zu kommen
    Das ist die Grundlage um die Stunden im Monat und Urlaub zu berechnen.
    In der Func _stimmo() werden die Tage des zugewiesenen Monat ermittelt gleichzeitig werden Samstag und Sontag ermittel von dem jeweiligen Monat abgezogen und mit der Teilung der stunden in der Woche in unserem Fall 7,8 multipliziert das Ergebnis ist das soll im Monat also die stunden die im Monat gearbeitet werden sollten.
    Ich habe F – S – Z = 7,8 Stunden, F2 – S2= 6,24 Stunden, FF – SS = 3,9 Stunden und Na = 8,8 Stunden zugewiesen.
    Es ist möglich den Mitarbeiter F = Frühschicht, S= Spätschicht, Z= Zwischenschicht, usw. zu geben darum die Berechnung in Func _abrech() da werden die jeweiligen Sichten also wie oft F ,S,F2 usw. vorkommen und addiert also wenn zweimal F gefunden Ergebnis 2 und das Ergebnis wird mit dem zugewiesenen wert multipliziert also 2 * 7,8 = 15,6 sollten andere schichten vergeben worden sein wie zb. FF das wird das gleiche gemacht gezählt wie oft und mit dem zugewiesenden werd multipliziert also sagen wir FF wurde zweimal gefunden also 2*3,9 = 7,8 als nächstes werden die Ergebnisse addiert und in als ( Ist ) ausgegeben Bedeutung das was zu dem Zeitung an stunden geleistet wurden die nächste Rechnung ist Sollerreicht das heißt das ich ( ist ) von ( Soll ) subtrahieren das angezeigt wird wie viele Stunden noch offen sind also noch geleistet werden sollten.
    Die nächste Rechnung ist das übertragen für den nächsten Monat das heißt das dort gerechnet wird ob man in den nächsten Monat mit plus oder minus stunden geht die Rechnung setzt sich wie folgt zusammen das die eingetragenen plus oder minus Stunden auf Sollerreich Addiert werden! Ich hoffe das, das für das Verständnis der Rechnung ausreicht!

    LG Kleiner
    _

  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 2. Oktober 2009 um 12:53

    Habe notizen im code gemacht fals noch was unklar dann werde ich das noch besser erklären!

    [autoit]

    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

    [/autoit][autoit][/autoit][autoit]

    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
    ;################################################################ in den if anweisungen wird gezählt wie oft die schichten F - S - FF - SS usw. workommen und addiert
    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

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht3 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'Na' Then
    $anzSicht3 += 1
    EndIf
    Next

    [/autoit][autoit][/autoit][autoit]

    Local $anzSicht4 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][1]) = 'U' Then
    $anzSicht4 += 1
    EndIf
    Next
    ; in der func _stimmo() werden die monats tage ohne wochenende mit die stundenwoche addiert
    $rechnung1 = GUICtrlRead($stundendiewoche)
    $rechnung1 = StringReplace($rechnung1, ',', '.')
    $xy1 = $rechnung1/5; <--------- teilt die stundenwoche input
    $x = $anzSicht * 7.8; <------------ F - S - Z * 7,8
    $xx = $anzSicht1 * 6.24; <------- F2 - S2 * 6,4
    $xxx = $anzSicht2 * 3.9; <------- FF - SS * 3,9
    $xxxx = $anzSicht3 * 8.8; <------ Na * 8,8
    $xxxxx = $anzSicht4 * $xy1; <----- Urlaub * stunden in der woche
    $xxxxxx = $x + $xx + $xxx + $xxxx + $xxxxx; <-------- werden alle addiert
    $xxxxxx = StringReplace($xxxxxx,'.', ',')
    GUICtrlSetData($ist,$xxxxxx)
    $sollaus = GUICtrlRead($soll)
    $sollaus = StringReplace($sollaus, ',', '.')
    $istaus = GUICtrlRead($ist)
    $istaus = StringReplace($istaus, ',', '.')
    $sollistrech = $istaus - $sollaus; <------- soll - ist
    $sollistrech = StringReplace($sollistrech, '.', ',')
    GUICtrlSetData($soller,$sollistrech)
    $pmaus = GUICtrlRead($plusminuszteit)
    $pmaus = StringReplace($pmaus, ',', '.')
    $solleraus = GUICtrlRead($soller)
    $solleraus = StringReplace($solleraus, ',', '.')
    $uebertragrech = $solleraus + $pmaus ; Plus Minus stunden + Sollereicht
    $uebertragrech = StringReplace($uebertragrech, '.', ',')
    GUICtrlSetData($uebertrag,$uebertragrech)
    $c = GUICtrlRead($Urlaub)
    $c = StringReplace($c,',', '.')
    $url = $c - $anzSicht4; <-------- berechnug des urlaubs
    $url = StringReplace($url,'.', ',')
    GUICtrlSetData($resrtulaub,$url)

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit]
  • Rechnung gib an einer stelle falsches regebnis aus????

    • Kleiner
    • 2. Oktober 2009 um 12:02

    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
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GuiButton.au3>
    #include <Date.au3>
    #include <Misc.au3>
    #include <array.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    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

    [/autoit] [autoit][/autoit] [autoit]

    Local $anzSicht3 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][0]) = 'Na' Then
    $anzSicht3 += 1
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Local $anzSicht4 = 0
    For $i = 0 To 30
    If GUICtrlRead($aschTage[$i][1]) = 'U' Then
    $anzSicht4 += 1
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    $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)

    [/autoit] [autoit][/autoit] [autoit]

    EndFunc

    [/autoit]

    LG Kleiner

  • Farbe von text ändern und wenn - dann auch - Rechnen

    • Kleiner
    • 28. September 2009 um 21:32

    Versteht mich nicht falsch ich will nur alles richtig verstehen!
    Darum nim ich alles auseinander und stell zu alles eine frage!
    Nicht alles ist auf anhip verstentlich und wenn ich gut arbeiten will brauche ich mehr wissen ^^

    Ich sehe die hilfe wie eine Schulstunde, und alle dir mir helfen sind meine lehrer!! :thumbup:

    LG Kleiner

  • Farbe von text ändern und wenn - dann auch - Rechnen

    • Kleiner
    • 28. September 2009 um 21:10

    Also so!


    [autoit]

    Dim $tag[31][2]
    ; |
    ; | ,----weil 0 schon als die erste zeile gesehen wird
    ; '----Also brauch ich nur 31 weil 0 bis 30 = 31 sind Richtig?
    ; |
    ; `--0,1,2,3,4,5,6,7,8,9 ,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30
    ; 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31

    [/autoit]


    Lg Kleiner

  • Farbe von text ändern und wenn - dann auch - Rechnen

    • Kleiner
    • 28. September 2009 um 20:46

    Nein nein habe es schon geendert in 31

  • Farbe von text ändern und wenn - dann auch - Rechnen

    • Kleiner
    • 28. September 2009 um 20:40

    Danke schön für deine erkärung!


    also

    [autoit]

    Dim $tag[31][2]
    ; |
    ; |
    ; '----Also brauch ich nur 31 weil 0 bis 30 = 31 sind Richtig?

    [/autoit]


    Sie ist gut verständlich!

    Werde ich mir gleich mal als notiz speichern!

    Lg Kleiner

  • Farbe von text ändern und wenn - dann auch - Rechnen

    • Kleiner
    • 28. September 2009 um 20:05

    Ich versuch gerade array zu verstehen!

    Miene fage

    [autoit][/autoit][autoit][/autoit][autoit]

    ; ,------>Tag eins
    ; |
    ; | ,----Tag eins keine ausgabe
    $tag[0][0] = GUICtrlCreateInput('01', 176, 20, 21, 20)
    $tag[0][1] = GUICtrlCreateInput('', 176, 41, 21, 20)
    ; | |
    ; '------->Tag eins erkenung der ausgabe
    ; |
    ; '--- >Tag eins ausgabe
    ;
    ;
    ; und weiter bei jedem andern tag, ist mein verständniss soweit richtig??????
    ;
    ;
    ;
    ;Meine frage!
    Dim $tag[32][2]
    ; | |________warum 2
    ; |
    ; '----warum 32

    [/autoit]
  • Mit Kommar rechnen!

    • Kleiner
    • 28. September 2009 um 15:02

    Danke schön!

    Jetzt ist meine frage beantwortet!


    Vielen dank für das beispiel Osca!


    LG Kleiner

  • Mit Kommar rechnen!

    • Kleiner
    • 28. September 2009 um 14:55

    Durch eingabe in der input sorry muß mich im ganzen besser ausdrücken!

    das heißt Komma geht nicht nur punkte und das bringt mich zu Oscars ausage das ich das komma ruch punkte ersetzen muß????


    LG Kleiner

  • Mit Kommar rechnen!

    • Kleiner
    • 28. September 2009 um 14:41

    Sorry habe mich falsch ausgedrück in meiner fuktion rechnet er nicht mit Kommar!

    Ich habe in der hilfe zu ( StringReplace ) gelesen : das Ersetzt ein oder mehrere Zeichen in einem String. das versteh ich nicht mit dem umwandeln was Osca meint!
    Könnte ihr das mal genauer erklären?????


    LG Kleiner

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™