Błędy
Karta całkowicie przebudowana od wersji 3.2.0 (beta). W wersji 3.1.2 wyświetla wyłącznie błędy kompilacji i zduplikowane identyfikatory.
Karta Błędy analizuje całą bazę i wyświetla listę błędów i ostrzeżeń w jej kodzie: w polach, wyzwalaczach, kolumnach widoków, raportach wydruku, kodzie globalnym i wyzwalaczu „After Open”. Analizę przeprowadza analizator przeniesiony z analizatora Ninox: to, co zgłasza, odpowiada temu, co powiedziałby Ninox. Każdy wiersz prowadzi bezpośrednio do kodu, którego dotyczy.
Karta jest zarezerwowana dla administratorów. Wyświetla wyłącznie swoją ikonę, trójkąt ostrzegawczy; jej nazwa pojawia się po najechaniu kursorem, a czerwona plakietka podaje liczbę wyświetlanych diagnostyk.
Podsumowanie i filtry

Nagłówek podaje podsumowanie: „Brak błędów”, „3 błąd(ów)”, „3 błąd(y), 12 ostrzeżenie(a)”, „36 ostrzeżenie(a)”…
Przycisk Filtry otwiera panel Wyświetlane diagnostyki: jeden przełącznik na każdy typ diagnostyki, w dwóch grupach, Błędy i Ostrzeżenia. Każdy wiersz podaje liczbę diagnostyk danego typu w bazie — nawet gdy typ jest ukryty: widzą Państwo to, co ukrywają, tak samo jak to, co wyświetlają. Gdy jakieś typy są ukryte, przycisk o tym przypomina („Ukryte typy: 2”); Pokaż wszystko przywraca je. Filtry są zapamiętywane przez przeglądarkę i obowiązują dla wszystkich baz.
Co jest zgłaszane
Błędy uniemożliwiają działanie kodu:
| Filtr | Co jest zgłaszane |
|---|---|
| Błędy kompilacji | Kod, który Ninox odrzuca: formuła się nie wykonuje. |
| Zduplikowane ID | Kilka pól tej samej tabeli ma ten sam identyfikator wewnętrzny (na przykład pole wejściowe i element wizualny): odwołania stają się niejednoznaczne. |
| Błędy analizatora | Błędy wykryte przez analizator Ninext, których Ninox nie zgłosił. |
| Błędy osadzonych treści | Błąd składni JavaScriptu w bloku natywnym #{ … }#. |
Ostrzeżenia wskazują kod, który działa, ale zapewne nie tak, jak Państwo sądzą:
| Filtr | Co jest zgłaszane |
|---|---|
| Analizator | Ostrzeżenia Ninox oraz błędnie zapisane adnotacje NativeJS (nieznany typ, nieistniejąca tabela). |
| Kontekst serwera | Kod bez efektu w miejscu wykonania: funkcja interfejsu, taka jak alert() czy openRecord(), lub blok natywny #{ … }#, umieszczone w wyzwalaczu tabeli (po utworzeniu, po modyfikacji) albo w do as server. Na serwerze są one po cichu ignorowane. |
| Zamrożone błędy | Błędy, które Ninox nadal wyświetla, choć formuła jest poprawna (patrz niżej). |
| Nierozwiązane odwołania | Odczyt pola referencyjnego, którego tabela docelowa już nie istnieje (tabela usunięta, brak bazy zewnętrznej): zwraca on „void”, a każde dalsze przejście przez kropkę kończy się błędem. |
| Treści osadzone | Typowany blok JavaScript, który nic nie zwraca, na wszystkich swoich ścieżkach lub na niektórych; blok asynchroniczny, który nigdy nie wywołuje callback; niezrównoważony HTML przekazany do html() (znacznik nigdy niezamknięty, osierocony znacznik zamykający); CSS z niezrównoważonymi nawiasami klamrowymi albo taki, którego reguły przeglądarka odrzuci. |
| Martwy kod w skryptach | Zmienne zadeklarowane przez var lub let, a potem nigdy nieodczytane. |
| Nieużywane funkcje globalne | Funkcje globalne, których nie wywołuje żaden element bazy. |
| Nieużywane formuły | Formuły, do których nie odwołuje się żaden kod. |
Nieużywane funkcje i formuły to jedynie kandydaci do usunięcia: wywołanie budowane dynamicznie lub wykonywane z JavaScriptu umyka analizie, a formuła wyświetlana w formularzu lub widoku pozostaje przydatna, nawet jeśli żaden kod jej nie odczytuje. Przed usunięciem proszę to sprawdzić.
Jak czytać wiersz

Diagnostyki są pogrupowane w rodziny. Tytuł każdej rodziny ma plakietkę, która podaje ich liczbę: czerwoną dla błędów, pomarańczową dla ostrzeżeń. Gdy rodzin jest kilka, są one zwinięte, a kliknięcie tytułu rozwija daną rodzinę; pojedyncza rodzina wyświetla się rozwinięta.
Rodziny noszą nazwę swojego filtra, z wyjątkiem następujących:
| Filtr | Rodzina na liście |
|---|---|
| Błędy analizatora | Dodatkowe błędy analizatora Ninext |
| Analizator | Ostrzeżenia analizatora |
| Kontekst serwera | Kod poza swoim kontekstem wykonania |
| Zamrożone błędy | Zamrożone błędy (formuła jest poprawna) |
| Błędy osadzonych treści i Treści osadzone | Jedna rodzina, Osadzony JS / HTML / CSS, która ma do dwóch plakietek: jedną dla swoich błędów, drugą dla swoich ostrzeżeń. |
Każdy wiersz podaje:
- kursywą komunikat — szary dla błędu, bursztynowy dla ostrzeżenia — a po nim fragment kodu, którego dotyczy; gdy dwa typy do siebie nie pasują, zdanie wyjaśnia, które;
- element, którego dotyczy, przedstawiony tak jak w karcie Pola i formuły: ikona typu, plakietka zależności, „Fx”, ścieżka nawigacyjna.
Najechanie na pogrubiony fragment ścieżki nawigacyjnej (formułę, wyzwalacz lub funkcję globalną) pokazuje kod z podkreślonymi błędami.
Przejście do kodu
Kliknij pogrubiony fragment ścieżki nawigacyjnej: Ninext otwiera edytor we właściwym miejscu. W przypadku kodu globalnego diagnostyka jest przypisana do funkcji, która ją zawiera — „Funkcje globalne › nazwaFunkcji” — a edytor kodu globalnego otwiera się na tej funkcji. Wyzwalacz „After Open” otwiera się w ten sam sposób.
Czerwony przycisk, który pojawia się po najechaniu, po prawej stronie wiersza, w trybie edycji („Edit mode”), zaznacza pole w jego formularzu w przypadku wiersza dotyczącego pola, a w przypadku pozostałych wierszy otwiera edytor kodu.
Poniżej, w bazie demonstracyjnej, kliknięcie pogrubionego fragmentu wiersza dotyczącego formuły pola: Ninext otwiera rekord tabeli, okno pola, a następnie duży edytor formuł, w którym fragment, którego dotyczy błąd, jest podkreślony; najechanie na niego wyświetla komunikat. Pozostałe elementy ścieżki nawigacyjnej otwierają własny poziom: kliknięcie nazwy pola otwiera rekord i okno pola, bez edytora.

Analiza w tle
Analiza pracuje małymi porcjami, oddając kontrolę przeglądarce: nawet w dużej bazie nic się nie zawiesza. Uruchamia się ponownie sama po każdej zmianie schematu. Nie ma wskaźnika postępu: poprzednia lista pozostaje wyświetlona, dopóki nie zastąpi jej nowa.
Zamrożone błędy
Zdarza się, że Ninox kompiluje pole formuły podczas ponownego wczytywania schematu, zanim schemat będzie kompletny, a potem już go ponownie nie kompiluje: pole wyświetla błędy przez całą sesję, choć jego formuła jest poprawna. Ninext kompiluje formułę ponownie po swojej stronie; jeśli błędy się przy tym nie pojawiają, zalicza je do kategorii Zamrożone błędy.
Rozwiązanie: proszę ponownie wczytać bazę albo zapisać dowolną zmianę schematu.
Podczas pisania, w edytorach Ninox
Błędy i ostrzeżenia są też podkreślane podczas pisania w edytorach skryptów Ninox (duży edytor formuł, panel pola lub tabeli):
- czerwona falista linia oznacza błąd, bursztynowa kropkowana linia — ostrzeżenie;
- po najechaniu na podkreślony fragment dymek podaje wyjaśnienie i wskazuje, które typy do siebie nie pasują;
- podkreślanie działa tylko wtedy, gdy Ninext wie na pewno, w której tabeli wykonuje się kod;
- pierwszeństwo ma lista autouzupełniania: żaden dymek nie otwiera się, dopóki jest ona wyświetlona.
Zaznaczenie słowa podświetla jego pozostałe wystąpienia — w edytorach Ninox, w Konsoli i w blokach kodu Ninext. Po najechaniu na edytor w prawym górnym rogu pojawiają się dwa przyciski: Formatuj i Debuguj w Konsoli (patrz Konsola).
Pozostałości po kolumnach w widokach tabeli
Błąd kompilacji może pochodzić z kolumny widoku tabeli, która nadal używa usuniętego pola. Ninox nic nie zgłasza, ponieważ pole zostało po prostu usunięte ze schematu: to szczątkowe odwołanie, które pozostało w konfiguracji kolumn widoku.
Aby to naprawić:
- Kliknij Formuła, pogrubione na końcu ścieżki nawigacyjnej („Tabela › Widok › … › Formuła”).
- Ninext otwiera widok, edytor kolumny, a następnie edytor jej formuły.
- Kliknij OK w edytorze formuły, a następnie w edytorze kolumny.
Po zapisaniu Ninox odświeża konfigurację widoku i usuwa odwołania do nieistniejących pól. Błąd znika z Ninext.
