Espressione

Da Opera Wiki.

(Differenze fra le revisioni)
(Espressioni)
(Funzioni disponibili)
Riga 30: Riga 30:
== Funzioni disponibili ==
== Funzioni disponibili ==
-
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:
+
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:
-
* <code>profile(...)</code>: verifica se ci si trova in uno specifico profilo.   
+
* <code>profile(CODICE_PROFILO) </code>: verifica se la condizione è esaminata in uno specifico profilo.   
-
* <code>typology-option(...)</code>: controlla se un’opzione è attiva in una qualunque struttura della tipologia.   
+
* <code>typology-option(CODICE_OPZIONE) </code>: controlla se un’opzione è attiva in una qualunque struttura della tipologia.   
-
* <code>option(...)</code>: controlla se un’opzione è attiva nella struttura corrente.   
+
* <code>option(CODICE_OPZIONE) </code>: controlla se un’opzione è attiva nella struttura corrente.   
-
* <code>frameside-contains(...)</code>: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.   
+
* <code>frameside-contains(CODICE) </code>: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.   
-
* <code>frame-contains(...)</code>: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).   
+
* <code>frame-contains(CODICE) </code>: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).   
-
* <code>side-contains(...)</code>: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).   
+
* <code>sideX-contains(...) </code>: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).   
-
* <code>struct-contains(...)</code>: verifica nella struttura corrente.   
+
* <code>struct-contains(...) </code>: verifica nella struttura corrente.   
-
* <code>typology-contains(...)</code>: ricerca estesa a tutte le strutture della tipologia.   
+
* <code>typology-contains(...) </code>: ricerca estesa a tutte le strutture della tipologia
 +
* <code>fix-contains(...) </code>:
 +
* <code>sash-contains(...) </code>: verifica nei profili dell'anta corrente .   
-
Esempi:
+
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:
 +
* <code>sash-panes-contains(...) </code>: verifica nel riempimento dell'anta corrente. 
 +
* <code>struct-panes-contains(...) </code>: verifica in tutti i riempimenti della struttura. 

Versione delle 10:13, 26 ago 2025

Indice

Espressioni

Le espressioni consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni. Un’espressione può contenere numeri, variabili, operatori matematici/logici e funzioni integrate, che vengono valutati per stabilire se una condizione è vera o falsa.

Gli operatori matematici disponibili sono:

  • + - * / → rispettivamente addizione, sottrazione, moltiplicazione e divisione
  • > → maggiore
  • < → minore

Concatenazione degli elementi

Gli elementi possono essere combinati tra loro tramite:

  • l’uso di funzioni nidificate;
  • l’uso di operatori logici per unire più condizioni.

Gli operatori logici sono:

  • & → AND logico (entrambe le condizioni devono essere vere);
  • | → OR logico (almeno una condizione deve essere vera).



Note ES:
profile(A) & option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva 
Lia > 500 & Hia > 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm 
struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.
option(OPZ1) & (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''


Funzioni disponibili

Sono previste varie funzioni integrate, utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:

  • profile(CODICE_PROFILO) : verifica se la condizione è esaminata in uno specifico profilo.
  • typology-option(CODICE_OPZIONE) : controlla se un’opzione è attiva in una qualunque struttura della tipologia.
  • option(CODICE_OPZIONE) : controlla se un’opzione è attiva nella struttura corrente.
  • frameside-contains(CODICE) : verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.
  • frame-contains(CODICE) : verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).
  • sideX-contains(...) : come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).
  • struct-contains(...) : verifica nella struttura corrente.
  • typology-contains(...) : ricerca estesa a tutte le strutture della tipologia.
  • fix-contains(...) :
  • sash-contains(...) : verifica nei profili dell'anta corrente .

Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:

  • sash-panes-contains(...) : verifica nel riempimento dell'anta corrente.
  • struct-panes-contains(...) : verifica in tutti i riempimenti della struttura.



Note ES:
profile(NOME_PROFILO)
struct-contains(NOME_PROFILO_O_ACCESSORIO)
option(NOME_OPZIONE)
struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.
option(OPZ1) & (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''

Ricerca avanzata

Le espressioni supportano due tipi di ricerca evoluta:

Ricerca regolare

Se il parametro inizia con r=, viene interpretato come una regular expression.

Esempio: side-contains(r=P.*2) → ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera P seguita dal numero 2, con qualunque carattere in mezzo.

Ricerca per parole chiave

Se il parametro è keyword(kw), viene ricercata la parola chiave kw nelle parole chiave dei profili, accessori o opzioni.

Esempio: frameside-contains(keyword(KITAR)) → verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave KITAR.

Le ricerche regolari e per parole chiave possono anche essere annidate.

Esempio: typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per FR.

Strumenti personali