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?
Dodanie atrybutu
Moderator: mikey
Re: Dodanie atrybutu
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ć:
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
Ostatnio zmieniony 28 sty 2026, 16:15 przez praiser, łącznie zmieniany 1 raz.
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Dodanie atrybutu
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
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
tak, tak powinno zadziałać choć to tylko koncept
Pierwszy warunek to JOIN do tabeli dostawców:
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:
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)
Pierwszy warunek to JOIN do tabeli dostawców:
Kod: Zaznacz cały
JOIN CDN.TwrDst ON TWD_TwrNumer = TrE_TwrNumer
AND TWD_KntNumer = TrN_KntNumerDrugi warunek w WHERE:
Kod: Zaznacz cały
AND TrE_TwrNumer = 12345 -- GIDNumer konkretnego towaru
AND TrN_KntNumer = 67890 -- GIDNumer kontrahenta (nabywcy)Odwrotnie: jeśli nieważne jest czy kontrahent jest dostawcą, to usuń JOIN a zostaw tylko WHERE na konkretne GIDy. (towar i klient)
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Dodanie atrybutu
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.
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.
--------------------------------
Pozdrawiam
WW
Pozdrawiam
WW
Re: Dodanie atrybutu
hej, z pola kod u kontrahenta z kartoteki towaru
czyli masz jedną pozycję. Wydaje mi się jednak najskuteczniej będzie trigger.