OptiMES

  1. Home
  2. Docs
  3. OptiMES
  4. Dokumentacja użytkownika
  5. Ustawienia
  6. Reguły
  7. Przeliczniki pól

Przeliczniki pól

Opis działania

Przeliczniki pól mogą odpowiadać między innymi za dodawanie, do dokumentów o konkretnym typie, numerów partii, na podstawie funkcji przygotowanej przez użytkownika. Możliwe są również różnego typu obliczenia oparte np. o atrybuty.

Poniższy przykład pokazuje w jaki sposób przy dodawaniu Produktu, przelicznik pól może uzupełniać pole “Długość”. Szablon jest napisany w taki sposób, że sumuje wartości dwóch atrybutów, których wynik trafia do wspomnianego wcześniej pola.

Na początku należy wybrać nazwę oraz odpowiednią encję, dla której powstanie reguła. Encja to nic innego, jak miejsce w OptiMES, takie jak np. Oferta, Produkt czy Stanowisko pracy.

Następnym krokiem, jest wybranie pola danej encji, które będzie mogło zostać zmodyfikowane. W zależności od encji, pola są różne. Należą do nich również atrybuty.

Metoda aktywacji to kolejne konieczne do wyboru miejsce. Możemy wybrać, czy reguła ma zadziałać podczas dodawania encji, edycji lub w obu przypadkach.

Aktywność, informuje system, czy dana reguła ma zostać wykonywana, czy pozostawiona do późniejszego użycia. 

W polu notatka, opisać można działanie konkretnej reguły, by każdorazowo nie było trzeba sprawdzać poniższego szablonu.  

Najważniejszym miejscem w regułach pól jest Szablon. To właśnie w nim użytkownik może sformułować działanie reguły krok po kroku. Należy tutaj używać języka C# z silnikiem Razor. Więcej informacji o składni dowiedzieć się można w kolejnym punkcie.

Poniżej szablonu znajdują się, zależne od encji, elementy, do których można się odwoływać podczas pisania reguł.

Wprowadzenie do składni Szablonów:

Reguły pól piszemy w języku C# z Razorem.

Link do poradnika pisania kodu w silniku Razor:
https://docs.microsoft.com/pl-pl/aspnet/web-pages/overview/getting-started/introducing-razor-syntax-c

Szablon reguły pola powinien wydrukować wartość jaka ma być wstawiona do pola.
Dla wartości typu string to będzie zwykły teskt, dla wartości typu boolean będą to wartości “True” lub “False”, dla wartości typu liczbowego będzie to tekst który można sparsować do liczby, itd.
Najczęściej szablony reguł pól będą wyglądały w taki sposób:

@{
   var value = ""; //deklarujemy i inicjalizujemy zmienną która będzie przechowywała naszą wartość
   /*
       W tym miejscu piszemy kod który ustawi konkretną wartość naszej zmiennej 
   */
}
@value //wypisujemy wyznaczoną wartość

Przykłady szablonów:

Stała wartość

@{
   var value = "";
   value = "STAŁA WARTOŚĆ";
}
@value

 tym przypadku reguła będzie wypełniała wyznaczone pole zawsze tekstem STAŁA WARTOŚĆ.

Wartość z notatki:

@{
   var value = "";
   value = Model.Note;
}
@value

W tym przypadku reguła będzie wypełniała wyznaczone pole zawsze tekstem znajdującym się w notatce encji.

Wyznaczanie indeksu z atrybutów encji:

@{
   var value = "";
   value = Model.Attributes["ATTR1"].Value+Model.Attributes["ATTR2"].Value+Model.Attributes["ATTR3"].Value;
}
@value

W tym przypadku reguła będzie wypełniała wyznaczone pole tekstem składającym się z atrybutu o nazwie “ATTR1”, “ATTR2” i “ATTR3”

Wyznaczanie statusu aktywności:

@{
   var value = "True";
   if(Model.Note == "stare"){
       value = "False";
   }
}
@value

W tym przypadku reguła będzie wypełniała wyznaczone pole wartością boolowską (prawda bądź fałsz) zależnie od notatki.

Wyznaczanie daty:

@{
   var value = "";
   DateTime now = DateTime.Now;
   value = now.AddDays(7).ToString();
}
@value

W tym przypadku reguła będzie wypełniała wyznaczone pole datą o tydzień wprzód.

Obliczanie wartości liczbowej z atrybutów:

@{
   var value = "";
   int attr1 = 0;
   int.TryParse(Model.Attributes["ATTR1"].Value, out attr1);
   int attr2 = 0;
   int.TryParse(Model.Attributes["ATTR2"].Value, out attr2);
   value = (attr1 + attr2).ToString();
}
@value

W tym przypadku reguła będzie wypełniała wyznaczone pole sumą wartości z atrybutów “ATTR1” i “ATTR2”.

Czy ten artykuł był pomocny? Tak Nie

Napisz do nas.