See artikkel kehtib microsoft Dynamics NAV itaalia keele (it) lokaadi kohta.
Sümptomid
Kaaluge järgmist stsenaariumi Microsoft Dynamics NAV 2009 R2 ja Microsoft Dynamics NAV 2009 Service Pack 1 (SP1) itaaliakeelses versioonis:
- Loote kauba kohta arve ja määrate kauba koguseks 2.
- Kaubareale saate määrata kaks partiinumbrit dialoogiboksis Kaubajälgimisread .
- Dialoogiboksis Kaubakulu määrangud saate lisada tasuüksuse rea, mis määratakse igale arveldatud kaubale summa alusel.
- Arve konteerimine.
Selle stsenaariumi korral loob süsteem Intrastat-žurnaalis vale summa. Intrastat-töölehe summa sisaldab ootamatult ainult ühe arveldatud kauba tasu.
Lahendus
Kiirparanduse teave
Microsoftilt on nüüd saadaval toetatud kiirparandus. Siiski on see mõeldud ainult selles artiklis kirjeldatud probleemi lahendamiseks. Rakendage see ainult süsteemidele, kus esineb see konkreetne probleem. See kiirparandus võib saada täiendavaid katseid. Seega, kui see probleem ei mõjuta teid tõsiselt, soovitame oodata järgmist Microsoft Dynamics NAV 2009 hoolduspaketti või järgmist Microsoft Dynamics NAV versiooni, mis sisaldab seda kiirparandust.
Märkus. Erijuhtudel võidakse tavaliselt tugiteenuse kõnede eest tehtud tasud tühistada, kui Microsoft Dynamicsi ja seotud toodete tehniline tugitöötaja leiab, et konkreetne värskendus lahendab teie probleemi. Tavapärased toetuskulud kehtivad täiendavatele tugiteenustega seotud küsimustele ja probleemidele, mis ei vasta kõnealuse värskenduse tingimustele.
Installiteave
Microsoft pakub programmeerimise näiteid ainult illustreerimiseks, ilma et garantii oleks väljendatud või kaudselt. See hõlmab kaubastatavuse või kindlaks otstarbeks sobivuse kaudseid garantiisid, kuid mitte ainult. Selles artiklis eeldatakse, et olete tuttav kuvatava programmeerimiskeelega ja tööriistadega, mida kasutatakse protseduuride loomiseks ja silumiseks. Microsofti tugiteenuste insenerid saavad aidata selgitada konkreetse toimingu funktsionaalsust. Kuid need näited ei muuda neid näiteid, et pakkuda teie vajadustele vastavaid lisafunktsioone või koostada protseduure.
Märkus. Enne selle kiirparanduse installimist veenduge, et kõik Microsoft Navisioni klientrakenduse kasutajad oleksid süsteemist välja logitud. See hõlmab ka Microsoft Navision Application Servicesi (NAS) klientkasutajaid. Peaksite olema ainus klientkasutaja, kes on sisse logitud, kui rakendate selle kiirparanduse.
Selle kiirparanduse rakendamiseks peab teil olema arendaja litsents.
Soovitame, et aknas Windowsi sisselogimised või aknas Andmebaasi sisselogimised olevale kasutajakontole määrataks "SUPER" rolli ID. Kui kasutajakontole ei saa superrolli ID-d määrata, peate kontrollima, kas kasutajakontol on järgmised õigused.
- Muudetava objekti muutmisõigus.
- Süsteemiobjekti ID 5210 ja süsteemiobjekti ID 9015 täitmisõigus.
Märkus. Teil pole andmesalvede jaoks õigusi, kui te ei pea tegema andmete parandamist.
Koodi muudatused
Märkus. Enne paranduste rakendamist tööarvutitele testige koodiparandusi alati kontrollitud keskkonnas.
Probleemi lahendamiseks muutke tähist aruandes Kaubaandmiku kannete toomine (594). Selleks tehke järgmist.
Muutke andmeüksuse Number 2 koodi järgmiselt.
Kustutage globaalmuutuja järgmiselt.
Olemasolev kood... SalesShipLine@1130019 : Record 111; ReturnRcptHeader@1130011 : Record 6660; DocItemSum@1130013 : Decimal; CorrectionFound@1130014 : Boolean; ItemCharge@1130015 : Record 5800; // Delete the following line. ValueEntry2@1130016 : Record 5802; IncludeItemCharge@1130017 : Boolean; BEGIN IntrastatJnlLine2.SETRANGE("Source Entry No.","Entry No."); IF IntrastatJnlLine2.FINDFIRST THEN CurrReport.SKIP; ...Asenduskood
... SalesShipLine@1130019 : Record 111; ReturnRcptHeader@1130011 : Record 6660; DocItemSum@1130013 : Decimal; CorrectionFound@1130014 : Boolean; ItemCharge@1130015 : Record 5800; IncludeItemCharge@1130017 : Boolean; BEGIN IntrastatJnlLine2.SETRANGE("Source Entry No.","Entry No."); IF IntrastatJnlLine2.FINDFIRST THEN CurrReport.SKIP; ...Muutke koodi järgmiselt.
Olemasolev kood 1... TotalAmt := 0; DocItemSum := 0; CorrectionFound := FALSE; ValueEntry.SETRANGE("Item Ledger Entry No.","Item Ledger Entry"."Entry No."); // Delete the following lines. ValueEntry2.COPYFILTERS(ValueEntry); ValueEntry2.SETRANGE("Invoiced Quantity",0); // End of the deleted lines. IF ValueEntry.FINDSET(FALSE,FALSE) THEN BEGIN CASE ValueEntry."Item Ledger Entry Type" OF ValueEntry."Item Ledger Entry Type" :: Purchase: BEGIN IF ValueEntry."Invoiced Quantity" > 0 THEN BEGIN ...Asenduskood 1
... TotalAmt := 0; DocItemSum := 0; CorrectionFound := FALSE; ValueEntry.SETRANGE("Item Ledger Entry No.","Item Ledger Entry"."Entry No."); IF ValueEntry.FINDSET(FALSE,FALSE) THEN BEGIN CASE ValueEntry."Item Ledger Entry Type" OF ValueEntry."Item Ledger Entry Type" :: Purchase: BEGIN IF ValueEntry."Invoiced Quantity" > 0 THEN BEGIN ...Olemasolev kood 2
... END; IF IntrastatJnlBatch."Amounts in Add. Currency" THEN TotalAmt := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry."Posting Date",GLSetup."Additional Reporting Currency", TotalAmt,AddCurrencyFactor); // Delete the following lines. ValueEntry2.SETRANGE("Item Ledger Entry Type",ValueEntry."Item Ledger Entry Type"); IF ValueEntry2.FINDSET THEN BEGIN REPEAT IF IntrastatJnlBatch."Amounts in Add. Currency" THEN ValueEntry2."Cost Amount (Actual)" := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry2."Posting Date",GLSetup."Additional Reporting Currency", ValueEntry2."Cost Amount (Actual)",AddCurrencyFactor); TotalAmt := TotalAmt + ValueEntry2."Cost Amount (Actual)"; UNTIL ValueEntry2.NEXT = 0; END; // End of the deleted lines. END; ValueEntry."Item Ledger Entry Type" :: Sale: BEGIN IF ValueEntry."Invoiced Quantity" < 0 THEN BEGIN SalesInvoiceLine.SETRANGE("Document No.",ValueEntry."Document No."); ...Asenduskood 2
... END; IF IntrastatJnlBatch."Amounts in Add. Currency" THEN TotalAmt := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry."Posting Date",GLSetup."Additional Reporting Currency", TotalAmt,AddCurrencyFactor); END; ValueEntry."Item Ledger Entry Type" :: Sale: BEGIN IF ValueEntry."Invoiced Quantity" < 0 THEN BEGIN SalesInvoiceLine.SETRANGE("Document No.",ValueEntry."Document No."); ...Olemasolev kood 3
... IF IntrastatJnlBatch."Amounts in Add. Currency" THEN TotalAmt := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry."Posting Date",GLSetup."Additional Reporting Currency", TotalAmt,AddCurrencyFactor); // Delete the following lines. ValueEntry2.SETRANGE("Item Ledger Entry Type",ValueEntry."Item Ledger Entry Type"); IF ValueEntry2.FINDSET THEN BEGIN REPEAT IF IntrastatJnlBatch."Amounts in Add. Currency" THEN ValueEntry2."Sales Amount (Actual)" := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry2."Posting Date",GLSetup."Additional Reporting Currency", ValueEntry2."Sales Amount (Actual)",AddCurrencyFactor); TotalAmt := TotalAmt - ValueEntry2."Sales Amount (Actual)"; UNTIL ValueEntry2.NEXT = 0; END; // End of the deleted lines. END; ELSE BEGIN TotalInvoicedQty := TotalInvoicedQty + ValueEntry."Invoiced Quantity"; IF NOT IntrastatJnlBatch."Amounts in Add. Currency" THEN TotalAmt := TotalAmt + ValueEntry."Cost Amount (Actual)" ...Asenduskood 3
... END; IF IntrastatJnlBatch."Amounts in Add. Currency" THEN TotalAmt := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry."Posting Date",GLSetup."Additional Reporting Currency", TotalAmt,AddCurrencyFactor); END; ELSE BEGIN TotalInvoicedQty := TotalInvoicedQty + ValueEntry."Invoiced Quantity"; IF NOT IntrastatJnlBatch."Amounts in Add. Currency" THEN TotalAmt := TotalAmt + ValueEntry."Cost Amount (Actual)" ...Olemasolev kood 4
... CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry."Posting Date",GLSetup."Additional Reporting Currency", ValueEntry."Cost Amount (Actual)",AddCurrencyFactor); END; END; END; IF ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Transfer THEN InsertItemJnlLine() ELSE BEGIN ...Asenduskood 4
... CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry."Posting Date",GLSetup."Additional Reporting Currency", ValueEntry."Cost Amount (Actual)",AddCurrencyFactor); END; END; // Add the following line. CalcTotalItemChargeAmt; END; IF ValueEntry."Item Ledger Entry Type" = ValueEntry."Item Ledger Entry Type"::Transfer THEN InsertItemJnlLine() ELSE BEGIN ...
Muutke funktsiooni CalcTotalItemChargeAmt koodi järgmiselt.
Olemasolev kood... IntrastatJnlBatch2.SETRANGE("EU Service",TRUE); IntrastatJnlBatch2.SETRANGE("Corrective Entry",FALSE); IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type); END; BEGIN END. } RDLDATA { ...Asenduskood
... IntrastatJnlBatch2.SETRANGE("EU Service",TRUE); IntrastatJnlBatch2.SETRANGE("Corrective Entry",FALSE); IntrastatJnlBatch2.SETRANGE(Type,IntrastatJnlBatch.Type); END; // Add the following lines. LOCAL PROCEDURE CalcTotalItemChargeAmt@1130002(); VAR ValueEntry2@1130001 : Record 5802; ActualAmount@1130002 : Decimal; BEGIN ValueEntry2.COPYFILTERS(ValueEntry); ValueEntry2.SETRANGE("Invoiced Quantity",0); ValueEntry2.SETRANGE("Item Ledger Entry Type",ValueEntry."Item Ledger Entry Type"); ValueEntry2.SETRANGE("Item Ledger Entry No."); ValueEntry2.SETFILTER("Item Charge No.",'<>%1',''); ValueEntry2.SETRANGE("Document No.",ValueEntry."Document No."); IF ValueEntry2.FINDSET THEN BEGIN REPEAT ActualAmount := GetActualAmount(ValueEntry2); IF IntrastatJnlBatch."Amounts in Add. Currency" THEN ActualAmount := CurrExchRate.ExchangeAmtLCYToFCY( ValueEntry2."Posting Date",GLSetup."Additional Reporting Currency", ActualAmount,AddCurrencyFactor); TotalAmt := TotalAmt + ActualAmount; UNTIL ValueEntry2.NEXT = 0; END; END; LOCAL PROCEDURE GetActualAmount@1130001(ValueEntry2@1170000000 : Record 5802) : Decimal; BEGIN CASE ValueEntry2."Item Ledger Entry Type" OF ValueEntry2."Item Ledger Entry Type"::Sale: EXIT(- ValueEntry2."Sales Amount (Actual)"); ValueEntry2."Item Ledger Entry Type"::Purchase: EXIT(ValueEntry2."Cost Amount (Actual)"); END; END; // End of the added lines. BEGIN END. } RDLDATA { ...
Eeltingimused
Selle kiirparanduse rakendamiseks peab teil olema installitud üks järgmistest toodetest:
- Microsoft Dynamics NAV 2009 R2 itaaliakeelne versioon
- Microsoft Dynamics NAV 2009 Service Pack 1 itaaliakeelne versioon
Eemaldamisteave
Seda kiirparandust ei saa eemaldada.
Olek
Microsoft on kinnitanud, et see on jaotises „Rakenduskoht“ loetletud Microsofti toodete korral esinev probleem.
Märkus. See on otse Microsofti tugiteenuste organisatsioonist loodud FAST PUBLISH-artikkel. Käesolevas artiklis sisalduv teave on esitatud kujul, mis on seotud tekkivate küsimustega. Materjali kättesaadavaks tegemise kiiruse tõttu võivad materjalid sisaldada kirjavigu ja neid võib igal ajal ette teatamata läbi vaadata. Muid kaalutlusi leiate teemast Kasutustingimused .