[VB.Net]Variabele doorgeven aan Crystal reports

Pagina: 1
Acties:
  • 139 views sinds 30-01-2008
  • Reageer

  • Paladin
  • Registratie: Maart 2000
  • Laatst online: 19:00

Paladin

Play Ball!

Topicstarter
Beste Mede Tweakers.

Ik ben bezig met wat rapporten in crystal reports, maar wil graag dat ik een variable uit vb.net door kan geven aan crystal zodat precies die data met een bepaald ID nr geopend wordt.

Ik heb al de msdn files redelijk door gespit enz maar het blijft mij redelijk onduidelijk hoe ik dit moet doen.

Kan iemand hier helpen.
Alvast bedankt

|Yesterday is History, Today is a gift, Tomorrow a Mystery | M3 - LRAWD - Referral-link:https://ts.la/p66085


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Aangezien dit op nogal verschillende manier kan, kun je het stukje code waarin je het rapport instantieert een aanroept posten?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Paladin
  • Registratie: Maart 2000
  • Laatst online: 19:00

Paladin

Play Ball!

Topicstarter
das nou juist het probleem ik heb het tot nu toe alleen via de grafische manier gedaan, ik heb het code technisch geprobeerd maar kreeg ik dus niet voor elkaar. Als iemand een stukje code weet waar dit staat ben ik daar ook al blij mee.

|Yesterday is History, Today is a gift, Tomorrow a Mystery | M3 - LRAWD - Referral-link:https://ts.la/p66085


  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Je kan een Crystal Report rapportje toevoegen als een Embedded Resource (oid) in VS, dan genereerd VS daar een klasse bestand voor. (in VB.NET een .vb en in C# een .cs)
En als je in een rapportje Parameters hebt gedefineerd dan heeft zijn klasse ook dezelfde Parameters.

Zoek anders op deze pagina.

  • R.A.
  • Registratie: Januari 2004
  • Niet online
Ik doe het altijd op deze manier:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    Dim crReportDocument As CrystalReport1
    Dim crParameterFieldDefinitions As ParameterFieldDefinitions
    Dim crParameterFieldDefinition As ParameterFieldDefinition
    Dim crParameterValues As ParameterValues
    Dim crParameterDiscreteValue As ParameterDiscreteValue


        crReportDocument = New CrystalReport1

        ''Get the collection of parameters from the report
        crParameterFieldDefinitions = crReportDocument.DataDefinition.ParameterFields
        ''Access the specified parameter from the collection
        crParameterFieldDefinition = crParameterFieldDefinitions.Item("Parameter")

        ''Get the current values from the parameter field.  At this point
        ''there are zero values set.
        crParameterValues = crParameterFieldDefinition.CurrentValues

        ''Set the current values for the parameter field
        crParameterDiscreteValue = New ParameterDiscreteValue
        crParameterDiscreteValue.Value = "je input" '1st current value

        ''Add the first current value for the parameter field
        crParameterValues.Add(crParameterDiscreteValue)

        ''All current parameter values must be applied for the parameter field.
        crParameterFieldDefinition.ApplyCurrentValues(crParameterValues)


Hoop dat het zo werkt

Verwijderd

Ik heb eerst eengrafisch model gemaakt van hoe mijn rapport eruit moest komen te zien en daarna heb ik een SQL statement gemaakt die een dataset initialiseerd en dan geef ik voor het rapport deze dataset op als recordsource, werkt perfect.

  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Ik ook zoiets, maar dan in C#.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public void updateForm()
{
    doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    doc.Load(rapportNaam);
    doc.DataDefinition.ParameterFields.Reset();
    AddParameter("@Parameter1", param1); //Naam, waarde
    crvRapport.ReportSource = null;
    crvRapport.ReportSource = doc;
}

private void AddParameter(string Parameter, Object Value)
{
    CrystalDecisions.Shared.ParameterValues paramValues = new CrystalDecisions.Shared.ParameterValues ();
    CrystalDecisions.Shared.ParameterDiscreteValue paramValue = new CrystalDecisions.Shared.ParameterDiscreteValue ();
    
    // Set the discrete value and pass it to the parameter.
    paramValue.Value = Value;
    paramValues.Add (paramValue);
    doc.DataDefinition.ParameterFields[Parameter].ApplyCurrentValues (paramValues);
}

  • Paladin
  • Registratie: Maart 2000
  • Laatst online: 19:00

Paladin

Play Ball!

Topicstarter
Mensen ik dank u zeer voor de hulp, deze heeft samen met het gene wat ik gevonden heb in de help van micrososft geresulteerd dat ik de variabelen door kon geven en dat de overzichten netjes worden weergegeven.

Mijn dank is groot

|Yesterday is History, Today is a gift, Tomorrow a Mystery | M3 - LRAWD - Referral-link:https://ts.la/p66085


  • R.A.
  • Registratie: Januari 2004
  • Niet online
En hoe doe je het nu dan als ik vragen mag?

  • Paladin
  • Registratie: Maart 2000
  • Laatst online: 19:00

Paladin

Play Ball!

Topicstarter
Sorry ff vergeten :)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        Dim paramFields As New CrystalDecisions.Shared.ParameterFields
        Dim paramField As New CrystalDecisions.Shared.ParameterField
        Dim discreteVal As New CrystalDecisions.Shared.ParameterDiscreteValue

        paramField.ParameterFieldName = "volgnr"

        discreteVal.Value = afdrukKlachtNummer
        paramField.CurrentValues.Add(discreteVal)

        paramFields.Add(paramField)

        CrystalReportViewer1.ParameterFieldInfo = paramFields

        CrystalReportViewer1().ReportSource = "\\Dc01\apps\Klachtenbeheer\Rapporten\klachten_klantbrief.rpt"


Had rapport al gemaakt en tevens een vieuwer in het scherm dus heb het rapport geopend en de parameters er an toegekend via een globale var die uit een ander scherm komt works like a charm

|Yesterday is History, Today is a gift, Tomorrow a Mystery | M3 - LRAWD - Referral-link:https://ts.la/p66085


Verwijderd

ik maak gebruik van onderstaande C# code:


krijg de melding : Load report failed. op doc.Load("cr");

wat doe ik fout?

Hetgeen ik dus wil doen is een parameter aan een report meegeven.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
private void Page_Load(object sender, System.EventArgs e)
        {
            // Put user code to initialize the page here
            CrystalReport1 cr = new CrystalReport1();       
            crv.ReportSource = cr;
            doc = cr;
            updateForm();
            crv.Visible = true;
            

        }

public void updateForm()
    {
                CrystalReport1 cr = new CrystalReport1();
    doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    doc.Load("cr");
    doc.DataDefinition.ParameterFields.Reset();
    AddParameter("@hoofdgroepomschrijving","DKW"); //Naam,waarde
                crv.ReportSource = null;
    crv.ReportSource = doc;
    }

private void AddParameter(string Parameter, Object Value)
    {
    CrystalDecisions.Shared.ParameterValues paramValues = new    
                CrystalDecisions.Shared.ParameterValues ();
    CrystalDecisions.Shared.ParameterDiscreteValue paramValue = new 
                CrystalDecisions.Shared.ParameterDiscreteValue ();
    
    // Set the discrete value and pass it to the parameter.
    paramValue.Value = Value;
    paramValues.Add (paramValue);
    doc.DataDefinition.ParameterFields[Parameter].ApplyCurrentValues 
                (paramValues);
    }

[ Voor 17% gewijzigd door Verwijderd op 02-06-2004 10:22 ]


  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

code:
1
doc.Load("cr") ??

Waarom?

Verwijderd

Riegstar schreef op 02 juni 2004 @ 10:47:
code:
1
doc.Load("cr") ??

Waarom?
Kan ik volgens jou
code:
1
2
3
doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    doc.Load("cr");
    doc.DataDefinition.ParameterFields.Reset();

geheel weglaten dan?

wat moet ik dan i.p.v.
code:
1
2
doc.DataDefinition.ParameterFields[Parameter].ApplyCurrentValues 
                (paramValues);

gaan gebruiken?

[ Voor 22% gewijzigd door Verwijderd op 02-06-2004 10:55 ]


  • Riegstar
  • Registratie: Februari 2003
  • Niet online

Riegstar

Wadapatja!

Verwijderd schreef op 02 juni 2004 @ 10:49:
[...]


Kan ik volgens jou
code:
1
2
3
doc = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
    doc.Load("cr");
    doc.DataDefinition.ParameterFields.Reset();

geheel weglaten dan?
Wanneer je het Rapportje als een Embedded Resource bij je project heb ingevoegd kan je gewoon bij de Parameter propertie komen van dat Rapportje.
code:
1
2
CrystalReport1 cr = new CrystalReport1();
cr.Parameter_hoofdgroepomschrijving =

Verwijderd

Riegstar schreef op 02 juni 2004 @ 11:09:
[...]


Wanneer je het Rapportje als een Embedded Resource bij je project heb ingevoegd kan je gewoon bij de Parameter propertie komen van dat Rapportje.
code:
1
2
CrystalReport1 cr = new CrystalReport1();
cr.Parameter_hoofdgroepomschrijving =
mmmm bovenstaande krijg ik niet voor elkaar.
Heb nu:

code:
1
2
3
4
5
6
7
8
9
10
11
12
CrystalReport1 cr = new CrystalReport1();           

CrystalDecisions.Shared.ParameterField ParameterField1 = new CrystalDecisions.Shared.ParameterField();
CrystalDecisions.Shared.ParameterFields ParameterFields = new CrystalDecisions.Shared.ParameterFields();
CrystalDecisions.Shared.ParameterDiscreteValue ParamterDescreteValue1 = new CrystalDecisions.Shared.ParameterDiscreteValue();
ParameterField1.ParameterFieldName = "id";
ParamterDescreteValue1.Value = "1";
ParameterField1.CurrentValues.Add(ParamterDescreteValue1);
ParameterFields.Add(ParameterField1);
crv.ParameterFieldInfo = ParameterFields;
crv.ReportSource = cr;
crv.Visible = true;


maar krijg nog steeds alle regels te zien.
i.p.v. de regel met id = 1
Pagina: 1