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. gmmg

Beiträge von gmmg

  • MailBody in einer Schleife aus Array zusammenfügen

    • gmmg
    • 31. März 2023 um 17:30

    Schnuffel: Das sieht ja gut aus. Ich teste das aber erst am Montag :)

    Vielen Dank für dein Hilfe

    Gruß gmmg

  • MailBody in einer Schleife aus Array zusammenfügen

    • gmmg
    • 31. März 2023 um 15:36

    Hallo Zusammen,

    ich möchte gern mit den Daten aus einem Array einen Mailbody dynamisch erzeugen.

    Beispiel:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Mein Statischer Mailbody sieht so aus bzw. habe ich in meinem Fall 5 davon, weil sich ja die Anzahl im Array verändern kann.

    Wie kann ich das denn in einer Schleife am Besten zusammenbauen, dass immer die Festen Texte " gesendet am: usw. immer vorkommen + die dDaten aus dem Array ?

    AutoIt
    ;-------------------mail body------------------
    $date = _Now()
    
    $sp = "-----------------------------------------"
    
    
    $mbody = "gesendet am: " & $date & @CRLF & $sp & @CRLF & "von: " & $user & " " & $mail_txt & @CRLF & $sp & @CRLF & "Client: " & _
    
    $computer & @CRLF & $sp & @CRLF & "System: " & $DataArray[0][0] & @CRLF & $sp & @CRLF & "Fehlerauswahl: " & $DataArray[1][0] & @CRLF & _
    
    $sp & @CRLF & $DataArray[2][0] & ": " & $DataArray[2][1] & @CRLF & $sp & @CRLF & $DataArray[3][0] & ": " & $DataArray[3][1] & @CRLF & $sp & _
    
    @CRLF & $DataArray[4][0] & ": " & $DataArray[4][1] & @CRLF & $sp & @CRLF & $DataArray[5][0] & ": " & $DataArray[5][1]
    Alles anzeigen

    Hat da einer eine Idee?

    Gruß gmmg

    Dateien

    pasted-from-clipboard.png 15,54 kB – 0 Downloads
  • Screenshot - Bereich per Maus auswählen

    • gmmg
    • 29. März 2023 um 08:12

    Hallo Zusammen,

    danke für die Zahlreichen Infos.

    UEZ: dein Skript startet bei mir mit der Autoit Version v3.3.16.1 aktuell nicht. Da sind bestimmte Variablen nicht definiert oder es fehlt ein Include.


    Gruß gmmg

  • Screenshot - Bereich per Maus auswählen

    • gmmg
    • 28. März 2023 um 15:22

    Andy,

    Moombas,

    Ich benötige die Screenshot Erweiterung in unserem in AutoIT gescripteten IT-Helpdesk Tool. Da gibt es zwar schon die Screenshotfunktion, aber da wird nur der komplette Bildschirm mitgeschnitten. Und die User haben oft die falschen Fenster im Vordergrund. :)

    Den Dateinamen passe ich noch an, ebventuell auch mit der Möglichkeit mehrere Dateien zu erzeugen. Aus den Auswahlinfos des Tools + Screenshot wird dann im Endeffekt eine Email erzeugt und per SMTP verschickt.

    Die IT-Helpdesk GUI bzw. die Icons | Label | Button | Input /Edit Felder + entsprechende Texte, werden dabei aktuell dynamisch mit Daten aus einer Access DB erzeugt.

    Gruß gmmg

  • Screenshot - Bereich per Maus auswählen

    • gmmg
    • 28. März 2023 um 14:31

    Hallo Zusammen,

    für mein Thema "Button / Icons aus DB bzw. Array erstellen", bei dem ich unser IT Helpdesk Tool auf den neuen Stand bringe, benötige ich noch ein angepasstes "Screenshot Tool", bei dem der Screenshot per Mausauswahl (markierter Bereich) gespeichert wird. Im engl. Forum bin ich da auch fündig geworden und habe mir folgenden Quellcode angepasst.

    Meine Frage dazu , passt das so oder kann man hier optimieren?

    AutoIt
    #include <GuiConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Include <ScreenCapture.au3>
    #Include <Misc.au3>
    
    Global $iX1, $iY1, $iX2, $iY2, $aPos, $sMsg, $jpg_Path
    
    ;--- Create GUI ---
    $hMain_GUI = GUICreate("Screenshot-Tool", 240, 50)
    
    $hRect_Button   = GUICtrlCreateButton("NEU",  10, 10, 80, 25)
    
    GUISetState(@SW_SHOW)
    
    While 1
    
        $iMsg = GUIGetMsg()
        Switch $iMsg
    
            Case $GUI_EVENT_CLOSE
                 Exit
            Case $hRect_Button
    
                $jpg_Path = @ScriptDir & "\Rect.jpg"
                If FileExists($jpg_Path) Then FileDelete($jpg_Path)
    
                GUISetState(@SW_HIDE, $hMain_GUI)
                Mark_Rect()
                ; Capture selected area
                _ScreenCapture_Capture($jpg_Path, $iX1, $iY1, $iX2, $iY2, False)
                GUISetState(@SW_SHOW, $hMain_GUI)
    
                _Display_image()  ; Display image
    
        EndSwitch
    
    WEnd
    
    Func _Display_image()
    
        ; Display image
        $hscreen_GUI = GUICreate("Image Vorschau ...", $iX2 - $iX1 + 1, $iY2 - $iY1 + 1, 100, 100)
        $hPic = GUICtrlCreatePic(@ScriptDir & "\Rect.jpg", 0, 0, $iX2 - $iX1 + 1, $iY2 - $iY1 + 1)
        GUISetState(@SW_SHOW)
        While 1
            $iMsg = GUIGetMsg()
            Switch $iMsg
                Case $GUI_EVENT_CLOSE
                    GUIDelete($hscreen_GUI)
                    ExitLoop
            EndSwitch
        WEnd
    
    EndFunc
    
    Func Mark_Rect()
    
        Local $aMouse_Pos, $hMask, $hMaster_Mask, $iTemp
    
        Local $UserDLL = DllOpen("user32.dll")
    
        ; Create transparent GUI with Cross cursor
        $hCross_GUI = GUICreate("Screenshot", @DesktopWidth, @DesktopHeight - 20, 0, 0, $WS_POPUP, $WS_EX_TOPMOST)
        WinSetTrans($hCross_GUI, "", 8)
        GUISetState(@SW_SHOW, $hCross_GUI)
        GUISetCursor(3, 1, $hCross_GUI)
    
        Global $hRectangle_GUI = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW + $WS_EX_TOPMOST)
        GUISetBkColor(0xFF0000)
    
        ; Wait until mouse button pressed
        While Not _IsPressed("01", $UserDLL)
            Sleep(10)
        WEnd
    
        ; Get first mouse position
        $aMouse_Pos = MouseGetPos()
        $iX1 = $aMouse_Pos[0]
        $iY1 = $aMouse_Pos[1]
    
        ; Draw rectangle while mouse button pressed
        While _IsPressed("01", $UserDLL)
    
            $aMouse_Pos = MouseGetPos()
    
            $hMaster_Mask = _WinAPI_CreateRectRgn(0, 0, 0, 0)
            $hMask = _WinAPI_CreateRectRgn($iX1,  $aMouse_Pos[1], $aMouse_Pos[0],  $aMouse_Pos[1] + 1) ; Bottom of rectangle
            _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
            _WinAPI_DeleteObject($hMask)
            $hMask = _WinAPI_CreateRectRgn($iX1, $iY1, $iX1 + 1, $aMouse_Pos[1]) ; Left of rectangle
            _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
            _WinAPI_DeleteObject($hMask)
            $hMask = _WinAPI_CreateRectRgn($iX1 + 1, $iY1 + 1, $aMouse_Pos[0], $iY1) ; Top of rectangle
            _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
            _WinAPI_DeleteObject($hMask)
            $hMask = _WinAPI_CreateRectRgn($aMouse_Pos[0], $iY1, $aMouse_Pos[0] + 1,  $aMouse_Pos[1]) ; Right of rectangle
            _WinAPI_CombineRgn($hMaster_Mask, $hMask, $hMaster_Mask, 2)
            _WinAPI_DeleteObject($hMask)
            ; Set overall region
            _WinAPI_SetWindowRgn($hRectangle_GUI, $hMaster_Mask)
    
            If WinGetState($hRectangle_GUI) < 15 Then GUISetState()
            Sleep(10)
    
        WEnd
    
        ; Get second mouse position
        $iX2 = $aMouse_Pos[0]
        $iY2 = $aMouse_Pos[1]
    
        ; Set in correct order if required
        If $iX2 < $iX1 Then
            $iTemp = $iX1
            $iX1 = $iX2
            $iX2 = $iTemp
        EndIf
    
        If $iY2 < $iY1 Then
            $iTemp = $iY1
            $iY1 = $iY2
            $iY2 = $iTemp
        EndIf
    
        GUIDelete($hRectangle_GUI)
        GUIDelete($hCross_GUI)
        DllClose($UserDLL)
    
    EndFunc   ;==>Mark_Rect
    Alles anzeigen

    Danke

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 22. März 2023 um 08:26

    BugFix : Vielen Dank.

    Ich versuche das mal in mein Script zu übernehmen.

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 21. März 2023 um 15:12

    für das 2 label klappt die Änderung jetzt auch. Lässt sich aber sicherlich noch optimieren oder in eine Funktion packen.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <StaticConstants.au3>
    #include <Array.au3>
    
    ; Create an array to hold the button data and the control Ids
    Global $aLabels1[5][2]
    
    ; Add the data
    For $i = 0 To 4
        $aLabels1[$i][0] = "Label " & $i & " clicked"
    Next
    
    $hGUI = GUICreate("Test", 500, 500)
    
    ; Create the Lables and add their ControlIDs to the array
    For $i = 0 To UBound($aLabels1) - 1
        ;$aLables[$i][1] = GUICtrlCreateButton("Button " & $i, 10, 10 + (40 * $i), 80, 30)
        $aLabels1[$i][1] = GUICtrlCreateLabel("Label " & $i, 10 + (60 * $i), 20, 60, 30, 0x01)
        GUICtrlSetTip($aLabels1[$i][1], "Test Label " & $i)
    
        $l1 = 0
    
    Next
    
    GUISetState()
    
    
    While 100
    
        $GGCI = GUIGetCursorInfo($hGUI)
    
        If $GGCI[4] = $aLabels1[1][1] Then
            If $l1 = 0 Then
                GUICtrlSetTip($aLabels1[1][1], "Test Label - 1 - 0815")
                GUICtrlSetFont($aLabels1[1][1], 9, 700, 0, "Arial")
                $l1 = 1
            EndIf
    
        Else
            If $l1 = 1 Then
    
                GUICtrlSetFont($aLabels1[1][1], 9, 250, 0, "Arial")
                $l1 = 0
            EndIf
    
        EndIf
    
        $iMsg = GUIGetMsg()
    
        Switch $iMsg
    
            Case $GUI_EVENT_CLOSE
                Exit
            ; Was the ControlID a button?
    
            Case Else
                For $i = 0 To UBound($aLabels1) - 1
                    If $iMsg = $aLabels1[$i][1] Then
                        ; If so then display the data
                        MsgBox($MB_SYSTEMMODAL, "Label clicked", $aLabels1[$i][0])
                        ConsoleWrite($aLabels1[$i][0])
                        ; No point in looking further
                        ExitLoop
                    EndIf
                Next
        EndSwitch
    
    WEnd
    Alles anzeigen

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 21. März 2023 um 14:46

    Den ToolTip kann ich mit folgendem Beispiel manipulieren.

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <StaticConstants.au3>
    
    ; Create an array to hold the button data and the control Ids
    Global $aLabels[5][2]
    ; Add the data
    For $i = 0 To 4
        $aLabels[$i][0] = "Label " & $i & " clicked"
    Next
    
    $hGUI = GUICreate("Test", 500, 500)
    
    ; Create the Lables and add their ControlIDs to the array
    For $i = 0 To UBound($aLabels) - 1
        ;$aLables[$i][1] = GUICtrlCreateButton("Button " & $i, 10, 10 + (40 * $i), 80, 30)
        $aLabels[$i][1] = GUICtrlCreateLabel("Label " & $i, 10 + (60 * $i), 20, 60, 30, 0x01)
        GUICtrlSetTip($aLabels[$i][1], "Test Label " & $i)
    Next
    
    GUISetState()
    
    
    While 1
    
        $GGCI = GUIGetCursorInfo($hGUI)
        If $GGCI[4] = 0 Then GUICtrlSetTip($aLabels[1][1], "Test Label - 1 - 0815")
    
        $iMsg = GUIGetMsg()
    
        Switch $iMsg
    
            Case $GUI_EVENT_CLOSE
                Exit
            ; Was the ControlID a button?
    
            Case Else
                For $i = 0 To UBound($aLabels) - 1
                    If $iMsg = $aLabels[$i][1] Then
                        ; If so then display the data
                        MsgBox($MB_SYSTEMMODAL, "Label clicked", $aLabels[$i][0])
                        ConsoleWrite($aLabels[$i][0])
                        ; No point in looking further
                        ExitLoop
                    EndIf
                Next
        EndSwitch
    
    WEnd
    Alles anzeigen
  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 21. März 2023 um 13:39

    Hallo BugFix,

    mit den dynamisch erzeugten Label und Icons, habe ich es noch nicht geschafft, die Infos mit GUIGetCursorInfo(4) auszulesen.

    Als Grundlage dient ja der Quelltext aus Post2. Ich habe hier bestimmt einen Denkfehler.

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 21. März 2023 um 11:08

    Ja, das passt.

    Habe aber noch eine ToDo. Ist es möglich die Schriftgröße zu ändern, wenn ich die Maus über das Icon oder Label bewege?

    Wie ein Hover effekt.

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 21. März 2023 um 10:21

    Moin @Velved,

    Stimmt, mit der SQL OrderBY Option klappt es auch. Das ändere ich gleich mal ab.

    Local $Array_Systeme = _Get_Records("SELECT * FROM " & $tblname001 & " Order By Sortierung ASC " & ";")

    Und für die Labels hatte ich das bereits mit dem $SS_Center=0x01 so umgesetzt, das passt jetzt auch.

    Gruß gmmg :)

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 20. März 2023 um 10:38

    Ich habe in die Access DB jetzt noch ein Spalte für die Label ID bzw. Icon ID aufgenommen und schreibe dann die Werte beim erstellen in diese Spalte.

    $aLabels[$i][4]

    $aIcons[$i][4]

    Das anklicken der Icon und Label funktioniert jetzt auch. Hier war der Fehler, dass in der DB nicht alle Felder mit Icon Werten gefüllt waren, somit 0 Werte drin standen.

    Spoiler anzeigen
    AutoIt
    #AutoIt3Wrapper_UseX64=y
    
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <D:\Scripte\MS_AccessCom\Access UDF\Access_UDF.au3>
    #include <D:\Scripte\ArrayMultiColSort\ArrayMultiColSort.au3>
    
    ;--------- MSAccess DB ------------
    $dbname = @ScriptDir & "\bin\db\Helpdesk.accdb"
    
    $tblname001 = "Systeme"
    
    Local $Connection = _Start_Connection($dbname & ";")
    
    Local $Array_Systeme = _Get_Records("SELECT * FROM " & $tblname001 & ";")
    
    _Close_Connection()
    ;----------------------------------
    ;----- Sort Array nach Col3 -------
    ;sortiere nach Col3
    Global $aSortData[][] = [ _
            [3, 0]]
    
    ; Sort and display array
    _ArrayMultiColSort($Array_Systeme, $aSortData)
    ;_ArrayDisplay($Array_Systeme)
    ;----------------------------------
    
    Local $aIcons = $Array_Systeme
    Local $aLabels = $Array_Systeme
    
    $hGUI = GUICreate("GUI Test", 800, 720)
    
    ; Create the buttons and add their ControlIDs to the array
    For $i = 0 To UBound($Array_Systeme) - 1
    
        $aIcons[$i][4] = GUICtrlCreateIcon(@ScriptDir & "\bin\icons\" & $Array_Systeme[$i][2],"", 11 + (60 * $i), 70, 40, 40)
        GUICtrlSetTip($aIcons[$i][4], $Array_Systeme[$i][1])
    
         ;$aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 20 + (59 * $i), 115, 60, 30)
         $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 10 + (60 * $i), 115, 60, 30,0x01) ;center Txt
         GUICtrlSetTip($aLabels[$i][4], $Array_Systeme[$i][1])
    
    Next
    
    ;_ArrayDisplay($aIcons)
    ;_ArrayDisplay($aLabels)
    
    GUISetState()
    
    While 1
    
        $iMsg = GUIGetMsg()
        Switch $iMsg
            Case $GUI_EVENT_CLOSE
                Exit
            ; Was the ControlID a button?
            Case Else
                For $x = 0 To UBound($Array_Systeme) - 1
                    If $iMsg = $aLabels[$x][4] or $iMsg = $aIcons[$x][4] Then
                        ; If so then display the data
                        MsgBox(0, "Label clicked", $aLabels[$x][1])
                        ; No point in looking further
                        ExitLoop
                    EndIf
                Next
        EndSwitch
    
    WEnd
    Alles anzeigen

    Hier mal mit Fixer Ausrichtung der Labels

    AutoIt
    #AutoIt3Wrapper_UseX64=y
    
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <D:\Scripte\MS_AccessCom\Access UDF\Access_UDF.au3>
    #include <D:\Scripte\ArrayMultiColSort\ArrayMultiColSort.au3>
    
    ;--------- MSAccess DB ------------
    $dbname = @ScriptDir & "\bin\db\Helpdesk.accdb"
    
    $tblname001 = "Systeme"
    
    Local $Connection = _Start_Connection($dbname & ";")
    
    Local $Array_Systeme = _Get_Records("SELECT * FROM " & $tblname001 & ";")
    
    _Close_Connection()
    ;----------------------------------
    ;----- Sort Array nach Col3 -------
    ;sortiere nach Col3
    Global $aSortData[][] = [ _
            [3, 0]]
    
    ; Sort and display array
    _ArrayMultiColSort($Array_Systeme, $aSortData)
    ;_ArrayDisplay($Array_Systeme)
    ;----------------------------------
    
    Local $aIcons = $Array_Systeme
    Local $aLabels = $Array_Systeme
    
    $hGUI = GUICreate("GUI Test", 800, 720)
    
    ; Create the buttons and add their ControlIDs to the array
    For $i = 0 To UBound($Array_Systeme) - 1
    
        $aIcons[$i][4] = GUICtrlCreateIcon(@ScriptDir & "\bin\icons\" & $Array_Systeme[$i][2],"", 20 + (60 * $i), 70, 40, 40)
        GUICtrlSetTip($aIcons[$i][4], $Array_Systeme[$i][1])
    
        ;$aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 25 + (60 * $i -4), 115, 60, 30)
    
        IF $i = 0 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 30 + (60 * $i), 115, 60, 30)
        IF $i = 1 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 30 + (60 * $i), 115, 60, 30)
         IF $i = 2 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 25 + (60 * $i), 115, 60, 30)
        IF $i = 3 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 26 + (60 * $i), 115, 60, 30)
        IF $i = 4 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 20 + (60 * $i), 115, 60, 30)
        IF $i = 5 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 20 + (60 * $i), 115, 60, 30)
        IF $i = 6 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 22 + (60 * $i), 115, 60, 30)
        IF $i = 7 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 24 + (60 * $i), 115, 60, 30)
        IF $i = 8 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 20 + (60 * $i), 115, 60, 30)
        IF $i = 9 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 22 + (60 * $i), 115, 60, 30)
        IF $i = 10 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 30 + (60 * $i), 115, 60, 30)
        IF $i = 11 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 25 + (60 * $i), 115, 60, 30)
        IF $i = 12 Then $aLabels[$i][4] = GUICtrlCreateLabel($Array_Systeme[$i][1], 17 + (60 * $i), 115, 60, 30)
    
         GUICtrlSetTip($aLabels[$i][4], $Array_Systeme[$i][1])
    
    Next
    
    _ArrayDisplay($aIcons)
    _ArrayDisplay($aLabels)
    
    GUISetState()
    
    While 1
    
        $iMsg = GUIGetMsg()
        Switch $iMsg
            Case $GUI_EVENT_CLOSE
                Exit
            ; Was the ControlID a button?
            Case Else
                For $x = 0 To UBound($Array_Systeme) - 1
                    If $iMsg = $aLabels[$x][4] or $iMsg = $aIcons[$x][4] Then
                        ; If so then display the data
                        MsgBox(0, "Label clicked", $aLabels[$x][1])
                        ; No point in looking further
                        ExitLoop
                    EndIf
                Next
        EndSwitch
    
    WEnd
    Alles anzeigen

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 20. März 2023 um 09:25

    Hallo Velted,

    genau, ich möchte die X Anzahl an Icons Nebeneinander anzeigen + die Labels entsprechend unter dem jeweiligen Icon.

    Label Texte, der Icon Name und der ToolTip kommen aus der DB, wobei der Tooltip im ersten Step gleich dem Label Text sein kann.

    Was in meinem Beispiel nicht funktioniert, beim Scriptstart wird gleich die MsgBox(0, "Label clicked") angezeigt, obwohl ich selbst ja noch auf kein Label oder Icon geklickt habe.

    In der Access DB habe ich für die Sortierung einfach eine Spalte mit Zahlenwerten 01-13 die ja dann mit dem ArraySort Absteigend sortiert werden.

    Code
    _ArrayMultiColSort($GetData, $aSortData)

    so sieht die Access DB aus

    System ist dann = Label Text und Tooltipp

    pasted-from-clipboard.png

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 20. März 2023 um 07:54

    Hallo Sven,

    bei dem Create Icon kommt die Nummer daher, dass ich die Icons in einer DLL gespeichert hatte.

    Die udf 'S gibt es hier im engl. Forum

    ArrayMultiColSort -New Release 06 April 2019
    [New Release] - 06 April 2019 Added: Error-checking for sensible column numbers in the $aSortData array, with an additional error status.…
    www.autoitscript.com
    Yet another Access UDF( but different - *.accdb only)
    Hi all,This is an UDF for working with Access(2007 above) databases. I would like to say thanks to @spudw2k for his wonderful ADODB udf. That is my…
    www.autoitscript.com

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 17. März 2023 um 15:40

    Habe schon eine erste Version gebaut, funktioniert aber noch nicht so wie gewünscht.

    Hat noch einer eine Idee dazu?

    AutoIt
    #AutoIt3Wrapper_UseX64=y
    
    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <D:\Scripte\MS_AccessCom\Access UDF\Access_UDF.au3>
    #include <D:\Scripte\ArrayMultiColSort\ArrayMultiColSort.au3>
    
    ;--------- MSAccess DB ------------
    $dbname = @ScriptDir & "\bin\db\Helpdesk.accdb"
    
    $tblname001 = "Systeme"
    
    Local $Connection = _Start_Connection($dbname & ";")
    
    Local $GetData = _Get_Records("SELECT * FROM " & $tblname001 & ";")
    
    _Close_Connection()
    ;----------------------------------
    ;----- Sort Array nach Col3 -------
    ;sortiere nach Col3
    Global $aSortData[][] = [ _
            [3, 0]]
    
    ; Sort and display array
    _ArrayMultiColSort($GetData, $aSortData)
    ;_ArrayDisplay($GetData)
    ;----------------------------------
    
    $aIcons = $GetData
    $aLabels = $GetData
    
    For $a = 0 To UBound ($GetData) -1
           ;MsgBox(0,"", $GetData[$i][1])
        $aIcons[$a][0] = $GetData[$a][1]
        $aLabels[$a][0] = $GetData[$a][1]
    Next
    
    
    $hGUI = GUICreate("GUI Test", 800, 720)
    
    ; Create the buttons and add their ControlIDs to the array
    For $b = 0 To UBound($aIcons) - 1
    
        $aIcons[$b][1] = GUICtrlCreateIcon(@ScriptDir & "\bin\icons\" & $aIcons[$b][2],25, 10 + (60 * $b), 70, 40, 40)
        GUICtrlSetTip($aIcons[$b][1], $aIcons[$b][0])
    
    Next
    
    For $c = 0 To UBound($aLabels) - 1
    
        $aLabels[$c][1] = GUICtrlCreateLabel($aLabels[$c][1], 25 + (60 * $c), 115, 60, 30)
        GUICtrlSetTip($aLabels[$c][1], $aLabels[$c][0])
    
    Next
    
    
    GUISetState()
    
    While 1
    
        $iMsg = GUIGetMsg()
        Switch $iMsg
            Case $GUI_EVENT_CLOSE
                Exit
            ; Was the ControlID a button?
    ;~         Case Else
    ;~             For $x = 0 To UBound($aIcons) - 1
    ;~                 If $iMsg = $aIcons[$x][1] Then
    ;~                     ; If so then display the data
    ;~                     MsgBox(0, "Label clicked", $aIcons[$x][0])
    ;~                     ; No point in looking further
    ;~                     ExitLoop
    ;~                 EndIf
    ;~             Next
        EndSwitch
    
    WEnd
    Alles anzeigen

    Gruß gmmg

  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 17. März 2023 um 13:18

    Im engl. Forum habe ich ein Beispiel für die Button Erstellung gefunden.

    Mal sehen, ob ich damit weiter komme.

    C
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    
    ; Create an array to hold the button data and the control Ids
    Global $aButtons[5][2]
    ; Add the data
    For $i = 0 To 4
        $aButtons[$i][0] = "Button " & $i & " pressed"
    Next
    
    $hGUI = GUICreate("Test", 500, 500)
    
    ; Create the buttons and add their ControlIDs to the array
    For $i = 0 To UBound($aButtons) - 1
        $aButtons[$i][1] = GUICtrlCreateButton("Button " & $i, 10, 10 + (40 * $i), 80, 30)
    Next
    
    GUISetState()
    
    While 1
    
        $iMsg = GUIGetMsg()
        Switch $iMsg
            Case $GUI_EVENT_CLOSE
                Exit
            ; Was the ControlID a button?
            Case Else
                For $i = 0 To UBound($aButtons) - 1
                    If $iMsg = $aButtons[$i][1] Then
                        ; If so then display the data
                        MsgBox($MB_SYSTEMMODAL, "Button Pressed", $aButtons[$i][0])
                        ; No point in looking further
                        ExitLoop
                    EndIf
                Next
        EndSwitch
    
    WEnd
    Alles anzeigen
  • Button / Icons aus DB bzw. Array erstellen

    • gmmg
    • 17. März 2023 um 13:17

    Hallo Zusammen,

    ich bin aktuell am umstellen unseres IT-Helpdesk Tools. Ziel der Umstellung ist es die Icons dynamisch aus einem Array bzw. Datenstring zu erstellen. Die Daten dafür kommen aus einer Access DB.

    Aktuell wird für jedes Icon mit der Zeile "GUICTRLCreateIcon" einzeln erstellt.

    AutoIt
    $ico01 = GUICtrlCreateIcon(@ScriptDir & "\bin\icons\Prog1.ico",25, $ico_left, 70, 40, 40)
    $label01 = GUICtrlCreateLabel("Prog1",$label_left, 115,$label_length,25)
    GUICtrlSetTip($ico01, "Prog1")
    GUICtrlSetTip($label01, "Prog1")

    Maximal sollen es 12 oder 13 Icons werden.

    Hier mal ein Bild der GUI

    pasted-from-clipboard.png

    Ich bin der Meinung es gab da mal ein Beispiel für eine dynamische Erstellung, ich finde aber grad nichts dazu.

    Hat das jemand schonmal umgesetzt?


    Gruß gmmg

  • CSV Merge - zwei Dateien zusammenfügen

    • gmmg
    • 16. März 2023 um 09:24

    Guten Morgen Zusammen,

    danke für eure Hilfe. Wir haben die Lösung per parseCSV.au3 von AspirinJunkie umgesetzt.

    Ich setzte das Thema mal auf erledigt.

    Gruß Marcel

  • CSV Merge - zwei Dateien zusammenfügen

    • gmmg
    • 14. März 2023 um 13:19

    Hallo Zusammen,

    bin eben von der OP nach Hause gekommen. es freut mich, dass sich reichlich an dem Thema beteiligt wird :)

    Gruß gmmg

  • CSV Merge - zwei Dateien zusammenfügen

    • gmmg
    • 13. März 2023 um 18:32

    Ahh OK.

    Ich habe eben mal in dem FileWrite Abschnitt den Parameter in '";"' geändert. Hochkommas sind da.

    FileWrite("merged.csv", _Array2CSV($aMerged, Default, '";"'))

    Ich lasse aber am Mittwoch erstmal die Kollegen drüberschauen, ob die so erstellte CSV so verarbeitet werden kann.

    Ein herzliches Danke :)

    Gruß gmmg

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™