VB_Uzimanje i sabiranje vrednosti iz ListBox-a... da li znate?

sist_ing

Zainteresovan član
Poruka
349
Trenutno privodim kraju jedan program koji služi za unos i skladištenje podataka naručilaca nekih artikala poput: knjiga, CD/DVD-a i još nekih stvari. Program i pored unosa i skladištenja ima kontrole za: prikaz cene po artiklu, naručene količine i iznos uplate naručioca i još mnoge druge kontrole koje ću neke od njih kasnije spomenuti. Prilikom unosa, program prihvata podatak iz: cene po artiklu, množi ga sa naručenom količinom, oduzima za iznos uplate naručioca i prosleđuje rezultat kontroli za ostatak duga i to se naravno, upisuje i čuva u bazu. Kada se prilikom pretraživanja određene osobe pokrene pretraživač, uzimaju se podaci iz kontrola "Nazivi artikala - ListBox" a ima ih tri: (knjige, CD/DVD i ostalo) tražene osobe i prosleđuje se kontroli "Spisak neplaćenih narudžbina - ListBox" tu stoje svi proizvodi ili artikli koje je neki naručilac naručio a nije platio. Na isti način uzima vrednost iz kontrola za ostatak duga (a ima ih takođe tri) i prosleđuje je kontroli "Ostaci dugova - ListBox" i tu su svi ostaci dugova za svaki artikal koje je neki naručilac naručio a nije u celosti platio. E sad, moj problem se ovde javlja. Problem mi je da, iz koda, uzmem sve vrednosti iz jedne kontrole "Ostaci dugova - ListBox" kako bi mogao da ih izračunam tj. saberem i zbir dodelim kontroli "Ukupan dug - TextBox". Ništa mi drugo nije problem, problem mi je ono prvo: Kako uzeti vrednosti iz ListBox-a, koliko ih god ima, da bi ih mogao obraditi i proslediti dalje?

Pitanja: Da li je moguće da se iz ListBox-a uzmu sve vrednosti (koliko ih god bude) i saberu kako bi se kasnije zbir dodelio TextBox-u i kako? Ako nije moguće, koja bi kontrola to mogla da odradi i naravno, na koji način? Ako bi neko mogao da mi pomogne savetom ili nekim primerom koda bio bi mu zahvalan...
 
Odgovor na Pitanje:


Naravno da je moguce!

Ako su u ListBox-u samo vrednosti koje treba sabrati onda:

Kod:
       For i = 0 To ListBox.Items.Count - 1
             total += ListBox.Items.Item(ctr)
      Next
TextBox.Text = total


Ali ako su u ListBoxu samo stavke bez cena onda treba koristiti duplu petlju i proveru..

Kod:
       For i = 0 To ListBox.Items.Count - 1

            Stavke = ListBox.Items.Item(ctr)

       For c = 0 To NekiNizSaIstimStavkama- 1
            if Stavke = NekiNizSaIstimStavkama(c) then
             total += DrugiNizSaCenamaStavki(c)
           end if
       Next

       Next


Taklo nekako bi to islo...

Poz
sale
TextBox.Text = total
 
Hvala Sale na primeru... to je ono što mi treba.

Evo kako to kod mene ide:

Kod:
Dim i As Long
Dim zbir As Double

    For i = 0 To List1.ListCount - 1
      zbir = zbir + CDbl(List1.List(i))
    Next

txtTotal.Text = zbir

Ako koristite Val() funkciju treba da znate da ona poznaje samo "." kao decimalni separator nezavisno od lokalnog podešavanja, pa može da se desi sledeći slučaj:


Dim strVrednost As String
Dim dblVrednost As Double

strVrednost = 45.5 'dodela vrednosti promenljivoj tipa string - ako je deć. sep. na sistemu "," onda vrednost postaje "45,5"
dblVrednost = Val(strVrednost) 'promenljiva uzima vrednost 45

Zbog toga je bolje koristiti CDbl() funkciju!
 

Back
Top