Hallo an diesem schönen verregneten Sonntag,
Wieder möchte ich mich mit meinem Problem an euch wenden.
Für ein Kalkulationsprogramm wird in meinem Programm eine Liste mit Kundendaten erstellt.
Dies funktioniert auch einwandfrei.
Nun schaffe ich es aber nicht, markierte Werte aus der Liste zu lesen.
Anbei mein Code:
init:
Spoiler anzeigen
func init()
_SQLite_StartUp("sqlite3.dll")
If @error Then
MsgBox(16, "SQLite Error", "Can't find 'sqlite3.dll' ")
Exit -1
EndIf
Global $hDB = _SQLite_Open("PK-GLB.pk")
If @error Then
MsgBox(16, "SQLite Error", "Can't open or create a permanent Database!, cause: "& @error)
Exit -1
EndIf
_SQLite_Exec ($hDB, "CREATE TABLE Kundendaten (Thema,Name,Telefon,Email,Adresse,Postleitzahl,Ort,RegNr,Rechnungsart);")
_SQLite_Exec ($hDB, "CREATE TABLE Angebote (RegNr,AngNr);")
_SQLite_Exec ($hDB, "CREATE TABLE Ausfuehrung (RegNr,AngNr,Ausfuehr,Preis,CalcNr);")
_SQLite_Exec ($hDB, "CREATE TABLE Nachcalk (CalcNr,Was,Art,Anzahl,gesPreis);")
_SQLite_Exec ($hDB, "CREATE TABLE Einstell (Was,Art,Preis);")
If( RegRead("KLAUSMANN_REG","REGNR") < 0) or (RegRead("KLAUSMANN_REG","REGNR")=@error) Then
RegWrite("HKEY_CURRENT_USER\Software\KLAUSMANN_REG", "REG_NR", "REG_SZ",0)
If @error Then
MsgBox(64, "Registry", "Can't write in registry. "& @error)
Exit -1
EndIf
EndIf
Global $RegNr = RegRead("HKEY_CURRENT_USER\Software\KLAUSMANN_REG", "REG_NR")
Return $hDB
EndFunc
[/autoit]dazugehörige GUI:
Spoiler anzeigen
#Region ### START Koda GUI section ### Form=c:\users\leonard\desktop\philip\angebot.kxf
$Angebot = GUICreate("Dameige: Klausmann", 901, 494, 317, 141)
$Pic1 = GUICtrlCreatePic("C:\Users\leonard\Desktop\ZuSortierendeFotos\Logos\Logos\Logo_RGB.jpg", 656, 0, 241, 283)
$Label1 = GUICtrlCreateLabel("Name des Kunden:", 16, 16, 125, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label2 = GUICtrlCreateLabel("Postleitzahl:", 16, 56, 83, 23)
GUICtrlSetFont(-1, 12, 400, 0, "calibri")
$Label3 = GUICtrlCreateLabel("Wohnort:", 368, 56, 64, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label4 = GUICtrlCreateLabel("Thema:", 368, 16, 52, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label5 = GUICtrlCreateLabel("Geschätzter Zeitraum:", 16, 176, 147, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Name = GUICtrlCreateInput("Nachname Vorname", 168, 16, 185, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
GUICtrlSetTip(-1, "Nachname Vorname")
$Postleitzahl = GUICtrlCreateInput("", 168, 56, 185, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Thema = GUICtrlCreateInput("", 464, 16, 121, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Wohnort = GUICtrlCreateInput("", 464, 56, 121, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$StatusBar1 = _GUICtrlStatusBar_Create($Angebot)
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 25)
$WeiterButton = GUICtrlCreateButton("Weiter", 704, 351, 121, 33)
$MonthCal1 = GUICtrlCreateMonthCal("2013/06/19", 16, 224, 287, 164)
$Rechnung = GUICtrlCreateRadio("via Rechnung", 512, 256, 113, 17)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Pauschale = GUICtrlCreateRadio("via Pauschale", 360, 256, 113, 17)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label6 = GUICtrlCreateLabel("-", 368, 173, 11, 33)
GUICtrlSetFont(-1, 18, 400, 0, "Calibri")
$Label7 = GUICtrlCreateLabel("Straße:", 16, 96, 49, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Strasze = GUICtrlCreateInput("", 168, 96, 185, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label8 = GUICtrlCreateLabel("Hausnummer:", 368, 96, 94, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Hausnummer = GUICtrlCreateInput("", 464, 96, 121, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Date1 = GUICtrlCreateDate("2013/06/20 09:38:19", 176, 176, 185, 25)
$Date2 = GUICtrlCreateDate("2013/06/20 09:38:19", 385, 176, 185, 25)
$Nummer = GUICtrlCreateInput("", 168, 136, 185, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label9 = GUICtrlCreateLabel("Telefonnummer:", 16, 136, 110, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label10 = GUICtrlCreateLabel("Email:", 368, 136, 44, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Email = GUICtrlCreateInput("", 464, 136, 177, 27)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Label11 = GUICtrlCreateLabel("Oder wählen Sie einen bestehenden Kunden:", 336, 304, 294, 23)
GUICtrlSetFont(-1, 12, 400, 0, "Calibri")
$Bestkund = GUICtrlCreateList("", 336, 336, 241, 51)
GUICtrlSetFont(-1, 10, 400, 0, "Calibri")
$beKu = GUICtrlCreateCheckbox("", 312, 304, 17, 21)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
und entsprechender Code zum Anlegen der Datenbank und entsprechend gedachtes Auslesen von einem markierten Objekt:
Spoiler anzeigen
;füllen der Liste der besthenden kunden
Local $hQuery, $SeNa,
_SQLite_Query($hDB, "SELECT Name,RegNr FROM Kundendaten;", $hQuery) ; creating the query
While _SQLite_FetchData($hQuery, $SeNa, False, False) = $SQLITE_OK ; Read Out the next Row
GUICtrlSetData ( $Bestkund, $SeNa[0] )
WEnd
;Auswahl durch Angebot_1 & Speichern von Kundendaten
[/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
GUIDelete($Angebot)
Call("close")
Case $nMsg = $WeiterButton
If BitAND(GUICtrlRead($beKu), $GUI_CHECKED) = $GUI_CHECKED Then
Local $Vgl = GUICtrlRead($Bestkund,$GUI_FOCUS)
;Vergleich Namen aus Liste mit ausgewählten Namen(bestehender Kunde)-> gebe RegNr zurück.
MsgBox(64,"",$Vgl)
While _SQLite_FetchData($hQuery, $SeNa, False, False) = $SQLITE_OK ; Read Out the next Row
If (StringCompare ( $SeNa[0], $Vgl,2) = 0) Then
local $saveReg = $SeNa[1]
EndIf
WEnd
Call("Angebot2",$saveReg)
ExitLoop
EndIf
Local $Vgl_2 = GUICtrlRead($Name)
; Vergleich Namen aus Liste mit eingegebenen Namen(neukunde), wenn ja-> error, weil schon vorhanden.
While _SQLite_FetchData($hQuery, $SeNa, False, False) = $SQLITE_OK ; Read Out the next Row
If (StringCompare ( $SeNa[0], $Vgl_2,2) = 0) Then
MsgBox(64,"Dameige","Kunde schon vorhanden")
GUIDelete($Angebot)
Call("close")
EndIf
WEnd
If BitAND(GUICtrlRead($Pauschale), $GUI_CHECKED) = $GUI_CHECKED Then
_SQLite_Exec ($hDB, "INSERT INTO Kundendaten (Thema,Name,Telefon,Email,Adresse,Postleitzahl,Ort,RegNr,Rechnungsart) " & _
"VALUES ( '" & GUICtrlRead($Thema) & "','" & GUICtrlRead($Name) & "','" & GUICtrlRead($Nummer) & "','" & GUICtrlRead($Email) & "','" & GUICtrlRead($Strasze) & "','" & GUICtrlRead($Postleitzahl) & "','" & GUICtrlRead($Wohnort) & "','" & $RegNr & "','P');")
$RegNr = $RegNr+1
RegDelete("HKEY_CURRENT_USER\Software\KLAUSMANN_REG", "REG_NR")
RegWrite("HKEY_CURRENT_USER\Software\KLAUSMANN_REG", "REG_NR", "REG_SZ",$RegNr)
GUIDelete($Angebot)
call("Angebot_2",($RegNr-1))
ExitLoop
ElseIf BitAND(GUICtrlRead($Rechnung), $GUI_CHECKED) = $GUI_CHECKED Then
_SQLite_Exec ($hDB, "INSERT INTO Kundendaten (Thema,Name,Telefon,Email,Adresse,Postleitzahl,Ort,RegNr,Rechnungsart) " & _
"VALUES ( '" & GUICtrlRead($Thema) & "','" & GUICtrlRead($Name) & "','" & GUICtrlRead($Nummer) & "','" & GUICtrlRead($Email) & "','" & GUICtrlRead($Strasze) & "','" & GUICtrlRead($Postleitzahl) & "','" & GUICtrlRead($Wohnort) & "','" & $RegNr & "','R');")
$RegNr = $RegNr+1
RegDelete("HKEY_CURRENT_USER\Software\KLAUSMANN_REG", "REG_NR")
RegWrite("HKEY_CURRENT_USER\Software\KLAUSMANN_REG", "REG_NR", "REG_SZ",$RegNr)
If @error Then
MsgBox(64, "Registry", "Can't write in registry. "& @error)
Exit -1
EndIf
GUIDelete($Angebot)
call("Angebot_2",($RegNr-1))
ExitLoop
endif
EndSelect
WEnd
Nun meine Frage:
Wie kann ich vom markiertem Element, durch den Namen die entsprechende RegNr herrausfinden ?
Vielen Dank schon mal im Vorraus
Liebe Grüße
Chungwarlet