Parametry do Crystal

Zapytania SQL, widoki, Crystal, definicje filtrów, szybkich raportów, wydruków, API, Hydra, .NET

Moderator: mikey

VIkking
Posty: 175
Rejestracja: 20 paź 2021, 14:28
Rola: Administrator CDN XL
Wersja: 2022
Kontakt:

Parametry do Crystal

Post autor: VIkking »

Witam,

jak z XL przekazać parametry z wykresu? Mam sobie swój wykres gdzie podaje rodzaj sprzedaży i chciałbym żeby na raporcie pojawiło się gdzieś że to jest taki rodzaj sprzedaży np. zaznaczam że to okno i na raporcie pojawia się słowo okno?

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

Re: Parametry do Crystal

Post autor: taszek »

Strasznie niejasno napisałeś co chcesz osiągnąć.
Tytuł to parametry do Crystal, a ty piszesz o wykresie. A to są dwie różne rzeczy
Pozdrawiam
Wojtek Cyrklewicz

VIkking
Posty: 175
Rejestracja: 20 paź 2021, 14:28
Rola: Administrator CDN XL
Wersja: 2022
Kontakt:

Re: Parametry do Crystal

Post autor: VIkking »

Kod: Zaznacz cały

SELECT
lp=1,
	k1.Knt_Akronim AS 'Akronim kontrahenta', 
	k1.Knt_Nazwa1 AS 'Nazwa kontrahenta',
	sum(TrE_KsiegowaNetto) as 'Sprzedaż netto PLN',
	sum(TrE_KosztKsiegowy) as KosztKsiegowy,
                SUM(tre_ksiegowanetto)-sum(TrE_KosztKsiegowy) AS 'Marża',
	CASE WHEN sum(TrE_KosztKsiegowy) < SUM(tre_ksiegowanetto) THEN 
                                str((round( (sum(tre_ksiegowanetto)-SUM(tre_kosztksiegowy))/SUM(tre_ksiegowanetto),2)*100), 3,0) + ' %' 
                 ELSE '' END AS 'Marża %',
	case when k1.Knt_AkwTyp = 944 then (select concat(Prc_Nazwisko, ' ', Prc_Imie1) from cdn.PrcKarty where Prc_GIDNumer = k1.Knt_AkwNumer)
		when k1.Knt_AkwTyp = 32 then k2.Knt_Akronim
		else '' end as Akwizytor



FROM cdn.tranag n1 
	JOIN cdn.KntKarty k1 on k1.Knt_GIDNumer=n1.TrN_KntNumer
	left join cdn.TraElem on n1.TrN_GIDTyp=TrE_GIDTyp AND n1.TrN_GIDNumer=TrE_GIDNumer
	left JOIN cdn.TwrKarty ON Twr_GIDNumer=TrE_TwrNumer
	left JOIN cdn.TwrGrupy ON Twr_GIDTyp=TwG_GIDTyp AND Twr_GIDNumer=TwG_GIDNumer
	left JOIN cdn.KntKarty k2 on k2.Knt_GIDTyp=k1.Knt_AkwTyp and k2.Knt_GIDNumer=k1.Knt_AkwNumer
	left join cdn.PrcKarty p1 on p1.Prc_GIDTyp=k1.Knt_AkwTyp and p1.Prc_GIDNumer=k1.Knt_AkwNumer
	left join cdn.KntOpiekun on KtO_KntNumer=k1.Knt_GIDNumer and KtO_KntTyp=k1.Knt_GIDTyp
	left join cdn.PrcKarty p2 on p2.Prc_GIDNumer=KtO_PrcNumer


WHERE 
	n1.trn_aktywny = 0
	and n1.trn_trnlp = 127
	and n1.trn_trntyp <> 12	
	and n1.trn_trntyp <> 13
	and n1.TrN_GIDTyp in (2033,2041,2037,2045)
	and n1.trn_spityp <> 0
	and ((??okres = 1 and n1.TrN_TrNRok = ??rok)
		or (??okres = 2 and n1.TrN_TrNRok = ??rok 
			and ((??kwartal = 1 and n1.TrN_TrNMiesiac in (1, 2, 3))
				or (??kwartal = 2 and n1.TrN_TrNMiesiac in (4, 5, 6))
				or (??kwartal = 3 and n1.TrN_TrNMiesiac in (7, 8, 9))
				or (??kwartal = 4 and n1.TrN_TrNMiesiac in (10, 11, 12))))
		or (??okres = 3 and n1.TrN_TrNRok = ??rok and n1.TrN_TrNMiesiac = ??miesiac)
		or (??okres = 4 and n1.TrN_Data2 between ??dataOD and ??dataDO))	
and n1.TrN_Stan >= 3

{choose (??Drzwi=0,' and 1=1 ', ' and n1.TrN_GIDNumer IN (SELECT distinct n3.TrN_GIDNumer from CDN.TraNag n3 left join cdn.TraSElem on TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
	left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp and Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
	left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer WHERE n2.TrN_TrNSeria = ''PWD'' ) ') }


                {choose (??Okna=0, ' and 1=1', ' and n1.TrN_GIDNumer IN (SELECT distinct n3.TrN_GIDNumer from CDN.TraNag n3 left join cdn.TraSElem on TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
	left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp and Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
	left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer WHERE n2.TrN_TrNSeria = ''PBO'' ) ') }

               {choose (??Uslugi=0, ' and 1=1', ' AND n1.TrN_GidNUmer IN (SELECT  TrN_GIDNumer  FROM  CDN.TraNag  
		WHERE (
		EXISTS (SELECT DISTINCT e2.Tre_GidNUmer from CDN.TraElem e2 WHERE e2.TrE_GidNumer = n1.Trn_GidNUmer and e2.TrE_TypTwr =4)
		)
		
				AND  NOT EXISTS (
					SELECT distinct n3.TRN_GIDNUMER FROM CDN.tranag n3 left join cdn.TraSElem ON  TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
						left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp AND Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
						left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer 
							WHERE  n2.TrN_TrNSeria = ''PWD'' OR n2.TrN_TrNSeria = ''PBO'' )) ') }
	           {choose (??Towar=0, ' and 1=1', ' AND n1.TrN_GidNUmer IN (SELECT  TrN_GIDNumer  FROM  CDN.TraNag  
		WHERE (
		EXISTS (SELECT DISTINCT e2.Tre_GidNUmer from CDN.TraElem e2 WHERE e2.TrE_GidNumer = n1.Trn_GidNUmer and e2.TrE_TypTwr  IN (1,2))
		AND NOT EXISTS (SELECT DISTINCT e3.Tre_GidNUmer from CDN.TraElem e3 WHERE e3.TrE_GidNumer = n1.Trn_GidNUmer and e3.TrE_TypTwr =4)
		)
		
				AND  NOT EXISTS (
					SELECT distinct n3.TRN_GIDNUMER FROM CDN.tranag n3 left join cdn.TraSElem ON  TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
						left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp AND Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
						left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer 
							WHERE  n2.TrN_TrNSeria = ''PWD'' OR n2.TrN_TrNSeria = ''PBO'' )) ') }
		and (??wgAkwizytora = 0 or (??wgAkwizytora =1 and ((??akwTyp = 1 and k1.Knt_GIDNumer in (SELECT Knt_GIDNumer FROM cdn.KntKarty WHERE Knt_AkwNumer=??akwizytorPrac and Knt_AkwTyp = 944))
		or (??akwTyp = 2 and k1.Knt_GIDNumer in (SELECT Knt_GIDNumer FROM cdn.KntKarty WHERE Knt_AkwNumer=??akwizytorKnt and Knt_AkwTyp = 32)))))
	
	
group by
k1.knt_akronim, k1.Knt_Nazwa1, k1.Knt_AkwTyp, k1.Knt_AkwNumer, k2.Knt_Akronim, p1.Prc_Nazwisko, p1.Prc_Imie1, p2.Prc_Nazwisko, p2.Prc_Imie1
order by 'Sprzedaż netto PLN' desc


@PAR ?@X|Drzwi|&Drzwi:REG=0 @? PAR@
@PAR ?@X|Okna|&Okna:REG=0 @? PAR@
@PAR ?@X|Uslugi|&Uslugi:REG=0 @? PAR@
@PAR ?@X|Towar|&Towar(Pozostałe):REG=0 @? PAR@

@PAR ?@O(Rok:1|Kwartał:2|Miesiąc:3|Zakres dat:4)|okres|Podsumowanie sprzedaży za:REG=1 @? @MSG(Wybrany okres raportowania) @TIP(Wybrany okres raportowania) PAR@
@PAR ?@R(select TrN_TrNRok as ID, TrN_TrNRok as Rok from cdn.TraNag
			where
				(TrN_GIDTyp in (2034, 2042) or
				(TrN_GIDTyp in (2033, 2041) and TrN_SpiTyp in (2033, 2041) ) or
				(TrN_GIDTyp in (2037, 2045) and TrN_SpiTyp in (2037, 2045) ) or
				(TrN_GIDTyp in (2001, 2009, 2005, 2013) and TrN_SpiTyp <>0))
		group by TrN_TrNRok)|rok|Rok:2021 @? @H(??okres = 4) @TIP(Wybierz rok) PAR@

@PAR ?@R(SELECT 1 AS Id, 'I kwartał' AS Kod UNION 
		SELECT 2, 'II kwartał' UNION 
		SELECT 3, 'III kwartał' UNION 
		SELECT 4, 'IV kwartał')|kwartal|Kwartał:REG=I kwartał @? @H(??okres <> 2) PAR@

@PAR ?@R(SELECT 1 AS Id, 'Styczeń' AS Kod UNION 
		SELECT 2, 'Luty' UNION 
		SELECT 3, 'Marzec' UNION 
		SELECT 4, 'Kwiecień' UNION 
		SELECT 5, 'Maj' UNION 
		SELECT 6, 'Czerwiec' UNION 
		SELECT 7, 'Lipiec' UNION 
		SELECT 8, 'Sierpień' UNION 
		SELECT 9, 'Wrzesień' UNION 
		SELECT 10, 'Październik' UNION 
		SELECT 11, 'Listopad' UNION 
		SELECT 12, 'Grudzień')|miesiac|Miesiąc:REG=Styczeń @? @H(??okres <> 3) PAR@
		
		
@PAR ?@D17|dataOD|Data od:REG=80358 @? @H(??okres <> 4) PAR@
@PAR ?@D17|dataDO|Data do:REG=80722 @? @H(??okres <> 4) PAR@
@PAR ?@X|wgAkwizytora|Wg akwizytora:REG=0 @? PAR@
@PAR ?@O(Z listy pracowników:1|Z listy kontrahentów:2)|akwTyp|Typ akwizytora:REG=1 @? @H(??wgAkwizytora = 0) PAR@
@PAR ?@LS20(SELECT Prc_gidnumer, CONCAT(Prc_nazwisko, ' ', Prc_Imie1) as Nazwa FROM cdn.Prckarty
			WHERE Prc_GIDNumer in (select knt_AkwNumer from cdn.KntKarty where (Knt_AkwNumer <> 0 and Knt_AkwTyp = 944))
			order by Nazwa asc|GENERICLOOKUP(Akwizytorzy z listy pracowników, 0, 1))|akwizytorPrac|Akwizytor:REG=JAROSZUK MAREK @? @H({(??wgAkwizytora = 0) or (??akwTyp = 2)}) PAR@
@PAR ?@LS20(SELECT knt_gidnumer, knt_akronim AS Nazwa FROM cdn.kntkarty
			WHERE Knt_GIDNumer in (select knt_AkwNumer from cdn.KntKarty where (Knt_AkwNumer <> 0 and Knt_AkwTyp = 32))
			order by Nazwa asc|GENERICLOOKUP(Akwizytorzy z listy kontrahentów, 0, 1))|akwizytorKnt|Akwizytor:REG=WIN-UP OPOLSKI @? @H((??wgAkwizytora = 0) or (??akwTyp = 1)) PAR@
To jest kod do wykresu i chciałbym wydrukować zawartość tego zapytania tylko nie pojawiają się tam parametry np. Czy to jest za typ: okno czy drzwi itp. Za jaki rok? Za jaki okres? Chodzi o to aby na wydruku wykresu pojawiły się takie informacje

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

Re: Parametry do Crystal

Post autor: taszek »

I rozumiem, że wstawiłeś ten kod SQL w zapytanie w Crystal Reports i chciałbyś w CR stworzyć raport?

Drugie pytanie czy wydruk z wykresu nie jest dla ciebie rozwiązaniem?
Pozdrawiam
Wojtek Cyrklewicz

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

Re: Parametry do Crystal

Post autor: praiser »

taszek pisze:
28 maja 2022, 17:40
Drugie pytanie czy wydruk z wykresu nie jest dla ciebie rozwiązaniem?
Myślę, że tutaj dokładnie o to chodzi ale z parametrami dynamicznymi a właściwie ich wartościami
wydrukowanymi w tymże dokumencie.
--------------------------------
Pozdrawiam
WW

VIkking
Posty: 175
Rejestracja: 20 paź 2021, 14:28
Rola: Administrator CDN XL
Wersja: 2022
Kontakt:

Re: Parametry do Crystal

Post autor: VIkking »

Chodzi właśnie o wartość parametru dynamicznego

VIkking
Posty: 175
Rejestracja: 20 paź 2021, 14:28
Rola: Administrator CDN XL
Wersja: 2022
Kontakt:

Re: Parametry do Crystal

Post autor: VIkking »

Jeśli dodam opcje ' ??_RES2_Drzwi' to wywala błąd błędna składnia w pobliżu 1.

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

Re: Parametry do Crystal

Post autor: taszek »

Mając ten kod wykresu musisz dodać w kodzie w sekcji SELECT odpytanie parametrów dynamicznych.
Coś w ten deseń (nie testowałem, z głowy pisane):

Kod: Zaznacz cały

SELECT
lp=1,
	'Parametr DRZWI - ' + CASE ??Drzwi WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Drzwi', 
	'Parametr OKNA - ' + CASE ??Okna WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Okna', 
	'Parametr Usługi - ' + CASE ??Uslugi WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Usługi',
	'Parametr Towar - ' + CASE ??Towar WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Towar',
	'Parametr Okres - ' + CASE ??okres WHEN 1 THEN 'Rok' WHEN 2 THEN 'Kwartał' WHEN 3 THEN 'Miesiąc' ELSE 'Zakres dat' END 'Okres',
	'Parametr Rok - ' + CAST(??rok as varchar(10)) 'Rok',
    'Parametr Kwartał - ' + CASE ??kwartal WHEN 1 THEN 'I' WHEN 2 THEN 'II' WHEN 3 THEN 'III' ELSE 'IV' END + ' kwartał' 'Rok'   
UNION ALL

SELECT
lp=1,
	k1.Knt_Akronim AS 'Akronim kontrahenta', 
	k1.Knt_Nazwa1 AS 'Nazwa kontrahenta',
	CAST(sum(TrE_KsiegowaNetto) as varchar(10)) as 'Sprzedaż netto PLN',
	CAST(sum(TrE_KosztKsiegowy) as varchar(10)) as KosztKsiegowy,
                CAST(SUM(tre_ksiegowanetto)-sum(TrE_KosztKsiegowy)  as varchar(10))) AS 'Marża',
	CASE WHEN sum(TrE_KosztKsiegowy) < SUM(tre_ksiegowanetto) THEN 
                                str((round( (sum(tre_ksiegowanetto)-SUM(tre_kosztksiegowy))/SUM(tre_ksiegowanetto),2)*100), 3,0) + ' %' 
                 ELSE '' END AS 'Marża %',
	case when k1.Knt_AkwTyp = 944 then (select concat(Prc_Nazwisko, ' ', Prc_Imie1) from cdn.PrcKarty where Prc_GIDNumer = k1.Knt_AkwNumer)
		when k1.Knt_AkwTyp = 32 then k2.Knt_Akronim
		else '' end as Akwizytor
Pozdrawiam
Wojtek Cyrklewicz

VIkking
Posty: 175
Rejestracja: 20 paź 2021, 14:28
Rola: Administrator CDN XL
Wersja: 2022
Kontakt:

Re: Parametry do Crystal

Post autor: VIkking »

Kod: Zaznacz cały

SELECT
lp=1,
	'Parametr DRZWI - ' + CASE ??Drzwi WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Drzwi', 
	'Parametr OKNA - ' + CASE ??Okna WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Okna', 
	'Parametr Usługi - ' + CASE ??Uslugi WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Usługi',
	'Parametr Towar - ' + CASE ??Towar WHEN 1 THEN 'TAK' ELSE 'NIE' END 'Towar',
	'Parametr Okres - ' + CASE ??okres WHEN 1 THEN 'Rok' WHEN 2 THEN 'Kwartał' WHEN 3 THEN 'Miesiąc' ELSE 'Zakres dat' END 'Okres',
	'Parametr Rok - ' + CAST(??rok as varchar(10)) 'Rok',
                'Parametr Kwartał - ' + CASE ??kwartal WHEN 1 THEN 'I' WHEN 2 THEN 'II' WHEN 3 THEN 'III' ELSE 'IV' END + ' kwartał' 'Rok'   
UNION ALL
SELECT
lp=1,


	k1.Knt_Akronim AS 'Akronim kontrahenta', 
	k1.Knt_Nazwa1 AS 'Nazwa kontrahenta',
	CAST(sum(TrE_KsiegowaNetto) as varchar(20)) as 'Sprzedaż netto PLN',
	CAST(sum(TrE_KosztKsiegowy) as varchar(20)) as KosztKsiegowy,
                CAST(SUM(tre_ksiegowanetto)-sum(TrE_KosztKsiegowy)  as varchar(20)) AS 'Marża',
	CASE WHEN sum(TrE_KosztKsiegowy) < SUM(tre_ksiegowanetto) THEN 
                                str((round( (sum(tre_ksiegowanetto)-SUM(tre_kosztksiegowy))/SUM(tre_ksiegowanetto),2)*100), 3,0) + ' %' 
                 ELSE '' END AS 'Marża %',
	case when k1.Knt_AkwTyp = 944 then (select concat(Prc_Nazwisko, ' ', Prc_Imie1) from cdn.PrcKarty where Prc_GIDNumer = k1.Knt_AkwNumer)
		when k1.Knt_AkwTyp = 32 then k2.Knt_Akronim
		else '' end as Akwizytor



FROM cdn.tranag n1 
	JOIN cdn.KntKarty k1 on k1.Knt_GIDNumer=n1.TrN_KntNumer
	left join cdn.TraElem on n1.TrN_GIDTyp=TrE_GIDTyp AND n1.TrN_GIDNumer=TrE_GIDNumer
	left JOIN cdn.TwrKarty ON Twr_GIDNumer=TrE_TwrNumer
	left JOIN cdn.TwrGrupy ON Twr_GIDTyp=TwG_GIDTyp AND Twr_GIDNumer=TwG_GIDNumer
	left JOIN cdn.KntKarty k2 on k2.Knt_GIDTyp=k1.Knt_AkwTyp and k2.Knt_GIDNumer=k1.Knt_AkwNumer
	left join cdn.PrcKarty p1 on p1.Prc_GIDTyp=k1.Knt_AkwTyp and p1.Prc_GIDNumer=k1.Knt_AkwNumer
	left join cdn.KntOpiekun on KtO_KntNumer=k1.Knt_GIDNumer and KtO_KntTyp=k1.Knt_GIDTyp
	left join cdn.PrcKarty p2 on p2.Prc_GIDNumer=KtO_PrcNumer


WHERE 
	n1.trn_aktywny = 0
	and n1.trn_trnlp = 127
	and n1.trn_trntyp <> 12	
	and n1.trn_trntyp <> 13
	and n1.TrN_GIDTyp in (2033,2041,2037,2045)
	and n1.trn_spityp <> 0
	and ((??okres = 1 and n1.TrN_TrNRok = ??rok)
		or (??okres = 2 and n1.TrN_TrNRok = ??rok 
			and ((??kwartal = 1 and n1.TrN_TrNMiesiac in (1, 2, 3))
				or (??kwartal = 2 and n1.TrN_TrNMiesiac in (4, 5, 6))
				or (??kwartal = 3 and n1.TrN_TrNMiesiac in (7, 8, 9))
				or (??kwartal = 4 and n1.TrN_TrNMiesiac in (10, 11, 12))))
		or (??okres = 3 and n1.TrN_TrNRok = ??rok and n1.TrN_TrNMiesiac = ??miesiac)
		or (??okres = 4 and n1.TrN_Data2 between ??dataOD and ??dataDO))	
and n1.TrN_Stan >= 3

{choose (??Drzwi=0,' and 1=1 ', ' and n1.TrN_GIDNumer IN (SELECT distinct n3.TrN_GIDNumer from CDN.TraNag n3 left join cdn.TraSElem on TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
	left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp and Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
	left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer WHERE n2.TrN_TrNSeria = ''PWD'' ) ') }


                {choose (??Okna=0, ' and 1=1', ' and n1.TrN_GIDNumer IN (SELECT distinct n3.TrN_GIDNumer from CDN.TraNag n3 left join cdn.TraSElem on TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
	left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp and Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
	left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer WHERE n2.TrN_TrNSeria = ''PBO'' ) ') }

               {choose (??Uslugi=0, ' and 1=1', ' AND n1.TrN_GidNUmer IN (SELECT  TrN_GIDNumer  FROM  CDN.TraNag  
		WHERE (
		EXISTS (SELECT DISTINCT e2.Tre_GidNUmer from CDN.TraElem e2 WHERE e2.TrE_GidNumer = n1.Trn_GidNUmer and e2.TrE_TypTwr =4)
		)
		
				AND  NOT EXISTS (
					SELECT distinct n3.TRN_GIDNUMER FROM CDN.tranag n3 left join cdn.TraSElem ON  TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
						left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp AND Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
						left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer 
							WHERE  n2.TrN_TrNSeria = ''PWD'' OR n2.TrN_TrNSeria = ''PBO'' )) ') }
	           {choose (??Towar=0, ' and 1=1', ' AND n1.TrN_GidNUmer IN (SELECT  TrN_GIDNumer  FROM  CDN.TraNag  
		WHERE (
		EXISTS (SELECT DISTINCT e2.Tre_GidNUmer from CDN.TraElem e2 WHERE e2.TrE_GidNumer = n1.Trn_GidNUmer and e2.TrE_TypTwr  IN (1,2))
		AND NOT EXISTS (SELECT DISTINCT e3.Tre_GidNUmer from CDN.TraElem e3 WHERE e3.TrE_GidNumer = n1.Trn_GidNUmer and e3.TrE_TypTwr =4)
		)
		
				AND  NOT EXISTS (
					SELECT distinct n3.TRN_GIDNUMER FROM CDN.tranag n3 left join cdn.TraSElem ON  TrS_GIDTyp=n1.TrN_GIDTyp and TrS_GIDNumer=n1.TrN_GIDNumer
						left join cdn.Dostawy on Dst_GIDTyp=TrS_DstTyp AND Dst_GIDNumer=TrS_DstNumer and Dst_GIDLp=TrS_DstLp
						left join cdn.TraNag n2 on n2.TrN_GIDTyp=Dst_TrnTyp and n2.TrN_GIDNumer=Dst_TrnNumer 
							WHERE  n2.TrN_TrNSeria = ''PWD'' OR n2.TrN_TrNSeria = ''PBO'' )) ') }
		and (??wgAkwizytora = 0 or (??wgAkwizytora =1 and ((??akwTyp = 1 and k1.Knt_GIDNumer in (SELECT Knt_GIDNumer FROM cdn.KntKarty WHERE Knt_AkwNumer=??akwizytorPrac and Knt_AkwTyp = 944))
		or (??akwTyp = 2 and k1.Knt_GIDNumer in (SELECT Knt_GIDNumer FROM cdn.KntKarty WHERE Knt_AkwNumer=??akwizytorKnt and Knt_AkwTyp = 32)))))
	
	
group by
k1.knt_akronim, k1.Knt_Nazwa1, k1.Knt_AkwTyp, k1.Knt_AkwNumer, k2.Knt_Akronim, p1.Prc_Nazwisko, p1.Prc_Imie1, p2.Prc_Nazwisko, p2.Prc_Imie1
--order by 'Sprzedaż netto PLN' desc


@PAR ?@X|Drzwi|&Drzwi:REG=0 @? PAR@
@PAR ?@X|Okna|&Okna:REG=0 @? PAR@
@PAR ?@X|Uslugi|&Uslugi:REG=0 @? PAR@
@PAR ?@X|Towar|&Towar(Pozostałe):REG=0 @? PAR@

@PAR ?@O(Rok:1|Kwartał:2|Miesiąc:3|Zakres dat:4)|okres|Podsumowanie sprzedaży za:REG=1 @? @MSG(Wybrany okres raportowania) @TIP(Wybrany okres raportowania) PAR@
@PAR ?@R(select TrN_TrNRok as ID, TrN_TrNRok as Rok from cdn.TraNag
			where
				(TrN_GIDTyp in (2034, 2042) or
				(TrN_GIDTyp in (2033, 2041) and TrN_SpiTyp in (2033, 2041) ) or
				(TrN_GIDTyp in (2037, 2045) and TrN_SpiTyp in (2037, 2045) ) or
				(TrN_GIDTyp in (2001, 2009, 2005, 2013) and TrN_SpiTyp <>0))
		group by TrN_TrNRok)|rok|Rok:2021 @? @H(??okres = 4) @TIP(Wybierz rok) PAR@

@PAR ?@R(SELECT 1 AS Id, 'I kwartał' AS Kod UNION 
		SELECT 2, 'II kwartał' UNION 
		SELECT 3, 'III kwartał' UNION 
		SELECT 4, 'IV kwartał')|kwartal|Kwartał:REG=I kwartał @? @H(??okres <> 2) PAR@

@PAR ?@R(SELECT 1 AS Id, 'Styczeń' AS Kod UNION 
		SELECT 2, 'Luty' UNION 
		SELECT 3, 'Marzec' UNION 
		SELECT 4, 'Kwiecień' UNION 
		SELECT 5, 'Maj' UNION 
		SELECT 6, 'Czerwiec' UNION 
		SELECT 7, 'Lipiec' UNION 
		SELECT 8, 'Sierpień' UNION 
		SELECT 9, 'Wrzesień' UNION 
		SELECT 10, 'Październik' UNION 
		SELECT 11, 'Listopad' UNION 
		SELECT 12, 'Grudzień')|miesiac|Miesiąc:REG=Styczeń @? @H(??okres <> 3) PAR@
		
		
@PAR ?@D17|dataOD|Data od:REG=80358 @? @H(??okres <> 4) PAR@
@PAR ?@D17|dataDO|Data do:REG=80722 @? @H(??okres <> 4) PAR@
@PAR ?@X|wgAkwizytora|Wg akwizytora:REG=0 @? PAR@
@PAR ?@O(Z listy pracowników:1|Z listy kontrahentów:2)|akwTyp|Typ akwizytora:REG=1 @? @H(??wgAkwizytora = 0) PAR@
@PAR ?@LS20(SELECT Prc_gidnumer, CONCAT(Prc_nazwisko, ' ', Prc_Imie1) as Nazwa FROM cdn.Prckarty
			WHERE Prc_GIDNumer in (select knt_AkwNumer from cdn.KntKarty where (Knt_AkwNumer <> 0 and Knt_AkwTyp = 944))
			order by Nazwa asc|GENERICLOOKUP(Akwizytorzy z listy pracowników, 0, 1))|akwizytorPrac|Akwizytor:REG=JAROSZUK MAREK @? @H({(??wgAkwizytora = 0) or (??akwTyp = 2)}) PAR@
@PAR ?@LS20(SELECT knt_gidnumer, knt_akronim AS Nazwa FROM cdn.kntkarty
			WHERE Knt_GIDNumer in (select knt_AkwNumer from cdn.KntKarty where (Knt_AkwNumer <> 0 and Knt_AkwTyp = 32))
			order by Nazwa asc|GENERICLOOKUP(Akwizytorzy z listy kontrahentów, 0, 1))|akwizytorKnt|Akwizytor:REG=WIN-UP OPOLSKI @? @H((??wgAkwizytora = 0) or (??akwTyp = 1)) PAR@



Przepisałem to ale pojawia się błąd: 800A0D27 (ERR_ADO_ObjectInCollection) to tak jakby coś w składni było nie tak ale ja nie widzę gdzie jest błąd.

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

Re: Parametry do Crystal

Post autor: praiser »

dwa te same aliasy, 'Rok', drugą zmień na kwartał
'Parametr Kwartał - ' + CASE ??kwartal WHEN 1 THEN 'I' WHEN 2 THEN 'II' WHEN 3 THEN 'III' ELSE 'IV' END + ' kwartał' 'Kwartał'
--------------------------------
Pozdrawiam
WW

ODPOWIEDZ