sql >> Database teknologi >  >> RDS >> Sqlserver

Opdatering af dataleverandør af Crystal Reports

Medmindre nogen har en hurtigere / enklere løsning, her er den tilgang, jeg bruger til at få krystalrapporter til at fungere med MS Access i Visual Studio 2010. Det er lidt mere involveret end den normale metode til at vælge en datakilde, men det giver mere kontrol, er databasen agnostisk og virker, hvor de andre metoder nogle gange fejler (især med MS Access efter min erfaring).

Jeg vil detaljere processen med at få rapporterne til at fungere fra start til slut (fordi hele processen kan være nyttig for andre), men vil fremhæve de dele, der kan være nyttige for dig.

1) Installer Crystal Reports fra SAP-webstedet. Sørg for at downloade exe-filen, IKKE msi-filen (den virker ikke):

http://scn.sap.com/docs/DOC-7824

2) Skift Target Framework for din app til .Net Framework 4 (IKKE klient). Krystal-tinget er ikke inkluderet i grundprofilen.

3) Tilføj en reference til Crystal-bibliotekerne (Crystal Reports for .NET)

4) Tilføj en formular, placer en Crystal Report Viewer-kontrol på den formular (fra rapporteringssektionen i værktøjskassen):

5) Tilføj et CrystalReportDocument og tildel det til CrystalReportViewer-kontrolelementet:

For rent faktisk at udfylde rapporten med data skal du gøre følgende:

1) Udskriv dit rapportskema ved at udføre kode, der tager din rapportdatatabel (fra en gateway) og eksporterer skemaet. For eksempel:

<TestMethod()>
Public Sub SchemaTest()
    Dim dataSet As DataSet = StaticDataGateway.AccountingIncomeTotals
    dataSet.WriteXmlSchema("I:\Myschema.xml")
End Sub

Hvis du allerede har oprettet dine rapporter, har du sandsynligvis ikke brug for dette. Det samme hvis du kan skrive xml'en i hånden (nemt, når du først har en skabelon at arbejde ud fra)

2) Du indlæser derefter dette i din rapport for at få de felter, som du derefter kan manipulere for at producere din rapport. For at gøre dette skal du højreklikke på databasefelter i Rapportfelt Explorer:

3) Herfra vælger du Database Expert og vælger ADO.net (xml). Det logiske valg af Access/Excel DAO virker faktisk slet ikke i VS 2010. Vælg din skemafil og indlæs den, og dobbeltklik derefter på Tabel1 for at udfylde visningen Valgte tabeller:

4) Nu hvor du har indlæst et skema, vil du være i stand til at se felter i felter-rullemenuen, som du kan trække og slippe til din rapport:

5) Til sidst indlæser du et datasæt i din rapport ved at udføre kode i on load-hændelsen i din formular, som du placerede reportviewer-kontrollen på:

i) Sørg for at udlæse et datasæt (ikke datatabel) fra din gateway (eller hvor som helst):

Public Shared Function AccountingIncomeTotals() As DataSet
    Dim dataSet As New DataSet
    Dim dataTable As DataTable = Database.GetDataTable(GetCommand(DBC.Reporting.SPs.AccountingIncomeTotals))
    dataSet.Tables.Add(dataTable)
    Return dataSet
End Function

ii) Tildel den derefter til datakilden i rapporten:

Private Sub AccountingIncomeTotals_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    AccountingIncomeTotalsReport1.SetDataSource(StaticDataGateway.AccountingIncomeTotals)
End Sub

Ovenstående afsnit vil sandsynligvis være særligt interessant for dig, fordi det giver dig mulighed for direkte at tildele datakilden til rapporten uden at skulle bruge krystalvalgpanelet DataSources UI.

Der er en anden ting påkrævet, du skal tilføje "useLegacyV2RuntimeActivationPolicy"Til app.config-filen:

http:/ /www.codeproject.com/Questions/390643/Error-When-use-of-crystal-report-sap-crystal-13-an

Jeg håber dette hjælper, undskyld det er så involveret, hvis du har spørgsmål, så spørg venligst




  1. Masseindsættelser eller opdatering for tabeller med vedhæftede felter

  2. Hvordan læser man NCLOB, CLOB dataværdier fra Oracle-databasen ved hjælp af klassiske ASP-sider?

  3. Laravel 4 migreringsbasistabel blev ikke fundet

  4. korrekt dvale-annotering for byte[]