Kolumny w module Zamówienia

Problemy i pomysły związane z funkcjonowaniem modułu Sprzedaż

Moderator: mikey

plejaz
Posty: 86
Rejestracja: 11 gru 2013, 13:08
Rola: Inny

Re: Kolumny w module Zamówienia

Post 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 5274 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.

taszek
Posty: 585
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: Kolumny w module Zamówienia

Post 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 5104 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)?
Pozdrawiam
Wojtek Cyrklewicz

plejaz
Posty: 86
Rejestracja: 11 gru 2013, 13:08
Rola: Inny

Re: Kolumny w module Zamówienia

Post 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 ?

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Kolumny w module Zamówienia

Post 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>
--------------------------------
Pozdrawiam
WW

plejaz
Posty: 86
Rejestracja: 11 gru 2013, 13:08
Rola: Inny

Re: Kolumny w module Zamówienia

Post 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}

taszek
Posty: 585
Rejestracja: 12 wrz 2012, 13:20
Rola: Administrator CDN XL
Wersja: 2016

Re: Kolumny w module Zamówienia

Post 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
Pozdrawiam
Wojtek Cyrklewicz

brex87
Posty: 22
Rejestracja: 14 maja 2019, 08:20
Rola: Użytkownik CDN XL
Wersja: 2018

Re: Kolumny w module Zamówienia

Post 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?

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Kolumny w module Zamówienia

Post 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
--------------------------------
Pozdrawiam
WW

Awatar użytkownika
praiser
Posty: 685
Rejestracja: 02 lip 2014, 12:22
Rola: Handlowiec CDN XL
Wersja: 2023

Re: Kolumny w module Zamówienia

Post 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}
--------------------------------
Pozdrawiam
WW

brex87
Posty: 22
Rejestracja: 14 maja 2019, 08:20
Rola: Użytkownik CDN XL
Wersja: 2018

Re: Kolumny w module Zamówienia

Post 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.

ODPOWIEDZ