Opis problemu:
1. Czy nie patrzyliśmy czasem trochę zazdrośnie na accessowe kreatory do budowy raportów? Wystarczy podać źródło danych, a czarodziej zaprojektuje i wykona resztę.
2. Jak wypełnić danymi formant ListView w naszej aplikacji? Wprawdzie Microsoft przygotował rozbudowany przykład na stronie: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q165437, który demonstruje użycie formantu ListView, TreeView oraz innych kontrolek zawartych w MSCOMCTL.OCX, lecz jest on raczej dość skomplikowany i mało czytelny, zwłaszcza dla początkujących praktyków Accessa.
Rozwiązanie:
W przykładzie Dynamiczne_raporty.zip Krzysztof Ciuba zdradza sekrety, jak wcielić się w rolę wizarda i samemu z poziomu kodu zbudować raport od podstaw. Rozwiązanie może znaleźć wprost zastosowanie w raportach opartych na kwerendach krzyżowych, w których nie można z góry przewidzieć nazw, ani ilości kolumn.
Ten sam przykład demonstruje metodę wypełniania kontrolek ListView. Jest to warte oddzielnego wyszczególnienia, bo wykorzystanie tego formantu jest trudniejsze niż standardowych obiektów z accessowego przybornika i często nastręcza problemy. A oto co pisze Krzysztof Ciuba o swoim programie:
Przypominam, że kontrolki ListView nie ma w standardowej instalacji Accessa,
dlatego Ci którzy nie posiadają jej w swoich komputerach, muszą wcześniej ją zainstalować.
Możliwe jest także wykorzystanie starszych wersji bibliotek, które już są w naszym systemie.
W tym celu (w razie problemów z kompilacją) należy odpowiednio zmodyfikować referencje
w menu Tools/References. Ja np. musiałem zmienić odwołanie do biblioteki
Microsoft ActiveX Data Objects 2.7 Library
na Microsoft ActiveX Data Objects 2.5 Library
i program działa prawidłowo.
W referencjach musi być również odniesienie do pliku MSCOMCTL.OCX. Jeśli ktoś dysponuje starszą wersją, np. 5.0 z Visual Basica, może dokonać upgrade'u do ver. 6.0 ze strony: http://msdn.microsoft.com/vbasic/downloads/axupgrade.asp
Niektóre źródła danych dla dynamicznie tworzonych raportów, są przez Krzysztofa tylko zamarkowane w prezentowanym przykładzie - należy w ich miejsce podłączyć swoje tabele lub kwerendy.