Ezúttal egy SQL Server Reporting Services (SSRS) trükköt hoztam, mégpedig azt, hogyan lehet megoldani, hogy ha a riportunkban egy linkre kattintunk, akkor ne elnavigáljunk a riport oldalról, hanem inkább új lapon nyíljon meg a kért link.
Nézzük képekben miről is van szó! Az alábbiakban egy SSRS riport egy részlete látható, amelyben van egy „külső” honlapra mutató link. Ha rákattintunk, akkor marad a riportunk betöltve és új lapon nyílik meg a honlap. A következőkben megnézzük, hogyan is kell ilyen linket létrehozni.
A linkre kattintva új lapon jelenik meg a kért weblap.
Linket egy Reporting Services riportban viszonylag egyszerű létrehozni.
1. Visual Studio-ban (SSDT-ben) tervező nézetben megnyitva a riportot, kattints a megfelelő mezőnévre jobb gombbal.
2. Válaszd a TextBox Properties… menüpontot!
3. A megnyíló párbeszédablakon (alábbi képen bal oldali) válaszd az oldalmenüből az Action-t.
4. Válaszd a Go To URL –t és az alatta lévő Select URL: sor végén lévő Expression button-t.
5. Az Expression-be kell definiálni a kívánságainkat (alábbi képen jobboldalon).
Íme a kívánságunk:
=IIf(IsNothing(Fields!CompanyMainURL.Value), "", "javascript:void(window.open('"+ Fields!CompanyMainURL.Value + "','_blank'))")
Vizsgáljuk meg ezt lépésről lépésre!
1. Fields!CompanyMainURL.Value
Ez tartalmazza a linket, mivel egy olyan adatbázismezőre mutat, amelyben a cég honlapját letároltuk (pl. https://alexandrababaics.com).
Ezzel véget is érne a link létrehozás, de mi azt szeretnénk, hogy új lapon nyíljon meg a honlap.
2. Itt ez a kis beágyazható javascript, amely megoldja az igényünket.
javascript:void(window.open())
3. Ezt felhasználva, akár készen is lehetnénk…
javascript:void(window.open('"+ Fields!CompanyMainURL.Value + "','_blank'))
4. De! Mi van, ha nincs kitöltve, azaz NULL értékünk van, akkor ezt kezelnünk kell!
Erre szolgál az IsNothing függvény, amelynek visszatérési értéke Igaz (True), ha NULL és (Hamis) False, ha nem NULL, azaz ki van töltve.
IsNothing(Fields!CompanyMainURL.Value)
5. Végül megmondjuk neki, mit csináljon. Ha az előbbi kifejezés igaz, akkor ne jelenjen meg semmi (""), ha hamis, tehát ki van töltve, akkor meg a megfelelő érték, amely alatt ott csücsül a linkünk. Ezt az IIF függvénnyel tehetjük meg.
=IIf(IsNothing(Fields!CompanyMainURL.Value), "", "javascript:void(window.open('"+ Fields!CompanyMainURL.Value + "','_blank'))")
Miután publikáltuk a riportunkat (Deploy), futtassuk és teszteljük a működést!
Látható is, ha az egeret a linkre húzzuk, alul a böngésző szürke sávjában megjelenik a parancsunk.
Ha pedig rákattintunk a linkre, akkor pedig új oldalon betölti a tartalmat is.