Szacowane kolumny
Oszacowane kolumny to specjalne kolumny, których wyniki zależą od innych kolumn przy użyciu wyrażeń zdefiniowanych przez użytkownika. Obsługiwane są 2 typy oszacowanych kolumn: kolumny formuły i kolumny szablonu.
Kolumny z formułami
Zestawienie materiałów obsługuje pola formuły. Ta sama składnia jest używana w poleceniu WYODRDANYCH. Wyrażenie Formuły to wyrażenie w formacie pól formuły \AcExpr. Może zawierać stałe, takie jak PI lub funkcje, takie jak SIN. Operandem w wyrażeniu może być TytułKolumny ujęty w nawiasy strzałkowe (<> ).
Na przykład formuła =<Masa>/<Objętość> oblicza średnią gęstość komponentu.
Jeśli wiersz nie zawiera wartości, zamiast niej zostanie użyta wartość domyślna. Możliwe jest określenie wartości domyślnej dla operandu przy użyciu następującej składni: <"TytułKolumny",WartośćDomyślna> gdzie TytułKolumny to tytuł wymaganej kolumny, a WartośćDomyślna to wartość domyślna. TytułKolumny musi znajdować się w cudzysłowie ("). Jeśli nie określono wartości domyślnej, zostanie użyta pusta wartość, co w większości przypadków spowoduje puste dane wyjściowe.
Kolumna z formułą może zawierać wiele wyrażeń. Każde wyrażenie powinno być ujęte w nawiasy sumujące ({}). Wyrażenia te są obliczane od pierwszego do ostatniego i używane jest pierwsze z nich, które daje niepusty wynik.
Formuła może odwoływać się do innych kolumn formuły, pod warunkiem, że nie tworzą one pętli. W hierarchicznym BOM formuła może również odwoływać się do wartości wiersza nadrzędnego poprzez dodanie Parent: przed nazwą kolumny. Może również odwoływać się do właściwości, które nie zostały jawnie dodane do tabeli, ale wszystkie inne kolumny formuły, do których odwołuje się formuła, muszą istnieć w tabeli. Takich kolumn wyświetlanych jako niewidoczne w tabeli BOM można nadal używać w wyrażeniach formuły.
W przypadku właściwości odległości, powierzchni, objętości i masy wartości zostaną przekonwertowane na jednostkę zdefiniowaną przez użytkownika przed użyciem ich w wyrażeniu formuły. Jeśli jednostka zdefiniowana przez użytkownika nie jest ustawiona, używana jest jednostka dokumentu. W przypadku właściwości masy, kilogram jest używany w dokumentach metrycznych, a funt w dokumentach imperialnych.
Kolumna szablonu
Kolumny szablonów umożliwiają łączenie kilku właściwości, a także niestandardowego tekstu w jedną kolumnę. Do definiowania kolumn szablonu używana jest specjalna składnia, oparta na wyrażeniach Diesel. Wyrażenia dla kolumn szablonu muszą zaczynać się od znaku $. Operandem w wyrażeniu może być ColumnTitle ujęty w nawiasy strzałkowe (<>).
Możliwe jest również użycie funkcji specjalnych:
| Funkcja | Opis | 
|---|---|
| $(+, arg1, arg2[, ... , arg9]) | Dodaje podane argumenty do pierwszego. | 
| $(-, arg1, arg2[, ... , arg9]) | Odejmuje podane argumenty od pierwszego. | 
| $(*, arg1 , arg2[, ... , arg9]) | Mnoży pierwszy argument przez podane argumenty. | 
| $(/, arg1, arg2[, ..., arg9]) | Dzieli pierwszy argument przez podane argumenty. | 
| $(=, arg1, arg2) | Zwraca 1, jeśli arg1 jest równy arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być liczbami. | 
| $(<, arg1, arg2) | Zwraca 1, jeśli arg1 jest mniejszy niż arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być liczbami. | 
| $(>, arg1, arg2) | Zwraca 1, jeśli arg1 jest większy niż arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być liczbami. | 
| $(!=, arg1, arg2) | Zwraca 1, jeśli arg1 nie jest równy arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być liczbami. | 
| $(<=, arg1, arg2) | Zwraca 1, jeśli arg1 jest mniejszy lub równy arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być liczbami. | 
| $(>=, arg1, arg2) | Zwraca 1, jeśli arg1 jest większy lub równy arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być liczbami. | 
| $(and, arg1, arg2[, ... , arg9]) | Stosuje operację bitową AND do argumentów. | 
| $(angtos, angle[, mode, precision]) | Konwertuje kąt na ciąg z uwzględnieniem podanego trybu (0 - stopnie, 1 - d/m/s, 2 - grady, 3 - radiany) i dokładności. | 
| $(delim, delimiter_string) | Wstawia inteligentny separator. Ciąg ogranicznika jest dodawany do danych wyjściowych tylko wtedy, gdy dane wyjściowe przed i po tym ograniczniku nie są puste. | 
| $(edtime, time, format) | Formatuje datę zgodnie z podanym ciągiem formatu. | 
| $(eq, arg1, arg2) | Zwraca 1, jeśli arg1 jest równy arg2; w przeciwnym razie zwraca 0. Zarówno arg1, jak i arg2 muszą być tekstem. | 
| $(eval, expression) | Oblicza dane wyrażenie jako wyrażenie Diesla. | 
| $(fix, value) | Obcina wartość rzeczywistą do liczby całkowitej. | 
| $(getvar, variable) | Zwraca wartość danej zmiennej systemowej. | 
| $(if, arg, then[, else]) | Zwraca „then”, jeśli „arg” nie jest równe 0; w przeciwnym razie zwraca „else” lub pusty ciąg, jeśli nie podano „else”. | 
| $(index, position, comma_separated_string) | Zwraca pod łańcuch na podanej pozycji w podanym ciągu oddzielonym przecinkami. | 
| $(nth, position, arg1[, arg2, ... , arg9]) | Zwraca argument w podanej pozycji. | 
| $(or, arg1, arg2[, ..., arg9]) | Stosuje operację bitową OR do argumentów. | 
| $(rtos, value[, mode, precision]) | Formatuje podaną wartość w odniesieniu do wymaganego trybu i dokładności. | 
| $(strlen, string) | Zwraca długość podanego ciągu. | 
| $(substr, string, start[, length]) | Zwraca podłańcuch „łańcucha” z „początku” o podanej „długości”. Numeracja zaczyna się od 1. | 
| $(upper, string) | Konwertuje ciąg znaków na wielkie litery. | 
| $(xor, arg1, arg2[, ... , arg9]) | Stosuje bitowy XOR do wszystkich argumentów. | 
Jedna kolumna szablonu może zawierać wiele wyrażeń. Każde wyrażenie musi być ujęte w nawiasy sumaryczne ({}). Wyrażenia te są obliczane od pierwszego do ostatniego i używane jest pierwsze z nich, które daje niepusty wynik.
Kolumna szablonu może odwoływać się do innych ocenianych kolumn, pod warunkiem, że nie tworzą one pętli. W hierarchicznym BOM kolumna szablonu może również odnosić się do wartości w wierszu nadrzędnym poprzez dodanie Parent: przed nazwą kolumny. Może również odnosić się do właściwości, które nie są jawnie dodane do tabeli, ale wszystkie inne oceniane kolumny, do których odnosi się którekolwiek z wyrażeń, muszą być obecne w tabeli. W wyrażeniach szablonu nadal można używać kolumn wyświetlanych jako niewidoczne w tabeli BOM.
Możesz użyć ciągu "\n", aby dodać podział wiersza.
Na przykład poniższe wyrażenie łączy właściwości PartNumber, Width, Height i Length:
${<PartNumber>$(delim," X ")<Width>$(delim," X ")<Height>$(delim," X ")<Lenght>}
Konfigurator wyrażeń
Do skonfigurowania oszacowanej kolumny można użyć Konfiguratora Wyrażeń. To okno dialogowe jest dostępne w panelu Menadżera BOM.
To okno dialogowe umożliwia ustawienie tytułu i jednostki dla kolumny, edycję wyrażenia za pomocą edytora z podświetlaniem składni i autouzupełnianiem oraz wyświetlenie podglądu tabeli BOM z oszacowaną kolumną. W przypadku kolumny szablonu sekcja Szablon umożliwia łatwe wstawianie, przenoszenie i usuwanie właściwości, a także ograniczników i niestandardowych tekstów.

