第一次用水晶报表,是用存储过程做的,报表已做好了。存储过程里头有2个参数,@STARTDATE,@ENDSTART,想用VB6里的2个DTPicker的值传入参数,不知怎样传入.系统已引用了Crystal Reports 9 ActiveX Designer Run Time Library,也加载了Crystal Report Viewer Control 9,最好有例子。在网上搜了一些代码用,但报表调不出来
Dim objA As New CRAXDRT.Application
Dim objB As New CRAXDRT.Report Set objB = objA.OpenReport(App.Path & "\总金额表.rpt", 1)
  CRViewer91.ReportSource = objB
  CRViewer91.ViewReport

解决方案 »

  1.   

    他是想给报表里的存储过程的parameter赋值。
    图表区在这里
    http://forum.csdn.net/SList/DotNETReport/看看这段有用么?
    33    With crxRpt
            
    34        For Each crxParamDef In .ParameterFields
    35            With crxParamDef
    36                Select Case .Name
                        Case "{?p_bill_ref}"
    38                        .ClearCurrentValueAndRange
    39                        If BillRef >= 256 And ((BillRef Mod 256) = 0) Then
    40                            .AddCurrentValue (BillRef + CrystalFudge)
    41                        Else
    42                            .AddCurrentValue (BillRef)
    43                        End If
                        Case "{?p_addr_type_code}"
    45                        .ClearCurrentValueAndRange
    46                        .AddCurrentValue (AddressTypeCode)
                        Case "{?p_use_supp}"
    48                        .ClearCurrentValueAndRange
    49                        .AddCurrentValue (IIf(Not blnNotUseSuppression, YesFlag, NoFlag))
                        Case "{?resume_flg}"
    51                        .ClearCurrentValueAndRange
    52                        .AddCurrentValue (YesFlag)
    53                End Select
    54            End With
    55        Next
      

  2.   

        '进行参数设置演示:报表模板中增加了3个参数
        '阿泰:2004-12-15,新增
        '让模板中设置的参数不出现提示框!!!!
        objCRReport.EnableParameterPrompting = False      '不进行报表参数提示
        
        '先清理可能存在的参数默认值等,一定要做。这里使用序号来依次操作
        '如果参数多的话可以使用循环等技巧来清理
        objCRReport.ParameterFields(1).ClearCurrentValueAndRange
        objCRReport.ParameterFields(2).ClearCurrentValueAndRange
        objCRReport.ParameterFields(3).ClearCurrentValueAndRange
        '进行赋值
        '注意如果有时候此处出现错误提示,那么就要查看
        '1-传入的参数是否有值
        '2-参数的类型是否匹配,可能要进行类型转换后才能传入
        '3-传入参数的值的序号是否对应
        Call objCRReport.ParameterFields(1).AddCurrentValue("公司名称测试1")
        Call objCRReport.ParameterFields(2).AddCurrentValue(CDate("2004-12-10"))
        Call objCRReport.ParameterFields(3).AddCurrentValue(100)