Strona 2 z 3

Re: Kolumny w module Zamówienia

: 08 lis 2021, 09:05
autor: plejaz
praiser pisze:
20 paź 2021, 17:54

Kod: Zaznacz cały

select Akwizytor.Knt_Akronim as Akw_z_karty, Akwizytor2.Knt_Akronim as Akw_z_zamowienia, Akwizytor3.Prc_Akronim as Akw_z_prac
from	         CDN.KntKarty Knt
LEFT join cdn.KntKarty as Akwizytor on Knt.Knt_AkwNumer = Akwizytor.Knt_GIDNumer and Knt.Knt_AkwTyp = Akwizytor.Knt_GIDTyp
LEFT join CDN.ZamNag on Zan_KntNumer = Knt.Knt_GidNumer and Zan_KntTyp = Knt.Knt_GidTyp
LEFT join cdn.KntKarty as Akwizytor2 on Zan_AkwNumer = Akwizytor2.Knt_GIDNumer and Zan_AkwTyp = Akwizytor2.Knt_GIDTyp
LEFT join cdn.Prckarty Akwizytor3 on  Akwizytor3.Prc_GIDNumer=ZaN_AkwNumer and Akwizytor3.Prc_GidTyp = Zan_AkwTyp
WHERE  {FiltrSQL}
Niestety po zastosowaniu kwerendy:

Kod: Zaznacz cały

SELECT AkwizytorKarta.Prc_Akronim as Akwizytor
FROM CDN.KntKarty Knt
LEFT JOIN CDN.ZamNag on Zan_KntNumer = Knt.Knt_GidNumer and Zan_KntTyp = Knt.Knt_GidTyp
LEFT JOIN CDN.PrcKarty AkwizytorKarta on AkwizytorKarta.Prc_GIDNumer = ZaN_AkwNumer and AkwizytorKarta.Prc_GidTyp = Zan_AkwTyp
WHERE {FiltrSQL}
Wyświetla mi tylko 1 Akwizytora, to znaczy, że pokazuje mi w kolumnie jakby Akwizytor był przypisany do każdego kontrahenta.

Na Twoim zrzucie ekranu wskazana jest zakładka "OGÓLNE", sprawdziłem to u siebie i na karcie kontrahenta opcja "AKWIZYTOR" jest odznaczona, za to jak pisałem opcja AKWIZYTOR jest widoczna w zakładce INNE:
1.gif
1.gif (8.97 KiB) Przejrzano 5351 razy
Lukas pisze:
22 paź 2021, 11:56
edit: swoją drogą, po co autorowi postu taka kolumna, skoro wystarczy nacisnąć przycisk "sumy" by pokazało wartości z zamówienia?
Opcja była nieaktywna (wyszarzona) dla wszystkich użytkowników.

Re: Kolumny w module Zamówienia

: 16 lis 2021, 18:12
autor: taszek
Akwizytor wskazany na zamówieniu w zakładce Kontrahent:
Ashampoo_Snap_2021.11.16_18h08m02s_001_.png
Ashampoo_Snap_2021.11.16_18h08m02s_001_.png (1.76 KiB) Przejrzano 5181 razy

Kod: Zaznacz cały

SELECT  Prc_Akronim FROM CDN.ZamNag
JOIN CDN.PrcKarty ON Prc_GIDNumer = ZaN_AkwNumer AND Prc_GIDTyp = ZaN_AkwTyp AND Prc_GIDLp = ZaN_AkwLp
WHERE {FiltrSQL}
Akwizytor wskazany na karcie kontrahenta głównego z zamówienia:

Kod: Zaznacz cały

SELECT  Prc_Akronim FROM CDN.ZamNag
JOIN CDN.KntKarty ON Knt_GIDNumer = ZaN_KntNumer AND Knt_GIDTyp = ZaN_KntTyp
JOIN CDN.PrcKarty ON Prc_GIDNumer = Knt_AkwNumer AND Prc_GIDTyp = Knt_AkwTyp AND Prc_GIDLp = Knt_AkwLp
WHERE {FiltrSQL}
Sprawdzone na wersji ERP XL 2021.0.1.
Oba kody dotyczą pracowników czy u Ciebie wystęuje to mieszanie (czasami prc a czasmai knt)?

Re: Kolumny w module Zamówienia

: 04 mar 2022, 14:14
autor: plejaz
Dziękuję kolego @taszek, działa.

Mam jeszcze jedno pytanie, utworzyłem sobie atrybut na karcie kontrahenta o nazwie "Test" jako lista, dodałem parametry: test A, test B.
Próbuję wyświetlić atrybuty na liście zamówień, ale niestety nie wyświetlają się wartości, a jedynie tylko kolumna bez żadnego błędu.
Zapytanie, które stworzyłem wygląda następująco:

Kod: Zaznacz cały

SELECT AtR_Wartosc 'Test'
FROM CDN.ZamNag
INNER JOIN CDN.AtrybutyKlasy ON AtK_Nazwa = 'Test'
INNER JOIN CDN.Atrybuty ON AtR_AtkID = AtK_ID
AND AtR_ObiNumer = ZaN_GIDNumer
AND AtR_ObiTyp = ZaN_GIDTyp
AND AtR_ObiLp = ZaN_GIDLp
WHERE {FiltrSQL}
Czy mógłby ktoś wskazać problem, który uniemożliwia wyświetlenie atrybutu ?

Re: Kolumny w module Zamówienia

: 04 mar 2022, 14:23
autor: praiser
Skoro na karcie kontrahenta to musisz podłączyć
LEFT JOIN CDN.Karty ON (Zan_KntTyp=Knt_GIDTyp AND Zan_KntNumer=Knt_GIDNumer AND Zan_KntLp=Knt_GIDLp)
i potem analogicznie atrybuty
LEFT JOIN CDN.Atrybuty (Knt_GIDNumer = Atr_ObiNumer AND Knt_GIDTyp = Atr_ObiTyp)
i lepiej zastosować id atrybutu, można pozbyć się linkowania klas i nie jest wrażliwe na zmianę nazwy atrybutu

.... AND Atr_AtkId = <id_atrybutu>

Re: Kolumny w module Zamówienia

: 07 mar 2022, 14:45
autor: plejaz
Dziękuję za pomoc.
Wykonałem zapytanie opierając się o nazwę atrybutu - działa, a kwerenda wygląda tak:

Kod: Zaznacz cały

SELECT AtR_Wartosc 'Test'
FROM CDN.ZamNag
INNER JOIN CDN.AtrybutyKlasy ON AtK_Nazwa = 'Test'
LEFT JOIN CDN.KntKarty ON (Zan_KntTyp=Knt_GIDTyp AND Zan_KntNumer=Knt_GIDNumer AND Zan_KntLp=Knt_GIDLp)
LEFT JOIN CDN.Atrybuty ON (Knt_GIDNumer = Atr_ObiNumer AND Knt_GIDTyp = Atr_ObiTyp AND Knt_GIDLp = Atr_ObiLp)
WHERE {FiltrSQL}

Re: Kolumny w module Zamówienia

: 13 mar 2022, 14:03
autor: taszek
Moim zdanie lepiej jest oprzeć się od ID atrybutu, czyli AtK_ID. Nazwę możesz zmienić, a ID nie zmienisz w systemie.
A wówczas kolumny dodatkowe z atrybutami mogą wyglądać tak:

Kod: Zaznacz cały

SELECT CDN.AtrPobierzWartosc(Knt_GIDTyp,Knt_GIDNumer,0,0,43,0) [Atrybut 1]
	,CDN.AtrPobierzWartosc(Knt_GIDTyp,Knt_GIDNumer,0,0,53,0) [Atrybut 2]
	,CDN.AtrPobierzWartosc(Knt_GIDTyp,Knt_GIDNumer,0,0,66,0) [Atrybut 3]
FROM CDN.ZamNag
JOIN CDN.KntKarty ON Knt_GIDNumer = ZaN_KntNumer AND Knt_GIDTyp = ZaN_KntTyp
WHERE {FiltrSQL}
gdzie 43,53 i 66 są to ID atrybutów

Re: Kolumny w module Zamówienia

: 20 gru 2022, 09:27
autor: brex87
Dzień dobry.
Mam podobny problem, próbuję wyświetlić dodany atrybut w module kontrahenci w grupach kontrahentów.
Całość chciałbym oprzeć o ID atrybutu, które w moim przypadku atr_atkid = 14
SELECT CDN.AtrPobierzWartosc(Knt_GIDTyp,Knt_GIDNumer,0,0,14,0) [Test]
FROM CDN.ZamNag
JOIN CDN.KntKarty ON Knt_GIDNumer = ZaN_KntNumer AND Knt_GIDTyp = ZaN_KntTyp
WHERE {FiltrSQL}
Kwerenda po sprawdzeniu nie wyrzuca błędu, a po dodaniu jej do operatora zaczyna wyrzucać błąd i nic się nie wyświetla.
Czy ma ktoś pomysł co jest nie tak?

Re: Kolumny w module Zamówienia

: 20 gru 2022, 09:38
autor: praiser
Join do grup powinien wyeliminować błędy na zakładce grup kontrahentów

JOIN CDN.KntGrupy ON Knt_GIDTyp=KnG_GIDTyp AND Knt_GIDNumer=KnG_GIDNumer and KnG_GIDTyp=32

Re: Kolumny w module Zamówienia

: 20 gru 2022, 09:51
autor: praiser
inna sprawa, że pobieranie danych z CDN.ZamNag na liście kontrahentów jest zbędne dla odczytu wartości atrybutu z karty kontrahenta.

SELECT CDN.AtrPobierzWartosc(Knt_GIDTyp,Knt_GIDNumer,0,0,14,0) [Test]
FROM CDN.KntKarty
JOIN CDN.KntGrupy ON Knt_GIDTyp=KnG_GIDTyp AND Knt_GIDNumer=KnG_GIDNumer and KnG_GIDTyp=32
WHERE {FiltrSQL}

Re: Kolumny w module Zamówienia

: 20 gru 2022, 09:51
autor: brex87
Super :), a teraz pytanie dlaczego całość pobieramy z ZamNag, a nie np. z AtrybutyKlasy czy Atrybuty?
Nie bardzo rozumiem dlaczego to działa i skąd ten select z AtrPobierzWartosc.