Jag håller på med ett kassa och bokningssystem. När jag ska ta betalt av kunder som har bokat sina biljetter så söker jag på kundens för eller efternamnet. Resultatet visas i en ListView. Klickar jag sedan i denna ListView på något namn, så kommer den personens info i textboxar och alla de biljetter han har bokat i en ListView2 (i koden heter den lstPBiljett2). Du får nog byta teknik och använda dig av orderrader och på detta sätt skapa nya orderrader för (delleveranser) när man inte plockar ut allting på en gång. Torde vara det enklaste sättet att lösa ditt problem på. Tack för tipset. Men jag löste det med två listboxar. Då jag lägger till en sträng till den andra listboxen så ökas summan och när jag tar bort från denna listbox så minskas summan.Problem med en funktion
Följande scenario kan inträffa och är upphovet till mitt problem:
Låt säga att personen som ringde och bokade biljetter, bokade 5 biljetter varav en av dessa var en barnbiljett. Dagen då föreställningen är kommer ena paret och vill lösa ut sina två biljetter och en timme senare kommer andra paret och vill lösa ut resterande tre biljetterna. Jag vill alltså på något sätt kunna göra delbetalningar. Som det är nu så har jag att man kan markera flera rader i ListView2 och med händelsen klick. Problemet är att jag inte får mina if-satser att fungera och att visa rätt summa i lblPDelsumma2 då man klickar eller tar bort en markering i ListView2.
Skickar med följande kod:
Private Sub lstPBiljett2_Click()
Dim radindex As Integer
radindex = 1
Do While radindex <= (lstPBiljett2.ListItems.Count)
'If lstPBiljett2.ListItems(radindex).Selected = True Then
'*****************Uträkning***********************
If lblPAntal2 <= 2 Then
If lstPBiljett2.ListItems(radindex).Selected = True Then
lblPDelsumma2 = 0
If lstPBiljett2.ListItems(radindex).SubItems(4) = "" Then
lblPDelsumma2 = lblPDelsumma2 + (vuxenpris * radindex)
Else
lblPDelsumma2 = lblPDelsumma2 + ((vuxenpris * radindex) - (barnpris * radindex))
End If
End If
ElseIf lblPAntal2 >= 2 And lblPAntal2 <= 4 Then
If lstPBiljett2.ListItems(radindex).SubItems(4) = "" Then
lblPDelsumma2 = (vuxenpris * lblPAntal2) - (rabatt * lblPAntal2)
Else
lblPDelsumma2 = ((vuxenpris * lblPAntal2) - (barnpris * lblPBarn2) - (rabatt * lblPAntal2))
End If
ElseIf lblPAntal2 > 4 Then
If lstPBiljett2.ListItems(radindex).SubItems(4) = "" Then
lblPDelsumma2 = (vuxenpris * lblPAntal2) - (rabatt2 * lblPAntal2)
Else
lblPDelsumma2 = ((vuxenpris * lblPAntal2) - (barnpris * lblPBarn2) - (rabatt2 * lblPAntal2))
End If
End If
'**************************************************
'End If
radindex = radindex + 1
Loop
End Sub
Hoppas att ni förstårSv: Problem med en funktion
Så när första "köpet" görs skapar du en orderrad med låt säga 2 biljetter. Sen när du tittar i orderhuvudet så står det totalt 5 biljetter. Alltså är det 3 ohämtade. Sen när nästa kommer och beställer , kanske de 3 resterande så skapar du en orderrad till med dessa. På så sätt är biljetterna avhämtade i 2 delleveranser.
/PelleSv: Problem med en funktion