[ SamSvojDžigibaja @ 19.01.2003. 11:51 ] @
Da li neko zna kako osvježiti agregatnu funkciju u datatableu pri brisanju row-a? |
[ SamSvojDžigibaja @ 19.01.2003. 11:51 ] @
[ SamSvojDžigibaja @ 19.01.2003. 12:42 ] @
u .Net-u?
[ degojs @ 22.01.2003. 17:59 ] @
Mozemo li da vidimo malo koda?
[ SamSvojDžigibaja @ 23.01.2003. 19:25 ] @
Dolazi i kod:
Dim dtGlupaTabela As New DataTable() Sub BasJeGlupOvajDataTable() Dim KolonaZaUnos As New DataColumn("Kol", GetType(System.Double)) Dim SumKolona As New DataColumn("SumKol", GetType(System.Double), "sum(Kol)") dtGlupaTabela.Columns.Add(KolonazaUnos) dtGlupaTabela.Columns.Add(SumKolona) Me.DataGrid1.DataSource = dtGlupaTabela End Sub Sub NistaOdOvogaNeRadi(ByVal EvoDaProbamoDelete As Boolean) Dim RedZaBrisanje As DataRow If EvoDaProbamoDelete Then dtGlupaTabela.Rows(0).Delete() Else RedZaBrisanje = dtGlupaTabela.Rows(0) End If dtGlupaTabela.Rows.Remove(RedZaBrisanje) dtGlupaTabela.Rows(0).EndEdit() dtGlupaTabela.AcceptChanges() End Sub Sub AlNeLeziVraže(ByVal SamoNijeOvoElegantno As Boolean) If SamoNijeOvoElegantno Then dtGlupaTabela.Rows(0)(0) = dtGlupaTabela.Rows(0)(0) End If End Sub Evo, ja bih ubacio u kolonu Kol rows(0)=2,rows(1)=2,rows(0)=3 I dobio u koloni SumKol=7 A kad izbiršem neki red da mi sam preracuna, a ne da moram napraviti ColimunChanged event u 'AlNeLeziVraže' sub-u. Jel tražim puno od Micorsofta? P.S. Jel ko imao problema sa printanjem Crystal Reportsa ili novog Document objekta iz .Net-a na Win98 [ Deep|Blue @ 29.01.2003. 00:48 ] @
a da ne ocekujes mozda bil gejtsa da dojase na belom konju i sabere ti redove kad ti obrises neki???
sta tu sabiras? imas dve kolone i sabiras vrednosti prve i ispisujes u drugoj? jel nuzno to? [ SamSvojDžigibaja @ 30.01.2003. 21:32 ] @
Ako želiš imati stavke u gridu i sumu u Text Boxu ispod, ovo je jednostavniji način od dodati relaciju, pa u master tabeli držati agregatnu funkciju.
[ degojs @ 06.02.2003. 06:24 ] @
Nije li svrha agregatnih funkcija upravo izbegavanje drzanja podataka ako se dobivaju pomocu istih iz postojecih podataka?
[ SamSvojDžigibaja @ 06.02.2003. 19:16 ] @
Stavke jednom zahvatim, stavim u data set, i korisnik vidi i stavke i sumu tih stavki. Sumu računa klijent, a ne na SQL server, sum funkcijiom iz dataseta , a ne sql sum funkcijom.
Po meni, glupo bi bilo opet zahvaćati isti skup podataka iz baze, sa diska, pa da mi sql računa sumu!? [ degojs @ 07.02.2003. 18:36 ] @
Nemam vremena ovih dana nikako da se malo pozabavim tim (verovatno cu uspeti da uhvatim par sati preko vikenda ;) ali jesi li pokusao da koristis DataView?
[ degojs @ 08.02.2003. 16:54 ] @
Aha, ti hoces da se dinamicki menja suma. Pa kad dodas/izbrises/promenis neki row ti sam promeni vrednost textbox-a gde ispisujes sumu vrednosti.
[ SamSvojDžigibaja @ 09.02.2003. 12:42 ] @
Znam da mogu reći :
dim R as datarow, K as datatable, suma as currency For each r in K.rows suma +=r(0) next r textbox.text=Suma ali onda 2X prelazim sve redove. Prvi put to radi sum funkcija. Osim toga, ovo ima 4 reda koda a primjer koji sam naveo iznad ima samo jedan red. Radi se o tome da DataSet ne sumira ponovo svoju funkciju na event delete . Na Add i Update on to radi. (Jer se desi ChangeColumn event) On se može i vještački izazvati (vidi kod), (tako sam i uradio),ali moraš priznati nije neko genijalno riješenje (suma.text=suma.text) riješenje. Samo sam se pitao da li je to neko riješio na pametniji način.. [ degojs @ 09.02.2003. 22:08 ] @
Pa ne moras da prolazis kroz sve zapise. Dovoljno je da samo jednom, na pocetku, dobijes sumu, a kasnije je samo povecavas/smanjujes kada korisnik vrsi izmene u nekom zapisu. Nesto poput (za update):
suma = suma - staraVrednost + novaVrednost (naravno za delete akciju novaVrednost = 0, a za add akciju staraVrednost = 0), cime ces da izbegnes ponovni prolazak kroz sve zapise. [ SamSvojDžigibaja @ 10.02.2003. 23:42 ] @
Stvar radi na ColumnChanged event odnostno za Add i Update akcije, ali ne i za Delete. Tako da sam ovo vještački izazvao row(0).DataColumn.Vrijednost=row(0).DataColumn.Vrijednost.
Samo sam se nadao da ima nekakav elegantni Refresh.. Hvala na trudu.. Copyright (C) 2001-2024 by www.elitesecurity.org. All rights reserved.
|