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.

sum([WartoscAkcyzy])

Przechodzimy do szablonu głównego, na lewym panelu w sekcji Udostępnione miary wyliczane dodajemy miarę z podszablonu.

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ą.

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:

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

Nowa miara wyliczana pojawi się na samym dole, w rozwijanej liście dostępnych danych.