Udostępnianie zmiennych pomiędzy podszablonami
Aby udostępnić wartość zmiennej z podszablonu A na podszablon B należy udostępnić ją z podszablonu A na szablon główny, a następnie za pomocą parametru przekazać do podszablonu B. (ta funkcjonalność zastępuje zmienne shared w Crystal Reports)
Wykorzystamy standardowy szablon faktury aby przedstawić działanie tej funkcjonalności. Udostępnimy wartość zmiennej wyliczanej z podszablonu FA_Szczegóły na podszablon TabelaVat
Przechodzimy do podszablonu FA_Szczegóły i tworzymy miarę wyliczaną SumaAkcyza.
Koniecznie zaznaczamy check Udostępnij miarę aby móc udostępnić miarę na szablon główny.
Przechodzimy teraz do podszablonu TabelaVat gdzie dodamy parametr za pomocą, którego będziemy przekazywać wartość utworzonej miary.
Przechodzimy ponownie na szablon główny gdzie zbindujemy parametr podszablonu z udostępnioną miarą wyliczaną.



sum([WartoscAkcyzy])Przechodzimy do szablonu głównego, na lewym panelu w sekcji Udostępnione miary wyliczane dodajemy miarę z podszablonu.






Uwaga
Bindowanie jest możliwe wyłącznie wtedy, gdy parametr podszablonu jest tego samego typu danych (np. int, double itp.) co bindowane pole.
Miary wyliczane a białe znaki
Przy tworzeniu miar wyliczanych, zwłaszcza kiedy używamy funkcji porównujących, warto zwrócić uwagę czy wartości zwracane przez pola z bazy mogą mieć białe znaki, np. „Brutto” nie jest równe „Brutto „
Numeracja pozycji
Do numerowania pozycji można wykorzystać funkcję CurrentVisibleRowIndex().


Miary wyliczane a warunki
Przy tworzeniu warunków w mierze wyliczanej może zdarzyć się sytuacja, że dana kolumna mająca np. typ int czyli liczby całkowitej nie będzie odczytywana jako liczba całkowita. W takim przypadku należy przekonwertować taką wartość na typ liczbowy.
Formuła miary bez zastosowanego konwertowania:
Formuła miary z zastosowanym konwertowaniem:
Podgląd na wydruku:




Suma agregująca po danym elemencie
Składnia [].Sum() nie umożliwia osiągnięcia sumy agregującej. W celu uzyskania sumy należy wykorzystać składnię:
[][[kolumna_po_której_grupujemy]==[^.kolumna_po_której_grupujemy]].Sum([pole_do_podsumowania])
Jak poprawnie umieścić miarę wyliczaną na szablonie?
Jeśli miara wyliczana nie jest udostępniona z podszablonu, może być umieszczona w dowolnym miejscu na szablonie, ponieważ będzie pobierała wartości bezpośrednio z szablonu głównego.
Udostępniana miara wyliczana z podszablonu musi znajdować się poniżej kontrolki tego podszablonu, z którego jest udostępniana. W przeciwnym razie będzie ona zwracała pustą lub niepoprawną wartość, ponieważ zawiera dane w kontekście, który jeszcze nie został jeszcze wczytany. Szablony w aplikacji sPrint są docelowo wydrukami zatem zaczytują się po kolei od góry do dołu.
Co więcej wartość udostępnionej miary wyliczanej jest wyliczana tylko raz. Oznacza to, że jeśli udostępniona z podszablonu miara wyliczana zostanie umieszczona jednocześnie powyżej i poniżej tego podszablonu wartość miary będzie pusta lub niepoprawna, przypisywana jest wartość pierwsza od góry i tylko raz.
W każdym przypadku należy pamiętać, że udostępniona miara musi znajdować się poniżej szablonu, z którego jest udostępniana.

Czy miarę wyliczaną dodaną na szablonie trzeba dodać również w zapytaniu?
Do utworzenia miary wyliczanej nie ma potrzeby zmiany zapytania SQL. Miary wyliczane dodajemy z poziomu Edytora z lewego panelu lub w zapytaniu SQL.
Miara składająca się ze złączenia tekstu oraz wartości z pól
Za pomocą miary wyliczanej możemy łączyć ciągi znaków z wartościami z pól pobranych przez zapytanie szablonu.
Żeby to zrobić należy wykonać poniższe kroki.
Dodać miarę wyliczaną za pomocą plusa w zakładce połączenie w lewym panelu.
W oknie edycji miary wyliczanej należy uzupełnić jej nazwę oraz składnie.
Należy pamiętać aby tekst wpisywać w pojedynczym cudzysłowie np. 'tekst', a każde elementy łączyć za pomocą plusa między nimi.
Dla podanego wyżej przykładu składnia wyglądałaby następująco:
Nowa miara wyliczana pojawi się na samym dole, w rozwijanej liście dostępnych danych.


'Zamówienie nr' + [ZaN_DokumentObcy] + 'dla klienta' + [Knt_Nazwa1] + 'musi być dostarczone w terminie do' + [DataRealizacji]
