含む VAT の金額値が正しくない (スイス) のバージョンの Microsoft Dynamics NAV 2009 の開始合計の種類の行と最後の合計の種類の明細行を転記された請求書の最後の合計の種類の行の


この資料は、以下の国と言語のロケールは、Microsoft Dynamics NAV に適用されます。
  • フランス語 (スイス) (fr ch)
  • ドイツ語 (スイス) (gr ch)
  • イタリア語 (スイス) (it ch)

現象


(スイス) のバージョンの Microsoft Dynamics NAV 2009 の開始の合計の種類の行と最後の合計の種類の明細行のある売上請求書を転記すると後を含む VAT の金額値が正しくない転記された請求書の最後の合計の種類の行にします。
この問題は、次の製品で発生します。
  • (スイス) のバージョンの Microsoft Dynamics NAV 2009 の R2
  • (スイス) のバージョンの Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)

解決策


修正プログラムの情報

サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV の service pack または修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。

注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。


インストール情報

マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能を説明することができますが、機能の追加またはお客様固有の要件を満たすようにプロシージャを作成するこれらの例は変更されません。

注: この修正プログラムをインストールする前に、Microsoft Navision のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Navision アプリケーション サービス (NAS) クライアントのユーザーが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。

この修正プログラムを実装するには、開発者用のライセンスが必要です。

ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
  • 変更するオブジェクトの変更のアクセス許可。
  • システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015オブジェクトの実行が許可されます。


注: データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。

コードの変更

注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
  1. 金額を含む VAT の"フォーマット時"トリガーの販売請求書の転記サブフォームのフォーム (133) 内のコードを次のように変更します。
    既存のコード
    ...IF (Type = Type::"End-Total") AND ("Subtotal net" <> 0) THEN BEGIN

    // Delete the following line.
    Text := FORMAT("Subtotal net",0,'<Sign><Integer Thousand><Decimals,3>');

    CurrForm."Amount Including VAT".UPDATEFONTBOLD := TRUE;
    END;
    ...
    置換用コード
    ...IF (Type = Type::"End-Total") AND ("Subtotal net" <> 0) THEN BEGIN

    // Add the following line.
    Text := FORMAT(CalcTotalAmountIncludingVAT("Document No.","Line No."),0,'<Sign><Integer Thousand><Decimals,3>');

    CurrForm."Amount Including VAT".UPDATEFONTBOLD := TRUE;
    END;
    ...
  2. (133)、売上請求書のサブフォームの転記フォームで新しいローカルCalcTotalAmountIncludingVAT関数を作成する関数を作成するのには、これらの手順に従います。
    1. (133)、販売請求書の転記サブフォームのフォーム内のCalcTotalAmountIncludingVAT関数で新しいローカル パラメーターを追加し、次のようにパラメーターを指定します。
      • Var: No
      • : DocumentNo
      • データ型:コード
      • 長さ: 20
    2. (133)、販売請求書の転記サブフォームのフォーム内のCalcTotalAmountIncludingVAT関数で新しいローカル パラメーターを追加し、次のようにパラメーターを指定します。
      • Var: No
      • : EndLineNo
      • データ型:整数
    3. (133)、販売請求書の転記サブフォームのフォーム内のCalcTotalAmountIncludingVAT関数で新しい戻り値を追加し、戻り値を指定し、次のようにします。
      • : AmountIncludingVAT
      • 戻り型: 10 進数
    4. (133)、販売請求書の転記サブフォームのフォーム内のCalcTotalAmountIncludingVAT関数で新しいローカル変数を追加し、次のように変数を指定します。
      • : SalesInvoiceLine
      • データ型:レコード
      • サブタイプ:請求書明細行の販売
    5. (133)、販売請求書の転記サブフォームのフォーム内のCalcTotalAmountIncludingVAT関数で新しいローカル変数を追加し、次のように変数を指定します。
      • 名前:カウント
      • データ型:整数
    6. (133)、販売請求書の転記サブフォームのフォーム内のCalcTotalAmountIncludingVAT関数で新しいローカル変数を追加し、次のように変数を指定します。
      • : BeginLineNo
      • データ型:整数
    7. 販売請求書の転記サブフォームのフォーム (133) 内のCalcTotalAmountIncludingVAT関数では、次の行を追加します。
      PROCEDURE CalcTotalAmountIncludingVAT(DocumentNo : Code[20];EndLineNo : Integer) AmountIncludingVAT : Decimal
      Count := -1;
      BeginLineNo := 0;
      SalesInvoiceLine.RESET;
      SalesInvoiceLine.SETRANGE("Document No.",DocumentNo);
      SalesInvoiceLine.SETRANGE("Line No.",0,EndLineNo);
      IF SalesInvoiceLine.FINDLAST THEN
      REPEAT
      IF SalesInvoiceLine.Type = SalesInvoiceLine.Type::"Begin-Total" THEN
      IF Count = 0 THEN
      BeginLineNo := SalesInvoiceLine."Line No."
      ELSE
      Count := Count - 1
      ELSE
      IF SalesInvoiceLine.Type = SalesInvoiceLine.Type::"End-Total" THEN
      Count := Count + 1;
      UNTIL (SalesInvoiceLine.NEXT(-1) = 0) OR (BeginLineNo <> 0);
      SalesInvoiceLine.SETRANGE("Line No.",BeginLineNo,EndLineNo);
      SalesInvoiceLine.CALCSUMS("Amount Including VAT");
      AmountIncludingVAT := SalesInvoiceLine."Amount Including VAT";CalcTotalAmountIncludingVAT(DocumentNo : Code[20];EndLineNo : Integer) AmountIncludingVAT : Decimal

      Count := -1;
      BeginLineNo := 0;
      SalesInvoiceLine.RESET;
      SalesInvoiceLine.SETRANGE("Document No.",DocumentNo);
      SalesInvoiceLine.SETRANGE("Line No.",0,EndLineNo);
      IF SalesInvoiceLine.FINDLAST THEN
      REPEAT
      IF SalesInvoiceLine.Type = SalesInvoiceLine.Type::"Begin-Total" THEN
      IF Count = 0 THEN
      BeginLineNo := SalesInvoiceLine."Line No."
      ELSE
      Count := Count - 1
      ELSE
      IF SalesInvoiceLine.Type = SalesInvoiceLine.Type::"End-Total" THEN
      Count := Count + 1;
      UNTIL (SalesInvoiceLine.NEXT(-1) = 0) OR (BeginLineNo <> 0);
      SalesInvoiceLine.SETRANGE("Line No.",BeginLineNo,EndLineNo);
      SalesInvoiceLine.CALCSUMS("Amount Including VAT");
      AmountIncludingVAT := SalesInvoiceLine."Amount Including VAT";
  3. 販売 Cr. メモ サブフォームの転記フォーム (135) での金額を含む VAT の"フォーマット時"トリガーのコードを次のように変更します。
    既存のコード
    ...IF (Type = Type::"End-Total") AND ("Subtotal net" <> 0) THEN BEGIN

    // Delete the following line.
    Text := FORMAT("Subtotal net",0,'<Sign><Integer Thousand><Decimals,3>');

    CurrForm."Amount Including VAT".UPDATEFONTBOLD := TRUE;
    END;
    ...
    置換用コード
    ...IF (Type = Type::"End-Total") AND ("Subtotal net" <> 0) THEN BEGIN

    // Add the following line.
    Text := FORMAT(CalcTotalAmountIncludingVAT("Document No.","Line No."),0,'<Sign><Integer Thousand><Decimals,3>');

    CurrForm."Amount Including VAT".UPDATEFONTBOLD := TRUE;
    END;
    ...
  4. 販売 Cr. メモ サブフォームの転記フォーム (135)、新しいローカルCalcTotalAmountIncludingVAT関数を作成する関数を作成するのには、これらの手順に従います。
    1. 販売 Cr. メモ サブフォームの転記フォーム (135)、 CalcTotalAmountIncludingVAT関数で新しいローカル パラメーターを追加し、次のようにパラメーターを指定します。
      • Var: No
      • : DocumentNo
      • データ型:コード
      • 長さ: 20
    2. 販売 Cr. メモ サブフォームの転記フォーム (135)、 CalcTotalAmountIncludingVAT関数で新しいローカル パラメーターを追加し、次のようにパラメーターを指定します。
      • Var: No
      • : EndLineNo
      • データ型:整数
    3. 販売 Cr. メモ サブフォームの転記フォーム (135)、 CalcTotalAmountIncludingVAT関数で新しい戻り値を追加し、戻り値を指定し、次のように。
      • : AmountIncludingVAT
      • 戻り型: 10 進数
    4. 販売 Cr. メモ サブフォームの転記フォーム (135)、 CalcTotalAmountIncludingVAT関数で新しいローカル変数を追加し、次のように変数を指定します。
      • : SalesCrMemoLine
      • データ型:レコード
      • サブタイプ:販売 Cr.Memo 行
    5. 販売 Cr. メモ サブフォームの転記フォーム (135)、 CalcTotalAmountIncludingVAT関数で新しいローカル変数を追加し、次のように変数を指定します。
      • 名前:カウント
      • データ型:整数
    6. 販売 Cr. メモ サブフォームの転記フォーム (135)、 CalcTotalAmountIncludingVAT関数で新しいローカル変数を追加し、次のように変数を指定します。
      • : BeginLineNo
      • データ型:整数
    7. 販売 Cr. メモ サブフォームの転記フォーム (135) 内のCalcTotalAmountIncludingVAT関数で、次の行を追加します。
      PROCEDURE CalcTotalAmountIncludingVAT(DocumentNo : Code[20];EndLineNo : Integer) AmountIncludingVAT : Decimal
      Count := -1;
      BeginLineNo := 0;
      SalesCrMemoLine.RESET;
      SalesCrMemoLine.SETRANGE("Document No.",DocumentNo);
      SalesCrMemoLine.SETRANGE("Line No.",0,EndLineNo);
      IF SalesCrMemoLine.FINDLAST THEN
      REPEAT
      IF SalesCrMemoLine.Type = SalesCrMemoLine.Type::"Begin-Total" THEN
      IF Count = 0 THEN
      BeginLineNo := SalesCrMemoLine."Line No."
      ELSE
      Count := Count - 1
      ELSE
      IF SalesCrMemoLine.Type = SalesCrMemoLine.Type::"End-Total" THEN
      Count := Count + 1;
      UNTIL (SalesCrMemoLine.NEXT(-1) = 0) OR (BeginLineNo <> 0);
      SalesCrMemoLine.SETRANGE("Line No.",BeginLineNo,EndLineNo);
      SalesCrMemoLine.CALCSUMS("Amount Including VAT");
      AmountIncludingVAT := SalesCrMemoLine."Amount Including VAT";CalcTotalAmountIncludingVAT(DocumentNo : Code[20];EndLineNo : Integer) AmountIncludingVAT : Decimal

必要条件

この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。
  • (スイス) のバージョンの Microsoft Dynamics NAV 2009 の R2
  • (スイス) のバージョンの Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)

アンインストール情報

この修正プログラムを削除することはできません。

状況


マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。