2008-11-03 14 views
29

Jednym z wielu dziwactw Reporting Services, na które natknęliśmy, jest kompletny i kompletny brak kontroli CheckBox lub nawet coś podobnego.Jak najlepiej wyświetlić CheckBoxes w SQL Server Reporting Services?

Mamy formularz, który powinien zostać wyświetlony automatycznie wypełniony na podstawie informacji pobranych z bazy danych. Mamy kilka bitowych typów danych. Wydruk "Prawda" lub "Fałsz" wygląda po prostu niemądrze, ponieważ ma to wyglądać jak formularz, który został automatycznie wypełniony, więc chcemy mieć serię pól wyboru i etykiet, które są zaznaczone lub odznaczone.

Korzystamy z usług SSRS 2005, ale nie znam się na SSRS 2008, który dodał kontrolkę CheckBox. Nawet gdyby tak było, na razie potrzebowalibyśmy alternatywy. Najlepszym odkryliśmy tak daleko jest:

  1. użycie Wingdings
  2. użyć wizerunki
  3. użytkowania pól tekstowych z granicami i wydrukować pustą przestrzeń/lub kapitału X

Wszystkie trzy podejścia wymagają shenanigans wyrażenia IIF.

Podejście Wingdings wydawało się działać w sposób akceptowalny i było najbardziej estetyczne z wyjątkiem tego, że z jakiegokolwiek powodu nie zawsze drukował poprawnie. Co ważniejsze, eksportowanie plików PDF, również z jakiegokolwiek powodu, konwertowało wszystkie czcionki (ogólnie) na Arial, więc otrzymaliśmy funky litery zamiast dingbatów Windings.

Obrazy, będące rastrem opartym na pikselach, nie robią tego dobrze, gdy są drukowane wzdłuż wektorów wektorowych, takich jak tekst. Jeśli nie są traktowane ostrożnie, mają tendencję do rozciągania, pikselowania i wykonywania innych nieprofesjonalnie wyglądających rzeczy.

Chociaż te metody działają (niektóre z ograniczeniami, jak wspomniano powyżej), żadna z nich nie jest szczególnie elegancka.

Czy brakuje czegoś oczywistego? Nie tak oczywiste? Czy ktoś z Microsoftu ma dobry powód, dla którego taka kontrola nie była przewidziana w SSRS 2000, nie mówiąc już o 2 wersjach i 8 lat później? To nie może być pierwszy raz, kiedy pojawił się ten problem ...

+1

SSRS 2000 została wydana w roku 2004. Więc oni mieli * tylko * 5 lat, aby to sortowane. –

+0

SQL Server 2012 wyszedł i nadal nie ma pola wyboru tylko 12 lat, aby nie dodać jednej prostej funkcji. – lancegerday

+0

Sugerowałbym rozpoczęcie lub dodanie do rzeczywistego obszaru dyskusyjnego lub odpowiedzi na temat funkcji Microsoft - mają dużo - zamiast narzekać tutaj. Rozumowanie może być tym, co widziałem już zbyt wiele: ludzie używający SSRS jako narzędzia procesu biznesowego, zamiast narzędzia do raportowania. Dodaje olbrzymią kwotę do TCO i może powodować inne problemy ... i naprawdę, jaki raport potrzebuje checkboxa ?! – Volvox

Odpowiedz

18

Ja, wraz z innymi osobami w moim sklepie, użyłem obrazów, przełączając ukryty atrybut na podstawie wartości pola (prawda lub fałsz). Nie mieliśmy żadnych problemów z rozmyciem ani skalowaniem, chyba że próbowaliśmy w sposób oczywisty zwiększyć skalę obrazu ponad 100%.

Inna opcja, której użyłem, jest podobna do idei skrzydeł, ale używam zwykłego starego "X". Na naszych formularzach przynajmniej często zdarza się, że ktoś używa X-a w polu zamiast znaku kontrolnego, więc wygląda na całkowicie akceptowalny. Dodatkowo, nie musisz martwić się o dziwne znaki podczas drukowania.

Jeśli chodzi o to, dlaczego Microsoft nie ma kontroli pola wyboru, nie mogę odpowiedzieć na to pytanie, ponieważ od dawna zastanawiam się nad tym samym.

1

Myślę, że jest błąd z SSRS i osadzanie czcionek powyżej 128 (niektóre rzeczy z kodowaniem ANSI). Zasadniczo można użyć grzywny 1-128, reszta pokazuje się jako wysokie prostokątne bloki.

Podoba mi się pomysł NY na pole tekstowe z ramką i opcjonalnie X - to brzmi prosto i skutecznie.

+3

W końcu to zrobiliśmy. Nic nie działało we wszystkich trzech formatach: przeglądarka internetowa, drukowane i eksportowanie plików PDF. Nadal uważam, że dawno temu powinni mieć kontrolę nad checkboxem. Fakt, że SSRS 2008 nadal nie ma dobrego rozwiązania po 8 latach usług Reporting Services jest niewiarygodny. –

11

Co użyłem, aby wyświetlić okno wyboru (lub urny):
1- utworzyć pole tekstowe (które staną się okno czek)
2- zmiana czcionki na Arial Unicode MS
3- w wyrażeniu zastosowanie okno:
ChrW (& H2611) do wypełnionego wyboru
ChrW (& H2610) do pustego pola wyboru

+0

po wyeksportowaniu do pliku pdf pokazuje pole wyboru w połowie wielkości. Używam Chr (0168). –

+0

Działa również z eksportowaniem do pdf! Czcionka 'Arial Unicode MS' była kluczem do działania. Nie działało ze standardowym 'Arial'em –

8

Oprócz różnych metod już prezentowane, jak SQL Server 2008 R2 nie ma wbudowaną kontrolą które można wykorzystać do che Funkcjonalność podobna do CKBox: Indicator!

Sprawdźcie tutaj szczegóły dotyczące sposobu użycia: http://blog.hoegaerden.be/2012/08/04/displaying-checkboxes-in-an-ssrs-report/

Aby móc korzystać z pola typu bit, będziesz musiał oddać go do int pierwszy. Można to zrobić w zapytaniu zestawu danych lub poprzez dodanie pola obliczeniowego do zestawu danych.

Jeśli chcesz, aby wartości NULL pojawiały się jako żółte, musisz zbudować wyrażenie w ten sposób, aby uwzględnić również to wymaganie.

Oto możliwe wyrażenie na pole obliczeniowe:

=Switch(
    IsNothing(Fields!YourBoolean.Value), 50, 
    Fields!YourBoolean.Value = False, 0, 
    Fields!YourBoolean.Value = True, 100) 

zależności od znaczenia swoich dziedzinach - jest False dobry czy zły - może trzeba zamienić zerowy i 100.

+0

Wskaźnik wydaje się, że byłby (w końcu) dobrze pasował, ale zauważyłem, że twój przykład używa wartości całkowitych. Bez ciągnięcia projektu SSRS, możesz z łatwością użyć go z wartością boolowską? A co z wersją zerową (i może uzyskać oczekiwaną wersję żółtą/ostrzegawczą)? –

+0

Wydłużyłem odpowiedź, aby odpowiedzieć na Twoje pytania, wydawało się bardziej wykonalne niż odpowiedź poprzez komentarz :) –

2

Ty możliwe, również użyj pola obliczeniowego ciąg znaków, takiego jak "[X]" lub "[]". Jest mniej ładny niż pole tekstowe z ramką, ale nie musisz umieszczać konkretnej kontroli wartości i możesz wypełnić tabelę lub macierz.

Przynajmniej jest jakieś rozwiązanie dla tego pola wyboru. Nadal szukam pełnego uzasadnienia dla mojego tekstu (w rzeczywistości szukam innego rozwiązania niż SSRS wiedzieć).

ACCESS 97 mógłby zrobić tego typu rzeczy, ale nie SQL Server 2012.

7

Chcę tylko podzielić się pomysł na tego bloga. SSRS: How to Display Checkbox on Report

  1. Najpierw utwórz tekstowe
  2. następnie zmienić rodzinę czcionek do Wingdings
  3. Wstawianie wyrazu w polu tekstowym i napisać tego wyrażenia.

    =IIF(Fields!Active.Value,chr(254),"o") 
    

    Pola Active.Value może być cokolwiek od zapytania, które powinny zwrócić wartość logiczną 1 lub 0.

  4. Następnie kliknij przycisk Podgląd i zobaczyć pole!;)

Więcej stylów można wybrać na blogu, który udostępniłem powyżej.

Oto przykład mojego wyjścia enter image description here

+1

Ten jest najlepszym rozwiązaniem :) –

0

Innym sposobem zrobić thisd to udać się do „Właściwości symbolu zastępczego” pola tekstowego i sprawdzić Html - Interpret HTML tag as styles

Następnie w Value - Expression umieścić ten wiersz kodu na sprawdzone :

="<font face=""Wingdings 2"" color=""green"">" & Chr(81) &"</font>" & "some other text" 

Albo ten przykładowy kod dla odznaczone:

="<font face=""Wingdings 2"" color=""red"">" & Chr(163) &"</font>" & "some other text" 

W ten sposób możesz mieć pole wyboru i tekst w tym samym polu tekstowym.

Palceholder properties

Later edit:

Jeśli występują problemy wyświetlania Wingdings 2 na Azure, a następnie użyć Wingdings.

Podobno działa.

="<font face=""Wingdings"" color=""green"">" & Chr(253) &"</font>" & "some other text" 

Albo ten przykładowy kod dla odznaczone:

="<font face=""Wingdings"" color=""red"">" & Chr(168) &"</font>" & "some other text" 
Powiązane problemy