Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

ProgressBar i ucitavanje podataka

[es] :: Visual Basic 6 :: ProgressBar i ucitavanje podataka

Strane: 1 2

[ Pregleda: 5288 | Odgovora: 36 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon ProgressBar i ucitavanje podataka05.02.2007. u 14:48 - pre 209 meseci
Imam bazu sa vise hiljada zapisa.
Da li je moguce istovremeno prikazati i napredovanje na ProgressBaru i ucitavanje podataka u labele na obrascu tj. da se vidi kako se labele popunjavaju podacima.
Moze li ovo da se resi pomocu PictureBoxa?
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: ProgressBar i ucitavanje podataka05.02.2007. u 20:48 - pre 209 meseci
Mozes li precizirati sta podrazumevas pod ucitavanjem podataka u labele na obrascu, tj. da li ovde mislis na formu ili na neki stampani izvestaj. Raspolozen sam da ti postavim ovde opsti primer rada u nekom procesu koji treba da daje informaciju o napredovanju korisniku, ali ne bi bilo lose da ti prvo postavis problem, tj. dokle si stigao - pa da zavrsimo.
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka05.02.2007. u 21:24 - pre 209 meseci
Radi se o formi.
Problem je u tome sto kad povezem PB s tom formom, prvo PB dodje do kraja pa tek posle 10 sec se labele na toj formi popune podacima.
Podaci kojima se popunjavaju labele su rezultat upita.
Za jedno komandno dugme sam vezao i prikazivanje te forme sa labelama i izvrsavanje upita, naravno i PB.
Pokusao sam i sa PictureBoxom ali je opet isto.
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: ProgressBar i ucitavanje podataka05.02.2007. u 21:53 - pre 209 meseci
Da bi sve ispravno funkcionisalo moras koristiti Do Events u petlji u kojoj punis labele i povecavas progres, npr.
Code:

Do While Not rstData.EOF
    
    Do Events

    'Povecavas vrednost progres bara
    'Punis labelu sa tekstom
    
    rstData.MoveNext

Loop
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 20:13 - pre 209 meseci
Sta ovde nije u redu?
S ovim kodom PB startuje tek posto se prikaze Form5 sa ucitanim podacima(popunjene labele).
Gde sam pogresio?

Code:
Private Sub cmdUk_Click()
Do While Not Form2.Adodc2.Recordset.EOF
Timer1.Interval = 1
Timer1.Enabled = True
ProgressBar1.Enabled = True
ProgressBar1.Visible = True
ProgressBar1.Min = 1
ProgressBar1.Max = MSHFlexGrid1.Rows - 1
ProgressBar1.Value = ProgressBar1.Value + 1

UkBroj1 ' f-je koje pune labele
UkBroj2
UkBroj3
UkBroj4
UkBroj5
UkBroj6
UkBroj7
UkBroj8
UkBroj9
UkBroj10

DoEvents
 Form2.Adodc2.Recordset.MoveNext
 Form5.Show
loop
end sub

Private Sub Timer1_Timer()
If ProgressBar1.Value = MSHFlexGrid1.Rows - 1 Then
   Timer1.Enabled = False
   ProgressBar1.Visible = False
End If
End Sub



[Ovu poruku je menjao zormar dana 06.02.2007. u 22:40 GMT+1]

[Ovu poruku je menjao zormar dana 06.02.2007. u 23:23 GMT+1]

[Ovu poruku je menjao krckoorascic dana 09.02.2007. u 13:08 GMT+1]
 
Odgovor na temu

dennycd2

Član broj: 127351
Poruke: 57
*.dynamic.sbb.co.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 21:15 - pre 209 meseci
Prvo, nije mi jasno kako moze petlja da radi do EOF kada u njoj nema MoveNext (nisam primetio ni MoveFirst)? Drugo, cemu sluzi Timer?
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 21:43 - pre 209 meseci
Slucajna greska za MoveNext, dopisao sam.
Mozes li da ispravis ovaj kod da radi ispravno, ili da mi das neki primer da vidim kako to ide?
Sada prijavljuje gresku 3021:
Either BOF or EOF is True, or the current record has been deleted.Requested operation requires a current record.
u redu Form2.Adodc2.Recordset.MoveNext.

[Ovu poruku je menjao zormar dana 06.02.2007. u 23:09 GMT+1]
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
80.74.160.*



+41 Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 22:30 - pre 209 meseci
Citat:
zormar:Sada prijavljuje gresku 3021:
Either BOF or EOF is True, or the current record has been deleted.Requested operation requires a current record.
u redu Form2.Adodc2.Recordset.MoveNext.

[Ovu poruku je menjao zormar dana 06.02.2007. u 23:09 GMT+1]

Verovatno u nekoj od funkcija UkBroj1....UkBroj10 (a po mojoj pretpostavci u svim navedenim) takodje "petljas" sa pozicioniranjem u rekordsetu. Daj primer samo jedne od njih i zavrsavamo ti stvar.
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 22:38 - pre 209 meseci
Evo kod za Label1, i tako se nastavlja.
Popunjavanje forme sa labelama je sasvim u redu.
Code:


Function UkBroj1()
   dblSuma = 0  
 dblKriterijum = 1

   If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst
   Do While Not Form2.Adodc2.Recordset.EOF   '
               If Form2.Adodc2.Recordset("PRVI") = dblKriterijum Then
                  dblSuma = dblSuma + 1
              End If
         Form2.Adodc2.Recordset.MoveNext
    Loop
   If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst
   Do While Not Form2.Adodc2.Recordset.EOF
               If Form2.Adodc2.Recordset("DRUGI") = dblKriterijum Then
                  dblSuma = dblSuma + 1
              End If
         Form2.Adodc2.Recordset.MoveNext
    Loop
      If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst
   Do While Not Form2.Adodc2.Recordset.EOF
               If Form2.Adodc2.Recordset("TRECI") = dblKriterijum Then
                  dblSuma = dblSuma + 1
              End If
         Form2.Adodc2.Recordset.MoveNext
    Loop
      If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst
    Do While Not Form2.Adodc2.Recordset.EOF
               If Form2.Adodc2.Recordset("CET") = dblKriterijum Then
                  dblSuma = dblSuma + 1
              End If
            Form2.Adodc2.Recordset.MoveNext
    Loop
   If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst
   Do While Not Form2.Adodc2.Recordset.EOF   '
               If Form2.Adodc2.Recordset("PETI") = dblKriterijum Then
                  dblSuma = dblSuma + 1
               End If
         Form2.Adodc2.Recordset.MoveNext
    Loop
Form5.Label1.Caption = dblSuma
end function



[Ovu poruku je menjao krckoorascic dana 09.02.2007. u 13:08 GMT+1]
 
Odgovor na temu

dennycd2

Član broj: 127351
Poruke: 57
*.dynamic.sbb.co.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 22:46 - pre 209 meseci
Analiziraj ovaj kod, prvo sa "DoEvents", a posle bez. Nadam se da ce ti biti mnogo jasnije.
Prikačeni fajlovi
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
217.24.27.*



+41 Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 23:02 - pre 209 meseci
Joooj, ajde malo vise ubuduce, da ne glumimo detektive ;)

Znaci, ideja je da kad korisnik klikne na "cmdUk" dugme, ti izracunas sume i popunis labele, zar ne? Posto je to duzi proces, ti si zamislio jedan progresbar koji ce da daje informaciju o napredovanju racunanja, zar ne?
Labele ti sluze za zbir svih vrednosti po kolonama i redovima koje odgovaraju
nekoj odredjenoj vrednosti dblKriterijum, zar ne?

Ako je to sve tako, kao sto sam pretpostavio (a ti nisi dovoljno jasno objasnio) onda bi kao prva primedba bila sam nacin kako dolazis do pojedinacne sume: za svaku pojedinacnu sumu ti se pozicioniras na odredjenu kolonu, pa onda od pocetka do kraja ispitujes i sabiras, da bi to isto ponovo radio za drugu kolonu ... umesto da sve uradis u jednom prolazu!!!

Ako je ta tvoja funkcija u izvornom obliku kako je koristis, ja bi onda ovako to napravio: umesto tih tvojih 10 funkcija, napravio bih jednu sa parametrom dblKriterijum:
Code:

Function UkBroj(byval dblKriterijum As Double) As Double
Dim dblSuma As Double

dblSuma = 0

If Form2.Adodc2.Recordset.RecordCount > 0 Then Form2.Adodc2.Recordset.MoveFirst

Do While Not Form2.Adodc2.Recordset.EOF '

If Form2.Adodc2.Recordset("PRVI") = dblKriterijum Then
    dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("DRUGI") = dblKriterijum Then
    dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("TRECI") = dblKriterijum Then
    dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("CET") = dblKriterijum Then
    dblSuma = dblSuma + 1
End If
If Form2.Adodc2.Recordset("PETI") = dblKriterijum Then
    dblSuma = dblSuma + 1
End If

Form2.Adodc2.Recordset.MoveNext

Loop

UkBroj = dblSuma

End Function

Naravno, ovaj kod bi se dao jos poprilicno srediti, ali sta je tu je ;)

Sada bi tvoja glavna procedura izgledala ovako:
Code:

Private Sub cmdUk_Click()
Dim varKriterijumi
Dim intCounter As Integer

varKriterijumi = Array(11, 22, 33, 44, 55, 66, 77, 88, 99, 110) ' ovo bi trebalo da budu tvoji kriterijumi, ja sam stavio neke bezveze vrednosti

ProgressBar1.Visible = True
ProgressBar1.Min = 1
ProgressBar1.Max = 10

For intCounter = 0 To UBound(varKriterijumi)

    DoEvents
    Form5.Controls("Label" & (intCounter + 1)).Caption = UkBroj(varKriterijumi(intCounter))
    ProgressBar1.Value = ProgressBar1.Value + 1

Next

ProgressBar1.Visible = False

Form5.Show

end sub

Naravno, Timer ti ni ne treba!

Ako ne radi nesto, izvini, sve sam pisao direktno kroz ES. Bitna je ideja, dalje ces se valjda snaci.
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl-1.sezampro.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka06.02.2007. u 23:23 - pre 209 meseci
Sad je sve jasno.
Zahvaljujem obojici na pomoci.
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
*.adsl.sezampro.yu.



Profil

icon Re: ProgressBar i ucitavanje podataka27.02.2007. u 20:58 - pre 208 meseci
Ovaj prethodni kod, prilagodjen mom programu, je normalno radio.
Sad mi izbacuje Error 9:Subscript out of rang.
Sta se tu poremetilo, sta nije u redu?
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: ProgressBar i ucitavanje podataka27.02.2007. u 23:48 - pre 208 meseci
Znas i sam sta sad sledi: Postavi kod
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
212.200.223.*



Profil

icon Re: ProgressBar i ucitavanje podataka28.02.2007. u 08:52 - pre 208 meseci
Evo kod:
Code:

Private Sub cmdPoBrojevima_Click()
Dim varKriterijumi
Dim intCounter As Integer

varKriterijumi = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)

For intCounter = 0 To UBound(varKriterijumi)
    DoEvents
    Form4.Controls("Label" & (intCounter + 1)).Caption = Broj(varKriterijumi(intCounter))
Next

Form4.Show ' ovde se nalaze labele u koje se upisuju sume

Adodc1.Refresh
MSHFlexGrid1.ColAlignment = flexAlignCenterCenter
End Sub


Ovo je u modulu :
Code:

Function Broj(ByVal dblKriterijum As Double) As Double
Dim dblSuma As Double

dblSuma = 0

If Form2.Adodc1.Recordset.RecordCount > 0 Then Form2.Adodc1.Recordset.MoveFirst
Do While Not Form2.Adodc1.Recordset.EOF 

    If Form2.Adodc1.Recordset("GOD") = dblKriterijum Then
      dblSuma = dblSuma + 1
    End If

Form2.Adodc1.Recordset.MoveNext
Loop
Broj = dblSuma

End Function
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.DIALUP-SMIN.neobee.net.



+41 Profil

icon Re: ProgressBar i ucitavanje podataka28.02.2007. u 09:15 - pre 208 meseci
Problem je u tome sto imas neku labelu koja nema naziv Label & (intCounter + 1) - znaci imas na formi Label1, Label2 ...... pa sve do Label25, ali jednu od njih nisi dobro imenovao. Ako nije to, ne znam sta drugo moze biti, jer je sve ostalo korektno.
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
212.200.223.*



Profil

icon Re: ProgressBar i ucitavanje podataka28.02.2007. u 09:52 - pre 208 meseci
Proverio sam, sto se tice labela sve su korektno imenovane.
Ovaj kod imam na jos 2 mesta u programu i tu radi bez problema.
pozdrav
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: ProgressBar i ucitavanje podataka28.02.2007. u 10:18 - pre 208 meseci
Pomoglo bi ako bi naznacio red u kom dolazi do navedene greske.
 
Odgovor na temu

zormar

Član broj: 129240
Poruke: 176
212.200.223.*



Profil

icon Re: ProgressBar i ucitavanje podataka28.02.2007. u 13:23 - pre 208 meseci
Gresku prijavljuje u ovom redu:
Code:
Form4.Controls("Label" & (intCounter + 1)).Caption = Broj(varKriterijumi(intCounter))

Usput ako znas da mi kazes da li je usled strujnog udara moglo da dodje do ostecenja hard diska - pojavio se bad sektor.
 
Odgovor na temu

goranvuc
Goran Vucicevic
Novi Sad

Član broj: 4934
Poruke: 1846
*.dialup.neobee.net.



+41 Profil

icon Re: ProgressBar i ucitavanje podataka28.02.2007. u 13:29 - pre 208 meseci
Greska se javlja tamo gde sam i mislio, samo je izgleda nesto drugo u pitanju, a to drugo mi lici na sledeci problem:

Da li ti se u formi koja sadrzi tvoj kod, u delu za deklaracije na nivou modula (bukvalno receno, na pocetku koda forme) nalazi mozda tekst "Option Base 1" ili nesto slicno?
 
Odgovor na temu

[es] :: Visual Basic 6 :: ProgressBar i ucitavanje podataka

Strane: 1 2

[ Pregleda: 5288 | Odgovora: 36 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.