Przeskocz do zawartości głównej Przejdź do treści uzupełniającej

Modyfikatory zestawów z wykorzystaniem funkcji zestawu

Czasami trzeba zdefiniować zestaw wartości pól za pomocą zagnieżdżonej definicji zestawu. Na przykład możesz chcieć wybrać wszystkich klientów, którzy kupili określony produkt, bez wybierania produktu.

W takich przypadkach użyj funkcji zestawu elementów P() i E(). Zwracają one zestawy elementów z odpowiednio możliwymi i wykluczonymi wartościami pola. W nawiasie możesz określić dane pole oraz wyrażenie zestawu, które definiuje zakres. Na przykład:

P({1<Year = {2021}>} Customer)

Spowoduje to zwrócenie zestawu klientów, którzy mieli transakcje w 2021 r. Możesz następnie użyć tego w modyfikatorze zestawu. Na przykład:

Sum({<Customer = P({1<Year = {2021}>} Customer)>} Amount)

To wyrażenie zestawu wybierze tych klientów, ale nie ograniczy wyboru do 2021 r.

Funkcji tych nie można używać w innych wyrażeniach.

Dodatkowo wewnątrz funkcji zestawu elementów można stosować tylko zestawy naturalne. Jest to zestaw rekordów, które można zdefiniować za pomocą prostego wyboru.

Przykład: zestaw zdefiniowany przez {1-$} nie może zawsze być określony poprzez wybór, nie jest więc zestawem naturalnym. Użycie tych funkcji w odniesieniu do zestawów innych niż naturalne zwróci nieoczekiwane wyniki.

Przykłady: Wyrażenia wykresu dla modyfikatorów zestawu z funkcjami zestawu

Przykłady Wyniki
sum( {$<Customer = P({1<Product={'Shoe'}>} Customer)>} Sales )

Zwraca wartość sprzedaży dla bieżącego wyboru, ale tylko tych klientów, którzy co najmniej raz kupili produkt „Shoe”. W tym przypadku funkcja elementowa P() zwraca listę możliwych klientów, których wskazuje wybór „Shoe” w polu Product.

sum( {$<Customer = P({1<Product={'Shoe'}>})>} Sales )

Tak samo jak powyżej. Jeśli pole w funkcji elementowej zostanie pominięte, funkcja zwróci możliwe wartości pola wskazanego w przypisaniu zewnętrznym.

sum( {$<Customer = P({1<Product={'Shoe'}>} Supplier)>} Sales )

Zwraca wartość sprzedaży dla bieżącego wyboru, ale tylko tych klientów, którzy co najmniej raz dostarczyli produkt „Shoe”. To znaczy, ze klient jest również dostawcą. W tym przypadku funkcja elementowa P() zwraca listę możliwych dostawców, których wskazuje wybór „Shoe” w polu Product. Lista dostawców jest następnie stosowana jako wybór w polu Customer.

sum( {$<Customer = E({1<Product={'Shoe'}>})>} Sales )

Zwraca wartość sprzedaży dla bieżącego wyboru, ale tylko tych klientów, którzy nigdy nie kupili produktu „Shoe”. W tym przypadku funkcja elementowa E() zwraca listę klientów wykluczonych wyborem produktu „Shoe” w polu Product.

Czy ta strona była pomocna?

Jeżeli natkniesz się na problemy z tą stroną lub jej zawartością — literówkę, brakujący krok lub błąd techniczny — daj nam znać, co możemy poprawić!