<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.operacompany.com/it/skins/common/feed.css?207"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://wiki.operacompany.com/it/index.php?feed=atom&amp;target=Fabrizio.Loddo&amp;title=Speciale%3AContributi</id>
		<title>Opera Wiki - Contributi utente [it]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.operacompany.com/it/index.php?feed=atom&amp;target=Fabrizio.Loddo&amp;title=Speciale%3AContributi"/>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Speciale:Contributi/Fabrizio.Loddo"/>
		<updated>2026-09-26T07:09:07Z</updated>
		<subtitle>Da Opera Wiki.</subtitle>
		<generator>MediaWiki 1.15.4</generator>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Gestione_profili_commessa</id>
		<title>Gestione profili commessa</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Gestione_profili_commessa"/>
				<updated>2026-06-04T10:15:16Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Sezione 4: impostazioni per aumentare la quantità di barre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NB|Questo quadro è raggiungibile premendo il tasto [[Image:tastodatiprofili.png]] dal quadro di gestione del materiale della commessa}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
[[File:gestioneprofilicommessa.png|600px|thumb|Il quadro di gestione dei profili della commessa]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{NB|In questo quadro vengono inseriti tutti i profili della commessa ed è possibile, per ognuno, modificarne la quantità la lunghezza, il tipo di ottimizzazione o il macchinario abbinato, senza cambiare i dati in archivio.}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 1: tasti azione ==&lt;br /&gt;
&lt;br /&gt;
*[[File:tastopiu.png]][[File:tastomeno.png]][[File:tastodiverso.png]][[File:tastouguale.png]]: tasti di ''immissione'', ''cancellazione'', ''modifica'' e ''duplicazione'' di una registrazione.&lt;br /&gt;
&lt;br /&gt;
*[[File:tastostampa2.png|28x28px]]: La pressione di questo pulsante consente di effettuare la stampa di un documento che contiene i profili in questo quadro.&lt;br /&gt;
&lt;br /&gt;
*Il pulsante [[file:tastoexcel.png|28x28px]] consente di esportare il contenuto del quadro corrente in un documento in formato foglio di calcolo (es: Excel). Maggiori informazioni sull'utilizzo di questa funzionalità possono essere trovati nella [[Come usare un foglio di calcolo per esportare/importare dati in Opera|pagina dedicata]]&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 2: dati del profilo ==&lt;br /&gt;
&lt;br /&gt;
*'''Nome''' [[File:tastoc.png]]: è il codice del profilo.&lt;br /&gt;
*'''Col. int''' [[File:tastoc.png]]: consente di specificare il colore interno, dell'articolo&lt;br /&gt;
*'''Col. est''' [[File:tastoc.png]]: consente di specificare il colore esterno, dell'articolo&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 3: impostazioni di ottimizzazione del profilo ==&lt;br /&gt;
&lt;br /&gt;
*'''Tipo ottimizzazione''' [[File:tastomenutendina.png]]: in questo campo si apre una tendina dove è possibile impostare il tipo di ottimizzazione da applicare al profilo. Per l'utilizzo di questo campo si veda il capitolo [[Parametri_di_ottimizzazione#Sezione_3_-_parametri_per_il_tipo_di_ottimizzazione|Parametri di ottimizzazione]]&lt;br /&gt;
{{BR}}&lt;br /&gt;
==Sezione 4: impostazioni per aumentare il numero di barre==&lt;br /&gt;
 &lt;br /&gt;
*'''Aggiunta barre''': consente di inserire il numero di barre che servono per ordinare del materiale aggiuntivo.&lt;br /&gt;
**Il valore inserito viene sommato direttamente al numero di barre calcolato dal programma.&lt;br /&gt;
**Esempio:&lt;br /&gt;
***barre calcolate dal programma: ''20''&lt;br /&gt;
***aggiunta barre: ''2''&lt;br /&gt;
***totale barre ordinate: ''22''&lt;br /&gt;
&lt;br /&gt;
*'''Aumento barre''': consente di inserire un valore in percentuale per aumentare automaticamente il numero di barre da ordinare.&lt;br /&gt;
**Il valore deve essere inserito senza il simbolo ''%''.&lt;br /&gt;
**L'aumento viene applicato al fabbisogno del profilo selezionato.&lt;br /&gt;
**Questa funzione è utile per prevedere materiale aggiuntivo dovuto a sfridi, scarti o scorte di magazzino.&lt;br /&gt;
**Esempio:&lt;br /&gt;
***barre calcolate dal programma: ''20''&lt;br /&gt;
***aumento barre: ''10''&lt;br /&gt;
***totale barre ordinate: ''22''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NB|Gli effetti di queste variazioni saranno visibili nella distinta materiale della commessa su cui si stanno inserendo le variazioni.}}&lt;br /&gt;
&lt;br /&gt;
{{NB|Questa funzione è differente dall''''Aumento barre''' presente nel quadro [[Parametri di ottimizzazione]]. In quel caso l'aumento viene applicato utilizzando le impostazioni definite nell'[[Archivio colorazioni]] e può influire anche sulla distinta materiale da magazzino. Nel quadro corrente invece l'aumento viene applicato solamente alla commessa e al profilo selezionato.}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 5: modifica delle dimensioni delle barre ==&lt;br /&gt;
 &lt;br /&gt;
*'''Lunghezza barra''': campo che consente di indicare una lunghezza barra diversa per la commessa.&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta il dato registrato in archivio.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 6: modifica della troncatrice abbinata ==&lt;br /&gt;
&lt;br /&gt;
*'''Troncatrice''' [[File:tastomenutendina.png]]: dal menù abbinato è possibile selezionare una troncatrice a cui abbinare il profilo.&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta la troncatrice a cui il profilo è abbinato.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 7: modifica dell'altezza profilo ==&lt;br /&gt;
&lt;br /&gt;
*'''Altezza''': campo che consente di modificare l'altezza del profilo.&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta il dato registrato in archivio.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 8: modifica della saldatrice abbinata ==&lt;br /&gt;
&lt;br /&gt;
*'''Saldatrice''' [[File:tastomenutendina.png]]: dal menù abbinato è possibile selezionare una saldatrice a cui abbinare il profilo&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta la saldatrice a cui il profilo è abbinato.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- HELP: JM/W1128 --&amp;gt;&lt;br /&gt;
[[Category: JM/Manuale]]&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Gestione_profili_commessa</id>
		<title>Gestione profili commessa</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Gestione_profili_commessa"/>
				<updated>2026-06-04T10:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Sezione 4: impostazioni per l'aumento delle barre */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{NB|Questo quadro è raggiungibile premendo il tasto [[Image:tastodatiprofili.png]] dal quadro di gestione del materiale della commessa}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
[[File:gestioneprofilicommessa.png|600px|thumb|Il quadro di gestione dei profili della commessa]]&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
{{NB|In questo quadro vengono inseriti tutti i profili della commessa ed è possibile, per ognuno, modificarne la quantità la lunghezza, il tipo di ottimizzazione o il macchinario abbinato, senza cambiare i dati in archivio.}}&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 1: tasti azione ==&lt;br /&gt;
&lt;br /&gt;
*[[File:tastopiu.png]][[File:tastomeno.png]][[File:tastodiverso.png]][[File:tastouguale.png]]: tasti di ''immissione'', ''cancellazione'', ''modifica'' e ''duplicazione'' di una registrazione.&lt;br /&gt;
&lt;br /&gt;
*[[File:tastostampa2.png|28x28px]]: La pressione di questo pulsante consente di effettuare la stampa di un documento che contiene i profili in questo quadro.&lt;br /&gt;
&lt;br /&gt;
*Il pulsante [[file:tastoexcel.png|28x28px]] consente di esportare il contenuto del quadro corrente in un documento in formato foglio di calcolo (es: Excel). Maggiori informazioni sull'utilizzo di questa funzionalità possono essere trovati nella [[Come usare un foglio di calcolo per esportare/importare dati in Opera|pagina dedicata]]&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 2: dati del profilo ==&lt;br /&gt;
&lt;br /&gt;
*'''Nome''' [[File:tastoc.png]]: è il codice del profilo.&lt;br /&gt;
*'''Col. int''' [[File:tastoc.png]]: consente di specificare il colore interno, dell'articolo&lt;br /&gt;
*'''Col. est''' [[File:tastoc.png]]: consente di specificare il colore esterno, dell'articolo&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 3: impostazioni di ottimizzazione del profilo ==&lt;br /&gt;
&lt;br /&gt;
*'''Tipo ottimizzazione''' [[File:tastomenutendina.png]]: in questo campo si apre una tendina dove è possibile impostare il tipo di ottimizzazione da applicare al profilo. Per l'utilizzo di questo campo si veda il capitolo [[Parametri_di_ottimizzazione#Sezione_3_-_parametri_per_il_tipo_di_ottimizzazione|Parametri di ottimizzazione]]&lt;br /&gt;
{{BR}}&lt;br /&gt;
==Sezione 4: impostazioni per aumentare la quantità di barre==&lt;br /&gt;
 &lt;br /&gt;
*'''Aggiunta barre''': consente di inserire il numero di barre che servono per ordinare del materiale aggiuntivo.&lt;br /&gt;
**Il valore inserito viene sommato direttamente al numero di barre calcolato dal programma.&lt;br /&gt;
**Esempio:&lt;br /&gt;
***barre calcolate dal programma: ''20''&lt;br /&gt;
***aggiunta barre: ''2''&lt;br /&gt;
***totale barre ordinate: ''22''&lt;br /&gt;
&lt;br /&gt;
*'''Aumento barre''': consente di inserire un valore in percentuale per aumentare automaticamente il numero di barre da ordinare.&lt;br /&gt;
**Il valore deve essere inserito senza il simbolo ''%''.&lt;br /&gt;
**L'aumento viene applicato al fabbisogno del profilo selezionato.&lt;br /&gt;
**Questa funzione è utile per prevedere materiale aggiuntivo dovuto a sfridi, scarti o scorte di magazzino.&lt;br /&gt;
**Esempio:&lt;br /&gt;
***barre calcolate dal programma: ''20''&lt;br /&gt;
***aumento barre: ''10''&lt;br /&gt;
***totale barre ordinate: ''22''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{NB|Gli effetti di queste variazioni saranno visibili nella distinta materiale della commessa su cui si stanno inserendo le variazioni.}}&lt;br /&gt;
&lt;br /&gt;
{{NB|Questa funzione è differente dall''''Aumento barre''' presente nel quadro [[Parametri di ottimizzazione]]. In quel caso l'aumento viene applicato utilizzando le impostazioni definite nell'[[Archivio colorazioni]] e può influire anche sulla distinta materiale da magazzino. Nel quadro corrente invece l'aumento viene applicato solamente alla commessa e al profilo selezionato.}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 5: modifica delle dimensioni delle barre ==&lt;br /&gt;
 &lt;br /&gt;
*'''Lunghezza barra''': campo che consente di indicare una lunghezza barra diversa per la commessa.&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta il dato registrato in archivio.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 6: modifica della troncatrice abbinata ==&lt;br /&gt;
&lt;br /&gt;
*'''Troncatrice''' [[File:tastomenutendina.png]]: dal menù abbinato è possibile selezionare una troncatrice a cui abbinare il profilo.&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta la troncatrice a cui il profilo è abbinato.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 7: modifica dell'altezza profilo ==&lt;br /&gt;
&lt;br /&gt;
*'''Altezza''': campo che consente di modificare l'altezza del profilo.&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta il dato registrato in archivio.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Sezione 8: modifica della saldatrice abbinata ==&lt;br /&gt;
&lt;br /&gt;
*'''Saldatrice''' [[File:tastomenutendina.png]]: dal menù abbinato è possibile selezionare una saldatrice a cui abbinare il profilo&lt;br /&gt;
*'''Originale''': in questo campo il programma riporta la saldatrice a cui il profilo è abbinato.&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- HELP: JM/W1128 --&amp;gt;&lt;br /&gt;
[[Category: JM/Manuale]]&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-27T08:13:58Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Espressioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni oppure per la definizione di valori di quota di profili o accessori.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni separate da parentesi tonde.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente nel lato corrente del telaio/anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio sull'intero perimetro del telaio/anta&lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio 'ACC123' oppure 'ACC456'.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione 'OPZ1' deve essere attiva e, allo stesso tempo, il lato deve contenere 'PF100' o 'PF200'&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regexp''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave 'KITAR'.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere ''annidate''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per 'FR'. &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- HELP: JM/W517 --&amp;gt;&lt;br /&gt;
[[Category: JM/Manuale]]&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-27T07:52:18Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni oppure per la definizione di valori di quota di profili o accessori.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni separate da parentesi tonde.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio 'ACC123' oppure 'ACC456'.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione 'OPZ1' deve essere attiva e, allo stesso tempo, il lato deve contenere 'PF100' o 'PF200'&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regexp''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave 'KITAR'.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere ''annidate''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per 'FR'. &amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- HELP: JM/W517 --&amp;gt;&lt;br /&gt;
[[Category: JM/Manuale]]&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-27T07:36:11Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni speciali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni oppure per la definizione di valori di quota di profili o accessori.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni separate da parentesi tonde.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio 'ACC123' oppure 'ACC456'.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione 'OPZ1' deve essere attiva e, allo stesso tempo, il lato deve contenere 'PF100' o 'PF200'&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regexp''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave 'KITAR'.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere ''annidate''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per 'FR'. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:52:17Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni oppure per la definizione di valori di quota di profili o accessori.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni separate da parentesi tonde.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regexp''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave 'KITAR'.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere ''annidate''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per 'FR'. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:50:36Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca codici avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni separate da parentesi tonde.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regexp''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave 'KITAR'.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere ''annidate''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per 'FR'. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:49:37Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni separate da parentesi tonde.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:49:21Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;(Lia&amp;gt;500) &amp;amp; (Hia&amp;gt;1600) → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:48:40Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:48:01Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A1010) &amp;amp; option(OPZ1) → vero solo se il profilo è 'A1010' E l’opzione 'OPZ1' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio 'ACC123' OPPURE 'ACC456'.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione 'OPZ1' deve essere attiva E CONTEMPORANEAMENTE, il lato deve contenere uno tra 'PF100' o 'PF200'&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:38:24Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni speciali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni speciali'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:32:26Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni disponibili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni speciali ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:31:03Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Espressioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T12:30:22Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], ''operatori matematici/logici'', ''funzioni matematiche'' e ''funzioni speciali'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
Le funzioni matematiche disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;round(x) &amp;lt;/code&amp;gt; → restituisce il numero intero più vicino a X&lt;br /&gt;
* &amp;lt;code&amp;gt;floor(x)&amp;lt;/code&amp;gt; → restituisce il numero intero minore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;ceil(x)&amp;lt;/code&amp;gt; → restituisce il numero intero maggiore o uguale a X&lt;br /&gt;
* &amp;lt;code&amp;gt;sqr(x)&amp;lt;/code&amp;gt; → restituisce la radice quadrata di X&lt;br /&gt;
* &amp;lt;code&amp;gt;log(x)&amp;lt;/code&amp;gt; → restituisce il logaritmo naturale di X&lt;br /&gt;
* &amp;lt;code&amp;gt;exp(x)&amp;lt;/code&amp;gt; → restituisce il risultato di e^&amp;lt;sup&amp;gt;x&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;cos(x) | sin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente il coseno e il seno di X&lt;br /&gt;
* &amp;lt;code&amp;gt;acos(x) | asin(x) &amp;lt;/code&amp;gt; → restituisce rispettivamente l'arcocoseno e l'arcoseno di X&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:36:56Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca codici avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;espressione regolare&amp;lt;/code&amp;gt;: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;parola chiave (keyword)&amp;lt;/code&amp;gt;: se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca codici avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta, utili quando una condizione non deve applicarsi su un singolo profilo ma a tutti i profili con un certo nome (o parte di nome) o una certa parola chiave:&lt;br /&gt;
&lt;br /&gt;
* espressione regolare: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* parola chiave (keyword): se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:34:55Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
* espressione regolare: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* parola chiave (keyword): se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:34:30Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
* espressione regolare: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* parola chiave (keyword): se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;}}&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:34:15Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
* espressione regolare: se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
* parola chiave (keyword): se il parametro è &amp;lt;code&amp;gt;keyword(key)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''key'' nei campi chiave di profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;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.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;frameside-contains(keyword(KITAR))→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
{{ES|&lt;br /&gt;
&amp;lt;pre&amp;gt;typology-contains(keyword(r=^FR)) → ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''. &amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:30:28Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Ricerca avanzata */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:30:06Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni disponibili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:15:10Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni disponibili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(CODICE_PROFILO) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(CODICE_OPZIONE) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(CODICE_OPZIONE) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(CODICE) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(CODICE) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili del telaio corrente .  &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T10:13:21Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni disponibili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie ''funzioni integrate'', utili per controllare la presenza o lo stato di profili, accessori e opzioni all'interno della struttura:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(CODICE_PROFILO) &amp;lt;/code&amp;gt;: verifica se la condizione è esaminata in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(CODICE_OPZIONE) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(CODICE_OPZIONE) &amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(CODICE) &amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(CODICE) &amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;sideX-contains(...) &amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (inserire valore al posto di X: 1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...) &amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...) &amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;fix-contains(...) &amp;lt;/code&amp;gt;: &lt;br /&gt;
* &amp;lt;code&amp;gt;sash-contains(...) &amp;lt;/code&amp;gt;: verifica nei profili dell'anta corrente .  &lt;br /&gt;
&lt;br /&gt;
Per la ricerca all'interno delle specchiature, sono previste le seguenti funzioni:&lt;br /&gt;
* &amp;lt;code&amp;gt;sash-panes-contains(...) &amp;lt;/code&amp;gt;: verifica nel riempimento dell'anta corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-panes-contains(...) &amp;lt;/code&amp;gt;: verifica in tutti i riempimenti della struttura.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:57:00Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Espressioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
Gli operatori matematici disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori logici sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;+ - * / &amp;lt;/code&amp;gt; → rispettivamente addizione, sottrazione, moltiplicazione e divisione&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt; → maggiore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt; → minore&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:54:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni disponibili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:53:43Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Funzioni disponibili */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(NOME_PROFILO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/pre&amp;gt;  &lt;br /&gt;
&amp;lt;pre&amp;gt;option(NOME_OPZIONE)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:52:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
{{BR}}&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:52:19Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se la larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:51:58Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Espressioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]], operatori matematici/logici e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se il La larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:51:13Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;Lia &amp;gt; 500 &amp;amp; Hia &amp;gt; 1600 → vero solo se il La larghezza dell'anta è maggiore di 500mm e l'altezza dell'anta è maggiore di 1600mm &amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:49:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200)) → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:49:09Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
&amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456) → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/pre&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:48:28Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &amp;lt;/pre&amp;gt; &lt;br /&gt;
struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/pre&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;}} &lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/pre&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:48:08Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
*profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva &lt;br /&gt;
*struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/pre&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;}} &lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/pre&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/pre&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/pre&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}} &lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/pre&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:46:19Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;pre&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/pre&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:45:36Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Template:ES</id>
		<title>Template:ES</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Template:ES"/>
				<updated>2025-08-26T09:45:04Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background-color:#E8E8E8; font-color:#FFFFFF; padding:3px 3px 3px 3px; border:1px dashed #C34A2C&amp;quot;&amp;gt;[[Image:iconanote.png|Note|link=]] '''ES:'''&amp;lt;br/&amp;gt; {{{1}}}&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| profile(A) &amp;amp; option(OPZ1) → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:44:10Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:43:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva}}&lt;br /&gt;
&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:43:37Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva. }}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.}}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:43:23Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva. }}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.  }}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:43:06Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva. }}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.  }}&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''.}}&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:42:37Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
{{ES| &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva. }}&lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''.&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:41:59Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Espressioni */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [[variabili]] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''.&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:41:48Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', [variabili] e ''funzioni integrate'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''.&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	<entry>
		<id>http://wiki.operacompany.com/it/index.php/Espressione</id>
		<title>Espressione</title>
		<link rel="alternate" type="text/html" href="http://wiki.operacompany.com/it/index.php/Espressione"/>
				<updated>2025-08-26T09:40:25Z</updated>
		
		<summary type="html">&lt;p&gt;Fabrizio.Loddo:&amp;#32;/* Concatenazione degli elementi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Espressioni =&lt;br /&gt;
&lt;br /&gt;
Le '''espressioni''' consentono di definire regole complesse per la verifica delle condizioni nelle autoselezioni.  &lt;br /&gt;
Un’espressione può contenere ''numeri'', ''variabili'' e ''funzioni'', che vengono valutati per stabilire se una condizione è vera o falsa.  &lt;br /&gt;
&lt;br /&gt;
== Concatenazione degli elementi ==&lt;br /&gt;
Gli elementi possono essere combinati tra loro tramite:&lt;br /&gt;
* l’uso di funzioni nidificate;&lt;br /&gt;
* l’uso di operatori logici per unire più condizioni.&lt;br /&gt;
&lt;br /&gt;
Gli operatori disponibili sono:&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; → AND logico (entrambe le condizioni devono essere vere);  &lt;br /&gt;
* &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; → OR logico (almeno una condizione deve essere vera).  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(A) &amp;amp; option(OPZ1)&amp;lt;/code&amp;gt; → vero solo se il profilo è ''A'' '''e''' l’opzione ''OPZ1'' è attiva.  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(ACC123) | struct-contains(ACC456)&amp;lt;/code&amp;gt; → vero se la struttura contiene l’accessorio ''ACC123'' '''oppure''' ''ACC456''.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(OPZ1) &amp;amp; (side-contains(PF100) | side-contains(PF200))&amp;lt;/code&amp;gt; → l’opzione ''OPZ1'' deve essere attiva e, allo stesso tempo, il lato deve contenere ''PF100'' o ''PF200''.&lt;br /&gt;
&lt;br /&gt;
== Funzioni disponibili ==&lt;br /&gt;
Sono previste varie '''funzioni-struttura''', utili per controllare la presenza o lo stato di profili, accessori e opzioni:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(...)&amp;lt;/code&amp;gt;: verifica se ci si trova in uno specifico profilo.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva in una qualunque struttura della tipologia.  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(...)&amp;lt;/code&amp;gt;: controlla se un’opzione è attiva nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frameside-contains(...)&amp;lt;/code&amp;gt;: verifica se un profilo/accessorio è presente in un lato del telaio o dell’anta.  &lt;br /&gt;
* &amp;lt;code&amp;gt;frame-contains(...)&amp;lt;/code&amp;gt;: verifica la presenza di un profilo/accessorio nel telaio o nell’anta (qualsiasi lato).  &lt;br /&gt;
* &amp;lt;code&amp;gt;side-contains(...)&amp;lt;/code&amp;gt;: come sopra, ma riferito a un lato specifico (1 = sx, 2 = dx, 3 = sup, 4 = inf).  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(...)&amp;lt;/code&amp;gt;: verifica nella struttura corrente.  &lt;br /&gt;
* &amp;lt;code&amp;gt;typology-contains(...)&amp;lt;/code&amp;gt;: ricerca estesa a tutte le strutture della tipologia.  &lt;br /&gt;
&lt;br /&gt;
Esempi:&lt;br /&gt;
* &amp;lt;code&amp;gt;profile(NOME_PROFILO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;struct-contains(NOME_PROFILO_O_ACCESSORIO)&amp;lt;/code&amp;gt;  &lt;br /&gt;
* &amp;lt;code&amp;gt;option(NOME_OPZIONE)&amp;lt;/code&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
== Ricerca avanzata ==&lt;br /&gt;
&lt;br /&gt;
Le espressioni supportano due tipi di ricerca evoluta:&lt;br /&gt;
&lt;br /&gt;
=== Ricerca regolare ===&lt;br /&gt;
Se il parametro inizia con &amp;lt;code&amp;gt;r=&amp;lt;/code&amp;gt;, viene interpretato come una ''regular expression''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;side-contains(r=P.*2)&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca un profilo/accessorio nel lato corrente il cui nome contiene la lettera ''P'' seguita dal numero ''2'', con qualunque carattere in mezzo.&lt;br /&gt;
&lt;br /&gt;
=== Ricerca per parole chiave ===&lt;br /&gt;
Se il parametro è &amp;lt;code&amp;gt;keyword(kw)&amp;lt;/code&amp;gt;, viene ricercata la parola chiave ''kw'' nelle parole chiave dei profili, accessori o opzioni.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;frameside-contains(keyword(KITAR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ verifica se, nel lato corrente, il telaio o i suoi accessori hanno la parola chiave ''KITAR''.  &lt;br /&gt;
&lt;br /&gt;
Le ricerche regolari e per parole chiave possono anche essere '''annidate'''.  &lt;br /&gt;
&lt;br /&gt;
Esempio:  &lt;br /&gt;
&amp;lt;code&amp;gt;typology-contains(keyword(r=^FR))&amp;lt;/code&amp;gt;  &lt;br /&gt;
→ ricerca in tutta la tipologia profili o accessori in cui almeno una parola chiave inizia per ''FR''.&lt;/div&gt;</summary>
		<author><name>Fabrizio.Loddo</name></author>	</entry>

	</feed>