Przejdź do treści

Akcje na formach

Akcja - to funkcja jaką może wykonać użytkownik w aplikacji biznesowej. Zwykle akcja wykonywana jest na rzecz bieżącego rekordu jakiegoś obiektu. Jest opisana atrybutami wizualnymi (etykieta, ikona) oraz metodą w C#. Z akcją można także wiązać inne metody sterujące np. tym, kiedy akcja może być widoczna, itp. Akcja może być reprezentowana przyciskiem na formie lub być dostępna w menu pod prawym przyciskiem myszy. Wszystkie akcje definiuje się w ramach jakiegoś obiektu.

Rodzaje akcji

Ze względu na zastosowanie, akcje dzielimy na:

  • akcje działające w kontekście formy (np widoczne w postaci przycisku albo funkcji w popup menu)
  • akcje w nawigatorze aplikacji (wstążce)

Niniejszy artykuł opisuje akcje działające w kontekście formy

Powiązane artykuły

Nowa akcja

Jeśli chcesz aby użytkownik mógł kliknąć na formie w przycisk, link lub opcję menu i wykonać jakąś funkcję, to w zakładce Akcje zdefiniuj nową akcję rodzaju Akcja w oknie. Podaj jej symbol, nazwę i najlepiej także ikonę. Zapisz tą akcję, a następnie naciśnij + obok pola metoda wykonawcza, aby móc napisać kod w C# wykonawczy danej akcji.

Akcje możesz łączyć w strukturę hierarchicznego menu poprzez operacje drag&drop na drzewie akcji. Pamiętaj, że akcje definiuje się dla obiektu, a więc w oderwaniu od formy. Domyślnie wszystkie akcje dostępne są we wszystkich formach nawet jeśli nie umieścisz na nich przycisków umożliwiających wywołanie akcji, bowiem pojawiają się w menu pod prawym przyciskiem myszy. Zazwyczaj dostępność danej akcji zależy od danych bieżącego rekordu, więc jeśli chcesz ograniczyć możliwość wywołania danej akcji zdefiniuj dla niej metodę na widoczność, naciskając przycisk + obok pola metoda na widoczność. Napisz w niej kod C#, który zwróci true, gdy akcja ma być dostępna i false, gdy ma być niedostępna.

Dynamiczne popup menu z akcjami

Od wersji 4.5.0 (serwer NEOS) oraz 4.6.1 (S4) został wprowadzony mechanizm budowania dynamicznego popup menu - tzn. takiego które składa się z dowolnej listy akcji wygenerowanych programowo ad-hoc. W tym celu w dowolnej metodzie akcji C# w której chcemy pokazać takie popup menu piszemy kod, jak w przykładzie poniżej.

public void ShowDynamicPopupMenu()
{
  List<ActionInfo> listAction = new List<ActionInfo>();

  listAction.Add(Actions.Act1); //Act1 i Act2, to akcje zdefiniowane w obiekcie o symbolach Act1 i Act2
  listAction.Add(Actions.Act2);

  //poniższa akcja jest zdefiniowana całkowicie dynamicznie. Po jej kliknięciu jest odpalana metoda ActionMethod
  listAction.Add(Actions.CreateAction("Info","MI_REDX", ActionMethod).SetParam("Przekazany Parametr")); 

  //poniżej do popup menu wstawiamy akcję AnotherAction zdefiniowaną statycznie, ale przekazujemy jej dynamicznie parametr
  listAction.Add(Actions.AnotherAction.SetParam("InnyParametr"));

  ShowPopupMenu(listAction);
}
public void ActionMethod(string param = "")
{
  ShowBalloonHint("Parametr: " + param);
}

Wystarczy zatem zbudować listę akcji List<AcionInfo> a następnie wywołać metodę ShowPopupMenu(listAction). Po kliknięciu przycisku aplikacja wyświetli menu z naliczonymi akcjami.