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

FlexGrid-sabiranje celija u jednom zapisu

[es] :: Visual Basic 6 :: FlexGrid-sabiranje celija u jednom zapisu

[ Pregleda: 488 | Odgovora: 8 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zormar

Član broj: 129240
Poruke: 149
*.adsl-3.sezampro.yu.



Profil

icon FlexGrid-sabiranje celija u jednom zapisu13.09.2007. u 22:33

Kako sabrati celije iz jednog zapisa FlexGrida u koje su upisani brojevi manji od 10, i taj zbir prikazati u labeli?
13.09.2007. u 22:33 

rgdrajko
Beograd

Član broj: 117734
Poruke: 611
80.93.249.*

Sajt: www.enigmatika.zzl.org


Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu14.09.2007. u 19:15
Evo.

Code:

Private Sub Form_Load()
    Dim zbir As Integer
    
    Randomize Timer
    
    MSFlexGrid1.Cols = 10
    MSFlexGrid1.Rows = 10
    
    'Spoljasnje odbrojcavanje sivih polja
    For k = 0 To MSFlexGrid1.Cols - 1
        MSFlexGrid1.TextMatrix(0, k) = k
    Next k
    For r = 0 To MSFlexGrid1.Rows - 1
        MSFlexGrid1.TextMatrix(r, 0) = r
    Next r
    
    'Upisivanje slucajnih brojeva od 0 do 9 kao proba
    For k = 1 To MSFlexGrid1.Cols - 1
        For r = 1 To MSFlexGrid1.Rows - 1
            MSFlexGrid1.TextMatrix(r, k) = Int(Rnd * 10)
        Next r
    Next k
    
    'Sabiranje svih kolona prvog reda
    zbir = 0
    For k = 1 To MSFlexGrid1.Cols - 1
        zbir = zbir + Val(MSFlexGrid1.TextMatrix(1, k))
    Next k
    
    'Zbir svih kolona prvog reda
    Label2.Caption = zbir
    
    
    'Sabiranje svih redova prve kolone
    zbir = 0
    For r = 1 To MSFlexGrid1.Rows - 1
        zbir = zbir + Val(MSFlexGrid1.TextMatrix(r, 1))
    Next r
    
    'Zbir svih redova prve kolone
    Label4.Caption = zbir
    
    
    
End Sub


Prikačeni fajlovi
14.09.2007. u 19:15 

Marko_L
Marko Lošonc
Project Manager, Maxifer d.o.o
Beograd

Moderator
Član broj: 20532
Poruke: 2109
89.216.223.*

Jabber: Marko_L@elitesecurity.org
ICQ: 249407402
Sajt: www.jurassicsoft.com


Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu15.09.2007. u 06:11
Ovako, nisam siguran da li misliš na jednu kolonu, jedan red ili kompletan grid gde su vrednosti manje od 10, ali evo i sva tri rešenja.

Sabrati samo jednu kolonu:
Code:
Private Function SumColumn(lColumn As Long) As Long
Dim i As Long
Dim lZbir As Long
lZbir = 0
For i = 1 To MSFlexGrid1.Rows - 1
If Val(MSFlexGrid1.TextMatrix(i, lColumn)) < 10 Then lZbir = lZbir + Val(MSFlexGrid1.TextMatrix(i, lColumn))
Next i
SumColumn = lZbir
End Function


Sabrati samo jedan red:
Code:
Private Function SumRow(lRow As Long) As Long
Dim i As Long
Dim lZbir As Long
lZbir = 0
For i = 1 To MSFlexGrid1.Cols - 1
If Val(MSFlexGrid1.TextMatrix(lRow, i)) < 10 Then lZbir = lZbir + Val(MSFlexGrid1.TextMatrix(lRow, i))
Next i
SumRow = lZbir
End Function


Sabrati ceo grid
Code:
Private Function SumGrid() As Long
Dim i As Long
Dim j As Long
Dim lZbir As Long
lZbir = 0
For i = 1 To MSFlexgrid1.Rows - 1
   For j = 1 To MSFlexgrid1.Cols - 1
   If Val(MSFlexGrid1.TextMatrix(i, j)) < 10 Then lZbir = lZbir + Val(MSFlexGrid1.TextMatrix(i, j))
   Next j
Next i
SumGrid = lZbir
End Function


Primetićeš da sam izračunavanje stavio u funkcije, što je uvek dobra praksa, jer dobijamo na fleksibilnosti. Ovako ne moraš da se vežeš za jednu labelu ili samo jedan red ili kolonu, već jednom linijom koda pozivaš ono što ti treba i smeštaš gde god ti želiš. Recimo... Hoćeš da sabereš samo drugi red i smestiš u Label1, samo ukucaš
Code:
Label1.Caption = SumRow(2)

ili hoćeš treću kolonu u textbox
Code:
Text1.Text = SumColumn(3)

ili ceo grid u drugu labelu
Code:
Label2.Caption = SumGrid

Uz malo dorade, mogao bi da prosleđuješ i vrednost ispod koje treba sabirati brojeve, prostim dodavanjem još jedne varijable kojom ćeš zameniti broj 10, no da ne dužimo sad.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca m.
-Piše "Insert disk 3", a jedva sam i ova dva ugurao u drajv
-Postoje samo dve osobe kojima verujem, jedna sam ja, a druga nisi ti
15.09.2007. u 06:11 

zormar

Član broj: 129240
Poruke: 149
*.adsl-2.sezampro.yu.



Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu16.09.2007. u 12:44
Hvala obojici na odgovorima, moje pitanje je bilo nejasno.
Radi se o f-ji Count za sabiranje broja celija u jednom zapisu (redu) koje ispunjavaju dati uslov.
16.09.2007. u 12:44 

BinLaden
Ni na nebu ni na zemlji

Član broj: 147476
Poruke: 102
*.teol.net.

Sajt: www.sove-soft.rs.ba


Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu16.09.2007. u 17:53
Ako nije ni ovo onda ne budi skrt na rijecima, i polako objasni sve sta ti treba.
Code:

Dim I as Integer
Dim iCount as Integer
Dim iRow as Integer
     
     iRow = 1 'Ovde odredjujes koji red ispitujes, a ako hoces za sve redove onda ti trba jos jedna petlja 
                 'koja ce prolaziti kroz njih
     
     For I = 0 to MSFlexGrid1.Cols - 1
          If Val(MSFlexGrid1.TextMatrix(iRow, I)) < 10 Then iCount = iCount + 1
     Next I

     Label1.Caption = iCount

Ero S Onoga Sveta
16.09.2007. u 17:53 

zormar

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



Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu17.09.2007. u 11:23
Hvala, to je upravo ono sto mi je trebalo.
17.09.2007. u 11:23 

Marko_L
Marko Lošonc
Project Manager, Maxifer d.o.o
Beograd

Moderator
Član broj: 20532
Poruke: 2109
89.216.223.*

Jabber: Marko_L@elitesecurity.org
ICQ: 249407402
Sajt: www.jurassicsoft.com


Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu17.09.2007. u 13:19
Pa upravo to si i dobio, i to sve u jednoj funkciji, ostalo ti samo da pozoveš SumRow(n) gde je n broj reda koji ti treba.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca m.
-Piše "Insert disk 3", a jedva sam i ova dva ugurao u drajv
-Postoje samo dve osobe kojima verujem, jedna sam ja, a druga nisi ti
17.09.2007. u 13:19 

BinLaden
Ni na nebu ni na zemlji

Član broj: 147476
Poruke: 102
*.teol.net.

Sajt: www.sove-soft.rs.ba


Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu17.09.2007. u 18:44
Citat:
Marko_L: Pa upravo to si i dobio, i to sve u jednoj funkciji, ostalo ti samo da pozoveš SumRow(n) gde je n broj reda koji ti treba.


Vjerovatno nisi dobro gledao razliku izmedju mog i tvog rjesenja odnosno tvoje funkcije SumRow.
Tvoja funkcija zbraja vrijednosti polja koje se nalaze unutar jednog reda, a moja broji koliko takvih
polja ima u redu.

Zbog cega posle deklaracije lokalne promjenjive "lZbir" dodjeljujes joj vrijednost 0 kada je ona po default-u 0?
Da je u pitanju globalna promjenjiva pa ajde, imalo bi svrhe, ili ja mozda ne znam nesto sto bi trebao?

Ero S Onoga Sveta
17.09.2007. u 18:44 

Marko_L
Marko Lošonc
Project Manager, Maxifer d.o.o
Beograd

Moderator
Član broj: 20532
Poruke: 2109
89.216.223.*

Jabber: Marko_L@elitesecurity.org
ICQ: 249407402
Sajt: www.jurassicsoft.com


Profil

icon Re: FlexGrid-sabiranje celija u jednom zapisu17.09.2007. u 18:59
Citat:
Vjerovatno nisi dobro gledao razliku izmedju mog i tvog rjesenja odnosno tvoje funkcije SumRow.
Tvoja funkcija zbraja vrijednosti polja koje se nalaze unutar jednog reda, a moja broji koliko takvih
polja ima u redu.

Au jes, u pravu si, nisam obratio pažnju uopšte. Izvinjavam se.
Citat:
Zbog cega posle deklaracije lokalne promjenjive "lZbir" dodjeljujes joj vrijednost 0 kada je ona po default-u 0?
Da je u pitanju globalna promjenjiva pa ajde, imalo bi svrhe, ili ja mozda ne znam nesto sto bi trebao?

Profesionalna deformacija :) Navikao sam da uvek dodeljujem početnu vrednost promenljive, čak i kada je ona nula (ili "" ako je u pitanju string). Naravno, nije greška izostaviti to.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca m.
-Piše "Insert disk 3", a jedva sam i ova dva ugurao u drajv
-Postoje samo dve osobe kojima verujem, jedna sam ja, a druga nisi ti
17.09.2007. u 18:59 

[es] :: Visual Basic 6 :: FlexGrid-sabiranje celija u jednom zapisu

[ Pregleda: 488 | Odgovora: 8 ]

Postavi temu Odgovori

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