2010-03-03 3 views
0

J'essaie d'obtenir le nom du package Oracle utilisé pour une source de données de rapport Crystal à l'aide du code .NET. J'ai obtenu le nom de la procédure, mais pour une raison quelconque, je ne trouve pas le nom du paquet.Comment obtenir le nom du package Oracle à partir d'un fichier Crystal Report à l'aide du code .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 

Actuellement en utilisant .NET cristal version Décisions: 10.5.3700.0

+0

Cette question est spécifique à l'API Crystal. – eschneider

Répondre

4

L'attribut QualifiedName n'est pas exposé sur l'emballage dotnet public. Vous devez accéder à l'objet COM sous-jacent non public et l'utiliser.

Vous devez référencer les DLL suivantes:

 
CrystalDecisions.CrystalReports.Engine 
CrystalDecisions.ReportAppServer.DataDefModel 

Voici un extrait de code exemple. Notez qu'il reviendra préfixé avec le nom du schéma. J'ai fini par couper ça dans ma vraie implémentation.

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

Avez-vous essayé de placer un point de rupture, et d'afficher le contenu de rpt.Database.Tables.Item (0)?

Mise à jour: Voici une liste de quelques propriétés: Crystal Reports

+0

oui, je ne peux pas le trouver. – eschneider

Questions connexes