Czy wiesz, że po dodaniu wiersza w kontrolce typu Dane tabelaryczne poszczególne kolumny mogą zainicjować się wartością domyślną?

image_pdfimage_print

Zastosowanie

Dzięki tej konfiguracji, proces wprowadzania danych jest znacząco przyspieszony w przypadku dokumentów wymagających wielokrotnego dodawania tych samych lub podobnych pozycji. Głównym celem jest automatyczne wypełnienie kolumn nowo dodanego wiersza domyślnymi wartościami (np. nazwa, ilość, stawka VAT). Eliminuje to błędy i powtarzalne czynności użytkownika, co pozwala pracownikom skupić się na weryfikacji danych, a nie na ich rutynowym wprowadzaniu. Dodatkową, unikalną korzyścią tego przykładu jest to, że zawiera on w sobie pełną logikę dynamicznegodwukierunkowego przeliczania kwot (Netto/Brutto) w wierszu, dzięki dodatkowemu zapytaniu SQL.

 

Zawartość przykładu

  • Definicja Typu Obiegu (Workflow): Wzorcowa ścieżka obiegu dokumentu kosztowego z krokami akceptacji i konfiguracją kontrolki Dane tabelaryczne i wygenerowaniem dokumentu do Comarch ERPXL

 

Kliknij tutaj, aby pobrać przykład

 

Zasada działania

Mechanizm opiera się na monitorowaniu zdarzenia dodania nowego wiersza i uruchamianiu zapytania SQL, które w odpowiedzi wypełnia pola domyślnymi wartościami.

  • Kontrolka Dane Tabelaryczne jest skonfigurowana tak, aby obserwować samą siebie i reagować na zdarzenie wywołane przez dodanie nowego wiersza za pomocą przycisku „+” (Dodaj).
  • Na zakładce Inicjowanie wartości umieszczone jest zapytanie SQL, które sprawdza, czy kolumna ma wartość -1 (@Elementy_Column@ = -1). Wartość -1 oznacza, że operacja dotyczy dodania nowego wiersza.
  • Wewnątrz bloku BEGIN zapytanie SQL używa komendy UPDATE @Elementy@ do ustawienia domyślnych wartości (np. Nazwa = 'a-vista’, Ilosc = 1, StawkaVAT=1) dla nowo dodanej pozycji.
  • Kolumna wynikowa Netto została ustawiona w trybie „Do odczytu”, aby użytkownik nie mógł ręcznie jej edytować.

 

Konfiguracja przykładu

1. Utworzono kontrolkę Tabelaryczną: Dodano kontrolkę typu Dane tabelaryczne o nazwie (identyfikatorze) Elementy i skonfigurowano w niej następujące kolumny:

  • ”Nazwa” (identyfikator kolumny: Nazwa) – typ Tekst
  • ”Cena” (identyfikator kolumny: Cena) – typ Liczba stałoprzecinkowa
  • ”Ilość” (identyfikator kolumny: Ilosc) –typ Liczba stałoprzecinkowa
  • ”Netto” (identyfikator kolumny: Netto)typ Liczba stałoprzecinkowa
  • ”Stawka VAT” (identyfikator kolumny: StawkaVAT) – typ Lista
  • ”Brutto” (identyfikator kolumny: Brutto) – typ Liczba stałoprzecinkowa

 

Kolumny w kontrolce Dane tabelaryczne

 

2. W kontrolce typu Dane tabelaryczne  na zakładce Listy zdefiniowano zapytanie pobierające:

 

  • Stawki VAT:

 

 select Naz_gidLp as Id,  
 CASE  
  WHEN Naz_Nazwa='A 23.00' THEN '23%' 
  WHEN Naz_Nazwa='B 8.00' THEN '8%' 
  WHEN Naz_Nazwa='C 0.00' THEN '0%' 
  WHEN Naz_Nazwa='D 0.00' THEN 'ZW' 
  WHEN Naz_Nazwa='E 0.00' THEN 'NP' 
  WHEN Naz_Nazwa='F 7.00' THEN '7%' 
  WHEN Naz_Nazwa='G 5.00' THEN '5%' 
 END  
 from CDN.Nazwy  
 where Naz_GIDTyp = 624  AND trim(substring(Naz_Nazwa,9,2))=''

 

 

Lista Stawka VAT w kontrolce Dane tabelaryczne

 

3. Dodano obserwację kontrolki: W kontrolce Dane tabelaryczne, na zakładce Inicjowanie wartości, dodano powiązanie do samej siebie.

 

Powiązanie kontrolki do samej siebie

 

 

4. Dodano zapytanie inicjujące SQL: W kontrolce typu Dane tabelaryczne, na zakładce Inicjowanie wartości w sekcji Inicjowanie SQL ERP dodano zapytanie, które zawiera warunek sprawdzający dodanie nowego wiersza IF @Elementy_Column@ = -1 oraz instrukcję update, która ustawia wartości domyślne dla kolumn (Nazwa, Ilość, Stawka VAT) w bieżącym wierszu.

Oprócz inicjacji nowego wiersza, zapytanie zawiera również logikę dwukierunkowego przeliczania wartości (Netto, Brutto, Cena) dla już istniejących wierszy, co czyni ten wzorzec gotowym rozwiązaniem dla każdej kontrolki z kalkulacjami finansowymi.

 

IF @^SenderControlName@ = 'Elementy'

IF @Elementy_Column@ = -1 /*[1] LOGIKA: INICJACJA NOWEGO WIERSZA (WYZWALANE KLIKNIĘCIEM '+') */

BEGIN

/*Ustawienie domyślnych wartości dla nowego wiersza */

UPDATE @Elementy@

SET [Nazwa] = 'a-vista',

[Ilosc] = 1,

[StawkaVAT] = 1 /*Identyfikator stawki domyślnej (ID=1 - stawka 23%)*/

WHERE POS = @Elementy_Row@

/*!!! OBOWIĄZKOWE: Odświeżenie wiersza w kontrolce Dane Tabelaryczne !!! */

SELECT * FROM @Elementy@

END

ELSE IF @Elementy_Column@=2 OR @Elementy_Column@=3 OR @Elementy_Column@=5

/*[2] LOGIKA: PRZELICZANIE W PRZÓD (Cena/Ilość/Stawka VAT -> Netto/Brutto) */

BEGIN

DECLARE @VAT AS DECIMAL(4, 2)




/*Pobranie stawki VAT z tabel CDN.Nazwy */

SELECT @VAT = CAST(SUBSTRING(Naz_Nazwa1, 0, CHARINDEX(' ', Naz_Nazwa1))

AS DECIMAL(4, 2)) / 100

FROM CDN.Nazwy

WHERE Naz_GIDTyp = 624 AND Naz_GIDLp = (SELECT [StawkaVAT] FROM @Elementy@

WHERE POS = @Elementy_Row@)




/*Wyliczenie i aktualizacja netto i brutto*/

UPDATE @Elementy@

SET [Netto] = (Ilosc * Cena),

[Brutto] = (Ilosc * Cena) * (@VAT + 1)

WHERE POS = @Elementy_Row@




/*!!! OBOWIĄZKOWE: Odświeżenie wiersza w kontrolce Dane Tabelaryczne !!! */

SELECT * FROM @Elementy@

END

ELSE BEGIN

IF @Elementy_Column@=3 OR @Elementy_Column@=5 OR @Elementy_Column@=6 -- [3] LOGIKA: PRZELICZANIE W TYŁ (Brutto -> Cena/Netto)




/*Pobranie stawki VAT*/

SELECT @VAT = CAST(SUBSTRING(Naz_Nazwa1, 0, CHARINDEX(' ', Naz_Nazwa1))

AS DECIMAL(4, 2)) / 100

FROM CDN.Nazwy

WHERE Naz_GIDTyp = 624 AND Naz_GIDLp = (SELECT [StawkaVAT] FROM @Elementy@

WHERE POS = @Elementy_Row@)




/*Aktualizacja ceny i netto*/

UPDATE @Elementy@

SET [Cena] = [Brutto] / (@VAT + 1),

[Netto] = [Ilosc] * ([Brutto] / (@VAT + 1))

WHERE POS = @Elementy_Row@




/*!!! OBOWIĄZKOWE: Odświeżenie wiersza w kontrolce Dane Tabelaryczne !!!*/

SELECT * FROM @Elementy@

END

 

Zapytanie SQL w kontrolce Dane tabelaryczne na zakładce Inicjowanie wartości

 

5. Tryb pracy: W kontrolce typu Dane tabelaryczne, na zakładce Ograniczenie edycji kolumnę „Netto” ustawiono w trybie „Do odczytu”.

 

Kolumna Netto w trybie „Do odczytu”

 

 

Uzupełniona Kontrolka Dane Tabelaryczne

Po kliknięciu ikony „+” (Dodaj) na karcie obiegu, nowy wiersz kontrolki typu Dane Tabelaryczne został automatycznie zainicjowany wartościami domyślnymi. Kolumny: Nazwa i Ilość oraz Stawka VAT zostały wypełnione wartościami zdefiniowanymi w zapytaniu SQL. Kolumny zostały wstępnie wypełnione, co skraca czas uzupełniania danych dla powtarzalnych pozycji. Dodatkowo dzięki rozbudowanemu zapytaniu SQL, dla nowo wprowadzonych wierszy istnieje możliwości dwukierunkowego przeliczania wartości (Netto, Brutto, Cena) co, ułatwia bieżącą aktualizację i kontrolę poszczególnych pozycji.

 

Uzupełnione wiersze po dodaniu pozycji ikoną „+”

 

 

Rozpoczynasz pracę z Comarch BPM (dawniej DMS) i chcesz dowiedzieć się, jak korzystać z programu? A może masz już podstawową wiedzę o Comarch BPM (dawniej DMS) i chcesz dowiedzieć się więcej?

Sprawdź Szkolenia Comarch BPM!

Czy ten artykuł był pomocny?