wykład 4
description
Transcript of wykład 4
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
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
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
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
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
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
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
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
Programowanie w środowiskach zintegrowanych
Podstawowe rodzaje pólPodstawowe rodzaje pól
• Pola danych (data fields)
• Pola obliczane (calculated fields)
• Pola słownikowe (lookup fields)
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
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.
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)
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
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.
Programowanie w środowiskach zintegrowanych
Elementy interfejsu zintegrowane ze zbiorami danychElementy interfejsu zintegrowane ze zbiorami danych
• Dostępne komponenty
• Przykład
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
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