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();
}