English Bandiera English Italiano Bandiera Italiano Español Bandiera Español Français Bandiera Français Deutsch Bandiera Deutsch Português Bandiera Português Ελληνικά Bandiera Ελληνικά Nederlands Bandiera Nederlands Polski Bandiera Polski Čeština Bandiera Čeština 中文 Bandiera 中文 日本語 Bandiera 日本語 हिन्दी Bandiera हिन्दी اللغة العربية Bandiera اللغة العربية Русский Bandiera Русский Українська Bandiera Українська עִברִית Bandiera עִברִית Türk Bandiera Türk Latvietis Bandiera Latvietis Dansk Bandiera Dansk Norsk Bandiera Norsk Íslenska Bandiera Íslenska 한국어 Bandiera 한국어 Suomen Bandiera Suomen Gaeilge Bandiera Gaeilge Bahasa Melayu Bandiera Bahasa Melayu Svenska Bandiera Svenska
Utente IconaAccedi
Italiano Bandiera Italiano

Accedi

 

Funzioni e script (campo Formula)

Come utilizzare le funzioni Minimo/Massimo, Ceil up/Ceil down (arrotondato) e gli script Ruby

Contenuto

Funzioni minimo/massimo
Funzioni di sollevamento/abbassamento del soffitto
Script (Ruby)
Operatori aritmetici e condizionali
Funzioni matematiche
Funzioni stringa

Suggerimenti e trucchi

Ordinamento dei record
Calcoli complessi
Conteggio delle date tramite script
Link per visualizzare il record

no_image

Funzioni minimo/massimo

Vediamo come funzionano le funzioni, usando la tabella dei prodotti come esempio.

Questa tabella contiene le seguenti colonne:
Marca e modello;
Immagine;
Prezzo per giugno, luglio e agosto.

Il compito è mostrare il prezzo più basso per tutti e tre i mesi.

Tabella con prezzi delle cuffie

Il primo passo è aggiungere il campo Formula al modulo.

Aggiunta di un nuovo campo formula

Selezionare "Funzione" nel primo elenco a discesa:

Selezionare "Funzione" nel primo elenco a discesa

Selezionare "Minimo" nel secondo elenco a discesa:

Selezionare "Minimo" nel secondo elenco a discesa

Successivamente, devi selezionare i campi per il confronto. In questo caso, si tratta di tre campi prezzo.
E fai clic sul pulsante "Crea".

seleziona i campi da confrontare

Ora nella nostra tabella è apparso il campo "Prezzo più basso", che confronta i tre valori nel record e mostra il minimo di essi:

tabella con funzione prezzo più basso

La funzione "Massimo" funziona esattamente al contrario.

Funzioni di sollevamento/abbassamento del soffitto

Considera le funzioni "Ceil up" e "Ceil down". Ecco una tabella con i clienti e i loro ordini.

Il compito è arrotondare il valore nella colonna "Importo pagabile".

Tabella dei clienti

Crea un nuovo campo Formula e seleziona la funzione "Ceil up" (o "Ceil down");

Successivamente, devi selezionare il campo richiesto dall'elenco a discesa e specificarne il significato.

Montante arrondi

Di conseguenza, otteniamo una colonna con un importo arrotondato:

colonna con importo arrotondato

 

Script (Ruby)

Gli script consentono di eseguire operazioni logiche e aritmetiche.

Utilizzeremo la tabella "Saldi estivi" come esempio. Questa tabella contiene una colonna con i manager, la durata del loro lavoro e la somma delle vendite per l'estate..

tavolo delle vendite

Creiamo un nuovo campo Formula, selezioniamo l'opzione Funzione e la voce Script (Ruby) nell'elenco seguente.

Puoi usare i nomi dei campi HTML come operandi.

Fai clic sul collegamento sotto il campo funzione "Come inserire i dati del record":

Come inserire i dati del record

Apparirà un elenco di campi disponibili. Seleziona un campo dall'elenco e copia il nome HTML:

Inoltre, puoi cambiare il nome del campo HTML proprio qui. È sufficiente inserire un nuovo nome e cliccare sul pulsante "Aggiorna":

cambia nome campo

Sono disponibili i seguenti operatori aritmetici e condizionali:


(+) addizione

(-) sottrazione

(*) moltiplicazione

(/) divisione

(>) vero, se l'operando di sinistra è maggiore di quello di destra

(<) vero, se l'operando di sinistra è minore di quello di destra

(%) modulo divisione

(==) vero, se i valori dei due operandi sono gli stessi.


Conditional operators:

(if) utilizzato per verificare se una condizione è vera. I valori di condizione false e nil sono falsi, mentre tutti gli altri saranno veri.

(elsif) utilizzato per condizioni aggiuntive.

(||) utilizzato per verificare più condizioni.


Torniamo indietro, per esempio. Il compito è calcolare il bonus per i manager.

Supponiamo che il rapporto bonus dipenda da diversi fattori. Il primo è l'esperienza lavorativa in azienda.

Creiamo il seguente script:

 

if work_months > 12

  300

 

Ciò significa che se un dipendente ha lavorato in azienda per più di 12 mesi, riceverà un bonus di 300 $.

Creiamo un'altra condizione. Se il manager ha fatto più di 7000 vendite, riceverà 150 $ + 25%.

Lo script dovrebbe apparire così:

elsif sales > 7000
 (150*0.25)+150

In tutti gli altri casi il bonus sarà di 150 $

else
 150

È necessario specificare end, affinché lo script funzioni correttamente.

 

script per il calcolo dei bonus

 

Ora possiamo calcolare il bonus per ogni manager:

tabella con bonus

Metodi e operatori disponibili: to_f, to_i, to_s, round, floor, ceil, ceiling_up, ceiling_down, include?, if, elsif, else, end.
Per verificare se il campo contiene un valore specifico puoi anche usare l'elemento [ ].

Esempio di utilizzo:

if 'supplies' ['stock']
   true
else
   false
end

Inoltre, puoi utilizzare due variabili: a e b

Oltre agli operatori aritmetici, puoi usare funzioni trigonometriche di base, logaritmiche, trascendentali e radici. Le funzioni devono essere scritte come segue: Math::function(Field_name). Ad esempio, Math::acos(Field_csIfon). Elenco dettagliato delle funzioni matematiche:

Funzioni trigonometriche

(::cos) Restituisce il coseno dell'argomento specificato.
(::sin) Restituisce il seno dell'argomento specificato.
(::tan) Restituisce la tangente dell'argomento specificato.

Funzioni trigonometriche inverse

(::acos) Restituisce l'arcocoseno dell'argomento specificato.
(::asin) Restituisce l'arcoseno dell'argomento specificato.
(::atan) Restituisce l'arcotangente dell'argomento specificato.
(::atan2) Restituisce l'argtangente di due argomenti specificati.

Funzioni trigonometriche iperboliche

(::cosh) Restituisce il coseno iperbolico dell'argomento specificato.
(::sinh) Restituisce il seno iperbolico dell'argomento specificato.
(::tanh) Restituisce la tangente iperbolica dell'argomento specificato.

Funzioni trigonometriche iperboliche inverse

(::acosh) Restituisce l'inverso del coseno iperbolico dell'argomento specificato.
(::asinh) Restituisce l'inverso del seno iperbolico dell'argomento specificato.
(::atanh) Restituisce l'inverso della tangente iperbolica dell'argomento specificato.

Funzioni di esponenzialità e logaritmiche

(::exp) Restituisce il valore di un dato valore elevato a una data potenza.
(::log) Restituisce il logaritmo di un dato valore in una data base.
(::log10) Restituisce il logaritmo in base 10 dell'argomento dato.
(::log2) Restituisce il logaritmo in base 2 dell'argomento dato.

Funzioni di frazione ed esponente

(::frexp) Restituisce la frazione e l'esponente dell'argomento specificato.
(::ldexp) Restituisce il valore per una frazione e un esponente specificati.

Funzioni radice

(::cbrt) Restituisce la radice cubica dell'argomento specificato.
(::sqrt) Restituisce la radice quadrata dell'argomento specificato.

Funzioni di errore

(::erf) Restituisce il valore della funzione di errore di Gauss per l'argomento specificato.
(::erfc) Restituisce il valore della funzione di errore complementare per l'argomento specificato.

Funzioni Gamma

(::gamma) Restituisce il valore della funzione gamma per l'argomento specificato.
(::lgamma) Restituisce il valore della funzione gamma logaritmica per l'argomento specificato.

Funzione ipotenusa

(::hypot) Restituisce sqrt(a**2 + b**2) per a e b specificati.

Funzioni stringa

Puoi mettere in maiuscolo il testo in questo modo:
Capitalize text
Assicurati di mettere tra virgolette la tua variabile e poi usa la funzione 'capitalize'.

 

Suggerimenti e trucchi

Ecco alcuni esempi di come semplificare il tuo lavoro usando le funzioni.

Abbiamo una tabella Candidati al lavoro:

Tabella dei candidati al lavoro

Il compito è dividere i candidati in tre gruppi: un candidato idoneo, un candidato di riserva e un candidato non idoneo.

Possiamo usare il modulo di ricerca, ma poi dovremo usare tutti i criteri:

modulo di ricerca

Un campo Formula con una funzione viene in soccorso. Creiamo una nuova formula "Selezione".

Dobbiamo dividere i candidati in tre gruppi condizionali.

Se il candidato ha:

- Età inferiore a 45 anni;

- Istruzione superiore;

- Esperienza lavorativa superiore a 5 anni;

- Una raccomandazione da un precedente datore di lavoro, allora tale candidato riceve lo stato "Idoneo".

Per il gruppo "Riserva", un candidato deve avere meno di 50 anni, istruzione superiore o terziaria e più di 5 anni di esperienza lavorativa.

Tutti gli altri candidati ricevono lo stato "Non idoneo".

Scriviamo il seguente codice per la funzione:

if age<45 && "education" == "Superiore" && exp > 5 && "recommend" == "SÌ"
  "Appropriato"
elsif age<50 && "education" == "Superiore" || "Terziario" && exp > 5
  "Prenotare"
else
  "Non appropriato"
end

Nota bene: i valori numerici (inclusi i nomi dei campi html) non sono racchiusi tra virgolette. Le virgolette sono utilizzate solo per i valori stringa.

funzione di selezione

Come puoi vedere nello screenshot seguente, a ciascun candidato è stato assegnato uno stato in base ai criteri:

al candidato è stato assegnato uno status in base ai criteri

È molto più facile cercare su un singolo campo invece che su più criteri:

cerca su un singolo campo invece che su più criteri

Lo stesso vale per la formattazione condizionale in una tabella:

Formattazione condizionale per funzione

Utilizziamo il campo "Selezione" per formattare i record nella tabella:

formattare i record nella tabella tramite funzione

È molto più comodo generare un report dopo aver effettuato una ricerca o un raggruppamento per un campo:

creazione del report per funzione

Che contiene tutti i candidati in base ai criteri selezionati:

rapporto

Non dimenticare le Azioni condizionali e il campo Azione.

Ad esempio, crea un pulsante con l'azione "Invia e-mail", che sarà disponibile solo nel record con i candidati "idonei".

Puoi vedere un esempio di come creare un pulsante Azione tramite questo link.

invia azione e-mail nella tabella

Un campo funzione può essere utilizzato come criterio nelle regole dei campi.

Ad esempio, abilita il campo "Selezione" nel modulo:

mostra campo sul modulo

Successivamente, creiamo un nuovo campo "Aggiungi alla coda" (pulsante di scelta) con una scelta di due valori:

pulsante di scelta

Crea una regola.

Se il campo "Selezione" è composto da "Prenota", allora mostra il campo "Aggiungi alla coda":

Condizione della regola del campo

Ecco come appare sul modulo:

modulo con regola di campo

Le funzioni consentiranno non solo una gestione dei dati più efficiente, ma anche calcoli più complessi.

Ad esempio, considera una tabella di definizione del profitto:

tabella di definizione del profitto

Il compito è calcolare il profitto totale.

La formula è la seguente: profitto totale = fatturato - costo totale

Se eseguiamo un calcolo del genere utilizzando formule standard, allora dovremmo dividere il calcolo in diverse formule (calcolare separatamente fatturato e costo totale).

Utilizzando le funzioni Ruby, puoi eseguire questo calcolo in un campo:

(sell_price*quantity)-(buy_cost*quantity)

funzione per il calcolo dei costi

Profitto totale nella tabella:

Profitto totale nella tabella

Nota bene: per un calcolo corretto è necessario utilizzare il tipo di campo "Decimale".

 

Conteggio dei giorni tra le date

Ad esempio, utilizzeremo una tabella con i contratti.

Attività: mostra quanti giorni scadrà il contratto.

Tabella dei contratti

Crea il seguente script:

exp_date.mjd - DateTime.now

Dove:

exp_date - html nome del campo.

.mjd metodo - converte la data nel formato del calendario giuliano.

DateTime.now - oggetto il cui valore è la data e l'ora locale corrente.

funzione per il calcolo dei giorni

Di conseguenza, otteniamo una colonna con il numero di giorni fino alla fine del contratto.

colonna con il numero di giorni mancanti alla scadenza del contratto

Ecco un altro esempio.

Attività: determinare l'anno di nascita, avendo solo l'età di una persona.

Creare il seguente script:

DateTime.year - age

Dove:

age - html nome del campo.

DateTime.year - oggetto il cui valore è l'anno corrente.

copione anno compleanno

Di conseguenza, otteniamo una colonna con l'anno di nascita di ogni persona.

colonna con l'anno di nascita di ogni persona

Collegamento alla visualizzazione del record

Utilizzando lo script, è possibile creare un collegamento alla visualizzazione dei record. Andare al menu "Record" e aprire la visualizzazione dei record.

collegamento per registrare

Copia il link nella barra degli indirizzi:

url per registrare
Crea un campo Formula. Seleziona "Script (Ruby)" dall'elenco. Devi usare la variabile "a" e un collegamento record dal passaggio precedente (scritto tra virgolette). Sostituisci record id con "Numero di identificazione dell'ingresso" dall'elenco con il valore |internal_id|:
collegamento alla funzione di registrazione

In questo modo otterrai un collegamento al record nella tabella:

collegamento al record nella tabella

Puoi utilizzare un collegamento al widget Record nello stesso modo:


collegamento al widget Record