Przejdź do głównej zawartości

Wyświetlanie QRCode

Ostatnio coraz większą popularnością cieszą się tzw. foto-kody, czyli dwuwymiarowe kody kreskowe.
Umożliwiają one przechowywanie zakodowanych informacji, które możemy odczytać za pomocą czytnika kodów kreskowych lub telefonem komórkowym dzięki specjalnej aplikacji. W fotokodzie może być zakodowany nie tylko tekst lecz adres URL, wizytówka vcard lub wiadomość sms. Jednym z najbardziej popularnych standardów jest QR Code.

Crystal Reports nie posiada niestety wbudowanej obsługi kodów dwuwymiarowych.  Przedstawię wam prosty sposób na rozwiązanie tego problemu, bez potrzeby kupowania dodatkowych bibliotek.

Otóż Crystal Reports umożliwia wstawienie obrazka graficznego spod wskazanego adresu url. Natomiast Google udostępnia usługę do generowania kodów kreskowych o nazwie Google Chart API. Musimy tylko przygotować odpowiedni url i w rezultacie otrzymamy obrazek graficzny w formacie PNG.

Przykładowo, aby zakodować tekst Crystal Reports wystarczy wpisać do przeglądarki www taki adres:
http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=Crystal Reports&chld=H|0

Jak to teraz wykorzystać w Crystal Reports?

1. Wstawiamy dowolny obrazek graficzny.
2. Przechodzimy do opcji formatowania
3. Wybieramy zakładkę Picture
4. W opcji Graphic Location w formule wpisujemy "http://chart.apis.google.com/chart?cht=qr&chs=100x100&chl=Crystal Reports&chld=H|0"

Gotowe! Teraz po przejściu do podglądu raportu zamiast naszego obrazka zobaczymy fotokod.
Dzięki temu, że jest to formuła możemy połączyć to z polem z bazy danych. Oczywiście należy pamiętać, że do tego rozwiązania potrzebny jest stały dostęp do sieci internet, ale to ostatnio przestaje być problemem.

Pełna specyfikacja Google Chart API jest pod tym adresem. Google Chart API daje dużo większe możliwości i wkrótce do niego wrócimy w kontekście Crystal Reports.

Na razie życzę owocnego kodowania.





Komentarze

Anonimowy pisze…
U mnie nie działa. Obrazek na wydruku pozostaje taki sam.
Marcin pisze…
Raport uruchamiasz na serwerze czy lokalnie?
Farfelkugel pisze…
Musi iść po SSL-u. Http nie działa. Sprawdziłem co prawda na Excelu nie CR ale wydaje się że ta zasada jest słuszna.

Popularne posty z tego bloga

Konwersja daty w CDN Optima

Crystal Reports jest bardzo często zintegrowany z popularnymi aplikacjami. Przykładem jest system CDN Optima . Początkujących użytkownikom sprawiają kolumny z datą, bo data nie jest zapisana jako datetime lecz jako liczba. Otóż data w CDN Optima zapisana jest w formacie Clarion, czyli liczba dni, które upłynęły od daty 1800-12-28 . (Czy ktoś wie co to za data w historii?) Dlatego jeśli chcemy użyć takiego pola na raporcie, pierwsze co powinniśmy zrobić to dokonać konwersji liczby na datę. W innym przypadku Crystal Reports nie będzie wiedział, że jest to data i żadne formatowanie dat, grupowanie po okresach nie będzie działać. Formuła do konwersji formatu Clarion na datę : Jeśli mamy wiele takich pól to najlepiej utworzyć własną funkcję:

Słownie złotych

Czasami na raportach, na przykład na fakturach, zachodzi potrzeba zamiany liczby na słownie złotych. Crystal to umożliwia ale tylko na język ang. Dlatego napisałem funkcję UFL do CR, która to realizuje. Jest to funkcja typu Crystal Reports UFL (User Function Libraries) i korzysta sie z niej tak samo jak z wbudowanych funkcji Crystal Reports. Obecny zakres liczb od 0 do biliona. Opis instalacji 0. Pobierz 1. Rozpakować archiwum i skopiować plik CRUFLslw.dll do np. katalogu C:\WINDOWS\system32 2. Uruchomić linię poleceń: CMD 3. Przejść do katalogu z plikiem: CD C:\WINDOWS\system32 3. Uruchomić polecenie rejestracji biblioteki: regsvr32 CRUFLslw.dll Powinno wyświetlić się okno z informacją "DllRegisterServer in CRUFLslw.dll succeeded." 4. Uruchomić Crystal Reports 5. Utworzyć nową formułę i wpisać np. slownie(123.45) Przetestowałem również z Crystal Reports 2008 i działa.

Kody kreskowe w Crystal Reports 2008

Crystal Reports 2008 posiada wbudowaną obsługę kodów kreskowych. Niestety w standardzie otrzymujemy tylko Code 39. Jeśli chcemy skorzystać z innych kodów, np. Code 128 narzędzie kieruje nas na stronę firmy Azalea, gdzie możemy dokupić pakiet innych kodów. Czy to jedyne rozwiązanie? Na szczęście nie. Znalazłem stronę francuską poświęconą kodom kreskowych: http://grandzebu.net/index.php?page=/informatique/codbar-en/ean13.htm Strasznie stary wygląd strony, ale zawiera wiele cennych linków: Code 128 w postaci darmowej czcionki TTF: http://grandzebu.net/informatique/codbar/code128.ttf Code 128 w postaci darmowej funkcji UFL do Crystal Reports: http://grandzebu.net/informatique/codbar/code128_Crystal%20reports.zip Co więcej, tych rozwiązań można również użyć w starszych wersjach Crystal Reports.