2012-03-28 2 views
0

vb.net 응용 프로그램에서 공용 변수를 사용하는 Crystal studio를 사용하여 보고서를 생성하려고합니다. 최선의 방법은 런타임에 보고서에 필터를 동적으로 제공하는 것 뿐이지 만 런타임시 모든 정보를 가져올 수 있도록 설정하는 방법을 알 수는 없습니다. 어떤 충고?VS2010을 사용한 동적 Crystal Report

답변

0

가장 좋은 방법은 레코드 선택 기준에 사용되는 매개 변수를 사용하여 보고서를 작성하는 것입니다. 그런 다음 보고서를로드와 같은 매개 변수를 채울 수 있습니다 :

Imports CrystalDecisions.CrystalReports.Engine 
Imports CrystalDecisions.Shared 
Public Class Form1 
Private Sub Button1_Click(ByVal sender As System.Object, _ 
ByVal e As System.EventArgs) Handles Button1.Click 

    Dim cryRpt As New ReportDocument 
    cryRpt.Load("PUT CRYSTAL REPORT PATH HERE\CrystalReport1.rpt") 

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

    crParameterDiscreteValue.Value = TextBox1.Text 
    crParameterFieldDefinitions = - 
     cryRpt.DataDefinition.ParameterFields 
    crParameterFieldDefinition = _ 
     crParameterFieldDefinitions.Item("Customername") 
    crParameterValues = crParameterFieldDefinition.CurrentValues 

    crParameterValues.Clear() 
    crParameterValues.Add(crParameterDiscreteValue) 
    crParameterFieldDefinition.ApplyCurrentValues(crParameterValues) 

    CrystalReportViewer1.ReportSource = cryRpt 
    CrystalReportViewer1.Refresh() 
End Sub 

코드에서 : http://vb.net-informations.com/crystal-report/vb.net_crystal_report_parameter_string.htm 최종 클래스

0
string query = "select * from TestReport"; 

sqlconn.Open(); 

da = new SqlDataAdapter(query, sqlconn); 

SqlCommandBuilder scb = new SqlCommandBuilder(da); 

da.Fill(DS.TestReport);//DS is a DataSet object . 

myCrystalReport1.SetDataSource(DS); 


//----------------- 

ParameterField paramfield = new ParameterField(); 

ParameterFields paramfields = new ParameterFields(); 

ParameterDiscreteValue discreteval = new ParameterDiscreteValue(); 


paramfield.Name = "myfirstname"; 

discreteval.Value = "10"; 


paramfield.CurrentValues.Add(discreteval); 

paramfields.Add(paramfield); 

crystalReportViewer1.ParameterFieldInfo = paramfields; 

//----------------- 

crystalReportViewer1.ReportSource = myCrystalReport1; 


crystalReportViewer1.Refresh(); 

sqlconn.Close();