DataGridView počítání   zodpovězená otázka

VB.NET, Komponenty, WinForms

Ahoj, mohl byjste mi někdo poradit? Potřeboval bych v DataGridView např. v pátém sloupci součet sloupců 1-4 s čísly a nevím si s tím rady. Jsem začátečník a nikde to nemůžu najít. Za rady děkuji.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud používáte jako zdroj dat DataTable (Databinding), potom tato DataTable může mít sloupec jehož hodnota je dynamicky vypočítávána z ostatních sloupců (nebo funkcí podobných VB). Slouží k tomu vlastnost Expression.

http://msdn.microsoft.com/en-us/library/...

'Hodnota sloupce 5 bude odpovídat součtu sloupců 1-4
'(název sloupců ve výrazu odpovídá názvu sloupců v databázi)
DataColumn5.Expression = "Column1 + Column2 + Column3 + Column4"

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ale já právě nevim kam to mam psát. Mám to jako úkol do školy a nějak to nepobírám.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Důrazně vás žádám, abyste zde vícekrát se svými primitivními školními úlohami neotravoval!

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Proč tak zhurta? Vždyť si pro vás pitomostí nemusíte všímat. Dokud tazatel neuvedl, že jde o školní úlohu, tak jste dotaz za pitomý nepovažoval.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Protože zde není žádný helpdesk a já nehodlám řešit za někoho naprosto neschopného školní úkoly. Pokud někdo něčemu nerozumí nebo se chce něco naučit tak není problém, ale toto zde tolerovat nebudu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Prepáčte páni, že sa Vám do toho miešam. Ale táto otázka bola zaujímavá, aj keď pre úplných začiatočníkov, ale aj na také otázky, kto chce a vie, by mohol odpovedať. Veď je to všetko o VB .Net. A pán, ktorý sa pýtal bol aspoň úprimný.

Príjemný večer!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To jsi asi špatně pochopil, já jsem učitel na základní škole, vyučuji informatiku a zkouším se naučit pracovat s Visual Basicem a chtěl bych si pro sebe udělat malý program pro přehlednost mého rozvrhu.Zkoušel jsem si to sčítání najít na internetu, ale ty příklady co tam jsou tak jsem nějak nepobral.

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Jste učitel a máte to jako úkol? Kdo vás takto úkoluje? A přitom úkol děláte pro sebe. Nějak mi vaše zdůvodnění neladí, učiteli.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jako osobní úkol a od ostatních učitelů. Požádali mně jestli bych mohl udělat jednoduchou aplikaci. Myslel jsem že to bude jednoduché, ale.... Sned to seženu na jiném fóru.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mohl byste úlohu udělat v Excelu nebo Calcu a ve VB.net začít s něčím podle zdejších návodů. Tohoto fóra byste si měl považovat, i když jste tu napoprvé moc nepochodil. K VB.net lepší nenajdete!

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Překvapuje mne absolutně nulový sociální koeficient zakladatelů tohoto webu. Už několikrát jsem tu byl svědkem naprosto netaktních výpadů a ironických poznámek vůči začátečníkům amatérům. Je zvláštní, že jsem se s něčím podobným na zahraničních webech se stejnou problematikou nikdy nesetkal.Asi si vůbec neuvědomují, že i oni kdysi byli neznalí věci a nevěřím tomu, že tou programátorskou genialitou, kterou tady prezentují,oplývali od prvé chvíle programování. Jednoduše nechápu, jak se někdo může takto k druhému chovat jen proto, že něco neví nebo neumí.Pánové, vzali jste si za cíl propagovat VB.NET a vytvořili diskusi.Musíte přece počítat s tím, že se podobné dotazy prostě budou vyskytovat. Pokud na to nemáte dost taktu, tak ji raději raději zrušte nebo web zpřístupněte pouze odborníkům a máte klid.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Překvapuje mne, že jako dospělý člověk a navíc údajně učitel jste schopen splodit dotaz "Ale já právě nevim kam to mam psát. Mám to jako úkol do školy a nějak to nepobírám." Přečtěte si to po sobě ještě několikrát a zjistíte, ža na takovou otázku se jinak reagovat nedá. Zkuste takový dotaz položit například na vyvojar.cz, nebo některý z vámi uvedených zahraničních webů. Na těchto webech se na to ani nebudou obtěžovat odpovědět, nebo se vám rovnou vysmějou. Tento web je určen jak pro začátečníky, tak i pro pokročilé, ale svoje dotazy musíte formulovat tak, aby na ně bylo možné odpovědět. Je zde spousta uživatelů kteří s programováním začínají a přesto jsou schopni pokládat dotazy na úrovni.

http://www.vbnet.cz/forum-tema--126-na_c...

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

A jsme u toho:já osobně si nedovedu představit, že by takový dotaz na vývojáři.cz padl už z toho prostého důvodů, že průměrný začátečník po zběžném prohlédnutí toho webu jednoznačně nebude vědět, jestli je na Zemi nebo jiné planetě. Ten web snad ani nepředpokládá, že by jej četli začátečníci.Kdežto na Vašem webu je to jiné:tady najde i absolutní začátečník podporu. Jenomže je zvláštní, že v poslední době se tu od Vás moc podpory tito lidé nedočkají. Píšete, že Váš web není helpdesk, ale když někdo někomu tady pomůže, i přes primitivně formulovaný problém, je to tedy špatně? Tohle, nezlobte se na mě, zavání cenzurou. Když nepomůžete Vy osobně, jsou tu přeci jiní, kteří pomohou; nezištně, jenom proto, že chápou potřebu druhého.Co se týká domácích úkolů na odborných školách, někdy je to prostě tak, že, problematiku nepochopíte hned. To se týká i případu zvoleného předmětu. Ale máte třeba nad sebou Damoklův meč termínu odevzdání. A na koho se pak obrátíte, když spolužáci problematiku nechápou taky?Profesora v mnoha případech nemá smysl prosit o vysvětlení, protože jednoduše většinou si ten čas neudělá. Byl jsem už mockrát svědkem, že i přes velký zájem studentů se něčemu naučit, nepochopení určité problematiky vedlo k neadekvátním projevům učitelů. Byly to projevy bohužel ne nepodobné tomu Vašemu.Nemá to nic společného s inteligencí žáka; je to o zkušenostech.I kdyby šlo o řešení domácího úkolu, to řešení si pak má možnost přečíst mnoho těch, kteří to pak někde úspěšně uplatní, a o to přeci jde.To je ten vývoj.

Nevím už při jaké příležitosti tady padly věty o tom, že tento web má klesající počet příspěvků, mimo jiné i kvůli takovýmto projevům.

Jednoduše:nechte tu lidi dotazovat se na cokoli.Nevidím nic špatného na tom, když někdo, kdo má chuť, čas a znalosti, pro někoho naprogramuje třeba celou aplikaci. Oba to obohatí, ostatní se poučí.Nedělejte z nich pitomce a zkuste aspoň trochu použít empatii a čtení mezi řádky.

P.S.: Omlouvám se za délku odpovědi.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud se zde budou objevovat dotazy podobné tomu vašemu ("Ale já právě nevim kam to mam psát. Mám to jako úkol do školy a nějak to nepobírám."), které smrdí nezájmem a spoléháním na vyřešení cizí osobou, pak nečekejte (alespoň ode mne) jiné reakce. Naznačil jsem vám postup jak to udělat, pokud nejste schopný klepnout na poskytnutý odkaz a přečíst si to na MSDN včetně příkladů, NEPROGRAMUJTE. Tímto končím tuto bezpředmětnou diskusi.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Problém je v tom, že v drtivé většině případů studenti na svoje školní povinnosti kašlou, domácí úkoly řeší poslední den před odevzdáním a velmi často se dosti nehorázně dožadují odpovědi. Sami pro to nehodlají udělat nic, chtějí hotové řešení a často ani nejsou ochotni poprosit nebo poděkovat.

Na začátku pan Linhart odpověděl slušně a k věci, tak, jak to ostatně dělá velmi často, je to jeden z nejaktivnějších přispěvatelů. Obávám se, že na dotaz Ale já právě nevim kam to mam psát. Mám to jako úkol do školy a nějak to nepobírám. bych odpověděl stejně, protože z toho jasně vyplývá, že tazatel je student, který se ani neobtěžuje zjišťovat, kam by měl psát kód. Historce o tom, že to je učitel, který dostal úkol od ostatních učitelů, je podle mě blábol a nevěřím tomu, kdyby to po něm chtěli kolegové, nenazvalo by se to úkol do školy. Navíc tazatel je schopen napsat slovo byjsme, což vypovídá buď o tom, že to opravdu není učitel, anebo o tom, že kvalita zaměstnanců ve školství šla hodně dolů. Že by se učitel zaregistroval pod jménem Mara C a všem implicitně tykal se mi také nezdá.

Pokud se zde někdo zeptá na konkrétní otázku, odpovědi se mu vždy dostane. Pokud chce někdo jen řešit své problémy způsobené většinou totálním nezájmem o programování, tak ho tady nevidíme moc rádi, protože to nemá smysl.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

DataColumn.Expresion

dle doporučení výše :

Public Class Form1
    Dim dgv As DataGridView
    Dim dt As DataTable
    Dim bs As BindingSource

    Public Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        dt = New DataTable
        With dt
            .Columns.Add("Column0", Type.GetType("System.String"))
            .Columns.Add("Column1", Type.GetType("System.Int32"))
            .Columns.Add("Column2", Type.GetType("System.Int32"))
            .Columns.Add("Column3", Type.GetType("System.Int32"))
            .Columns.Add("Column4", Type.GetType("System.Int32"))
            Dim dc As DataColumn
            dc = .Columns.Add("Column5", Type.GetType("System.Int32"))
            dc.Expression = "Column1 + Column2 + Column3 + Column4"

            .Rows.Add("Row1", 1, 2, 3, 4)
            .Rows.Add("Row2", 5, 6, 7, 8)
            .Rows.Add("Row3", 9, 10, 11, 12)
            .Rows.Add("Total", dt.Compute("Sum(Column1)", ""), dt.Compute("Sum(Column2)", ""), dt.Compute("Sum(Column3)", ""), dt.Compute("Sum(Column4)", ""), dt.Compute("Sum(Column5)", ""))
        End With

        bs = New BindingSource
        bs.DataSource = dt
        dgv = New DataGridView
        With dgv
            .Dock = DockStyle.Fill
            .AllowUserToAddRows = False
            .MultiSelect = False
            .DataSource = bs
        End With
        Me.Controls.Add(dgv)
    End Sub
End Class

Snad jednoduchá ukázka více napoví...

Příklad pro potřebu testu či kvízu

s datagridview a datatable.compute :

http://www.vbnet.cz/forum-tema--2378-tex...

Mnoho zdaru a trpělivosti s žáky!

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback