Posts tonen met het label sql server. Alle posts tonen
Posts tonen met het label sql server. Alle posts tonen

donderdag 12 maart 2009

Velden gebruiken in de header van een SQL Server Reporting rapport

Hoe kan je velden uit je dataset gebruiken in de header of footer van een rapport in SQL Server Reporting?

Helaas kan je dit niet zomaar doen. Wanneer je een veld uit de Datasets toolbar sleept in de header of footer van een rapport, dan krijg je bij het uitvoeren van het rapport de volgende melding: "The Value expression for the textbox ‘[FieldName]’ refers to a field. Fields cannot be used in page headers or footers."

Hoe krijg je dit nu wél voor elkaar?
De simpelste oplossing is om aan de rapport parameters een nieuw veld toe te voegen.
  • Hierbij selecteer je dan de optie 'Hidden', zodat de gebruiker niet wordt gevraagd om de nieuwe parameter in te vullen.
  • Onder de sectie "Default values", selecteer je de optie "From query". Hierbij maak je de keuze voor de betreffende Dataset en voor "Value field" selecteer je het betreffende veld uit deze dataset

Hierna kan je een nieuwe 'Textbox' in de header of footer van het rapport slepen en de rapport parameter er aan toe kennen. Bijvoorbeeld: "=Parameters!EmployeeName.Value"

Dat is alles. Succes ermee !

dinsdag 10 februari 2009

Bug in ASP.NET ReportViewer van Microsoft


Oplossing
Vandaag (4 maart 2009) heb ik reactie gekregen op mijn feedback. Microsoft heeft het probleem opgelost in Cumulative update package 9 for SQL Server 2005 Service Pack 2 en Cumulative update package 1 for SQL Server 2005 Service Pack 3.

Ik heb in eerste instantie SQL Server 2005 Service Pack 3 geïnstalleerd. Hierna bleek het probleem al direct opgelost te zijn. Óf de Cumulative update package 1 zit al in SP3 óf de installatie van SP3 lost het probleem zelf al op!

Update (9 maart 2009): helaas heeft de update naar SP3 op de (64 bits) productie server niet tot hetzelfde resultaat geleidt. Ook de Cumulatieve Update 1 voor SP3 heeft niet geholpen. Microsoft heeft me gewezen op een blog artikel van Brian Hartman. Ik heb alle updates geïnstalleerd die Brian in zijn artikel noemt (behalve de update voor SharePoint, want daar heb ik in mijn project niets mee te maken), maar ook dit heeft niets geholpen. Ik zal dit opnieuw aan Microsoft melden.

Wordt vervolgd...


In het ReportViewer control van Microsoft, waarmee rapporten van SQL Server Reporting in een web applicatie bekeken kunnen worden , zit een bug.

Indien de beveiligingsupdate voor ActiveX Killbits voor Windows XP (KB956391) is geïnstalleerd op de client computer (in mijn geval Windows XP SP3 met Internet Explorer 7) dan functioneert het printen van een rapport niet meer.
Hierbij volgt dan de volgende foutmelding: "Unable to load client print control". Wanneer je de betreffende update verwijderd, dan is het probleem weer opgelost.

Ik heb hiervoor een bug rapport bij Microsoft Connect ingediend. Je kan deze 'feedback' hier volgen.
Ik houd jullie op de hoogte !!!

dinsdag 23 september 2008

Dynamic Data integreren in bestaande web applicatie

Één na de nieuwe features in Visual Studio 2008 SP1 is de Dynamic Data Web Application. Een heel handige feature die het mogelijk maakt om je databronnen middels een website te bekijken of te muteren.

Als je een nieuw project in Visual Studio 2008 aanmaakt bestaat de Dynamic Data Web Application uit één van de vele mogelijkheden die Visual Studio tegenwoordig biedt. Indien je deze keuze maakt wordt een complete web applicatie voor je gegenereerd en hoef je eigenlijk alleen maar een 'LINQ to SQL classes' diagram toe te voegen; de benodigde tabellen op het diagram te slepen en de gecreëerde DataContext toe te voegen aan de MetaModel instantie in global.asax.cs en je bent klaar.

Wat nu als je deze functionaliteit wilt integreren in een bestaande web applicatie?
Ik heb wat zitten vogelen met deze functionaliteit en heb deze zo aangepast dat het relatief eenvoudig is om te integreren in een bestaande web applicatie. Hiervoor moet je het volgende doen:
  1. Download dit zip bestand en importeer de folder uit de zip in je web applicatie. De zip bevat een 'LINQ to SQL classes' diagram welke als voorbeeld is toegevoegd. Deze kan gewoon verwijderd worden!
  2. Voeg de volgende references toe aan je project:
    System.Web.DynamicData
    System.Web.Routing
  3. Voeg een 'LINQ to SQL classes' diagram toe aan je project en sleep de benodigde tabellen op het diagram
  4. Registreer de DataContext, van bovenstaand diagram, middels de model.RegisterContext functie van de RegisterRoutes methode in de DynamicDataModule klasse
  5. Wijzig de DynamicDataApplicationName constante in de DynamicDataMaster klasse naar je eigen applicatienaam

    == Web.config aanpassingen ==
  6. Voeg in de sectie de volgende assemblies toe:
    <add assembly="System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.ComponentModel.DataAnnotations, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
    <add assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  7. Voeg in de / sectie de volgende tag prefix toe:
    <add tagPrefix="asp" namespace="System.Web.DynamicData" assembly="System.Web.DynamicData, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  8. Activeer ASP.NET Routing
       IIS5/IIS6 : voeg de module toe aan de httpModules sectie:
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
       IIS7 - deel 1: voeg de module toe aan de / sectie:
    <remove name="UrlRoutingModule" />
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
       IIS7 - deel 2 : voeg de handler toe aan de / sectie:
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  9. Voeg de DynamicDataModule aan de modules sectie toe (wijzig [WebApplitionName] in de naam van je assembly):
    <add name="DynamicDataModule" type="DynamicDataModule, [WebApplitionName]"/>

Als je nu de pagina DynamicData\Default.aspx opstart zou de Dynamic Data feature moeten werken.

Succes ermee !!!

woensdag 10 oktober 2007

Toegang tot SQL Server 2005 vanaf een andere PC

Toegang tot een SQL Server 2005 op een remote PC heb je niet standaard. Je moet het e.e.a. instellen voordat je dit kan bereiken.

In de vorige versies van SQL Server kon je, zonder problemen, een SQL Server op een server benaderen vanuit de Enterprise Manager. Om dit ook in SQL Server 2005 te kunnen, dien je de volgende stappen te zetten:
  1. Enable TCP/IP connecties via de Surface Area Configuration Utility:
    - Start de Surface Area Configuration Utility
    - Klik op Surface Area Config. for Services and Connections
    - Ga onder de betreffende Instance naar Database Engine\Remote Connections
    - Selecteer Local and Remote connections
    - Selecteer Using TCP/IP only
  2. Enable TCP/IP connecties via de SQL Server Configuration Manager:
    - Start de SQL Server Configuration Manager
    - Ga onder SQL Server 2005 Network Config. naar Protocols for INSTANCE
    - Dubbelklik op TCP/IP en zet Enabled op Yes
  3. Start de SQL Browser service
    - Start de SQL Server Configuration Manager
    - Klik op SQL Server 2005 Services
    - Dubbelklik op SQL Server Browser
    - Zet de Start Mode op Automatic onder de tab Service
    - Klik op Apply
    - Klik op Start onder de tab Log On
  4. Zorg ervoor dat je Firewall (als je die één hebt draaien) SQL Server en SQL Browser ‘vrijsteld’. Dit doe je door sqlservr.exe en sqlbrowser.exe als een uitzondering aan de Firewall toe te voegen