Consola
La Consola serveix per provar un fragment de codi Ninox abans d'incloure'l a la teva base de dades: l'escrius, l'executes i en veus el resultat a l'instant.
La Consola existeix des de la versió 3.1. Els depuradors, «Verifica», «Formata» i l'autocompletació JavaScript arriben amb la versió 3.2.0 (beta).
La pestanya Consola permet escriure codi de Ninox i executar-lo immediatament, com en un intèrpret, i després depurar-lo: verificació sense execució, depurador pas a pas, depurador per repetició.
La pestanya està reservada als administradors. Només mostra la seva icona, una finestra de terminal, entre les pestanyes Rastrejador de depuració i Errors; el nom apareix en passar-hi el ratolí per sobre. Es desactiva a la Configuració de Ninext, secció «Gestor d'scripts».
Triar el context d'execució
El codi s'executa en el context d'un registre, com una fórmula de la seva taula — o sense cap registre:
| Context | Efecte |
|---|---|
| Sense entorn | Cap registre: el codi s'avalua com a codi global. |
| Registre actiu | El registre que es mostra en primer pla a Ninox. El context segueix els vostres canvis de registre. |
| Registre | Un registre que trieu, d'entre els oberts a les finestres de Ninox, o amb Tria un altre registre…, que obre un selector (taula, cerca, llista de registres). |
| Fórmula | El registre que retorna una fórmula que escriviu, per exemple record(Customer, 12). La fórmula es torna a avaluar a cada execució. |
La barra de context recorda el context triat; la seva creu el restableix.
Escriure el codi
L'editor de la Consola ofereix:
- el ressaltat de sintaxi de Ninox;
- l'autocompletació de les funcions, les taules, els camps i les paraules clau, mentre escriviu o amb Ctrl + Espai;
- el subratllat dels errors (ondulació vermella) i dels avisos (puntejat ambre) mentre escriviu, amb un indicador ⛔ o ⚠ al marge;
- el ressaltat de les altres aparicions de la paraula seleccionada;
- un botó Copiar, a la part superior dreta, en passar el ratolí per sobre de l'editor;
- una nansa, sota l'editor, que n'ajusta l'alçada.
L'autocompletació JavaScript als blocs natius
En un bloc #{ … }#, la Consola ofereix la mateixa ajuda a l'escriptura que la consola del navegador, adaptada al que rep realment el bloc:
- les variables i els paràmetres de Ninox visibles, en la seva forma JavaScript, amb el seu tipus;
- les funcions locals de Ninox,
ui,database, icallbackquan el bloc es declara:callbacko:async; - després d'un punt, els membres de l'objecte — per a un registre, els noms dels seus camps; un nom que no és un identificador JavaScript s'insereix en la forma
['…']; - a la capçalera
#{:, els tipus; després de:nid(o:rid(, la llista de taules.
Aquesta ajuda només existeix a la Consola.
Executar

El botó verd Executar llança el codi, igual que Ctrl + Retorn (⌘ + Retorn al Mac). La seva fletxa ofereix tres modes:
| Mode | Efecte |
|---|---|
| Executar | Executa el codi d'una tirada i mostra el resultat. |
| Repetició | Executa el codi una vegada i després us deixa recórrer el seu desenvolupament endavant i enrere. |
| Pas a pas | Executa el codi instrucció per instrucció, i s'atura on decidiu. |
El mode triat es desa; el botó n'adopta el nom, i la drecera llança aquest mode. Triar Pas a pas o Repetició fa aparèixer immediatament, sota l'editor, la barra d'aquest depurador, amb les ordres al seu lloc però desactivades: no s'executa res abans del llançament. Després d'una execució correcta, el codi es torna a formatar a l'editor; l'historial conserva el text tal com l'heu escrit.
Llegir els resultats

Els resultats s'apilen, el més recent al capdamunt; la Consola en conserva vint. Cada resultat indica el seu tipus, el seu context, la seva data, la seva hora i la seva durada d'execució; un clic a la seva capçalera el plega, la seva creu el suprimeix, i Esborrar buida la llista.
- Un valor simple es mostra amb un botó Copiar.
- Un registre es mostra amb un botó que l'obre a Ninox, i els seus camps en arbre.
- Una llista de registres es mostra com a les vistes de Ninox: format condicional, miniatures de les fotos, pastilles de color, amplades de columna. Una pestanya per vista, en l'ordre de Ninox; les vistes que no teniu dret a veure queden amagades. Quan les pestanyes no hi caben totes, el botó … («Més vistes») llista les que queden fora. Un clic en una línia obre el registre, i les línies es carreguen de 100 en 100 a mesura que us desplaceu.
- Els objectes i les llistes es mostren en un arbre desplegable; cada valor es pot copiar, i un registre s'obre amb un clic.
- Un text que conté JSON es mostra tal qual; el botó Arbre el desplega a demanda.
- Un text de més de 100 000 caràcters es mostra de seguida, truncat, amb Mostra-ho tot; Copiar sempre copia el text sencer.
Durant una avaluació llarga, apareix un indicador d'espera.
Verificar sense executar
Verifica (Ctrl + Maj + Retorn, ⌘ + Maj + Retorn al Mac) compila el codi sense executar-lo: cap efecte sobre les dades. Assenyala els errors i els avisos de Ninox, i aplica els controls propis de Ninext:
- una funció d'interfície o un bloc natiu situats en un
do as server, on no tindrien cap efecte; - una variable declarada que després no es llegeix mai;
- la sintaxi JavaScript dels blocs natius;
- l'HTML i el CSS passats a
html().
El veredicte es mostra a la barra, i el cursor se situa al primer diagnòstic. Quan dos tipus no concorden, l'explicació diu quins. Si el codi és vàlid, es formata.
Formatar
Formata (Ctrl + Maj + F, ⌘ + Maj + F al Mac) endreça el codi, sense executar-lo: sagnat, espais al voltant dels operadors, noms de camps escrits tal com els mostra Ninox. El JavaScript dels blocs natius #{ … }# també es formata: un bloc escrit d'una sola tirada es desplega sota la línia que el conté.
Un codi que conté errors s'ha de corregir primer; i si el format pot fer perdre una part del text, no s'aplica i ho diu.
El mateix botó existeix als editors d'scripts de Ninox: apareix a la part superior dreta, en passar el ratolí per sobre de l'editor, i la drecera de teclat també hi funciona.
El depurador pas a pas

Els punts d'aturada
- Un clic al marge esquerre, o sobre el número de línia, posa un punt d'aturada (disc vermell); un segon clic el treu.
- Un clic dret, o Alt + clic, obre el tauler Condició d'aturada: l'execució només s'hi atura si la vostra condició és certa, per exemple
i > 10. El mateix tauler permet desactivar el punt sense perdre'l (anella grisa), amb Desactiva, i després tornar-lo a activar amb Reactiva. Un punt condicional és un disc ambre. - Les condicions s'avaluen sense accés a la base de dades, amb funcions senzilles (
count,length,text,upper,lower,contains…). Si una condició no es pot avaluar, l'execució s'atura per seguretat. - Tan bon punt hi ha un punt d'aturada actiu, Executar també s'hi atura, i després continua pas a pas.
Les ordres
La sessió comença en pausa a la primera instrucció.
| Ordre | Efecte |
|---|---|
| Pas següent | Executa la instrucció i s'atura abans de la següent. |
| Subpas | Avança subexpressió per subexpressió, i mostra el valor obtingut. En una crida de funció o en un camp de fórmula de l'esquema, entra al seu codi. |
| Sortir | Acaba la funció en curs i torna a qui l'ha cridada. |
| Continuar | Avança fins al proper punt d'aturada, o fins al final. |
| Aturar | Abandona l'execució. |
Quan la barra és estreta, les ordres ja només mostren la seva icona; el nom apareix en passar-hi el ratolí per sobre. El botó d'informació (ⓘ) de la barra desplega les instruccions d'ús del depurador, i la creu, que apareix un cop acabada l'execució, en tanca el tauler.
Quan l'execució entra en una funció o en una fórmula, el seu codi s'obre en un marc apilat, que llisca des de la dreta com a Ninox. Hi podeu posar punts d'aturada: s'agrupen pel nom de la funció, valen per a totes les crides d'aquesta funció i per a les execucions següents, i desapareixen quan es torna a carregar la pàgina. El marc d'una fórmula de l'esquema porta la menció fórmula. Una nansa, a la vora esquerra d'un marc, ajusta quina part del marc de sota cobreix. Un bloc #{ … }# compta com un sol pas.
Les variables
A cada pas, el tauler Variables conegudes en aquest pas dona el valor i el tipus de cada variable; un valor es pot desplegar i copiar, i un registre s'obre amb un clic. Les variables que existeixen però que són fora d'abast apareixen en gris.
Cal saber
L'execució queda realment suspesa a cada pausa, i mentrestant la base de dades continua funcionant: altres usuaris, interfície de programació, activadors. El que ja s'ha executat queda aplicat, encara que atureu l'execució. Una pausa de més de deu minuts posa fi a l'execució.
El depurador per repetició
El codi s'executa de debò, una sola vegada i d'una tirada. Després recorreu el seu desenvolupament endavant i enrere, amb les ordres del pas a pas — Pas següent, Subpas, Sortir, Continuar —, i també Primer pas i Pas anterior. La llista de passos dona el valor obtingut a cadascun; un clic en un pas us hi porta directament. La repetició compta en passos grans: un per instrucció executada, i un per volta de bucle, que dona el valor de la variable del bucle. Els subpassos, sagnats, porten el número del seu pas gran (3.1, 3.2…) i es compten a part («+6 subpassos»); Sortir també torna d'un subpas al pas gran que el conté. Els marcs apilats i el tauler de variables són els mateixos que en el pas a pas. Ideal per entendre què ha passat sense tornar a executar el codi.
Límits:
- un registre apareix en el seu estat actual, no en el del moment de l'execució;
- la condició d'un punt d'aturada condicional no es reprodueix: la repetició s'hi atura sempre;
- més enllà de 10 000 passos, l'enregistrament queda truncat.
Els dos depuradors rebutgen un codi que conté errors, i ho indiquen com Verifica.
Depurar des de l'editor de Ninox
En passar el ratolí per sobre d'un editor d'scripts de Ninox, el botó Depurar a la Consola apareix a la part superior dreta. Obre la Consola i hi porta el vostre codi, sense executar-lo, amb el registre en curs com a context: si no hi ha cap registre actiu d'aquesta taula, el selector de registres s'obre en aquesta taula. Des del codi global, el context és Sense entorn, i només s'hi porta la funció on es troba el cursor.
El codi portat substitueix el de la Consola, i els seus punts d'aturada.
L'historial, i la vostra feina que us segueix
- El botó Historial llista les 50 darreres ordres; Alt + ↑ i Alt + ↓ les recorren des de l'editor. Un clic torna a carregar el codi i el seu context, en lloc del codi en curs i dels seus punts d'aturada.
- En passar el ratolí per sobre d'una línia de l'historial, una paperera la suprimeix.
- El codi recuperat de l'historial es reconstrueix en l'idioma actual de Ninox: «Id» es converteix en «Nr» en alemany. Per tant, un codi recuperat després d'un canvi d'idioma sempre compila.
- En iniciar-se, la Consola recupera el vostre darrer codi, el seu context, els seus resultats i els seus punts d'aturada — cadascú els seus en un ordinador compartit.
- Per a un administrador, l'historial i el darrer codi també el segueixen d'un ordinador a un altre, i sobreviuen a l'esborrat de les dades del navegador.
Atenció
Aquest historial es desa, en text pla, a la configuració del plugin, que carreguen tots els usuaris de la base de dades. No hi deixeu contrasenyes ni claus d'accés.
