Как получить имя пакета Oracle из файла Crystal Report, используя код .NET - PullRequest
0 голосов
/ 03 марта 2010

Я пытаюсь получить имя пакета Oracle, используемое для источника данных отчета Crystal, с использованием кода .NET. Я получил имя процедуры, но по какой-то причине не могу найти имя пакета.

     Dim rpt as new ReportDocument
     rpt.Load(filename)

     Dim procedureName As String = rpt.Database.Tables.Item(0).Location 
     Dim DataSourceAliasName As String = rpt.Database.Tables.Item(0).Name

В настоящее время используется .NET Crystal Decisions версия: 10.5.3700.0

Ответы [ 2 ]

4 голосов
/ 17 июня 2011

Атрибут QualifiedName не доступен в общедоступной оболочке dotnet. Вы должны получить доступ к закрытому COM-объекту и использовать его.

Вам необходимо обратиться к следующим DLL:

CrystalDecisions.CrystalReports.Engine
CrystalDecisions.ReportAppServer.DataDefModel

Ниже приведен пример кода. Обратите внимание, что он вернется с префиксом имени схемы. Я закончил тем, что отрубил это в своей реальной реализации.

using System;
using System.Reflection;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportAppServer.DataDefModel;

namespace ConsoleApplication1
{
   class Program
   {
      static void Main(string[] args)
      {
         ReportDocument doc = null;
         CrystalDecisions.CrystalReports.Engine.Table table = null;
         PropertyInfo prop = null;
         ISCRTable rasTable = null;

         doc = new ReportDocument();
         doc.Load("c:\\workspace\\temp\\example.rpt");
         table = doc.Database.Tables[0];

         prop = table.GetType().GetProperty("RasTable",BindingFlags.NonPublic | BindingFlags.Instance);
         rasTable = (ISCRTable)prop.GetValue(table, null);

         Console.Out.WriteLine(table.Name);    
         Console.Out.WriteLine(rasTable.QualifiedName);

      }
   }
}
0 голосов
/ 12 марта 2010

Вы пытались установить точку останова и просмотреть содержимое rpt.Database.Tables.Item (0)?

Обновление: вот список некоторых свойств: Crystal Reports

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...