opsomming maken

Status
Niet open voor verdere reacties.

jaccovh

Gebruiker
Lid geworden
13 feb 2012
Berichten
213
hallo.
ik maak een restaurant programma.
en dan moet ik een lijst kunnen maken met wat de bezoeker heeft besteld.
hoe moet ik ervoor zorgen dat ik een lijst maak en als ik dan op een product klik dat het erbij word gedaan en niet de andere overlap?

alvast bedankt
jacco
 
In het voorbeeld gebruiken we even een listbox genaamd bestelling.


druk op button1 (friet met mayo? :D) dan

Bestelling.Items.Add("Friet met mayo")

[EDIT]
of je gebruikt 2 listboxen 1 met gerechten 1 met de bestelling dan kan je het zo doen:

Als je dan dubbelklikt op een gerecht komt hij in de bestelling listbox
Code:
 Private Sub gerechten_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles gerechten.DoubleClick
bestelling.items.add(gerechten.selecteditem)
    End Sub

[/EDIT]
 
Laatst bewerkt:
bedankt, super simpel en toch niet aan gedacht.
weet iemand het ook met een database? want indien het systeem/programma uitvalt heb je toch de bestellingen enzo.
 
Database Restaurant.

Als je het niet erg vind, zal ik dat ook even uitleggen =)

maak een project (ik noem de mijne S.O.S = Simple ordering system) LET op: typ geen S.O.S want dan werkt je ding niet met opslaan :D
Maak alvast een form met daarin een overzichtelijk systeem om de gerechten te organiseren.
Ik doe een combobox met 2 categorieen 1 is eten 2 is drinken.
Als je dan in de combobox eten selecteerd zal een listbox (die eronder staat) gevuld worden met een aantal gerechten.
In een echte applicatie zou je dit natuurlijk veel uitgebreider doen (e.g voorgerecht - soep , voorgerecht - vis, Etc...)
Maak ook meteen een basis lay-out van je app.

hier is de mijne:
[smallimg] http://img850.imageshack.us/img850/3753/sose.jpg [/smallimg]

Dubbelklik op de combobox en zet er deze code in:
Code:
    If CmbboxCat.SelectedItem = "Eten" Then
            Listboxgerechten.Items.Clear()
            Listboxgerechten.Items.Add("Friet met mayo.")
            Listboxgerechten.Items.Add("Gebakken vis met aardappeltjes.")
            Listboxgerechten.Items.Add("Lam gerold in parmaham.")
        ElseIf CmbboxCat.SelectedItem = "Drinken" Then
            Listboxgerechten.Items.Clear()
            Listboxgerechten.Items.Add("Cola.")
            Listboxgerechten.Items.Add("Sinas.")
            Listboxgerechten.Items.Add("Water.")
        End If

Dan gaan we nu een database toevoegen.
Ga naar Project>Add new item (of druk op CTRL+Shift + A)
Scroll naar beneden en kies voor "Service based database"
In het volgende scherm kun je meteen op Finish drukken.

Dubbelklik vervolgens aan de rechterkant in je solution explorer op Database1.mdf
Dan zal het scherm "Server explorer openen".
Klik daar met de rechtermuisknop op "Tables" en kies voor Add new table.

serverexplorer.jpg


Maak in het volgende scherm een Column name aan genaamd OrderID, zet het Data type op Int.
Verander onder in de properties lijst Isinteger naar Yes.
(misschien moet je even op het pijltje drukken, rood omcirkelt op de afbeelding.)
[smallimg]http://img818.imageshack.us/img818/1723/isidentity.png[/smallimg]

Maak van OrderID ook meteen je primary key, dit doe je door met de rechtermuisknop op het pijltje aan de linkerkant van colum name te drukken en "Set primary key" aan te klikken

[smallimg]http://img196.imageshack.us/img196/6353/primaryket.png[/smallimg]

Maak nog een aantal andere Columns aan, zonder primary key, en kies varchar(50) als datatype (varchar 50 betekent dat er in het veld maximaal 50 char's (tekens) mogen staan. Moet dit meer zijn doe dan varchar(1000) O.I.D).
Ik doe dit even en plaats dan een nieuwe foto:

tabley.jpg
.

Als je klaar bent druk dan op het kruisje, geef de tabel een naam en druk op ok. (het kruisje staat in de vorige afbeelding rood omcirkelt.)
Ik noem de mijne "bestelling".

Nu moet je een Datasource toevoegen aan je applicatie, dit doe je door bovenin op Data > Show data sources te drukken.(Shift + alt + D)
Het venster data sources zal dan openen, en daar staat als het goed is "database1dataset", klik daar met de rechtermuisknop op en kies voor configure datasource with wizard.

dataset.png


Zet een vinkje in het Tables en klik op finish.
[smallimg]http://img821.imageshack.us/img821/3184/datesourcewizard.png [/smallimg]

Klik daarna op het kleine pijltje naar beneden naast Bestelling en kies voor details.
datasourcedetails.jpg


Sleep daarna het woord Bestellingen op je form, en organiseer de cellen wat in het bovenste gedeelte..


Zet in je datasources window bestellingen terug op datagridview I.p.v details. en sleep hem op je form, plaats deze in de onderste groupbox.
dan krijg je dit:

[smallimg]http://img526.imageshack.us/img526/7563/sosdatagrid.jpg[/smallimg]

Nu moet je nog hel dubbelklikken op de listbox maken. dubbelklik op de listbox en maak er een dubbelklik event ervan.
dit doe je door te klikken in het selectedindexchanged event dat automatisch gemaakt wordt als je dubbelklikt op de listbox.
Klik daarna rechtsboven op selectedindexchanged en verander dat in doubleclick, er zal dan een nieuw event worden aangemaakt dat er zo uitziet
Code:
    Private Sub listboxgerechten_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles listboxgerechten.DoubleClick
    
    End Sub

voeg daar deze code toe:
Code:
   Dim Gerecht As String = Nothing

        If HoofdgerechtTextBox.Text = "" Then
            For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
            HoofdgerechtTextBox.Text = Gerecht
        Else
            For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
            HoofdgerechtTextBox.Text = HoofdgerechtTextBox.Text & vbNewLine & Gerecht
        End If

Nu werkt je applicatie, je moet alleen wat meer categorieen maken en je dubbelklikcode wat aanpassen. Verder kun je natuurlijk nog veel andere functies toevoegen en er veel mee rond spelen.

Ik zal de Sourcecode ook bijvoegen, die kan je hier vinden.

succes :D
Groet Rick van Lieshout, A.K.A Mastermindzh.
 
dat is me gelukt maar ik heb 2 problemen
als ik drinken bij de bestellingen doe komt het bij hoofdegerecht,
en het programma is voor alle tafels tegelijkertijd.

ik zal je wel laten zien wat ik nu heb en dan kan jij miscchien kijken hie ik dat precies doe.
dit is de download.

als je hem opstart moet je op tafels klikken. dan heb je 80 tafels (alleen tafel 1 werkt nog).

en dit is wat ik het wil laten doen uit eindelijk:
ik wil voor elke tafel een aparte database kunnen hebben.
ik wil dat als ik een gerecht kies dat hij gelijk in de database staat.
ik wil dat als ik 2 keer cola aanklik dat hij er niet 2 keer in staat mar dat er dan staat "2x cola"
ik wil dat de prijs in het kleine balkje er naast staat (met ook een database).
en dat hij in het kleine balkje er onde de totale prijs uitrekent automatisch.

als jij (of iemand anders) dat kan uitleggen ben je geweldig.
 
en let niet op de andere dingen ik ben pas net begonnen met dit programma. dus 90% werkt nog niet
 
Code:
   Dim Gerecht As String = Nothing

        If HoofdgerechtTextBox.Text = "" Then
            For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
            HoofdgerechtTextBox.Text = Gerecht
        Else
            For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
            HoofdgerechtTextBox.Text = HoofdgerechtTextBox.Text & vbNewLine & Gerecht
        End If

moet dit worden.

Code:
Dim Gerecht As String = Nothing

if combobox1.text = hoofdgerecht then
     If HoofdgerechtTextBox.Text = "" Then
            For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
            HoofdgerechtTextBox.Text = Gerecht
        Else
            For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
            HoofdgerechtTextBox.Text = HoofdgerechtTextBox.Text & vbNewLine & Gerecht
        End If

[COLOR="#FF0000"]if combobox1.text = toetje then
      if toetjestextbox.text = "" then

        For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
   toetjestextbox.text = Gerecht
else
   For i As Integer = 0 To listboxgerechten.SelectedItems.Count - 1
                Gerecht = listboxgerechten.SelectedItem
            Next
   toetjestextbox.text = toetjestextbox.text & vbnewline &  Gerecht
end if[/COLOR]

End if

dat rode moet je dan namaken voor alle koersen.

je zou voor het probleem met de cola altijd kunnen tellen hoevaak je op cola klikt, denk dan aan

dim colacount as integer = 0

if listboxgerechten.selecteditem = cola then
colacount + 1
drinkentextbox.text = drinkentextbox & vbnewline & colacount & " " & "Cola"
end if



[EDIT]In je download zie ik geen database :D [/EDIT]
 
Laatst bewerkt:
ik heb het opgelost ja, maar ik heb ook nog geen database nee. zou jij kunnen kijken (of iemand anders) hoe je dat goed doet met het gene wat ik heb gemaakt?
 
Hier kan je hem downloaden.

Hij slaat hem nu op NA IEDER gerecht, dus al valt je app uit dan is je laatste gerecht nog opgeslagen.

ook zet hij de gerechten nu in de goede kolom.

De rest daar mag je zelf aan werken, Ik ga nu voorlopig :D

Tot morgen!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan