Padajući popis unutar DBGrid-a

Evo kako smjestiti padajući popis odabira u DBGrid. Napravite vizualno atraktivnija korisnička sučelja za uređivanje polja za pretraživanje unutar DBGrid - koristeći svojstvo PickList DBGrid stupca.

Sada, kada znate što su polja za pretraživanje i koje su mogućnosti prikazivanja polja za pretraživanje u DelphiDBGrid, vrijeme je da vidimo kako se koristi svojstvo PickList stupaca DGBrid da bi se korisniku omogućilo da odabere vrijednost za polje za pretragu iz padajućeg popisa.

Brzi podaci o svojstvu DBGrid stupaca

DBGrid kontrola ima svojstvo Stupci - zbirka objekata TColumn koji predstavljaju sve stupce u mreži kontrole. Stupci se mogu postaviti u vrijeme dizajna putem uređivača stupaca ili programski tijekom izvođenja. Obično ćete dodati Kolumne DBGird-u kad želite definirati kako se stupac pojavljuje, kako se prikazuju podaci u stupcu i pristupate svojstvima, događajima i metodama TDBGridColumn u vrijeme izvođenja. Prilagođena mreža omogućuje vam konfiguriranje više stupaca za prezentaciju različitih pogleda istog za baze podataka (različiti redoslijedi stupaca, različiti izbori polja i različite boje i fontove stupaca za primjer).

instagram viewer

Sada je svaki stupac u mreži "povezan" s poljem iz skupa podataka koji se prikazuju u mreži. Štoviše, svaki stupac ima svojstvo PickList. Svojstvo PickList navodi vrijednosti koje korisnik može odabrati za vrijednost polja povezanog stupca.

Ispunjavanje PickLista

Ovdje ćete naučiti kako ispuniti taj niz žrtava vrijednostima iz drugog skupa podataka u vrijeme izvođenja.
Podsjetimo, uređujemo tablicu članaka i da polje Subject može prihvatiti samo vrijednosti iz tablice Subjects: idealna situacija za PickList!

Evo kako postaviti entitet PickList. Prvo, dodamo poziv proceduri SetupGridPickList u alatu za događanje događaja OnCreate oblika.

postupak TForm1.FormCreate (pošiljalac: TObject);
početi
SetupGridPickList ('Subject', 'SELECT Name OF Subjectcts');
kraj;

Najlakši način za kreiranje postupka SetupGridPickList je prelazak na privatni dio deklaracije obrasca, dodajte deklaraciju i pritisnite kombinaciju tipki CTRL + SHIFT + C - Delphi će dovršiti postupak odmor:

...
tip
TForm1 = klasa (TForm)
...
privateprocedure SetupGridPickList (
const Naziv polja: niz;
const SQL: niz);
javnost
...

Napomena: postupak SetupGridPickList ima dva parametra. Prvi parametar, FieldName, ime je polja koje želimo djelovati poput pretraživačkog polja; drugi parametar, SQL, je SQL izraz koji koristimo za popunjavanje PickLista mogućim vrijednostima - općenito, SQL izraz trebao bi vratiti skup podataka sa samo jednim poljem.

Evo kako izgleda SetupGridPickList:

postupak TForm1.SetupGridPickList (const Ime polja, sql: niz);
var
slPickList: TStringList;
Upit: TADOQuery;
i: cijeli broj;
početi
slPickList: = TStringList. Stvoriti;
Upit: = TADOQuery. Stvoriti (sebe);
probati
Upita. Spajanje: = ADOConnection1;
Upita. SQL.Text: = sql;
Upita. Otvoren;
// Ispunite popis nizadokne Upita. EOF dobegin
slPickList. Dodaj (upit) Polja [0] .AsString);
Upita. Sljedeći;
kraj; //while
// stavite popis u ispravan stupacza i: = 0 do DBGrid1.Columns. Strani-1 čini
ako DBGrid1.Column [i] .FieldName = Ime polja thenbegin
DBGrid1.Columns [i] .PickList: = slPickList;
Pauza;
kraj;
konačno
slPickList. Besplatno;
Upita. Besplatno;
kraj;
kraj; (* SetupGridPickList *)

To je to. Kada kliknete stupac Subject (uđete u način uređivanja).

Napomena 1: prema zadanom padajućem popisu prikazano je 7 vrijednosti. Možete promijeniti duljinu ovog popisa postavljanjem svojstva DropDownRows.

Napomena 2: ništa vas ne sprečava da ispunite PickList s popisa vrijednosti koje ne dolaze iz tablice baze podataka. Ako, na primjer, imate polje koje prihvaća samo imena radnim danima ("ponedjeljak",..., "nedjelja"), možete sastaviti "tvrdo kodiran" PickList.

"Uh, moram kliknuti PickList 4 puta ..."

Imajte na umu da kada želite urediti polje na kojem se prikazuje padajući popis, morat ćete kliknuti ćeliju 4 puta da biste s popisa zapravo odabrali vrijednost. Sljedeći isječak koda, dodan DBGridovom poslužitelju događaja OnCellClick, oponaša pogodak tipki F2, a zatim Alt + DownArrow.

postupak TForm1.DBGrid1CellClick (Stupac: TColumn);
početi// Izrada padajućeg popisa za brže pojavljivanjeako Stupac. PickList. Broj> 0 thenbegin
keybd_event (VK_F2,0,0,0);
keybd_event (VK_F2,0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0,0,0);
keybd_event (VK_DOWN, 0,0,0);
keybd_event (VK_DOWN, 0, KEYEVENTF_KEYUP, 0);
keybd_event (VK_MENU, 0, KEYEVENTF_KEYUP, 0);
kraj;
kraj;