Zdarzenie pola widoku

obraz.png

Krótki przegląd właściwości JSON przekazywanych do onclick

WłaściwośćOpisPrzykład / zastosowanie
previousIDIdentyfikator poprzednio wybranego rekordu. Domyślnie "A1".„A1”
targetIDIdentyfikator rekordu wskazanego kliknięciem. Domyślnie "A3".„A3”
targetLineNumNumer wiersza, w który kliknął użytkownik (liczony od zera).3
targetColumnNumNumer klikniętej kolumny w widoku (liczony od zera).4
targetColumnValueWartość tekstowa wyświetlana w klikniętej komórce.„Lisa”
targetColumnCaptionNagłówek kolumny z konfiguracji pola (z "caption" albo "field.caption").„First Name”

Ogólny przebieg pracy

  1. 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.
  2. 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.
  3. 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".