Perussummaa ei lasketa koko ALV-tapahtumalle mallissa 320, kun suoritat ALV-ilmoitusraportin Microsoft Dynamics NAV 2009 Service Pack 1:n espanjankielisessä versiossa

Käytetään kohteeseen
Dynamics NAV 2009 Service Pack 1

Tämä artikkeli koskee Microsoft Dynamics NAV -ohjelmaa espanjan kielikielellä( es).

Ongelman ilmenemistapa

Kun suoritat ALV-lausekeraportin Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) -version espanjankielisessä versiossa, perussummaa ei lasketa koko ALV-tapahtumalle mallissa 320.

Ratkaisu

Hotfix-tiedot

Tuettu hotfix-korjaus on nyt saatavilla Microsoftilta. Sen tarkoituksena on kuitenkin korjata vain tässä artikkelissa kuvattu ongelma. Käytä sitä vain järjestelmissä, joissa on tämä ongelma. Tämä hotfix-korjaus voi saada lisätestejä. Jos ongelma ei siis vaikuta sinuun vakavasti, suosittelemme odottamaan seuraavaa Microsoft Dynamics NAV 2009 Service Pack -pakettia tai seuraavaa Microsoft Dynamics NAV -versiota, joka sisältää tämän hotfix-korjauksen.

Huomautus Erityistapauksissa tukipuheluista tavallisesti aiheutuvat maksut voidaan peruuttaa, jos Microsoft Dynamicsin ja siihen liittyvien tuotteiden teknisen tuen asiantuntija määrittää, että tietty päivitys ratkaisee ongelmasi. Tavanomaiset tukikustannukset koskevat muita tukikysymyksiä ja -ongelmia, jotka eivät ole oikeutettuja kyseiseen päivitykseen.

          

Asennustiedot

Microsoft tarjoaa ohjelmointiesimerkkejä vain havainnollistamista varten ilman ilmaistua tai oletettua takuuta. Tämä sisältää muun muassa oletetut takuut soveltuvuudesta kaupankäynnin kohteeksi tai sopivuudesta tiettyyn tarkoitukseen. Tässä artikkelissa oletetaan, että tunnet ohjelmointikielen, jota esitellään, sekä työkalut, joita käytetään toimintosarjojen luomiseen ja virheenkorjaukseen. Microsoftin tukihenkilöt voivat auttaa selittämään tietyn menettelyn toiminnallisuuden, mutta he eivät muokkaa näitä esimerkkejä niin, että ne tarjoaisivat lisätoimintoja tai laativat menetelmiä erityisvaatimusten täyttämiseksi.

Huomautus Varmista ennen tämän hotfix-korjauksen asentamista, että kaikki Microsoft Navision -asiakasohjelman käyttäjät ovat kirjautuneet ulos järjestelmästä. Tämä koskee myös Microsoft Navision Application Services (NAS) -asiakaskäyttäjiä. Sinun pitäisi olla ainoa asiakaskäyttäjä, joka on kirjautunut sisään, kun otat tämän hotfix-korjauksen käyttöön.

Jotta voit ottaa tämän hotfix-korjauksen käyttöön, sinulla on oltava kehittäjän käyttöoikeus.

Suosittelemme, että käyttäjätilille, joka on Windowsin kirjautumisikkunassa tai Tietokannan kirjautumiset -ikkunassa, määritetään "SUPER"-roolitunnus. Jos käyttäjätilille ei voi määrittää "SUPER"-roolitunnusta, sinun on varmistettava, että käyttäjätilillä on seuraavat käyttöoikeudet:

  • Muutettavan objektin Muokkaa-käyttöoikeus.
  • System Object ID 5210 -objektin ja System Object ID 9015 -objektin Suoritus-oikeus.

                
Huomautus Sinulla ei tarvitse olla oikeuksia tietosäilöihin, ellei sinun tarvitse korjata tietoja.

Koodin muutokset

Huomautus Testaa koodikorjaukset aina valvotussa ympäristössä, ennen kuin otat korjaukset käyttöön tuotantotietokoneissasi.
Voit ratkaista tämän ongelman seuraavasti:

  1. Muuta CALCLineTotal2C-funktion koodia ALV-lausekeraportissa (12) seuraavasti:
    Aiemmin luotu koodi

    ...
                  IF VATStmtLine2."Amount Type" = VATStmtLine2."Amount Type"::"Amount+Base" THEN BEGIN
                    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
                    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    
    // Delete the following line.
                     Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
                  END;
                  CalculateTotalAmount(VATStmtLine2);
                END;
    ...
    
    

    Korvaava koodi

    ...
                  IF VATStmtLine2."Amount Type" = VATStmtLine2."Amount Type"::"Amount+Base" THEN BEGIN
                    VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
                    Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    
    // Add the following lines.
                    IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
                       Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
                         CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr))
                     ELSE
                       Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    // End of the lines.
    
                  END;
                  CalculateTotalAmount(VATStmtLine2);
                END;
    ...
    
    
  2. Muuta CALCLineTotal-funktion koodia ALV-lausekeraportissa (12) seuraavasti:
    Olemassa oleva koodi 1

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,Amount,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                      END;
                    VATStmtLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Korvaava koodi 1

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,Amount,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
    // Add the following lines.
                         IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
                           Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
                             CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr));
                           Amount := Amount + Base;
                         END;
    // End of the lines.
    
                      END;
                    VATStmtLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Nykyinen koodi 2

    ...
                      END;
                   VATStmtLine2."Amount Type"::"Amount+Base":
                     BEGIN
    
    // Delete the following lines.
                       VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
                       IF VATPostSetup.GET(VATEntry."VAT Bus. Posting Group",VATEntry."VAT Prod. Posting Group") THEN BEGIN
                         IF VATPostSetup."VAT+EC %" <> 0 THEN BEGIN
                           VATAmount := (VATEntry.Amount / VATPostSetup."VAT+EC %") * VATEntry."VAT %";
                           VATAmountAC := (VATEntry."Additional-Currency Amount" / VATPostSetup."VAT+EC %")* VATEntry."VAT %";
                          END;
                          Amount := ConditionalAdd(0,VATAmount,VATAmountAC);
                      END;
                       Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                       Amount := Amount + Base;
    // End of the lines.
    
                    END;
    
                  END;
    ...
    
    

    Korvaava koodi 2

    ...
                      END;
                   VATStmtLine2."Amount Type"::"Amount+Base":
                     BEGIN
    
    // Add the following lines.
                        VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
                        IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
                          Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
                            CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr))
                        ELSE
                          Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                        Amount := Amount + Base;
    // End of the lines.
    
                    END;
    
                  END;
    ...
    
    

    Olemassa oleva koodi 3

    ...
                       BEGIN
                        VATEntry.CALCSUMS(Base,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                      END;
                    VATStmtLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Korvaava koodi 3

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
    // Add the following lines.
                         IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
                           Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,UseAmtsInAddCurr),
                             CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",UseAmtsInAddCurr));
                           Amount := Amount + Base;
                         END;
    // End of the lines.
    
                      END;
                    VATStmtLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Olemassa oleva koodi 4

    ...
                      END;
                   VATStmtLine2."Amount Type"::"Amount+Base":
                     BEGIN
    
    // Delete the following lines.
                       VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
                       IF VATPostSetup.GET(VATEntry."VAT Bus. Posting Group",VATEntry."VAT Prod. Posting Group") THEN BEGIN
                         IF VATPostSetup."VAT+EC %" <> 0 THEN BEGIN
                           VATAmount := (VATEntry.Amount / VATPostSetup."VAT+EC %") * VATEntry."EC %";
                           VATAmountAC := (VATEntry."Additional-Currency Amount" / VATPostSetup."VAT+EC %")* VATEntry."EC %";
                         END;
                         Amount := ConditionalAdd(0,VATAmount,VATAmountAC);
                       END;
                       Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                       Amount := Amount + Base;
                     END;
    // End of the lines.
    
                  END;
    ...
    
    

    Korvaava koodi 4

    ...
                      END;
                   VATStmtLine2."Amount Type"::"Amount+Base":
                     BEGIN
    
    // Add the following lines.
                        VATEntry.CALCSUMS(Amount,Base,VATEntry."Additional-Currency Amount",VATEntry."Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
                        IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
                          Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,FALSE),
                            CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",FALSE))
                        ELSE
                          Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                        Amount := Amount + Base;
                      END
    // End of the lines.
    
                  END;
    ...
    
    
  3. Muuta Telemaattisen ALV-määrittelyraportin (10715) Ominaisuuksien koodi seuraavasti:
    Aiemmin luotu koodi

    ...
                          Header := Text1100000
                        ELSE
                          Header := Text1100001 + "VAT Declaration Line".GETFILTER("Date Filter");
                      END;
    
          OnPostReport=BEGIN
    ...
    
    

    Korvaava koodi

    ...
                          Header := Text1100000
                        ELSE
                          Header := Text1100001 + "VAT Declaration Line".GETFILTER("Date Filter");
    
    // Add the following lines.
                         GLSetup.GET;
                         IF PrintAmtInAddCurr THEN
                           Currency.GET(GLSetup."Additional Reporting Currency");
    // End of the lines.
    
                      END;
    
          OnPostReport=BEGIN
    ...
    
    
  4. Lisää yleinen muuttuja Telematic VAT Declaration -raporttiin (10715) ja määritä muuttuja seuraavasti:

    • Nimi:Valuutta
    • DataType:Record
  5. Muuta Telemaattisen ALV-määrittelyraportin (10715) CalcTotLine-funktion koodia seuraavasti:
    Olemassa oleva koodi 1

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                      END;
                    VATStatementLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Korvaava koodi 1

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
    // Add the following lines.
                          IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
                            Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
                              CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr));
                            Amount := Amount + Base;
                          END;
    // End of the lines.
    
                      END;
                    VATStatementLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Nykyinen koodi 2

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    
    // Delete the following line.
                         Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
                      END;
                  END;
                  CalcTotAmount(VATStatementLine2,TotalAmount);
    ...
    
    

    Korvaava koodi 2

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    
    // Add the following lines.
                          IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
                            Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
                              CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr))
                          ELSE
                            Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                          Amount := Amount + Base;
    // End of the lines.
    
                      END;
                  END;
                  CalcTotAmount(VATStatementLine2,TotalAmount);
    ...
    
    

    Olemassa oleva koodi 3

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                      END;
                    VATStatementLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Korvaava koodi 3

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Base,"Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
    // Add the following lines.
                          IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN BEGIN
                            Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
                              CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr));
                            Amount := Amount + Base;
                          END;
    // End of the lines.
    
                      END;
                    VATStatementLine2."Amount Type"::"Unrealized Amount":
                      BEGIN
    ...
    
    

    Olemassa oleva koodi 4

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    
    // Delete the following line.
                         Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
    
                      END;
                  END;
                  CalcTotAmount(VATStatementLine2,TotalAmount);
    ...
    
    

    Korvaava koodi 4

    ...
                      BEGIN
                        VATEntry.CALCSUMS(Amount,Base,"Additional-Currency Amount","Additional-Currency Base");
                        Amount := ConditionalAdd(0,VATEntry.Amount,VATEntry."Additional-Currency Amount");
    
    // Add the following lines.
                          IF VATEntry."VAT Calculation Type" = VATEntry."VAT Calculation Type"::"Full VAT" THEN
                            Base := ConditionalAdd(0,CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry.Amount,PrintAmtInAddCurr),
                              CalcTotalVATBase(VATEntry."VAT %",VATEntry."EC %",VATEntry."Additional-Currency Amount",PrintAmtInAddCurr))
                          ELSE
                            Base := ConditionalAdd(0,VATEntry.Base,VATEntry."Additional-Currency Base");
                          Amount := Amount + Base;
    // End of the lines.
    
                      END;
                  END;
                  CalcTotAmount(VATStatementLine2,TotalAmount);
    ...
    
    
  6. Muuta CalcTotalVATBase-funktion koodia Telematic VAT Declaration -raportissa (10715) seuraavasti:
    Aiemmin luotu koodi

    ...
            OutFile := Text1100006 + "VAT Declaration Line"."Statement Name" + Text1100007
          END;
    
          BEGIN
          END.
        }
    ...
    
    

    Korvaava koodi

    ...
            OutFile := Text1100006 + "VAT Declaration Line"."Statement Name" + Text1100007
          END;
    
    // Add the following lines. 
            PROCEDURE CalcTotalVATBase@1100000(VAT@1100000 : Decimal;EC@1100001 : Decimal;VATAmount@1100002 : Decimal;UseAddCurr@1100003 : Boolean) VATBase : Decimal;
            BEGIN
              IF (VAT + EC) = 0 THEN
                EXIT;
              IF UseAddCurr THEN
                EXIT(ROUND(100 * VATAmount / (VAT + EC),Currency."Amount Rounding Precision"))
              ELSE
                EXIT(ROUND(100 * VATAmount / (VAT + EC),GLSetup."Amount Rounding Precision"));
            END;
    
    // End of the lines.
    
          BEGIN
          END.
        }
    ...
    
    

Huomautus Ohjausobjekti sijaitsee osan viimeisen kentän vieressä.

Edellytykset

Sinulla on oltava asennettuna Microsoft Dynamics NAV 2009 Service Pack 1:n espanjankielinen versio, jotta voit käyttää tätä hotfix-korjausta.

Poistotiedot

Et voi poistaa tätä hotfix-korjausta.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Huomautus Tämä on FAST PUBLISH -artikkeli, joka on luotu suoraan Microsoftin tukiorganisaatiosta. Tässä annetut tiedot annetaan sellaisenaan vastauksena uusiin ongelmiin. Koska materiaalit ovat nopeasti käytettävissä, ne voivat sisältää typografisia virheitä, ja niitä voidaan muuttaa milloin tahansa ilman ennakkoilmoitusta. Lisätietoja on ohjeaiheessa Käyttöehdot .