Sekcja powtarzalna - RepeatableSection

Zestaw pól, które mogą być wielokrotnie wypełnione we wniosku przez użytkownika.

Właściwości komponentu

Właściwość Eximee Designer
Nazwa atrybutu w Źródle
Opis

Minimalna liczba wystąpień sekcji (sekcja Podstawowe właściwości)

minCount

Minimalna liczba wystąpień sekcji powtarzalnej (początkowa wartość 1). W chwili wyświetlania wniosku jest to także liczba wystąpień, które są domyślnie widoczne i dostępne. Usuwając elementy sekcji podczas wypełniania wniosku nie można zejść poniżej tej liczby.

Maksymalna liczba wystąpień sekcji (sekcja Podstawowe właściwości)

maxCount

Maksymalna liczba wystąpień sekcji powtarzalnej (początkowa wartość 1). Dodając elementy sekcji nie można przekroczyć tej liczby.

Tytuł (sekcja Podstawowe właściwości)

title

Tytuł.

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Tytuł całej sekcji powtarzalnej (sekcja Podstawowe właściwości)

parentSectionTitle

Tytuł dla całej sekcji powtarzalnej.

Etykieta przycisku zwinięcia sekcji (sekcja Pozostałe)

Etykieta przycisku zwinięcia sekcji.

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Etykieta przycisku rozwinięcia sekcji (sekcja Pozostałe)

Etykieta przycisku rozwinięcia sekcji.

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Sekcja zwijana (sekcja Pozostałe)

foldable

Określa czy sekcja powinna mieć możliwość zwinięcia (początkowo ustawiona na "false").

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Warunek zwinięcia sekcji (sekcja Pozostałe)

foldedCondition

Warunek zwinięcia sekcji.

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniami.

Sposób prezentacji rozwijania sekcji (sekcja Pozostałe)

presentation

Określenie sposobu prezentacji rozwijania sekcji. Dostępne typy prezentacji zwijania/rozwijania: STANDARD i LABELS (poniżej szerszy opis).

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Dynamiczne etykiety przycisków (sekcja Pozostałe)

plusMinusLabels

Warunki dla widoczności przycisków dodawania/usuwania elementów sekcji powtarzalnej.

Etykieta przycisku usunięcia sekcji (sekcja Pozostałe)

minusText

Etykieta dla przycisku minus (usunięcie elementu sekcji powtarzalnej).

Etykieta przycisku dodania sekcji (sekcja Pozostałe)

plusText

Etykieta dla przycisku plus (dodanie elementu sekcji powtarzalnej).

Tytuł rozwijanej sekcji (sekcja Pozostałe)

rowTitleExpanded

Tytuł wyświetlany dla rozwiniętej sekcji.

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Tytuł zwiniętej sekcji (sekcja Pozostałe)

rowTitleCollapsed

Tytuł wyświetlany dla zwiniętej sekcji.

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Obramowanie komponentu (sekcja Pozostałe)

parentSectionFrameVisible

Ustawienie flagi powoduje wyświetlenie ramki wokół wszystkich wystąpień sekcji powtarzalnej (początkowo ustawiona na "false").

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Wartość przesunięcia przycisku dodawania (sekcja Pozostałe)

plusButtonOffset

Wartość przesunięcia przycisku dodawania (początkowo ustawiona na 0).

Dostępność funkcjonalności zależy od licencji i może nie być dostępna we wszystkich wdrożeniach.

Pomoc kontekstowa przycisku usuwania (sekcja Pozostałe)

minusToolTipText

Pomoc kontekstowa przycisku usuwania wiersza

Więcej informacji o właściwościach komponentu: Wspólne właściwości komponentów

Praca z sekcją powtarzalną

Umieszczenie sekcji powtarzalnej na szablonie wniosku powoduje dodanie obszaru, z którym można pracować podobnie jak z całym wnioskiem. Oznacza to, że obszar ten ma swój własny układ strony i może zawierać dowolną liczbę komponentów bazowych. W przykładzie na rysunku wystąpienie sekcji powtarzalnej skonfigurowane zostało jako kompozyt składający się z pola tekstowego i pól wyboru wartości z listy z etykietami. Znak plus/minus w prawym dolnym rogu służy do dodawania kolejnych wierszy sekcji.

W wynikowym wniosku wystąpienia sekcji powtarzalnej wyświetlane są zgodnie z konfiguracją. Użytkownik ma możliwość usuwania bądź dodawania wystąpień, używając odpowiednio przycisku minus oraz plus.

Ilustracja 1. Przykładowy wygląd komponentu na wniosku

Zasilenie sekcji powtarzalnej usługą

Zalecane jest, aby tworząc ServiceProxy dziedziczyć po klasie AbstractRepeatableServiceProxy. Klasa ta automatycznie zwraca 3 wartości: minCount, maxCount i count. Wartości te można ustawić lub nic z nimi nie robić — są one opcjonalne.

Przykładowe ServiceProxy:

  • Są w nim dodane 2 pola wejściowe,

  • Są w nim dodane 2 dodatkowe pola wyjściowe (minCount, maxCount, count dodane są w klasie wyżej),

  • Aby ustawić parametry trzeba jedynie na modelu RepeatableSectionMetadata wywołać odpowiednie settery,

  • Po ustawieniu powyższych parametrów, ustawiamy wartości które potem będziemy mapować na poszczególnych polach.

RepeatableTestSp.java
@Component
@Service(AbstractServiceProxy.class)
public class RepeatableTestSp extends AbstractRepeatableServiceProxy {

    public RepeatableTestSp(String name, String description) {
        super("RepeatableTestSp", "Description...");
        this.inputFields.add(new ServiceProxyField("input1"));
        this.inputFields.add(new ServiceProxyField("input2"));
        this.outputFields.add(new ServiceProxyField("output1"));
        this.outputFields.add(new ServiceProxyField("output2"));
    }

    @Override
    protected RepeatableSectionMetadata callRepeatableSectionService(
            Map<String, List<String>> requestParams, String lang) throws ServiceProxyException {
        final RepeatableSectionMetadata repeatableSectionMetadata = new RepeatableSectionMetadata();
        repeatableSectionMetadata.setMinCount(1);
        repeatableSectionMetadata.setMaxCount(10);
        repeatableSectionMetadata.setCount(5);
        repeatableSectionMetadata.setRepeatableSectionRows(createRows());
        return repeatableSectionMetadata;
    }

    private List<Map<String, String>> createRows() {
        final List<Map<String, String>> rows = new ArrayList<>();
        rows.add(createRow());
        rows.add(createRow());
        return rows;
    }

    private Map<String, String> createRow() {
        final Map<String, String> map = new HashMap<>();
        map.put("output1", "1");
        map.put("output2", "abc");
        return map;
    }
}

Aby skorzystać z powyższego ServiceProxy, w externalDataSource powinien być typ REPEATABLE_SCECTION_SERVICE.

Podsumowując: usługa dodała 2 wiersze, jednak ustawiła wartość count na 5. Tak więc zostanie wyświetlone 5 wierszy, z czego tylko 2 się wypełnią zmapowaną wartością z endpointu output1.

Istnieje również możliwość zasilenia sekcji powtarzalnej skryptem.

Wnioski demo:

  • demoRepeatableSection

  • repeatable_section_service (wniosek pokazujący zasilenie sekcji usługą lub skryptem)

  • demoRepeatableSectionValidator (wniosek z walidatorem dla powtarzających się wartości w sekcji)

Last updated

Was this helpful?