Forum Użytkownikow Subiekt GT
InsERT GT => Dodatki - zestawienia - sfera => Wątek zaczęty przez: Aga88 w Listopad 04, 2015, 11:52:28
-
Witam,
Czy ktoś mógłby pomóc mi w przygotowaniu filtru donośnie wyboru typu transakcji VAT ?? Chodzi mi o WDT oraz Export.
Pozdrawiam
-
Wartości jakie może przyjmować kolumna "dok_RodzajOperacjiVat":
Rodzaj operacji VAT (0 - nabycie/dostawa krajowa; 1 - import/eksport towarów; 2 - nabycie/dostawa ue; 3 - transakcja trójstronna; 4 - import/eksport usług; 6- odwrotne obciążenie; 12 - nabycie/dostawa poza terytorium kraju)
-
Niestety nie działa :(
-
A co niby nie działa ? To nie jest przecież filtr tylko wartości jakie może przyjmować... Napisałaś "Czy ktoś mógłby pomóc", a nie "Czy ktoś zrobi wszystko za mnie"...
-
Pozjadałeś wszystkie rozumy ??????? Ideał się znalazł wszystko wiedzący.
-
Pozjadałeś wszystkie rozumy ???????
Nie, tak się nie da, trzeba po prostu poświęcić dużo czasu, aby zdobyć tę wiedzę o czym poinformowałem wyraźnie na samym początku: http://www.forumsubiekta.pl/subiekt/zestawienie-sprzedazy-w-obcej-walucie/msg59731/#msg59731 (http://www.forumsubiekta.pl/subiekt/zestawienie-sprzedazy-w-obcej-walucie/msg59731/#msg59731).
Ideał się znalazł wszystko wiedzący.
Zachęcam też do tego, abyś najpierw napisała kilka słów o sobie, zanim zaczniesz próbować oceniać innych. Jeśli inaczej rozumiesz "pomoc" niż ja to chętnie zobaczę jak "pomagasz" na forum, można poświęcić na to bardzo dużo czasu i co jakiś czas przeczytać wypowiedzi niezadowolonych użytkowników, którym nie spodobała się odpowiedź, zapraszam.
-
Nie, nie pomagam nikomu, gdyż jestem zielona jak szczypiorek. Zaczęłam korzystać z subiekta nie dawno (zmiana pracy).
-
Zwracam też uwagę, że ja też jeszcze nie dawno byłem "zielony"... Rozumiem i nie zazdroszczę takiej pracy, gdzie nie zapewniono Ci wsparcia przy obsłudze programów Insertu... Tworzenie zestawień SQL to NIE jest zakres wiedzy "użytkownika", użytkownik powinien jedynie wiedzieć, że można realizować takie rozwiązanie, gdzie je może zamówić i jak je dodać w programie.
-
Czy w takim wypadku mam napisać na priv, aby uzgodnić ceną za udostępnienie filtru ?? :)
-
W tym programie nie takiej opcji, żeby sobie dodawać dowolne fitry w dowolnym miejscu, gdzie akurat jest potrzebny.
Więc pytanie o udostęnienie filtru jest bez sensu.
Chcąc osiągnąć jakiś efekt trzeba najpierw zdefiniować co i gdzie chcesz coś osiągnąć. Mając to możesz pytać jak to osiągnąć. Określiłać co chcesz, ale nie określiłaś gdzie, stąd odpowiedź taka jak pytanie.
I nie unoś się, bo to jest forum użytkowników, a nie Insertu i jesli ktoś ma wiedzę i chęć, żeby się nia podzielić, to może to robić, ale nie musi. To jego dobra wola. Więc trzymaj raczej nerwy na wodzy.
-
Chcę osiągnąć zestawienie, które mi zobrazuje wartości w walucie w Euro zgodnie z tym co jest na fakturach. Uwzględniając podział na magazyny, kontrahenta i transakcje VAT. Czyli ogólnie rzecz biorąc zestawienie wg. dokumentów w EUR bez PLN.
-
Czy w takim wypadku mam napisać na priv, aby uzgodnić ceną za udostępnienie filtru ?? :)
Gdzieś program został kupiony, gdzieś jest wykupowany abonament, gdzieś jest serwisowany, więc powinnaś mieć gdzie spytać o takie tematy... Ja się nie napraszam, jeśli będziesz chciała to się odezwij na PW, jeśli nie to nie.
Nie mniej poruszany problem jest chyba jednym z najprostszych do rozwiązania, wystarczy skopiować przykład z pomocy:
IN ({CHL:faktura zakupu#1#faktura sprzedaży#2#korekta faktury zakupu#5#korekta faktury sprzedaży#6#zwrot detaliczny#14#paragon#21#:Typ dokumentu}))
i podmienić/uzupełnić wartości na te z pierwszej mojej (nie) pomocnej odpowiedzi ;)
-
Czy dobrze:
IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:Typ dokumentu}))
-
Stworzyłam coś takiego:
SELECT dok_DataWyst AS [Data], dok_NrPelny AS [Numer], adr_NazwaPelna AS [Kontrahent],
CASE WHEN dok_WalutaKurs = 0 THEN 0 ELSE dok_WartNetto/dok_WalutaKurs END AS [Netto w walucie],
CASE WHEN dok_WalutaKurs = 0 THEN 0 ELSE dok_WartBrutto/dok_WalutaKurs END AS [Brutto w walucie],
dok_Waluta AS [Waluta], dok_WalutaKurs AS [Kurs]
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
join tw_Stan on tw_Id = st_TowId and st_MagId = dok_MagId
WHERE (dbo.fnMAKE_DOKPARAM(dok_Typ, dok_Podtyp) IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:Typ dokumentu}))
and dok_Status =1
and dok_DataWyst BETWEEN {DR:Data dokumentu}
and dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn :Magazyn})
and tw_IdGrupa IN ({CHL_DB: SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw :Grupa Towarów})
GROUP BY tw_Symbol, tw_Nazwa
Ale cyba jest tak beznadziejne, iż nie zadziałało :(
-
Porównujesz "typ długi" z "rodzajem transakcji VAT", więc jak ma zadziałać ? W pierwszej swojej odpowiedzi podałem przecież nazwę kolumny, w której jest przechowywany rodzaj transakcji VAT...
-
SELECT dok_DataWyst AS [Data], dok_NrPelny AS [Numer], adr_NazwaPelna AS [Kontrahent],
CASE WHEN dok_WalutaKurs = 0 THEN 0 ELSE dok_WartNetto/dok_WalutaKurs END AS [Netto w walucie],
CASE WHEN dok_WalutaKurs = 0 THEN 0 ELSE dok_WartBrutto/dok_WalutaKurs END AS [Brutto w walucie],
dok_Waluta AS [Waluta], dok_WalutaKurs AS [Kurs]
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
join tw_Stan on tw_Id = st_TowId and st_MagId = dok_MagId
IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:Typ dokumentu}))
and dok_Status =1
and dok_DataWyst BETWEEN {DR:Data dokumentu}
and dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn :Magazyn})
and tw_IdGrupa IN ({CHL_DB: SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw :Grupa Towarów})
GROUP BY tw_Symbol, tw_Nazwa
W którym miejscu powyższego schematu mam jeszcze popracować ??
-
join tw_Stan on tw_Id = st_TowId and st_MagId = dok_MagId
(*)
IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne W którym miejscu powyższego schematu mam jeszcze popracować ??
W zaznaczonym gwiazdką ;)
Zgubiło Ci się WHERE i początek warunku.
Nie wiadomo co ma być IN (...)
-
WHERE
dok_DataWyst BETWEEN {DR:Data dokumentu}
and (dok_Typ IN({CHL:IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:Typ dokumentu}))
and dok_Status =1
and dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn :Magazyn})
and tw_IdGrupa IN ({CHL_DB: SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw :Grupa Towarów})
GROUP BY tw_Symbol, tw_Nazwa
Niestety przestał mi działać zdalnie subiekt i nie mogę przetestować
-
Niestety przestał mi działać zdalnie subiekt i nie mogę przetestować
Nie ma czego... Teraz przecież porównujesz typ dokumentu z rodzajem transakcji VAT... Kolejny raz odsyłam do swojej pierwszej odpowiedzi:
... kolumna "dok_RodzajOperacjiVat"
-
and IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:dok_RodzajOperacjiVat}))
Czy przed IN także należy wstawić coś :) ??
-
Tak, link do dokumentacji:
https://msdn.microsoft.com/en-us/library/ms177682.aspx
.
-
Musisz napisać co ma być "IN (...)" bo teraz to podajesz że COŚ ma należeć do wskazanego zbioru, ale nie podajesz CO ma do tego zbioru należeć.
-
A czy mogę połączyć to w ten sposób:
FROM dok__Dokument
INNER JOIN adr__Ewid ON dok_PlatnikId = adr_IdObiektu AND adr_TypAdresu = 1
WHERE (dok_Typ IN({CHL:Faktura zakupu#1#Faktura sprzedaży#2#Korekta faktury zakupu#5#Korekta faktury sprzedaży#6#:Typ dokumentu}))
or (dok_RodzajOperacjiVat IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:dok_RodzajOperacjiVat}))
Bo w sumie oba filtry mogą być dla mnie przydatne.
-
Możesz, Twoja decyzja.
Tylko czy na pewno chcesz mieć między filtrami OR?
-
AND :)
Czy mogłabym prosić o sprawdzenie poprawności ??
SELECT dok_DataWyst AS [Data], dok_NrPelny AS [Numer], adr_NazwaPelna AS [Kontrahent],
CASE WHEN dok_WalutaKurs = 0 THEN 0 ELSE dok_WartNetto/dok_WalutaKurs END AS [Netto w walucie],
CASE WHEN dok_WalutaKurs = 0 THEN 0 ELSE dok_WartBrutto/dok_WalutaKurs END AS [Brutto w walucie],
dok_Waluta AS [Waluta], dok_WalutaKurs AS [Kurs]
from dok__Dokument join adr__Ewid on dok_PlatnikId=adr_IdObiektu and adr_TypAdresu=1
WHERE (dok_Typ IN({CHL:Faktura zakupu#1#Faktura sprzedaży#2#Korekta faktury zakupu#5#Korekta faktury sprzedaży#6#:Typ dokumentu}))
and (dok_RodzajOperacjiVat IN ({CHL:nabycie/dostawa krajowa#0#import/eksport towarów#1#nabycie/dostawa eu#3#transakcja trójstronna#3#import/eksport usług#6#odwrotne obciązenie#6#naybcie/dostawa poza terytorium kraju#12#:dok_RodzajOperacjiVat}))
and dok_Status =1
and dok_DataWyst BETWEEN {DR:Data dokumentu}
and dok_MagId IN ({CHL_DB: SELECT mag_Id, mag_Nazwa FROM sl_Magazyn :Magazyn})
and tw_IdGrupa IN ({CHL_DB: SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw :Grupa Towarów})
GROUP BY tw_Symbol, tw_Nazwa
-
Witam,
Uaktualniam temat, gdyż zestawienie nie działa i nie mam pojęcia dlaczego.
-
Ale Ty w ogóle masz jakieś pojęcie o TSQL, czy tak poprawiasz "na czuja" nie rozumiejąc co to robi i dlaczego?
Wkleiłem to do Subiekta i kliknąłem "Testuj zapytanie" to dostałem komunikat "Invalid column name 'tw_IdGrupa'".
Twój SELECT bierze dane z 2 tabel: dok__Dokument i adr__Ewid.
W żadnej z nich nie ma kolumny 'tw_IdGrupa', więc jak to ma zadziałać?
-
Moja wiedza jest dopiero początkująca, więc zbędne jest moje tłumaczenie...
-
Hmm...
Rozumiem, ale jak dla mnie to jedno z dwojga - poznajesz TSQL i piszesz/modyfikujesz własne zestawienia, albo zamawiasz u kogoś.
No to tak na początek, dla zachęty ;)
SELECT wybiera dane z bazy, a konkretnie z tabel do których się odwołujesz po FROM.
W tym co tu wklejasz, tak na pierwszy rzut oka, zmieniła się lista tych tabel.
W wersji z 05.11 było tak:
FROM dok_Pozycja
join dok__Dokument ON ob_DokHanId = dok_Id
join tw__Towar ON ob_TowId = tw_Id
join tw_Stan on tw_Id = st_TowId and st_MagId = dok_MagId
A w ostatniej już cąłkiem inaczej, bo:
from dok__Dokument join adr__Ewid on dok_PlatnikId=adr_IdObiektu and adr_TypAdresu=1
Oprócz tego są jeszcze warunki (po WHERE) i w Twoim przypadku dodatkowo także grupowanie (po GROUP BY).
U Ciebie dane mają pochodzić z tabel dok__Dokument i adr__Ewid, a w warunkach wykorzystujesz kolumnę tw_IdGrupa, której nie ma w żadnej z tych dwóch tabel.
Do tego grupowanie masz po kolumnach tw_Symbol, tw_Nazwa, których także nie ma ani w żadnej z tych dwóch tabel.
Wszystkie te 3 kolumny pochodzą z tabeli tw__Towar, w ogóle nie występującej w tym zestawieniu.
Nie wiem co chciałaś osiągnąć, ale mam wrażenie że ostatnie 2 linijki ,o te:
and tw_IdGrupa IN ({CHL_DB: SELECT grt_Id, grt_Nazwa FROM sl_GrupaTw :Grupa Towarów})
GROUP BY tw_Symbol, tw_Nazwa
są z innej bajki niż cała reszta.
PS purystów proszę o wyrozumiałość. Wiem że SELECT może nie tylko z tabel, ale to nie ten etap ;)