Behandeln von Crystal Report-Fehlern®

In diesem Artikel wird beschrieben, wie Sie häufige Crystal Report-Fehler® in Solomon beheben.

Gilt für: Microsoft Dynamics SL
Ursprüngliche KB-Nummer: 844751

  1. Microsoft Dynamics SL bietet Unterstützung für die Installation von Crystal Reports®, den Inhalt der Standardberichte, die Leistung der Standardberichte und Antworten auf allgemeine Fragen zur grundlegenden Funktionalität in Crystal. Microsoft Dynamics SL ist nicht verpflichtet, Debugunterstützung für geänderte oder neu entwickelte Berichte bereitzustellen, befolgt jedoch die üblichen Technischen Support-Problembehandlungstechniken (wie unten beschrieben), um zu überprüfen, ob kein Microsoft Dynamics SL-Fehler vorhanden ist.

  2. Das primäre Ziel des Berichtsproblembehandlungsprozesses besteht darin, die Ursache des Berichtsfehlers zu identifizieren. Dazu sollten die folgenden Fragen gestellt werden, um die Details des Problems zu verstehen:

    • Welcher Bericht wird gedruckt?
    • Welches Format dieses Berichts wird gedruckt?
    • Ist der Bericht angepasst?
    • Wird eine Vorlage, sortiert und/oder eine Auswahl verwendet?
    • Hat dieser Bericht jemals funktioniert? Was hat sich geändert?
    • Funktioniert der Bericht in anderen Datenbanken (z. B. Demodatenbank)?
  3. Der nächste Schritt besteht darin, zu ermitteln, ob das Problem mit der Datenbank oder der Anwendung zusammenhängt, indem Sie versuchen, den Fehler neu zu erstellen. Wenn derselbe Fehler in anderen Datenbanken (Demodatenbanken) neu erstellt werden kann, dokumentiert der technische Support von Dynamics SL die Testschritte und übermittelt sie an eine Dynamics SL-Entwicklungsgruppe, damit eine Korrektur übermittelt werden kann. Wenn der Fehler jedoch nur für diese Datenbank spezifisch zu sein scheint, kann dies ein Hinweis auf ein Problem mit den tatsächlichen Daten und nicht auf einen Anwendungsfehler sein.

Eine vollständige Anleitung zur Problembehandlung eines Crystal-Berichts® finden Sie in den folgenden Schritten.

Hinweis

Wenn während der Problembehandlung Fragen auftreten, wenden Sie sich an den technischen Support, um Dies zu klären, bevor Sie die empfohlene Aktion versuchen.

  1. Ermitteln Sie, welcher Bericht gedruckt wird, indem Sie den Berichtsnamen und die Bildschirmnummer überprüfen, die auf der Titelleiste des Bildschirms ROI (Return on Investment) angezeigt werden.

  2. Bestimmen Sie, welches Berichtsformat beim Drucken des Berichts ausgewählt ist. Wenn Beispielsweise bei der Problembehandlung des Hauptbuchdetailberichts ermittelt wird, welches der beiden Berichtsformate verwendet wird: Standard oder Multi-Currency.

  3. Ermitteln Sie mithilfe der Abfrageanalyse den Namen der Berichtsdatei, der dem Berichtsformat entspricht, das in Schritt 2 angegeben wurde. Greifen Sie dazu auf die entsprechende Systemdatenbank zu, und führen Sie die folgende Anweisung aus:

    SELECT * from RPTCONTROL where ReportNbr = '01620'
    

    Hinweis

    Wobei derReportNbr = die ersten 5 Ziffern des Berichtsbildschirms ist. Der Wert sollte in Anführungszeichen und ohne Dezimalzeichen eingegeben werden. In diesem Beispiel ist 01620 repräsentativ für den GL Detail-Hauptbuchbericht (01.620.00).

    Überprüfen Sie die in den Feldern ReportFormat00 – ReportFormat07 gespeicherten Informationen. Suchen Sie den gewünschten Berichtsformatnamen, und notieren Sie sich, in welchem ReportFormatXX-Feld es sich befindet. Der entsprechende Berichtsdateiname befindet sich im übereinstimmenden Feld ReportNameXX, bei dem es sich um den *-Wert handelt. RPT-Dateiname , der von Dynamics SL beim Drucken des Berichts verwendet wird. Basierend auf dem Beispiel wird das Standardformat des Detail-Hauptbuchberichts in ReportFormat00 und dem entsprechenden * gespeichert. RPT Report Filename - 01620 befindet sich in ReportName00.

    Hinweis

    Alle Informationen sind wichtig, da sie in späteren Schritten benötigt werden.

  4. Ermitteln Sie, ob es sich bei dem Bericht um einen Standard-Dynamics SL-Bericht handelt.

    1. Überprüfen Sie mit Explorer den Inhalt des DYNAMICSSL\USR_RPTS Verzeichnisses, und ermitteln Sie, ob *. Die in Schritt 3 notierte RPT-Datei befindet sich dort. Wenn dies der Fall ist, ist dies ein möglicher Hinweis auf einen angepassten Bericht. Benennen Sie die Datei um.

    2. Suchen Und notieren Sie sich mithilfe von Explorer das *. RPT-Datei, die sich im Unterverzeichnis des Moduls (d. b\SOLOMONIV\GL\01620.RPT. ) befindet. Wenn das Datum von dem Datum abweicht, das auf Dynamics SL CD gefunden wurde, das dem aktuell installierten Produkt entspricht, ist dies ein möglicher Hinweis auf einen benutzerdefinierten Bericht oder einen Fehler bei der Installation des Berichts. Benennen Sie diese Datei um, und ersetzen Sie sie durch eine Datei aus der entsprechenden Produkt-CD oder dem entsprechenden Service Pack. Entfernen Sie das attribut Read-Only, wenn Sie die CD verwenden. Testen Sie den Bericht erneut.

  5. Entfernen Sie alle Vorlagen, Sortierungen oder Auswahlen, und testen Sie den Bericht erneut. Wenn der Bericht erfolgreich gedruckt wird, erstellen Sie die Sortierauswahl mithilfe der Demo-Datenbank neu, und vergleichen Sie die Ergebnisse. Wenn von beiden ein Fehler empfangen wird, kann das Problem mit der Nutzbarkeit oder einem potenziellen Fehler zusammenhängen. Wenn bei der Verwendung der Demo-Datenbank kein Fehler auftritt, fahren Sie mit Schritt 6 fort.

  6. Löschen Sie alle verwaisten temporären Datensätze aus RPTRUNTIME und RPTCOMPANY mithilfe der folgenden Anweisungen in Query Analyzer. Alle Benutzer müssen Dynamics SL beenden, bevor die Anweisungen ausgeführt werden.

    Hinweis

    RPTRUNTIME befindet sich sowohl in der System- als auch in der Anwendungsdatenbank in Dynamics SL. RPTCOMPANY wird nur in Solomon IV Version 4.x Anwendungsdatenbanken gefunden. Diese Tabellen werden verwendet, um Benutzer und Arbeitsstationen zu identifizieren, die den Bericht drucken, sodass mehrere Benutzer denselben Bericht gleichzeitig drucken können.

    1. Greifen Sie auf die entsprechende Systemdatenbank zu, und führen Sie die folgende Anweisung aus:

      DELETE from RPTRUNTIME
      
    2. Wählen Sie die entsprechende Anwendungsdatenbank aus, und führen Sie die folgende Anweisung aus:

      DELETE from RPTRUNTIME
      
      DELETE from RPTCOMPANY
      
    3. Wenn nach dem Ausführen der -Anweisungen weiterhin Fehler gemeldet werden, aber in den Demodatenbanken nicht neu erstellt werden können, fahren Sie mit den folgenden Schritten fort, um die tatsächlichen Daten zu untersuchen.

  7. Überprüfen Sie die sql-Abfrage, die vom Bericht verwendet wird.

    1. Greifen Sie in Crystal Reports® Designer auf den Bericht zu.

    2. Wählen Sie Datenbank und dann SQL-Abfrage anzeigen aus.

    3. Wählen Sie in der Liste der Computerdatenquellen den Namen der Datenbankquelle aus. Wählen Sie OK aus.

    4. Wählen Sie im SQL Server Anmeldebildschirm erneut OK aus, um sich als sa anzumelden.

      Das folgende Beispiel ist eine SQL-Abfrage, die vom Detail-Hauptbuchbericht verwendet wird. Diese Anweisung wird für die Datenbank ausgeführt, und die from-Klausel, die von der Abfrage verwendet wird, enthält die Datenbanktabellen oder -sichten, die zum Drucken des Berichts verwendet werden. Berichte, die von einer Arbeitstabelle abhängig sind, zeigen einen Objektnamen an, der in WRK der FROM-Klausel beginnt oder endet. Berichte, die von einer Ansicht abhängig sind, zeigen einen Objektnamen an, der mit vrbeginnt.

      SELECT vr_01620."Acct", vr_01620."Sub", ..... FROM "DemoApp0060"."dbo"."vr_01620"
      

      vr_01620 Notieren Sie alle Tabellen oder Sichten, die im ABSCHNITT FROM der Query-Anweisung aufgeführt sind. Wenn eine Arbeitstabelle aufgeführt ist, fahren Sie mit Schritt 8 fort. Wenn eine Ansicht aufgeführt ist, fahren Sie mit Schritt 9 fort. Wenn weder eine Arbeitstabelle noch eine Ansicht aufgeführt ist, fahren Sie mit Schritt 10 fort.

  8. Löschen Sie alle verwaisten Datensätze, die in einer Arbeitstabelle verbleiben, mithilfe der folgenden Anweisungen in Query Analyzer. Alle Benutzer müssen Dynamics SL beenden, bevor die Anweisungen ausgeführt werden.

    Hinweis

    Eine Arbeitstabelle ist eine leere Tabelle, die nur verwendet wird, wenn ein Bericht gedruckt oder ein Prozess ausgeführt wird. Arbeitstabellen sollten leer sein, es sei denn, ein Bericht, der von einer bestimmten Arbeitstabelle abhängig ist, wird derzeit in Dynamics SL generiert. Beispielsweise verwendet AR Customer Statements (08.600.00) eine Arbeitstabelle mit dem Namen AR08600_wrk. AR08600_wrk wird in der FROM-Klausel angezeigt, auf die in Schritt 7 verwiesen wird.

    Greifen Sie auf die entsprechende Anwendungsdatenbank zu, und führen Sie die folgende Anweisung aus:

    DELETE from AR08600_WRK
    

    Fahren Sie mit Schritt 9 fort.

  9. Erstellen Sie die Sichten, gespeicherten Prozeduren und Indizes sowohl für die System- als auch für die Anwendungsdatenbank neu. Testen Sie den Bericht erneut.

  10. Wenn nach dem Löschen verwaister Datensätze aus Arbeitstabellen, dem Erneuten Erstellen der Ansicht oder in Fällen, in denen weder Arbeitstabellen noch Sichten in den Abfrageanweisungen verwendet werden, weiterhin Fehler auftreten, müssen die tatsächlichen Daten überprüft werden, die von der Ansicht, gespeicherten Prozedur oder Abfrage zurückgegeben werden. Führen Sie die In Schritt 7 überprüfte Crystal SQL Query-Anweisung in Query Analyzer aus.

    1. Greifen Sie auf die entsprechende Anwendungsdatenbank zu, kopieren Sie die sql Query-Anweisung, die in Schritt 7 überprüft wurde, und fügen Sie sie in das Abfragefenster ein.

    2. Entfernen Sie die Anführungszeichen mit Bearbeiten, Suchen ersetzen: " Wählen Sie Alle ersetzen aus. Dadurch werden alle Anführungszeichen entfernt. Die Option Ersetzen durch bleibt leer.

    3. Entfernen Sie den qualifizierten Datenbanknamen, Besitzer und Objektnamen aus der Abfrage.

    4. Löschen Sie anhand des in Schritt 7 bereitgestellten Beispiels die DemoApp0060.dbo.vr_01620, sodass nur vr_01620

    5. In Dynamics SL können Sie eine Vorschau des Berichts über den ROI-Bildschirm drucken. Lassen Sie alle Fehlermeldungen auf dem Bildschirm, ohne OK auszuwählen. Dadurch wird der erforderliche temporäre Datensatz in die RPTCOMPANY eingefügt.

    6. Führen Sie die SQL Query-Anweisung in Query Analyzer aus, und überprüfen Sie die Daten auf ungültige oder fehlende Daten.

    7. Wenn nach der Überprüfung der Daten festgestellt wird, dass die Ursache der Berichtsprobleme fehlende oder beschädigte Daten sind, verwenden Sie das entsprechende Modul Integritätsprüfung (nur Überprüfungsoptionen), um zu überprüfen, ob unterstützende Datensätze vorhanden sind. Weitere Informationen zum Ausführen der Integritätsprüfungen finden Sie unter Dynamics SL-Onlinehilfe oder Benutzerhandbuch.

  11. Wenn weitere Unterstützung erforderlich ist, wenden Sie sich an den technischen Support von Dynamics SL.