Salda w raporcie okresy rozprzestrzeniają się bilans próbny (10026) są niepoprawne, po uruchomieniu raportu, który korzysta z opcji co tydzień w Ameryce Północnej wersji systemu Microsoft Dynamics NAV 2009


Ten artykuł dotyczy systemu Microsoft Dynamics NAV dla następujących krajów i ustawień regionalnych języka.
  • Angielski (Kanada) (en-ca)
  • Angielski (Stany Zjednoczone) (en-us)
  • Hiszpański (Meksyk) (es-mx)
  • Francuski (Kanada) (fr-ca)

Objawy


Załóżmy, że uruchomienie raportu Bilans próbny rozprzestrzeniają się okresów (10026) przecina przez okres w Ameryce Północnej wersji systemu Microsoft Dynamics NAV 2009 zamknięcia roku obrachunkowego. Po uruchomieniu raportu, który używa opcji tygodniowy salda w raporcie są niepoprawne. Wszystkie zapisy zamknięcia są zawarte w tygodniowego okresu, która obejmuje Krzyża nad do nowego roku obrachunkowego nieoczekiwanie.
Uwaga Po uruchomieniu raportu, który używa podziału czasu 1 P lub podział czasu 1m, system wyświetla miesięczne sumy prawidłowo, nawet jeżeli uruchamiasz raport, który przechodzi przez okres zamknięcia roku obrachunkowego.
Ten problem występuje w następujących produktach:
  • Północnoamerykański wersji systemu Microsoft Dynamics NAV 2009 R2
  • Północnoamerykański wersji z dodatkiem Service Pack 1 (SP1) dla systemu Microsoft Dynamics NAV 2009

Rozwiązanie


Informacje o poprawce

Obsługiwana poprawka jest obecnie udostępniana przez firmę Microsoft. Jednak to jest przeznaczona tylko do usunięcia problemu opisanego w tym artykule. Zastosuj ją tylko w systemach, w których występuje ten problem. Ta poprawka może być wciąż w fazie testowania. Jeśli dany system nie jest poważnie narażony na ten problem, firma Microsoft zaleca, aby poczekać na następny dodatek service pack dla systemu Microsoft Dynamics NAV lub następną wersję systemu Microsoft Dynamics NAV, zawierający tę poprawkę.

Uwaga W wyjątkowych przypadkach opłaty, telefonujący do pomocy technicznej mogą zostać anulowane, jeśli pomocy technicznej dla systemu Microsoft Dynamics i produktów powiązanych Określa, że określonej aktualizacji, można rozwiązać swój problem. Koszty obsługi zwykłych zastosuje się do dodatkowych pytań i problemów, których nie można rozwiązać przy użyciu określonej aktualizacji.


Informacje dotyczące instalacji

Firma Microsoft podaje przykłady programowania wyłącznie, bez jakichkolwiek gwarancji wyrażonych wprost lub domyślnie. To obejmuje, ale nie jest ograniczona, ustawowej rękojmi co do przydatności handlowej lub przydatności do określonego celu. W tym artykule założono, że użytkownik zna demonstrowany język programowania oraz narzędzia, które są używane do tworzenia i debugowania procedur. Wykwalifikowani pracownicy pomocy technicznej firmy Microsoft mogą pomóc w wyjaśnieniu, jak działa określona procedura, ale nie będą modyfikować tych przykładów ani dodawać funkcjonalności i konstruować procedur w celu zaspokojenia określonych potrzeb użytkownika.

Uwaga Przed zainstalowaniem tej poprawki należy zweryfikować, że wszyscy użytkownicy klienta Microsoft Navision są wylogowani systemu. Dotyczy to również użytkowników klienta Microsoft Navision Application Services (NAS). Powinny być użytkownika klienta, który jest zalogowany w momencie wdrożyć tę poprawkę.

Aby wdrożyć tę poprawkę, musi mieć licencję deweloperską.

Firma Microsoft zaleca, aby do konta użytkownika w oknie identyfikatorów logowania systemu Windows lub w oknie identyfikatorów logowania bazy danych być przypisany identyfikator roli "SUPER". Jeśli konto użytkownika nie można przypisać Identyfikatora roli "SUPER", należy sprawdzić, czy konto użytkownika ma następujące uprawnienia:
  • Uprawnienie Modyfikacja dla obiektu, który będzie zmieniany.
  • Uprawnienie Execute obiektu 5210 identyfikator obiektu systemu i dla obiektu 9015 identyfikator obiektu systemu .


Uwaga Nie trzeba mieć prawa do magazynów danych, chyba że konieczne jest przeprowadzenie naprawy danych.

Zmiany kodu

Uwaga Zawsze test poprawki kodu w kontrolowanym środowisku przed zastosowaniem poprawki na komputerach produkcyjnych.
Aby rozwiązać ten problem, wykonaj następujące kroki:
  1. Dodać zmienną globalną w bilans próbny, raport rozprzestrzeniają się okresów (10026), a następnie określ zmienną w następujący sposób:
    • Nazwa: CloDate
    • Typ danych: Data
  2. Zmień kod w wyzwalaczu raportów - OnPreReport w zestawieniu obrotów i sald, raport rozprzestrzeniają się okresów (10026) w następujący sposób:
    Istniejący kod
    ...CompanyInformation.GET;
    { set up the date ranges }
    FromDate := "G/L Account".GETRANGEMIN("Date Filter");
    ToDate := "G/L Account".GETRANGEMAX("Date Filter");
    PriorFromDate := CALCDATE('<-1Y>',FromDate);
    PriorToDate := CALCDATE('<-1Y>',ToDate);
    IF NOT PrintToExcel THEN
    "G/L Account".SETRANGE("Date Filter"); // since these are in the titles, they
    GLAccountFilter := "G/L Account".GETFILTERS; // do not have to be in the filter string
    ...
    Kod zastępczy
    ...CompanyInformation.GET;
    { set up the date ranges }
    FromDate := "G/L Account".GETRANGEMIN("Date Filter");
    ToDate := "G/L Account".GETRANGEMAX("Date Filter");
    PriorFromDate := CALCDATE('<-1Y>',FromDate);
    PriorToDate := CALCDATE('<-1Y>',ToDate);

    // Add the following line.
    CloDate := FindClosingDate(ToDate);

    IF NOT PrintToExcel THEN
    "G/L Account".SETRANGE("Date Filter"); // since these are in the titles, they
    GLAccountFilter := "G/L Account".GETFILTERS; // do not have to be in the filter string
    ...
  3. Zmień kod w wyzwalaczu Konta K/G - OnAfterGetRecord w DataItem1 - < konto K/G > w zestawieniu obrotów i sald, raport rozprzestrzeniają się okresów (10026) w następujący sposób:
    Istniejący kod
    ...THEN BEGIN
    FOR i := 1 TO MaxColumns DO
    IF (ColumnFilter[i] <> '') THEN BEGIN

    // Delete the following line.
    SETFILTER("Date Filter",ColumnFilter[i]);

    CASE AmountType OF
    AmountType::"Actual Change":
    IF UseAddRptCurr THEN BEGIN
    CALCFIELDS("Additional-Currency Net Change");
    ...
    Kod zastępczy
    ...THEN BEGIN
    FOR i := 1 TO MaxColumns DO
    IF (ColumnFilter[i] <> '') THEN BEGIN

    // Add the following lines.
    IF CloDate = 0D THEN
    SETFILTER("Date Filter",ColumnFilter[i])
    ELSE
    SETFILTER("Date Filter",STRSUBSTNO('%1&<>%2',ColumnFilter[i],CloDate));
    // End of the lines.

    CASE AmountType OF
    AmountType::"Actual Change":
    IF UseAddRptCurr THEN BEGIN
    CALCFIELDS("Additional-Currency Net Change");
    ...
  4. Dodaj nową funkcję w zestawieniu obrotów i sald, raport rozprzestrzeniają się okresów (10026) w następujący sposób:
    NEW LOCAL PROCEDURE:FindClosingDate@1020000(ToDate@1020000 : Date) : Date;
    VAR
    AccountingPeriod@1020001 : Record 50;

    AccountingPeriod.SETFILTER("Starting Date",'..%1',ToDate);
    AccountingPeriod.SETRANGE(Closed,FALSE);
    AccountingPeriod.SETRANGE("New Fiscal Year",TRUE);
    IF AccountingPeriod.FINDLAST THEN
    EXIT(CLOSINGDATE(CALCDATE('-1D',AccountingPeriod."Starting Date")))
    ELSE
    EXIT(0D);

Wymagania wstępne

Musi mieć jedną z następujących produktów, w celu zastosowania tej poprawki:
  • Północnoamerykański wersji systemu Microsoft Dynamics NAV 2009 R2
  • Północnoamerykański wersji dodatku Service Pack 1 dla systemu Microsoft Dynamics NAV 2009

Informacje dotyczące usuwania

Nie można usunąć tej poprawki.

Stan


Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji „Dotyczy”.
Uwaga Jest to artykuł " szybkiej publikacji" tworzony bezpośrednio przez organizację pomocy technicznej firmy Microsoft. Informacje zawarte w niniejszym dokumencie są dostarczane jako odpowiedź na pojawiające się problemy. W wyniku przyspieszonego udostępnienia, materiały te mogą zawierać błędy typograficzne i mogą być zmieniane w dowolnym czasie bez uprzedzenia. Zobacz Warunki użytkowania w celu uzyskania innych informacji.