2009-10-15 9 views
6

Ich habe einen Crystal-Bericht, der auf einer XSD-Schemadatei basiert.XSD-Dateipfad in Crystal Reports dynamisch ändern

Innerhalb der Berichtsdefinition kann ich den Speicherort der Datenquelle, insbesondere den Dateipfad, ändern. Hier kann ich den Dateipfad zu dem Speicherort der XSD-Schemadatei auf meinem Computer festlegen.

An diesem Punkt funktioniert alles korrekt. Hier

ist das Problem:

Wenn der Dateipfad nicht vorhanden ist, der Bericht einen Laufzeitfehler hat.

Dies wirft insbesondere bei der Bereitstellung Probleme auf, da sich meine lokale Entwicklungsumgebung physisch von der Test-/Live-Umgebung unterscheidet. d. h. Dateipfade sind sehr unterschiedlich und ich möchte mich nicht auf einen "fest codierten" Dateipfad verlassen.

Meine Frage ist, ich würde gerne wissen, wie ich diesen Dateipfad entweder dynamisch (in Code) ändern oder in der Berichtsdefinition so einstellen kann, dass er relativ zum Berichtort ist?

+0

Welche Version von Crystal dynamisch xml oder XSD-Einstellung verwenden Sie? –

Antwort

1

Der einfachste Weg wäre, den Speicherort der Datenquelle auf den Speicherort der Berichtsdatei einzustellen. Wenn Sie den Dialog Datenquellenpfad festlegen öffnen, erweitern Sie das Eigenschaften-Plus-Feld, klicken Sie dann mit der rechten Maustaste auf den Namen des Dateipfads und wählen Sie "Wie Bericht".

0

Verwendung unter Codebeispiel für

ReportDocument crReportDoc.DataSourceConnections[0].SetConnection(p_XMLDocument + " " + tdgDoc_XSD, "", null, ""); 
// crReportDoc.DataSourceConnections[0].SetConnection(p_XMLDocument + " " + tdgDoc_XSD, "", null, ""); 
NameValuePairs2 logon = new NameValuePairs2(); 
logon.Set("QE_ServerDescription", p_XMLDocument + " " + tdgDoc_XSD); 
logon.Set("Local Schema File", tdgDoc_XSD); 
logon.Set("Local XML File", p_XMLDocument); 
crReportDoc.DataSourceConnections[0].SetLogonProperties(logon); 
+2

Möglicherweise müssen Sie das Format Ihres Codes verbessern –