Andrzej Rapp

Andrzej Rapp specjalista ds.
informatyki, Techem

Temat: problem z dopasowanej parametru do pola w raporcie

Nawiązując do wątku
http://www.goldenline.pl/forum/3787602/problem-z-rapor...

Zastosowałem sugestię..jednak pojawił mi się inny problem
We wcześniejszej wersji raportu mogłem filtrować dane po kodzie oddziału- Parametr BranchId. Obecnie dodałem pole branchcode do raportu jednak to pole ma 4 znaki a w branchId mam 3 i mam problem
Raport wyświetla mi 4 znaki a chciałbym żeby wyświetlał 3.
Mam obecnie kod w Selection Formula

if {?BranchID}='All' then true else (Left({dzialy.branchcode},3)=Left({?BranchID},3))
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: problem z dopasowanej parametru do pola w raporcie

Nie do końca rozumiem jaki masz problem, bo piszesz o wyświetlaniu a pokazujesz formułę do filtrowania. Czy chodzi Tobie o to, aby raport filtrował rekordy po polu branchcode , ale tylko na podstawie 3 pierwszych znaków z parametru BranchId?

Co teraz pokazuje raport?
Andrzej Rapp

Andrzej Rapp specjalista ds.
informatyki, Techem

Temat: problem z dopasowanej parametru do pola w raporcie

Tak właśnie o to mi chodzi. W raporcie pokazuje 4 znaki z a chcę aby raport pokazywał 3..takie same jak branchID.
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: problem z dopasowanej parametru do pola w raporcie

W takim razie skorzystaj z funkcji like:


if {?BranchID}='All' then true else {dzialy.branchcode} like {?BranchId} + '?'


Znak zapytania oznacza pojedynczy dowolny znak.

To zostanie wprost przetłumaczone przez CR na zapytanie SQL:

SELECT "dzialy"."BranchId", "dzialy"."branchcode"
FROM "TestDb"."dbo"."dzialy" "dzialy"
WHERE "dzialy"."branchcode" LIKE 'AAA_'


Dzięki temu filtrowanie wykona się po stronie serwera a do raportu trafią tylko potrzebne dane, więc będzie to optymalne rozwiązanie pod kątem wydajności i czasu przetwarzania.

Powodzenia!
Marcin S.

Marcin S. Programista, trener
i konsultant w
zakresie .NET/.NET
Cor...

Temat: problem z dopasowanej parametru do pola w raporcie

Tutaj w razie czego skrypt, który sobie przygotowałem do rozwiązania twojego problemu:


CREATE TABLE [dbo].[dzialy](
[BranchId] [int] NOT NULL,
[branchcode] [varchar](50) NULL,
CONSTRAINT [PK_dzialy] PRIMARY KEY CLUSTERED
(
[BranchId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
INSERT [dbo].[dzialy] ([BranchId], [branchcode]) VALUES (1, N'AAAA')
GO
INSERT [dbo].[dzialy] ([BranchId], [branchcode]) VALUES (2, N'AAAB')
GO
INSERT [dbo].[dzialy] ([BranchId], [branchcode]) VALUES (3, N'BBBA')
GO
INSERT [dbo].[dzialy] ([BranchId], [branchcode]) VALUES (4, N'BBBB')
GO
INSERT [dbo].[dzialy] ([BranchId], [branchcode]) VALUES (5, N'BBBC')



Może się komuś przyda.
Andrzej Rapp

Andrzej Rapp specjalista ds.
informatyki, Techem

Temat: problem z dopasowanej parametru do pola w raporcie

Dziękuję za podpowiedź. Dopisałem komendę if na końcu formuły i zadziałało.



Wyślij zaproszenie do