【问题标题】:Passing range parameters to Crystal object将范围参数传递给 Crystal 对象
【发布时间】:2019-04-23 09:54:50
【问题描述】:

我有一个已经设计好的 Crystal 报表,它有两个参数:AccountNoTransaction_Date

AccountNo 是一个离散值

Transaction_Date 是一个日期范围参数(范围的开始和范围的结束)。

我打算通过我的 vb6 代码传递这个参数。 我尝试这样做会为我显示/导出空白报告。

代码如下:

    Set objCrystal = New CRAXDRT.Application
    objCrystal.LogOnServer "pdsodbc.DLL", "SMARTHR", sTrDSource, CStr(strUserName), CStr(strPwd)

    Set objReport = objCrystal.OpenReport(App.path & "\Reports\CPSMPA.rpt", 1)

    objReport.DiscardSavedData
    objReport.ParameterFields(1).AddCurrentValue (v_ACCNO)
    objReport.ParameterFields(2).MaximumValue = v_ENDDT
    objReport.ParameterFields(2).MinimumValue = v_STATDT
    ''objReport.ParameterFields(1).AddCurrentRange(v_STATDT,v_ENDDT,crRangeNotIncludeUpperLowerBound)
    ExportReportToPDF objReport, (App.path & "\Reports\Emails\" & v_ACCNO & "MPA.pdf")

我认为我传递参数的方式不正确。

【问题讨论】:

  • v_ENDDT 和 v_STATDT 中有哪些值?
  • v_ENDDT 和 v_STATDT 是日期类型变量,分别保存结束日期和开始日期。
  • Eugene,标签很重要,因为 SO 上的许多人都遵循他们熟悉的标签。因此,通过同时使用 VB6 和 VB.Net 对其进行标记,您可能会混淆人们并导致他们继续做其他事情。我会删除不适用的任何标签 - 或者在问题中解释两者是否相关。
  • 在尝试删除 VB.NET 时应该标记 vb60,如果您能帮我删除将不胜感激。
  • 看起来你已经做到了。

标签: vb6


【解决方案1】:

我设法通过更改将值传递给日期范围参数的方式来摆脱困境。它可能会帮助另一个人。在下面找到它。

objReport.ParameterFields(1).AddCurrentValue (v_ACCNO) objReport.ParameterFields(2).AddCurrentRange v_STATDT, v_ENDDT, crRangeIncludeLowerBound

【讨论】:

    猜你喜欢
    • 2015-04-21
    • 2017-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多