Konfiguracja modułu PZ jest plikiem XML o następującym schemacie:
<?xml version='1.0' encoding='utf-8'?> <PZModuleConfig> <ImportJavaScript> <JavaScriptFile>nazwa_pliku_js</JavaScriptFile> </ImportJavaScript> <JavaScriptActions beforerender="nazwa_funkcji" selectPZ="nazwa_funkcji" deselectPZ="nazwa_funkcji" attachPZ="nazwa_funkcji" detachPZ="nazwa_funkcji"/> <Search class="" whereClauseClass=""> <Location> <Type>typ_zrodla_danych</Type> <Name>nazwa_klasy_dokumentow</Name> <AttachedName>nazwa_klasy_dokumentow_dla_podlaczonych</AttachedName> <TableName>nazwa_tabeli</TableName> <AttachedTableName>nazwa_tabeli_dla_podlaczonych</AttachedTableName> <PrimaryKey type="typ">unikalny_identyfikator</PrimaryKey> </Location> <Criteria> <Attached>t_f</Attached> <Type>typ_kryterium</Type> <Value>wartosc_kryterium</Value> <Mapping>zmienna_dla_kryterium</Mapping> <Required>t_f</Required> <AllowBlank>t_f</AllowBlank> <Operator>operator</Operator> </Criteria> </Search> <TableFontSize>8</TableFontSize> <NotAttachedTabPageSize enablePreview="t_f">rozmiar</NotAttachedTabPageSize> <NotAttachedPagingDisabled>t_f</NotAttachedPagingDisabled> <NotAttachedTabTitle>nazwa</NotAttachedTabTitle> <AttachedTabTitle>nazwa</AttachedTabTitle> <RightTabPanel show="t_f">nazwa</RightTabPanel> <AttachButtonText>tekst</AttachButtonText> <DetachButtonText>tekst</DetachButtonText> <DetachAllButtonText>tekst</DetachAllButtonText> <SaveButtonText>tekst</SaveButtonText> <CloseButtonText>tekst</CloseButtonText> <SelectionButtonsInMenu>t_f</SelectionButtonsInMenu> <ToggleGroupsButtonEnabled>t_f</ToggleGroupsButtonEnabled> <DocumentFilters> <DocumentFilter> <Type>typ_filtra</Type> <Value>wartość_filtra</Value> </DocumentFilter> </DocumentFilters> <NotAttachedTabFiltersType>typ_filtrow</NotAttachedTabFiltersType> <Columns> <Column> <Id>identyfikator_kolumny</Id> <Name>nazwa_kolumny</Name> <Type format="" inputFormat="">typ_kolumny</Type> <Filter>t_f</Filter> <Hidden>t_f</Hidden> <WordWrap>t_f</WordWrap> <CellTooltip>t_f</CellTooltip> <Width>szerokosc</Width> <Align>wyrównanie</Align> <Expression>wyrazenie</Expression> <FiltersInit> <Eq type="typ_wartosci">wartosc</Eq> <Gt type="typ_wartosci">wartosc</Gt> <Lt type="typ_wartosci">wartosc</Lt> </FiltersInit> </Column> <GroupNotAttachedBy direction="kierunek" startCollapsed="t_f" enableMenu="t_f" sumColumns="identyfikatory_kolumn">identyfikator_kolumny</GroupNotAttachedBy> <SortNotAttachedBy direction="kierunek">identyfikator_kolumny</SortNotAttachedBy> <GroupAttachedBy direction="kierunek" startCollapsed="t_f" enableMenu="t_f" sumColumns="identyfikatory_kolumn">identyfikator_kolumny</GroupAttachedBy> <SortAttachedBy direction="kierunek">identyfikator_kolumny</SortAttachedBy> </Columns> <Attaching window="t_f"> <Column>identyfikator_kolumny</Column> </Attaching> <NewWindowDocumentPreview>t_f</NewWindowDocumentPreview> <DecimalSeparator>separator_dziesietny</DecimalSeparator> <LiveFiltering>t_f</LiveFiltering> <EnableDuplicateChoice>t_f</EnableDuplicateChoice> <Buttons> <Button> <Location>lokalizacja_przycisku</Location> <Name>nazwa_przycisku</Name> <Action>nazwa_funkcji_js</Action> </Button> </Buttons> <ToolbarFields> <ToolbarField> <Location>lokalizacja_pola</Location> <Id>identyfikator_pola</Id> <Label>etykieta</Label> <Operation>operacja</Operation> <ColumnId>identyfikator_kolumny</ColumnId> <Width>szerokosc_pola</Width> </ToolbarField> </ToolbarFields> <FilterRelations> <FilterRelation> <RelatedFilter> <Id>identyfikator_kolumny</Id> </RelatedFilter> </FilterRelation> </FilterRelations> <PartialAttachment showMySeparated="t_f" validate="t_f" allowNegative="t_f" controlSubflows="t_f">identyfikator_kolumny</PartialAttachment> <Save class="" askBeforeSave="t_f" askBeforeClose="t_f"> <SaveIndexesAction active="t_f"> <Variable type="" operation="rodzaj_operacji" from="zrodlo_danych" to="nazwa_indeksu"/> </SaveIndexesAction> <UpdateTableAction active="t_f"> <Variable type="" operation="rodzaj_operacji" from="zrodlo_danych" to="nazwa_indeksu"/> </UpdateTableAction> <SaveVariablesAction active="t_f"> <Variable type="typ_zmiennej" operation="rodzaj_operacji" from="zrodlo_danych" to="nazwa_zmiennej"/> </SaveVariablesAction> <AttachToProcessAction active="t_f"/> <CreateSummaryAction active="t_f" docClassName="nazwa_klasy" templateName="nazwa_szablonu" userName="uzytkownik" description="opis" horizontalOrientation="t_f" sortOrder="sortowanie"> <Variable type="typ_zmiennej" operation="rodzaj_operacji" from="zrodlo_danych" to="nazwa_zmiennej"/> </CreateSummaryAction> </Save> </PZModuleConfig>
Znaczenie poszczególnych elementów pliku konfiguracyjnego jest następujące:
- Element ImportJavaScript - element ten składa się z kolejnych elementów JavaScriptFile. Zawierają one nazwy plików JavaScript, które mają zostać zaimportowane do modułu. Nie należy podawać rozszerzenia pliku .js, a jedynie jego nazwę.
- Element JavaScriptActions - określa dodatkowe akcje (podaje się nazwy funkcji JavaScript), jakie mogą zostać wykonane w module. Skrypt zawierający funkcje musi zostać podany w elemencie ImportJavaScript (zobacz 1). Funkcje podaje się w następujących atrybutach elementu JavaScriptActions:
- beforerender – funkcja, w której przed pierwszym wyświetleniem modułu można dodać nowe komponenty lub przebudować istniejący układ, funkcja ta nie przyjmuje żadnych parametrów
- selectPZ – funkcja wywoływana po operacji wyboru rekordu w górnej tabeli niepodłączonych PZ (także w przypadku operacji Zaznacz wszystko), jej parametry to wszystkie aktualnie zaznaczone rekordy w postaci tablicy obiektów Ext.data.Record
deselectPZ – funkcja wywoływana po operacji odznaczenia rekordu w górnej tabeli niepodłączonych PZ (także w przypadku operacji Odznacz wszystko), jej parametry to wszystkie aktualnie zaznaczone rekordy w postaci tablicy obiektów Ext.data.Record
attachPZ – funkcja wywoływana w momencie podłączenia wybranych PZ do dolnej tabeli podłączonych PZ, jej parametry to wszystkie aktualnie podłączone rekordy w postaci tablicy obiektów Ext.data.Record
detachPZ – funkcja wywoływana w momencie odłączenia rekordów z dolnej tabeli podłączonych PZ, jej parametry to wszystkie aktualnie podłączone rekordy w postaci tablicy obiektów Ext.data.Record
- Element Search - element ten określa zródło danych dla modułu oraz wstępnie ogranicza wyszukiwanie rekordów poprzez podanie odpowiednich warunków. Jeżeli zostanie określony atrybut class w głównym elemencie w posiaci nazwy klasy wraz z pakietem, to wyszukiwanie jest całkowicie realizowane przez użytkownika za pomocą odpowiedniej funkcji (zobacz Klasy i metody klienckie (PZ)). Dodatkowo można w atrubycie whereClauseClass podać nazwę klasy wraz z pakietem, która pozwoli użytkownikowi określić część zapytania za słowem kluczowym WHERE, która odpowiada za warunek wyszukania PZ (zobacz Klasy i metody klienckie (PZ)). Jeżeli atrybut class nie został podany, uruchomione zostanie automatyczne wyszukiwanie.
- w elemencie Location określa się źródło danych dla modułu:
- element Type – typ źródła danych (dozwolone wartości to: docclass, czyli wyszukiwanie w klasie dokumentów lub db - wyszukiwanie w tabeli w bazie danych systemu)
element Name – nazwa klasy dokumentów, ma znaczenie, gdy Type ma wartość docclass
element AttachedName – nazwa klasy dokumentów dla wyszukiwania podłączonych PZ, ma znaczenie, gdy Type ma wartość docclass, jeżeli nie jest podany, to dla podłączonych PZ jest wykorzystywana ta sama klasa dokumentów, co dla niepodłączonych PZ
element TableName – nazwa tabeli w bazie danych, która będzie źródłem danych, ma znaczenie, gdy Type ma wartość db
- element AttachedTableName – nazwa tabeli w bazie danych dla wyszukiwania podłączonych PZ, która będzie źródłem danych, ma znaczenie, gdy Type ma wartość db, jeżeli nie jest podany, to dla podłączonych PZ jest wykorzystywana ta sama tabela w bazie danych, co dla niepodłączonych PZ
element PrimaryKey – kolumna z uniwersalnym identyfikatorem rekordu, istotne jest jej podanie ze względu na konieczność identyfikacji podłączonych PZ, ma znaczenie, gdy Type ma wartość db
atrybut type – typ danych występujący w kolumnie podanej w tagu PrimaryKey, ma znaczenie, gdy Type ma wartość db, dozwolone są następujące wartości:
string - tekstowy
int - całkotiwy
float - dziesiętny
date - datowy
datestring - tekstowy w bazie danych, lecz reprezentujący wartość datową
- następnie należy zdefiniować wstępne kryteria, które zostaną uwzględnione podczas generowania zestawu danych podczas uruchamiania modułu. W tym celu należy zdefiniować szereg (przynajmniej jedno) elementów Criteria według schematu:
element Attached – informacja, czy kryterium wyszukiwania dotyczy górnej tabeli niepodłączonych PZ, czy dolnej tabeli niepodłączonych PZ, przyjmuje wartość true lub false
element Type – typ kryterium, gdzie dozwolone wartości to: fixed (stała wartość), fixedcomasplit (szereg stałych wartości rozdzielonych przecinkiem, traktowane jako pojawienie się w rekordzie jednej z wymienionych wartości), fixedsemicolonsplit (szereg stałych wartości rozdzielonych średnikiem, traktowane jako pojawienie się w rekordzie jednej z wymienionych wartości), variable (wartość zmiennej z procesu lub dodatkowego parametru przekazanego do modułu), variablecomasplit (szereg wartości zmiennej z procesu lub dodatkowego parametru przekazanego do modułu rozdzielonych przecinkiem, traktowane jako pojawienie się w rekordzie jednej z wymienionych wartości), variablesemicolonsplit (szereg wartości zmiennej z procesu lub dodatkowego parametru przekazanego do modułu rozdzielonych średnikiem, traktowane jako pojawienie się w rekordzie jednej z wymienionych wartości)
- element Value – wyszukiwana wartość (stała wartość lub w przypadku typu kryterium z rodziny variable w tagu należy podać identyfikator zmiennej z procesu)
- element Mapping – jeżeli źródłem danych jest klasa dokumentów w tagu podaje się nazwę indeksu z tej klasy, którego wartość będzie sprawdzana za pomocą danego kryterium, dla bazy danych jest to nazwa kolumny w tabeli w bazie danych
- element Required – jest nieobowiązkowy i odnosi się do kryteriów, które w tagu Type zawierają wartości variable, variablecomasplit, variablesemicolonsplit. Przyjmuje wartości true lub false. W przypadku, jeśli nie zostanie przekazana z procesu zmienna o identyfikatorze podanym w tagu Value występuje wyjątek pobierania PZ. Gdy wartość tagu Required zostanie ustawiona na false, to takie kryterium zostanie pominięte podczas pobierania PZ. Wartość domyślna: true
- element AllowBlank – jest nieobowiązkowy i informuje, czy brać pod uwagę w tworzeniu warunków stałe/zmienne o pustej wartości (również same spacje) rozumiane w kontekście wszystkich wartości z listy (dotyczy wartości rozdzielonych przecinkiem lub średnikiem). Przyjmuje wartości true lub false. Gdy wartość tagu AllowBlank zostanie ustawiona na true, to takie kryterium zostanie uwzględnione podczas pobierania PZ, niezależnie czy wartości jest pusta czy niepusta. Wartość domyślna: false
- element Operator - jest nieobowiązkowy i informuje o operatorze logicznym użytym dla danego kryterium podczas budowania zapytania, obsługiwane są następujące operatory:
- eq - równy
- neq - różny od
- lt - mniejszy od
- lte - mniejszy równy
- gt - większy od
- gte - większy równy
- w elemencie Location określa się źródło danych dla modułu:
- TableFontSize - wielkość czcionki w pikselach dla nagłówków kolumn tabel oraz wartości w komórkach. Wartość domyślna: 13.
- Element NotAttachedTabPageSize - określa ilość rekordów wyświetlonych na jednej podstronie w górnej tabeli niepodłączonych PZ. Maksymalna zalecana wartość to 50, w przeciwnym przypadku należy spodziewać się wolniejszego działania modułu PZ. Atrybut enablePreview, określa czy umożliwić wyświetlanie podglądów dokumentów w prawym panelu, przyjmuje wartości true lub false (ma znaczenie jedynie, gdy prawy panel jest dostępny i źródłem danych jest klasa dokumentów). Wartość domyślna: true.
- Element NotAttachedPagingDisabled - określa, czy paging dla górnej tabeli niepodłączonych PZ jest wyłączony. Wartość domyślna: false.
- Element NotAttachedTabTitle - określa tytuł górnej tabeli niepodłączonych PZ. Wartość domyślna: "" - brak belki w tabeli.
- Element AttachedTabTitle - określa tytuł dolnej tabeli podłączonych PZ. Wartość domyślna: "" - brak belki w tabeli.
- Element RightTabPanel - określa tytuł prawego panelu podglądu dokumentów. Wartość domyślna: "" - brak belki w panelu. Atrybut show określa, czy prawy panel ma zostać aktywowany, przyjmuje wartości true lub false. Wartość domyślna: true.
- Element AttachButtonText - określa tekst przycisku podłączania rekordów w tabeli niepodłączonych PZ. Wartość domyślna: "Podłącz" (w odpowiedniej wersji językowej).
- Element DetachButtonText - określa tekst przycisku odłączania rekordów w tabeli podłączonych PZ. Wartość domyślna: "Odłącz" (w odpowiedniej wersji językowej).
- Element DetachAllButtonText - określa tekst przycisku odłączania wszystkich rekordów w tabeli podłączonych PZ. Wartość domyślna: "Odłącz wszystko" (w odpowiedniej wersji językowej).
- Element SaveButtonText - określa tekst przycisku zapisywania stanu modułu PZ. Wartość domyślna: "Zapisz" (w odpowiedniej wersji językowej).
- Element CloseButtonText - określa tekst przycisku zamykania modułu PZ bez zapisywania. Wartość domyślna: "Zamknij" (w odpowiedniej wersji językowej).
- Element SelectionButtonsInMenu - określa, czy przyciski Zaznacz wszystko/Odznacz wszystko mają zostać umieszczone w podmenu. Wartość domyślna: false.
- Element ToggleGroupsButtonEnabled - określa, czy dodawać w górnej tabeli niepodłączonych PZ przyciski do zwijania/rozwijania zgrupowanych rekordów. Wartość domyślna: false.
- Element DocumentFilters - określa filtry, które są aplikowane dla każdego z dokumentów podłączonych do zadania w celu określenia, czy powinny one być widoczne w module
- składa się z filtów zawartych w kolejnych elementach DocumentFilter, dokument zostanie wyświetlony, jeśli będzie spełniał warunki wszystkich zdefiniowanych filtrów, każdy z filtrów ma następującą budowę:
- element Type - typ filtra, wyróżnia się następujące typy:
- DOCUMENT_CLASS - nazwa klasy dokumentów, do której musi należeć dokument podłączony do zadania
- FILE_NAME_REGEX - wyrażenie regularne w języku Java, które musi spełniać nazwa pliku dokumentu podłączonego do procesu
- element Value - wartość zależna od typu filtra np. nazwa klasy dokumentów, wyrażenie regularne
- element Type - typ filtra, wyróżnia się następujące typy:
- składa się z filtów zawartych w kolejnych elementach DocumentFilter, dokument zostanie wyświetlony, jeśli będzie spełniał warunki wszystkich zdefiniowanych filtrów, każdy z filtrów ma następującą budowę:
- Element NotAttachedTabFiltersType - określa typ filtrów zastosowany w górnej tabeli niepodłączonych PZ, dozwolone wartości to: menu (filtry dostępne z poziomu rozwijanego menu w nagłówku kolumny, są niewidoczne podczas użytkowania modułu), panel (filtry dostępne w panelu zagnieżdżonym w nagłówku kolumny, są widoczne podczas użytkowania modułu). Wartość domyślna: panel.
- Element Columns - definiuje strukturę i dodatkowe parametry obu tabel modułu (definicja odnosi się zarówno do dolnej jak i do górnej tabeli).
- przede wszystkim składa się z kolejnych elementów Column, gdzie każdy z nich odnosi się do kolejnej kolumny w tabelach i ma następującą budowę:
- element Id – identyfikator kolumny, w przypadku źródła danych w postaci klasy dokumentów jest to pełna nazwa indeksu, gdy źródłem danych jest tabela z bazy danych Id jest pełną nazwą kolumny
- element Name – określa nagłówek kolumny
element Type – określa typ zmiennej w danej kolumnie, dozwolone wartości: string, int, float, date, dostępny jest także typ datestring zakładający w bazie danych kolumnę typu string lecz wyświetlający w module dane jako data
atrybut format – istotny tylko dla typu kolumny o wartości float, date i datestring, jest to format daty lub dokładność liczby dziesiętnej (ilość cyfr za przecinkiem), domyślny format daty: y-M-d, domyślny format liczby dziesiętnej: 2
- atrybut inputFormat - istotny tylko dla typu kolumny o wartości datestring, jest nieobowiązkowy, określa format daty, w jakim występują dane w kolumnie w bazie danych, pozwala przekonwertować datę na typ daty systemowej (yyyy-MM-dd)
element Filter – określa, czy umożliwić użytkownikowi filtrowanie po danej kolumnie, przyjmuje wartości true lub false, wartość domyślna: false
element Hidden – określa, czy kolumna ma być ukryta w tabeli niepodłączonych PZ, wartość domyślna: false
- element HiddenInAttached – określa, czy kolumna ma być ukryta w tabeli podłączonych PZ, wartość domyślna: false
- element WordWrap – określa, czy zawijać tekst w kolumnie, wartość domyślna: false
- element CellTooltip – określa, czy wyświetlać tooltip z zawartością komórki, gdy kursor myszki znajduje się nad komórką, wartość domyślna: false
- element Width - określa szerokość kolumny w pikselach, jeżeli wartość nie jest podana, to kolumna jest rozciągana proporcjonalnie do ilości kolumn, by wypełnić całą tabelę na szerokość
- element Align - określa wyrównanie wartości w komórce w rekordzie, możliwe wartości to: left (do lewej), center (wyśrodkowanie), right (do prawej), wartość domyślna: zależna od elementu Type
- element Expression – jeżeli tag jest niepusty, to wartość kolumny jest wyliczna automatycznie na podstawie innych kolumn, zmiennych procesu, dodatkowych parametrów przekazanych do modułu lub stałych wartości za pomocą nawiasów kwadratowych i znaków arytmetycznych np. ([id_kol1] + [id_kol2]) * [$id_zmiennej] + [2], gdzie id_kolx - identyfikator kolumny (zobacz element Id), $id_zmiennej - identyfikator zmiennej procesu lub dodatkowego parametru przekazanego do modułu poprzedzony znakiem $
- element FiltersInit - zawiera elementy pozwalające nadać filtrom wartości początkowe (działa tylko dla filtrów typu panel):
- element Eq - określa wartość początkową filtru równy
- element Gt - określa wartość początkową filtru większy od
- element Lt - określa wartość początkową filtru mniejszy od
- atrybut type - odnosi się do wszystkich powyższych elementów, typ wartości początkowej filtru, gdzie dozwolone wartości to: fixed (stała wartość), variable (wartość zmiennej z procesu lub dodatkowego parametru przekazanego do modułu)
- Element GroupNotAttachedBy - określa kolumnę (także ukrytą) po której ma być wykonane grupowanie w górnej tabeli niepodłączonych PZ (nagłówek grupy to nazwa kolumny, po której wykonywane jest grupowanie oraz wartość tej kolumny dla danej grupy), domyślnie grupowanie jest wyłączone. Dodatkowo występują następujące atrybuty:
- atrybut direction – określa kierunek grupowania, możliwe wartości to ASC i DESC, wartość domyślna: ASC
- atrybut startCollapsed – określa, czy uruchamiać moduł ze zwiniętymi grupami (wartość true), czy z rozwiniętymi (wartość false), wartość domyślna: false
- atrybut enableMenu – określa, czy uaktywnić menu w nagłówkach kolumn (wartość true), które umożliwia włączenie/wyłączenie grupowania, zmianę kolumny grupującej, dozwolone wartości: true i false, wartość domyślna: false
- atrybut sumColumns - określa kolumny, których wartości mają być zsumowane, a ich suma wyświetlona na belce danej grupy, należy podawać tylko kolumny, których typ danych jest określony jako float lub int (dane liczbowe), kolejne kolumny do zsumowania rozdzielamy znakiem przecinka ","
- Element SortNotAttachedBy - określa kolumnę (także ukrytą), po której następuje sortowanie rezultatów w górnej tabeli niepodłączonych PZ. Domyślnie sortowanie jest wyłączone (wyniki zwracane są w przypadkowej kolejności). Możliwa jest zmiana kolumny sortującej i kierunku sortowania poprzez kliknięcie nagłówka danej kolumny. Dodatkowo występują następujące atrybuty:
- atrybut direction – określa kierunek sortowania, możliwe wartości to ASC i DESC, wartość domyślna: ASC
- Element GroupAttachedBy - określa kolumnę (także ukrytą) po której ma być wykonane grupowanie w dolnej tabeli podłączonych PZ (nagłówek grupy to nazwa kolumny, po której wykonywane jest grupowanie oraz wartość tej kolumny dla danej grupy), domyślnie grupowanie jest wyłączone. Dodatkowo występują następujące atrybuty:
- atrybut direction – określa kierunek grupowania, możliwe wartości to ASC i DESC, wartość domyślna: ASC
- atrybut startCollapsed – określa, czy uruchamiać moduł ze zwiniętymi grupami (wartość true), czy z rozwiniętymi (wartość false), wartość domyślna: false
- atrybut enableMenu – określa, czy uaktywnić menu w nagłówkach kolumn (wartość true), które umożliwia włączenie/wyłączenie grupowania, zmianę kolumny grupującej, dozwolone wartości: true i false, wartość domyślna: false
- atrybut sumColumns - określa kolumny, których wartości mają być zsumowane, a ich suma wyświetlona na belce danej grupy, należy podawać tylko kolumny, których typ danych jest określony jako float lub int (dane liczbowe), kolejne kolumny do zsumowania rozdzielamy znakiem przecinka ","
- Element SortAttachedBy - określa kolumnę (także ukrytą), po której następuje sortowanie rezultatów w dolnej tabeli podłączonych PZ. Domyślnie sortowanie jest wyłączone (wyniki zwracane są w przypadkowej kolejności). Możliwa jest zmiana kolumny sortującej i kierunku sortowania poprzez kliknięcie nagłówka danej kolumny. Dodatkowo występują następujące atrybuty:
- atrybut direction – określa kierunek sortowania, możliwe wartości to ASC i DESC, wartość domyślna: ASC
- przede wszystkim składa się z kolejnych elementów Column, gdzie każdy z nich odnosi się do kolejnej kolumny w tabelach i ma następującą budowę:
- Element Attaching - element ten może zawierać tagi Column, które określają identyfikatory kolumn do edycji w dolnej tabeli podłączonych PZ (jeżeli zmieniana jest wartość komórki w wierszu i występują dane będące operacją arytmetyczną innych kolumn, zostaną one uaktualnione). Dodatkowo w elemencie występuje atrybut window, który określa, czy uaktywnić dodatkowe okno podłączania. Przyjmuje on wartości true lub false. Wartość domyślna: false. Pojawia się ono w każdej operacji podłączenia PZ. Wszystkie kolumny z tagów Column są również do edycji w oknie podłączenia (występuje także przeliczanie kolumn). Jeżeli nie podano żadnego tagu Column, a atrybut window jest równy true, okno podłączenia jest aktywne (bez możliwości edycji żadnej z kolumn). W oknie podłączenia można usuwać pojedyncze rekordy z wybranych PZ.
- Element NewWindowDocumentPreview - określa, czy po wejściu do modułu dokumenty podłączone do procesu powinny zostać wyświetlone w nowych oknach. Przyjmuje wartości true lub false. Wartość domyślna: false.
- Element DecimalSeparator - określa separator dziesiętny stosowany w module. Wartość domyślna: ".".
- Element LiveFiltering - określa, czy filtrowanie ma następować od razu po zmianie wartości w filtrze, czy wymagane jest potwierdzenie operacji filtrowania klawiszem Enter. Przyjmuje wartości true lub false. Wartość domyślna: true.
- Element EnableDuplicateChoice - określa, czy możliwe jest wielokrotne podpięcie tego samego rekordu, jeżeli wartość jest ustawiona na true, to podczas zapisywania wykonywana jest walidacja. Przyjmuje wartości true lub false. Jeżeli podłączanie cząstowe jest aktywne, to wartość true jest ignorowana, wszystko będzie zależeć od wykorzystanej ilości podłączonych i pozostałych rekordów. Wartość domyślna: false.
- Element Buttons - element ten składa się z kolenych elementów Button, które określają dodatkowe przyciski dodane do modułu, w których można wykonać dowolne funkcje JavaScript (muszą zostać one zaimportowane do modułu (zobacz 1)). Wszystkie akcje przycisków otrzymują dwa parametry: wszystkie aktualnie zaznaczone rekordy w postaci tablicy obiektów Ext.data.Record, wszystkie aktualnie podłączone rekordy w postaci tablicy obiektów Ext.data.Record. Element Button składa się z następujących elementów:
- element Location – określa umiejscowienie przycisku: dolny toolbar górnej tabeli niepodłączonych PZ (wartość top), dolny toolbar dolnej tabeli podłączonych PZ (wartość bottom), prawy panel podglądu dokumentów (wartość right, ma znaczenie, gdy prawy panel jest aktywny (zobacz 7))
- element Name – określa nazwę przycisku
- element Action – określa nazwę funkcji JavaScript, która ma zostać wykonana po kliknięciu przycisku
- Element ToolbarFields - element ten składa się z kolenych elementów ToolbarField, które określają dodatkowe pola dodane do toolbarów w module. Pola te reagują na operacje zaznaczania/odznaczania i podłączania/odłączania rekordów. Element ToolbarField składa się z następujących elementów:
- element Location – określa umiejscowienie pola: dolny toolbar górnej tabeli niepodłączonych PZ (wartość top), dolny toolbar dolnej tabeli podłączonych PZ (wartość bottom)
- element Id – identyfikator przycisku, powinien być unikalny w ramach wszystkich przycisków
- element Label – etykieta pola
- element Operation - określa sposób wyznaczania wartości w polu w zależności od zaznaczonych rekordów. Dostępne są następujące operacje:
- sum - sumuje określone wartości z poszczególnych komórek dla zaznaczonych rekordów, wymaga podania elementu ColumnId
- sumall - sumuje określone wartości z poszczególnych komórek dla wszystkich dostępnych (niepodłączonych lub podłączonych, w zależności od lokalizacji przycisku) rekordów, wymaga podania elementu ColumnId
- element ColumnId - identyfikator kolumny, odnosi się do elementu Id dla Column (zobacz 12), informuje, które komórki z zaznaczonych rekordów mają zostać użyte do wyznaczenia wartości pola
- element Width - szerokość pola
- Element FilterRelations - element ten składa się z kolenych elementów FilterRelation, które określają powiązania między filtrami powoduje to, że filtrowanie dla kilku kolumn występuje jednocześnie. Każdy element FilterRelation może składać się z wielu elementów RelatedFilter, gdzie każdy z nich określa jeden powiązany filtr. Separatorem wartości filtrujących jest średnik. Np. dla dróch filtrów NIP i Numer faktury jeśli NIP: AAA;BBB i Numer faktury: CCC;DDD, to oznacza to, że wyszukiwane są rekordy, dla których NIP = AAA i Numer faktury = CCC lub NIP = BBB i Numer faktury = DDD. Element RelatedFilter składa się z następujących elementów:
- element Id – identyfikator kolumny, odnosi się tylko do kolumn typu string
- Element PartialAttachment - określa, czy w module ma być możliwe podłączanie cząstkowe, czyli czy jeden rekord może zostać podłączony wielokrotnie. Podział podłączenia bazuje na kolumnie, która zawiera ilość danego rekordu, co umożliwia jego podział. Element ten więc wskazuje na identyfikator kolumny, który przechowuje informację o ilości. Typ kolumny musi być postaci float lub int (wartość liczbowa). Automatycznie kolumna podana w tym elemencie jest do edycji w dolnej tabeli podłączonych PZ. Element zawiera także następujące atrybuty:
- atrybut showMySeparated - określa, czy dla danego procesu rekord jest dzielony po podłączeniu, tzn. jeżeli atrybut przyjmuje wartość true, ilość dla danego rekordu wynosi 7, rekord zostanie podłączony, a ilość w dolnej tabeli podłączonych PZ zostanie ustawiona na 4, to w górnej tabeli niepodłączonych PZ pojawi się także ten rekord z wartością ilości równą 3, jeżeli natomiast podana zostanie wartość false, to niezależnie od ilości ustawionej w dolnej tabeli podłącznych PZ, rekord nie zostanie wyświetlony do podłączenia w górnej tabeli niepodłączonych PZ, należy pamiętać, że jeżeli ustawiono wartość true dla atrubytu, to wiąże się to z wykorzystaniem bardziej rozbudowanych zapytań, a co za tym idzie dłuższym czasem oczekiwania na wyświetlenie wyników, przyjmuje wartości true lub false, wartość domyślna: false
- atrybut validate - określa, czy możliwe jest podłączenie większej ilości, niż aktualnie jest dostępna w górnej tabeli niepodłączonych PZ, jeżeli atrybut przyjmuje wartość true, to tylko jeden użytkownik w danej chwili może zapisać moduł, jest to zabezpieczenie przed jednoczesnym zapisem, który uniemożliwi dokładną weryfikację cząstkowych ilości podłączonych rekordów, przyjmuje wartości true lub false, wartość domyślna: false
- allowNegative - określa, czy możliwe jest podłączanie ujemnej ilości, pozwala wpisywać w tabeli niepodłączonych wartości ujemne w kolumnie określającej ilość, wartość domyślna: false
- controlSubflows - określa, czy uwzględniać fakt, że aktualne podłączenie rekordów może być wykonywane w podprocesie, ilość podłączonych rekordów jest wtedy uwzględniana dla procesu głównego oraz wszystkich jego podprocesów, poprawna obsługa funkcjonalności wiąże się z przekazaniem do modułu podczas uruchamiania opcjonalnych parametrów parentConfigurationId i parentProcessId, wartość domyślna: false
- Element Save - element ten określa akcje, jakie mają zostać wykonane w momencie zapisania operacji podłączenia PZ podczas wyjścia z modułu. Element posiada dodatkowo atrybut class, w którym można podać pełną nazwę klasy wraz z pakietem, do której zostanie przekazane sterowanie zapisem przez użytkownika (zobacz Klasy i metody klienckie (PZ)). Niezależnie od zdefiniowania atrybutu class, zostaną wykonane pozostałe akcje określone w pliku konfiguracyjnym (w pierwszej kolejności zostanie wykonana klasa użytkownika).
dodatkowe atrybuty elementu Save to:
- atrybut askBeforeSave - określa, czy wyświetlić komunikat o zamknięciu modułu przed zapisaniem, przyjmuje wartości true lub false, wartość domyślna: false
- atrybut askBeforeClose - określa, czy wyświetlić komunikat o zamknięciu modułu przed anulowaniem bez zapisu, przyjmuje wartości true lub false, wartość domyślna: false
standardowe akcje zapisu zawarte w elementach są następujące:
- element SaveIndexesAction - zapisuje wartości z modułu do indeksów dokumentu z danej klasy dokumentów, ma znaczenie jedynie, gdy źródłem rekordów jest klasa dokumentów (zobacz 3), akcję aktywuje się poprzez podanie wartości true w atrybucie active, akcja zawiera elementy Variable, które określaja, jakie indeksy i w jaki sposób mają zostać zaktualizowane. Element Variable zawiera następujące atrybuty:
- atrybut type - przyjmuje wartości: attach (operacja jest wykonywana dla podłączonych PZ), detach (operacja wykonywana dla PZ, które zostały odłączone)
- atrybut operation - określa rodzaj operacji, przyjmuje wartości: current (określona wartość danej kolumny w rekordzie), value (określona wartość danej kolumny we wszystkich rekordach, wartości są połączone znakiem ";"), fixed (stała wartość), sumint (suma (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), sumfloat (suma (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyint (iloczyn (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyfloat (iloczyn (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), avg (średnia (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), amount (ilość podłączonych PZ), variable (wartość zmiennej w procesie)
- atrybut from – zależny od wartości atrybutu operation, dla value, sumint, sumfloat, multiplyint, multiplyfloat, avg – identyfikator kolumny, z której ma zostać pobrana wartość z rekordu, dla fixed – stała wartość, dla variable – nazwa zmiennej z procesu, której wartość ma zostać przypisana do indeksu, dla amount - niewykorzystywane
- atrybut to – określa nazwę indeksu, który będzie aktualizowany w klasie dokumentów, z której pobierane są rekordy
- element UpdateTableAction - zapisuje wartości z modułu do kolumn w tabeli w bazie danych, ma znaczenie jedynie, gdy źródłem rekordów jest tabela w bazie danych (zobacz 3), akcję aktywuje się poprzez podanie wartości true w atrybucie active, akcja zawiera elementy Variable, które określaja, jakie kolumny i w jaki sposób mają zostać zaktualizowane. Element Variable zawiera następujące atrybuty:
- atrybut type - przyjmuje wartości: attach (operacja jest wykonywana dla podłączonych PZ), detach (operacja wykonywana dla PZ, które zostały odłączone)
- atrybut operation - określa rodzaj operacji, przyjmuje wartości: value (określona wartość danej kolumny w rekordzie), fixed (stała wartość), sumint (suma (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), sumfloat (suma (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyint (iloczyn (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyfloat (iloczyn (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), avg (średnia (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), amount (ilość podłączonych PZ), variable (wartość zmiennej w procesie)
- atrybut from – zależny od wartości atrybutu operation, dla value, sumint, sumfloat, multiplyint, multiplyfloat, avg – identyfikator kolumny, z której ma zostać pobrana wartość z rekordu, dla fixed – stała wartość, dla variable – nazwa zmiennej z procesu, której wartość ma zostać przypisana do indeksu, dla amount - niewykorzystywane
- atrybut to – określa nazwę kolumny która będzie aktualizowana w tabeli w bazie danych, z której pobierane są rekordy
- element SaveVariablesAction - zapisuje wartości z modułu do zmiennych w procesie, akcję aktywuje się poprzez podanie wartości true w atrybucie active, akcja zawiera elementy Variable, które określaja, jakie zmienne procesu i w jaki sposób mają zostać zaktualizowane. Element Variable zawiera następujące atrybuty:
- atrybut type - określa typ zmiennej procesu, przyjmuje wartości: FORM (zmienna na formularzu), DT (zmienna w tabeli dynamicznej)
- atrybut operation - określa rodzaj operacji, przyjmuje wartości: value (określona wartość danej kolumny w rekordzie), fixed (stała wartość), sumint (suma (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), sumfloat (suma (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyint (iloczyn (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyfloat (iloczyn (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), avg (średnia (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), amount (ilość podłączonych PZ), variable (wartość zmiennej w procesie)
- atrybut from – zależny od wartości atrybutu type, dla typu DT – dodawane są kolejne rekordy do tabeli dynamicznej (taka sama liczba rekordów, jak podłączonych PZ), dla typu FORM – zależne od atrybutu operation, dla value – wszystkie wartości w kolumnie, której identyfikator podano w tym atrybucie zostaną rozdzielone przecinkiem (należy pamiętać, że dla źródła danych w postaci klasy dokumentów można podać także fileId), dla fixed – stała wartość, dla sumint, sumfloat, multiplyint, multiplyfloat, avg, amount, variable – identyfikator kolumny, z której ma zostać pobrana wartość z rekordu
- atrybut to – określa identyfikator zmiennej procesu
- element AttachToProcessAction - podłącza do procesu dokumenty wybrane w module, ma znaczenie jedynie, gdy źródłem rekordów jest klasa dokumentów (zobacz 3), akcję aktywuje się poprzez podanie wartości true w atrybucie active
- element CreateSummaryAction - generuje zestawienie podłączonych PZ, każdorazowo po wejściu do modułu i akceptacji podłączenia poprzednie zestawienie PZ jest odłączane od procesu i usuwane z systemu (aktualne zestawienie jest identyfikowane po nazwie klasy dokumentów, zaleca się więc by były one przechowywane w oddzielnej klasie, żeby wykluczyć przypadek odłączania potrzebnych dokumentów), akcję aktywuje się poprzez podanie wartości true w atrybucie active, element zawiera także takie atrybuty jak: docClassName (nazwa klasy dokumentów, w której zapisywane są wygenerowane zestawienia PZ), templateName (nazwa szablonu zestawienia, nazwa odnosi się do szablonu dodanego w Administracja->Workflow->Procesy->Proces->Szablony dokumentów), userName (nazwa użytkownika, który dodaje zestawienie do systemu, możliwe wartości to: „” - pusta wartość, wtedy użytkownikiem dodającym dokument zestawienia PZ do systemu, jest użytkownik określony w polu SchedulerToolAgent.sharkUsername w pliku konfiguracyjnym Shark, sTaskUserName – użytkownik aktualnie wykonujący operację podłączania PZ, <identyfikator zmiennej procesu> - nazwa zmiennej procesu, w której przechowywany jest login użytkownika, jeżeli wartość jest pusta, użytkownikiem dodającym dokument zestawienia PZ do systemu, jest użytkownik określony w polu SchedulerToolAgent.sharkUsername w pliku konfiguracyjnym Shark), description (opis dołączanego zestawienia PZ, wartość domyślna: „Zestawienie PZ”), horizontalOrientation (pozwala ustawić horyzontalną orientację strony w wygenerowanym dokumencie, przyjmuje wartości true lub false, wartość domyślna: false), sortOrder (identyfikatory kolumn rozdzielone znakiem średnika, względem których mają zostać dodatkowo posortowane dane przeznaczone dla zestawienia PZ, gdy atrybut ma pustą wartośc, to dodatkowe sortowanie nie jest realizowane, wartość domyślna: „”), co więcej akcja zawiera elementy Variable, które przygotowują mapę z odpowiednio opisanymi wartościami do wygenerowania zestawienia PZ. W szablonie zestawienia PZ należy stosować konwencję postaci pz.kwota_brutto. Wartość pz. jest obowiązkowa, następnie można podać dowolną wartość identyfikującą pole (w tym przypadku kwota_brutto). Element Variable zawiera następujące atrybuty:
- atrybut type – określa źródło wykonywania operacji (dane podsumowujące lub poszczególne rekordy podłączonych PZ), przyjmuje wartości: PZ (poszczególne rekordy podłączonych PZ), SUMMARY (dane podsumowujące)
- atrybut operation - określa rodzaj operacji, ma znaczenie tylko tam, gdzie atrybut type przyjmuje wartość SUMMARY, przyjmuje wartości: value (określona wartość danej kolumny w rekordzie), fixed (stała wartość), sumint (suma (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), sumfloat (suma (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyint (iloczyn (wartość całkowita) wartości danej kolumny dla wszystkich podłączonych PZ), multiplyfloat (iloczyn (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), avg (średnia (wartość dziesiętna) wartości danej kolumny dla wszystkich podłączonych PZ), amount (ilość podłączonych PZ), variable (wartość zmiennej w procesie)
- atrybut from - zależy od atrybutu type i operation, type o wartości SUMMARY: dla operation fixed – stała wartość, dla operation sumint, sumfloat, multiplyint, multiplyfloat, avg, amount, variable – identyfikator kolumny, z której ma zostać pobrana wartość, type o wartości PZ: identyfikator kolumny, z której ma zostać pobrana wartość lub wartość PZSequencer, w przypadku, gdy chcemy numerować kolejne podłączone PZ (zaczynając od 1)
- atrybut to – określa nazwę pola, które zostało użyte w szablonie zestawienia za znakiem pz. (np. gdy w szablonie określone jest pole pz.kwota_brutto, atrybut należy ustawić na wartość kwota_brutto)
- element SaveIndexesAction - zapisuje wartości z modułu do indeksów dokumentu z danej klasy dokumentów, ma znaczenie jedynie, gdy źródłem rekordów jest klasa dokumentów (zobacz 3), akcję aktywuje się poprzez podanie wartości true w atrybucie active, akcja zawiera elementy Variable, które określaja, jakie indeksy i w jaki sposób mają zostać zaktualizowane. Element Variable zawiera następujące atrybuty:
Add Comment