Šablona: CPR – Šablona pro opravu kódu aplikace Navision

Chyba č: 204168 (Údržba obsahu)

Tento článek popisuje problém, kdy předloží orgánům soubor seznamu prodejů Evropské unie (EU). Pokud název společnosti obsahuje speciální znaky, zobrazí se následující chybová zpráva:

Ne všechny znaky vybraného souboru odpovídat zjištěné kódové stránce ISO-8859: umístění souborů: 19 hodnota: 0xE9.

Postupujte podle pokynů změny kódu sekce Chcete-li vyřešit tento problém. K tomuto problému dochází v následujících produktů:

  • Německé verze Microsoft Dynamics NAV 2009 R2

  • Německé verze Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

Řešení

Informace o opravě hotfix

Podporovaná oprava hotfix je nyní k dispozici od společnosti Microsoft. Však je určena pouze k odstranění problému popsaného v tomto článku. Použijte ji pouze u systémů, ve kterých dochází k tomuto konkrétnímu problému. Tato oprava hotfix může být dále testována. Proto pokud jste závažně tento problém, doporučujeme počkat na další aktualizaci service pack produktu Microsoft Dynamics NAV 2009 nebo další verze produktu Microsoft Dynamics NAV, která obsahuje tuto opravu hotfix.

Poznámka: Ve zvláštních případech poplatky, které jsou třeba obvykle zaplatit za telefonní hovory mohou být stornovány, jestliže pracovník technické podpory společnosti Microsoft Dynamics a souvisejících produktů Určuje, že konkrétní aktualizace odstraní váš problém. Výdaje na technickou podporu použije dalších otázek a problémů, které nelze vyřešit konkrétní aktualizací.

Pokud není tato oprava hotfix k volnému stahování (tj. v článku není uvedena veřejná adresa URL opravy hotfix), vyžaduje její distribuce technickým vedoucím, členem týmu a vedoucím přičemž následující předpoklady:

  • Opravu hotfix mohou získat zákazníci se vyskytla chyba, která je uvedena v části "Příznaky".

  • Musí sledovat zákazníci Chcete-li odeslat a dodat v další aktualizaci service Pack, až bude k dispozici (Pokud bude vydána aktualizace service pack).

Tato oprava hotfix Microsoft Dynamics NAV Service Pack není plánováno.

Informace o instalaci

Společnost Microsoft poskytuje ukázky programování pouze pro ilustraci bez žádné záruky výslovně uvedené nebo odvozené. To zahrnuje, ale není omezen pouze na předpokládané záruky obchodovatelnosti nebo vhodnosti pro určitý účel. Tento článek předpokládá, že jste obeznámeni s programovacím jazykem, který je předmětem ukázky a s nástroji, které slouží k vytvoření a ladění skriptu. Pracovníci podpory společnosti Microsoft mohou vysvětlit funkce určitého postupu. Nemohou však následující příklady rozšířit o další funkce nebo konstrukce podle konkrétních požadavků.

Poznámka: Před instalací této opravy hotfix ověřte, že všichni uživatelé klienta Microsoft Dynamics NAV odhlášeni systému. To zahrnuje služby Microsoft Dynamics NAV Application Server (NAS). Je třeba klienta pouze uživatel přihlášený při implementaci opravy hotfix.

Chcete-li implementovat tuto opravu hotfix, musí mít licenci vývojáře.

Doporučujeme, aby uživatelský účet v okně přihlášení systému Windows nebo v okně přihlášení databáze přidělí "SUPER" ID role. Pokud uživatelský účet nelze přiřadit ID role "SUPER", musíte ověřit, že uživatelský účet má následující oprávnění:

  • Změnit oprávnění pro objekt, který budete měnit.

  • Oprávnění ke spuštění pro System Object ID 5210 objekt a System Object ID 9015

    objektu.

Poznámka: Nemáte práva k úložištím dat. Pokud nebudete provádět opravu dat.

Změny kódu

Poznámka: Vždy otestujte opravy kódu v kontrolovaném prostředí před instalací opravy v provozních počítačích.

Chcete-li vyřešit tento problém, postupujte takto:

  1. Změňte kód ve funkci FillCompanyInfo v tabulce záhlaví sestavy DPH (740) takto:
    Existující kód 1

    ...PROCEDURE FillCompanyInfo@1140002();
    VAR
    CompanyInfo@1140000 : Record 79;
    CountryRegion@1140001 : Record 9;

    // Delete the following lines.
    BEGIN
    CompanyInfo.GET;
    // End of the deleted lines.

    CompanyInfo.TESTFIELD("Country/Region Code");

    CountryRegion.GET(CompanyInfo."Country/Region Code");
    ...

    Změněný kód 1

    ...PROCEDURE FillCompanyInfo@1140002();
    VAR
    CompanyInfo@1140000 : Record 79;
    CountryRegion@1140001 : Record 9;

    // Adding the following lines.
    VATReportSetup@1140002 : Record 743;
    BEGIN
    CompanyInfo.GET;
    VATReportSetup.GET;
    // End of the added lines.

    CompanyInfo.TESTFIELD("Country/Region Code");

    CountryRegion.GET(CompanyInfo."Country/Region Code");
    ...

    Existující kód 2

    ...CountryRegion.GET(CompanyInfo."Country/Region Code");

    VALIDATE("VAT Registration No.",CompanyInfo."VAT Registration No.");

    // Deleting the following lines.
    VALIDATE("Company Name",CompanyInfo.Name);
    VALIDATE("Company Address",CompanyInfo.Address);
    VALIDATE("Country/Region Name",CountryRegion.Name);
    VALIDATE(City,CompanyInfo.City);
    // End of the deleted lines.

    VALIDATE("Post Code",CompanyInfo."Post Code");
    VALIDATE("Tax Office ID",CompanyInfo."Tax Office Number");
    END;
    ...

    Náhradní kód 2

    ...CountryRegion.GET(CompanyInfo."Country/Region Code");

    VALIDATE("VAT Registration No.",CompanyInfo."VAT Registration No.");

    // Adding the following lines.
    VALIDATE("Company Name",GetCompanyName(CompanyInfo,VATReportSetup));
    VALIDATE("Company Address",GetCompanyAddress(CompanyInfo,VATReportSetup));
    VALIDATE("Country/Region Name",CountryRegion.Name);
    VALIDATE(City,GetCompanyCity(CompanyInfo,VATReportSetup));
    // End of the added lines.

    VALIDATE("Post Code",CompanyInfo."Post Code");
    VALIDATE("Tax Office ID",CompanyInfo."Tax Office Number");
    END;
    ...
  2. Změňte kód ve funkci GetCompanyName v tabulce záhlaví sestavy DPH (740) takto:
    Existující kód

    ...TESTFIELD(Status,Status::Submitted);
    END;
    END;

    BEGIN
    END.
    }
    }
    ...

    Změněný kód

    ...TESTFIELD(Status,Status::Submitted);
    END;
    END;

    // Adding the following lines.
    LOCAL PROCEDURE GetCompanyName@1140004(CompanyInformation@1140001 : Record 79;VATReportSetup@1140000 : Record 743) : Text[100];
    BEGIN
    IF VATReportSetup."Company Name" <> '' THEN
    EXIT(VATReportSetup."Company Name");

    EXIT(CompanyInformation.Name);
    END;

    LOCAL PROCEDURE GetCompanyAddress@1140005(CompanyInformation@1140001 : Record 79;VATReportSetup@1140000 : Record 743) : Text[30];
    BEGIN
    IF VATReportSetup."Company Address" <> '' THEN
    EXIT(VATReportSetup."Company Address");

    EXIT(CompanyInformation.Address);
    END;

    LOCAL PROCEDURE GetCompanyCity@1140006(CompanyInformation@1140001 : Record 79;VATReportSetup@1140000 : Record 743) : Text[30];
    BEGIN
    IF VATReportSetup."Company City" <> '' THEN
    EXIT(VATReportSetup."Company City");

    EXIT(CompanyInformation.City);
    END;
    // End of the adding lines.

    BEGIN
    END.
    }
    }
    ...
  3. Změňte kód do polí v tabulce nastavení sestavy DPH (743) takto:
    Existující kód

    ...{ 11004;  ;Registration ID     ;Text6         ;CaptionML=[DEU=Registrierungs-ID;
    ENU=Registration ID] }
    { 11005; ;Export Cancellation Lines;Boolean ;CaptionML=[DEU=Stornozeilen exportieren;
    ENU=Export Cancellation Lines] }
    }
    KEYS
    {
    { ;Primary key ;Clustered=Yes }
    ...

    Změněný kód

    ...{ 11004;  ;Registration ID     ;Text6         ;CaptionML=[DEU=Registrierungs-ID;
    ENU=Registration ID] }
    { 11005; ;Export Cancellation Lines;Boolean ;CaptionML=[DEU=Stornozeilen exportieren;
    ENU=Export Cancellation Lines] }

    // Adding the following lines.
    { 11006; ;Company Name ;Text100 }
    { 11007; ;Company Address ;Text30 }
    { 11008; ;Company City ;Text30 }
    // End of the added lines.

    }
    KEYS
    {
    { ;Primary key ;Clustered=Yes }
    ...
  4. Změňte kód v dialogovém okně Vlastnosti ve formuláři nastavení sestavy DPH (743) takto:
    Existující kód

    ...}
    PROPERTIES
    {
    Width=11990;

    // Delete the following line.
    Height=6490;
    // End of the deleted line.

    CaptionML=[DEU=MwSt.-Berichtseinrichtung;
    ENU=VAT Report Setup];
    InsertAllowed=No;
    DeleteAllowed=No;
    ...

    Změněný kód

    ...}
    PROPERTIES
    {
    Width=11990;

    // Add the following line.
    Height=8690;
    // End of the added line.

    CaptionML=[DEU=MwSt.-Berichtseinrichtung;
    ENU=VAT Report Setup];
    InsertAllowed=No;
    DeleteAllowed=No;
    ...
  5. Změňte kód v ovládacích prvcích ve formuláři nastavení sestavy DPH (743) takto:
    Existující kód 1

    ...}
    CONTROLS
    {

    // Deleting the following line.
    { 1 ;TabControl ;220 ;220 ;11550;5280 ;HorzGlue=Both;
    // End of the deleted line.

    VertGlue=Both;
    PageNamesML=[DEU=Allgemein,Nummerierung;
    ENU=General,Numbering] }
    { 4 ;CheckBox ;3850 ;990 ;440 ;440 ;ParentControl=1;
    ...

    Změněný kód 1

    ...}
    CONTROLS
    {

    // Adding the following line.
    { 1 ;TabControl ;220 ;220 ;11550;7480 ;HorzGlue=Both;
    // End of the added line.

    VertGlue=Both;
    PageNamesML=[DEU=Allgemein,Nummerierung;
    ENU=General,Numbering] }
    { 4 ;CheckBox ;3850 ;990 ;440 ;440 ;ParentControl=1;
    ...

    Existující kód 2

    ...InPage=0;
    ShowCaption=No;
    SourceExpr="Export Cancellation Lines" }
    { 1140013;Label ;440 ;4840 ;3300 ;440 ;ParentControl=1140012 }
    { 7 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=1;
    InPage=1;
    SourceExpr="No. Series" }
    { 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }
    ...

    Náhradní kód 2

    ...InPage=0;
    ShowCaption=No;
    SourceExpr="Export Cancellation Lines" }
    { 1140013;Label ;440 ;4840 ;3300 ;440 ;ParentControl=1140012 }

    // Adding the following lines.
    { 1140015;TextBox ;3850 ;5390 ;2750 ;440 ;Name=Company Name;
    ParentControl=1;
    InPage=0;
    SourceExpr="Company Name" }
    { 1140014;Label ;440 ;5390 ;3300 ;440 ;ParentControl=1140015 }
    { 1140017;TextBox ;3850 ;5940 ;2750 ;440 ;ParentControl=1;
    InPage=0;
    SourceExpr="Company Address" }
    { 1140016;Label ;440 ;5940 ;3300 ;440 ;ParentControl=1140017 }
    { 1140019;TextBox ;3850 ;6490 ;2750 ;440 ;ParentControl=1;
    InPage=0;
    SourceExpr="Company City" }
    { 1140018;Label ;440 ;6490 ;3300 ;440 ;ParentControl=1140019 }
    // End of the added lines.

    { 7 ;TextBox ;3850 ;990 ;2750 ;440 ;ParentControl=1;
    InPage=1;
    SourceExpr="No. Series" }
    { 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }
    ...

    Existující kód 3

    ...{ 7   ;TextBox      ;3850 ;990  ;2750 ;440  ;ParentControl=1;
    InPage=1;
    SourceExpr="No. Series" }
    { 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }

    // Deleting the following line.
    { 6 ;CommandButton;9570 ;5720 ;2200 ;550 ;HorzGlue=Right;
    // End of the deleted line.

    VertGlue=Bottom;
    PushAction=FormHelp }
    }
    CODE
    ...

    Změněný kód 3

    ...{ 7   ;TextBox      ;3850 ;990  ;2750 ;440  ;ParentControl=1;
    InPage=1;
    SourceExpr="No. Series" }
    { 8 ;Label ;440 ;990 ;3300 ;440 ;ParentControl=7 }

    // Adding the following line.
    { 6 ;CommandButton;9570 ;7920 ;2200 ;550 ;HorzGlue=Right;
    // End of the added line.

    VertGlue=Bottom;
    PushAction=FormHelp }
    }
    CODE
    ...
  6. Změna kódu v MakeLineRecord funkce v sestavě Export sestavy VIES (11008) takto:
    Existující kód 1

    ...END;

    PROCEDURE MakeLineRecord@1140004(VATReportHeader@1140001 : Record 740;VATReportLine@1140000 : Record 741);
    BEGIN
    TempDataExportBuffer."Entry No." := NextLineNo;
    TempDataExportBuffer."Field Value" :=
    GetRecordType('1') +
    PADSTR(VATReportHeader."VAT Registration No.",11) +
    ...

    Změněný kód 1

    ...END;

    PROCEDURE MakeLineRecord@1140004(VATReportHeader@1140001 : Record 740;VATReportLine@1140000 : Record 741);
    BEGIN

    // Adding the following lines.
    IF (VATReportLine.Base = 0) AND (VATReportLine."Line Type" <> VATReportLine."Line Type"::Correction) THEN
    EXIT;
    // End of the added lines.

    TempDataExportBuffer."Entry No." := NextLineNo;
    TempDataExportBuffer."Field Value" :=
    GetRecordType('1') +
    PADSTR(VATReportHeader."VAT Registration No.",11) +
    ...

    Existující kód 2

    ...TempDataExportBuffer."Entry No." := NextLineNo;
    TempDataExportBuffer."Field Value" :=
    GetRecordType('1') +
    PADSTR(VATReportHeader."VAT Registration No.",11) +

    // Deleting the following line.
    GetReportType(VATReportLine) +
    // End of the deleted line.

    GetReportPeriod(VATReportHeader) +
    PADSTR(VATReportLine.GetVATRegNo,14) +
    FormatBaseForExport(VATReportLine,12) +
    GetTurnoverType(VATReportLine) +
    ...

    Náhradní kód 2

    ...TempDataExportBuffer."Entry No." := NextLineNo;
    TempDataExportBuffer."Field Value" :=
    GetRecordType('1') +
    PADSTR(VATReportHeader."VAT Registration No.",11) +

    // Adding the following line.
    GetReportType(VATReportLine,VATReportHeader) +
    // End of the added line.

    GetReportPeriod(VATReportHeader) +
    PADSTR(VATReportLine.GetVATRegNo,14) +
    FormatBaseForExport(VATReportLine,12) +
    GetTurnoverType(VATReportLine) +
    ...
  7. Změna kódu v MakeTotalRecord funkce v sestavě Export sestavy VIES (11008) takto:
    Existující kód

    ...GetRecordType('2') +
    PADSTR(VATReportHeader."VAT Registration No.",11) +
    GetReportPeriod(VATReportHeader) +
    FormatAmountForExport(VATReportHeader."Total Base",14) +

    // Deleting the following line.
    FormatAmountForExport(VATReportHeader."Total Number of Lines",5) +
    // End of the deleted line.

    PADSTR('',85);
    TempDataExportBuffer.INSERT;
    NextLineNo := NextLineNo + 1;
    END;
    ...

    Změněný kód

    ...GetRecordType('2') +
    PADSTR(VATReportHeader."VAT Registration No.",11) +
    GetReportPeriod(VATReportHeader) +
    FormatAmountForExport(VATReportHeader."Total Base",14) +

    // Adding the following lines.
    FormatAmountForExport(
    VATReportHeader."Total Number of Lines" -
    GetZeroBaseNewLineCount(VATReportHeader."No.") +
    GetExportCancellationLineCount(VATReportHeader."No."),5) +
    // End of the added lines.

    PADSTR('',85);
    TempDataExportBuffer.INSERT;
    NextLineNo := NextLineNo + 1;
    END;
    ...
  8. Změna kódu v GetReportType funkce v sestavě Export sestavy VIES (11008) takto:
    Existující kód

    ...BEGIN
    EXIT(RecordType);
    END;

    // Deleting the following lines.
    PROCEDURE GetReportType@1140007(VATReportLine@1140000 : Record 741) : Text[2];
    BEGIN
    // End of the deleted lines.

    CASE VATReportLine."Line Type" OF
    VATReportLine."Line Type"::New:
    EXIT('10');
    VATReportLine."Line Type"::Cancellation,
    ...

    Změněný kód

    ...BEGIN
    EXIT(RecordType);
    END;

    // Adding the following lines.
    PROCEDURE GetReportType@1140007(VATReportLine@1140000 : Record 741;VATReportHeader@1140001 : Record 740) : Text[2];
    BEGIN
    IF VATReportHeader."VAT Report Type" = VATReportHeader."VAT Report Type"::Corrective THEN
    EXIT('11');
    // End of the added lines.

    CASE VATReportLine."Line Type" OF
    VATReportLine."Line Type"::New:
    EXIT('10');
    VATReportLine."Line Type"::Cancellation,
    ...
  9. Změna kódu v GetZeroBaseNewLineCount funkce v sestavě Export sestavy VIES (11008) takto:
    Existující kód

    ...EXIT('p');
    END;

    PROCEDURE FormatDate@1140002(Date@1140000 : Date) : Text[8];
    BEGIN
    EXIT(FORMAT(Date,8,'<Year4><Month,2><Day,2>'));
    END;
    ...

    Změněný kód

    ...EXIT('p');
    END;

    // Adding the following lines.
    LOCAL PROCEDURE GetZeroBaseNewLineCount@1140020(ReportNo@1140001 : Code[20]) : Integer;
    VAR
    VATReportLine@1140000 : Record 741;
    BEGIN
    WITH VATReportLine DO BEGIN
    SETRANGE("VAT Report No.",ReportNo);
    SETRANGE(Base,0);
    SETFILTER("Line Type",'<>%1',"Line Type"::Correction);
    EXIT(COUNT);
    END;
    END;

    LOCAL PROCEDURE GetExportCancellationLineCount@1140021(ReportNo@1140001 : Code[20]) : Integer;
    VAR
    VATReportLine@1140000 : Record 741;
    BEGIN
    IF NOT VATReportSetup."Export Cancellation Lines" THEN
    EXIT(0);

    WITH VATReportLine DO BEGIN
    SETRANGE("VAT Report No.",ReportNo);
    SETRANGE("Line Type","Line Type"::Cancellation);
    EXIT(COUNT);
    END;
    END;
    // End of the added lines.

    PROCEDURE FormatDate@1140002(Date@1140000 : Date) : Text[8];
    BEGIN
    EXIT(FORMAT(Date,8,'<Year4><Month,2><Day,2>'));
    END;
    ...


Předpoklady

Musí mít německou verzi Microsoft Dynamics NAV 2009 R2 nebo aktualizace SP1 nainstalována tuto opravu hotfix.

Informace o odinstalaci

Tato oprava hotfix nelze odebrat.

Stav

Společnost Microsoft potvrdila, že se jedná o problém v produktech společnosti Microsoft, které jsou uvedeny v části "Platí pro".

Odkazy

VSFT DynamicsNAVSE: 352598

Poznámka: Toto je článek "Rychlé publikování" vytvářen přímo v rámci odborné pomoci společnosti Microsoft. Informace obsažené v tomto dokumentu jsou poskytovány tak, jak je v reakci na vznikající problémy. V důsledku rychlosti v jeho zpřístupnění materiály, mohou obsahovat typografické chyby a mohou být upraveny kdykoli bez předchozího upozornění. Viz Podmínky použitípro další aspekty.

Author: avannini 
Writer: v-six
Tech Reviewer: avannini 
Editor:

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou překladu?
Co ovlivnilo váš názor?

Děkujeme za váš názor!

×