2012-04-02 4 views
0

Ich habe ziemlich schrecklichen Code geerbt, der Crystal Reports ausgiebig verwendet. Mein Problem ist, dass ich die Berichte lokal gut verarbeiten kann, aber wenn ich auf den Produktionsserver umziehe, stürzt es ab.Wie erzwinge ich einen DataSource-Speicherort in Crystal Reports?

Wenn ich die Verbindungsinformationen im Assistenten "Set DataSource-Speicherort" in Visual Studio ändern möchte, kann ich ihn nicht auf die Verbindungsinformationen des Produktionsservers ändern, da die Verbindung getestet wird und natürlich ein Fehler auftritt. Nach diesem Fehler kehrt es zu den alten "funktionierenden" Verbindungsinformationen zurück.

Ich weiß, dass es nicht remote verbinden kann. Ich versuche nur, die Verbindungsinformationen für die Bereitstellung auf dem Server zu ändern. Sicherlich gibt es eine Möglichkeit, diese Informationen in den Bericht zu zwingen.

Jede Hilfe würde sehr geschätzt werden. Mir gehen die Haare aus, um rauszuziehen.

+0

betrachten Kennzeichnung/Erwähnung der Sprache und dbms –

Antwort

0

Sie können ein Connection-Objekt erstellen und es dann zu jeder der Tabellen auf dem der Bericht mit ApplyLogOnInfo

Hier ist die Probe von MSDN article on the ConnectionInfo Class

private void SetConnectionInfo (string table, string server, string database, string user, string password) 
{ 
    TableLogOnInfo logOnInfo = new TableLogOnInfo(); 
    logOnInfo = Report.Database.Tables[table].LogOnInfo; 
    ConnectionInfo connectionInfo = new ConnectionInfo(); 
    connectionInfo = logOnInfo.ConnectionInfo; 

    connectionInfo.DatabaseName = database; 
    connectionInfo.ServerName = server; 
    connectionInfo.Password = password; 
    connectionInfo.UserID = user; 
    Report.Database.Tables [table].ApplyLogOnInfo(logOnInfo); 
} 

Normalerweise obwohl ich es einfacher, nur eine zu finden, benutzen ODBC- oder TNS-Eintragsname für ORACLE und behalten Sie den Namen in allen Umgebungen gleich, was den Code vollständig vermeidet.