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

Kako rijesiti sledeci problem?

[es] :: .NET :: .NET Desktop razvoj :: Kako rijesiti sledeci problem?

[ Pregleda: 2529 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

CallMeSaMaster

Član broj: 43611
Poruke: 466
*.hermes-softlab.com.



+1 Profil

icon Kako rijesiti sledeci problem?30.10.2009. u 14:59 - pre 176 meseci
Pozdrav svima,

radim na jednom malom zadatku u kojem bih htio da odradim sledece:

Recimo da imam korisnike koji za svaki mjesec primaju platu. Osim tog podatka svaki korisnik za svaki mjesec ima odredjene dadzbine: recimo, placanje racun(struja, gas, smece). Takodjer ima polje koje racuna ostatak nejgove plate nakon svih dadzbina.

Interesuje me koji je najbolji pristup kako bih bio u mogucnosti za svakog korisnika unijeti sve podatke za sve mjesece u toku jedne godine?

Ja sam naime mislio napraviti jednu klasu korisnik koja sadrzi osnovne podatke.Recimo Ime, Prezime,Adresa....
Sada sam mislio napraviti klasu za svaki mjesec koja ima ostale podatke ali mislim da je bezze...

Ovdje sada nastaje moj problem ili nedoumica: Kako da napravim da za svaki mjesec mogu unjeti ostale podatke? Ako moze neko malo da pomogne..

Pored toga ne smijem koristiti nikakvu bazu niti xml,txt fajl da trenutno cuvam podatke unesenog korisnika nego samo u memoriji da drzim dok se app ne izgasi.Ako zelim da uradim export u txt onda mogu klikom na dugme to uraditi i tu se zavrsava zadatak.
Tu sam mislio da podatke cuvam u nekom DataGrid dok se podaci ne spase(exportuju) ili dok se app ne ugasi. Kako da DataSource napravim za taj grid?

Hvala unaprijed
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
93.86.243.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 18:20 - pre 176 meseci
Nije mi jasno zašto ne možeš koristiti bazu za skladištenje podataka, ali ok :)
Ako si napravio klasu korisnik, potrebna ti je još jedna klasa Stavka ili kako god...
Ona ima polja: id stavke, id korisnika, ime, tip (prihod/rashod), iznos, datum...
Klasu Korisnik proširi sa listom stavki.
Code:

List<Stavka> stavke

Binduješ svoju klasu na formu. DataSource za grid bi ti bio korisnik.Stavke.
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
92.36.130.*



+1 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 18:27 - pre 176 meseci
Da je baza u pitanju ne bi bio problem. Ipak nisam te bas shvatio...


Sta je sa mjesecima koji imaju vise stavki? Pojasni molim te...
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
93.86.243.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 19:00 - pre 176 meseci
Code:

class Stavka
{
    public enum TipStavke { Prihod, Rashod };

    private int _id;
    private int _korisnikId;
    private string _ime;
    private TipStavke _tip;
    private DateTime _datum;
    private decimal _iznos;

    public int Id
    {
        get { return _id; }
        set { _id = value; }
    }

    public int KorisnikId
    {
        get { return _korisnikId; }
        set { _korisnikId = value; }
    }

    public string Ime
    {
        get { return _ime; }
        set { _ime = value; }
    }

    public TipStavke Tip
    {
        get { return _tip; }
        set { _tip = value; }
    }

    public DateTime Datum
    {
        get { return _datum; }
        set { _datum = value; }
    }

    public decimal Iznos
    {
        get { return _iznos; }
        set { _iznos = value; }
    }
}

Code:

List<Stavka> stavke = new List<Stavka>();
Stavka stavka;
            
stavka = new Stavka();            
stavka.Id = stavke.Count + 1;
stavka.KorisnikId = 1;
stavka.Ime = "Plata";
stavka.Tip = Stavka.TipStavke.Prihod;
stavka.Datum = DateTime.Today;
stavka.Iznos = 100000;
stavke.Add(stavka);

stavka = new Stavka();
stavka.Id = stavke.Count + 1;
stavka.KorisnikId = 1;
stavka.Ime = "Struja";
stavka.Tip = Stavka.TipStavke.Rashod;
stavka.Datum = DateTime.Today;
stavka.Iznos = 4200;
stavke.Add(stavka);

 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
92.36.130.*



+1 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 19:43 - pre 176 meseci
Pozdrav, hvala na trudu ali mislim da me nisi razumio. Ustavri moze biti da sam ja konfurno postavio pitanje.

Kao prvo nije mi uopce bitno koji je tip stavke(Prihod, Rashod). Bitno mi je da mogu za jednog Korisnika da unesem sledece podatke:


Radnik A: (da napravim novog radnika i za svaki mjesec jedne godine unsem trazene podatke). Pritome naravno ne pravim bazu nego kako sam vec rekao gore...


Mjesec Plata Trosak 1 Trosak 2 Trosak2 Trosak3 Ostatak
-----------------------------------------------------------------------------------------------------------------------
Januar 1000€ 100€ 40€ 300€ 10€ 550€
Februar 1100€ 90€ 50€ 300€ 60€ 600€
.
.
.
.



I tako dalje.

Znaci napravim korisnika i onda po mjesecima unesem podatke za njega. I to kolkiko god puta hocu. Naravno za jednu godinu.
Npr za 2009 sve mjesece, zatim 2008 sve mjesece ili djelimicno....itd



 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
93.86.243.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 19:51 - pre 176 meseci
Ja ti dadoh objektni model, a ti to prikazuj kako hoćeš :)
Rekao si da ti ne bi bio problem da koristiš bazu.
Pošalji onda rešenje sa upotrebom baze, a ja ću ti napisati kako da je izbaciš.
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
92.36.130.*



+1 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 19:57 - pre 176 meseci
Ok vidi, rekao sam da je to jednostavno iz sledeceg razloga:

Napravis tabelu u koje strpas korisnika. Napravis drugu tabelu u kojoj imas samo nazive mjeseci. U trecu tabelu stavis kljuc korisnika i kljuc mjeseca, dodas godinu i dodas polja troskova i rijesio si problem. Sto se programiranja tice:

Na formi poredas sve mjesece sa odg troskovima kao textboxove. U bazu pises korisnika i pises sve u odg tabele. Ne vidim sta je tu problematicno. Poenta kod problema za koji sam pisao jeste da nemam mpogucnost tog pisanja u bazu nego moran napraviti klasu i trpat sve u neku listu. Problem mi je samo povezivanje tih mjeseci sa korisnikom. Nadam se da shvatas sta sam htio reci jer ovo sve brzinski pisem tako da ne zamjeris ako nisam krajnje precizan.
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
93.86.243.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 20:14 - pre 176 meseci
Citat:
CallMeSaMaster:
Napravis tabelu u koje strpas korisnika.

Umesto toga imaš klasu korisnik

Citat:
CallMeSaMaster:
Napravis drugu tabelu u kojoj imas samo nazive mjeseci.

Nema potrebe za ovom tabelom. Ako u trećoj tabeli imaš polje koje je tipa DateTime, odatle možeš izvući i dan i mesec i godinu...

Citat:
CallMeSaMaster:
U trecu tabelu stavis kljuc korisnika i kljuc mjeseca, dodas godinu i dodas polja troskova i rijesio si problem.

Ovde imaš klasu stavka sa ključem korisnika. Mesec i godinu možeš izvući iz datuma...

Citat:
CallMeSaMaster:
Na formi poredas sve mjesece sa odg troskovima kao textboxove. U bazu pises korisnika i pises sve u odg tabele. Ne vidim sta je tu problematicno.

Nije mi jasan način na koji si mislio da unosiš podatke u bazu. Gde ju tu DataGridView...

Citat:
CallMeSaMaster:
Problem mi je samo povezivanje tih mjeseci sa korisnikom.

Pa meseci nisu u direktnoj vezi sa korisnikom, nego stavke. A svaka stavka ima dan, mesec, godinu, etc

Najbolje da okačiš demo projekat sa bazom pa da izbacimo višak :)


edit:

A prikaz bih radio ovako
Code:

Ime korisnika: xxxxxxx
Prezime korisnika: xxxxxxxx


DATUM        TIP           NAZIV           IZNOS
===================================================
28.09.2009   Rashod      Internet            1.500
30.10.2009   Prihod      Plata             100.000
30.10.2009   Rashod      Struja              4.200

Ukupno prihodi:                            100.000
Ukupno rashodi:                              5.700
Total:                                      94.300


[Ovu poruku je menjao Dejan Carić dana 30.10.2009. u 21:24 GMT+1]
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
92.36.130.*



+1 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 20:40 - pre 176 meseci
Nema potreba za gridom u ovom slucaju. Jer kada popunim bazu lahko cu bindat na grid kada god to budem zelio. Posto ne smijem korisiti bazu, ja sam htio staviti grid da se vidi sta je neko unio za nekog korisnika u odredjeni mjesec.Trenutno razumije se. Inace ce vidjet samo neku stavku, recimo "Korisnik1" koja njemu nista ne govori.

U prilogu je slika kako formu zelim. Naravno za jednog korisnika. Pri tome ne moram unijeti sve mjesece nego samo neke.

Klasa korisnik je jasna. Ali mi nije jasno kako da prodjem korz sve mjesece i da vidim sta je unijeto? I kako uopce unijete podatke da prikazem u grid?
Nadam se da je jasnije :)
Slika
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
93.86.243.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 21:11 - pre 176 meseci
Opet mi nije jasno :) Gde unosiš godinu?

Al' hajde da pretpostavimo da si na formi zakucao labele i ove text boxove.
Prvo napraviš funkciju koja će proći kroz stavke i koja će da ti vrati iznos za određeni mesec i ime
Code:

private decimal DajIznos(int mesec, string ime)
{
    decimal iznos = 0;
    foreach (Stavka s in this.stavke)
    {
        if (s.Datum.Month == mesec && s.Ime == ime)
        {
            iznos = s.Iznos;
            break;
        }
    }

    return iznos;
}


Na otvaranju forme prikažeš iznose
Code:

txtJanuarStavka1.Text = DajIznos(1, "STAVKA1").ToString();
txtJanuarStavka2.Text = DajIznos(1, "STAVKA2").ToString();


Klikom na dugme save ćeš kreirati novu listu stavki i zameniti je sa starom.

Jel to?

 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
92.36.130.*



+1 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 21:51 - pre 176 meseci
:) Vise ne znam ni ja sta pisem a ni tebe ne razumijem. Cini mi se ni ti mene :D

Evo jos zadnji put da probam:

Za Svakog korisnika, za svaki mjesec unijeti Pet podataka podataka(Iznos1, Iznos2...Iznos5). Ukoliko za odredjeni mjesec nije nista unijeto, taj mjesec ostaviti prazno. Mjeseci su unaprijed definisani svojim imenom, ne kao datum(Januar, Februar...)

U datagrid prikazati sta je unijeto za svakog od korisnika. Klikom na odg dugme, exportovati podatke u txt fajl.

[Ovu poruku je menjao CallMeSaMaster dana 30.10.2009. u 23:26 GMT+1]
 
Odgovor na temu

CallMeSaMaster

Član broj: 43611
Poruke: 466
92.36.130.*



+1 Profil

icon Re: Kako rijesiti sledeci problem?30.10.2009. u 22:30 - pre 176 meseci
Slika

Evo jos jednom slika kako treba forma da izgleda:

Lijevo unesem korisnika i godinu. Za tu godinu, na desnioj strani imam mjesece u koje unosim podatke. Klikom na dugme "Dodaj korisnika" kreiraju se podaci za tog korisnika za svaki mjesec te godine i trebam ih prikazati u gridu(sivi dio slike). Klikom na dugme "Exportuj podatke" podaci se trebaju exportati u neki fajl". Nadam se da ce uz prethodni post i ovu sliku biti jasnije sta zelim.

Hvala jos jednom
 
Odgovor na temu

Dejan Carić
Oslo, Norway

Član broj: 230976
Poruke: 232
93.86.243.*

Sajt: www.dcaric.com


+26 Profil

icon Re: Kako rijesiti sledeci problem?01.11.2009. u 13:39 - pre 176 meseci
Evo šta sam uspeo da uradim.
Ostaje ti da uradiš validacije, formatiraš iznose u gridu, da ih sortiraš, exportovanje podataka, itd.
Nadam se da smo se sad razumeli :)
Prikačeni fajlovi
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: Kako rijesiti sledeci problem?

[ Pregleda: 2529 | Odgovora: 12 ] > FB > Twit

Postavi temu Odgovori

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