Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Crystal Reports - Kör rapporter från VB

Postad 2002-07-17 av Fredrik Molnar i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 6415, Betyg: 69%

Förord

Att kunna köra en rapport från Crystal Reports och automatiskt fylla i parametrar kan vid vissa tillfällen vara ett krav vid utveckling av program. Själv har jag gjort ett program liknande detta för att köra CR-rapporter från ett Java-program. Problemet med detta är att det inte är väldokumenterat och varför uppfinna hjulet två gånger? Så här går det till
Innehåll
Relaterade artiklar
  » Crystal Reports - enkla rapporter del #1
Det finns två sätt att skapa Crystal Reports objekt i Visual basic, ett sätt är genom API genom "Crystal Reports Wrapper dll" (CRWRAP32.DLL) men enligt Seagate Software så är denna inte att rekommendera då alla rapport-funktioner inte är tillgängliga genom API pga VBs egna begränsningar. Det andra sättet är att använda Crystal Reports Engine # Object Library (cpeaut32.dll), det är detta sätt jag kommer att gå igenom i denna artikeln.

För att börja rapportkörandet; skapa ett nytt (eller använd ett befintligt VB-projekt) och lägg till en referens till Crystal Reports Engine # Object Library (cpeaut32.dll) problemet med denna dll är att den inte alltid är korrekt registrerad, vad du får göra då är att registrera den med regsvr32, filen ligger normalt i system-katalogen.

För att köra rapporten i VB och ev. skicka in parametrar i rapporten behöver du ett "Crystal Reports Application"-objekt och ett "Crystal Reports Report"-objekt. Du kan skapa dessa genom att deklarera eller använda dig av "CreateObject". Det första man skall göra är att skapa ett Application-objekt.


Dim crpApplication As CRPEAuto.Application
Set crpApplication = CreateObject("Crystal.CRPE.Application")


alternativt:


Dim crpApplication As New CRPEAuto.Application


Nästa steg är att logga in på din databas, detta görs med "LogOnServer" som är en metod i Application-objektet, i detta fallet är det en ODBC-källa som skall användas.


crpApplication.LogOnServer "P2SODBC.DLL", "Server", "DB", "UIN", "PWD"


P2SODBC.DLL = Den "databas-tolk" som rapporten använder.
Server = Namnet på ODBC-källan (Case sensitive!)
UIN = Användarnamnet på servern
PWD = Lösenordet på servern

Det finns många databas-tolkar som följer med Crystal Reports, här är några:
p2sora7.dll = Oracle 7
p2soledb.dll = OLE DB
p2ssql.dll = SQL Native (MSSQL-server, Access)

För att ta reda på vilken dll fil din rapport använder, välj "Convert Database Driver…" i "Database"-menyn i Crystal Reports. Ruten du får upp ser ut så här:



Ett problem med att använda den dll som står här, kan vara att den inte fungerar. Det finns två sorters databas-tolkar, de som heter pds*.dll och de som heter p2s*.dll. Pröva dig fram för att hitta den du skall använda. Om pdsodbc.dll inte fungerar så pröva med p2sodbc.dll.

När du är har skapat application-objektet och loggat in på din datakälla är det dags att skapa ett report-objekt. För att göra detta måste du deklarera ett report -objekt:


Dim crpReport As CRPEAuto.Report


För att knyta ditt report -objekt till den rapport du vill köra skall du använda "OpenReport" metoden i application-objektet:


Set crpReport = crpApplication.OpenReport()


Nästa sak du skall göra är att skicka in de parametrar som rapporten behöver (om den behöver några), dessa hittar du i "ParameterFields" i report-objektet, för att hantera dessa på ett snyggt sätt:


Dim crpParameterFields As CRPEAuto.ParameterFieldDefinitions
Dim crpParameterField As CRPEAuto.ParameterFieldDefinition


Koppla sedan crpParameterFields till de parametrar som finns i report-objektet:


Set crpParameterFields = crpReport.ParameterFields


Koppla sedan parametrarna till crpParameterField, i samlingen crpParameterFields.Item() finns alla parmetrarna, för att än en gång lösa det på ett snyggt sätt lägger vi över parametrarna en i taget i " crpParameterField ":


Set crpParameterField = crpParameterFields.Item([Integer som anger vilken parameter du skall jobba med])


Nu skall du börja skicka in dina parametrar i "crpParameterField", detta gör du med:


crpParameterField.SetCurrentValue (värde)


Beroende på vilken datatyp parametern kräver får du konvertera i VB så att du skickar in den datatypen som CR vill ha. Bygger man detta programmet för en rapport så är det inga problem, ibland vill man göra ett program för att skapa flera rapporter, då får man ta reda på vad parametern vill ha för datatyp, denna egenskap hittar du i:


crpParameterField.ValueType


För att göra en enkel if-sats som tar hand om detta, kolla vad ValueType har för värde och konvertera din parameter efter detta:


If crpParameterField.ValueType = 7 Then
värde = CInt(Trim())
Else
värde = CStr(Trim())
End If
crpParameterField.SetCurrentValue (värde)


De olika datatyperna är:

crBitmapField - 17
crBlobField - 15
crBooleanField - 9
crChartField - 21
crCurrencyField - 8
crDateField - 10
crDateTimeField - 16
crIconField - 18
crInt16sField - 3
crInt16uField - 4
crInt32sField - 5
crInt32uField - 6
crInt8sField - 1
crInt8uField - 2
crNumberField - 7
crOleField - 20
crPersistentMemoField - 14
crPictureField - 19
crStringField - 12
crTimeField - 11
crTransientMemoField - 13
crUnknownField - 22

Nu har du gjort allt som behövs för att köra rapporten, du kan skriva ut:


crpReport.PrintOut


eller förhandsgranska:


crpReport.Preview


Nu ska vi fimpa alla objekt för att frigöra resurser:


crpApplication.LogOffServer "P2SODBC.DLL", "server", "db", "uin", "pwd"
Set crpReport = Nothing
Set crpApplication = Nothing
Set crpParameterField = Nothing
Set crpParameterFields = Nothing
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 154
27 952
271 704
587
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies