Toegang tot aangepaste assemblies via expressies

Nadat je een aangepaste assembly hebt gemaakt, deze beschikbaar maakt voor Report Designer of de report server, het juiste beveiligingsbeleid toevoegt en een referentie naar je custom assembly toevoegt in je rapportdefinitie, kun je de leden van de klassen in je assembly benaderen met behulp van report expressions. Als u wilt verwijzen naar aangepaste code in een expressie, moet u het lid van een klasse binnen de assembly aanroepen. Hoe u dit doet, is afhankelijk van of de methode statisch of op een exemplaar is gebaseerd.

Roep statische leden aan vanuit een rapportdefinitiebestand

Statische leden behoren tot de klasse of het type zelf en niet tot een geïnstantieerd object. Deze leden zijn toegankelijk door ze direct vanuit de klas te bellen. Je zou statische leden moeten gebruiken om aangepaste functies in een rapport aan te roepen waar mogelijk, omdat statische leden het beste presteren. Om een statisch lid aan te roepen, moet je het refereren als een expressie die de vorm =Namespace.Class.Method aanneemt.

Roep statische leden aan

  • Om een statisch lid aan te roepen, stel je je expressie gelijk aan de volledig gekwalificeerde naam van het lid, inclusief de naamruimte, klassenaam en lidnaam. Het volgende voorbeeld noemt de ToGBP-methode , die de StandardCost-veldwaarde omzet van dollars naar pond sterling en deze in een rapport weergeeft:

    =CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)  
    

Belangrijke informatie over statische velden en eigenschappen

Momenteel worden alle rapporten uitgevoerd in hetzelfde applicatiedomein. Dit betekent dat rapporten met gebruikersspecifieke, statische data deze data blootstellen aan andere instanties van hetzelfde rapport. Deze voorwaarde kan het mogelijk maken dat de statische gegevens van één gebruiker beschikbaar zijn voor alle gebruikers die momenteel een bepaald rapport uitvoeren. Om deze reden wordt sterk aanbevolen om geen statische velden of eigenschappen te gebruiken in aangepaste assemblies of in het Code-element ; Gebruik in plaats daarvan instantievelden of eigenschappen in je rapporten. Statische methoden kunnen nog steeds worden gebruikt, omdat ze geen status of data opslaan.

Roep instantieleden aan vanuit een rapportdefinitiebestand

Als je aangepaste assembly instance-leden bevat die je in een rapportdefinitie moet benaderen, moet je een instantienaam voor je klasse aan het rapport toevoegen. Je kunt een instantienaam toevoegen voor een klasse via het tabblad Code in het Rapport-eigenschappen-menu . Voor meer informatie over het toevoegen van instanties van klassen aan een rapport, zie Custom Code and Assembly References in Expressions in Report Designer (SSRS).

Om een statisch lid aan te roepen, moet je het refereren als een expressie die de vorm =Code* aanneemt. InstanceName.Method*.

Leden van Call Instance

  • Om een instance member van een custom assembly aan te roepen, moet je het Code-sleutelwoord volgen gevolgd door de instantienaam en de methode. Het volgende voorbeeld roept een instantiemethode ToEUR aan die de StandardCost-veldwaarde van dollars naar euro's omzet en deze in een rapport weergeeft:

    =Code.m_myDollarConversion.ToEUR(Fields!StandardCost.Value)