Ricerca codice

Ricerca per espressione regolare, e il codice di un risultato al passaggio del mouse

La vista Ricerca codice permette di scandagliare tutti gli script del database. Potete combinare queste opzioni:

PulsanteOpzioneEffetto
.*Espressione regolareInterpreta la richiesta come una RegExp, mettendo a disposizione tutta la potenza dei pattern (quantificatori, classi, ancore…). Le opzioni Maiuscole/minuscole e Parola intera restano combinabili.
AaMaiuscole/minuscoleSe selezionata, la ricerca distingue maiuscole e minuscole: «A» e «a» sono considerati caratteri diversi.
\bParola interaLimita i risultati alle occorrenze non attaccate ad altre lettere o cifre. Vengono trovate le parole separate da spazi, punteggiatura, ecc.

I tre pulsanti si trovano nel campo di inserimento, a destra, in quest'ordine; quando il campo non è vuoto, li segue una crocetta, che lo cancella.

La ricerca parte quando uscite dal campo di inserimento — con un clic altrove, con il tasto Tab o, a partire dalla versione 3.2.0, con il tasto Invio — oppure quando scegliete una ricerca dalla cronologia. Dalla stessa versione, Esc esce dal campo scartando ciò che vi avete digitato: resta visualizzata la ricerca in corso. Il testo cercato e le tre opzioni vengono memorizzati dal browser, per tutti i database.

La cronologia delle ricerche

Un clic nel campo di inserimento mostra le vostre ultime 20 ricerche, la più recente in cima; l'elenco si filtra durante la digitazione. Una crocetta rimuove una ricerca dalla cronologia.

I risultati

Il contatore indica il numero di risultati visualizzati e il numero totale trovato. I risultati vengono visualizzati a blocchi di 100: in fondo all'elenco, +100 mostra i 100 successivi (+N quando ne restano meno di 100), e Tutti (N) gli N rimanenti.

Leggere un risultato

Ogni risultato è una riga presentata come in Campi & Formule: icona del tipo, badge delle dipendenze, «Fx», poi il filo di Arianna dell'elemento, la cui parte in grassetto designa il codice in cui è stato trovato il testo.

  • Al passaggio del mouse sulla parte in grassetto, il codice compare in un fumetto, con il testo trovato evidenziato.
  • Un clic sulla parte in grassetto apre l'editor di Ninox su quel codice, con il testo trovato evidenziato.
  • Il pulsante rosso che compare al passaggio del mouse, a destra della riga, in modalità di modifica («Edit mode»), seleziona il campo nel suo modulo per una riga che riguarda un campo, e apre l'editor del codice per le altre righe.
  • Un clic sul badge delle dipendenze di un campo apre quel campo nella scheda Campi & Formule.

Dove agisce la ricerca

La ricerca esamina tutto il codice del database:

  • il codice globale e il trigger «After Open»;
  • i trigger delle tabelle;
  • le formule e i trigger dei campi: pulsanti, trigger dopo la creazione o la modifica, «Display only if», diritti di lettura e di scrittura, formati di visualizzazione, scelte dinamiche, vincoli;
  • le colonne delle viste: la loro formula e la loro formattazione condizionale;
  • i report di stampa: testi contenenti formule tra parentesi graffe, blocchi HTML, colonne di revisione, campi immagine con formula, e origine dati dei report Carbone (viene letta solo la formula dell'origine, non il file Word).

Esempio di espressione regolare

Vi serve un ripasso della sintassi delle RegExp? Un tutorial conciso è disponibile su https://regexone.com.

La RegExp seguente trova ogni select la cui clausola where filtra su ID:

\bselect\b[^;]*(?<!\.)\bid\b

Ciò aiuta a individuare rapidamente i punti in cui first(select myTable where ID = searchId) può essere sostituito con l'alternativa più veloce: record(myTable, searchId).

Come funziona, passo per passo :

Pattern RegExpSpiegazione
\bselect\bTrova la parola intera select (evita di trovare parole come «selected»).
[^;]*Trova zero o più caratteri diversi da ;, garantendo che non compaia alcun punto e virgola tra select e id.
(?<!\.)Un lookbehind negativo che verifica l'assenza di un . immediatamente prima di id.
\bid\bTrova la parola intera id (evita di trovare sottostringhe come «userid» o «ident»).