Avatar billede bongo20 Nybegynder
19. november 2002 - 09:34 Der er 22 kommentarer og
1 løsning

Crystal Report ud fra tabel

Er det muligt at opbygge en crystal report ud fra indholdet af en tabel ?

jeg opbygger en tabel sådan:

Do Until datRead.Read = False
    rowSearch = New TableRow()
    cellNumber = New TableCell()
    cellPlace = New TableCell()

    cellNumber.Text = datRead.GetString(0)
    cellPlace.Text = datRead.GetString(1)

    rowSearch.Cells.Add(cellNumber)
    rowSearch.Cells.Add(cellPlace)
Loop

Men forestiller mig at i stedet for at smide database udtrækkene i en celle i en tabel, vil jeg hellere bruge udtrækkene til at opbygge en Crystal Report.

Kan det lade sig gøre, eller er det helt tosset det her ?
:)
Avatar billede bongo20 Nybegynder
19. november 2002 - 09:35 #1
Jeg har en fil der indeholder en tom Crystal Report, men problemet er at fylde den op med DB indholdet
Avatar billede askhoej Praktikant
19. november 2002 - 09:43 #2
Denne artikel forklarer det hele, brug push modellen.

http://www.aspalliance.com/articles/CrystalReportVSNet.aspx

/askhoej
Avatar billede bongo20 Nybegynder
19. november 2002 - 09:55 #3
ja, det er faktisk en god artikel som jeg HAR læst, men den forudsætter at jeg har en tabel eller view eller lignende i en DB som jeg kan smide i et DataSet og så derfra ligge det i CR.

Er det tosset at opbygge et view hver gang man vil lave en CR og bagefter
slette viewet ?

Kan man evt. bruge DataReader til formålet ?
Avatar billede askhoej Praktikant
19. november 2002 - 10:20 #4
DataSet behøver ikke at være data fra en DB, den kan lige så godt indeholde data fra en XML fil, tekst fil eller et DataTable du selv har opbygget.

Om det er tosset at oprette et view og nedlægge det igen, kommer sørme an på hvad du skal fylde i din rapport.

/askhoej
Avatar billede bongo20 Nybegynder
19. november 2002 - 10:42 #5
Ok, det lyder meget fleksibelt, og i mit tilfælde vil det mest være data fra forskellige tabeller som jeg trækker ud med en DataReader.

Men  hvordan sker overførslen til CR? Kan jeg f.eks. skabe et dataSet med en sql forespørgsel og smide den i CR, eller skal jeg hellere smide dataene ind i CR i en løkke,.eller ???
Avatar billede askhoej Praktikant
19. november 2002 - 11:04 #6
I den artikel jeg henviser til og som du har læst, der står det som pkt. 10 under Push metoden.

"Code Behind Page Modifications :
10) Call this subroutine in your page load "

/askhoej
Avatar billede bongo20 Nybegynder
19. november 2002 - 12:52 #7
Du har helt ret askhoej, og jeg tror jeg er meget tæt på nu.

Lige nu kan jeg se et preview på min design side som viser de rigtige felt navne, men selvfølgelig bare test data.

Mit problem lige nu er at når jeg så kører app. så får jeg kun reportviewer ikonet at se med en tekst der lyder sådan:

CrystalReportViewer - CrystalReportViewer1
Use ReportSource or DataBindings property to specify a report source.

Kigger jeg i properties for reportvieweren står den rigtige sti i databindings,..kender du problemet,.. og en løsning ?
Avatar billede askhoej Praktikant
19. november 2002 - 13:09 #8
Kender ikke lige det problem, men umiddelbart lyder det ikke som om den kan se de properties du har sat i design mode. Prøv om du kan tilknytte rapporten på præcis samme måde, som de gør i eksemplet.

Jeg har selv brugt ovenstående artikel til at hygge lidt med CR (men fandt senere ud af deres licenssystem :o))og hvis du ikke kan få det til at virke, så skal jeg prøve at kigge lidt i gemmerne derhjemme når jeg kommer hjem i aften.

/askhoej
Avatar billede bongo20 Nybegynder
19. november 2002 - 13:15 #9
nu tror jeg den har kontakt, men nu viser den ikke engang felt navnene, men i det mindste viser den et område hvor der er plads til en rapport i stedet for bare et ikon.

I disse linjer :  Dim myDS As New Dataset1()
                  Dim MyDA As New SqlClient.SqlDataAdapter()
                  MyDA.Fill(myDS, "stores")

Hvad skal "stores" da henvise til ?
Avatar billede bongo20 Nybegynder
19. november 2002 - 14:01 #10
ok,. det med at der ikke engang var felt navne længere var fordi min ReportViewer ikke var inden for et form tag med runat server.

Men jeg kan stadig ikke få nogle data med ud
Avatar billede bongo20 Nybegynder
19. november 2002 - 19:18 #11
Jeg ville meget gerne kigge med i dine gemmer askhoej  :o)
Avatar billede askhoej Praktikant
19. november 2002 - 21:47 #12
Hmm...kan sgu ikke lige finde den rigtige CD (er lige flyttet og der er stadig masser af fyldte flyttekasser tilbage). Men hvis du eventuelt kan smide noget kode herind, så kigger jeg gerne på det.

/askhoej
Avatar billede bongo20 Nybegynder
20. november 2002 - 08:11 #13
Her er koden som skal trække data ud fra DB og smide dem i CR Viewer:

Sub BindReport()

        Dim Connection As New SqlClient.SqlConnection("Data Source=INTRANET01; Initial Catalog=Inventory; Integrated Security=false; uid=albatros; pwd=albatros;")
        Dim MyCommand As New SqlClient.SqlCommand()
        MyCommand.Connection = Connection

        MyCommand.CommandText = "SELECT dbo.Main.number, dbo.Models.Model, dbo.Main.Site, dbo.Main.UserID FROM dbo.Main INNER JOIN dbo.Models ON dbo.Main.ModelID = dbo.Models.ID WHERE number = 333"

        MyCommand.CommandType = CommandType.Text
        Dim MyDA As New SqlClient.SqlDataAdapter()
        MyDA.SelectCommand = MyCommand
        Dim myDS As New Dataset1()
        MyDA.Fill(myDS, "Main")
        Dim oRpt As New CrystalReport1()

        oRpt.SetDataSource(myDS)

        CrystalReportViewer1.ReportSource = oRpt
    End Sub

I mit dataset har jeg lagt min Main tabel og min Models tabel
Avatar billede bongo20 Nybegynder
20. november 2002 - 11:29 #14
Nu kan jeg få det til at virke med en enkelt tabel. Næsten som der står i artiklen, men det er jo ikke hensigtsmæssigt!!

Jeg vil gerne kunne opbygge min CrystalReport helt dynamisk, og forskellig alt efter hvad min bruger har søgt efter.

Er det noget du har rodet med ?
Avatar billede askhoej Praktikant
20. november 2002 - 11:33 #15
Det var da lidt godt :-)

Jeg har desværre ikke rodet mere med det, end det der bliver gennemgået i artiklen.

Har du prøvet at kalde DataBind() i din page_load efter BindReport() ?

/askhoej
Avatar billede bongo20 Nybegynder
20. november 2002 - 12:47 #16
det er ikke så godt,. så får jeg følgende besked :

CrystalReports.Engine.LogOnException: Logon failed.
Avatar billede bongo20 Nybegynder
20. november 2002 - 12:47 #17
Hvad gør DataBind()  som ikke sker i BindReport() ?
Avatar billede askhoej Praktikant
20. november 2002 - 13:48 #18
Binder datakilden med rapporten vil jeg tro.

Logon failed, kender intet til fejlen men prøv at læse her:
http://www.vbug.co.uk/dnz/support/faq/tsviewa.asp?AID=228&QID=208

/askhoej
Avatar billede bongo20 Nybegynder
20. november 2002 - 14:58 #19
Problemet med logon failed er jeg kommet ud over ved at sætte userId og Pwd ind i koden. ( det er et internt system jeg laver så det er i orden ).

Lige nu har jeg bare 2 problemer:

Det ene at jeg stadig ikke kan få den til at acceptere flere tabeller.
Det andet at jeg ikke kan styre størrelsen af CrystalReportVieweren som jeg kan med andre kontroller.
(f.eks.: STYLE = "LEFT: 67px; POSITION: absolute; TOP: 235px" )
Den opererer med nogle meget store marginer som jeg ikke kan tvinge den til at udelade.

Du skulle vel ikke have et sidste link ?? :o)
Avatar billede askhoej Praktikant
20. november 2002 - 15:23 #20
Desværre, jeg havde selv problemer med den kæmpe venstremargen den sætter af - den benyttes vist til at kunne vise et indeks over de poster der er, hvis man har sat den til det i rapporten.

/askhoej
Avatar billede bongo20 Nybegynder
20. november 2002 - 15:34 #21
Kunne du forestille dig et forum der var bedre egnet til spørgsmålet end dette ?
Avatar billede bongo20 Nybegynder
20. november 2002 - 15:34 #22
Du får også lige dine point, og tak for hjælpen :o)
Avatar billede askhoej Praktikant
20. november 2002 - 15:52 #23
tak for points :-)

Prøv at undersøge på CR egen hjemmeside, der er Seagate der laver det. De har sikkert et forum eller to omkring emnet.

/askhoej
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester