Report Services czasami zaskakuje, sprawia problemy. Kilka wskazówek.

Placeholder

Problemem w raporcie było dużo tekstu, który poprzecinany był wstawkami danych z bazy. Samo w sobie nie jest to problemem ale jeżeli chcemy zmienić formatowanie tekstu to już nie jest takie oczywiste. Z pomocą przychodzi Placeholder

Aby stworzyć, to coś co nawet przetłumaczyć nie umiem, posłużę się polem tekstowym. W polu tekstowym jak sama nazwa wskazuję umieszczam tekst ( TextBox). Klikając lewym przyciskiem myszy wchodzę w edycję, następnie prawym przyciskiem klikam w edytowane pole. Oczom mym ukazuję się niedługie menu. W owym menu wybieram opcję „Create Placeholder….”.

Czy to koniec? Nie.

Na ekranie ukazuje się okno „Placeholder Properties” (czego można było się spodziewać).

W tym momencie interesuje mnie tylko zakładka „General”. Najważniejszą opcją jest tu tzw. RadioButton (czemu radio? przecież nie gra) „Markup Type”. Standardowo mamy zaznaczoną opcje „None”, jednak ja chcę dodać znaczniki  HTML do tekstu. Więc opcja numer dwa wydaje się bardziej sensowna.

Edycja tekstu znajduję się w magicznym polu Value a pod przyciskiem (obok pola ten z symbolem „fx”) znajduje się portal do innego świata. Świata zwanego „Expresion”, gdzie za pomocą magicznych formuł mogę wpływać na obraz prezentowany w widoku raportu.

Przykładowy kod

Kilka uwag

  • jeżeli zwracamy wartość która nie jest stringiem, rzutowanie jest konieczne funkcja CSTR(wartość)
  • trzeba uważać na polskie znaki!  „alt + a”  zaznacza tekst nie tworzy litery „ą” co już nie raz doprowadziło do katastrofy
  • ctrl+z – nie działa
  • trzeba uważać przy kopiowaniu tekxtbox-ów, wspaniały system microsoftu czasami dodaje coś od siebie w tekście, szczególnie jeżeli są tam jakiekolwiek funkcje. Oczywiście w rezultacie sypie błędem

Linki:

Kolumny

Do stworzenia kolumn używam zmodyfikowanego zapytania , procedury lub widoku, w których korzystam z funkcji MS Sql-a NTILE.

Funkcja dzieli zakres danych według kolumny w tym wypadku numeru pesel na dwa równe zbiory. Zbiory są równe tylko i wyłącznie jeżeli ilość wierszy jest podzielna bez reszty. W moim przypadku chcę podzielić na dwa zbiory, jeżeli jedna okaże się że reszta z dzielenia zostaje to jeden ze zbiorów dostanie tę resztę w prezencie .

Raport dziele pomiędzy dwie tabele korzystające z tego samego źródła. W opcji tabeli w zakładce „Filters” ustawiam wyrażenie które wyświetla mi dane równe jednemu z dwóch zbiorów.

Cała filozofia. Oczywiście żeby do tablicy dodać więcej kontrolek, trzeba w daną kolumnę wrzucić komponent Rectangle.

Dla mnie jest to najłatwiejszy sposób na podział na kolumny. Sądzę, że nie jest jedyny.

Justowanie tekstu

To jest prawdziwa zagadka. Dlaczego nie da się  wyjustować tekstu? Nie znalazłem odpowiedzi na to pytanie.