的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);
}
}
}
此問題特定於Crystal API。 – eschneider