Zdarzenie pola widoku

Krótki przegląd właściwości JSON przekazywanych do onclick
| Właściwość | Opis | Przykład / zastosowanie |
|---|---|---|
| previousID | Identyfikator poprzednio wybranego rekordu. Domyślnie "A1". | „A1” |
| targetID | Identyfikator rekordu wskazanego kliknięciem. Domyślnie "A3". | „A3” |
| targetLineNum | Numer wiersza, w który kliknął użytkownik (liczony od zera). | 3 |
| targetColumnNum | Numer klikniętej kolumny w widoku (liczony od zera). | 4 |
| targetColumnValue | Wartość tekstowa wyświetlana w klikniętej komórce. | „Lisa” |
| targetColumnCaption | Nagłówek kolumny z konfiguracji pola (z "caption" albo "field.caption"). | „First Name” |
Ogólny przebieg pracy
- Zdefiniuj funkcję onclick w formule pola widoku
Funkcja onclick musi zostać umieszczona w formule pola widoku. Otrzymuje ona obiekt (o nazwie "event") zawierający właściwości opisane powyżej. - Wykonanie własnego kodu
Gdy użytkownik kliknie lub dotknie komórkę w widoku, mechanizm Ninext wykonuje funkcję onclick. Skrypt może wtedy na przykład:- Zaktualizować właściwości rekordu (np. przełączyć pole logiczne).
- Zapisać identyfikator klikniętego rekordu do wskazanego pola.
- Uruchomić działania warunkowe zależne od klikniętej kolumny.
- Zwrócenie zawartości widoku
Na końcu funkcji formuła musi zwrócić zawartość widoku (na przykład "select Customer"). To mówi Ninox, które rekordy wyświetlić po wykonaniu skryptu.
Przykłady zastosowania
Pełny przykład
function onclick(event : any) do
"ID of selected customer := event.targetID";
var t := this;
var selCustomer := first(select Customer where Id = event.targetID);
debug("onclick");
if event.targetColumnCaption like "checked" then
selCustomer.(Checked := not Checked);
true
else
if event.targetColumnNum = 0 then
true
else
false
end
end
end;
select Customer
Komentarze:
- Funkcja zaczyna od zapisania identyfikatora klikniętego rekordu w polu "ID of selected customer".
- Następnie pobiera odpowiedni rekord z tabeli "Customer".
- Jeśli nagłówek klikniętej kolumny zawiera "checked", przełącza pole "Checked" w tym rekordzie i zwraca true, sygnalizując, że kliknięcie zostało obsłużone.
- W przeciwnym razie funkcja zwraca true lub false w zależności od tego, czy numer klikniętej kolumny wynosi 0.
- Na koniec formuła zwraca "select Customer", co wyświetla zawartość widoku po wykonaniu skryptu.
Przykład minimalny
function onclick(event : any) do
"ID of selected customer := event.targetID";
debug("Clicked on Customer " + event.targetID);
"No specific action is performed here.";
false
end;
select Customer
Komentarze:
- Skrypt po prostu zapisuje identyfikator klikniętego rekordu i wypisuje komunikat debugowania.
- Zwrócenie false pozwala zachować domyślne zachowanie dla działań, które nie są obsłużone w szczególny sposób.
- Jak zawsze formuła kończy się na "select Customer", aby wyświetlić zawartość widoku.
Najważniejsze do zapamiętania
- Umiejscowienie w formule pola widoku:
Funkcja onclick musi być zdefiniowana bezpośrednio w formule pola widoku, a nie w wyzwalaczu czy innej części aplikacji. - Zwracanie zawartości widoku:
W odróżnieniu od innych funkcji, które oczekują wartości logicznej, ostatni wiersz formuły musi zwrócić zawartość widoku (np. "select Customer"). - Wykorzystanie parametrów zdarzenia:
Informacje z obiektu "event" (previousID, targetID, targetLineNum, targetColumnNum, targetColumnValue, targetColumnCaption) pozwalają dostosować działania do kontekstu kliknięcia. - Testowanie na różnych urządzeniach:
Proszę upewnić się, że funkcja działa poprawnie zarówno na komputerach, jak i na urządzeniach dotykowych, ponieważ mechanizm obsługuje zdarzenia "click" i "touchend".
