Co nowego w XControls DAO w wersji 3.01.0644

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()

XNavi.DatabaseName = XMDIForm.XNavi.DatabaseName
XNavi.Connection = XMDIForm.XNavi.DatabaseName
XNavi.SystemDB = XMDIForm.XNavi.SystemDB
XNavi.UserName = XMDIForm.XNavi.UserName
XNavi.Password = XMDIForm.XNavi.Password

End Sub

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)
Aby zmienić typ blokowania na blokowanie rekordów, należy podczas ładowania MDIFormy wprowadzić następujący kod:

Sub MDIForm_FormLoad()

...
Dim xp As XProperty, v As Variant
Set xp = XNavi.Object
v = xp.Value("LockEdits")
...
End sub

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.

Co nowego w XControls ADO w wersji 3.00.537

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.