Click here to Skip to main content
15,885,707 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I have made a crystal report with subreports,
In my subreports I have added commands like:
SQL
SELECT * FROM Orders where orederID = {?orderID}


When I run the report in viewer the report prompts for the orderID with a dialogbox.
But I have several subreports that requires the same orderID it prompt for the value for every subreport. Is there a way to make the report get the ordreID once and reuse it for each subreport without the need for the prompt, ogr is it a way to do it in code?
Posted
Updated 15-Oct-11 1:33am
v2

I did a DuckDuckGo[^] search and here is a result that might be useful How to link Sub Report to Main Crystal Report [^].
 
Share this answer
 
Comments
RaviRanjanKr 16-Oct-11 16:46pm    
Nice Link, My 5+
Thank you that solved issue number 1, now the report works with the local database,

The next issue is that I need to be able to connect to a remote database as well to make a report or just to be able to connect to a different database.

I have searched the internet for help on this issue, and found some code-snips that I have tried out. the code looks like this.

VB
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Configuration




Public Class CR

    Private Sub CR_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        Dim cryRpt As New ReportDocument
        Dim crtableLogoninfos As New TableLogOnInfos
        Dim crtableLogoninfo As New TableLogOnInfo
        Dim crConnectionInfo As New ConnectionInfo
        Dim CrTables As Tables
        Dim CrTable As Table

        cryRpt.Load("Reports/CrystalReport5.rpt")
        '***************************************************************

        Dim Sname As String
        Dim Dbname As String
        Dim Uname As String
        Dim Pwd As String
        Dim kid As Integer = 1
        Dim oid As Integer = 1
        Sname = CRdb.Servadr
        Dbname = CRdb.Servname
        Uname = CRdb.Username
        Pwd = CRdb.Passw

        MsgBox("Sname = " & Sname)
        MsgBox("Dbname = " & Dbname)
        MsgBox("Uname = " & Uname)
        MsgBox("Pwd = " & Pwd)
        '****************************************************************
        With crConnectionInfo
            .ServerName = "JOHNMOLANDS-PC\SQLEXPRESS"
            .DatabaseName = "Kalkyle1"
            .UserID = "User2"
            .Password = "user2"

        End With

        Dim crParameterFieldDefinitions As ParameterFieldDefinitions
        Dim crParameterFieldDefinition As ParameterFieldDefinition
        Dim crParameterValues As ParameterValues
        Dim crParameterDiscreteValue As ParameterDiscreteValue

        crParameterFieldDefinitions = cryRpt.DataDefinition.ParameterFields

        ' Begin parameter
        crParameterFieldDefinition = crParameterFieldDefinitions.Item("KundeID")
        crParameterValues = crParameterFieldDefinition.CurrentValues
        crParameterDiscreteValue = New ParameterDiscreteValue
        crParameterDiscreteValue.Value = kid
        crParameterValues.Add(crParameterDiscreteValue)
        crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)
        ' End parameter

        Dim crParameterFieldDefinitions2 As ParameterFieldDefinitions
        Dim crParameterFieldDefinition2 As ParameterFieldDefinition
        Dim crParameterValues2 As ParameterValues
        Dim crParameterDiscreteValue2 As ParameterDiscreteValue


        crParameterFieldDefinitions2 = cryRpt.DataDefinition.ParameterFields
        ' Begin parameter
        crParameterFieldDefinition2 = crParameterFieldDefinitions2.Item("OrdreID")
        crParameterValues2 = crParameterFieldDefinition2.CurrentValues
        crParameterDiscreteValue2 = New ParameterDiscreteValue
        crParameterDiscreteValue2.Value = oid
        crParameterValues2.Add(crParameterDiscreteValue2)
        crParameterFieldDefinition2.ApplyCurrentValues(crParameterValues2)
        ' End parameter



        CrTables = cryRpt.Database.Tables
        For Each CrTable In CrTables
            crtableLogoninfo = CrTable.LogOnInfo
            crtableLogoninfo.ConnectionInfo = crConnectionInfo
            CrTable.ApplyLogOnInfo(crtableLogoninfo)

        Next

      





        CrystalReportViewer1.ReportSource = cryRpt

End Sub
End Class



But when I run this code, the report asks for the first parameter over and over and over again for all subreports but never for the second parameter, then in the end when the report loads all the data linked to the second parameter is missing.

Why is that? I do not get promted for any logon info so I guess that part is working but somewhere along the way something goes wrong and the parameter links does not work.
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900