/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Vis værdi af felt
Fra : Ukendt


Dato : 19-03-07 23:10

Hej.

Jeg bruger en TQuery og har derigennem hentet mine data ind i en
TClientDataSet.

I eksemplet her har jeg en række poster i mit dataset, hvor felterne kaldes
FeltA, FeltB, FeltC og FeltD. FeltA er har et entydigt indhold.

Jeg har en anden ClientDataSet hvis indhold vises og redigeres i en DBGrid.
Dette dataset har felterne Felt1, Felt2, Felt3, Felt4 og Felt5.

I dette dataset svarer Felt1 til FeltA.

Mit ønske er så at jeg i en Editboks kan vise FeltB's værdi afhængig af
a) hvilken linie i DBGrid'en, der er aktiv
b) hvilket indhold Felt1 på den under a) valgte linie har.

Fx.

Dataset1
FeltA, FeltB, FeltC, FeltD
----------------------------
0001, Test, c1, d1
0002, NyTest, c2, d2
0003, Test3, c3, d3

Dataset2 (vises i DBGrid)
Felt1, Felt2, Felt3, Felt4, Felt5
---------------------------------
0002, Alpha, Bravo, Cobra, Delta
0001, A, B, C, D
0002, Anders, Bent, Chris, Dennis

Når linie 1 i DBGriden er valgt, skal der i Editboksen stå: "NyTest"
Når linie 2 i DBGriden er valgt, skal der i EditBoksen stå "Test"
Når linie 3 i DBGriden er valgt, skal der i Editboksen stå: "NyTest"

Giver det mening?



 
 
Brian Andersen \(www~ (20-03-2007)
Kommentar
Fra : Brian Andersen \(www~


Dato : 20-03-07 08:00

> Jeg bruger en TQuery og har derigennem hentet mine data ind i en
> TClientDataSet.
>
> I eksemplet her har jeg en række poster i mit dataset, hvor felterne
> kaldes FeltA, FeltB, FeltC og FeltD. FeltA er har et entydigt indhold.
>
> Jeg har en anden ClientDataSet hvis indhold vises og redigeres i en
> DBGrid. Dette dataset har felterne Felt1, Felt2, Felt3, Felt4 og Felt5.
>
> I dette dataset svarer Felt1 til FeltA.
>
> Mit ønske er så at jeg i en Editboks kan vise FeltB's værdi afhængig af
> a) hvilken linie i DBGrid'en, der er aktiv
> b) hvilket indhold Felt1 på den under a) valgte linie har.
>
Hej Knud,

din problemstilling kræver, at FeltA er unik. Altså, at der kun findes en af
hver værdi i FeltA. Nedenstående linje burde løse dit problem:

procedure TForm1.ClientDataSet2AfterScroll(DataSet: TDataSet);
begin
if ClientDataSet1.Locate('FeltA',
ClientDataSet2.FieldByName('Felt1').AsInteger, [loCaseInsensitive]) then
raise Exception.Create('Opslag kan ikke findes?!');
end;

Det eneste du så skal gøre er, at link'e en datasource til DataSet1 og så
linke et indtastningsfelt til datasourc'en.

/Brian



Ukendt (24-03-2007)
Kommentar
Fra : Ukendt


Dato : 24-03-07 21:22

"Brian Andersen (www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:kBLLh.5$PX.0@news.get2net.dk...
>> Jeg bruger en TQuery og har derigennem hentet mine data ind i en
>> TClientDataSet.
>>
>> I eksemplet her har jeg en række poster i mit dataset, hvor felterne
>> kaldes FeltA, FeltB, FeltC og FeltD. FeltA er har et entydigt indhold.
>>
>> Jeg har en anden ClientDataSet hvis indhold vises og redigeres i en
>> DBGrid. Dette dataset har felterne Felt1, Felt2, Felt3, Felt4 og Felt5.
>>
>> I dette dataset svarer Felt1 til FeltA.
>>
>> Mit ønske er så at jeg i en Editboks kan vise FeltB's værdi afhængig af
>> a) hvilken linie i DBGrid'en, der er aktiv
>> b) hvilket indhold Felt1 på den under a) valgte linie har.
>>
> Hej Knud,
>
> din problemstilling kræver, at FeltA er unik. Altså, at der kun findes en
> af hver værdi i FeltA. Nedenstående linje burde løse dit problem:
>
> procedure TForm1.ClientDataSet2AfterScroll(DataSet: TDataSet);
> begin
> if ClientDataSet1.Locate('FeltA',
> ClientDataSet2.FieldByName('Felt1').AsInteger, [loCaseInsensitive]) then
> raise Exception.Create('Opslag kan ikke findes?!');
> end;
>
> Det eneste du så skal gøre er, at link'e en datasource til DataSet1 og så
> linke et indtastningsfelt til datasourc'en.

Hej Brian.

Jeg har prøvet at bruge din kode, men et eller andet gør jeg forkert.

Der sker nemlig intet - udover at min nye DBEdit viser den første post i
dataset1.

Jeg prøver lige, at finde ud af, hvad problemet kan være, men hvad sker der
lige i koden. Jeg kan ikke gennemskue den, da jeg tolke rden således:

1. Eventen sker kun, når man scroller i DBGriden?
2. Hvis den pågældende post findes, så fremkald fejl.

Tager jeg fejl?



Brian Andersen \(www~ (13-04-2007)
Kommentar
Fra : Brian Andersen \(www~


Dato : 13-04-07 08:37


> Hej Brian.
>
> Jeg har prøvet at bruge din kode, men et eller andet gør jeg forkert.
>
> Der sker nemlig intet - udover at min nye DBEdit viser den første post i
> dataset1.
>
> Jeg prøver lige, at finde ud af, hvad problemet kan være, men hvad sker
> der lige i koden. Jeg kan ikke gennemskue den, da jeg tolke rden således:
>
> 1. Eventen sker kun, når man scroller i DBGriden?
> 2. Hvis den pågældende post findes, så fremkald fejl.
>
> Tager jeg fejl?

Hejsa, igen.... Jeg har haft ferie, så derfor ser jeg først dine spørgsmål
nu. Hvilken version af Delphi bruger du?

/Brian



Søg
Reklame
Statistik
Spørgsmål : 177577
Tips : 31968
Nyheder : 719565
Indlæg : 6409071
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste