Hallo an alle.
Vor ein paar Tagen war ich schon einmal mit dem Qullcode im Forum um Hilfe zu bekommen.
Hat auch alles Super geklappt.
Ich habe jetzt nur noch ein winziges Problem.
Wenn ich jetzt auf "Neuer Eintrag"; "Makierten Eintrag bearbeiten" oder "Prüfungen eintragen" Klicke,
wird mir das Feld mit allen eintragungen in einer Zeile angezeigt.
Wie kann ich die Eintragungen "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener" in einer Zeile und die
Eintragungen "Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am" in
der 2 zeile anzeigen lassen.
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
Global $sHeader = "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener|Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am"
Global $neuer_Eintrag = "Kp.|Y-Nummer|Gerät|Ser.Nr.|Bediener"
Global $Eintragungen = "Letzte TMP|BGV A3 am|BGV D8 am|BGV D36 am|TDv 023/024 am|BGR 500 am"
Global $sDBFile = @ScriptDir & "\datenbank.txt"
Global $iEdit = -1
#region Hauptfenster
Global $hGui = GUICreate("Fahrzeuge", 910, 480)
GUISetBkColor(0xCCCCCC)
Global $hListView = GUICtrlCreateListView($sHeader, 0, 0, 910, 400, $LVS_SHOWSELALWAYS)
Global $hLVHandle = GUICtrlGetHandle($hListView)
_GUICtrlListView_SetColumn($hLVHandle, 0, "Kp.", 30, 0)
_GUICtrlListView_SetColumn($hLVHandle, 1, "Y-Nummer", 120, 0)
_GUICtrlListView_SetColumn($hLVHandle, 2, "Gerät", 80, 0)
_GUICtrlListView_SetColumn($hLVHandle, 3, "Ser.Nr.", 100, 0)
_GUICtrlListView_SetColumn($hLVHandle, 4, "Bediener", 100, 0)
_GUICtrlListView_SetColumn($hLVHandle, 5, "Letzte TMP", 80, 0)
_GUICtrlListView_SetColumn($hLVHandle, 6, "BGV A3 am", 80, 0)
_GUICtrlListView_SetColumn($hLVHandle, 7, "BGV D8 am", 80, 0)
_GUICtrlListView_SetColumn($hLVHandle, 8, "BGV D36 am", 80, 0)
_GUICtrlListView_SetColumn($hLVHandle, 9, "TDv 023/024 am", 80, 0)
_GUICtrlListView_SetColumn($hLVHandle, 10, "BGR 500 am", 80, 0)
Global $hSearchListView = GUICtrlCreateListView($sHeader, 0, 0, 910, 400, $LVS_SHOWSELALWAYS)
GUICtrlSetState(-1, $GUI_HIDE)
Global $hSearchLVHandle = GUICtrlGetHandle($hSearchListView)
_GUICtrlListView_SetColumn($hSearchLVHandle, 0, "Kp.", 30, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 1, "Y-Nummer", 120, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 2, "Gerät", 80, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 3, "Ser.Nr.", 100, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 4, "Bediener", 100, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 5, "Letzte TMP", 80, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 6, "BGV A3 am", 80, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 7, "BGV D8 am", 80, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 8, "BGV D36 am", 80, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 9, "TDv 023/024 am", 80, 0)
_GUICtrlListView_SetColumn($hSearchLVHandle, 10, "BGR 500 am", 80, 0)
GUICtrlCreateLabel("Suchbegriff:", 10, 412, 90, 20)
GUICtrlSetFont(-1, 11)
Global $hSearch = GUICtrlCreateInput("", 100, 410, 495, 20)
GUICtrlSetFont(-1, 11)
Global $hSearchStart = GUICtrlCreateButton("Suche...", 605, 410, 60, 20, $BS_DEFPUSHBUTTON)
GUICtrlSetFont(-1, 9)
Global $hSearchReset = GUICtrlCreateButton("<-", 675, 410, 20, 20)
GUICtrlSetFont(-1, 8, 600, 0, "Verdana")
GUICtrlSetState(-1, $GUI_DISABLE)
Global $hNew = GUICtrlCreateButton("Neuer Eintrag", 10, 440, 85, 35)
Global $hEdit = GUICtrlCreateButton("Markierten Eintrag bearbeiten", 105, 440, 110, 35, $BS_MULTILINE)
Global $hAendern = GUICtrlCreateButton("Prüfungen eintragen", 225, 440, 110, 35, $BS_MULTILINE)
Global $hLoad = GUICtrlCreateButton("Laden", 345, 440, 70, 35)
Global $hSave = GUICtrlCreateButton("Speichern", 425, 440, 70, 35)
Global $hDel = GUICtrlCreateButton("Markierte Einträge löschen", 505, 440, 90, 35, $BS_MULTILINE)
Global $hDelAll = GUICtrlCreateButton("Alle Einträge löschen", 605, 440, 90, 35, $BS_MULTILINE)
Global $hCM = GUICtrlCreateContextMenu($hListView)
Global $hCMNew = GUICtrlCreateMenuItem("Neuer Eintrag", $hCM)
Global $hCAendern = GUICtrlCreateMenuItem("Prüfungen eintragen", $hCM)
Global $hCMEdit = GUICtrlCreateMenuItem("Eintrag bearbeiten", $hCM)
Global $hCMDel = GUICtrlCreateMenuItem("Markierte Einträge löschen", $hCM)
#endregion Hauptfenster
#region Fenster für neuen Eintrag
Global $hGuiNew = GUICreate("Neuer Eintrag", 1400, 140, -1, -1, $WS_SYSMENU)
Global $aHeader = StringSplit($sHeader, '|')
Global $aNew[$aHeader[0]]
For $i = 1 To $aHeader[0]
GUICtrlCreateLabel($aHeader[$i], 4 + ($i - 1) * 125, 15, 110, 20)
GUICtrlSetFont(-1, 8, 400, 0, 'Verdana')
$aNew[$i - 1] = GUICtrlCreateInput("", 2 + ($i - 1) * 125, 30, 120, 20, Default, $WS_EX_STATICEDGE)
GUICtrlSetFont(-1, 10, 600, 0, 'Verdana')
GUICtrlSetState(-1, $GUI_DISABLE)
Next
Global $hCreate = GUICtrlCreateButton("Eintrag speichern", 640, 65, 120, 25, $BS_DEFPUSHBUTTON)
#endregion Fenster für neuen Eintrag
_GUICtrlListView_RegisterSortCallBack($hLVHandle)
GUISetState(@SW_SHOW, $hGui)
If FileExists($sDBFile) Then Load()
While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[0]
Case $hListView
_GUICtrlListView_SortItems($hLVHandle, GUICtrlGetState($hListView))
Case $hSearchStart
GUICtrlSetState($hSearchStart, $GUI_DISABLE)
_GUICtrlListView_DeleteAllItems($hSearchLVHandle)
Dim $sSearch = GUICtrlRead($hSearch), $sItem
For $i = 0 To _GUICtrlListView_GetItemCount($hLVHandle) - 1
$sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
If StringInStr($sItem, $sSearch) Then GUICtrlCreateListViewItem($sItem, $hSearchListView)
Next
GUICtrlSetState($hListView, $GUI_HIDE)
GUICtrlSetState($hSearchListView, $GUI_SHOW)
GUICtrlSetState($hSearchReset, $GUI_ENABLE)
Case $hSearchReset
GUICtrlSetData($hSearch, "")
GUICtrlSetState($hSearchListView, $GUI_HIDE)
GUICtrlSetState($hListView, $GUI_SHOW)
GUICtrlSetState($hSearchStart, $GUI_ENABLE)
GUICtrlSetState($hSearchReset, $GUI_DISABLE)
Case $hNew, $hCMNew
WinSetTitle($hGuiNew, "", "Neuer Eintrag")
For $i = 0 To 4
GUICtrlSetState($aNew[$i], $GUI_ENABLE)
Next
For $i = 5 To 10
GUICtrlSetState($aNew[$i], $GUI_DISABLE)
Next
GUISetState(@SW_SHOW, $hGuiNew)
GUISetState(@SW_DISABLE, $hGui)
Case $hEdit, $hCMEdit
WinSetTitle($hGuiNew, "", "Eintrag bearbeiten")
For $i = 0 To 4
GUICtrlSetState($aNew[$i], $GUI_ENABLE)
Next
For $i = 5 To 10
GUICtrlSetState($aNew[$i], $GUI_DISABLE)
Next
GUISetState(@SW_SHOW, $hGuiNew)
GUISetState(@SW_DISABLE, $hGui)
Edit()
Case $hAendern, $hCAendern
WinSetTitle($hGuiNew, "", "Prüfungen eintragen")
For $i = 0 To 4
GUICtrlSetState($aNew[$i], $GUI_DISABLE)
Next
For $i = 5 To 10
GUICtrlSetState($aNew[$i], $GUI_ENABLE)
Next
GUISetState(@SW_SHOW, $hGuiNew)
GUISetState(@SW_DISABLE, $hGui)
Edit()
Case $hLoad
Load()
Case $hSave
Save()
Case $hDel, $hCMDel
If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie die markierten Einträge wirklich löschen?") = 6 Then _GUICtrlListView_DeleteItemsSelected($hLVHandle)
Case $hDelAll
If MsgBox(256 + 32 + 4, "Einträge löschen", "Wollen sie wirklich alle Einträge löschen?") = 6 Then _GUICtrlListView_DeleteAllItems($hLVHandle)
Case $hCreate
NewItem()
Case $GUI_EVENT_CLOSE
Switch $nMsg[1]
Case $hGui
If MsgBox(32 + 4, "Beenden", "Wollen sie das Programm wirklich beenden?") = 6 Then End()
Case $hGuiNew
$iEdit = -1
For $i = 0 To UBound($aNew) - 1
GUICtrlSetData($aNew[$i], "")
Next
GUISetState(@SW_HIDE, $hGuiNew)
GUISetState(@SW_ENABLE, $hGui)
WinActivate($hGui)
EndSwitch
EndSwitch
WEnd
Func End()
;~ Save()
_GUICtrlListView_UnRegisterSortCallBack($hLVHandle)
Exit
EndFunc ;==>End
Func NewItem()
Local $sItem = ""
For $i = 0 To UBound($aNew) - 1
If $iEdit > -1 Then
_GUICtrlListView_SetItemText($hLVHandle, $iEdit, GUICtrlRead($aNew[$i]), $i)
Else
$sItem &= GUICtrlRead($aNew[$i]) & "|"
EndIf
GUICtrlSetData($aNew[$i], "")
Next
If $iEdit > -1 Then
$iEdit = -1
GUISetState(@SW_HIDE, $hGuiNew)
GUISetState(@SW_ENABLE, $hGui)
Sleep(300)
WinActivate($hGui)
Else
GUICtrlSetState($aNew[0], $GUI_FOCUS)
GUICtrlCreateListViewItem(StringTrimRight($sItem, 1), $hListView)
EndIf
EndFunc ;==>NewItem
Func Edit()
$iEdit = _GUICtrlListView_GetSelectionMark($hLVHandle)
If $iEdit > -1 Then
Local $aItem = _GUICtrlListView_GetItemTextArray($hLVHandle, $iEdit)
For $i = 1 To $aItem[0]
GUICtrlSetData($aNew[$i - 1], $aItem[$i])
Next
EndIf
EndFunc ;==>Edit
[/autoit][autoit][/autoit][autoit]Func Load()
Local $hFile, $sContent, $aNewItems
$hFile = FileOpen($sDBFile, 0)
If $hFile <> -1 Then
$sContent = FileRead($hFile)
FileClose($hFile)
$sContent = StringTrimRight($sContent, 2)
$aNewItems = StringSplit($sContent, @CRLF, 1)
If Not IsArray($aNewItems) Then Return
_GUICtrlListView_BeginUpdate($hLVHandle)
For $i = 1 To $aNewItems[0]
GUICtrlCreateListViewItem($aNewItems[$i], $hListView)
Next
_GUICtrlListView_EndUpdate($hLVHandle)
EndIf
EndFunc ;==>Load
Func Save()
Local $sItem, $hFile, $iCount
$iCount = _GUICtrlListView_GetItemCount($hLVHandle) - 1
If $iCount = -1 Then Return FileDelete($sDBFile)
$hFile = FileOpen($sDBFile, 2)
If $hFile <> -1 Then
For $i = 0 To $iCount
$sItem = _GUICtrlListView_GetItemTextString($hLVHandle, $i)
FileWriteLine($hFile, $sItem)
Next
FileClose($hFile)
EndIf
EndFunc ;==>Save