Sposób użycia modułu

Sposób użycia:

  1. Dla jPALIO w wersji niższej niż 7.4 należy utworzyć tabele dla raportów w wybranym schemacie bazy danych za pomocą skryptów zawartych w dalszej części opisu. Dla jPALIO 7.4 i nowszych tabele zostaną utworzone automatycznie.

    Po utworzeniu tabel należy wykonać następujący zestaw insertów:

    insert into r_order_states ( id, name ) values ('O', 'Zamówiony'); 
    insert into r_order_states ( id, name ) values ('C', 'Anulowany'); 
    insert into r_order_states ( id, name ) values ('G', 'W trakcie generacji'); 
    insert into r_order_states ( id, name ) values ('R', 'Wykonany'); 
    insert into r_order_states ( id, name ) values ('L', 'Zablokowany'); 
    
    ---------------------------------------------------------------------------------------------------------------
    
    insert into r_type_categories ( id, name ) values ('default', 'Grupa domyślna'); 
    
    ---------------------------------------------------------------------------------------------------------------
    
    insert into r_types ( id, active, default_file_name_timestamp, 
      can_immediate_execute, defult_generation_priority, param_form_init_object,
      param_form_display_object, param_form_check_object, param_form_save_object,
      generation_object, category_id, name,
      default_file_name, default_mime_type, description, 
      default_compressed, default_generation_method ) 
    values ( 
      1, 'T', 'F',
      'T', 0, 91030,
      91031, 91032, 91033,
      91034, 'default', 'Raport testowy obiektów referencyjnych',
      'test_rep', 'text/html', NULL,
      'F', 'MEMORY');
    
  2. W konfiguracji instancji należy dodać wpis deklarujący moduł a w nim wskazać nazwę konektora do schematu zawierającego utworzone tabele (przykład poniżej zakłada, że tabele raportowe są w tym samym schemacie co tabele jPalio). Jeżeli tabele modułu report są w bazie, na którą wskazuje konektor data, ten punkt można pominąć.

      <module name="report">
        <connector_name>palio</connector_name>
      </module>
    
  3. W dowolnym obiekcie wykonać funkcję $report.createOrReplaceHtmlInterface(), co spowoduje utworzenie interfejsu do zarządzania, zlecania i pobierania raportów (zostanie utworzony zestaw obiektów i stron jPalio).

  4. W portalu dodać linki do zarządzania raportami. Przykładowy zestaw linków poniżej i w obiekcie report_module.examples.links (91036) interfejsu do zarządzania.

    <a class="mainpage_menu_link" href="#" onclick="window.open('$url(report_module.types,null, $util.urlEncode("&interfaceMode=admin&reportModuleStyleSheet=&allowedCategories=&allowedTypes=&mainTitle=raporty dla portalu
    xyz"))')">Zarządzanie typami raportów</a><br>
    <a class="mainpage_menu_link" href="#" onclick="window.open('$url(report_module.orders,null, $util.urlEncode("&interfaceMode=order&reportModuleStyleSheet=&allowedCategories=&allowedTypes=&mainTitle=raporty dla portalu
    xyz"))')">Zlecanie raportów</a><br>
    <a class="mainpage_menu_link" href="#" onclick="window.open('$url(report_module.by_types,null, $util.urlEncode("&interfaceMode=get&reportModuleStyleSheet=&allowedCategories=&allowedTypes=&mainTitle=raporty dla portalu
    xyz"))')">Pobieranie raportów</a><br>
    

    W linku można przekazać dodatkowe parametry:

    • interfaceMode - parametr obowiązkowy, oznaczający tryb interfejsu: "admin" - zarządzanie kategoriami i typami, zlecanie i pobieranie raportów, "order" - zlecanie i pobieranie raportów, "get" - pobieranie raportów
    • reportModuleStyleSheet - id lub kod obiektu, który zastąpi standardowy arkusz styli CSS interfejsu
    • allowedCategories - lista id kategorii, rozdzielonych przecinkami, które będą widoczne w sekcjach do zlecania i pobierania raportów, np: " 'default','katA','katB' "
    • allowedTypes - lista id typów, rozdzielonych przecinkami, które będą widoczne w sekcjach do zlecania i pobierania raportów, np: "1,2,7"
    • mainTitle - tytuł wyświetlany na górze każdej strony interfejsu
  5. Napisać obiekty generujące raport(y) oraz umożliwiające jego zlecanie, wzorując się na obiektach z katalogu "02 Obiekty referencyjne" interfejsu do zarządzania. Jeśli parametrem raportu jest jedynie zakres czasowy, można ograniczyć się do użycia przykładowych obiektów i napisać tylko obiekt generujący raport.

    Po utworzeniu odpowiednich obiektów należy dodać nowy typ raportu przypisując do niego te obiekty. Aby utworzone obiekty były widoczne w interfejsie do zarządzania raportami ich nazwy muszą zaczynać się ciągiem "Rep obj ".

    Obiekty inicjalizacji i sprawdzania nie są wymagane, interfejs zakłada wtedy, że dane w formularzu zamówienia są poprawne i zawsze po submicie formularza zlecenia wywołuje obiekt zapisu zlecenia.

  6. Utworzyć zadanie (lub kilka), które będzie wykonywało zlecone raporty. Przykładowy obiekt zadania realizujący taką funkcjonalność jest zawarty w report_module.examples.scheduler_execution (91035).
    Osoby z uprawnieniami "order" mogą wykonać ręcznie te raporty, dla których przy określaniu typu zaznaczono flagę wykonania ręcznego. Uprawnienia "admin" pozwalają wykonać dowolny raport. Ręczne wykonanie raportów jest możliwe na stronie "raporty oczekujące".