[ Pobierz całość w formacie PDF ]
.5.Wybrać komponent górny i ustawić jego właściwość Align na alClient.W ten sposób panel górny zajmie całą dostępną przestrzeń, a rezydujący na nimDBGrid, który również jest wyrównany opcją alClient, będzie zajmowałcałą powierzchnię panelu.6.Wygląd formularza po wykonaniu powyższych instrukcji ilustruje rysunek11.7.Rysunek 11.7.Wygląd formularzatabelarycznegoWORDERw czasie działaniaprogramu.356 Część IIPrzekształcenie DBGrid na tylko do odczytuZanim uznamy, że praca nad formularzem tabelarycznym WORDER jestzakończona, musimy rozważyć jeszcze jedną rzecz.Ponieważ formularz zostałpomyślany jako narzędzie wyboru rekordów tabeli, to nie powinien umożliwiaćedycji pól.Ponadto ze względu na wzajemne powiązania, narzędzie do edycjitabeli WORDER powinno umożliwiać jednoczesną edycję tabeli WODETAIL.Takim narzędziem będzie skonstruowany niedługo fmRWORMD0.Nasz formularzpowinien pozwalać jedynie na wybór odpowiedniego rekordu.Wziąwszy pod uwagę powyższe spostrzeżenia, musimy wykorzystać inspektoraobiektów i ustawić na True właściwości ReadOnly formularza DBGrid.W tensposób zabezpieczamy dane przed edycją za pomocą komponentu DBGrid.Informacje są wyświetlane, lecz nie można ich zmienić.Modyfikacja działania komponentu DBNavigatorKiedy formularz tabelaryczny posiada już atrybut tylko do odczytu , należydwukrotnie kliknąć na komponencie DBNavigator.Przy pomocy edytorawpisać następujący kod:With DBNavigator docase Button ofnbInsert: beginDataSource.DataSet.Insert;fmRWORMDE0.ShowModal;end;nbEdit : beginDataSource.DataSet.Edit;fmRWORMDE0.ShowModal;end;end;Powyższa metoda modyfikuje działanie przycisków nbInsert i nbEdit nawigatorabaz danych.Jeśli użytkownik użyje któregoś z tych narzędzi, to zostanie wywołanyformularz kombinowany fmRWORMDE0.Takie podejście umożliwia przekazanieodpowiedzialności za edycję danych z formularza tabelarycznego na formularzfmRWORMDE0.Na tym etapie nie możemy skompilować projektu do czasuutworzenia formularza kombinowanego fmRWORMDE0.Formularze 357UWAGAPrzypomnijmy, ze przyciski Add, Edit i Delete zostały wprowadzone doformularza, aby umożliwić użytkownikowi modyfikację zbioru danych zarównoprzy pomocy myszy oraz komponentu DBNavigator-a, jak i przy użyciuklawiatury.Przyciski służą tylko do wywołania metody BtnClick kontrolkiDBNavigator, symulując użycie myszy.Dzięki temu użytkownik, chcącdokonać edycji, usunięcia lub dodania rekordu, może użyć przycisku lub skrótuklawiaturowego, zamiast klikać na odpowiednim elemencie nawigatora bazdanych.Nie musimy obecnie modyfikować żadnej metody obsługującej wciśnięciektóregoś z trzech dodanych przycisków, chociaż zupełnie zmieniliśmy zachowaniesię formularza w przypadku próby edycji, usuwania lub dodawania rekordu.Wciśnięcie dowolnego przycisku wywołuje odpowiednią metodęDBNavigatora.Formularz kombinowany (Master/Detail) tabeli WORDERSkonstruujemy teraz formularz, który umożliwi jednoczesną edycję tabelWORDER i WODETAIL.Dzięki relacji podstawowa/szczegółowa międzydwiema tablicami, umożliwi on wyświetlanie wszystkich rekordów tabeliWODETAIL, które należą do wybranego w poprzednim formularzu rekordutabeli WORDER.Odpowiedni wiersz tabeli WORDER będzie umieszczonyw górnej części okna, a wszystkie korespondujące z nim rekordy tablicyWODETAIL zostaną wyświetlone w jego fragmencie dolnym.Początek budowy formularza:1.Z menu Delphi wybrać opcję File\New, a następnie okienko dialogoweNew Item.2.Kliknąć kolejno: ikonkę fmMasterDetailForm, opcję Inherit i przycisk OK.3.Zmienić nazwę formularza na fmRWORMDE0 oraz wymyślić nagłówek, np.Formularz do edycji tabeli Work Order.Zapisać nowyformularz do zbioru RWORMDE0.PASPola wyszukiwaniaZanim cokolwiek zrobimy z nowym formularzem, zdefiniujemy polewyszukiwania tabeli taWODETAIL, służące do uaktualniania polaDESCRIPTION tablicy WORKTYPE.Aby to zrobić, musimy postępowaćnastępująco:358 Część II1
[ Pobierz całość w formacie PDF ]