Pytania dotyczące struktury bazy lub zapytania SQL
Pytania dotyczące struktury bazy lub zapytania SQL proszę kierować do asysty systemu Comarch ERP, którego dotyczy sytuacja. Do asysty wybranego systemu ERP należy również kierować pytania dotyczące danych zwracanych przez standardowe wydruki.
Przykładowe pytania:
- Jak pobrać na szablon stawkę VAT dla wybranego produktu.
- Co zawiera/Z czego składa się pole Dok_Nazwa_Canceled na szablonie standardowym dla faktury.
Szablony XML
W Edytorze Comarch sPrint nie ma możliwości edycji szablonów w formacie XML. W Edytorze możemy zmieniać i tworzyć szablony w formacie sp.
Zwiększenie poziomu logów
Aby zwiększyć poziom zapisywanych logów należy zmienić poniższą wartość "
Info" na "
Debug" w pliku
appsettings.json
"Serilog": {
"MinimumLevel": {
"Default": "Info"
},
},
Plik znajduje się w (domyślnej) ścieżce:
C:\Program Files\Comarch\Comarch sPrint\baseVersion\backend
Logi dla Comarch sPrint
Pliki logów znajdują się w ścieżce:
C:\Users\nazwa użytkownika\AppData\Roaming\Comarch sPrint\Logs
Komunikat Incorrect syntax near the keyword 'WHERE'
Komunikat
Incorrect syntax near the keyword 'WHERE' może wystąpić przy próbie uruchomienia wydruku z poziomu Comarch ERP jeśli na szablonie zostały zdefiniowane parametry, a w systemie Comarch ERP nie został zaznaczony check
Ignoruj filtr aplikacji.
Dla Comarch ERP Optima:
Komunikat Login failed for user 'CDNHASP'
Kiedy przy próbie uruchomienia wydruku z poziomu Comarch ERP pojawi się komunikat
Login failed for user 'CDNHASP' należy zweryfikować czy SQL ma ustawiony tryb logowania Mixed mode. jest on wymagany dla poprawnego działania aplikacji Comarch sPrint.
Ukrycie parametru przy podglądzie wydruku
Aby ukryć parametr przy podglądzie wydruku należy dla danego parametru dodać opcję '
@H()' w oknie
Edycji wydruku na zakładce
Inne.
Jak przekazać wartość zmiennej dynamicznej do wydruku
Na szablonie należy stworzyć parametr szablonu o nazwie takiej jak zmienna dynamiczna.
Po zapisaniu szablonu w ERP należy zaimportować parametry. Wartość zmiennej dynamiczne zostanie przekazana do wydruku za pomocą stworzonego parametru.
Zapis połączeń w Edytorze
Nie ma możliwości zapisania połączenia w Edytorze.
Aby pominąć konieczność tworzenia połączenia za każdym razem przy tworzeniu szablonu zalecamy otwieranie nowego szablonu do edycji z poziomu systemu Comarch ERP. (Patrz
Optima lub
XL)
Szablony standardowe
Wszystkie szablony standardowe wydruków są zaimplementowane bezpośrednio do programów Comarch ERP.
Można pobrać taki szablon aby później zaimportować go jako nowy i edytować (Patrz
Optima lub
XL)
Uruchamianie Comarch sPrint wraz z uruchamianiem Comarch ERP XL
W celu zwiększenia ergonomii działania na aplikacji Comarch sPrint możliwe jest takie skonfigurowanie Systemu, aby uruchamiała się ona w tym samym momencie co Comarch ERP XL. Umożliwia to przyspieszenie działań Użytkownika w przypadku konieczności uruchomienia wydruku w formacie sPrint.
W tym celu w oknie Konfiguracja komputera dostępnym w module Administrator lub z poziomu Shella, na zakładce [Wydruki i wykresy] dodano parametr Uruchamiaj sPrint przy uruchamianiu systemu.
Domyślnie parametr pozostaje niezaznaczony.
Po zaznaczeniu parametru przy każdym uruchamianiu na danym stanowisku modułu Comarch ERP XL uruchamiany będzie również w tle proces dla wydruków w Comarch sPrint. Dzięki czemu wywołanie podglądu wydruku do PDF oraz sam wydruk będą się wykonywały szybciej.
Ustawienie to dotyczy pojedynczego stanowiska, więc nie zadziała ogólnie dla całej bazy danych czy wszystkich Użytkowników.
Opcja dostępna od wersji Comarch ERP XL w wersji 2024.1
Brak możliwości wybrania funkcji w konfiguratorze
W 3 kroku konfiguratora wybieramy procedurę, która zwraca zbiór rekordów dlatego nie ma możliwości wybrania procedury, która zwraca jedną wartość.
Relacja Right Join przy samodzielnym definiowaniu danych
Dla opcji Zdefiniuj samodzielnie w Konfiguratorze danych szablonu możemy dodać więcej niż jedną tabelę i połączyć je relacjami. Dostępne typy złączeń: INNER JOIN oraz LEFT JOIN.
Nie ma dostępnej opcji RIGHT JOIN, opcja ta jest odwrotnością opcji LEFT JOIN.
W poniższym przykładzie złączenie
CDN.TraNag.TrN_TrNID RIGHT JOIN CDN.TraElem.TrE_TrNId
da taki sam efekt jak złączenie
CDN.TraElem.TrE_TrNId LEFT JOIN CDN.TraNag.TrN_TrNID
Aby skonstruować złączenie:
CDN.TraElem.TrE_TrNId LEFT JOIN CDN.TraNag.TrN_TrNID
należy złapać pole
TrE_TrNId z tabeli
CDN.TraElem i upuścić je na polu
TrN_TrNID w tabeli
CDN.TraNag. Czyli przeciągamy pole z tabeli, która ma być po lewej na pole w tabeli, która ma być po prawej.
Jeśli złączenie doda się automatycznie przy dodawaniu tabel, należy je usunąć i dodać ręcznie.
Brak pobranych danych po skorzystaniu z opcji Wybierz procedurę lub funkcję SQL z listy
Jeśli przy pobieraniu danych z wykorzystaniem opcji
Wybierz procedurę lub funkcję SQL z listy skorzystamy z procedury, która jest generowana dynamicznie to po przejściu do
Edytora na lewym panelu danych nie będą dostępne dane bazodanowe. Generowane dynamicznie procedury dość powszechnie występują w bazie danych Comarch ERP XL.
W takich przypadkach najlepiej skorzystać z opcji
Wpisz własne zapytanie SQL i tam wywołać procedurę przez zapytanie SQL.
Przykładowo, dla procedury
"CDN"."WydrProdKartaPracy" i parametru
@CDN_Filtr należy wprowadzić poniższe zapytanie.
Precyzyjne przesuwanie elementów na szablonie
Przy przesuwaniu elementów na szablonie są one przyciągnę do siebie. Aby przesunąć dany element bardzo blisko innego elementu, ale bez przyciągania można przesunąć element z wciśniętym przyciskiem
Alt.
Można skorzystać również z prawego panelu z sekcji
Układ aby dokładnie określi pozycje oraz wymiary danego elementu
Warunki widoczności dla sekcji podrzędnych
Pusta co druga strona
Jeśli co druga strona na wydruku jest pusta warto sprawdzić szerokość szablonu i podszablonów, czy jakiś element nie przenosi się na drugą stronę. Możemy to szybko zweryfikować zaznaczając wszystkie elementy na pustej stronie z poziomu podglądu w Edytorze.
Domyślne formatowanie pól w sekcji
Po zaznaczeniu sekcji na szablonie możliwy jest wybór domyślnego formatowania dla całej sekcji. Po ustaleniu odpowiednich wartości nowe elementy dodawane będą z formatowaniem odpowiednim dla sekcji.
Zmiana zapytania na kopiach podszablonu
Po skopiowaniu kontrolki podszablonu i wklejeniu obok podszablon będzie cały czas tym samym elementem. Każda zmiana wprowadzona na jednym z podszablonów będzie powodowała zmianę także drugiego z nich.
Podszablon oryginalny zawiera jedno pole
Po dodaniu na kopię szablonu drugiego pola
na podglądzie widzimy, że zostało ono dodane na obi podszablonach
Aby powielić podszablon w taki sposób, żeby wprowadzone na tych podszablonach zmiany były od siebie niezależne to należy to zrobić za pomocą poniższych kroków:
- Eksportujemy wybrany podszablon:
Plik -> Pobierz -> Plik źródłowy. Ustalamy nazwę pliku i zapisujemy.
- Importujemy ten podszablon:
Wstaw -> Podszablon -> Dodaj z pliku. Wybieramy zapisany wcześniej podszablon
Postępując w ten sposób zmiany wprowadzane na jednym z szablonów nie będą miały wpływu na drugi.
Jak usunąć oraz edytować grupowanie
W celu usunięcia grupowania danych należy usunąć sekcję
Nagłówek grupy oraz
Stopka grupy.
Żeby usunąć sekcję należy kliknąć na wybraną sekcję, kliknąć ikonkę
Ołówka a następnie wybrać opcję
Usuń sekcję.
Aby edytować grupowanie w celu zmiany pola grupowania należy kliknąć sekcję
Nagłówek grupy, kliknąć ikonę
Ołówka a następnie wybrać opcję
Edytuj grupowanie według.
Pojawi się okienko w którym możemy wybrać pole po którym chcemy grupować. Na końcu należy zatwierdzić wybór za pomocą przycisku
Zapisz.
Brak widocznego pola na wydruku pod obrazem
Nowa linia w kodach QR
Jeśli w treści kodu QR powinna zostać zakodowany tekst, którego poszczególne fragmenty powinny rozpoczynać się od nowej linii należy:
Wybrać opcję wstawienia Kodu QR z narzędziownika lub z poziomu
Menu>>>
Wstaw>>>
Kod>>>
QR
W oknie
Wstaw kod QR należy wybrać opcję
Wybierz wartość z bazy danych i nacisnąć opcję
Dodaj wartość.
W oknie
Utwórz formułę dla wartości kodu należy wprowadzić tekst zgodnie z własnymi preferencjami, do nowej linii można przejść poprzez naciśnięcie przycisku ENTER. Należy pamiętać, aby tekst został umieszczony między znakami
'' ( 'TEKST' ).
Po naciśnięciu
Zapisz pojawia się okno
Wstaw kod QR, gdzie należy nacisnąć
Wstaw.
Następnie kod zostaje wstawiony na obszar roboczy. Po opcjonalnym ukryciu wartości kodu na wydruku można przejść do trybu
Podglądu, by sprawdzić jak będą prezentować się naniesione zmiany.
Dodany kod można już zeskanować przy użyciu skanera kodów QR, należy jednak mieć na uwadze, że niektóre skanery czy aplikacje skanujące nie radzą sobie najlepiej z tak długimi treściami, przez co zeskanowany tekst może zostać "ucięty". Ponadto znaki polskie mogą nie być prawidłowo odkodowywane. Kluczowy jest tutaj wybór odpowiedniego rozwiązania skanującego.
Zeskanuj i Zapłać w kodach QR
Aplikacja Comarch sPrint pozwala na zaszycie danych płatności online w kodach QR.
Jeśli w bazie danych znajduje się pole, które ma zakodowane odpowiednie informacje dotyczące płatności wystarczy przy wstawianiu kodu skorzystać z opcji
Wybierz wartość z bazy danych, a następnie przeciągnąć do formuły wartości kodu to pole i zatwierdzić zmiany.
Istnieje także możliwość stworzenia składni, którą można wstawić jako wartość tekstową do treści kodu stosując się do
rekomendacji Związku Banków Polskich dotyczącej kodu dwuwymiarowego („2D”), umożliwiającego realizację polecenia przelewu oraz aktywację usług bankowych
na rynku polskim .
Zgodnie z wspomnianą rekomendacją, dla poniższych wytycznych:
Pozycje obowiązkowe:
- Odbiorca - Comarch S.A.
- NR rachunku - 20 1240 6292 1978 0010 6070 1553
- Kwota - 20,30 zł
- Tytuł - FV/2023/253
Pozycje opcjonalne:
- NIP - 6770065406
- Identyfikator - 111
Poszczególne elementy składni oddziela znak |
Należy stworzyć następującą składnie:
6770065406||20124062921978001060701553|002030|Comarch S.A.|FV/2023/253|111||
Po zaznaczeniu opcji
Wartość tekstowa w oknie Wstaw kod QR należy wpisać lub skopiować stworzoną składnie i zatwierdzić naciskając
Wstaw.
W trybie Podglądu można podejrzeć stworzony kod i zeskanować przy użyciu aplikacji bankowej.
Ukrywanie wartości w tabeli
Istnieje możliwość ustawienia widoczności warunkowej poprzez wstawienie funkcji warunkowej w komórce tabeli, dzięki której możliwe jest ukrycie wartości danej komórki.
Jeśli chcesz ukryć wartość pola aby linie obramowania w komórce pozostały widoczne możesz skorzystać z formuły w edycji komórki tabeli.
Np. Iif([bramki]>10,'',[bramki])
Pokazuj stopkę u dołu strony
Jak korzystać z opcji Pokazuj u dołu strony?
Opcję
'Pokazuj na dole strony' da się ustawić tylko na sekcji głównej, jest dostępna dla Stopki szablonu i Stopki grupy.
Są wydruki, gdzie mamy kilka stopek szablonu i chcemy, aby tylko jedna z nich była wyświetlana na samym dole strony. Rozwiązaniem jest wstawienie podszablonu do stopki szablonu na wydruku głównym oraz zaznaczenie opcji Pokazuj na dole strony.
Pozostałe sekcje w takim podszablonie możemy wtedy ukryć i uzupełnić treść Stopki szablonu.
Aby opcja zadziała poprawnie:
- Podszablony muszą być „sklejone” ze sobą.
- W stopce szablonu na wydruku głównym inne kontrolki nie mogą być „przyklejone” do podszablonu
Niepoprawne ustawienie kontrolek:
Poprawne ustawienie kontrolek:
Jak obliczyć sumę narastająco?
Aby wyliczyć sumę narastająco należy skorzystać z funkcji sumRunningSum(), która jest dostępna w ramach kategorii sum podsumowujących.
Jak wyliczyć sumę dla wartości odrębnych (distinct values)?
Aby wyliczyć sumę dla odrębnych wartości należy skorzystać z funkcji sumDsum(), która jest dostępna w ramach kategorii sum podsumowujących.
Szczegółowy opis:
Po zaznaczeniu kontrolki należy skorzystać z dostępnej opcji kontekstowej
Utwórz formułę dla wartości.
Aby funkcje podsumowujące były widoczne dla użytkownika należy wybrać zakres danych z listy wybieralnej w lewym górnym rogu okna dialogowego służącego do tworzenia formuł dla wartości.
Użytkownik ma do wyboru 2 opcje:
Wszystkie dane oraz
Dane użyte w grupowaniu.
Po wybraniu zakresu danych można już wyszukać i skorzystać z funkcji sumDsum, składnie funkcji należy uzupełnić odpowiednim wyrażeniem.
Dostępne są także inne funkcję pozwalające dokonywać wyliczeń z użyciem wartości odrębnych, są to:
- sumDAvg() - Oblicza średnią wszystkich odrębnych wartości w określonym obszarze podsumowania (grupa lub raport).
- sumDCount() - Zlicza liczbę odrębnych wartości w określonym obszarze podsumowania (grupa lub raport). W prostym scenariuszu nie można przekazać parametru.
- sumDVar() - Oblicza wielkość wariancji dla wszystkich odrębnych wartości w określonym obszarze podsumowania (grupa lub raport).
- sumDVarP() - Oblicza wariancję populacji wszystkich odrębnych wartości w określonym regionie podsumowania (grupa lub raport).
- sumDStdDev() - Oblicza odchylenie standardowe wszystkich odrębnych wartości w określonym obszarze podsumowania (grupa lub raport).
- sumDStdDevP() - Oblicza odchylenie standardowe populacji wszystkich odrębnych wartości w określonym regionie podsumowania (grupa lub raport).
Scalenie komórek w pionie
Obecnie Comarch sPrint pozwala na scalenie komórek tabeli w poziomie, jednak opcja scalania komórek w pionie jest niedostępna. Można jednak osiągnąć efekt imitujący scalenie komórek w pionie poprzez dodanie kilku tabel i "złączeniu" ich w jedną większą tabelę.
W poniższym przypadku użytkownik chciałby scalić 2 zaznaczone komórki znajdujące się w lewym, górnym rogu tabeli.
Może postępować w następujący sposób. Na obszar roboczy dodaje 3 tabele o wymiarach (4x1, 2x1 oraz 1x1).
Następnie dociągam poszczególne tabele z wykorzystaniem mechanizmu precyzyjnego dociągania elementów, a tabelę 1x1 rozciągam do wysokości krawędzi górnej tabeli.
W kolejnym kroku dodaje obramowani dla tabel i uzyskuje następujący efekt odpowiednio w trybie tworzenia i podglądu.
Jak zmienić wysokość wiersza w tabeli?
Kursorem myszy najeżdżamy na boczną krawędź tabeli, gdy pojawi się czarna strzałka należy nacisnąć lewy przycisk myszy.
Po zaznaczeniu wiersza wysokość można zmienić z poziomu prawego panelu z wykorzystaniem opcji układu.
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.