Przejdź do treści

Multiselekcja

W Neosie multiselekcja umożliwia zaznaczanie wielu rekordów. Domyślnie dla klienta Desktop oraz Web taka selekcja jest włączona. Użytkownik może zaznaczać i odznaczać rekordy przy pomocy następujących przycisków: - Insert - dodaje lub usuwa z zaznaczenia wybrany rekord - CTRL + A - zaznacza wszystkie rekordy na stronie - Shift + Delete - odznacza wszystkie rekordy - CTRL + LPM - dodaje lub usuwa z zaznaczenia wybrany rekord (tylko Desktop) - Shift + LPM - dodaje do zaznaczenia wszystkie rekordy między aktualnie wybranym rekordem a rekordem na który klikniemy (tylko Desktop)

Klient Desktop

Zaznaczenie jednego lub więcej rekordów powoduje pokazanie się panelu Ustawień szybkich filtrów, umożliwiającego odznaczenie zaznaczonych rekordów.

Klient Web

W Neosie od wersji 5.4.16 oraz 6.0 istnieje możliwość wyłączenia multiselekcji. Można wyłączyć ją całkowicie lub jedną z opcji zaznaczania rekordów tj. za pomocą przycisku Insert lub za pomocą checkboxów.

!!! Warning Uwaga! Zaznaczenie rekordów na jednej stronie za pomocą kombinacji CTRL+A oraz przejście na inną stronę i ponowne wciśnięcie kombinacji klawiszy CTRL+A powoduje odznaczenie rekordów na poprzedniej stronie.

Obsługa zaznaczonych rekordów w kodzie Neos Expert

Neos Expert udostępnia szereg metod i właściwości, które umożliwiają zarządzanie wybranymi rekordami.

Aby odczytać aktualnie zaznaczone rekordy możemy użyć jednej z dwóch właściwości: - SelectedRows - Zwraca listę zaznaczonych rekordów w bieżącym obiekcie w postaci listy wartości pól klucza głównego - SelectedRowsOrCurrent - Zwraca listę zaznaczonych rekordów w bieżącym obiekcie w postaci listy wartości pól klucza głównego albo bieżący rekord

Aby odczytać wartości klucza głównego z wyżej wymienionych kolekcji należy się po nich przeiterować (zalecamy skorzystać z pętli foreach) i następnie możemy odczytać wartość poprzez podanie nazwy pola klucza głównego.

Przykład użycia

Przykładowa metoda ChangeStateForSelectedGoods(), która pozwoli nam zmienić stan wszystkich zaznacoznych rekordów.

public void ChangeStateForSelectedGoods()
{
    foreach(var good in SelectedRowsOrCurrent)
    {
        var ktm = good["KTM"];
        ChangeState(ktm);
    }
}

Dodatkowo zmiana wartości tych właściwości wywołuje metody interfejsowe (na ikone, etykietę itp.) w których są wykorzystywane.

Przykład użycia

Metoda na labelkę zależna między innymi od SelectedRows

public string SetChangeStateLabel()
{
    if(SelectedRows.Count > 1)
    {
        return $"Zmień stan {SelectedRows.Count} towarów";
    }
    if(this.AKTYWNY == "1")
    {
        return "Dezaktywuj towar";
    }
    return "Aktywuj towar"; 
} 

Ponadto mamy możliwość zaznaczania oraz odznaczania rekordów z poziomu kodu wykorzystując następujące metody: - DeselectAllRecords() - Odznacza wszystkie rekordy w bieżącej dziedzinie bieżącego obiektu - DeselectRecord() - Odznacza bieżący rekord bieżącego obiektu - SelectAllRecords() - Zaznacza wszystkie rekordy w bieżącej dziedzinie bieżącego obiektu - SelectRecord() - Zaznacza bieżący rekord bieżącego obiektu

Przykład użycia

Po wykonaniu operacji na zaznaczonych rekordach możemy z poziomu kodu je odznaczyć

public void ChangeStateForSelectedGoods()
{
    foreach(var good in SelectedRowsOrCurrent)
    {
        var ktm = good["KTM"];
        ChangeState(ktm);
    }
    DeselectAllRecords();
    RefreshData();
}