代码之家  ›  专栏  ›  技术社区  ›  Brandon

查找Crystal报表正在使用的存储过程

  •  5
  • Brandon  · 技术社区  · 15 年前

    我需要检索crystal报表正在运行的存储过程的名称。在C语言中,是否有任何方法可以使用CrystalDecisions.CrystalReports.Engine.ReportDocument对象来实现这一点?

    这有可能吗?我已经看完了我能想到的几乎所有的房产。DataDefinition对象有公式、参数、组名和运行总计字段的集合,但没有数据库字段的集合。

    编辑:我需要做这个程序,因为我有很多报告。我需要一个选项,跳过报表的实际运行,只执行报表将使用的存储过程。因此,当使用该程序将报表信息插入数据库时,我希望能够拉出其存储过程并分别存储该信息。

    4 回复  |  直到 15 年前
        1
  •  4
  •   dotjoe    15 年前

    你会踢自己的。SP在。。。

    ReportDocument.Database.Tables

    DataBase

    然后 Table.Location

    Table

    也不要忘记子报表…它是报表文档的另一个集合。

        2
  •  1
  •   SoftwareGeek    15 年前

    你可以用 SQLServer探查器

    首先,您需要有运行探查器的权限。

    第三,停止跟踪;扫描以查看报表执行的存储过程的名称。

        3
  •  0
  •   craig    15 年前

    尝试一下这个项目: RptToXml .

        4
  •  0
  •   Michael    12 年前

    您可以使用此代码输出表的各种属性(抱歉,它是在VB中,这是我必须用于此项目的内容):

    私有子logoninfo(table As table) log.DebugFormat(“{0}的LogOnInfo.ConnectionInfo:”,table.Name) Dim ci As ConnectionInfo=表.LogOnInfo.ConnectionInfo log.Debug(String.Format(“服务器名:{0},用户:{2},密码:{1},属性:”,ci.ServerName,ci.Password,ci.UserID))

    For Each a As NameValuePair2 In ci.Attributes.Collection
        If a.Name = "QE_LogonProperties" Then
            Dim attributes As DbConnectionAttributes = a.Value
            For Each b As NameValuePair2 In attributes.Collection
                log.DebugFormat("        {0}: {1}", b.Name, b.Value)
            Next
        Else
            log.DebugFormat("    {0}: {1}", a.Name, a.Value)
        End If
    Next
    

    末端接头