Hallo liebe Scripter
hab ein problem. Undzwar baue ich gerade eine datenbank für ein Internetcafe dass Wasserpfeifen verkauft. Alles funzt perfekt nur dass eine nicht.. Wenn ich im Kontextmenü auf Artikel Verkaufen klicke soll die Anzahl umgeändert werden ![]()
Also zb in der Ini steht Hallo=Hallo|12 dan soll die 12 in 11 umgewandelt werden...
Kann mir jemand helfen ??
Mfg
Inhalt der Sperrung.Ini
Spoiler anzeigen
[Sperrung]
10001=Al Waha|Tabak|13 €|13
10002=Nakhala|Tabak|12 €|10
10003=Orient "Groß"|Tabak|11,80 €|3
10004=Orient "Klein"|Tabak|3,90 €|10
[edit]
10000=
[Numbers]
last=10005
Spoiler anzeigen
#include <GuiListView.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ListViewConstants.au3>
#include <StructureConstants.au3>
;Global Const $LVFI_PARAM = 0x0001
;Global Const $LVIF_TEXT = 0x0001
;Global Const $LVM_FIRST = 0x1000
Global Const $LVM_GETITEM = $LVM_FIRST + 5
;Global Const $LVM_FINDITEM = $LVM_FIRST + 13
;Global Const $LVM_SETSELECTEDCOLUMN= $LVM_FIRST + 140
Dim $nCurCol = -1
Dim $nSortDir = 1
Dim $bSet = 0
Dim $nCol = -1
Dim $nr, $aSperrungdaten
$Form1 = GUICreate('Otmar Call-Shop', 500, 600, -1,-1)
GUISetBkColor(0xFFFFFF)
$Input4 = GUICtrlCreateInput("", 320, 12, 50, 21)
Guictrlcreatelabel("Artikel-Bezeichnung",10,10)
$Input1 = GUICtrlCreateInput("", 110, 12, 200, 21)
Guictrlcreatelabel("Artikel-Kategorie",10,35)
$Input2 = GUICtrlCreateCombo("Wasserpfeifen", 110, 35, 200, 21,0x0003)
GuiCTRLSETDATA(-1,"Tabak|Kohle|Sonstiges")
Guictrlcreatelabel("Artikel-Verkaufspreis",10,55)
$Input3 = GUICtrlCreateInput("€", 110, 57, 200, 21)
$Buttondel = GUICtrlCreateButton("Entfernen", 410, 7, 75, 35, 0)
$Button = GUICtrlCreateButton("Registrieren", 410, 42, 75, 35, 0)
$Listview1 = GUICtrlCreateListView("Artikelnummer|Artikel | Kategorie| Verkaufspreis | Anzahl", 10, 80, 480, 500)
GUICtrlSetFont($Listview1, 8, 400, 0, "MS Sans Serif")
$mnu = GUICtrlCreateContextMenu($Listview1)
$mnu_edit = GUICtrlCreateMenuItem('Artikel Verkaufen', $mnu)
$mnu_del = GUICtrlCreateMenuItem('Artikel Löschen', $mnu)
GUISetState(@SW_SHOW)
Local $SperrungINI = @ScriptDir & "\Sperrung.ini"
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Global $aSperrung = IniReadSection($SperrungINI, "Sperrung")
Local $lastNum = IniRead($SperrungINI, "Numbers", "last", 9999)
_FillListView()
GUISetState(@SW_SHOW, $Form1)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
While 1
$nMsg = GUIGetMsg(1)
Switch $nMsg[1]
Case $Form1
Switch $nMsg[0]
Case $GUI_EVENT_CLOSE
Exit
Case $Buttondel
_Filedelete()
Case $Button
$lastNum += 1
$Input = GUICtrlRead($Input1)
$Input100=Guictrlread($Input2)
$Input200=GUICTRLREAD($Input3 )
$Input300=Guictrlread($Input4 )
IniWrite($SperrungINI, "Numbers", "last", $lastNum)
IniWrite($SperrungINI, "Sperrung", $lastNum, $Input & "|" & $Input100 & "|" & $Input200 & "|" & $Input300)
IniWrite($SperrungINI, "edit", $lastNum, "")
$aSperrung = IniReadSection($SperrungINI, "Sperrung")
Guictrlsetdata($Input1,"")
Guictrlsetdata($Input3,"€")
Guictrlsetdata($Input4,"")
_FillListView()
Case $mnu_del
_Filedelete()
Case $Listview1
$bSet = 0
$nCurCol = $nCol
GUICtrlSendMsg($Listview1, $LVM_SETSELECTEDCOLUMN, GUICtrlGetState($Listview1), 0)
DllCall("user32.dll", "int", "InvalidateRect", "hwnd", GUICtrlGetHandle($Listview1), "int", 0, "int", 1)
EndSwitch
EndSwitch
WEnd
Func _Filedelete()
$index = _GUICtrlListView_GetSelectedIndices($Listview1)
$del_Key = _GUICtrlListView_GetItemText(GUICtrlGetHandle($Listview1), $index, 0)
IniDelete($SperrungINI, "Sperrung", $del_Key)
$aSperrung = IniReadSection($SperrungINI, "Sperrung")
_GUICtrlListView_DeleteItemsSelected($Listview1)
EndFunc
Func _FillListView()
_GUICtrlListView_DeleteAllItems($Listview1)
If $lastNum = 9999 Then Return
For $i = 1 To UBound($aSperrung) - 1
GUICtrlCreateListViewItem($aSperrung[$i][0] & '|' & $aSperrung[$i][1], $Listview1)
Next
EndFunc
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
$hWndListView = $Listview1
If Not IsHWnd($Listview1) Then $hWndListView = GUICtrlGetHandle($Listview1)
$tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iIDFrom = DllStructGetData($tNMHDR, "IDFrom")
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hWndListView
Switch $iCode
Case $NM_RCLICK
Return $GUI_RUNDEFMSG
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc
Func LVSort($hWnd, $nItem1, $nItem2, $nColumn)
Local $nSort
If $nColumn = $nCurCol Then
If Not $bSet Then
$nSortDir = $nSortDir * - 1
$bSet = 1
EndIf
Else
$nSortDir = 1
EndIf
$nCol = $nColumn
$val1 = GetSubItemText($Listview1, $nItem1, $nColumn)
$val2 = GetSubItemText($Listview1, $nItem2, $nColumn)
If $nColumn = 2 Then
$val1 = StringRight($val1, 4) & StringMid($val1, 4, 2) & StringLeft($val1, 2)
$val2 = StringRight($val2, 4) & StringMid($val2, 4, 2) & StringLeft($val2, 2)
EndIf
$nResult = 0
If $val1 < $val2 Then
$nResult = -1
ElseIf $val1 > $val2 Then
$nResult = 1
EndIf
$nResult = $nResult * $nSortDir
Return $nResult
EndFunc
Func GetSubItemText($nCtrlID, $nItemID, $nColumn)
Local $stLvfi = DllStructCreate("uint;ptr;int;int[2];int")
DllStructSetData($stLvfi, 1, $LVFI_PARAM)
DllStructSetData($stLvfi, 3, $nItemID)
Local $stBuffer = DllStructCreate("char[260]")
[/autoit] [autoit][/autoit] [autoit]$nIndex = GUICtrlSendMsg($nCtrlID, $LVM_FINDITEM, -1, DllStructGetPtr($stLvfi));
[/autoit] [autoit][/autoit] [autoit]Local $stLvi = DllStructCreate("uint;int;int;uint;uint;ptr;int;int;int;int")
[/autoit] [autoit][/autoit] [autoit]DllStructSetData($stLvi, 1, $LVIF_TEXT)
DllStructSetData($stLvi, 2, $nIndex)
DllStructSetData($stLvi, 3, $nColumn)
DllStructSetData($stLvi, 6, DllStructGetPtr($stBuffer))
DllStructSetData($stLvi, 7, 260)
GUICtrlSendMsg($nCtrlID, $LVM_GETITEM, 0, DllStructGetPtr($stLvi));
[/autoit] [autoit][/autoit] [autoit]$sItemText = DllStructGetData($stBuffer, 1)
[/autoit] [autoit][/autoit] [autoit]$stLvi = 0
$stLvfi = 0
$stBuffer = 0
Return $sItemText
EndFunc