wykład 4
description
Transcript of wykład 4
![Page 1: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/1.jpg)
Programowanie w środowiskach zintegrowanych
wykład 4wykład 4
PSZPSZProgramowanie w Środowiskach ZintegrowanychProgramowanie w Środowiskach Zintegrowanych
> Integracja aplikacji z bazami danych cz. II> Integracja aplikacji z bazami danych cz. II
![Page 2: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/2.jpg)
Programowanie w środowiskach zintegrowanych
Na poprzednim wykładzieNa poprzednim wykładzie
• Koncepcja mechanizmów integracji
– Architektura środowiska
– Zarys hierarchii komponentów
– Typowy schemat komunikacji aplikacji z bazą danych
• Komponenty abstrakcyjne i niezależne cz. I
– TCustomConnection
– TDataSet
![Page 3: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/3.jpg)
Programowanie w środowiskach zintegrowanych
Komponenty abstrakcyjne i niezależne cz. IIKomponenty abstrakcyjne i niezależne cz. II
• Komponent abstrakcyjny TField
• Komponent niezależny TDataSource
• Tworzenie struktury tabel powiązanych
![Page 4: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/4.jpg)
Programowanie w środowiskach zintegrowanych
TFieldTField
• OdpowiedzialnośćOdpowiedzialność – umożliwia łatwy dostęp do danych zapisanych w polu rekordu
• TField – klasa nie wizualna (nie stanowi elementu GUI)
• Jest klasą składową klasy TDataSet
• Podstawowe usługi
– odczytywanie i ustawianie wartości pola
– formatowanie i konwersja danych
– walidacja
TComponent
TDataSet<<DBAccess>>
TField<<DBAccess>>
0..n1
+DataSetField
0..n1
![Page 5: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/5.jpg)
Programowanie w środowiskach zintegrowanych
Komponenty bardziej wyspecjalizowane Komponenty bardziej wyspecjalizowane obsługujące konkretne typy pól – pochodne klasy TFieldobsługujące konkretne typy pól – pochodne klasy TField
![Page 6: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/6.jpg)
Programowanie w środowiskach zintegrowanych
Pobieranie, zapisywanie i konwersja danychPobieranie, zapisywanie i konwersja danych
• Pobranie danych i zapisywanie przykłady:
– Numer = PrzekładowePole1->Value;
– Numer = PrzykladowePole1->AsInteger;
– Nazwa = PrzykladowePole2->AsString;
– PrzykladowePole2->AsString = „Jakiś tekst”;
• Właściwości AsSomething
– AsBoolean
– AsCurrency
– AsDateTime
– AsFloat
– AsInteger
– AsSQLTimeStamp
– AsString
– AsVariant
![Page 7: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/7.jpg)
Programowanie w środowiskach zintegrowanych
Formatowanie i walidacjaFormatowanie i walidacja
• Właściwości
– EditMask
• __property TEditMask EditMask = {read=FEditMask, write=SetEditMask};
– DisplayWidth
• __property int DisplayWidth = {read=GetDisplayWidth, write=SetDisplayWidth, stored=IsDisplayWidthStored, nodefault};
– ValidChars
• typedef Set<char, 0, 255> TFieldChars;• __property TFieldChars ValidChars = {read=FValidChars,
write=FValidChars};
• Zdarzenia
– OnValidate
• __property TFieldNotifyEvent OnValidate = {read=FOnValidate, write=FOnValidate};
• Jeśli wygenerujemy wyjątek – walidacja negatywna
![Page 8: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/8.jpg)
Programowanie w środowiskach zintegrowanych
Tworzenie pól w klasie TDataSetTworzenie pól w klasie TDataSet
• Komponent TDataSet posiada własny edytor służący do zarządzania polami
• Tworzenie pól nie jest obowiązkowe, gdyż w przypadku ich braku pola tworzone są automatycznie
• Zalecana praktyka – jawne tworzenie pól
![Page 9: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/9.jpg)
Programowanie w środowiskach zintegrowanych
Podstawowe rodzaje pólPodstawowe rodzaje pól
• Pola danych (data fields)
• Pola obliczane (calculated fields)
• Pola słownikowe (lookup fields)
![Page 10: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/10.jpg)
Programowanie w środowiskach zintegrowanych
Pola wyliczanePola wyliczane
• Pole wyliczanePole wyliczane – wartość pola nie jest odczytywana z bazy danych, ale obliczana w momencie odczytywania wiersza
• Wartość pola ustala się w ramach obsługi zdarzenia OnCalcFields
– __property TDataSetNotifyEvent OnCalcFields = {read=FOnCalcFields, write=FOnCalcFields};
• Zdarzenie pojawia się w trzech przypadkach
– Zbiór zostaje otwarty
– Zbiór zostaje wprowadzony w stan edycji (State = dsEdit)
– Rekord jest pobierany z bazy danych
![Page 11: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/11.jpg)
Programowanie w środowiskach zintegrowanych
Pola słownikowePola słownikowe
• Pola słownikowePola słownikowe – przyjmują wartość ustaloną na podstawie innego zbioru danych
• Pole powiązane jest z innym zbiorem poprzez pola klucze (KeyFields)
• Na podstawie wartości pola klucza, z innego zbioru pobierana jest wartość innego pola
• Pola słownikowe rozpoznawane są przez elementy interfejsu obsługujące edycję bazy danych
>posługiwanie się polami – przykład MicroCRM – regiony.
![Page 12: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/12.jpg)
Programowanie w środowiskach zintegrowanych
TDataSourceTDataSource
• OdpowiedzialnośćOdpowiedzialność – interfejs pomiędzy zbiorami danych a elementami interfejsu przeznaczonymi do ich edycji
• Dane ze zbioru pobiera się za pośrednictwem źródła danych
• Za pośrednictwem źródła dane są również zapisywane do zbioru
Zbiór(TDataSet)
Źródło(TDataSource)
![Page 13: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/13.jpg)
Programowanie w środowiskach zintegrowanych
TDataSource - właściwościTDataSource - właściwości
• AutoEdit
– __property bool AutoEdit = {read=FAutoEdit, write=FAutoEdit, default=1};
– Czy elementy interfejsu mogą samodzielnie wprowadzić zbiór danych w stan edycji lub wstawiania.
• DataSet
– __property TDataSet* DataSet = {read=FDataSet, write=SetDataSet};
– Zarządzany zbiór danych (zbiór, z którego źródło pobiera dane)
• Enabled
– __property bool Enabled = {read=FEnabled, write=SetEnabled, default=1};
– Czy źródło jest włączone
• State
– __property TDataSetState State = {read=FState, nodefault};
– Stan zarządzanego zbioru danych
![Page 14: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/14.jpg)
Programowanie w środowiskach zintegrowanych
Tworzenie struktur hierarchicznychTworzenie struktur hierarchicznych
• Z komponentów typu TTable lun TCustomDataSet można utworzyć strukturę hierarchiczną
• Najczęściej struktura odzwierciedla powiązania typu master-detail
• O powiązaniu w strukturę decydują dwie właściwości klasy TTable i TCustomDataSet
– __property Db::TDataSource* MasterSource = {read=GetDataSource, write=SetDataSource};
– __property AnsiString MasterFields = {read=GetMasterFields, write=SetMasterFields};
>posługiwanie się strukturami hierarchicznymi – przykład: MicroCRM; Kontakty z klientem.
![Page 15: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/15.jpg)
Programowanie w środowiskach zintegrowanych
Elementy interfejsu zintegrowane ze zbiorami danychElementy interfejsu zintegrowane ze zbiorami danych
• Dostępne komponenty
• Przykład
![Page 16: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/16.jpg)
Programowanie w środowiskach zintegrowanych
Komponenty edycyjne zintegrowane ze zbiorami Komponenty edycyjne zintegrowane ze zbiorami danychdanych
• PrzeznaczeniePrzeznaczenie – szybka implementacja zadań dotyczących edycji bazy danych
• Elementy edytujące pola
• Elementy edytujące wiersze
• Elementy specjalne
>posługiwanie się strukturami hierarchicznymi – przykład: Zarządzanie zwrotami gwarancyjnymi
![Page 17: wykład 4](https://reader036.fdocuments.pl/reader036/viewer/2022082821/568151d1550346895dc00aef/html5/thumbnails/17.jpg)
Programowanie w środowiskach zintegrowanych
PodsumowaniePodsumowanie
• Komponenty abstrakcyjne i niezależne cz. II
– Komponent abstrakcyjny TField
– Komponent niezależny TDataSource
– Tworzenie struktury tabel powiązanych
• Komponenty edycyjne