W tej wersji możliwa jest obsługa baz danych Microsoft Access 2000 (Microsoft Jet Engine 4.0)
XForm
1.Dodano właściwość XFilterType
Właściwość ta określa sposób filtrowania.W przypadku gdy XFilterType = xFilterNormal (0),
filtr obsługiwany jest tak jak w poprzednich wersjach,
natomiast gdy XFilterType = xFilterExtended (1) wówczas XForm zapamiętuje
wpisywane kryteria filtrowania i przy ponownym naciśnięciu przycisku "Filtruj"
wyświetla te poprzednio wpisane kryteria oraz umożliwia wyczyszczenie warunków kryterium.
2.Dodano właściwość XFilterFields.
Wskazuje ona na kolekcję XFilterFields przechowującą informację o
wprowadzonych kryteriach filtrowania. (zobacz opis XFilterType)
XNavigator
1.Dodano właściwość XStringTable.
Właściwość ta pozwala na zmianę standardowych komunikatów generowanych przez XControls z
poziomu kodu. Kluczem w tej kolekcji jest numer w tablicy StringTable w zasobach
skompilowanego OCX. Domyślnie kolekcja ta jest pusta, czyli żadne
komunikaty nie są zamieniane. Aby zmienić komunikat należy dodać nowy element
do kolekcji. Np.
XNavgatori.XStringTable.Add 58, "Logowanie do systemu 'Mój system'",
gdzie 58 jest indeksem komunikatu dotyczącego logowania do programu, który zapisany jest w zasobach (resource) pliku XCtrl6Dao.ocx. Aby zobaczyć inne komunikaty, należy otworzyć plik XCtl6Dao.ocx w dowolnych edytorze zasobów (np. w MS Visual C++ 6.0 )
2.Możliwość użycia kontrolki XNavigator
na formatkach MDIChild lub typu Dialog.
Dotychczas XNavigator mógł być
wstawiony tylko na formatkę MDIForm i używany był jako jedyne źródło połączenia
z bazą danych. Obecnie może być wstawiany na dowolną formatkę, co pozwala na tworzenie
bazodanowych okienek dialogowych. Pamiętać jendak należy że dla XNavigatora
potrzebna jest też kontrolka Toolbar, do wizualizacji i sterowania operacjami
bazodanowymi.
! UWAGA !
Każda instancja XNavigatora to nowe połączenie z bazą danych.
Wszystkie kontrolki wstawione na takiej formatce(XForm, XGrid, XDict),
będą używać właściwość XNavigator'a leżącego na formatce, a nie głównego - leżącego na
MDIForm. Aby zapewnić te same właściwości kontrolki XNavigator leżącej
na formatce sugerujemy dopisanie następującego kodu do zdarzenia Form_Load
formatki zawierającej własnego XNavigator'a:
Private Sub Form_Load()
End SubXNavi.DatabaseName = XMDIForm.XNavi.DatabaseName
XNavi.Connection = XMDIForm.XNavi.DatabaseName
XNavi.SystemDB = XMDIForm.XNavi.SystemDB
XNavi.UserName = XMDIForm.XNavi.UserName
XNavi.Password = XMDIForm.XNavi.Password
gdzie XNavi jest nazwą kontrolki XNavigator leżącej na formatce, a XMDIForm jest nazwą formatki MDIForm w projekcie
! UWAGA !
Podczas wywoływania okno dialogowego przy użyciu metody ShowForm, aby 'poinformować', że okno to ma własnego
XNavigator'a parametr XFormName musi mieć wartość 'xDialog', np.:
XMDIForm.XNavi.ShowForm dlgProduct, , True, "ProductID = " & datProductsList.Recordset!ProductID, , , "xDialog"
3.Nowe zdarzenie Command(ByVal Command As String, ByVal Method As String, Value As
Variant)
Zdarzenie jest generowane przy każdej zmianie
"wyglądu" Toolbar'a spowodowanej komendą użytkownika. Lista komend
jest taka sama jak dla metody "Command". Użycie tego zdarzenie
pozwala na wykorzystanie niestandardowej kontrolki (np. inny Toolbar, Menu lub
też lista przycisków) do sterowania XNavigatorem przez użytkownika.
4.Możliwość blokowania danych na poziomie rekordu (Jet 4.0)
Sub MDIForm_FormLoad()
Aby zmienić typ blokowania na blokowanie rekordów, należy podczas ładowania MDIFormy wprowadzić następujący kod:
...
End sub
Dim xp As XProperty, v As Variant
Set xp = XNavi.Object
v = xp.Value("LockEdits")
...
5. SQLFields - funkcjonalność nieudokumentowana (bez gwarancji działania)
Jest to nowatorskie wykorzystanie ODBCDirect do dodawania, usuwania i edycji rekordów z pominięciem obiektu Recordset oraz metod AddNew, Edit, Delete i Update. Polega na określeniu listy pól (wraz z właściwościami), które mają być zapisane do bazy danych. Kod w języku SQL przy operacjach INSERT, UPDATE i DELETE jest generowany automatycznie a następnie wykonywany przy użyciu metody ODBC ExecuteSQL. Przy wykorzystaniu SQLFields kontrolki typu Data muszą być skonfigurowane na użycie ODBCDirect (właściwość DefaultType = ODBCDirect). Zastosowanie SQLFields pozwala na zwielokrotnienie szybkości działania programu łączącego się z serwerem bazy danych, gdyż poprzez użycie ODBCDirect wszystkie zapytania SQL realizwoane są na serwerze z pominięciem obiektu Workspace związanego z Microsoft Jet.
Do obiektów XForm i XGrid dodane zostały właściwości SQLFields, bedące kolekcjami obiektów SQLField.
Właściwości SQLFields można ustawiać w trybie projektowania (design time) na ostatniej zakładce XForm i XGrid oraz w kodzie programu.
XGrid
1. Dodano możliwość wykorzystania kontrolki
MSFlexGrid jako kontrolki grid współpracującej z XGrid.
Dotychczas możliwe było wykorzystanie tylko kontrolki DBGrid. Kontrolka MSFlexGrid standardowo
jest nieedytowalna. Wykorzystując XGrid można użyć MSFlexGrid do edytowania,
dodawania oraz usuwania rekordów. Funkcja te jest dostępna tylko w przypadku
zastodowania SQLFields.
1. Dodano właściwość XStringTable.
Właściwość opisana w części "Co nowego w XControls DAO 3.01.0644".
2. Dodano Zdarzenie Command kontrolki XNavigator
Właściwość opisana w części "Co nowego w XControls DAO 3.01.0644".
3. Dodano możliwość wstawiania kontrolki XNavigator na
formatkach MDIChild lub typu Dialog.
Możliwość opisana w części "Co nowego w XControls DAO 3.01.0644".
! UWAGA !
Właściwość XFilterType mimo, iż jest w interfejsie obiektu
XCtl6ADO.XForm - nie jest obsługiwana.