# Zaawansowany edytor warunków

{% hint style="info" %}
Edytor nie wymaga podawania prefixu "**js:"** oraz nie będzie go wyświetlał w warunkach. Prefix zostanie doklejony w źródle automatycznie w momencie zapisywania zmian.
{% endhint %}

## Wstęp

Zaawansowany edytor warunków to specjalny edytor mający na celu usprawnienie pracy projektanta wniosku. Został on wyposażony w następujące funkcjonalności:

* kolorowanie składni,
* wyświetlanie podpowiedzi nazw zmiennych i pól podczas edycji warunków,
* wyświetlanie podpowiedzi API eximee podczas edycji warunków.

<figure><img src="/files/pWSG1ZJk0zlbcsY1bBul" alt=""><figcaption><p><em><strong>Ilustracja 1.</strong> Przykładowe warunki w palecie właściwości komponentu</em></p></figcaption></figure>

## Miejsca wystąpienia <a href="#zaawansowanyedytorwarunkow-miejscawystapienia" id="zaawansowanyedytorwarunkow-miejscawystapienia"></a>

Trzy atrybuty komponentów w Eximee Designer korzystają z tego edytora. Są to:

* warunek widoczności,
* warunek aktywności,
* warunek wymagalności.

<figure><img src="/files/RMIoMcaC7ypsVNl0h8Ex" alt=""><figcaption><p><em><strong>Ilustracja 2.</strong> Zaawansowany edytor warunków - edycja warunku widoczności</em></p></figcaption></figure>

## Podpowiadanie składni <a href="#zaawansowanyedytorwarunkow-podpowiadanieskladni" id="zaawansowanyedytorwarunkow-podpowiadanieskladni"></a>

Edytor podpowiada użytkownikowi elementy API eximee i często używane metody JS. Podpowiedzi edytora można zobaczyć klikając kombinację klawiszy Ctrl + Spacja. Spowoduje to rozwinięcie listy z elementami, spośród których można zobaczyć poniższe:

Standardowe metody i pola JS:

* parseInt()
* parseFloat()
* .length
* size
* empty

API dostarczane przez eximee:

* getValue()
* getData()
* isVisible()
* getStatementValue()

<figure><img src="/files/oSSKMcEx0rqRGwJHgryB" alt=""><figcaption><p><em><strong>Ilustracja 3.</strong> Zaawansowany edytor warunków - rozwinięta lista z podpowiedziami składni</em></p></figcaption></figure>

\
Dodatkowo w podpowiedziach będą pojawiać się MIDy komponentów (z ich ID w nawiasie) oraz nazw zmiennych sesyjnych występujących na wniosku.

<figure><img src="/files/Mszm1Cy0apRX5BgBiZtr" alt=""><figcaption><p><em><strong>Ilustracja 4.</strong> Zaawansowany edytor warunków - widok podpowiedzi komponentów znajdujących się w artefakcie</em></p></figcaption></figure>

<figure><img src="/files/ocd8KBDvepRG58GAVO1j" alt=""><figcaption><p><em><strong>Ilustracja 5.</strong> Zaawansowany edytor warunków - widok podpowiedzi przefiltrowanych komponentów</em></p></figcaption></figure>

## Przykłady warunków <a href="#zaawansowanyedytorwarunkow-przykladywarunkow" id="zaawansowanyedytorwarunkow-przykladywarunkow"></a>

```javascript
// porównanie całkowitoliczbowe pola typu TextField
parseInt(getValue("GesTextField3"))>5
  
// porównanie zmiennoprzecinkowe pola typu TextField
parseFloat(getValue("GesTextField5"))<200.001
  
// porównanie wartości logicznej (równe) pola typu CheckBox
getValue("GesCheckbox1")=="true"
 
// porównanie wartości logicznej (różne) pola typu CheckBox
getValue("GesCheckbox1")!="true"
 
// porównanie wartości tekstowej pola typu RadioGroup
getValue("GesRadioGroup1")=="audi"
  
// sprawdzenie czy wartość, np. zmienna sesyjna nie pusta
!!getValue("nazwiskoZew")
  
// sprawdzenie czy wartość, np. zmienna sesyjna jest pusta
!getValue("nazwiskoZew")
  
// sprawdzenie, czy oświadczenie o midzie oswiadczenie1 w komponencie o id GesStatementPopup1 zostało zaakceptowane
getStatementItem("GesStatementPopup1","oswiadczenie1") == "true"
  
// sprawdzenie, czy oświadczenie o midzie zdrowotne w komponencie o id GesStatementFlat5 (znajdujące się w komponencie złożonym) zostało zaakceptowane
getStatementItem("@GesStatementFlat5","zdrowotne")=="false"
 
 
// warunek wymagalności dla pola, jeśli inne są puste
!!!(getValue("@GesTextField13")||getValue("@GesTextField8"))
 
 
// sprawdzenie wartości comboboxów
getValue("@GesCombobox1")!=2&&getValue("@GesCombobox1")>0
 
 
// sprawdzenie czy TextField jest widoczny
isVisible("@GesTextField1")=="true"
 
 
//sprawdzenie, czy liczba znaków w TextField wynosi 10
getValue("GesTextField5").length==10

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.eximee.com/budowanie-aplikacji/logika-biznesowa/jezyk-wyrazen-definiowania-warunkow-warunki-z-getvalue/zaawansowany-edytor-warunkow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
