Błąd "Crystal Print Engine Error 515 — Error in Formula" (Błąd w formule) podczas drukowania raportów w usłudze Microsoft Dynamics SL

W tym artykule opisano przyczyny, dla których podczas drukowania raportów w usłudze Microsoft Dynamics SL może zostać wyświetlony komunikat o błędzie crystal print engine error 515 oraz sposoby rozwiązania tego problemu.

Dotyczy: Microsoft Dynamics SL
Oryginalny numer KB: 873549

Symptomy

Podczas drukowania raportów w usłudze Microsoft Dynamics SL zostanie wyświetlony następujący komunikat o błędzie:

Błąd aparatu crystal print 515 — błąd w formule

Rozwiązanie

Uwaga

Przed wykonaniem instrukcji opisanych w tym artykule upewnij się, że masz pełną kopię zapasową bazy danych, którą można przywrócić w przypadku wystąpienia problemu.

Przyczyna i rozwiązanie 1

Ten problem występuje, gdy rekord w tabeli USŁUGI BATCH zawiera puste wartości w jednym lub obu następujących polach:

  • BaseCuryID
  • Identyfikator kuryID

Aby rozwiązać ten problem, wypełnij jedno lub oba te pola. Aby tego dokonać, wykonaj następujące kroki:

  1. Użyj analizatora zapytań SQL lub SQL Server Management Studio, aby uzyskać dostęp do odpowiedniej bazy danych aplikacji, a następnie uruchom następującą instrukcję, aby zidentyfikować rekordy w tabeli USŁUGI BATCH, które mają puste wartości w polu BaseCuryID lub w polu CuryID:

    SELECT status,* from BATCH where BaseCuryID = '' or CuryID = ''
    

    Uwaga

    • W tej instrukcji należy użyć dwóch par pojedynczego cudzysłowu.
    • Nie obawiaj się żadnych partii generowanych przez to zapytanie, jeśli te partie mają stan "V" lub "D".
  2. Użyj wartości w polu BatNbr , aby określić liczby partii. Użyj wartości w polu Moduł , aby określić moduł. Określ, czy waluta jest walutą bazową, czy walutą obcą. Pole BaseCuryID identyfikuje walutę bazową, a pole CuryID identyfikuje walutę bazową lub walutę obcą.

  3. Użyj poniższej instrukcji, aby zaktualizować rekordy w tabeli USŁUGI BATCH. Upewnij się, że dodasz odpowiedni identyfikator waluty dla pola BaseCuryID i pola CuryID :

    UPDATE BATCH SET BaseCuryID = 'BBB', CuryID = 'CCC' where BatNbr = 'XXXXXX' and Module = 'YY'
    

    Uwaga

    W tej instrukcji BBB reprezentuje odpowiedni identyfikator waluty bazowej, CCC reprezentuje odpowiedni identyfikator bazy lub waluty obcej, XXXXXX reprezentuje odpowiedni numer partii, a YY reprezentuje odpowiedni dwuliterowy skrót modułu.

Przyczyna i rozwiązanie 2

Ten problem występuje podczas drukowania raportów zarządzania zamówieniami lub raportów zakupów. Aby rozwiązać ten problem, uruchom proces instalacji stacji roboczej zarządzania zamówieniami, aby sprawdzić, czy instalacja stacji roboczej Zarządzanie zamówieniami została ukończona. Aby tego dokonać, wykonaj następujące kroki:

  1. Na liście Moduły wybierz pozycję Zarządzanie zamówieniami.
  2. W okienku Zarządzanie zamówieniami wybierz pozycję Instalacja stacji roboczej pakietu OM w obszarze Procesy.
  3. Wybierz pozycję Rozpocznij.
  4. Powtórz ten proces dla wszystkich stacji roboczych.

Uwaga

Jeśli komunikat o błędzie będzie nadal wyświetlany, zobacz sekcję Przyczyna i rozwiązanie 6 .

Przyczyna i rozwiązanie 3

Ten problem występuje, gdy drukujesz faktury z ekranu Faktury (40.680.00), a niepoprawna wersja pliku Crufladg.dll znajduje się w folderze OM.

Sprawdź, czy wersja pliku Crufladg.dll w folderze pakietu OM jest poprawna. Aby tego dokonać, wykonaj następujące kroki:

  1. Użyj Eksploratora Windows, aby zlokalizować wszystkie wystąpienia pliku Crufladg.dll. Ten plik powinien znajdować się w następujących trzech lokalizacjach:

    • Solomon IV\OM
    • Winsys\Register
    • Winnt\System32 or Windows\System32
  2. Sprawdź daty, rozmiary i wersje plików Crufladg.dll. Wszystkie trzy pliki Crufladg.dll muszą mieć tę samą datę modyfikacji, ten sam rozmiar pliku i ten sam numer wersji.

  3. Jeśli plik Crufladg.dll ma datę 5/21/99 lub numer wersji 4.01, zastąp ten plik nowszą wersją pliku.

Przyczyna i rozwiązanie 4

Ten problem występuje, gdy brakuje pliku U2lsol4.dll, jest on uszkodzony lub niepoprawny. Aby rozwiązać ten problem w systemie Microsoft Solomon 5.5 i we wcześniejszych wersjach programu Microsoft Solomon, skopiuj plik U2lsol4.dll do folderu Winnt\Crystal lub do folderu Windows\Crystal . Aby tego dokonać, wykonaj następujące kroki:

  1. Sprawdź, czy wszystkie raporty generują komunikat o błędzie 515.
  2. Zmień nazwę istniejących plików U2lsol4.dll w folderze Winnt\Crystal lub w folderze Windows\Crystal na U2lsol4.old.
  3. Skopiuj plik U2lsol4.dll z folderu Solomon\Wrkstn\Windows\Crystal do folderu lokalnego Winnt\Crystal lub do folderu lokalnego Windows\Crystal .
  4. Spróbuj ponownie wydrukować raport. Jeśli problem będzie się powtarzać, skopiuj plik U2lsol4.dll z folderu Winnt\Crystal lub folderu Windows\Crystal do folderu Winnt\System32 lub do folderu \Windows\System32 .

Uwaga

Ta rezolucja ma zastosowanie tylko do microsoft solomon 5.5 i wcześniejszych wersji firmy Microsoft Solomon.

Przyczyna i rozwiązanie 5

Ten problem występuje podczas próby wydrukowania rekordu lub wyświetlenia podglądu rekordu w raporcie Zamówienia zakupu (04.600.00), jeśli pole CuryID lub pole BaseCuryID jest puste w jednej z następujących tabel:

  • PURCHORD
  • PURORDDET
  • POREQHDR
  • POREQDET

Aby rozwiązać ten problem w wersji Microsoft Solomon 5.5 lub starszej, zaktualizuj tabelę zawierającą puste pole CuryID lub puste pole BaseCuryID . Aby tego dokonać, wykonaj następujące kroki:

  1. Użyj analizatora zapytań SQL lub SQL Server Management Studio, aby uzyskać dostęp do odpowiedniej bazy danych aplikacji, a następnie uruchom następujące instrukcje, aby ustalić, czy pole CuryID jest puste w co najmniej jednej z czterech tabel wymienionych wcześniej w tej sekcji:

    SELECT CuryID, BaseCuryID, PONbr, * from PURCHORD where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, PONbr, * from PURORDDET where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, ReqNbr, * from POREQDET where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    SELECT CuryID, BaseCuryID, ReqNbr, * from POREQHDR where CuryID in ('', '2345') or BaseCuryID in ('', '2345')
    

    Uwaga

    W każdej z tych instrukcji należy użyć dwóch par pojedynczego cudzysłowu.

  2. Jeśli rekordy zostaną zwrócone, użyj następujących instrukcji aktualizacji, aby wypełnić pole CuryID :

    UPDATE PURCHORD SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and PONbr = 'XXXXXX'
    UPDATE PURORDDET SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and PONbr = 'XXXXXX'
    UPDATE POREQDET SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and ReqNbr = 'XXXXXX'
    UPDATE POREQHDR SET CuryID = 'YYY', BaseCuryID = ('ZZZ') where (CuryID in ('', '2345') or BaseCuryID in ('', '2345')) and ReqNbr = 'XXXXXX'
    

    Uwaga

    • W każdej z tych instrukcji należy użyć dwóch par pojedynczego cudzysłowu.
    • W każdej z tych instrukcji RRRR reprezentuje prawidłowy identyfikator waluty obcej, ZZZ reprezentuje prawidłowy identyfikator waluty bazowej, a XXXXXX reprezentuje odpowiedni numer zamówienia zakupu rekordu, który ma zostać zaktualizowany, który został zidentyfikowany w kroku 1.

Aby rozwiązać ten problem w wersji Microsoft Solomon 6.0 lub nowszej, zaktualizuj tabelę zawierającą puste pole CuryID . Aby tego dokonać, wykonaj następujące kroki:

  1. Użyj analizatora zapytań SQL lub SQL Server Management Studio, aby uzyskać dostęp do odpowiedniej bazy danych aplikacji, a następnie uruchom następujące instrukcje, aby ustalić, czy pole CuryID jest puste w co najmniej jednej z czterech tabel wymienionych wcześniej w tej sekcji:

    SELECT CuryID, PONbr, * from PURCHORD where (CuryID in ('', '2345')
    SELECT CuryID, PONbr, * from PURORDDET where (CuryID in ('', '2345')
    SELECT CuryID, ReqNbr, * from POREQDET where (CuryID in ('', '2345')
    SELECT CuryID, ReqNbr, * from POREQHDR where (CuryID in ('', '2345')
    

    Uwaga

    W każdej z tych instrukcji należy użyć dwóch par pojedynczego cudzysłowu.

  2. Jeśli rekordy zostaną zwrócone, użyj następujących instrukcji aktualizacji, aby wypełnić pole CuryID :

    UPDATE PURCHORD SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE PURORDDET SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE POREQDET SET CuryID = 'YYY' where (CuryID in ('', '2345')
    UPDATE POREQHDR SET CuryID = 'YYY' where (CuryID in ('', '2345')
    

    Uwaga

    W każdej z tych instrukcji należy użyć dwóch par pojedynczego cudzysłowu.

Przyczyna i rozwiązanie 6

Ten problem występuje, gdy plik Crufladg.dll nie jest zarejestrowany. Aby rozwiązać ten problem, ręcznie zarejestruj plik Crufladg.dll. Aby tego dokonać, wykonaj następujące kroki:

  1. Użyj Eksploratora Windows, aby zlokalizować plik Crufladg.dll na stacji roboczej.
  2. Kliknij prawym przyciskiem myszy plik, wskaż polecenie Otwórz za pomocą, a następnie wybierz pozycję Inne.
  3. Przejrzyj dysk lokalny. Który jest zazwyczaj dysk C. Wybierz Regsvr32.exe w folderze \Winnt\System32 lub Regsvr.exe w folderze \Windows\System .
  4. Wybierz opcję Otwórz.
  5. Wybierz przycisk OK. Komunikat wskazuje, czy plik został pomyślnie zarejestrowany.

Przyczyna i rozwiązanie 7

Ten problem występuje podczas drukowania raportów z określonej stacji roboczej. Aby rozwiązać ten problem w systemie Microsoft Solomon 5.5 i we wcześniejszych wersjach programu Microsoft Solomon, wykonaj następujące kroki:

  1. Użyj polecenia Dodaj lub usuń programy w Panel sterowania, aby odinstalować program klienta Microsoft Solomon IV.
  2. Zmień nazwę folderu Winnt\Crystal .
  3. Zainstaluj ponownie program klienta Microsoft Solomon IV.

Uwaga

Ta rezolucja ma zastosowanie tylko do microsoft solomon 5.5 i wcześniejszych wersji firmy Microsoft Solomon.

Przyczyna i rozwiązanie 8

Ten problem występuje, gdy nazwa drukarki jest za długa. Aby rozwiązać ten problem, zmień domyślną nazwę drukarki, aby zawierała mniej niż 25 znaków.

Przyczyna i rozwiązanie 9

Ten problem występuje podczas uaktualniania z programu Microsoft Solomon IV 4.21 z aplikacją Crystal Reports 6.0 do wersji Microsoft Solomon 5.5 z aplikacją Crystal Reports 8.5. W takim przypadku komunikat o błędzie odwołuje się do funkcji sumowania RT. Aby rozwiązać ten problem, wykonaj następujące czynności:

  1. Użyj funkcji sumowania dołączonych do programu Crystal Reports 8.5, aby poprawić pole formuły.
  2. Postępuj zgodnie z instrukcjami w artykule c2002613 w bazie wiedzy Crystal Knowledge Base, aby zainstalować poprawne pliki DLL.

Firma Microsoft udostępnia informacje dotyczące sposobów kontaktowania się z innymi firmami, aby ułatwić uzyskanie niezbędnej pomocy technicznej. Informacje te mogą zostać zmienione bez powiadomienia. Firma Microsoft nie gwarantuje dokładności tych informacji kontaktowych innych firm.

Przyczyna i rozwiązanie 10

Ten problem występuje, gdy brakuje plików w lokalnym folderze Crystal. Aby rozwiązać ten problem w systemie Microsoft Solomon 5.5 i we wcześniejszych wersjach programu Microsoft Solomon, określ liczbę plików w lokalnym folderze Crystal, a następnie zastąp folder, jeśli jest to konieczne. Aby tego dokonać, wykonaj następujące kroki:

  1. Użyj Eksploratora Windows lub mojego komputera, aby zlokalizować lokalny folder Winnt lub lokalny folder systemu Windows.
  2. Kliknij prawym przyciskiem myszy folder Crystal, a następnie wybierz pozycję Właściwości.
  3. Zanotuj liczbę plików w tym folderze. W przypadku programu Microsoft Solomon 5.5, jeśli folder zawiera mniej niż 129 plików, zmień nazwę lub usuń folder Crystal.
  4. Na serwerze znajdź folder instalacyjny Salomona.
  5. Otwórz folder Wrkstn\Windows, a następnie skopiuj folder Crystal do lokalnego folderu Winnt lub Windows.

Uwaga

  • Ta rezolucja ma zastosowanie tylko do microsoft solomon 5.5 i wcześniejszych wersji firmy Microsoft Solomon.
  • Jeśli błąd będzie się powtarzać, zobacz sekcję Przyczyna i rozwiązanie 7 .

Więcej informacji

Produkty innych firm omówione w tym artykule są wytwarzane przez producentów niezależnych od firmy Microsoft. Firma Microsoft nie udziela żadnych gwarancji, dorozumianych ani żadnego innego rodzaju, w odniesieniu do wydajności lub niezawodności tych produktów.