Strona 1 z 1
Dodanie atrybutu
: 28 sty 2026, 07:54
autor: AndrzejK
Cześć,
potrzebuję dodać atrybut, który będzie wartością z karty towaru -> kod dostawcy w momencie kiedy na FS jest wskazany konkretny towar oraz odbiorca. Jak to ogarnąć? Da się z konfiguracji klasy atrybutu, czy robić to triggerem?
Re: Dodanie atrybutu
: 28 sty 2026, 11:55
autor: praiser
powinno się dać to ogarnąć atrybutami i kopiowaniem do FS na nagłówek albo elementy, bo wg dokumentacji
W zapytaniu definiujemy jaka wartość powinna być przypisana do atrybutu na obiekcie docelowym. Wynik zapytania (select) jest podstawą określenia wartości atrybutu na obiekcie docelowym, dlatego powinien być zwrócony jako jednowierszowy recordset zbudowany z min:1 – max:6 kolumn o typach odpowiednio: Atr_Wartosc, Atr_AtrTyp, Atr_AtrFirma, Atr_AtrNumer, Atr_AtrLp, Atr_AtrSubLp.
Jak warunek do kopiowania można wrzucić:
Kod: Zaznacz cały
SELECT
<tu co ma być wartością> as Atr_Wartosc,
0 as Atr_AtrTyp,
0 as Atr_AtrFirma,
0 as Atr_AtrNumer,
0 as Atr_AtrLp,
0 as Atr_AtrSubLp
FROM CDN.TraElem
JOIN CDN.TraNag ON TrE_GIDTyp = TrN_GIDTyp
AND TrE_GIDNumer = TrN_GIDNumer
JOIN CDN.TwrDst ON TWD_TwrNumer = TrE_TwrNumer
AND TWD_KntNumer = TrN_KntNumer
WHERE {FiltrSQL}
AND TrE_TwrNumer = 12345 -- GIDNumer konkretnego towaru
AND TrN_GidNumer = 67890 -- GIDNumer konkretnego klienta
Re: Dodanie atrybutu
: 28 sty 2026, 15:18
autor: AndrzejK
tylko pytanie, czy to zadziała to tylko na wystąpienie konkretnego kontrahenta?
doprecyzując: by atrybut został dodany dla kontrahenta A i towaru A, a już nie został dodany dla kontrahenta B i towaru A
Re: Dodanie atrybutu
: 28 sty 2026, 16:22
autor: praiser
tak, tak powinno zadziałać choć to tylko koncept
Pierwszy warunek to JOIN do tabeli dostawców:
Kod: Zaznacz cały
JOIN CDN.TwrDst ON TWD_TwrNumer = TrE_TwrNumer
AND TWD_KntNumer = TrN_KntNumer
Jeśli na karcie towaru nie ma tego kontrahenta jako dostawcy, to cały wiersz nie zostanie zwrócony (brak wyniku = brak atrybutu).
Drugi warunek w WHERE:
Kod: Zaznacz cały
AND TrE_TwrNumer = 12345 -- GIDNumer konkretnego towaru
AND TrN_KntNumer = 67890 -- GIDNumer kontrahenta (nabywcy)
Jeśli JOIN z TwrDst załatwia sprawę (chcesz tylko pary towar-kontrahent które są w TwrDst), to warunki w WHERE na konkretne GIDy są opcjonalne - potrzebne tylko gdy chcesz dodatkowo zawęzić do wybranych towarów/kontrahentów.
Odwrotnie: jeśli nieważne jest czy kontrahent jest dostawcą, to usuń JOIN a zostaw tylko WHERE na konkretne GIDy. (towar i klient)
Re: Dodanie atrybutu
: 28 sty 2026, 16:30
autor: praiser
Chyba że, źle zrozumiałem pierwszy post.
Czy chodzi o to, że chcesz dodawać atrybut gdy po prostu jest jakiś konkretny towar na dokumencie handlowym, a w odbiorcy jest konkretny kontrahent?
Pytanie kluczowe: Jeśli masz wielu dostawców tego samego towaru, to który ma być przepisywany do atrybutu?
Jeśli w TwrDst jest kilka rekordów dla tego samego towaru (wielu dostawców), zapytanie SQL zwróci wiele wierszy, a system atrybutów oczekuje jednowierszowego recordset.
Re: Dodanie atrybutu
: 29 sty 2026, 11:34
autor: AndrzejK
hej, z pola kod u kontrahenta z kartoteki towaru

czyli masz jedną pozycję. Wydaje mi się jednak najskuteczniej będzie trigger.