Przejdź do głównej zawartości

Okna żądań daty i czasu

Podczas działania wtyczki może być konieczne wymuszenie na użytkowniku podania daty i czasu. W tym celu można wyświetlić okna dialogowe za pomocą IViewManager.ShowDateNumpadPopup, IViewManager.ShowDateTimePopup oraz IViewManager.ShowCalendarPopup.

Jak to wygląda w Syrve POS?

W niektórych przypadkach instancja klasy IViewManager jest dostępna dla wtyczki. Jest ona dostępna na przykład podczas obsługi kliknięcia przycisku:

PluginContext.Operations.AddButtonToPluginsMenu("Sample Plugin", x =>
{
var viewManager = x.vm;
});

lub wywołania niektórych zdarzeń:

PluginContext.Notifications.BeforeOrderBill.Subscribe(x =>
{
var viewManager = x.vm;
});

Więcej szczegółów na temat tej klasy można znaleźć w artykule Okna dialogowe. W tych przypadkach IViewManager może być używany do wyświetlania okien dialogowych. Rozważ wszystkie metody służące do żądania daty i czasu od użytkownika. Na przykładzie utwórz przycisk za pomocą metody IOperationService.AddButtonToPluginsMenu, jak pokazano powyżej, i wyświetl okna dialogowe po jego kliknięciu.

Opcja 1: Okno Date Numpad

Proste okno dialogowe z klawiaturą numeryczną może być użyte do żądania tylko daty:

{
var dateNumpadPopupResult = x.vm.ShowDateNumpadPopup(DateTime.Today, "Date Numpad");
});

W ten sposób po kliknięciu przycisku zostanie wyświetlone okno wyboru daty

date-numpad-popup

Metoda IViewManager.ShowDateNumpadPopup(DateTime selectedDate, string title) przyjmuje 2 argumenty:

  • DateTime selectedDate — data, która będzie wybrana po wyświetleniu okna.
  • string title — tytuł okna

Metoda zwróci datę wybraną przez użytkownika, jeśli naciśnie «OK», lub null, jeśli naciśnie «Anuluj».

Opcja 2: Okno Date-Time

Datę i czas można żądać za pomocą okna dialogowego:

PluginContext.Operations.AddButtonToPluginsMenu("Sample Plugin", x =>
{
var dateTimePopupResult = x.vm.ShowDateTimePopup(DateTime.Now, "Date-Time", DateTime.Today, DateTime.Today.AddMonths(6));
});

Naciśnięcie przycisku spowoduje wyświetlenie okna wyboru daty i czasu:

date-numpad-popup

Kliknięcie na aktualną datę spowoduje wyświetlenie kalendarza, za pomocą którego można szybko przełączyć się na inny dzień:

date-numpad-popup

Metoda IViewManager.ShowDateTimePopup(DateTime selectedDate, [CanBeNull] string title, DateTime minDate, DateTime maxDate) przyjmuje 4 argumenty:

  • DateTime selectedDate — data i czas, które będą wybrane po wyświetleniu okna.
  • string title — tytuł okna.
  • DateTime minDate — minimalna data i czas, które można wybrać. Wartość wpływa również na kalendarz.
  • DateTime maxDate — maksymalna data i czas, które można wybrać. Wartość wpływa również na kalendarz.

Metoda zwróci datę i czas wybrane przez użytkownika, jeśli naciśnie «OK», lub null, jeśli naciśnie «Anuluj».

Opcja 3: Okno Kalendarza

Do wyboru daty można użyć okna z kalendarzem:

PluginContext.Operations.AddButtonToPluginsMenu("Sample Plugin", x =>
{
var dateCalendarPopupResult = x.vm.ShowCalendarPopup(DateTime.Today, "Calendar", DateTime.Today, DateTime.Today.AddMonths(6));
});

Po kliknięciu przycisku zostanie wyświetlone okno:

date-numpad-popup

Metoda IViewManager.ShowCalendarPopup(DateTime selectedDate, [CanBeNull] string title, DateTime minDate, DateTime maxDate) przyjmuje 4 argumenty:

  • DateTime selectedDate — data, która będzie wybrana po wyświetleniu okna.
  • string title — tytuł okna.
  • DateTime minDate — minimalna data, którą można wybrać.
  • DateTime maxDate — maksymalna data, którą można wybrać.

Metoda zwróci datę wybraną przez użytkownika, jeśli naciśnie «OK», lub null, jeśli naciśnie «Anuluj».