{"id":10934,"date":"2025-05-21T09:54:09","date_gmt":"2025-05-21T07:54:09","guid":{"rendered":"https:\/\/pomoc.comarch.pl\/cee\/?post_type=ht_kb&#038;p=10934"},"modified":"2025-05-21T09:54:19","modified_gmt":"2025-05-21T07:54:19","slug":"tworzenie-raportow-za-pomoca-crystal-reports","status":"publish","type":"ht_kb","link":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/","title":{"rendered":"Tworzenie raport\u00f3w za pomoc\u0105 Crystal Reports"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Spis tre\u015bci<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Prze\u0142\u0105cznik Spisu Tre\u015bci\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Definicje_pojec\" >Definicje poj\u0119\u0107<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Wymagania_wstepne\" >Wymagania wst\u0119pne<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Tworzenie_lub_dostosowywanie_raportu\" >Tworzenie lub dostosowywanie raportu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Struktura_szablonu_raportu\" >Struktura szablonu raportu<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Obsluga_linii_prowadzacych\" >Obs\u0142uga linii prowadz\u0105cych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Ustawienia_danych_wyjsciowych_w_Crystal_Reports\" >Ustawienia danych wyj\u015bciowych w Crystal Reports<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Inicjalizacja_raportu\" >Inicjalizacja raportu<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Inicjalizacja_zmiennych_systemowych\" >Inicjalizacja zmiennych systemowych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Inicjowanie_stalych_tekstowych\" >Inicjowanie sta\u0142ych tekstowych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Inicjalizacja_miejsc_dziesietnych\" >Inicjalizacja miejsc dziesi\u0119tnych<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Formatowanie\" >Formatowanie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Naglowki\" >Nag\u0142\u00f3wki<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Naglowek_raportu\" >Nag\u0142\u00f3wek raportu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Naglowki_kolumn\" >Nag\u0142\u00f3wki kolumn<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Tresc\" >Tre\u015b\u0107<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Naglowek_grupy\" >Nag\u0142\u00f3wek grupy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Szczegoly\" >Szczeg\u00f3\u0142y<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Stopka_grupy\" >Stopka grupy<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Stopka_raportu\" >Stopka raportu<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Stopka_strony\" >Stopka strony<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Funkcje_zdefiniowane_przez_uzytkownika\" >Funkcje zdefiniowane przez u\u017cytkownika<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Funkcja_GetDecimals\" >Funkcja GetDecimals<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Funkcja_GetLineColor\" >Funkcja GetLineColor<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Funkcja_GetOrganisationGuid\" >Funkcja GetOrganisationGuid<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Funkcja_GetValue\" >Funkcja GetValue<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Standardowe_pola_parametrow\" >Standardowe pola parametr\u00f3w<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Instrukcje\" >Instrukcje<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Nazwy_symboliczne_dla_DSN\" >Nazwy symboliczne dla DSN<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Wiele_zrodel_danych\" >Wiele \u017ar\u00f3de\u0142 danych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Wybor_zrodla_danych_DSN\" >Wyb\u00f3r \u017ar\u00f3d\u0142a danych (DSN)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Wybor_tabel\" >Wyb\u00f3r tabel<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Laczenie_tabel\" >\u0141\u0105czenie tabel<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-33\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Wymus_lacze\" >Wymu\u015b \u0142\u0105cze<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-34\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Typy_danych_w_Comarch_ERP_Enterprise\" >Typy danych w Comarch ERP Enterprise<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-35\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#GUID\" >GUID<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-36\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#String\" >String<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-37\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Boolean\" >Boolean<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-38\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Liczby\" >Liczby<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-39\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Valueset\" >Valueset<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-40\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Czas_i_data\" >Czas i data<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-41\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Atrybuty_BLOB\" >Atrybuty BLOB<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-42\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Uzywanie_parametrow\" >U\u017cywanie parametr\u00f3w<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-43\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Nazewnictwo\" >Nazewnictwo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-44\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Typy_danych_w_Crystal_Reports\" >Typy danych w Crystal Reports<\/a><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-45\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Parametry_z_wartosciami_domyslnymi\" >Parametry z warto\u015bciami domy\u015blnymi<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-46\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Logiczne_typy_danych_w_Comarch_ERP_Enterprise\" >Logiczne typy danych w Comarch ERP Enterprise<\/a><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-47\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Klasyfikacje\" >Klasyfikacje<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-48\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Cechy_szczegolne_DateTime\" >Cechy szczeg\u00f3lne DateTime<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-49\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Uzywanie_parametrow_w_warunkach_WHERE\" >U\u017cywanie parametr\u00f3w w warunkach WHERE<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-50\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Zmienne_systemowe\" >Zmienne systemowe<\/a><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><ul class='ez-toc-list-level-6' ><li class='ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-51\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Informacje_systemowe\" >Informacje systemowe<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-52\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Informacje_o_uzytkowniku\" >Informacje o u\u017cytkowniku<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-6'><a class=\"ez-toc-link ez-toc-heading-53\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Informacje_wyjsciowe\" >Informacje wyj\u015bciowe<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-54\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Niezaleznosc_jezykowa_raportow\" >Niezale\u017cno\u015b\u0107 j\u0119zykowa raport\u00f3w<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-55\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Raporty_wielojezyczne\" >Raporty wieloj\u0119zyczne<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-56\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Elementy_tekstowe_miedzy_raportami\" >Elementy tekstowe mi\u0119dzy raportami<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-57\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Podraport_Formatowanie\" >Podraport Formatowanie<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-58\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Formatowanie_liczb\" >Formatowanie liczb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-59\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Formatowanie_czasu_i_daty\" >Formatowanie czasu i daty<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-60\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Edytor_formatu_Godzina_i_data\" >Edytor formatu Godzina i data<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-61\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Uwagi\" >Uwagi<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-62\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Korzystanie_z_raportow_czastkowych\" >Korzystanie z raport\u00f3w cz\u0105stkowych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-63\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Rozwiazywanie_problemow_i_ocena\" >Rozwi\u0105zywanie problem\u00f3w i ocena<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-64\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Monitory_wydajnosci\" >Monitory wydajno\u015bci<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-65\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Zrodla_danych_ODBC\" >\u0179r\u00f3d\u0142a danych ODBC<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-66\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Sprawdzanie_wydajnosci_raportow\" >Sprawdzanie wydajno\u015bci raport\u00f3w<\/a><ul class='ez-toc-list-level-5' ><li class='ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-67\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Unikanie_laczenia_RIGHT_OUTER_JOIN\" >Unikanie \u0142\u0105czenia RIGHT OUTER JOIN<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-68\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Unikanie_raportow_czastkowych\" >Unikanie raport\u00f3w cz\u0105stkowych<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-69\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Unikanie_widoku_OQL\" >Unikanie widoku OQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-70\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Unikanie_widoku_DISTINCT\" >Unikanie widoku DISTINCT<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-5'><a class=\"ez-toc-link ez-toc-heading-71\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Unikanie_FULL-TABLE-SCAN\" >Unikanie FULL-TABLE-SCAN<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-72\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Znane_ograniczenia\" >Znane ograniczenia<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-73\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Maksymalna_liczba_sekcji\" >Maksymalna liczba sekcji<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-74\" href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/tworzenie-raportow-za-pomoca-crystal-reports\/#Zduplikowane_wiersze_podczas_korzystania_z_TotalPageCount\" >Zduplikowane wiersze podczas korzystania z TotalPageCount<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<p>W Comarch ERP Enterprise rozr\u00f3\u017cniane s\u0105 dane wyj\u015bciowe i raportowe dokument\u00f3w. Dokumenty wyj\u015bciowe r\u00f3\u017cni\u0105 si\u0119 od dokument\u00f3w raport\u00f3w tym, \u017ce generuj\u0105 dane pojedynczego wyj\u015bcia i dlatego zazwyczaj wymagaj\u0105 identyfikatora GUID jako parametru. Z drugiej strony dokumenty raport\u00f3w wy\u015bwietlaj\u0105 dowolne dane w formie tabelarycznej. Zwykle maj\u0105 kilka parametr\u00f3w, dla kt\u00f3rych u\u017cytkownik mo\u017ce bezpo\u015brednio okre\u015bli\u0107 warto\u015bci. Oba typy danych wyj\u015bciowych s\u0105 oparte na Crystal Reports. Raport (Crystal Reports) mo\u017ce by\u0107 generowany bezpo\u015brednio w Crystal Reports lub w Comarch ERP Enterprise. Wydanie w Comarch ERP Enterprise odbywa si\u0119 za po\u015brednictwem System Output Manager (SOM).<\/p>\n<p>Podczas przetwarzania raport\u00f3w (Crystal Reports) nie jest konieczne rozr\u00f3\u017cnianie mi\u0119dzy dokumentami raport\u00f3w a dokumentami ko\u0144cowymi. Istniej\u0105 jednak naturalne r\u00f3\u017cnice. Na przyk\u0142ad dokumenty raport\u00f3w s\u0105 zwykle wyprowadzane w formacie poziomym, podczas gdy dokumenty ko\u0144cowe s\u0105 zwykle wyprowadzane w formacie pionowym.<\/p>\n<p>Niniejszy dokument opisuje mechanizmy dostarczane przez Comarch ERP Enterprise do edycji raport\u00f3w i wyprowadzania danych. Ma on na celu wsparcie u\u017cytkownika w tworzeniu i edycji raport\u00f3w oraz zwr\u00f3cenie uwagi na szczeg\u00f3lne okoliczno\u015bci.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Konstrukcja raportu, tj. z\u0142o\u017cono\u015b\u0107 i cz\u0119stotliwo\u015b\u0107 generowanych przez niego zapyta\u0144 SQL, ilo\u015b\u0107 przesy\u0142anych danych oraz wykorzystywane funkcje maj\u0105 istotny wp\u0142yw na wydajno\u015b\u0107 systemu Comarch ERP Enterprise. Poniewa\u017c zbyt z\u0142o\u017cone zapytanie SQL mo\u017ce \u0142atwo przeci\u0105\u017cy\u0107 baz\u0119 danych, raporty nie powinny by\u0107 tworzone w systemie produkcyjnym i powinny by\u0107 analizowane przy u\u017cyciu opcji monitorowania i profilowania Comarch ERP Enterprise przed przeniesieniem do systemu produkcyjnego.<\/div><\/section>\n<h3 id=\"definicje-pojec\" ><span class=\"ez-toc-section\" id=\"Definicje_pojec\"><\/span>Definicje poj\u0119\u0107<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>Dokument ko\u0144cowy<\/strong> &#8212; wyj\u015bcie raportu do urz\u0105dzenia wyj\u015bciowego, takiego jak drukarka, lub do pliku tworzy dokument raportu lub dokument ko\u0144cowy. Dokument raportu zawiera list\u0119 obiekt\u00f3w, na przyk\u0142ad list\u0119 adres\u00f3w. Dokument ko\u0144cowy zawsze zawiera obiekt, na przyk\u0142ad zam\u00f3wienie sprzeda\u017cy. Dokumenty mog\u0105 by\u0107 archiwizowane lub wysy\u0142ane do partnera, na przyk\u0142ad faksem lub poczt\u0105 elektroniczn\u0105.<\/li>\n<li><strong>Plik raportu<\/strong> &#8212; plik raportu s\u0142u\u017cy do definiowania wygl\u0105du dokumentu raportu. W tym celu pliki raport\u00f3w s\u0105 edytowane w Crystal Reports. Pliki raport\u00f3w mog\u0105 by\u0107 zale\u017cne lub niezale\u017cne od j\u0119zyka.<\/li>\n<li><strong>Szablon raportu<\/strong> &#8212; szablon raportu to specjalny plik raportu, kt\u00f3ry s\u0142u\u017cy jako szablon do tworzenia raport\u00f3w, kt\u00f3re maj\u0105 by\u0107 wysy\u0142ane za po\u015brednictwem <em>ERP<\/em> <em>System Output Manager<\/em>\u00a0(SOM). Szablon raportu zawiera w tym celu szereg standardowych parametr\u00f3w i funkcji zdefiniowanych przez u\u017cytkownika. Ponadto ustawienia w szablonie raportu s\u0105 wybierane w taki spos\u00f3b, aby czas wykonania i wynikaj\u0105ce z niego obci\u0105\u017cenie by\u0142y jak najbardziej zminimalizowane. Nowe pliki raport\u00f3w powinny by\u0107 zawsze tworzone w oparciu o szablon raportu.<\/li>\n<li><span style=\"font-size: revert; color: initial;\"><strong>Sterownik ODBC systemu ERP<\/strong> &#8212; s<\/span>terownik ODBC systemu ERP umo\u017cliwia dost\u0119p do odczytu danych w r\u00f3\u017cnych bazach danych systemu Comarch ERP. Narz\u0119dzia do raportowania lub aplikacje pakietu Office, na przyk\u0142ad, mog\u0105 z niego korzysta\u0107 w celu uzyskania dost\u0119pu do tych danych. Uprawnienia zdefiniowane w systemie Comarch ERP Enterprise s\u0105 r\u00f3wnie\u017c brane pod uwag\u0119 przy zapytaniach.<\/li>\n<li><span style=\"font-size: revert; color: initial;\"><strong>ERP System Output Manager (SOM)<\/strong> &#8212; m<\/span>enad\u017cer wydruk\u00f3w systemu ERP (SOM) przetwarza \u017c\u0105dania wydruk\u00f3w dla jednego lub wi\u0119cej system\u00f3w Comarch ERP Enterprise. SOM generuje dokumenty wyj\u015bciowe i mo\u017ce je drukowa\u0107, faksowa\u0107, wysy\u0142a\u0107 poczt\u0105 e-mail lub przechowywa\u0107 w Knowledge Store.<\/li>\n<\/ul>\n<h3 id=\"wymagania-wstepne\" ><span class=\"ez-toc-section\" id=\"Wymagania_wstepne\"><\/span>Wymagania wst\u0119pne<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Do edycji raport\u00f3w musi by\u0107 u\u017cywana wersja Crystal Reports wydana przez Comarch. Wydane wersje mo\u017cna znale\u017a\u0107 w dokumencie <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/wymagania-systemowe\/\"><em>Wymagania systemowe<\/em><\/a>. Ponadto musz\u0105 by\u0107 u\u017cywane \u017ar\u00f3d\u0142a danych okre\u015blone w dokumencie <em>\u0179r\u00f3d\u0142a danych ODBC<\/em>.<\/p>\n<p>Osoba przetwarzaj\u0105ca raporty musi posiada\u0107 wiedz\u0119 na temat modelu danych Comarch ERP Enterprise. Ponadto wymagana jest wiedza zawarta w dokumencie <em>Interfejs ODBC<\/em>.<\/p>\n<p>Przed rozpocz\u0119ciem tworzenia raportu nale\u017cy upewni\u0107 si\u0119, \u017ce Crystal Reports jest skonfigurowany zgodnie z opisem w artykule <em>Konfiguracja Crystal Reports<\/em>.<\/p>\n<h3 id=\"tworzenie-lub-dostosowywanie-raportu\" ><span class=\"ez-toc-section\" id=\"Tworzenie_lub_dostosowywanie_raportu\"><\/span>Tworzenie lub dostosowywanie raportu<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Raporty edytowane w Crystal Reports do u\u017cytku w Comarch ERP Enterprise musz\u0105 spe\u0142nia\u0107 okre\u015blone wymagania, aby raporty mog\u0142y by\u0107 generowane zgodnie z wymaganiami. Z tego powodu ka\u017cdy raport powinien by\u0107 tworzony na podstawie dostarczonego szablonu raportu. Zawiera on wiele ustawie\u0144 i funkcji potrzebnych do poprawnego zaprojektowania.<\/p>\n<p>Je\u015bli ma zosta\u0107 utworzony nowy raport, nale\u017cy zacz\u0105\u0107 od szablonu raportu lub zduplikowa\u0107 istniej\u0105cy raport. Nie nale\u017cy u\u017cywa\u0107 funkcji Crystal Reports do tworzenia nowego raportu lub raportu za pomoc\u0105 kreatora, poniewa\u017c raporty utworzone w ten spos\u00f3b nie s\u0105 oparte na szablonie raportu i b\u0119dzie konieczne r\u0119czne dodanie wszystkich ustawie\u0144 i funkcji szablonu raportu.<\/p>\n<p>Szablon raportu mo\u017cna pobra\u0107 za pomoc\u0105 aplikacji <em>Raporty<\/em>, wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w dokumencie <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/raporty\/\"><em>Raporty<\/em><\/a>. Istniej\u0105cy raport mo\u017cna wyeksportowa\u0107 w aplikacji <em>Raporty<\/em> lub w aplikacji <em>Obiekty deweloperskie<\/em> w widoku <em>Report<\/em>.<\/p>\n<h3 id=\"struktura-szablonu-raportu\" ><span class=\"ez-toc-section\" id=\"Struktura_szablonu_raportu\"><\/span>Struktura szablonu raportu<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Znajomo\u015b\u0107 szablonu raportu jest niezb\u0119dna do tworzenia i konfiguracji raport\u00f3w. Z tego powodu najpierw opisano og\u00f3ln\u0105 struktur\u0119 tego szablonu. Nast\u0119pnie w kolejnych sekcjach opisano u\u017cycie poszczeg\u00f3lnych konstrukcji.<\/p>\n<p>W szablonie raportu wszyscy partnerzy, kt\u00f3rzy s\u0105 r\u00f3wnie\u017c pracownikami, s\u0105 wy\u015bwietlani w tabeli <em>app_general_Partner<\/em> (partner). Tabela ta s\u0142u\u017cy jako przyk\u0142ad formatowania danych wyj\u015bciowych. Nie ma ona jednak znaczenia dla mechanizm\u00f3w szablonu raportu i dlatego nie zosta\u0142a tutaj opisana bardziej szczeg\u00f3\u0142owo.<\/p>\n<p>Wyb\u00f3r zestawu danych zosta\u0142 tak dobrany, aby zminimalizowa\u0107 obci\u0105\u017cenie bazy danych i ilo\u015b\u0107 przesy\u0142anych danych. Wyb\u00f3r zestawu danych<\/p>\n<p>{app_general_Partner.maintainingOrganisation} = GetOrganisationGuid ({?SystemVariables}, {?SystemValues}))<\/p>\n<p>wy\u015bwietlani s\u0105 tylko ci pracownicy, dla kt\u00f3rych aktywna organizacja mo\u017ce przetwarza\u0107 dane. Je\u015bli dane wyj\u015bciowe s\u0105 w Crystal Reports, kontekst organizacji nie jest zdefiniowany, a funkcja <em>GetOrganisationGuid<\/em> zwraca nieprawid\u0142owy identyfikator Guid. W takim przypadku nie s\u0105 wy\u015bwietlani \u017cadni pracownicy. Je\u015bli dane maj\u0105 by\u0107 r\u00f3wnie\u017c wy\u015bwietlane w Crystal Reports, nale\u017cy zmieni\u0107 wyb\u00f3r zestawu danych lub okre\u015bli\u0107 nazw\u0119 i prawid\u0142owy identyfikator Guid jako parametr zmiennej systemowej <em>ORGANIZATION_GUID<\/em>.<\/p>\n<p>Szablon raportu u\u017cywa czcionki Arial o rozmiarze 9. Linie wiod\u0105ce s\u0105 zaprojektowane dla siatki o rozmiarze 2 mm. Tylko po prawej stronie strony ostatnia linia prowadz\u0105ca jest wyr\u00f3wnana do prawej strony strony, a nie do siatki.<\/p>\n<h4 id=\"obsluga-linii-prowadzacych\" ><span class=\"ez-toc-section\" id=\"Obsluga_linii_prowadzacych\"><\/span>Obs\u0142uga linii prowadz\u0105cych<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><em>Nag\u0142\u00f3wek raportu a<\/em> zawiera pola tekstowe, kt\u00f3re mog\u0105 by\u0107 u\u017cywane do definiowania linii prowadz\u0105cych, kt\u00f3re dziel\u0105 raport na obszary o r\u00f3wnej szeroko\u015bci.<\/p>\n<p><em>Nag\u0142\u00f3wek raportu b<\/em> zawiera pola tekstowe, kt\u00f3re wizualizuj\u0105 minimaln\u0105 szeroko\u015b\u0107 p\u00f3l danych r\u00f3\u017cnych typ\u00f3w danych w celu unikni\u0119cia przerw lub obci\u0119cia danych.<\/p>\n<p>Te dwa obszary nie s\u0105 wy\u015bwietlane w danych wyj\u015bciowych. W razie potrzeby obszary te mo\u017cna usun\u0105\u0107 z szablonu raportu przed zaimportowaniem gotowego pliku raportu do Comarch ERP Enterprise.<\/p>\n<h4 id=\"ustawienia-danych-wyjsciowych-w-crystal-reports\" ><span class=\"ez-toc-section\" id=\"Ustawienia_danych_wyjsciowych_w_Crystal_Reports\"><\/span>Ustawienia danych wyj\u015bciowych w Crystal Reports<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>W <em>Nag\u0142\u00f3wku raportu c<\/em> informacje o formatowaniu s\u0105 inicjowane w formule <em>@_DefaultFormattingOptions<\/em>. Ustawienia s\u0105 skuteczne, je\u015bli raport jest wysy\u0142any bezpo\u015brednio w Crystal Reports, a nie za po\u015brednictwem ERP System Output Manager (SOM). Je\u015bli raport jest wysy\u0142any za po\u015brednictwem SOM, ustawienia te s\u0105 zast\u0119powane przez informacje o formatowaniu specyficzne dla u\u017cytkownika w podraporcie <em>Formatowanie<\/em>.<\/p>\n<p>Ustawienia w formule zosta\u0142y wybrane tak, aby r\u00f3\u017cni\u0142y si\u0119 od zwyk\u0142ego formatowania w Niemczech. U\u0142atwia to sprawdzenie, czy pole wyj\u015bciowe zosta\u0142o sformatowane przez u\u017cytkownika, czy nie.<\/p>\n<h4 id=\"inicjalizacja-raportu\" ><span class=\"ez-toc-section\" id=\"Inicjalizacja_raportu\"><\/span>Inicjalizacja raportu<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Inicjalizacja zmiennych systemowych i sta\u0142ych tekstowych odbywa si\u0119 w <em>Nag\u0142\u00f3wku raportu d<\/em>. Obszar ten nie jest wy\u015bwietlany w danych wyj\u015bciowych. Zapisane pola s\u0105 polami formu\u0142y i zaczynaj\u0105 si\u0119 od <em>_Initialise<\/em>. Ten przedrostek ma na celu wskazanie charakteru inicjalizacji p\u00f3l. Formu\u0142y mog\u0105 by\u0107 wykonywane w dowolnej kolejno\u015bci w obszarze.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Do inicjalizacji u\u017cywane s\u0105 funkcje zdefiniowane przez u\u017cytkownika. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#FU1\"><em>Funkcje zdefiniowane przez u\u017cytkownika<\/em><\/a>.<\/div><\/section>\n<h5 id=\"inicjalizacja-zmiennych-systemowych\" ><span class=\"ez-toc-section\" id=\"Inicjalizacja_zmiennych_systemowych\"><\/span>Inicjalizacja zmiennych systemowych<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>W raporcie mo\u017cna wykorzysta\u0107 r\u00f3\u017cne informacje, kt\u00f3re system ERP posiada o raporcie, wykonuj\u0105cym serwerze aplikacji systemu ERP, u\u017cywanych bazach danych i wykonuj\u0105cym u\u017cytkowniku. Informacje te s\u0105 dostarczane jako zmienne przez pole formu\u0142y <em>_InitialiseSystemValues<\/em> i mog\u0105 by\u0107 u\u017cywane w odpowiednich polach. List\u0119 zmiennych systemowych mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#ZS1\"><em>Zmienne systemowe<\/em><\/a>.<\/p>\n<h5 id=\"inicjowanie-stalych-tekstowych\" ><span class=\"ez-toc-section\" id=\"Inicjowanie_stalych_tekstowych\"><\/span><a id=\"stex1\"><\/a>Inicjowanie sta\u0142ych tekstowych<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Sta\u0142e tekstowe s\u0105 u\u017cywane do tworzenia raportu niezale\u017cnie od j\u0119zyka. Raporty niezale\u017cne od j\u0119zyka mog\u0105 by\u0107 nast\u0119pnie t\u0142umaczone bezpo\u015brednio w Comarch ERP Enterprise bez u\u017cycia Crystal Reports. Warto\u015bci sta\u0142ych tekstowych raportu s\u0105 udost\u0119pniane jako zmienne w polu formu\u0142y <em>_InitialiseTextValues<\/em>. Dla ka\u017cdej sta\u0142ej tekstowej tworzone jest osobne pole formu\u0142y, kt\u00f3re zwraca zawarto\u015b\u0107 odpowiedniej zmiennej. U\u017cywane sta\u0142e tekstowe musz\u0105 by\u0107 dostosowane do ka\u017cdego raportu. Opis funkcji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#RNJ1\"><em>Raporty niezale\u017cne od j\u0119zyka<\/em><\/a>.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Opr\u00f3cz korzystania ze sta\u0142ych tekstowych specyficznych dla raportu, mo\u017cna r\u00f3wnie\u017c wprowadza\u0107 mi\u0119dzyraportowe, sformatowane teksty w postaci element\u00f3w tekstowych w aplikacji <em>Elementy tekstowe<\/em>. Nie s\u0105 one domy\u015blnie u\u017cywane w szablonie raportu. Wi\u0119cej informacji na temat korzystania z element\u00f3w tekstowych mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#etr1\"><em>Elementy tekstowe mi\u0119dzy raportami<\/em><\/a>.<\/div><\/section>\n<h5 id=\"inicjalizacja-miejsc-dziesietnych\" ><span class=\"ez-toc-section\" id=\"Inicjalizacja_miejsc_dziesietnych\"><\/span>Inicjalizacja miejsc dziesi\u0119tnych<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Liczba miejsc dziesi\u0119tnych jest pobierana ze zmiennych systemowych w polu formu\u0142y <em>_InitialiseDecimals<\/em>. Miejsca dziesi\u0119tne ustawia si\u0119 w Comarch ERP Enterprise w aplikacji <em>Konfiguracja<\/em>. Korzystaj\u0105c z dostarczonych zmiennych, raport mo\u017ce teraz mie\u0107 takie samo formatowanie liczb, ilo\u015bci, kwot i cen, jak w Comarch ERP Enterprise. U\u017cycie miejsc dziesi\u0119tnych zosta\u0142o opisane w rozdziale <em><a href=\"#for1\">Formatowanie liczb<\/a><\/em>.<\/p>\n<h4 id=\"formatowanie\" ><span class=\"ez-toc-section\" id=\"Formatowanie\"><\/span>Formatowanie<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>W <em>Nag\u0142\u00f3wku raportu e<\/em> znajduje si\u0119 podraport o nazwie<em> Formatowanie<\/em>. W tym podraporcie informacje o formatowaniu s\u0105 odczytywane z funkcji wirtualnej <em>pgm_Formats<\/em> i udost\u0119pniane w zmiennych. Istniej\u0105 r\u00f3\u017cne powody, dla kt\u00f3rych dane s\u0105 odczytywane w raporcie cz\u0105stkowym. Podraport zapewnia, \u017ce zapytanie do bazy danych jest zawsze wykonywane. Jednocze\u015bnie zapewnia to, \u017ce \u017c\u0105danie jest wykonywane tylko raz. Ponadto u\u017cywana funkcja nie pojawia si\u0119 w oknie dialogowym kreatora bazy danych dla raportu g\u0142\u00f3wnego.<\/p>\n<p>Dane wyj\u015bciowe <em>Nag\u0142\u00f3wka raportu e<\/em> nie mog\u0105 by\u0107 t\u0142umione, poniewa\u017c w przeciwnym razie dane z funkcji wirtualnej <em>pgm_Formats<\/em> nie zostan\u0105 odczytane. Zamiast tego funkcja <em>Pomi\u0144 pusty podraport<\/em> jest aktywowana w formatowaniu podraportu w zak\u0142adce <em>Podraport<\/em>.<\/p>\n<p>Informacje o formatowaniu specyficzne dla u\u017cytkownika w podraporcie zast\u0119puj\u0105 informacje o formatowaniu w formule <em>@_DefaultFormattingOptions<\/em> w <em>Nag\u0142\u00f3wku raportu c<\/em>. Je\u015bli raport jest wyprowadzany bezpo\u015brednio w Crystal Reports, a nie za po\u015brednictwem SOM, w\u00f3wczas u\u017cytkownik nie jest znany w Comarch ERP Enterprise. W takim przypadku wyj\u015bcie podraportu jest wy\u0142\u0105czone. Oznacza to, \u017ce ustawienia w<em> Nag\u0142\u00f3wku raportu c<\/em> s\u0105 nadal skuteczne.<\/p>\n<p>Dok\u0142adne wykorzystanie informacji o formatowaniu zosta\u0142o opisane w rozdzia\u0142ach:<\/p>\n<ul>\n<li><a href=\"#for3\">Formatowanie raportu cz\u0105stkowego<\/a><\/li>\n<li><a href=\"#for1\">Formatowanie liczb<\/a><\/li>\n<li><a href=\"#for2\">Formatowanie godziny i daty<\/a><\/li>\n<\/ul>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Wirtualna tabela <em>pgm_FORMAT<\/em> ma status <em>Odrzucona<\/em> i zosta\u0142a zast\u0105piona wirtualn\u0105 tabel\u0105 <em>pgm_Formats<\/em>.<\/div><\/section>\n<h4 id=\"naglowki\" ><span class=\"ez-toc-section\" id=\"Naglowki\"><\/span>Nag\u0142\u00f3wki<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Nag\u0142\u00f3wki s\u0105 przechowywane w sekcjach raportu, kt\u00f3re zaczynaj\u0105 si\u0119 od <em>Sekcji nag\u0142\u00f3wka<\/em>. Istnieje obszar dla nag\u0142\u00f3wka raportu, linia separatora, obszar dla nag\u0142\u00f3wk\u00f3w kolumn i kolejna linia separatora.<\/p>\n<h5 id=\"naglowek-raportu\" ><span class=\"ez-toc-section\" id=\"Naglowek_raportu\"><\/span>Nag\u0142\u00f3wek raportu<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Nag\u0142\u00f3wki raportu s\u0105 przechowywane w <em>Nag\u0142\u00f3wku strony a<\/em> i s\u0105 podzielone na sekcj\u0119 lew\u0105 i sekcj\u0119 praw\u0105. U\u017cywane pola s\u0105 polami formu\u0142y i maj\u0105 odpowiednio nazwy <em>_LeftHeading<\/em> i <em>_RightHeading<\/em>. Parametr <em>ReportTitle<\/em> jest wy\u015bwietlany w polu <em>_LeftHeading<\/em> przez formu\u0142\u0119, je\u015bli nie jest pusty. Je\u015bli parametr jest pusty lub zawiera znak &#8222;*&#8221;, jako tytu\u0142 raportu u\u017cywana jest zmienna systemowa <em>_ReportDescription<\/em>. Pole formu\u0142y <em>_RightHeading<\/em> jest zwykle wype\u0142niane przez zmienne systemowe (wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#ZS1\"><em>Zmienne systemowe<\/em><\/a>).<\/p>\n<h5 id=\"naglowki-kolumn\" ><span class=\"ez-toc-section\" id=\"Naglowki_kolumn\"><\/span>Nag\u0142\u00f3wki kolumn<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Szablon raportu jest niezale\u017cny od j\u0119zyka. Nag\u0142\u00f3wki kolumn w <em>Nag\u0142\u00f3wku strony c<\/em> zawieraj\u0105 sta\u0142e tekstowe. Sta\u0142e te zosta\u0142y zainicjalizowane na pocz\u0105tku raportu (wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#stex1\"><em>Inicjowanie sta\u0142ych tekstowych<\/em><\/a>). Tylko odpowiednie zmienne s\u0105 przywo\u0142ywane w polach formu\u0142 nag\u0142\u00f3wk\u00f3w kolumn.<\/p>\n<h4 id=\"tresc\" ><span class=\"ez-toc-section\" id=\"Tresc\"><\/span>Tre\u015b\u0107<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Tre\u015b\u0107 sk\u0142ada si\u0119 z obszar\u00f3w nag\u0142\u00f3wka grupy, szczeg\u00f3\u0142\u00f3w i stopki grupy.<\/p>\n<h5 id=\"naglowek-grupy\" ><span class=\"ez-toc-section\" id=\"Naglowek_grupy\"><\/span>Nag\u0142\u00f3wek grupy<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Szablon raportu ma poziom grupowania dla przynale\u017cno\u015bci partnera. Dane wyj\u015bciowe s\u0105 wy\u015bwietlane w <em>Nag\u0142\u00f3wku grupy 1<\/em> wraz ze sta\u0142\u0105 tekstow\u0105 dla oznaczenia.<\/p>\n<p>Przy ka\u017cdym nowym powi\u0105zaniu licznik koloru t\u0142a jest resetowany do zera za pomoc\u0105 pola formu\u0142y <em>_LineCounterReset<\/em>. Oznacza to, \u017ce pierwszy wiersz w obszarze szczeg\u00f3\u0142\u00f3w mo\u017ce by\u0107 zawsze zaznaczony tym samym kolorem t\u0142a.<\/p>\n<p>Opcja grupy <em>Powtarzaj nag\u0142\u00f3wek grupy na ka\u017cdej nowej stronie<\/em> jest aktywna dla poziomu grupowania.<\/p>\n<h5 id=\"szczegoly\" ><span class=\"ez-toc-section\" id=\"Szczegoly\"><\/span><a id=\"szcz1\"><\/a>Szczeg\u00f3\u0142y<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Szczeg\u00f3\u0142y s\u0105 podzielone na dwa obszary. <em>Szczeg\u00f3\u0142y a<\/em> nie s\u0105 wy\u015bwietlane i zawieraj\u0105 pole formu\u0142y do zwi\u0119kszania numeru wiersza.<\/p>\n<p>Je\u015bli wybrano ustawienie <em>Kolor t\u0142a<\/em> podczas drukowania dokumentu raportu, np. w aplikacji <em>Drukuj dokumenty raportu<\/em>, wiersze listy mog\u0105 by\u0107 kolorowane naprzemiennie. Automatycznie wybierany jest kolor odpowiadaj\u0105cy bie\u017c\u0105cemu motywowi kolorystycznemu. Kolor t\u0142a wierszy jest ustawiany dla parzystych numer\u00f3w wierszy. Oddzielny licznik jest u\u017cywany w szablonie raportu, dzi\u0119ki czemu mo\u017ce by\u0107 r\u00f3wnie\u017c u\u017cywany w raportach podrz\u0119dnych. Funkcja zliczania Crystal Reports <em>Recordnumber<\/em> nie zosta\u0142a u\u017cyta, poniewa\u017c uruchamia si\u0119 ponownie w raportach podrz\u0119dnych, a zatem kolor t\u0142a nie zawsze mo\u017ce by\u0107 ustawiony poprawnie. Poniewa\u017c pole formu\u0142y s\u0142u\u017c\u0105ce do zwi\u0119kszania numeru wiersza pojawia si\u0119 przed polami danych w obszarze <em>Szczeg\u00f3\u0142y b<\/em>, kolorowane s\u0105 pierwsze i wszystkie nieparzyste wiersze. Je\u015bli inkrementacja jest wykonywana po wyprowadzeniu danych, pierwszy wiersz nie jest kolorowany. W takim przypadku kolorowane s\u0105 wszystkie parzyste wiersze.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Je\u015bli zestaw danych jest t\u0142umiony, licznik r\u00f3wnie\u017c nie powinien by\u0107 zwi\u0119kszany, poniewa\u017c w przeciwnym razie wiersze mog\u0142yby zosta\u0107 nieprawid\u0142owo pokolorowane.<\/div><\/section>\n<p>Rzeczywiste wyprowadzanie danych odbywa si\u0119 w obszarze <em>Szczeg\u00f3\u0142y b<\/em>. Jako przyk\u0142ad wyprowadzanych jest sze\u015b\u0107 kolumn. Pierwsza zawiera identyfikacj\u0119 partnera w postaci tekstu. W drugiej kolumnie nazwa partnera jest wy\u015bwietlana jako tekst. Kolejne kolumny zawieraj\u0105 dat\u0119 wprowadzenia i dat\u0119 ostatniej zmiany partnera, a tak\u017ce identyfikator partnera powi\u0105zanego u\u017cytkownika. Kolumny daty mog\u0105 by\u0107 u\u017cywane jako przyk\u0142ad formatowania informacji o czasie i dacie.<\/p>\n<h5 id=\"stopka-grupy\" ><span class=\"ez-toc-section\" id=\"Stopka_grupy\"><\/span>Stopka grupy<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Ka\u017cdy poziom grupowania ma stopk\u0119 grupy. <em>Obszar Stopka grupy 1<\/em> odpowiada obszarowi <em>Nag\u0142\u00f3wek grupy 1<\/em>. Ten obszar nie jest wyprowadzany. <em>Stopka grupy 1<\/em>\u00a0jest pomijana, je\u015bli jest to ostatni rekord danych. Zapobiega to sytuacji, w kt\u00f3rej pusta stopka grupy na ko\u0144cu raportu powoduje wy\u015bwietlenie dodatkowej, pustej strony.<\/p>\n<h4 id=\"stopka-raportu\" ><span class=\"ez-toc-section\" id=\"Stopka_raportu\"><\/span>Stopka raportu<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Wyj\u015bcie stopki raportu jest wy\u0142\u0105czone. Zapobiega to sytuacji, w kt\u00f3rej pusta stopka raportu na ko\u0144cu raportu powoduje wy\u015bwietlenie dodatkowej, pustej strony.<\/p>\n<h4 id=\"stopka-strony\" ><span class=\"ez-toc-section\" id=\"Stopka_strony\"><\/span>Stopka strony<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Linia podzia\u0142u pojawia si\u0119 na ko\u0144cu ka\u017cdej strony przed w\u0142a\u015bciw\u0105 stopk\u0105 strony. Nazwa klienta jest wy\u015bwietlana w lewym dolnym rogu za pomoc\u0105 pola formu\u0142y <em>_Company<\/em>. Pole formu\u0142y <em>_PageCount<\/em>, kt\u00f3re zawiera numer strony, jest wy\u015bwietlane po\u015brodku. W prawym dolnym rogu wy\u015bwietlana jest data wydruku w odniesieniu do strefy czasowej \u017ar\u00f3d\u0142a danych za pomoc\u0105 pola formu\u0142y <em>_PrintDateTime<\/em>.<\/p>\n<h4 id=\"funkcje-zdefiniowane-przez-uzytkownika\" ><span class=\"ez-toc-section\" id=\"Funkcje_zdefiniowane_przez_uzytkownika\"><\/span><a id=\"FU1\"><\/a>Funkcje zdefiniowane przez u\u017cytkownika<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Funkcje raportu zdefiniowane przez u\u017cytkownika s\u0105 przechowywane w szablonie raportu w celu inicjalizacji zmiennych systemowych, sta\u0142ych tekstowych i warto\u015bci liczbowych. Funkcje te s\u0105 wymienione poni\u017cej w kolejno\u015bci alfabetycznej.<\/p>\n<h5 id=\"funkcja-getdecimals\" ><span class=\"ez-toc-section\" id=\"Funkcja_GetDecimals\"><\/span>Funkcja <em>GetDecimals<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Funkcja <em>GetDecimals<\/em> s\u0142u\u017cy do okre\u015blania liczby miejsc dziesi\u0119tnych dla r\u00f3\u017cnych typ\u00f3w liczb, np. kwot. Mo\u017cna jej u\u017cy\u0107 do wyodr\u0119bnienia liczby z ci\u0105gu znak\u00f3w dla klucza. Funkcja ma dwa sta\u0142e i jeden opcjonalny parametr. Pierwszym parametrem jest klucz. Drugi parametr zawiera wszystkie klucze wraz z ich warto\u015bciami. Poszczeg\u00f3lne tre\u015bci s\u0105 oddzielone od siebie spacjami, a po ka\u017cdym kluczu nast\u0119puje jego warto\u015b\u0107. Drugi parametr mo\u017ce mie\u0107 nast\u0119puj\u0105c\u0105 zawarto\u015b\u0107, na przyk\u0142ad: <em>KWOTA 2 CZAS TRWANIA 3 CENA 1 ILO\u015a\u0106 2<\/em>. Trzeci parametr funkcji definiuje warto\u015b\u0107 domy\u015bln\u0105, je\u015bli drugi parametr by\u0142 pusty lub klucz nie zosta\u0142 okre\u015blony w drugim parametrze. Je\u015bli trzeci parametr nie zosta\u0142 okre\u015blony, przyjmuje si\u0119, \u017ce jego warto\u015b\u0107 wynosi 2.<\/p>\n<h5 id=\"funkcja-getlinecolor\" ><span class=\"ez-toc-section\" id=\"Funkcja_GetLineColor\"><\/span>Funkcja G<em>etLineColor<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Funkcja <em>GetLineColor<\/em> przyjmuje numer wiersza i numer koloru jako parametry. Wywo\u0142anie tej funkcji umo\u017cliwia okre\u015blenie naprzemiennych kolor\u00f3w t\u0142a dla szczeg\u00f3\u0142\u00f3w. Je\u015bli przekazany numer wiersza jest liczb\u0105 nieparzyst\u0105, zwracany jest przekazany kod koloru. W przypadku parzystych numer\u00f3w wierszy zwracany jest numer koloru <em>brak koloru<\/em>. Spos\u00f3b u\u017cycia opisano w rozdziale <a href=\"#szcz1\"><em>Szczeg\u00f3\u0142y<\/em><\/a>.<\/p>\n<h5 id=\"funkcja-getorganisationguid\" ><span class=\"ez-toc-section\" id=\"Funkcja_GetOrganisationGuid\"><\/span>Funkcja <em>GetOrganisationGuid<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Funkcja <em>GetOrganisationGuid<\/em> okre\u015bla identyfikator organizacji na podstawie zmiennych systemowych. Je\u015bli identyfikator GUID organizacji nie istnieje, zwracana jest warto\u015b\u0107 <em>INVALID_GUID<\/em>. Funkcji tej mo\u017cna u\u017cy\u0107 bezpo\u015brednio w warunku WHERE, aby ograniczy\u0107 zestaw danych do danych bie\u017c\u0105cej organizacji. Jako zmienna systemowa, warto\u015b\u0107 zosta\u0142aby okre\u015blona zbyt p\u00f3\u017ano i nie mog\u0142aby zosta\u0107 uwzgl\u0119dniona w warunku WHERE. Dlatego w tym przypadku nale\u017cy u\u017cy\u0107 funkcji. Funkcja wymaga parametr\u00f3w raportu <em>SystemVariables<\/em> i <em>SystemValues<\/em>.<\/p>\n<h5 id=\"funkcja-getvalue\" ><span class=\"ez-toc-section\" id=\"Funkcja_GetValue\"><\/span><a id=\"GV1\"><\/a>Funkcja <em>GetValue<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Funkcja <em>GetValue<\/em> okre\u015bla warto\u015b\u0107 zmiennej. Jest ona wymagana do okre\u015blenia zmiennych systemowych (wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#ZS1\"><em>Zmienne systemowe<\/em><\/a>) i sta\u0142ych tekstowych (rozdzia\u0142 <a href=\"#RNJ1\"><em>Niezale\u017cno\u015b\u0107 j\u0119zykowa raport\u00f3w<\/em><\/a>). Ma trzy parametry obowi\u0105zkowe i jeden parametr opcjonalny. Pierwszy parametr to nazwa zmiennej. Drugi parametr zawiera list\u0119 wszystkich znanych nazw zmiennych. Trzeci parametr zawiera list\u0119 warto\u015bci zmiennych. Czwarty parametr mo\u017ce definiowa\u0107 warto\u015b\u0107 domy\u015bln\u0105. Je\u015bli warto\u015b\u0107 domy\u015blna nie jest zdefiniowana, jako warto\u015b\u0107 domy\u015blna u\u017cywany jest pusty ci\u0105g znak\u00f3w.<\/p>\n<h4 id=\"standardowe-pola-parametrow\" ><span class=\"ez-toc-section\" id=\"Standardowe_pola_parametrow\"><\/span>Standardowe pola parametr\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Szablon raportu zawiera nast\u0119puj\u0105ce standardowe pola parametr\u00f3w:<\/p>\n<ul>\n<li><span style=\"font-size: revert; color: initial;\"><strong>ReportTitle<\/strong> &#8212; zawiera nazw\u0119 raportu zdefiniowan\u0105 w Comarch ERP Enterprise<\/span><\/li>\n<li><span style=\"font-size: revert; color: initial;\"><strong>SystemVariables<\/strong> &#8212; zawiera nazwy zmiennych systemowych (wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <\/span><a style=\"font-size: revert;\" href=\"#ZS1\"><em>Zmienne systemowe<\/em><\/a><span style=\"font-size: revert; color: initial;\">)<\/span><\/li>\n<li><span style=\"font-size: revert; color: initial;\"><strong>SystemValues<\/strong> &#8212; zawiera warto\u015bci zmiennych systemowych (wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <\/span><a style=\"font-size: revert;\" href=\"#ZS1\"><em>Zmienne systemowe<\/em><\/a><span style=\"font-size: revert; color: initial;\">)<\/span><\/li>\n<li><span style=\"font-size: revert; color: initial;\"><strong>TextConstants<\/strong> &#8212; zawiera nazwy sta\u0142ych tekstowych dla niezale\u017cno\u015bci j\u0119zykowej (rozdzia\u0142 <\/span><a style=\"font-size: revert;\" href=\"#RNJ1\"><em>Niezale\u017cno\u015b\u0107 j\u0119zykowa raport\u00f3w<\/em><\/a><span style=\"font-size: revert; color: initial;\">)<\/span><\/li>\n<li><span style=\"font-size: revert; color: initial;\"><strong>TextValues<\/strong> &#8212; zawiera warto\u015bci dla niezale\u017cno\u015bci j\u0119zykowej (rozdzia\u0142 <\/span><a style=\"font-size: revert;\" href=\"#RNJ1\"><em>Niezale\u017cno\u015b\u0107 j\u0119zykowa raport\u00f3w<\/em><\/a><span style=\"font-size: revert; color: initial;\">)<\/span><\/li>\n<\/ul>\n<h3 id=\"instrukcje\" ><span class=\"ez-toc-section\" id=\"Instrukcje\"><\/span>Instrukcje<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Niniejszy rozdzia\u0142 opisuje kroki wymagane do utworzenia raportu i pracy z nim.<\/p>\n<p>Przed nawi\u0105zaniem po\u0142\u0105czenia z Comarch ERP Enterprise nale\u017cy sprawdzi\u0107 ustawienia raportu. Spos\u00f3b wyboru ustawie\u0144 raportu zosta\u0142 opisany w dokumencie <em>Konfiguracja Crystal Reports<\/em>.<\/p>\n<p>Za pomoc\u0105 Crystal Reports mo\u017cna uzyska\u0107 dost\u0119p do danych Comarch ERP Enterprise poprzez sterownik ODBC systemu ERP. Dost\u0119p poprzez sterownik ODBC odbywa si\u0119 w systemie Windows poprzez \u017ar\u00f3d\u0142o danych (DSN, Data Source Name). DSN mo\u017cna zdefiniowa\u0107 w aplikacji <em>\u0179r\u00f3d\u0142a danych (ODBC)<\/em> w Panelu sterowania systemu Windows. Comarch ERP Enterprise oferuje prostsz\u0105 opcj\u0119 tworzenia DSN. Spos\u00f3b tworzenia DSN zosta\u0142 opisany w dokumentacji <em>\u0179r\u00f3d\u0142a danych ODBC<\/em>.<\/p>\n<h4 id=\"nazwy-symboliczne-dla-dsn\" ><span class=\"ez-toc-section\" id=\"Nazwy_symboliczne_dla_DSN\"><\/span>Nazwy symboliczne dla DSN<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>W przypadku u\u017cycia jednej z poni\u017cszych nazw symbolicznych dla \u017ar\u00f3d\u0142a danych (DSN), utworzony plik raportu mo\u017ce by\u0107 wyprowadzony na dowolny system Comarch ERP Enterprise.<\/p>\n<ul>\n<li><strong>Semiramis OLTP<\/strong><\/li>\n<li><strong>Semiramis OLAP<\/strong><\/li>\n<li><strong>Semiramis Repository<\/strong><\/li>\n<li><strong>Konfiguracja Semiramis<\/strong><\/li>\n<\/ul>\n<p>Je\u015bli wykorzystywane s\u0105 inne \u017ar\u00f3d\u0142a danych, te \u017ar\u00f3d\u0142a danych musz\u0105 by\u0107 r\u00f3wnie\u017c utworzone w SOM. W przeciwnym razie SOM nie b\u0119dzie m\u00f3g\u0142 uzyska\u0107 dost\u0119pu do danych podczas wyprowadzania i anuluje wyprowadzanie.<\/p>\n<h4 id=\"wiele-zrodel-danych\" ><span class=\"ez-toc-section\" id=\"Wiele_zrodel_danych\"><\/span>Wiele \u017ar\u00f3de\u0142 danych<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Raport utworzony w Crystal Reports mo\u017ce zawiera\u0107 kilka nazw symbolicznych jako \u017ar\u00f3d\u0142a danych. Na przyk\u0142ad dwa \u017ar\u00f3d\u0142a danych <em>Semiramis OLTP<\/em> i <em>Semiramis OLAP<\/em> mog\u0105 by\u0107 u\u017cywane w tym samym raporcie.<\/p>\n<p>Je\u015bli jednak raport zawiera \u017ar\u00f3d\u0142a danych dla kilku baz danych OLTP, raport mo\u017ce by\u0107 wyprowadzany za po\u015brednictwem SOM (pod warunkiem, \u017ce \u017ar\u00f3d\u0142a danych s\u0105 tam utworzone), ale raport nie mo\u017ce by\u0107 wyprowadzany za po\u015brednictwem klienckiej wersji sterownika ODBC systemu ERP. Oznacza to, \u017ce raport ze \u017ar\u00f3d\u0142ami danych dla kilku baz danych OLTP mo\u017cna testowa\u0107 interaktywnie w Crystal Reports tylko w ograniczonym zakresie. Ograniczenie to dotyczy r\u00f3wnie\u017c sytuacji, gdy \u017ar\u00f3d\u0142o danych drugiej bazy danych OLTP pojawia si\u0119 w raporcie podrz\u0119dnym. W takich przypadkach raport powinien zosta\u0107 zaewidencjonowany lub zaimportowany, a nast\u0119pnie przetestowany przy u\u017cyciu aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em>.<\/p>\n<h4 id=\"wybor-zrodla-danych-dsn\" ><span class=\"ez-toc-section\" id=\"Wybor_zrodla_danych_DSN\"><\/span>Wyb\u00f3r \u017ar\u00f3d\u0142a danych (DSN)<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Nale\u017cy uruchomi\u0107 <em>Kreatora bazy danych<\/em> w menu <em>Baza danych<\/em>. Otworzy si\u0119 okno dialogowe z dwiema zak\u0142adkami. Po pierwszym uruchomieniu <em>Kreatora bazy danych<\/em> mo\u017cna otworzy\u0107 okno dialogowe wyboru ODBC, wybieraj\u0105c folder <em>Dodaj nowe po\u0142\u0105czenie<\/em> i podfolder <em>ODBC (RDO)<\/em>. Teraz nale\u017cy wybra\u0107 nazw\u0119 \u017ar\u00f3d\u0142a danych, kt\u00f3re zosta\u0142o zdefiniowane dla dost\u0119pu do Comarch ERP Enterprise. Domy\u015blnie jest to \u017ar\u00f3d\u0142o danych <em>Semiramis OLTP<\/em>. Nast\u0119pnie kliknij [<strong>Zako\u0144cz<\/strong>] w oknie dialogowym, aby zamkn\u0105\u0107 okno dialogowe.<\/p>\n<h4 id=\"wybor-tabel\" ><span class=\"ez-toc-section\" id=\"Wybor_tabel\"><\/span>Wyb\u00f3r tabel<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Wpis bazy danych <em>Semiramis OLTP<\/em> pojawi si\u0119 w folderze <em>ODBC (RDO)<\/em>. Poni\u017cej wpisu bazy danych znajduje si\u0119 katalog g\u0142\u00f3wny <em>CISAG<\/em> z jego podkatalogami i zawartymi w nich tabelami. Wybierz \u017c\u0105dane tabele z podkatalog\u00f3w i przenie\u015b je do listy <em>Wybrane tabele<\/em>.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Opis podkatalog\u00f3w i ich zawarto\u015bci mo\u017cna znale\u017a\u0107 w dokumentacji <em>Interfejs ODBC<\/em>.<\/div><\/section>\n<h4 id=\"laczenie-tabel\" ><span class=\"ez-toc-section\" id=\"Laczenie_tabel\"><\/span>\u0141\u0105czenie tabel<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Przed zamkni\u0119ciem okna dialogowego <em>Kreatora bazy danych<\/em> nale\u017cy dostosowa\u0107 powi\u0105zania mi\u0119dzy tabelami. Je\u015bli \u0142\u0105cza istniej\u0105, nale\u017cy sprawdzi\u0107, czy wszystkie s\u0105 potrzebne. Nale\u017cy tak\u017ce dostosowa\u0107 opcje \u0142\u0105czy.<\/p>\n<p>Nowe \u0142\u0105cza mo\u017cna tworzy\u0107, przeci\u0105gaj\u0105c i upuszczaj\u0105c kolumn\u0119 tabeli, z kt\u00f3rej ma pochodzi\u0107 \u0142\u0105cze, na kolumn\u0119, kt\u00f3ra ma by\u0107 celem \u0142\u0105cza. Alternatywnie, linki mog\u0105 by\u0107 tworzone automatycznie.<\/p>\n<p>Dost\u0119pne s\u0105 dwa warianty automatycznego tworzenia link\u00f3w:<\/p>\n<ul>\n<li>Mo\u017cna utworzy\u0107 \u0142\u0105cze na podstawie nazw kolumn. Powi\u0105zanie za pomoc\u0105 nazw rzadko jest poprawne. Przyk\u0142adowo, wi\u0119kszo\u015b\u0107 tabel w Comarch ERP Enterprise posiada klucz g\u0142\u00f3wny dla kolumny tabeli <em>Guid<\/em>. Link poprzez ten atrybut dzia\u0142a dla linku pomi\u0119dzy artyku\u0142em a artyku\u0142em sprzeda\u017cy. Je\u015bli jednak chcemy powi\u0105za\u0107 zam\u00f3wienie sprzeda\u017cy z pozycj\u0105 zam\u00f3wienia sprzeda\u017cy, w\u00f3wczas kolumna w pozycjach nazywa si\u0119 <em>Nag\u0142\u00f3wek<\/em>, a nie <em>Guid<\/em>.<\/li>\n<li>Klucze tabel Comarch ERP Enterprise mog\u0105 by\u0107 odpytywane, a relacje tworzone za pomoc\u0105 kluczy. Tylko automatyczne linki s\u0105 tworzone dla tabel, kt\u00f3re nie zosta\u0142y jeszcze po\u0142\u0105czone.<\/li>\n<\/ul>\n<p>Od wersji Crystal Reports 10 istniej\u0105 dwa wyzwalacze do tworzenia automatycznych link\u00f3w:<\/p>\n<ul>\n<li>Pierwszy jest wyzwalany przez naci\u015bni\u0119cie przycisku [<strong>Po\u0142\u0105cz<\/strong>] na karcie <em>\u0141\u0105cza<\/em>. To zachowanie jest identyczne z zachowaniem Crystal Reports 9.<\/li>\n<li>Ponadto \u0142\u0105cza mog\u0105 by\u0107 tworzone automatycznie po wybraniu tabeli na karcie <em>Dane<\/em>. \u0141\u0105cza s\u0105 wtedy tworzone <em>Wed\u0142ug nazwy<\/em> i zazwyczaj nie s\u0105 poprawne. Je\u015bli Crystal Reports zosta\u0142 skonfigurowany zgodnie z artyku\u0142em <em>Konfiguracja Crystal Reports<\/em>, tworzenie powinno by\u0107 wy\u0142\u0105czone podczas dodawania tabel.<\/li>\n<\/ul>\n<p>\u0141\u0105cza mo\u017cna usuwa\u0107, naciskaj\u0105c klawisz [<strong>Delete<\/strong>] lub przycisk [<strong>Usu\u0144 \u0142\u0105cze<\/strong>] po wybraniu \u0142\u0105cza. Menu kontekstowe \u0142\u0105cza r\u00f3wnie\u017c zawiera opcj\u0119 usuwania.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Kolorowe oznaczenia przed kolumnami s\u0142u\u017c\u0105 jako pomoc. Cel linku powinien by\u0107 zawsze oznaczony kolorem. Znacznik ten wskazuje indeks, w kt\u00f3rym znajduje si\u0119 kolumna. Je\u015bli kolumna nie jest zawarta w indeksie, rozwi\u0105zanie linku potencjalnie prowadzi do pe\u0142nego skanowania tabeli. Po naci\u015bni\u0119ciu przycisku [<strong>Legenda indeksu<\/strong>] wy\u015bwietlone zostanie wyja\u015bnienie oznacze\u0144 kolorystycznych.<\/div><\/section>\n<h5 id=\"wymus-lacze\" ><span class=\"ez-toc-section\" id=\"Wymus_lacze\"><\/span>Wymu\u015b \u0142\u0105cze<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Od wersji Crystal Reports 10 opcja <em>Wymu\u015b \u0142\u0105cze<\/em> jest dost\u0119pna w menu <em>Opcje \u0142\u0105cza<\/em>. Domy\u015blna konfiguracja sprz\u0119\u017cenia nie wymusza jego faktycznego wykonania, tj. w pewnych okoliczno\u015bciach w wynikowej instrukcji SQL nie jest generowana odpowiednia klauzula JOIN i brakuje tabeli po\u0142\u0105czonej. Mo\u017ce to skutkowa\u0107 nieoczekiwanym wynikiem zapytania, kt\u00f3rego przyczyna jest trudna do ustalenia. Crystal Reports mo\u017ce pomin\u0105\u0107 po\u0142\u0105czenie z tabel\u0105, je\u015bli \u017cadna kolumna tabeli nie jest u\u017cywana w raporcie, np. do wyj\u015bcia lub wyboru. To, czy takie \u0142\u0105cze zostanie faktycznie pomini\u0119te, zale\u017cy od kontekstu innych istniej\u0105cych \u0142\u0105czy w raporcie. Opcja <em>Wymu\u015b \u0142\u0105cze<\/em> w menu <em>Opcje \u0142\u0105cza<\/em> (dost\u0119pna po dwukrotnym klikni\u0119ciu strza\u0142ki \u0142\u0105cza) musi by\u0107 zawsze ustawiona na <em>Oba wymuszone<\/em>, aby zapobiec pomini\u0119ciu \u0142\u0105cza.<\/p>\n<h4 id=\"typy-danych-w-comarch-erp-enterprise\" ><span class=\"ez-toc-section\" id=\"Typy_danych_w_Comarch_ERP_Enterprise\"><\/span>Typy danych w Comarch ERP Enterprise<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Niniejszy rozdzia\u0142 opisuje, w jaki spos\u00f3b typy danych Comarch ERP Enterprise s\u0105 zwykle u\u017cywane. Dla poszczeg\u00f3lnych typ\u00f3w danych podano kr\u00f3tki opis sposobu wyprowadzania warto\u015bci. Typy danych, ich cechy szczeg\u00f3lne i zastosowanie zosta\u0142y opisane w dokumentacji <em>Interfejs ODBC<\/em>.<\/p>\n<h5 id=\"guid\" ><span class=\"ez-toc-section\" id=\"GUID\"><\/span>GUID<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Identyfikatory GUID s\u0105 najcz\u0119\u015bciej u\u017cywane w Comarch ERP Enterprise jako klucz g\u0142\u00f3wny obiektu oraz jako klucz obcy. Tabele s\u0105 po\u0142\u0105czone poprzez odpowiednie atrybuty GUID. Bezpo\u015brednie wyj\u015bcie identyfikator\u00f3w GUID nie jest zazwyczaj u\u017cyteczne. Zamiast tego atrybuty klucza biznesowego powinny by\u0107 zwykle wyprowadzane, np. numer artyku\u0142u.<\/p>\n<h5 id=\"string\" ><span class=\"ez-toc-section\" id=\"String\"><\/span>String<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Atrybuty oparte na typie <em>String<\/em> s\u0105 bardzo powszechne. Nie wymagaj\u0105 one specjalnej obs\u0142ugi.<\/p>\n<h5 id=\"boolean\" ><span class=\"ez-toc-section\" id=\"Boolean\"><\/span>Boolean<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Warto\u015bci logiczne s\u0105 wy\u015bwietlane jako <em>True<\/em> lub <em>False<\/em> w Crystal Reports. Dla lepszego zrozumienia nale\u017cy zast\u0105pi\u0107 te warto\u015bci znacz\u0105cym tekstem. Formu\u0142a w u\u017cywanym polu mo\u017ce mie\u0107 nast\u0119puj\u0105c\u0105 tre\u015b\u0107:<\/p>\n<p><em>Shared StringVar strCustomerSalesItemExistingFalse;<\/em><\/p>\n<p><em>Shared StringVar strCustomerSalesItemExistingTrue;<\/em><\/p>\n<p><em>if({app_sales_SalesItem.customerSalesItemExisting}) Then<\/em><\/p>\n<p><em>strCustomerSalesItemExistingTrue<\/em><\/p>\n<p><em>else<\/em><\/p>\n<p><em>strCustomerSalesItemExistingFalse<\/em><\/p>\n<p>Prawid\u0142owo zmienne <em>strCustomerSalesItemExistingFalse<\/em> i <em>strCustomerSalesItemExistingTrue<\/em> powinny zawiera\u0107 teksty do przet\u0142umaczenia. Spos\u00f3b definiowania tych tekst\u00f3w i przypisywania ich do zmiennych opisano w rozdziale <a href=\"#RNJ1\"><em>Raporty niezale\u017cne od j\u0119zyka<\/em><\/a>.<\/p>\n<h5 id=\"liczby\" ><span class=\"ez-toc-section\" id=\"Liczby\"><\/span>Liczby<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Wiele typ\u00f3w danych jest wyprowadzanych przez Crystal Reports jako liczby. Nale\u017c\u0105 do nich: <em>byte<\/em>, <em>char<\/em>, <em>short<\/em>, <em>integer<\/em>, <em>long<\/em> i <em>decimal number<\/em>. Proste typy mog\u0105 by\u0107 zwykle wyprowadzane bezpo\u015brednio. Warto\u015bci liczb dziesi\u0119tnych musz\u0105 by\u0107 specjalnie sformatowane, tak aby u\u017cywane by\u0142y ustawienia separator\u00f3w grup i dziesi\u0119tnych z Comarch ERP Enterprise.<\/p>\n<h5 id=\"valueset\" ><span class=\"ez-toc-section\" id=\"Valueset\"><\/span>Valueset<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Atrybuty typu <em>Valueset<\/em> s\u0105 przechowywane w bazie danych jako <em>short<\/em>. Liczby te s\u0105 t\u0142umaczone na sta\u0142e symboliczne przez sterownik ODBC systemu ERP. Warto\u015bci te nie powinny by\u0107 wyprowadzane bezpo\u015brednio. Sterownik ODBC systemu ERP dodaje wirtualn\u0105 kolumn\u0119 do modelu danych. Ma ona nazw\u0119 kolumny zestawu warto\u015bci uzupe\u0142nion\u0105 o ko\u0144c\u00f3wk\u0119 <em>_text<\/em>. Zawiera ona tekst zdefiniowany w zestawie warto\u015bci dla warto\u015bci w oryginalnej kolumnie. Nale\u017cy go u\u017cy\u0107 dla danych wyj\u015bciowych.<\/p>\n<h5 id=\"czas-i-data\" ><span class=\"ez-toc-section\" id=\"Czas_i_data\"><\/span>Czas i data<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Kolumny zawieraj\u0105ce informacje o czasie i dacie mog\u0105 by\u0107 zwykle wyprowadzane bezpo\u015brednio bez ich konwertowania. Warto\u015bci zawsze odnosz\u0105 si\u0119 do strefy czasowej organizacji u\u017cywanej dla \u017ar\u00f3d\u0142a danych.<\/p>\n<p>W kolumnach typu <em>Timestamp<\/em> czas jest zapisywany w bazie danych niezale\u017cnie od strefy czasowej. Warto\u015bci te odnosz\u0105 si\u0119 do UTC (Uni-versal Time Codordinated). Dane s\u0105 odpowiednio konwertowane podczas zapisywania. Czasy te s\u0105 zawsze przygotowywane w odniesieniu do strefy czasowej organizacji \u017ar\u00f3d\u0142a danych.<\/p>\n<p>Kolumny typu <em>CisAttributeDate<\/em> i <em>CisObjectDate<\/em> s\u0105 zawsze przygotowywane w odniesieniu do strefy czasowej w bazie danych. Podobnie jak w Comarch ERP Enterprise, nazwa strefy czasowej musi by\u0107 wy\u015bwietlana, je\u015bli strefa czasowa jest inna. Strefa czasowa jest dostarczana przez sterownik ODBC systemu ERP w wirtualnej kolumnie. Kolumna ma tak\u0105 sam\u0105 nazw\u0119 jak oryginalny atrybut z dodatkiem <em>_timezone<\/em>. Atrybut ten musi by\u0107 wyprowadzany w osobnym polu. Je\u015bli strefa czasowa nie r\u00f3\u017cni si\u0119 od strefy czasowej organizacji \u017ar\u00f3d\u0142a danych, kolumna ta jest pusta.<\/p>\n<p>Wszystkie informacje o czasie i dacie musz\u0105 by\u0107 sformatowane oddzielnie, tak aby ta sama sekwencja dnia, miesi\u0105ca i roku oraz te same separatory daty i godziny by\u0142y u\u017cywane jak w Comarch ERP Enterprise.<\/p>\n<h5 id=\"atrybuty-blob\" ><span class=\"ez-toc-section\" id=\"Atrybuty_BLOB\"><\/span>Atrybuty BLOB<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Je\u015bli atrybuty BLOB s\u0105 wyprowadzane jako obrazy, obrazy musz\u0105 by\u0107 zapisane w bazie danych w formatach obs\u0142ugiwanych przez Crystal Reports.<\/p>\n<p>Formaty obs\u0142ugiwane przez Crystal Reports dla obraz\u00f3w to<\/p>\n<ul>\n<li>bmp<\/li>\n<li>jpg<\/li>\n<li>png<\/li>\n<\/ul>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Crystal Reports zaleca si\u0119 u\u017cywanie formatu PNG dla obraz\u00f3w. Nigdy nie nale\u017cy u\u017cywa\u0107 formatu TIFF. Korzystanie z formatu TIFF mo\u017ce spowodowa\u0107 awari\u0119 Crystal Reports i SOM.<\/div><\/section>\n<h4 id=\"uzywanie-parametrow\" ><span class=\"ez-toc-section\" id=\"Uzywanie_parametrow\"><\/span>U\u017cywanie parametr\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Do raportu mo\u017cna doda\u0107 dowoln\u0105 liczb\u0119 parametr\u00f3w zdefiniowanych przez u\u017cytkownika. Podczas importu do Comarch ERP Enterprise dla ka\u017cdego parametru w raporcie tworzony jest odpowiedni parametr w Comarch ERP Enterprise. Parametry te pozwalaj\u0105 m.in. na wprowadzenie charakterystyki zapytania w aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em>.<\/p>\n<h5 id=\"nazewnictwo\" ><span class=\"ez-toc-section\" id=\"Nazewnictwo\"><\/span>Nazewnictwo<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Parametr mo\u017ce sk\u0142ada\u0107 si\u0119 wy\u0142\u0105cznie z du\u017cych i ma\u0142ych liter oraz cyfr. Parametr powinien zaczyna\u0107 si\u0119 od nazwy raportu, po kt\u00f3rej nast\u0119puje nazwa rzeczywista. Nazwa atrybutu jest u\u017cywana dla atrybut\u00f3w g\u0142\u00f3wnej jednostki biznesowej. W przypadku atrybut\u00f3w z obiekt\u00f3w, kt\u00f3re s\u0105 przywo\u0142ywane przez relacje klucza obcego, nazwa sk\u0142ada si\u0119 z nazwy relacji i nazwy atrybutu.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Lista artyku\u0142\u00f3w jest tworzona z szablonu raportu. Raport nosi nazw\u0119 <em>com.cisag.app.sales.rpt.SalesItem<\/em> i jest oparty na jednostce biznesowej <em>com.cisag.app.sales.obj.Salesitem<\/em>. Parametr dla klasyfikacji <em>ABC<\/em> musi by\u0107 wtedy nazwany <em>Abc<\/em>, poniewa\u017c atrybut <em>abc<\/em> jednostki biznesowej <em>SalesItem<\/em> ma wp\u0142yw na parametr. Parametr dla numeru artyku\u0142u musi mie\u0107 nazw\u0119 <em>ItemNumber<\/em>, poniewa\u017c numer artyku\u0142u jest przywo\u0142ywany przez relacj\u0119 <em>Item<\/em>.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 69px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Raport<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Atrybut<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Parametr<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 46px; border-style: outset;\" rowspan=\"2\"><em>SalesItem<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>SalesItem.abc<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>Abc<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>Item.number<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>ItemNumber<\/em><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><\/div><\/section>\n<p>Podobne zasady musz\u0105 by\u0107 zatem przestrzegane podczas przypisywania nazw parametr\u00f3w dla aplikacji i raport\u00f3w. Wielko\u015b\u0107 liter w nazwach nie ma znaczenia. Poni\u017csze nazwy s\u0105 u\u017cywane przez parametry zwi\u0105zane z systemem i dlatego nie mog\u0105 by\u0107 u\u017cywane dla parametr\u00f3w zdefiniowanych przez u\u017cytkownika:<\/p>\n<ul>\n<li><strong>ReportTitle<\/strong><\/li>\n<li><strong>SystemVariables<\/strong><\/li>\n<li><strong>SystemValues<\/strong><\/li>\n<li><strong>TextConstants<\/strong><\/li>\n<li><strong>TextValues<\/strong><\/li>\n<\/ul>\n<p>Parametr <em>document<\/em>, kt\u00f3ry r\u00f3wnie\u017c cz\u0119sto wyst\u0119puje, jest u\u017cywany tylko w dokumentach dokument\u00f3w. Jest on przeznaczony jako parametr transferu dla identyfikatora GUID dokumentu. Ponadto wszystkie nazwy parametr\u00f3w zaczynaj\u0105ce si\u0119 od <em>Report<\/em> s\u0105 zarezerwowane dla przysz\u0142ych rozszerze\u0144 i nie mog\u0105 by\u0107 u\u017cywane dla parametr\u00f3w zdefiniowanych przez u\u017cytkownika.<\/p>\n<h5 id=\"typy-danych-w-crystal-reports\" ><span class=\"ez-toc-section\" id=\"Typy_danych_w_Crystal_Reports\"><\/span>Typy danych w Crystal Reports<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Poni\u017csza tabela przedstawia typy danych, kt\u00f3re mo\u017cna zaimportowa\u0107 z Crystal Reports do Comarch ERP Enterprise, a tak\u017ce inne opcje obs\u0142ugiwane w oknie dialogowym <em>Utw\u00f3rz pole parametru<\/em> lub <em>Edytuj pole parametru<\/em> w Crystal Reports:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 184px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; text-align: center; height: 23px;\"><strong>Typ danych<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px;\"><strong>Obs\u0142ugiwane opcje<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px;\"><strong>Czy mo\u017cliwy jest import<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">Boolean<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie jest obs\u0142ugiwane<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Tak<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">Waluta<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie dotyczy<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">Data<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie dotyczy<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">DateTime<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Jest obs\u0142ugiwany tylko w po\u0142\u0105czeniu z odpowiednim logicznym typem danych w Comarch ERP Enterprise<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Tak<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">Liczba<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Brak ogranicze\u0144<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Tak<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">String<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Brak ogranicze\u0144<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Tak<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px;\">Czas<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie dotyczy<\/td>\n<td style=\"width: 33.3333%; height: 23px;\">Nie<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>W przypadku braku przypisania logicznego typu danych do parametru w Comarch ERP Enterprise, specyfikacja dokonywana jest w aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em> zgodnie z poni\u017csz\u0105 tabel\u0105:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 276px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; text-align: center; height: 23px; border-style: outset;\"><strong>Typ danych<\/strong><\/td>\n<td style=\"width: 20%; text-align: center; height: 23px; border-style: outset;\"><strong>Wielokrotno\u015b\u0107<\/strong><\/td>\n<td style=\"width: 20%; text-align: center; height: 23px; border-style: outset;\"><strong>Ukryty<\/strong><\/td>\n<td style=\"width: 20%; text-align: center; height: 23px; border-style: outset;\"><strong>Zakres<\/strong><\/td>\n<td style=\"width: 20%; text-align: center; height: 23px; border-style: outset;\"><strong>Dane<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Boolean<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Warto\u015b\u0107 domy\u015blna to\u00a0<em>Nieprawid\u0142owe<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 115px; border-style: outset;\" rowspan=\"4\">Liczba<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 115px; border-style: outset;\" rowspan=\"5\">Ci\u0105g znak\u00f3w<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Puste pole zostanie zast\u0105pione znakiem &#8222;*&#8221;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Puste pole zostanie zast\u0105pione znakiem &#8222;*&#8221;<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Nie<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Tak<\/td>\n<td style=\"width: 20%; height: 23px; border-style: outset;\">Wprowadzenie danych jest obowi\u0105zkowe<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h6 id=\"parametry-z-wartosciami-domyslnymi\" ><span class=\"ez-toc-section\" id=\"Parametry_z_wartosciami_domyslnymi\"><\/span>Parametry z warto\u015bciami domy\u015blnymi<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>W raporcie mo\u017cna okre\u015bli\u0107 warto\u015bci domy\u015blne parametr\u00f3w. Je\u015bli warto\u015bci domy\u015blne s\u0105 okre\u015blone dla parametr\u00f3w, nie mo\u017ce to by\u0107 pojedyncza warto\u015b\u0107 domy\u015blna okre\u015blona jako &#8222;*&#8221;. Ponadto pole wyboru <em>Zezwalaj na edycj\u0119 warto\u015bci domy\u015blnych<\/em> musi by\u0107 wy\u0142\u0105czone dla parametru. W Crystal Reports 11 opcja <em>Zezwalaj na edycj\u0119 danych<\/em> musi by\u0107 ustawiona na <em>False<\/em> dla parametru.<\/p>\n<h5 id=\"logiczne-typy-danych-w-comarch-erp-enterprise\" ><span class=\"ez-toc-section\" id=\"Logiczne_typy_danych_w_Comarch_ERP_Enterprise\"><\/span>Logiczne typy danych w Comarch ERP Enterprise<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Podczas importu raportu do Comarch ERP Enterprise mo\u017cna przypisa\u0107 logiczny typ danych do ka\u017cdego parametru zdefiniowanego przez u\u017cytkownika.<\/p>\n<p>Logiczny typ danych i przypisany do niego opis danych nadaj\u0105 parametrowi inne w\u0142a\u015bciwo\u015bci. Obejmuj\u0105 one pomoc wej\u015bciow\u0105 i etykietowanie pola wyboru w aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em>, a tak\u017ce informacj\u0119, czy podanie warto\u015bci jest obowi\u0105zkowe dla danych wyj\u015bciowych. Logiczny typ danych jest zwykle okre\u015blany w aplikacji <em>Raporty<\/em> po zaimportowaniu. W przypadku niekt\u00f3rych prostych typ\u00f3w danych mo\u017cna pomin\u0105\u0107 specyfikacj\u0119 odpowiedniego logicznego typu danych. W takim przypadku nie ma pomocy wej\u015bciowej, a etykietowanie zdefiniowane w Crystal Reports jest przyjmowane przez Comarch ERP Enterprise. Etykietowanie jest r\u00f3wnie\u017c przyjmowane, je\u015bli w opisie danych nie okre\u015blono tekstu dla etykietowania. Wszelkie inne informacje przechowywane w szablonie raportu, takie jak warto\u015bci domy\u015blne (domy\u015blne), nie s\u0105 przyjmowane.<\/p>\n<p>Podczas zapisywania szablonu raportu w Comarch ERP Enterprise system sprawdza, czy typy danych u\u017cywane w Crystal Reports s\u0105 zgodne z logicznymi typami danych przypisanymi w Comarch ERP Enterprise.<\/p>\n<p>Dla ka\u017cdego parametru raportu nale\u017cy utworzy\u0107 osobny logiczny typ danych i powi\u0105zany z nim opis danych. Zapewnia to mo\u017cliwo\u015b\u0107 wprowadzania tekst\u00f3w i bezpo\u015bredniej pomocy dla parametru. Nazwa logicznego typu danych sk\u0142ada si\u0119 z nazwy raportu i nazwy parametru.<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 69px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Zakres<\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Parametr<\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Logiczny typ danych<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 46px; border-style: outset;\" rowspan=\"2\">com.cisag.app.sales.rpt.SalesItem<\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Abc<\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">com.cisag.app.sales.rpt.SalesItemAbc<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">ItemNumber<\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">com.cisag.app.sales.rpt.SalesItemItemNumber<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h6 id=\"klasyfikacje\" ><span class=\"ez-toc-section\" id=\"Klasyfikacje\"><\/span>Klasyfikacje<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>Aby uzyska\u0107 pomoc wej\u015bciow\u0105 dla klasyfikacji pola parametru w aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em>, nale\u017cy u\u017cy\u0107 logicznego typu danych, kt\u00f3ry ma specjalne w\u0142a\u015bciwo\u015bci. Ten logiczny typ danych musi by\u0107 oparty na logicznym typie danych, kt\u00f3ry zosta\u0142 u\u017cyty dla atrybutu <em>path<\/em> odpowiedniej klasyfikacji. Na przyk\u0142ad, aby uzyska\u0107 warto\u015b\u0107 <em>help<\/em> dla klasyfikacji <em>com.cisag.app.sales.obj.SalesItemHierarchy1<\/em>, logiczny typ danych dla pola parametru musi by\u0107 pochodn\u0105 <em>com.cisag.app.sales.SalesItemHierarchy1Path<\/em>.<\/p>\n<h5 id=\"cechy-szczegolne-datetime\" ><span class=\"ez-toc-section\" id=\"Cechy_szczegolne_DateTime\"><\/span>Cechy szczeg\u00f3lne <em>DateTime<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>W przypadku typu danych <em>DateTime<\/em> w Crystal Reports sterownik ODBC systemu ERP przesy\u0142a specyfikacj\u0119 czasu zwi\u0105zan\u0105 ze stref\u0105 czasow\u0105 <em>Greenwich Mean Time<\/em> (GMT).<\/p>\n<p>Warto\u015b\u0107 t\u0119 mo\u017cna przekonwertowa\u0107 na stref\u0119 czasow\u0105 u\u017cywan\u0105 w \u017ar\u00f3dle danych (DSN) za pomoc\u0105 tabeli wirtualnej. Konwersja jest jednak mo\u017cliwa tylko dla pojedynczych warto\u015bci; nie mo\u017cna konwertowa\u0107 wielu warto\u015bci lub zakres\u00f3w. Je\u015bli zakres dat jest przesy\u0142any jako parametr w szablonie raportu, zaleca si\u0119 zdefiniowanie dw\u00f3ch oddzielnych parametr\u00f3w z dyskretnymi warto\u015bciami bez wielu wpis\u00f3w w raporcie.<\/p>\n<h5 id=\"uzywanie-parametrow-w-warunkach-where\" ><span class=\"ez-toc-section\" id=\"Uzywanie_parametrow_w_warunkach_WHERE\"><\/span>U\u017cywanie parametr\u00f3w w warunkach WHERE<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>W Crystal Reports mo\u017cna u\u017cywa\u0107 operator\u00f3w takich jak <em>is equal to<\/em>, <em>is one of<\/em>, <em>is between<\/em> lub <em>is like<\/em> do por\u00f3wnywania parametru wyboru w warunku WHERE.<\/p>\n<p>Mo\u017cna r\u00f3wnie\u017c przechowywa\u0107 z\u0142o\u017cone wyra\u017cenie w formule, kt\u00f3ra jest odpytywana w warunku WHERE. To, kt\u00f3re operatory zostan\u0105 u\u017cyte w raporcie, zale\u017cy od definicji danego parametru i logicznego typu danych u\u017cywanego w Comarch ERP Enterprise.<\/p>\n<p>U\u017cycie operator\u00f3w w warunku WHERE raportu nie jest importowane do Comarch ERP Enterprise i nie jest sprawdzane. Dlatego nale\u017cy zawsze upewni\u0107 si\u0119, \u017ce u\u017cyte operatory s\u0105 zgodne z logicznym typem danych w Comarch ERP Enterprise. Je\u015bli parametr w raporcie jest typu danych <em>string<\/em>, a logiczny typ danych w Comarch ERP Enterprise dopuszcza pusty ci\u0105g, w\u00f3wczas preferowany jest operator <em>is like<\/em>. W takim przypadku nie ma potrzeby zapisywania gwiazdki (*) jako warto\u015bci domy\u015blnej w szablonie raportu, poniewa\u017c Comarch ERP Enterprise automatycznie zast\u0119puje pusty ci\u0105g gwiazdk\u0105.<\/p>\n<p>Je\u015bli operator r\u00f3wno\u015bci (=) zostanie u\u017cyty w warunku WHERE do por\u00f3wnania parametru z identyfikatorem GUID, w\u00f3wczas nie mo\u017cna okre\u015bli\u0107 \u017cadnych rekord\u00f3w danych z warto\u015bci\u0105 <em>zero<\/em>. Poni\u017cszy przyk\u0142ad pokazuje t\u0119 sytuacj\u0119 na przyk\u0142adzie fikcyjnego szablonu raportu do wyprowadzania zlece\u0144 sprzeda\u017cy:<\/p>\n<p>Szablon raportu do wyprowadzania zlece\u0144 sprzeda\u017cy ma parametr <em>SalesRep<\/em>. Parametr ten jest u\u017cywany do zapytania o sprzeda\u017c poszczeg\u00f3lnych przedstawicieli handlowych. Je\u015bli nie okre\u015blono \u017cadnego przedstawiciela handlowego, nale\u017cy wypisa\u0107 sprzeda\u017c wszystkich przedstawicieli handlowych.<\/p>\n<p>W szablonie raportu dwie tabele bazy danych {app_sales_SalesOrder} i {app_general_Partner} s\u0105 po\u0142\u0105czone lewym sprz\u0119\u017ceniem zewn\u0119trznym. Warunek <em>WHERE {Partner.number} like {?SalesRep}<\/em> zwraca warto\u015b\u0107 * dla wszystkich zam\u00f3wie\u0144 sprzeda\u017cy z przedstawicielem handlowym. Je\u015bli maj\u0105 zosta\u0107 okre\u015blone zlecenia sprzeda\u017cy bez przedstawiciela handlowego, nale\u017cy r\u00f3wnie\u017c sprawdzi\u0107 warto\u015b\u0107 za pomoc\u0105 funkcji <em>IsNull()<\/em>. Aby zapobiec sytuacji, w kt\u00f3rej niepusta warto\u015b\u0107 (np. <em>70030<\/em>) okre\u015bla r\u00f3wnie\u017c zam\u00f3wienia sprzeda\u017cy bez przedstawiciela, warunek WHERE mo\u017ce wygl\u0105da\u0107 nast\u0119puj\u0105co:<\/p>\n<p><em>({?SalesRep}=&#8221;*&#8221; and IsNull({app_sales_SalesOrder.salesRepresentatives_0_}) or ({app_general_Partner.number} like {?SalesRep}))<\/em><\/p>\n<h4 id=\"zmienne-systemowe\" ><span class=\"ez-toc-section\" id=\"Zmienne_systemowe\"><\/span><a id=\"ZS1\"><\/a>Zmienne systemowe<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Zmienne systemowe s\u0142u\u017c\u0105 do przesy\u0142ania informacji kontekstowych podczas tworzenia raport\u00f3w. Umo\u017cliwiaj\u0105 one dost\u0119p do informacji, kt\u00f3re serwer aplikacji systemu ERP przekazuje do mened\u017cera danych wyj\u015bciowych systemu ERP.<\/p>\n<p>Parametry <em>SystemVariables<\/em> i <em>SystemValues<\/em> musz\u0105 by\u0107 zdefiniowane w raporcie jako ci\u0105gi znak\u00f3w i umo\u017cliwiaj\u0105 przesy\u0142anie wielu warto\u015bci (tablic). Nazwy zmiennych systemowych zdefiniowanych w Comarch ERP Enterprise s\u0105 przesy\u0142ane w parametrze <em>SystemVariables<\/em>. Warto\u015bci zmiennych systemowych przekazywane s\u0105 w parametrze <em>SystemValues<\/em>. Do odczytu warto\u015bci z parametru <em>SystemValues<\/em> mo\u017cna wykorzysta\u0107 funkcj\u0119 <em>GetValue<\/em> (wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w rozdziale <a href=\"#GV1\"><em>Funkcja GetValue<\/em><\/a>). Warto\u015bci te s\u0105 jednak zwykle udost\u0119pniane w polu formu\u0142y.<\/p>\n<p>Zmienne systemowe s\u0105 podzielone na kategorie. Ka\u017cda kategoria jest wymieniona i opisana indywidualnie poni\u017cej. Podana jest nazwa zmiennej systemowej, pole formu\u0142y, do kt\u00f3rego zmienna jest kopiowana przez inicjalizacje oraz opis zmiennej:<\/p>\n<ul>\n<li><a href=\"#io1\"><em>Informacje o systemie<\/em><\/a><\/li>\n<li><a href=\"#io2\"><em>Informacje o u\u017cytkowniku<\/em><\/a><\/li>\n<li><a href=\"#io3\"><em>Informacje wyj\u015bciowe<\/em><\/a><\/li>\n<\/ul>\n<h6 id=\"informacje-systemowe\" ><span class=\"ez-toc-section\" id=\"Informacje_systemowe\"><\/span><a id=\"io1\"><\/a>Informacje systemowe<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>Poni\u017csze informacje systemowe i wst\u0119pnie przypisane sta\u0142e tekstowe s\u0105 dostarczane przez Comarch ERP Enterprise i mog\u0105 by\u0107 wykorzystywane w raportach:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 1061px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Zmienna systemowa<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Pole<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Warto\u015b\u0107<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>BACKGROUND_RED<\/em><br \/>\n<em>BACKGROUND_GREEN<\/em><br \/>\n<em>BACKGROUND_BLUE<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_Color<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Warto\u015b\u0107 RGB dla koloru t\u0142a z koloru dla naprzemiennych wierszy listy aktywnego motywu t\u0142a.<br \/>\nJe\u015bli kolor t\u0142a nie jest aktywowany w aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em>, przesy\u0142ana jest warto\u015b\u0107 RGB dla koloru <em>bia\u0142ego <\/em>(255, 255, 255).<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>CONFIGURATION_NAME<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_ConfigurationName<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Nazwa bie\u017c\u0105cej bazy danych konfiguracji.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>DELIVERY_METHOD<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Warto\u015b\u0107 okre\u015bla typ no\u015bnika wyj\u015bciowego. Mo\u017cliwe warto\u015bci to email, fax, drukarka i uri.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>MULTI_SITE_ENABLED<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_MultiSiteEnabled<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Je\u015bli funkcja <em>Wielofirmowo\u015b\u0107<\/em> jest aktywna dla bazy danych OLTP, zmienna systemowa zawiera sekwencj\u0119 znak\u00f3w <em>True<\/em>. Je\u015bli funkcja nie jest aktywna, zmienna systemowa zawiera ci\u0105g znak\u00f3w <em>False<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>MULTPLE_ORGANIZATIONS<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_MultipleOrganizations<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Je\u015bli funkcja <em>Wielofirmowo\u015b\u0107<\/em> lub <em>Uprawnienia do tre\u015bci<\/em> jest aktywna dla bazy danych OLTP, opr\u00f3cz organizacji klienta mo\u017cna zarejestrowa\u0107 kilka organizacji. W takim przypadku zmienna systemowa zawiera ci\u0105g znak\u00f3w <em>True<\/em>. W przeciwnym razie zawiera ci\u0105g znak\u00f3w <em>False<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_ACTIVATED<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_ACTIVATED<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211; <em>Aktywowany<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_COLON<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_COLON<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211; <em>:<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_DEACTIVATED<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_DEACTIVATED<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211; <em>Dezaktywowany<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_MARKED_FOR_DELETION<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_MARKED_FOR_DELETION<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211;<em> Wstawiono znacznik usuwania<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_NO<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_NO<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211; <em>Nie<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_PERCENT<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_PERCENT<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211; <em>%<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_SLASH<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_SLASH<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211;\u00a0<em>\/<\/em><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_YES<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>NLS_YES<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Przet\u0142umaczony tekst &#8211;\u00a0<em>Tak<\/em><\/td>\n<\/tr>\n<tr style=\"height: 46px;\">\n<td style=\"width: 33.3333%; height: 46px; border-style: outset;\"><em>OLAP_DESCRIPTION<\/em><\/td>\n<td style=\"width: 33.3333%; height: 46px; border-style: outset;\"><em>_OlapDescription<\/em><\/td>\n<td style=\"width: 33.3333%; height: 46px; border-style: outset;\">Oznaczenie bie\u017c\u0105cej bazy danych OLAP<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>OLAP_NAME<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_OlapName<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Nazwa bie\u017c\u0105cej bazy danych OLAP<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>OLTP_DESCRIPTION<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_OltpDescription<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Oznaczenie bie\u017c\u0105cej bazy danych OLTP<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>OLTP_NAME<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_OltpName<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Nazwa bie\u017c\u0105cej bazy danych OLTP<\/td>\n<\/tr>\n<tr style=\"height: 70px;\">\n<td style=\"width: 33.3333%; height: 70px; border-style: outset;\"><em>ORGANIZATION_GUID<\/em><\/td>\n<td style=\"width: 33.3333%; height: 70px; border-style: outset;\"><em>_OrganisationGuid<\/em><\/td>\n<td style=\"width: 33.3333%; height: 70px; border-style: outset;\">Identyfikator GUID organizacji, w kt\u00f3rej kontek\u015bcie odbywa si\u0119 raport<\/td>\n<\/tr>\n<tr style=\"height: 305px;\">\n<td style=\"width: 33.3333%; height: 305px; border-style: outset;\"><em>PAGE<\/em><\/td>\n<td style=\"width: 33.3333%; height: 305px; border-style: outset;\"><em>_PageCount<\/em><\/td>\n<td style=\"width: 33.3333%; height: 305px; border-style: outset;\">T\u0142umaczenie s\u0142owa <em>Page<\/em> w odpowiednim j\u0119zyku raportu. Je\u015bli t\u0142umaczenie nie jest dost\u0119pne w j\u0119zyku wyj\u015bciowym, u\u017cywany jest g\u0142\u00f3wny j\u0119zyk bazy danych repozytorium.Pole formu\u0142y przygotowuje tekst dla specyfikacji strony. Wynik zawiera r\u00f3wnie\u017c tekst dla <em>Page<\/em>. Na przyk\u0142ad &#8222;Strona 1 (10)&#8221;.<\/td>\n<\/tr>\n<tr style=\"height: 215px;\">\n<td style=\"width: 33.3333%; height: 215px; border-style: outset;\"><em>REPORT_DESCRIPTION<\/em><\/td>\n<td style=\"width: 33.3333%; height: 215px; border-style: outset;\"><em>_ReportDescription<\/em><\/td>\n<td style=\"width: 33.3333%; height: 215px; border-style: outset;\">Nazwa raportu w odpowiednim j\u0119zyku raportu.Je\u015bli nie zapisano t\u0142umaczenia, opis jest wy\u015bwietlany w oryginalnym j\u0119zyku raportu.<\/td>\n<\/tr>\n<tr style=\"height: 34px;\">\n<td style=\"width: 33.3333%; height: 34px; border-style: outset;\"><em>REPORT_LANGUAGE<\/em><\/td>\n<td style=\"width: 33.3333%; height: 34px; border-style: outset;\"><em>_ReportLanguage<\/em><\/td>\n<td style=\"width: 33.3333%; height: 34px; border-style: outset;\">Skr\u00f3t j\u0119zyka raportu.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>REPOSITORY_NAME<\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_RepositoryName<\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Nazwa bie\u017c\u0105cej bazy danych repozytorium.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>RIGHT_FOOTING<\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_RightFooting<\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Ci\u0105g znak\u00f3w: <em>Comarch ERP Enterprise<\/em>.Je\u015bli t\u0142umaczenie nie jest dost\u0119pne w j\u0119zyku wyj\u015bciowym, u\u017cywany jest g\u0142\u00f3wny j\u0119zyk bazy danych repozytorium.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>RIGHT_HEADING<\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_RightHeading<\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Ci\u0105g znak\u00f3w: <em>Comarch ERP Enterprise<\/em>.Je\u015bli t\u0142umaczenie nie jest dost\u0119pne w j\u0119zyku wyj\u015bciowym, u\u017cywany jest g\u0142\u00f3wny j\u0119zyk bazy danych repozytorium.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>SERVER_NAME <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_ServerName <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Nazwa bie\u017c\u0105cego serwera aplikacji systemu ERP.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>SYSTEM_NAME <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_SystemName <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Nazwa bie\u017c\u0105cego systemu przedsi\u0119biorstwa Comarch ERP Enterprise.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>USER_EMAIL_ADDRESS <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_UserEmailAddress <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Adres e-mail bie\u017c\u0105cego u\u017cytkownika.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>USER_GUID <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_UserGuid <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Identyfikator GUID bie\u017c\u0105cego u\u017cytkownika.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>USER_NAME <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\"><em>_UserName <\/em><\/td>\n<td style=\"width: 33.3333%; border-style: outset;\">Skr\u00f3t nazwy bie\u017c\u0105cego u\u017cytkownika.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h6 id=\"informacje-o-uzytkowniku\" ><span class=\"ez-toc-section\" id=\"Informacje_o_uzytkowniku\"><\/span><a id=\"io2\"><\/a>Informacje o u\u017cytkowniku<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>Poni\u017csze informacje o u\u017cytkowniku s\u0105 dostarczane przez Comarch ERP Enterprise i mog\u0105 by\u0107 wykorzystywane w szablonach dokument\u00f3w i raport\u00f3w:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 807px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Zmienna systemowa<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Pole<\/strong><\/td>\n<td style=\"width: 33.3333%; text-align: center; height: 23px; border-style: outset;\"><strong>Warto\u015b\u0107<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>USER_VALUE1<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\"><em>_Company<\/em><\/td>\n<td style=\"width: 33.3333%; height: 23px; border-style: outset;\">Nazwa organizacji g\u0142\u00f3wnej.<\/td>\n<\/tr>\n<tr style=\"height: 557px;\">\n<td style=\"width: 33.3333%; height: 557px; border-style: outset;\"><em>USER_VALUE2<\/em><\/td>\n<td style=\"width: 33.3333%; height: 557px; border-style: outset;\"><em>_DecimalPrice<\/em><br \/>\n<em>_DecimalAmount<\/em><br \/>\n<em>_DecimalsQuantity<\/em><br \/>\n<em>_DecimalsDuration<\/em><\/td>\n<td style=\"width: 33.3333%; height: 557px; border-style: outset;\">Liczba miejsc dziesi\u0119tnych dla wy\u015bwietlania:<\/p>\n<ul>\n<li>Cen (PRICE),<\/li>\n<li>Kwot (AMOUNT),<\/li>\n<li>Ilo\u015bci (QUANTITY),<\/li>\n<li>Czas\u00f3w (DURATION).<\/li>\n<\/ul>\n<p>Poszczeg\u00f3lne warto\u015bci s\u0105 oddzielone od siebie spacj\u0105. Na przyk\u0142ad warto\u015b\u0107 <em>PRICE 2 AMOUNT 2 QUANTITY 0 DURATION 0<\/em> oznacza, \u017ce ceny i kwoty maj\u0105 by\u0107 wy\u015bwietlane z dwoma miejscami po przecinku, a ilo\u015bci i czasy bez miejsc po przecinku.<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\"><em>USER_VALUE3<\/em><\/td>\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\"><em>\u00a0<\/em><\/td>\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\"><em>USER_VALUE4<\/em><\/td>\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\"><em>\u00a0<\/em><\/td>\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<tr style=\"height: 68px;\">\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\"><em>USER_VALUE5<\/em><\/td>\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\"><em>\u00a0<\/em><\/td>\n<td style=\"width: 33.3333%; height: 68px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Zmienne systemowe <em>USER_VALUE1<\/em> do\u00a0<em>USER_VALUE5<\/em> s\u0105 przeznaczone do przesy\u0142ania informacji biznesowych.<\/p>\n<p>Aktualnie nieu\u017cywane zmienne mo\u017cna wykorzysta\u0107 za pomoc\u0105 metody <em>initReportUserValues()<\/em> klasy <em>com.cisag.app.general.log.ReportExtensionLogicImpl<\/em> w ramach adaptacji. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce przysz\u0142e wykorzystanie w standardzie Comarch ERP Enterprise jest mo\u017cliwe bez wcze\u015bniejszego powiadomienia. Dlatego zaleca si\u0119, aby najpierw u\u017cy\u0107 USER_VALUE5 do ewentualnej adaptacji, a dopiero potem <em>USER_VALUE4<\/em> i <em>USER_VALUE3<\/em>.<\/p>\n<h6 id=\"informacje-wyjsciowe\" ><span class=\"ez-toc-section\" id=\"Informacje_wyjsciowe\"><\/span><a id=\"io3\"><\/a>Informacje wyj\u015bciowe<span class=\"ez-toc-section-end\"><\/span><\/h6>\n<p>Podczas wysy\u0142ania na no\u015bnik wyj\u015bciowy <em>Faks <\/em>mo\u017cna uzyska\u0107 dost\u0119p do informacji z \u017c\u0105dania wyj\u015bciowego w System Output Manager (SOM). Poni\u017csze informacje wyj\u015bciowe s\u0105 dostarczane przez Comarch ERP Enterprise i mog\u0105 by\u0107 wykorzystywane w raportach:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 276px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; text-align: center; height: 23px; border-style: outset;\"><strong>Zmienna systemowa<\/strong><\/td>\n<td style=\"width: 50%; text-align: center; height: 23px; border-style: outset;\"><strong>Warto\u015b\u0107<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_TRANSMITTING_STATION_ID<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Odpowiada polu <em>Identyfikator nadawcy<\/em> w ustawieniach wyj\u015bciowych dla no\u015bnika wyj\u015bciowego <em>Faks<\/em>.Ta zmienna s\u0142u\u017cy do wy\u015bwietlania numeru faksu nadawcy na faksie i na odbieraj\u0105cym urz\u0105dzeniu faksowym. Dzi\u0119ki temu odbiorca mo\u017ce otrzyma\u0107 numer faksu, kt\u00f3ry r\u00f3\u017cni si\u0119 od centralnej us\u0142ugi faksu.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_CONTROL_SEQUENCE<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Odpowiada polu <em>Sekwencja sterowania<\/em> w ustawieniach wyj\u015bcia dla no\u015bnika wyj\u015bciowego <em>Faks<\/em>.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_RECIPIENT_NUMBER<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Odpowiada polu <em>Numer faksu<\/em> w ustawieniach wyj\u015bciowych dla no\u015bnika wyj\u015bciowego <em>Faks<\/em>.W tej zmiennej mo\u017cna zapisa\u0107 numer faksu odbiorcy.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_SCHEDULE_ACTION<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Odpowiada polu <em>Wy\u015blij<\/em> w ustawieniach wyj\u015bciowych dla no\u015bnika wyj\u015bciowego <em>Faks<\/em>.<br \/>\nMo\u017cliwe warto\u015bci to<\/p>\n<ul>\n<li><em>Natychmiast<\/em> (teraz)<\/li>\n<li><em>Nie wcze\u015bniej ni\u017c<\/em> (okre\u015blony czas)<\/li>\n<li><em>W godzinach promocyjnych<\/em> (godziny promocyjne)<\/li>\n<\/ul>\n<p>Ta zmienna mo\u017ce by\u0107 u\u017cywana do okre\u015blenia czasu wysy\u0142ania.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_SCHEDULE_TIME<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Odpowiada polu <em>Czas wysy\u0142ki<\/em> w ustawieniach wyj\u015bcia dla no\u015bnika wyj\u015bciowego <em>Faks<\/em>.Ta zmienna ma znaczenie tylko z warto\u015bci\u0105 <em>Dok\u0142adny czas<\/em> (Nie wcze\u015bniej ni\u017c) w zmiennej systemowej<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_DELIVERY_REPORT_ADDRESS<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">W tym polu przekazywany jest adres email u\u017cytkownika. Ta zmienna mo\u017ce by\u0107 wykorzystywana do automatycznego potwierdzania wysy\u0142ania przez odbiorc\u0119.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_RECIPIENT_NAME<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_SENDER_COMPANY<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_SENDER_DEPARTMENT<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_SENDER_NAME<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\"><em>FAX_BILLING_CODE<\/em><\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Zmienna nie jest aktualnie u\u017cywana.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Informacje wyj\u015bciowe s\u0105 przesy\u0142ane tylko przy ustawieniu wyj\u015bcia <em>Faks<\/em>. Jest to istotne tylko w przypadku korzystania z oddzielnego rozwi\u0105zania faksu. ERP System Output Manager (SOM) nie uwzgl\u0119dnia \u017cadnych zmiennych w dokumencie lub dokumencie raportu, poniewa\u017c informacje te s\u0105 ju\u017c znane w \u017c\u0105daniu danych wyj\u015bciowych.<\/p>\n<p>Je\u015bli wykorzystywana jest us\u0142uga faksu, kt\u00f3ra r\u00f3\u017cni si\u0119 od SOM, nale\u017cy wyprowadzi\u0107 zmienne systemowe wraz z raportem. Aby zapewni\u0107, \u017ce informacje wyj\u015bciowe pozostan\u0105 niewidoczne dla odbiorcy, mo\u017cna je na przyk\u0142ad wydrukowa\u0107 bia\u0142ym kolorem czcionki na bia\u0142ym tle. Zazwyczaj konieczne jest wys\u0142anie tych informacji do drukarki faksu w postaci tekstu (a nie grafiki). Dlatego nale\u017cy u\u017cywa\u0107 czcionki obs\u0142ugiwanej przez drukark\u0119 (faksow\u0105).<\/p>\n<h4 id=\"niezaleznosc-jezykowa-raportow\" ><span class=\"ez-toc-section\" id=\"Niezaleznosc_jezykowa_raportow\"><\/span><a id=\"RNJ1\"><\/a>Niezale\u017cno\u015b\u0107 j\u0119zykowa raport\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Mo\u017cliwy jest wydruk raportu w kilku j\u0119zykach. Z jednej strony mo\u017cna utworzy\u0107 zale\u017cne od j\u0119zyka pliki Crystal Reports dla ka\u017cdego obs\u0142ugiwanego j\u0119zyka wyj\u015bciowego, a nast\u0119pnie zaimportowa\u0107 je do Comarch ERP Enterprise. Z drugiej strony, mo\u017cna r\u00f3wnie\u017c utworzy\u0107 pojedynczy raport niezale\u017cny od j\u0119zyka, kt\u00f3ry mo\u017ce by\u0107 wydrukowany w dowolnym obs\u0142ugiwanym j\u0119zyku. T\u0142umaczenia element\u00f3w tekstowych zale\u017cnych od j\u0119zyka, takich jak etykiety p\u00f3l i tytu\u0142y raport\u00f3w, s\u0105 przechowywane w Comarch ERP Enterprise i udost\u0119pniane raportowi przez parametr, gdy jest on wyprowadzany.<\/p>\n<p>Mo\u017cliwe s\u0105 r\u00f3wnie\u017c kombinacje plik\u00f3w raport\u00f3w zale\u017cnych od j\u0119zyka i niezale\u017cnych od j\u0119zyka w tym samym raporcie. W takim przypadku wszystkie szablony raport\u00f3w musz\u0105 mie\u0107 te same parametry. Oznacza to, \u017ce nale\u017cy r\u00f3wnie\u017c przechowywa\u0107 parametry w szablonach raport\u00f3w zale\u017cnych od j\u0119zyka w celu przeniesienia t\u0142umacze\u0144. W ten spos\u00f3b mo\u017cna na przyk\u0142ad utworzy\u0107 raport, kt\u00f3ry ma inny uk\u0142ad w zale\u017cno\u015bci od j\u0119zyka, ale kt\u00f3rego t\u0142umaczenie mo\u017ce nadal odbywa\u0107 si\u0119 w Comarch ERP Enterprise.<\/p>\n<p>T\u0142umaczenia sta\u0142ych tekstowych s\u0105 przenoszone w taki sam spos\u00f3b jak zmienne systemowe. S\u0105 one kopiowane do zmiennych podczas inicjalizacji w polu formu\u0142y <em>_InitializeTextValues<\/em>. Przyk\u0142adowo, je\u015bli w Comarch ERP Enterprise zapisano sta\u0142\u0105 tekstow\u0105 <em>NLS_COLUMN1<\/em>, to dla nowego tekstu nale\u017cy rozszerzy\u0107 formu\u0142\u0119 w <em>_InitialiseTextValues<\/em>. Dla ka\u017cdego tekstu tworzone jest pole formu\u0142y, kt\u00f3re wy\u015bwietla przet\u0142umaczony tekst. W naszym przyk\u0142adzie jest to pole formu\u0142y <em>NLS_Column1<\/em>.<\/p>\n<p>Pole formu\u0142y <em>_ReportLanguage<\/em> jest dost\u0119pne w szablonie raportu <em>EmptyReport.rpt<\/em>. Za pomoc\u0105 tej formu\u0142y mo\u017cna na przyk\u0142ad wybra\u0107 teksty dokument\u00f3w w raporcie podrz\u0119dnym zgodnie z odpowiednim j\u0119zykiem wyj\u015bciowym.<\/p>\n<h4 id=\"raporty-wielojezyczne\" ><span class=\"ez-toc-section\" id=\"Raporty_wielojezyczne\"><\/span>Raporty wieloj\u0119zyczne<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>W przypadku niekt\u00f3rych dokument\u00f3w raportu, na przyk\u0142ad do u\u017cytku w krajach z kilkoma j\u0119zykami urz\u0119dowymi, mo\u017ce by\u0107 konieczne u\u017cycie r\u00f3\u017cnych j\u0119zyk\u00f3w w raporcie.<\/p>\n<p>Funkcja wirtualna <em>pgm_FieldTranslationVirtualFunction<\/em> s\u0142u\u017cy do wyprowadzania poszczeg\u00f3lnych wieloj\u0119zycznych atrybut\u00f3w \u0142a\u0144cuchowych lub wpis\u00f3w zestawu warto\u015bci w innym j\u0119zyku.<\/p>\n<p>Statyczne teksty w raporcie (sta\u0142e) mo\u017cna wywo\u0142a\u0107 za pomoc\u0105 wirtualnej tabeli <em>pgm_ReportTextTranslationVirtualTable<\/em>. Ta wirtualna tabela powinna by\u0107 u\u017cywana w pordaporcie. Sta\u0142e w \u017c\u0105danym j\u0119zyku mog\u0105 by\u0107 dostarczone do raportu przy u\u017cyciu zmiennej wsp\u00f3\u0142dzielonej w Crystal Reports.<\/p>\n<p>Niekt\u00f3re funkcje wirtualne zosta\u0142y rozszerzone o opcjonalny parametr wej\u015bciowy <em>in_language<\/em>, aby wy\u015bwietli\u0107 zawarto\u015b\u0107 w j\u0119zyku innym ni\u017c j\u0119zyk wyj\u015bciowy raportu.<\/p>\n<h4 id=\"elementy-tekstowe-miedzy-raportami\" ><span class=\"ez-toc-section\" id=\"Elementy_tekstowe_miedzy_raportami\"><\/span><a id=\"etr1\"><\/a>Elementy tekstowe mi\u0119dzy raportami<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Sta\u0142e tekstowe oferuj\u0105 mo\u017cliwo\u015b\u0107 wprowadzania i t\u0142umaczenia niesformatowanych tekst\u00f3w niezale\u017cnie od pliku raportu w Comarch ERP Enterprise. S\u0105 one specyficzne dla raportu i s\u0105 eksportowane i importowane z odpowiednim obiektem biznesowym <em>Raport<\/em> lub przekazywane do obiektu programistycznego <em>Raport<\/em> w formie aktualizacji oprogramowania. S\u0105 one szczeg\u00f3lnie przydatne w przypadku kr\u00f3tkich tekst\u00f3w, takich jak nag\u0142\u00f3wki kolumn, kt\u00f3re wygl\u0105daj\u0105 inaczej w ka\u017cdym raporcie.<\/p>\n<p>W niekt\u00f3rych przypadkach po\u017c\u0105dane jest r\u00f3wnie\u017c przechowywanie gotowego zestawu sformatowanych tekst\u00f3w standardowych, aby mo\u017cna by\u0142o ich u\u017cywa\u0107 w ten sam spos\u00f3b podczas generowania kilku raport\u00f3w. Takie teksty mo\u017cna rejestrowa\u0107 w aplikacji <em>Elementy tekstowe<\/em> i wykorzystywa\u0107 w raportach. Elementy tekstowe s\u0105 niezale\u017cnymi od organizacji danymi w bazie danych OLTP i s\u0105 przechowywane w obiekcie biznesowym <em>com.cisag.app.general.obj.Text<\/em>. Klucz obiektu biznesowego zawiera identyfikuj\u0105cy ci\u0105g znak\u00f3w i identyfikator GUID j\u0119zyka, dla kt\u00f3rego zarejestrowano modu\u0142 tekstowy. W sekcji danych obiekt biznesowy zawiera przet\u0142umaczalny opis (atrybut <em>description<\/em>) i sformatowany tekst HTML (atrybut <em>text<\/em>).<\/p>\n<p>Poniewa\u017c elementy tekstowe istniej\u0105 ca\u0142kowicie niezale\u017cnie od raport\u00f3w, kt\u00f3re ich u\u017cywaj\u0105, nie s\u0105 one przekazywane podczas importowania lub eksportowania raport\u00f3w. Nale\u017cy unika\u0107 u\u017cywania element\u00f3w tekstowych w obiekcie programistycznym <em>Raport<\/em>, poniewa\u017c nie mo\u017cna zagwarantowa\u0107, \u017ce u\u017cywane sta\u0142e tekstowe s\u0105 rejestrowane we wszystkich bazach danych OLTP, na kt\u00f3rych raport jest p\u00f3\u017aniej wykonywany. Brak u\u017cywanych modu\u0142\u00f3w tekstowych oznacza w ka\u017cdym przypadku dost\u0119p do bazy danych.<\/p>\n<p>W\u0142\u0105czenie wymaga nast\u0119puj\u0105cych komponent\u00f3w<\/p>\n<ul>\n<li>Zmienne globalne przechowuj\u0105ce przet\u0142umaczone, sformatowane teksty. Oddzielna zmienna <em>TEXT_nnn<\/em> dla ka\u017cdego tekstu.<\/li>\n<li>Podraport <em>Texts<\/em> na poziomie nag\u0142\u00f3wka raportu, kt\u00f3ry wybiera dane dla wszystkich wymaganych modu\u0142\u00f3w tekstowych za pomoc\u0105 jednego dost\u0119pu. U\u017cywany jest tutaj j\u0119zyk wyj\u015bciowy ze zmiennej systemowej <em>ReportLanguage<\/em>. Za pomoc\u0105 sprz\u0119\u017cenia mi\u0119dzy obiektami biznesowymi <em>com.cisag.app.general.obj.Language<\/em> i <em>com.cisag.appp.general.obj.Text<\/em> mo\u017cna wybra\u0107 zestaw element\u00f3w tekstowych we w\u0142a\u015bciwym j\u0119zyku. Poniewa\u017c podraport jest wstawiany na poziomie nag\u0142\u00f3wka raportu, wykonywane jest tylko jedno zapytanie do bazy danych.<\/li>\n<li>P\u0119tla, w kt\u00f3rej ka\u017cdej zmiennej globalnej <em>TEXT_nnn<\/em> przypisywana jest warto\u015b\u0107 atrybutu <em>Text.text<\/em> dla odpowiedniego wiersza.<\/li>\n<li>Pola tekstowe z interpretacj\u0105 <em>HTML<\/em>, kt\u00f3re wy\u015bwietlaj\u0105 zawarto\u015b\u0107 zmiennych globalnych w sformatowanej formie. Mog\u0105 one by\u0107 u\u017cywane zar\u00f3wno w nag\u0142\u00f3wku, jak i w obszarze szczeg\u00f3\u0142\u00f3w lub stopki.<\/li>\n<\/ul>\n<p>Instrukcja integracji element\u00f3w tekstowych z plikiem raportu sk\u0142ada si\u0119 z nast\u0119puj\u0105cych krok\u00f3w:<\/p>\n<ol>\n<li>Nale\u017cy otworzy\u0107 Crystal Reports.<\/li>\n<li>Nast\u0119pnie nale\u017cy otworzy\u0107 plik raportu, kt\u00f3ry ma zosta\u0107 dostosowany.<\/li>\n<li>Nale\u017cy wybra\u0107 widok <em>Projekt<\/em>.<\/li>\n<li>Kolejnym krokiem jest otworzenie <em>Kreatora raport\u00f3w<\/em> dla nag\u0142\u00f3wka raportu i doda\u0107 kolejny nag\u0142\u00f3wek raportu.<\/li>\n<li>Nast\u0119pnie nale\u017cy wybra\u0107 pozycj\u0119 <em>Wstaw\/Podraport<\/em> w menu i utworzy nowy podraport o nazwie <em>Texts<\/em> za pomoc\u0105 kreatora raport\u00f3w. W tym celu nale\u017cy najpierw utworzy\u0107 po\u0142\u0105czenie ze \u017ar\u00f3d\u0142em danych <em>Semiramis-OLTP<\/em>.\n<ul>\n<li>Pojawi si\u0119 hierarchia istniej\u0105cych \u017ar\u00f3de\u0142 danych.<\/li>\n<\/ul>\n<\/li>\n<li>W katalogu<em> CISAG \/ ENTITY<\/em> nale\u017cy wybra\u0107 dwa obiekty biznesowe <em>app_general_Text<\/em> (element tekstowy) i <em>app_general_Language<\/em> (j\u0119zyk) i doda\u0107 je do wybranych tabel.<\/li>\n<li>Nast\u0119pnie nale\u017cy wybra\u0107 przycisk [<strong>Dalej<\/strong>]. W razie potrzeby sprawdzi\u0107 i poprawi\u0107 powsta\u0142e powi\u0105zania mi\u0119dzy <em>app_general_Text<\/em> i <em>app_general_Language<\/em>. Tabele te musz\u0105 by\u0107 po\u0142\u0105czone za pomoc\u0105 <em>LEFT OUTER JOIN<\/em> przy u\u017cyciu j\u0119zyka:<br \/>\n<em>app_general_Text.language_<\/em> &#8211;&gt; <em>app_general_Language.guid_<br \/>\n<\/em>Po wprowadzeniu relacji raport cz\u0105stkowy jest gotowy.<\/li>\n<li>Nale\u017cy przenie\u015b\u0107 raport cz\u0105stkowy do wcze\u015bniej dodanego dodatkowego nag\u0142\u00f3wka raportu.<\/li>\n<li>Kolejnym krokiem jest sformatowanie raportu cz\u0105stkowego. Aby to zrobi\u0107, nale\u017cy umie\u015bci\u0107 kursor na raporcie cz\u0105stkowym w eksploratorze raport\u00f3w i wybiera\u0107 pozycj\u0119 <em>Formatuj raport cz\u0105stkowy<\/em> w menu kontekstowym. Nast\u0119pnie nale\u017cy przej\u015b\u0107 do zak\u0142adki <em>Ramka<\/em> i wybiera\u0107 typ wiersza <em>Brak<\/em>. Nast\u0119pnie nale\u017cy przej\u015b\u0107 do zak\u0142adki <em>Podraport<\/em> i okre\u015bli\u0107, \u017ce puste podraporty maj\u0105 by\u0107 pomijane.<\/li>\n<\/ol>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Sam raport cz\u0105stkowy nie mo\u017ce by\u0107 pomijany ani formatowany jako ukryty, w przeciwnym razie nie zostanie wykonany.<\/div><\/section>\n<ol start=\"10\">\n<li>Nale\u017cy przypisa\u0107 do raportu cz\u0105stkowego j\u0119zyk, w kt\u00f3rym ma by\u0107 wy\u015bwietlany raport g\u0142\u00f3wny. W tym celu nale\u017cy ustawi\u0107 wska\u017anik myszy na raporcie cz\u0105stkowym i wybra\u0107 pozycj\u0119<em> Zmie\u0144 \u0142\u0105cza raportu cz\u0105stkowego<\/em> w menu kontekstowym. Nast\u0119pnie wybra\u0107 pole formu\u0142y <em>_ReportLanguage<\/em> (w niekt\u00f3rych raportach pole nosi nazw\u0119 <em>ReportLanguage<\/em>). Przypisa\u0107 atrybut <em>soCode<\/em> tabeli <em>app_general_Language<\/em> z raportu podrz\u0119dnego do pola. Potwierd\u017a wyb\u00f3r przyciskiem [<strong>OK<\/strong>]. Wynikiem jest pole parametru i formu\u0142a wyboru w raporcie cz\u0105stkowym. Formu\u0142a wyboru b\u0119dzie wygl\u0105da\u0107 nast\u0119puj\u0105co:<br \/>\n<em>{app_general_Language.isoCode} = {?Pm-@ReportLanguage}<\/em>.<\/li>\n<li>Nast\u0119pnie nale\u017cy przej\u015b\u0107 do raportu cz\u015b\u0105stkowego i dostosowa\u0107 go. Mo\u017ce on mie\u0107 tylko jeden nag\u0142\u00f3wek raportu i jedn\u0105 stopk\u0119 raportu. Obszar szczeg\u00f3\u0142\u00f3w nie mo\u017ce by\u0107 podzielony. Pola wst\u0119pnie przypisane przez kreatora musz\u0105 zosta\u0107 usuni\u0119te. Wszystkie obszary raportu cz\u0105stkowego z wyj\u0105tkiem szczeg\u00f3\u0142\u00f3w musz\u0105 by\u0107 wy\u0142\u0105czone. Obszary te mo\u017cna pomin\u0105\u0107, wybieraj\u0105c pozycj\u0119 <em>Pomi\u0144<\/em> w menu kontekstowym. Obszar szczeg\u00f3\u0142\u00f3w nie mo\u017ce by\u0107 ani wy\u0142\u0105czony, ani ukryty.<\/li>\n<li>Nale\u017cy ograniczy\u0107 liczb\u0119 element\u00f3w tekstowych, kt\u00f3re maj\u0105 by\u0107 u\u017cywane, okre\u015blaj\u0105c odpowiednie klucze biznesowe za pomoc\u0105 atrybutu <em>app_general_Text.code<\/em> przy u\u017cyciu kreatora wyboru lub formu\u0142y wyboru zestawu danych.<\/li>\n<\/ol>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\"><em>{app_general_Language.isoCode} = {?Pm-@ReportLanguage} i<\/em><\/p>\n<p><em>{app_general_Text.code} = &#8222;100&#8221; lub {app_general_Text.code} = &#8222;200&#8221; )<\/em><\/div><\/section>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\"><em>{app_general_Language.isoCode} = {?Pm-@ReportLanguage} i<\/em><\/p>\n<p><em>{app_general_Text.code} w [&#8222;100&#8221;, &#8222;200&#8221;]<\/em><\/div><\/section>\n<ol start=\"13\">\n<li>Nale\u017cy wprowadzi\u0107 pole formu\u0142y o nazwie <em>ResolveTexts<\/em> w raporcie cz\u0105stkowym, aby rozwi\u0105za\u0107 warto\u015bci w zale\u017cno\u015bci od elementu tekstowego. Formu\u0142a musi zawiera\u0107 zmienne globalne do przesy\u0142ania tekst\u00f3w do raportu g\u0142\u00f3wnego oraz formu\u0142\u0119 wyboru do rozwi\u0105zywania w zale\u017cno\u015bci od elementu tekstowego. Sta\u0142e do identyfikacji element\u00f3w tekstowych, kt\u00f3re zosta\u0142y ju\u017c u\u017cyte w formule selekcji, s\u0105 r\u00f3wnie\u017c u\u017cywane ponownie w tym przypadku:<\/li>\n<\/ol>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\"><em>shared stringVar strText100;<\/em><\/p>\n<p><em>shared stringVar strText200;<\/em><\/p>\n<p><em>local stringVar strTextCode;<\/em><\/p>\n<p><em>strTextCode:={app_general_Text.code};<\/em><\/p>\n<p><em>if (strTextCode=&#8221;100&#8243;) then<\/em><\/p>\n<p><em>(strText100:={app_general_Text.text};)<\/em><\/p>\n<p><em>else if (strTextCode=&#8221;200&#8243;) then<\/em><\/p>\n<p><em>(strText200:={app_general_Text.text};)<\/em><\/div><\/section>\n<ol start=\"14\">\n<li>Nast\u0119pnie nale\u017cy przenie\u015b\u0107 pole formu\u0142y <em>ResolveTexts<\/em> do obszaru szczeg\u00f3\u0142\u00f3w podraportu.<br \/>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\"><span style=\"font-size: revert; color: initial;\">Je\u015bli pole formu\u0142y zostanie umieszczone w nag\u0142\u00f3wku raportu, tylko jeden z tekst\u00f3w zostanie rozwi\u0105zany.<\/div><\/section><\/span><\/li>\n<li>Nale\u017cy sformatowa\u0107 pole formu\u0142y jako <em style=\"font-size: revert; color: initial;\">St<\/em><em style=\"font-size: revert; color: initial;\">\u0142umiony<\/em><span style=\"font-size: revert; color: initial;\">, wywo\u0142uj\u0105c<\/span><em style=\"font-size: revert; color: initial;\"> Edytor format\u00f3w<\/em><span style=\"font-size: revert; color: initial;\"> w polu i aktywuj\u0105c wska\u017anik <\/span><em style=\"font-size: revert; color: initial;\">T\u0142umienie<\/em><span style=\"font-size: revert; color: initial;\"> w zak\u0142adce <\/span><em style=\"font-size: revert; color: initial;\">Og\u00f3lne<\/em><span style=\"font-size: revert; color: initial;\">.<\/span><\/li>\n<li>Nale\u017cy przej\u015b\u0107 do raportu g\u0142\u00f3wnego.<\/li>\n<li>Nast\u0119pnie nale\u017cy wprowadzi\u0107 pola formu\u0142y w raporcie g\u0142\u00f3wnym, kt\u00f3re b\u0119d\u0105 u\u017cywane do wy\u015bwietlania rozszerzonych element\u00f3w tekstowych w raporcie cz\u0105stkowym.<\/li>\n<\/ol>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Dla TEXT_100:<\/p>\n<p>shared stringVar strText100;<\/p>\n<p>strText100;<\/div><\/section>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Dla TEXT_200<\/p>\n<p>shared stringVar strText200;<\/p>\n<p>strText200;<\/div><\/section>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Nale\u017cy pami\u0119ta\u0107, \u017ce deklaracje globalnych zmiennych <em>Wsp\u00f3\u0142dzielonych<\/em> w tej formule musz\u0105 odpowiada\u0107 definicjom zmiennych we wcze\u015bniej wymienionych miejscach.<\/div><\/section>\n<ol start=\"18\">\n<li>Nale\u017cy przenie\u015b\u0107 pola formu\u0142y na \u017c\u0105dane pozycje w raporcie.<\/li>\n<li>Nast\u0119pnie sformatowa\u0107 pola formu\u0142y. W tym celu nale\u017cy dostosowa\u0107 rozmiar p\u00f3l i ich pozycje oraz wprowadzi\u0107 <em>Tekst HTML<\/em> jako interpretacj\u0119 tekstu w zak\u0142adce <em>Akapit<\/em>.<\/li>\n<\/ol>\n<h4 id=\"podraport-formatowanie\" ><span class=\"ez-toc-section\" id=\"Podraport_Formatowanie\"><\/span><a id=\"for3\"><\/a>Podraport <em>Formatowanie<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Istnieje funkcja wirtualna o nazwie <em>pgm_Formats<\/em> s\u0142u\u017c\u0105ca do wy\u015bwietlania warto\u015bci czasu i liczb zgodnie z ustawieniami u\u017cytkownika. Ta funkcja wirtualna ma nast\u0119puj\u0105ce atrybuty:<\/p>\n<table style=\"border-collapse: collapse; width: 100%; height: 253px;\">\n<tbody>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; text-align: center; height: 23px; border-style: outset;\"><strong>Atrybut<\/strong><\/td>\n<td style=\"width: 50%; text-align: center; height: 23px; border-style: outset;\"><strong>Znaczenie<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">in_userName<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Nazwa u\u017cytkownika<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">in_userGuid_<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Identyfikator GUID u\u017cytkownika<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">numberDecimalSeparator<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Separator dziesi\u0119tny<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">numberGroupingSeparator<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Separator grupowy<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">currencyDecimalSeparator<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Separator dziesi\u0119tny dla walut<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">currencyGroupingSeparator<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Separator grupowy dla walut<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">currentDate<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Bie\u017c\u0105ca data<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">dateSeparator<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Separator daty<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">dateOrder<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Format daty<\/td>\n<\/tr>\n<tr style=\"height: 23px;\">\n<td style=\"width: 50%; height: 23px; border-style: outset;\">timeSeparator<\/td>\n<td style=\"width: 50%; height: 23px; border-style: outset;\">Separator czasu<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">Tabela wirtualna <em>pgm_FORMAT<\/em> ma status <em>Odrzucona<\/em> i zosta\u0142a zast\u0105piona tabel\u0105 wirtualn\u0105 <em>pgm_Formats<\/em>.<\/div><\/section>\n<h4 id=\"formatowanie-liczb\" ><span class=\"ez-toc-section\" id=\"Formatowanie_liczb\"><\/span><a id=\"for1\"><\/a>Formatowanie liczb<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>W Comarch ERP Enterprise informacje dotycz\u0105ce formatowania liczb ustawiane s\u0105 w aplikacji <em>Konfiguracja<\/em>. Wszystkie raporty tworzone dla Comarch ERP Enterprise powinny przyjmowa\u0107 to formatowanie, aby zmiana tych ustawie\u0144 obowi\u0105zywa\u0142a r\u00f3wnie\u017c w raportach bez konieczno\u015bci ich dostosowywania. Liczby s\u0105 formatowane za pomoc\u0105 funkcji Crystal Reports <em>cStr<\/em> (<em>toText<\/em>). Wymaga to warto\u015bci z bazy danych, liczby miejsc dziesi\u0119tnych, separatora tysi\u0119cy i separatora dziesi\u0119tnego. Formu\u0142a wygl\u0105da\u0142aby mniej wi\u0119cej tak, przy czym <em>table.column<\/em> nale\u017cy zast\u0105pi\u0107 konkretn\u0105 kolumn\u0105 tabeli:<\/p>\n<p><em>shared stringVar strDecimalSeparator;<\/em><\/p>\n<p><em>shared stringVar strGroupingSeparator;<\/em><\/p>\n<p><em>cStr({Table.column}, {@_DecimalsQuantity}, strGroupingSeparator, strDecimalSeparator);<\/em><\/p>\n<p>Pole formu\u0142y <em>_DecimalsQuantity<\/em> s\u0142u\u017cy do formatowania ilo\u015bci. W przypadku warto\u015bci, cen lub czas\u00f3w nale\u017cy u\u017cy\u0107 odpowiednich p\u00f3l formu\u0142y <em>_DecimalsAmount<\/em>, <em>_DecimalsDuration<\/em> lub <em>_DecimalsPrice<\/em>.<\/p>\n<section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\">W przypadku formatowania liczb w zale\u017cno\u015bci od ustawie\u0144 w Comarch ERP Enterprise, nale\u017cy ustawi\u0107 wyr\u00f3wnanie poziome pola na <em>W prawo<\/em>, aby liczby by\u0142y wy\u015bwietlane z wyr\u00f3wnaniem do prawej.<\/p>\n<h4 id=\"formatowanie-czasu-i-daty\" ><span class=\"ez-toc-section\" id=\"Formatowanie_czasu_i_daty\"><\/span><a id=\"for2\"><\/a>Formatowanie czasu i daty<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Kolumny typu <em>CisAttributeDate<\/em> i <em>CisObjectDate<\/em> s\u0105 zawsze formatowane zgodnie ze stref\u0105 czasow\u0105 w bazie danych. Podobnie jak w Comarch ERP Enterprise, je\u015bli strefa czasowa r\u00f3\u017cni si\u0119 od strefy czasowej \u017ar\u00f3d\u0142a danych, nale\u017cy wy\u015bwietli\u0107 nazw\u0119 strefy czasowej. Strefa czasowa jest wyprowadzana przez sterownik ODBC systemu ERP w wirtualnej kolumnie, kt\u00f3ra ko\u0144czy si\u0119 na <em>_timezone<\/em> i jest poprzedzona nazw\u0105 atrybutu. Atrybut ten musi by\u0107 wyprowadzany w osobnym polu. Je\u015bli strefa czasowa nie r\u00f3\u017cni si\u0119, kolumna ta jest pusta.<\/p>\n<p>Pola z godzin\u0105 i dat\u0105 musz\u0105 by\u0107 sformatowane r\u0119cznie. Wymienione zmienne s\u0105 wype\u0142niane w raporcie cz\u0105stkowym <em>Formatowanie<\/em>. Formatowanie nale\u017cy przeprowadzi\u0107 indywidualnie dla ka\u017cdego pola. Ustawienia w oknie dialogowym Crystal Reports opisano poni\u017cej.<\/p>\n<h5 id=\"edytor-formatu-godzina-i-data\" ><span class=\"ez-toc-section\" id=\"Edytor_formatu_Godzina_i_data\"><\/span>Edytor formatu <em>Godzina i data<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>W zak\u0142adce <em>Data<\/em> formu\u0142y mog\u0105 by\u0107 przechowywane w r\u00f3\u017cnych miejscach w celu wy\u015bwietlania danych zgodnie z ustawieniami u\u017cytkownika.<\/p>\n<ul>\n<li>Poni\u017csza formu\u0142a jest dost\u0119pna dla obszaru <em>Sekwencja<\/em>:<br \/>\n<em style=\"font-size: revert; color: initial;\">shared numberVar numDateOrder;<br \/>\n<\/em><em style=\"font-size: revert; color: initial;\">numDateOrder;<\/em><\/li>\n<li>Nast\u0119puj\u0105ce formu\u0142y dla separator\u00f3w dat s\u0105 dost\u0119pne dla obszaru <em>Separator<\/em>:<br \/>\n<em>shared stringVar strDateSeparator;<\/em><br \/>\n<em>strDateSeparator;<\/em><\/li>\n<\/ul>\n<p>W zak\u0142adce <em>Czas<\/em> formu\u0142y mog\u0105 by\u0107 przechowywane w r\u00f3\u017cnych miejscach w celu wy\u015bwietlania czas\u00f3w zgodnie z ustawieniami u\u017cytkownika:<\/p>\n<ul>\n<li>Poni\u017csza formu\u0142a dla separatora czasu jest dostarczana dla dolnego obszaru w ka\u017cdym przypadku:<br \/>\n<em>shared stringVar strTimeSeparator;<\/em><br \/>\n<em>strTimeSeparator;<\/em><\/li>\n<\/ul>\n<h3 id=\"uwagi\" ><span class=\"ez-toc-section\" id=\"Uwagi\"><\/span>Uwagi<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4 id=\"korzystanie-z-raportow-czastkowych\" ><span class=\"ez-toc-section\" id=\"Korzystanie_z_raportow_czastkowych\"><\/span>Korzystanie z raport\u00f3w cz\u0105stkowych<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><section class=\"document-alert-box warning\"><div class=\"document-alert-title\">Uwaga<\/div><div class=\"document-alert-content\"><\/div><\/section>Je\u015bli to mo\u017cliwe, nale\u017cy unika\u0107 raport\u00f3w cz\u0105stkowych, poniewa\u017c mog\u0105 one prowadzi\u0107 do znacznie d\u0142u\u017cszych czas\u00f3w wydruku.<\/div><\/section>\n<p>Z definicji raport podrz\u0119dny korzysta z tego samego symbolicznego \u017ar\u00f3d\u0142a danych co raport g\u0142\u00f3wny. Mened\u017cer danych wyj\u015bciowych systemu ERP (SOM) automatycznie zast\u0119puje ka\u017cde \u017ar\u00f3d\u0142o danych, kt\u00f3re r\u00f3\u017cni si\u0119 od raportu g\u0142\u00f3wnego, \u017ar\u00f3d\u0142em danych raportu g\u0142\u00f3wnego.<\/p>\n<p>Aby pomy\u015blnie zaimportowa\u0107 szablon raportu do Comarch ERP Enterprise, wszystkie raporty podrz\u0119dne musz\u0105 zosta\u0107 zapisane razem z raportem g\u0142\u00f3wnym. Opcja oferowana przez Crystal Reports umo\u017cliwiaj\u0105ca zapisanie raportu cz\u0105stkowego jako osobnego pliku Crystal Reports nie jest obs\u0142ugiwana przez Comarch ERP Enterprise. Pola parametr\u00f3w raportu cz\u0105stkowego musz\u0105 by\u0107 powi\u0105zane z polami raportu g\u0142\u00f3wnego.<\/p>\n<p>W przypadku zdefiniowania parametr\u00f3w dla raportu cz\u0105stkowego, kt\u00f3rych warto\u015bci nie s\u0105 pobierane z raportu g\u0142\u00f3wnego, pola wej\u015bciowe dla tych parametr\u00f3w pojawiaj\u0105 si\u0119 w aplikacji <em>Raport: Dokumenty raport\u00f3w<\/em>.<\/p>\n<p>Nale\u017cy pami\u0119ta\u0107, \u017ce raport cz\u0105stkowy nie mo\u017ce automatycznie uzyska\u0107 dost\u0119pu do warto\u015bci parametr\u00f3w raportu. Je\u015bli ma zosta\u0107 wprowadzone t\u0142umaczenie przechowywane w Comarch ERP Enterprise w raporcie cz\u0105stkowym, mo\u017cna na przyk\u0142ad wyprowadzi\u0107 warto\u015b\u0107 odpowiednich sta\u0142ych tekstowych w niewidocznym polu w raporcie g\u0142\u00f3wnym przed wywo\u0142aniem raportu cz\u0105stkowego. W raporcie cz\u0105stkowym tworzona jest nowa formu\u0142a, kt\u00f3ra wy\u015bwietla warto\u015b\u0107 zmiennej:<\/p>\n<p><em>shared stringVar strDeleted;<\/em><\/p>\n<h4 id=\"rozwiazywanie-problemow-i-ocena\" ><span class=\"ez-toc-section\" id=\"Rozwiazywanie_problemow_i_ocena\"><\/span>Rozwi\u0105zywanie problem\u00f3w i ocena<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<h5 id=\"monitory-wydajnosci\" ><span class=\"ez-toc-section\" id=\"Monitory_wydajnosci\"><\/span>Monitory wydajno\u015bci<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Przed wydaniem raportu do u\u017cytku w systemie produkcyjnym nale\u017cy sprawdzi\u0107 dost\u0119py do bazy danych spowodowane przez raport. Na przyk\u0142ad po\u0142\u0105czenie dw\u00f3ch tabel za pomoc\u0105 nieindeksowanego atrybutu mo\u017ce spowodowa\u0107 niepotrzebne obci\u0105\u017cenie serwera przetwarzania. W niekorzystnych przypadkach mo\u017ce to nawet znacznie pogorszy\u0107 czasy odpowiedzi dla innych u\u017cytkownik\u00f3w w tym samym systemie.<\/p>\n<p>W Comarch ERP Enterprise dost\u0119pna jest aplikacja <em>Monitory wydajno\u015bci<\/em>. Za pomoc\u0105 tej aplikacji mo\u017cna mierzy\u0107 dost\u0119py ODBC i dost\u0119py do serwera ODBC dla konkretnego raportu. Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w artykule <a href=\"https:\/\/pomoc.comarch.pl\/cee\/index.php\/documentation\/monitory-wydajnosci\/\"><em>Monitory wydajno\u015bci<\/em><\/a>.<\/p>\n<h5 id=\"zrodla-danych-odbc\" ><span class=\"ez-toc-section\" id=\"Zrodla_danych_ODBC\"><\/span>\u0179r\u00f3d\u0142a danych ODBC<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Podczas wprowadzania \u017ar\u00f3d\u0142a danych (DSN) mo\u017cna kontrolowa\u0107 wy\u015bwietlanie dodatkowych informacji na konsoli w Comarch ERP Enterprise, okre\u015blaj\u0105c poziom dziennika. Specyfikacja jest dodawana do adresu URL jako parametr oddzielony znakiem ampersand.<\/p>\n<section class=\"document-alert-box example\"><div class=\"document-alert-title\">Przyk\u0142ad<\/div><div class=\"document-alert-content\">Poziomy logowania 3 i 4 s\u0105 istotne dla rozwi\u0105zywania problem\u00f3w. Poziom logowania 3 wyprowadza na konsol\u0119 nazwy wywo\u0142anych metod i nazwy przekazanych p\u00f3l. Poziom rejestrowania 4 wy\u015bwietla dalsze informacje.<\/div><\/section>\n<p>Wi\u0119cej informacji mo\u017cna znale\u017a\u0107 w dokumentacji <em>\u0179r\u00f3d\u0142a danych ODBC<\/em>.<\/p>\n<h4 id=\"sprawdzanie-wydajnosci-raportow\" ><span class=\"ez-toc-section\" id=\"Sprawdzanie_wydajnosci_raportow\"><\/span>Sprawdzanie wydajno\u015bci raport\u00f3w<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Poni\u017csze uwagi maj\u0105 na celu optymalizacj\u0119 wydajno\u015bci raport\u00f3w.<\/p>\n<h5 id=\"unikanie-laczenia-right-outer-join\" ><span class=\"ez-toc-section\" id=\"Unikanie_laczenia_RIGHT_OUTER_JOIN\"><\/span>Unikanie \u0142\u0105czenia <em>RIGHT OUTER JOIN<\/em><span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Podczas \u0142\u0105czenia tabel nie nale\u017cy u\u017cywa\u0107 \u0142\u0105czenia typu <em>right inclusion<\/em> (<em>RIGHT OUTER JOIN<\/em>), poniewa\u017c mo\u017ce to mie\u0107 negatywny wp\u0142yw na czas wymagany dla zapytania SQL.<\/p>\n<p>W dokumentach zazwyczaj istnieje tabela g\u0142\u00f3wna (jednostka biznesowa reprezentuj\u0105ca dokument). Ta g\u0142\u00f3wna tabela jest ograniczona do dokumentu, kt\u00f3ry ma zosta\u0107 wyprowadzony. Ponadto istnieje zwykle wiele innych tabel (tabele przegl\u0105dowe), kt\u00f3re maj\u0105 by\u0107 po\u0142\u0105czone za pomoc\u0105 <em>INNER JOIN<\/em> lub <em>LEFT OUTER JOIN<\/em>.<\/p>\n<p><em>RIGHT OUTER JOIN<\/em> zapewni\u0142oby dane, dla kt\u00f3rych istniej\u0105 pasuj\u0105ce rekordy danych zar\u00f3wno w tabeli g\u0142\u00f3wnej, jak i tabeli po\u0142\u0105czonej, a tak\u017ce te, dla kt\u00f3rych istniej\u0105 tylko pasuj\u0105ce rekordy danych w tabeli po\u0142\u0105czonej. Jednak te ostatnie s\u0105 wykluczone przez ograniczenie do dokumentu, kt\u00f3ry ma by\u0107 wyprowadzony, tak \u017ce zestaw wynik\u00f3w odpowiada temu, kt\u00f3ry uzyskuje si\u0119 przy u\u017cyciu <em>INNER JOIN<\/em>.<\/p>\n<p>U\u017cycie <em>INNER JOIN<\/em> uniemo\u017cliwia efektywne wykonanie zapytania SQL podczas wyprowadzania dokument\u00f3w dokument\u00f3w i nale\u017cy go pilnie unika\u0107 ze wzgl\u0119du na brak wp\u0142ywu na zestaw wynik\u00f3w w wy\u017cej wymienionej konstelacji.<\/p>\n<p>W Crystal Reports powi\u0105zania s\u0105 modelowane <em>wizualnie<\/em> za pomoc\u0105 kreatora bazy danych. Linie \u0142\u0105cz\u0105ce tabele maj\u0105 grot strza\u0142ki dla typ\u00f3w <em>Left inclusion<\/em> i <em>Right inclusion<\/em>. W przypadku obu typ\u00f3w wskazuje on w tym samym kierunku od tabeli g\u0142\u00f3wnej do tabeli odno\u015bnik\u00f3w i dlatego mo\u017ce zosta\u0107 b\u0142\u0119dnie zinterpretowany przez u\u017cytkownika. Dlatego nale\u017cy sprawdzi\u0107 zapytanie SQL, kt\u00f3re ma zosta\u0107 wykonane bezpo\u015brednio za pomoc\u0105 menu <em>Database\/Display SQL query&#8230;<\/em>.<\/p>\n<p>Zapytanie:<\/p>\n<p><em>SELECT a:Number, v:Name FROM Order a RIGHT OUTER JOIN Substitute v ON v:GUID = a:Substitute WHERE a:Number = &#8222;1000&#8221; (FALSE!)<\/em><\/p>\n<p>zwraca zam\u00f3wienie z numerem <em>1000<\/em>, je\u015bli jest do niego przypisany zamiennik. To zapytanie musi zosta\u0107 zmienione bez strat tak, aby u\u017cywane by\u0142o wewn\u0119trzne \u0142\u0105cze, poniewa\u017c ograniczenie numeru zam\u00f3wienia zapobiega pojawianiu si\u0119 w produkcie krzy\u017cowym zamiennik\u00f3w, kt\u00f3re nie s\u0105 przypisane do zam\u00f3wienia:<\/p>\n<p><em>SELECT a:Number, v:Name FROM Order a INNER JOIN Substitute v ON v:GUID = a:Substitute WHERE a:Number = &#8222;1000&#8221; (CORRECT)<\/em><\/p>\n<h5 id=\"unikanie-raportow-czastkowych\" ><span class=\"ez-toc-section\" id=\"Unikanie_raportow_czastkowych\"><\/span>Unikanie raport\u00f3w cz\u0105stkowych<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>W miar\u0119 mo\u017cliwo\u015bci nale\u017cy unika\u0107 podraport\u00f3w lub wywo\u0142a\u0144 podraport\u00f3w, poniewa\u017c mog\u0105 one prowadzi\u0107 do znacznego wyd\u0142u\u017cenia czasu wydruku. Ka\u017cde wywo\u0142anie raportu podrz\u0119dnego w dokumencie prowadzi do oddzielnego zapytania SQL za po\u015brednictwem sterownika ODBC systemu ERP z odpowiednim czasem op\u00f3\u017anienia dla po\u0142\u0105czenia mi\u0119dzy Crystal Reports i Comarch ERP Enterprise, a tak\u017ce po\u0142\u0105czenia mi\u0119dzy Comarch ERP Enterprise i baz\u0105 danych.<\/p>\n<h5 id=\"unikanie-widoku-oql\" ><span class=\"ez-toc-section\" id=\"Unikanie_widoku_OQL\"><\/span>Unikanie widoku OQL<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>Nie nale\u017cy u\u017cywa\u0107 widok\u00f3w OQL w dokumentach w celu zmniejszenia liczby kolumn.<\/p>\n<h5 id=\"unikanie-widoku-distinct\" ><span class=\"ez-toc-section\" id=\"Unikanie_widoku_DISTINCT\"><\/span>Unikanie widoku DISTINCT<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p>W zapytaniach OQL i widokach OQL nale\u017cy unika\u0107 s\u0142owa kluczowego <em>DISTINCT<\/em>, je\u015bli to mo\u017cliwe. S\u0142owo kluczowe <em>DISTINCT<\/em> oznacza, \u017ce identyczne warto\u015bci, kt\u00f3re wyst\u0119puj\u0105 kilka razy w tabeli podczas wybierania atrybut\u00f3w, s\u0105 wy\u015bwietlane tylko raz na li\u015bcie wynik\u00f3w. <em>DISTINCT<\/em> cz\u0119sto mo\u017cna pomin\u0105\u0107, poniewa\u017c w zestawie wynik\u00f3w nie mog\u0105 wyst\u0105pi\u0107 zduplikowane wpisy ze wzgl\u0119du na zawarte tabele i ich wzajemne relacje.<\/p>\n<p>S\u0142owo kluczowe <em>DISTINCT<\/em> jest niepotrzebne na przyk\u0142ad w poni\u017cszym poleceniu, poniewa\u017c zestaw wynik\u00f3w zawiera klucz podstawowy <em>a:GUID<\/em> tabeli <em>Order<\/em>, a to ju\u017c wyklucza zduplikowane wpisy:<\/p>\n<p><em>SELECT DISTINCT a:GUID, a:client FROM order a (FALSE!)<\/em><\/p>\n<h5 id=\"unikanie-full-table-scan\" ><span class=\"ez-toc-section\" id=\"Unikanie_FULL-TABLE-SCAN\"><\/span>Unikanie FULL-TABLE-SCAN<span class=\"ez-toc-section-end\"><\/span><\/h5>\n<p><span style=\"background-color: #ccffcc;\">Przeszukiwanie<\/span> ca\u0142ej tabeli w bazie danych jest znane jako <em>FULL-TABLE-SCAN<\/em>. <em>FULL-TABLE-SCAN<\/em> jest zawsze wyzwalany, gdy tabele s\u0105 dost\u0119pne bez uwzgl\u0119dnienia ich indeks\u00f3w. W przypadku du\u017cych tabel prowadzi to do niezwykle d\u0142ugich czas\u00f3w wykonywania zapyta\u0144.<\/p>\n<p><em>FULL-TABLE-SCAN<\/em> s\u0105 szczeg\u00f3lnie problematyczne, poniewa\u017c cz\u0119sto pozostaj\u0105 niezauwa\u017cone przy niewielkich ilo\u015bciach danych, ale p\u00f3\u017aniej prowadz\u0105 do liniowo rosn\u0105cych czas\u00f3w wykonania w systemie produkcyjnym wraz ze wzrostem ilo\u015bci danych.<\/p>\n<p>Aby unikn\u0105\u0107 <em>FULL-TABLE-SCAN<\/em>, plan wykonania systemu zarz\u0105dzania baz\u0105 danych (DBMS) powinien by\u0107 analizowany pod k\u0105tem bardziej z\u0142o\u017conych zapyta\u0144. W\u00f3wczas mo\u017ce by\u0107 konieczna zmiana zapytania tak, aby wykorzystywane by\u0142y indeksy ju\u017c dost\u0119pne w standardzie. Je\u015bli nie istniej\u0105 odpowiednie indeksy dla konkretnego zapytania, mo\u017cna r\u00f3wnie\u017c utworzy\u0107 w\u0142asne indeksy. Mo\u017cna nimi wygodnie zarz\u0105dza\u0107 za pomoc\u0105 aplikacji <em>Indywidualne indeksy<\/em>.<\/p>\n<h3 id=\"znane-ograniczenia\" ><span class=\"ez-toc-section\" id=\"Znane_ograniczenia\"><\/span>Znane ograniczenia<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4 id=\"maksymalna-liczba-sekcji\" ><span class=\"ez-toc-section\" id=\"Maksymalna_liczba_sekcji\"><\/span>Maksymalna liczba sekcji<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Mo\u017cna zdefiniowa\u0107 tylko do 40 sekcji na typ sekcji (nag\u0142\u00f3wek raportu, szczeg\u00f3\u0142y itp.), w przeciwnym razie mog\u0105 wyst\u0105pi\u0107 b\u0142\u0119dy podczas wysy\u0142ania za po\u015brednictwem Mened\u017cera danych wyj\u015bciowych systemu ERP (SOM).<\/p>\n<h4 id=\"zduplikowane-wiersze-podczas-korzystania-z-totalpagecount\" ><span class=\"ez-toc-section\" id=\"Zduplikowane_wiersze_podczas_korzystania_z_TotalPageCount\"><\/span>Zduplikowane wiersze podczas korzystania z <em>TotalPageCount<\/em><span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>Je\u015bli pole <em>TotalPageCount<\/em> jest u\u017cywane w formule <em>String<\/em>, w z\u0142o\u017conych raportach mog\u0105 pojawi\u0107 si\u0119 zduplikowane wiersze.<\/p>\n<p>Je\u015bli jednak pole jest u\u017cywane jako osobne pole, b\u0142\u0105d ten zwykle ju\u017c nie wyst\u0119puje.<\/p>\n","protected":false},"author":28,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"footnotes":""},"class_list":["post-10934","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-tworzenie-raportow"],"_links":{"self":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/10934","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb"}],"about":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/comments?post=10934"}],"version-history":[{"count":79,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/10934\/revisions"}],"predecessor-version":[{"id":29647,"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/ht_kb\/10934\/revisions\/29647"}],"wp:attachment":[{"href":"https:\/\/pomoc.comarch.pl\/cee\/index.php\/wp-json\/wp\/v2\/media?parent=10934"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}