Entwickler-Ecke

Datenbanken - Kann ich gesuchte Felder in einer Tabelle farbig hinterlegen


Kaischi - Mo 19.08.02 16:33
Titel: Kann ich gesuchte Felder in einer Tabelle farbig hinterlegen
Hallo, sag mal weiß jemand ob ich gesuchte felder in einer tabelle farbig hinterlegen bzw. hervorheben kann, so daß man die felder die bei der suche ausgeworfen werden besser und schneller zu erkennen sind?


und zweitens muß ich wissen, wo ich dies hier [loCaseInsensitive, loPartialKey]
hier

Quelltext
1:
2:
3:
4:
Indexname := 'Hersteller';
EditKey;
Fieldbyname('Hersteller').ASString := Edit1.text;
Gotonearest;

oder hier


Quelltext
1:
2:
3:
Filtered := false;
  Filter := 'Modell (Typ)=''' + Edit3.text + '''';
  Filtered := true;

einfügen kann!!!!???????

WEr kann mir diese beiden fragen beantworten????????

Vielen Dank schon mal!!!!!!!


Steffer - Mo 19.08.02 17:40

Zu 1:
Was du mit "gesuchte Felder" meins, verstehe ich nicht. Aber so
http://www.faqsen.de/find.jsp?FAQ=1;485448544850494848555053;2 kannst du Felder in einem DBGrid einfärben.

Zu 2:
diese Parameter sind LocateOptions. Siehe
Table.Locate('Feld',Wert,[TLocateOptions])


Kaischi - Mo 19.08.02 23:07

gibt es denn auch ähnliche befehle für meine beiden beispiele oben?????????????????????????


Steffer - Di 20.08.02 06:20

Es gibt für dein 2. Beispiel die TFilterOptions, foCaseInsensitive, foNoPartialCompare

foCaseInsensitive: ignoriert Groß-Kleinschreibweise
foCaseInsensitive: * wird als Zeichen und nicht als Platzhalter verwendet


Kaischi - Fr 23.08.02 09:54

hi leute. Ich bin ich wieder!

Habe immer noch schwierigkeiten mit der groß und klein schreibung.
gibt es nicht auch für mein erstes beispiel ein befehl dafür?


AUßerdem würd ich gerne wissen, weshalb ich filtern immer nur 2 mal ins programm einbringen kann.
sobald ich es nämlich ein drittes mal reinbringe mäckert er rum.


Kann mir jemand helfen?

ach ja nochwas!!!!
gibt es einen befehl, der nach dem filtern die gesamte tabelle wieder anzeigt????????

danke!!!!!!!!!!!

gruß kai


Steffer - Fr 23.08.02 20:45

>gibt es nicht auch für mein erstes beispiel ein befehl dafür?
Online Hilfe => Filter Options ...


>AUßerdem würd ich gerne wissen, weshalb ich filtern immer nur 2 mal >ins programm einbringen kann.
>sobald ich es nämlich ein drittes mal reinbringe mäckert er rum.
Gibt dazu mal mahr Infos .... Filter kannst du verändern wie du lustig bist


>gibt es einen befehl, der nach dem filtern die gesamte tabelle wieder >anzeigt????????
Table.Filtered:= False;


Kaischi - Sa 24.08.02 21:19

Nun gut.
Hier ist mein gesamtes programm!!!!!!


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
procedure TForm1.FormShow(Sender: TObject);

var Pfad:String;
begin
GEtdir(0,Pfad);
with TAble1 do
begin
DatabaseName := Pfad;
TAblename := 'Umla.db';
tabletype := ttParadox;
end;
if not fileexists(pfad+'\Umla.db') then
begin
with Table1 do
begin
with Fielddefs do
begin
clear;
Add ('Nr', ftAutoInc,0,true);
Add('Hersteller', ftString,20,true);
Add('Modell', ftString,20,False);
Add ('Modell (Typ)', ftString,20,False);
Add('Baujahr', ftString,7,False);
Add('Umlaufmaß', ftString,20,False);
end;
with IndexDefs do
begin
clear;
Add('Nr','Nr',[ixPrimary, ixUnique]);
Add('Hersteller','Hersteller',[]);
Add('Modell','Modell',[]);
Add('Modell (Typ)','Modell (Typ)',[]);
Add('Baujahr','Baujahr',[]);
end;
CreateTable;
end;
end;
Table1.Active := True;
end;


procedure TForm1.DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
  Field: TField; State: TGridDrawState);
begin
if Table1.FieldByName('Hersteller').ASString = Edit1.text
then
begin
if Table1.FieldByName('Modell').ASString = Edit2.text
then
begin
if Table1.FieldByName('Modell (Typ)').ASString = Edit3.text
then
DBGrid1.Canvas.Font.Color := clRed;
DBGrid1.DefaultDrawDataCell(Rect, Field, State);
end;
end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
With Table1 Do
begin

if Table1.locate ('Hersteller;Modell;Modell (Typ);Baujahr',VarArrayOf([Edit1.text,Edit2.text,Edit3.text,Edit4.text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Datensatz gefunden! : '+ Edit1.text+' '+Edit2.text+' '+Edit3.text+' '+Edit4.text)

else
if Table1.Locate ('Hersteller;Modell;Modell (Typ)',VarArrayOf([Edit1.text,Edit2.text,Edit3.text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Datensatz gefunden! : '+ Edit1.text+' '+Edit2.text+' '+Edit3.text+' '+Edit4.text)

else
if Table1.Locate ('Hersteller;Modell;Baujahr',VarArrayOf([Edit1.text,Edit2.text,Edit4.text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Datensatz gefunden! : '+ Edit1.text+' '+Edit2.text+' '+Edit3.text+' '+Edit4.text)

else
if Table1.Locate ('Hersteller;Modell (Typ);Baujahr',VarArrayOf([Edit1.text,Edit3.text,Edit4.text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Datensatz gefunden! : '+ Edit1.text+' '+Edit2.text+' '+Edit3.text+' '+Edit4.text)

else
if Table1.Locate ('Modell;Modell (Typ);Baujahr',VarArrayOf([Edit2.text,Edit3.text,Edit4.text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Datensatz gefunden! : '+ Edit1.text+' '+Edit2.text+' '+Edit3.text+' '+Edit4.text)

else
if not Table1.GotoKey then
ShowMessage('Datensatz nicht gefunden');

end;
end;




procedure TForm1.Button2Click(Sender: TObject);
begin
close
end;



procedure TForm1.Button3Click(Sender: TObject);
begin
With Table1 Do
begin
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
Indexname := 'Hersteller';
EditKey;
Fieldbyname('Hersteller').ASString := Edit1.text;
Gotonearest;
if not Table1.GotoKey then
ShowMessage('Datensatz nicht gefunden');
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
end;
end;



procedure TForm1.Button4Click(Sender: TObject);
begin
With Table1 Do
begin
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
Indexname := 'Modell';
EditKey;
Fieldbyname('Modell').ASString := Edit2.text;
Gotonearest;
if not Table1.GotoKey then
ShowMessage('Datensatz nicht gefunden');
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
end;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
With Table1 Do
begin
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
Indexname := 'Modell (Typ)';
EditKey;
Fieldbyname('Modell (Typ)').ASString := Edit3.text;
Gotonearest;
if not Table1.GotoKey then
ShowMessage('Datensatz nicht gefunden');
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
With Table1 Do
begin
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;  
Indexname := 'Baujahr';
EditKey;
Fieldbyname('Baujahr').ASString := Edit4.text;
Gotonearest;
if not Table1.GotoKey then
ShowMessage('Datensatz nicht gefunden');
   Table1.CachedUpdates := True;
   Table1.CachedUpdates := False;
end;
end;




Kann mir jemand das ein wenig verbessern???????


ZUm beispiel: müßte ich überall haben, das er groß und kleinschreibung akzeptiert.


2. muß ich wissen, ob ich in der kommenden zeile auch die werte mit der message herausgeben kann, welche in der tabelle stehen und nicht so wie ich es gemacht habe, die anzeigen, welche man eingibt!!!!!!

Quelltext
1:
2:
3:
else
if Table1.Locate ('Modell;Modell (Typ);Baujahr',VarArrayOf([Edit2.text,Edit3.text,Edit4.text]), [loCaseInsensitive, loPartialKey]) then
ShowMessage('Datensatz gefunden! : '+ Edit1.text+' '+Edit2.text+' '+Edit3.text+' '+Edit4.text)



3. und das mit dem filtern ist so:
Ich kann, aus welchen gründen auch immer, nur Hersteller und Modell filtern!!!!! die anderen gehen nicht zu filtern. weshalb?????????


Hoffe mir kann jemand meinen *popo* retten.schließlich ist dies ein programm für die schule!!!!!
also bitte helft mirrrrrrrrrrr!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


danke!!!!
gruß kai