Hi @all,
wie kann ich einen Inhalt von einem ListView (GUI) in eine txt-Datei exportieren, damit dieser dann ausgedruckt werden kann?
Vielen Dank schon im Voraus!
Gruß
Peter
Hi @all,
wie kann ich einen Inhalt von einem ListView (GUI) in eine txt-Datei exportieren, damit dieser dann ausgedruckt werden kann?
Vielen Dank schon im Voraus!
Gruß
Peter
Hi,
Listview und SQLite sind eigentlich zwei unterschiedlich Dinge.. Also wenn Du die Daten bereits in einem Listview hast, dann kannst Du den einfach auslesen z.B. mit _GUICtrlListView_GetItemText (siehe Hilfe) und dann jede Zeile des Listviews in eine Datei schreiben z.B. mit FileWriteLine.
Und drucken kannst Du mit _FilePrint ..
steht alles ziemlich gut inder Hilfe beschrieben.
Ich hoffe das hilft Dir weiter.
Franz
Hi franzp,
erst einmal vielen Dank für Deine Antwort!
Ich habe folgenden Code geschrieben. Leider wird bei diesem jedoch nur die erste Spalte des ersten Datensatzes in die TXT-Datei geschrieben. Weiß jemand, warum?
#include <Sqlite.au3>
#include <SQLite.dll.au3>
#Include <GuiListView.au3>
#include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
_SQLite_Startup()
$sqldb = _SQLite_Open('C:\Data\testdb.db3')
Global $hQuery, $hZeile, $aRow, $i, $id, $aItem
GUICreate("Test")
GUISetState(@SW_SHOW)
$ListView1 = GUICtrlCreateListView("id|Name|Vorname",20,20,320,140)
GUICtrlSendMsg(-1, 0x101E, 0, 0)
GUICtrlSendMsg(-1, 0x101E, 1, 100)
GUICtrlSendMsg(-1, 0x101E, 2, 100)
$btdel = GUICtrlCreateButton('Löschen',20,160)
$btAdd = GUICtrlCreateButton('neuer Datensatz', 100, 160)
$handle= GUICtrlGetHandle($ListView1)
_GUICtrlListView_DeleteAllItems($handle)
_SQLite_Query($sqldb,"SELECT * FROM ASB",$hQuery)
$file = FileOpen('test7.txt',2)
While _SQLite_FetchData ($hQuery, $aRow) = $SQLITE_OK
_GUICtrlListView_AddItem($handle, $aRow[0])
_GUICtrlListView_AddSubItem ($handle, $i, $aRow[1], 1)
_GUICtrlListView_AddSubItem ($handle, $i, $aRow[2], 2)
$i = $i + 1
WEnd
$i1 = 1
Do
$aItem = _GUICtrlListView_GetItemText($handle, 0,$i1)
FileWriteLine($file,$aItem)
$i1 = $i1 +1
Until $i1 = 10
FileClose($file)
_SQLite_Close("C:\Data\testdb.db3")
_SQLite_Shutdown ()
Exit
Gruß
Peter
Hi Peter,
da hast du einen dreher drinnen und mit einer Zeile liest du auch nur eine Spalte ein:
[autoit]$aItem = _GUICtrlListView_GetItemText($handle, 0,$i1)
[/autoit][autoit]
$aItem0 = _GUICtrlListView_GetItemText($handle, $i2,0)
$aItem1 = _GUICtrlListView_GetItemText($handle, $i2,1)
$aItem2 = _GUICtrlListView_GetItemText($handle, $i2,2)
Und dann die Zeilen schreiben. z.B.
[autoit]FileWriteLine($file,$aItem0 & "," & $aitem1 & "," & $aitem2)
[/autoit]Mit until $i1 = 10 sinds halt nur 10 Einträge...
Du kannst aber auch
_GUICtrlListView_GetItemTextString benutzen, damit liest er die ganze Zeile des listviews.
Cool!!! Vielen Dank!!!
Es funktioniert jetzt. Ich habe "until $i1 =...listviewcolumncount...." geschrieben.
Gruß
Peter