|
| 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
| |
|
|