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

C# DataGrid i autolookup

[es] :: .NET :: .NET Desktop razvoj :: C# DataGrid i autolookup

[ Pregleda: 2726 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon C# DataGrid i autolookup18.07.2007. u 17:55 - pre 207 meseci
OK, nov sam u svijetu programiranja na .NET platformi, ali imam dosta iskustva sa C++ i VBA. Pokusavam se prebaciti sa Accessa na C#.

1. Imam jednu formu sa dosta textboxova bindovanih na trenutni zapis neke tabele. E sad, jedan od tih textboxova treba da sadrzi tzv foreign kljuc iz druge tabele. Ako napravim combobox koji ce sadrzati listu ponudjenih zapisa iz druge tabele, kako da se odabirom neke od njih vrijednost kljuca odabranog zapisa automatski veze u zeljeni texbox (polje tabele)?

2. Slicno pitanje. Imam datagrid cije je jedno polje foreign kljuc druge tabele. Kako da, kad ukucam odgovarajuci kljuc, dobijem novo polje koje ce prikazivati njegov opis. Naravno, to polje mi ne treba u tabeli, vec samo na ekranu. Vjerovatno moram dinamicki napraviti novu kolonu, pa obradjivati dogadjaje, jelda? Ali onda moram koristiti dataview a ne dataset. Moze li to nekako automatski.

3. Na kraju, mogu li se kako automatski numerisati zapisi u datagridu. Dakle, nezavisno od toga kako se sortiraju, da prvi prikazani zapis ima rb 1, itd.

Pozdrav.
 
Odgovor na temu

dusty
Predrag Glumac
Zemun, Srbija

Član broj: 15383
Poruke: 549
*.ptt.yu.

Sajt: www.mika.rs


+6 Profil

icon Re: C# DataGrid i autolookup19.07.2007. u 09:26 - pre 207 meseci
1. Najjednostavnije je da u DataSet strpas obe tabele i da napravis relaciju izmedju njih (DataRelation). Taj comboBox bindujes na DataSet, a DataMember i ValueMember postavis na zeljena polja ali preko relacije.

2. Uopste te nisam razumeo, elaboriraj malo
3. AFAIK ne moze. Ja sam to resavao tako sto sam programski kreirao kolonu sa rednim brojem, ali to ume da bude vrlo sporo ako ima mnogo podataka.
America national sport is called baseballs. It very similar to our sport, shurik, where we take dogs, shoot them in a field and then have a party.
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
*.crnagora.net.



Profil

icon Re: C# DataGrid i autolookup21.07.2007. u 11:55 - pre 206 meseci
Sto se tice mog prvog pitanja, ja vec imam dataset sa tri tabele unutra i korektno podesenim relacijama:
Dobavljaci--(Relacija1)--Kalklulacije--(Relacija2)--Detalji.

Sad, u zaglavlju kalkulacije imam polje dobavljac gdje mi treba samo kljuc dobavljaca iz tabele dobavljaca, ali necu da ljudi pamte tolike kljuceve vec da im ponudim imena dobavljaca i oni samo izaberu ime a kljuc sam da se veze u zeljeno polje.

Ja sam bindovao combobox ali ne na citav dataset vec na tabelu dobavljaca (je li to pogresno?), i kako sad da vezem na textbox preko relacije, daj mi primjer, molim te.

----

Sto se tice drugog pitanja, mislim da to nece ici lako. Probao sam bas danas. Gledaj sto ja ocu. Recimo da imam jos jednu tabelu, tabelu artikala koja bi izledala kao:

Sifra_artika Naziv_artikla
0001 Artikal1
0002 Artikal2
0003 Artikal3

Onda u datagridu koji veze detalje kalkulacije imam foreign polje koje trazi sifru atrikla. Ja hocu jos jednu kolonu u datagridu koja ce po unesenoj sifri prikazati i naziv artikla. Ta nova kolone ne treba da se veze, vec samo da se prikazuje na ekranu, i trebace poslije za stampu.

To sam u accessu resavao preko dlookup funkcije ili neke funkcije koju sam napisem, ako je dlookup preslab, i rezultat f-je je isao u zeljeno polje, kao npr. =funkcija(kljuc as integer) as string.

Sad sam probao isto, napravio sam novu f-ju koja ce na osnovu sifre naci naziv, ali kad probam da je boundujem u zeljenu tabelu kaze mi da 'cannot find column 'naziv' ', i u pravu je naravno. Tu novu kolonu ne treba da vezem, nego samo da mi prikazuje 'naziv'. Sto mislis, je li datagrid to u stanju?

Pozdrav i fala ti.
 
Odgovor na temu

android~paranoid

Član broj: 81947
Poruke: 211
212.200.180.*



Profil

icon Re: C# DataGrid i autolookup22.07.2007. u 15:59 - pre 206 meseci
Citat:
Ja hocu jos jednu kolonu u datagridu koja ce po unesenoj sifri prikazati i naziv artikla. Ta nova kolone ne treba da se veze, vec samo da se prikazuje na ekranu, i trebace poslije za stampu.


Ako ti treba da izvrsis pretragu da nadjes na osnovu sifre naziv artikla onda predas upitu tu sifru, kreira se DataSet i uporedis da li je veci od 0, ako jeste onda sadrzi podatak (naziv artikla) i samo ga uzmes.

Mislim, šta reći !
 
Odgovor na temu

Mikelly

Član broj: 16730
Poruke: 389
85.94.112.*



Profil

icon Re: C# DataGrid i autolookup23.07.2007. u 09:23 - pre 206 meseci
@android

Nije meni problem nac naziv artikla po sifri, nego ga stavit da stoji pored sifre u DataGrid-u.

@dusty

Nijesam bio lijen i poslusao sam te. Gledaj sto sam napravio. I dalje je u pitanju isti dataset sa tri tabele i dvije relacije. Izmedju dobavljaci i kalkulacije je relacija1 a izmedju kalkulacije i detalji relacija2.

DataGrid mi je bindovan na ovaj nacin (napamet pisem, moze da bude gresaka):

this.datagrid1.datasource = this.dataset1.DataViewManager

e ako znam sad kako sam ga veza na tabelu Detalji, uglavnom sam nedje napisa:

Dobavljaci.Relacija1.Relacija2 (ovo je valjda nacin da referenciram tabelu Detalji preko relacija, nijesam jos uvijek nacisto sa ovim).

Onda bindujem texboxove na polja tabele Kalkulacije ovako: Dobavljaci.Relacija1.Polje

a comboboxu datasource stavim na this.dataset1, valuemember na kljuc dobavljaca a onaj treci property na naziv dobavljaca.

I gledaj sto se desava. Izborom dobavljaca iz comboboxa ne dobijam ono sto zelim, da mi se promijeni polje dobavljaca u trenutnoj kalkulaciji, vec mi taj izbor funkcionise kao filtar, tj. izborom dobavljaca mijenja se trenutna kalkulacija, i to na onu kalkulaciju kod koje je kljuc dobavljaca isti onaj koji ja odaberem u combobox-u. Dalje, sto me jos vise cudi, u tom momentu mi se u datagridu prikazu svi detalji te kalkulacije, potpuno automatski, sto je sjajno, ali ja to ne zelim. I na kraju, currency manager vise nece da funkcionise ako mu stavim u bindingcontextu tabelu kalkulacije (jer tako treba, klikovima na next i previous ja setam kroz kalkulacije, i to je radilo prije dok nijesam textboxove vezao preko relacija) nego moram staviti tabelu dobavljaca da bi on setao kroz kalkulacije. Sto je to. Izgubih se.

Mozda ti nece sve bit jasno sto sam napisa, ali probaj molim te da mi pomozes jer sam skroz izgubljen u ovim relacijama.

Pozdrav.


 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: C# DataGrid i autolookup

[ Pregleda: 2726 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

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