この資料では、すべての国と言語ロケールのすべての Microsoft Dynamics NAV に該当します。
現象
Microsoft Dynamics NAV 2009 年に売り上げ高を返す順序のページの順序の逆に転記の伝票明細行を取得する関数を実行すると、次のエラー メッセージが表示されます。
販売注文の請求書明細行: フィルター内では売上請求書の明細行が設定されていません。
この問題は、次の製品で発生します。
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 サービス パック 1 (SP1)
解決策
修正プログラムの情報
サポートされている修正プログラムはマイクロソフトから現在入手可能です。ただし、この資料に記載されている問題を解決するためのものはのみ。この特定の問題が発生したシステムにのみ適用してください。この修正プログラムは、今後さらにテストを行うことがあります。この問題で深刻な影響を受けていない場合は、次の Microsoft Dynamics NAV 2009 サービス パックまたは修正プログラムを含む次の Microsoft Dynamics NAV バージョン待つことを勧めします。
注: かかる料金が免除されるテクニカル サポート担当者 Microsoft Dynamics および関連製品のことは、通常は特別な場合は、特定の更新プログラムは、問題を解決するにを決定します。追加の質問および問題の特定のアップデートの対象にはなりませんが、通常のサポート料金が適用されます。
インストール情報
マイクロソフトでは解説することのみを目的としてプログラミング例を提供しています。暗示あるいは明示していることに対しての保証はしておりません。ここで言う保証とは、特定の目的に対する商品性や適合性の暗示的保証を含んでいますが、それに限定されるわけではありません。この資料では、例示されているプログラミング言語およびプロシージャの作成やデバッグに使用するツールにお客様が精通していることを前提としています。マイクロソフトのサポート エンジニアは、特定のプロシージャの機能について説明することができます。ただし、お客様固有の要件を満たすために、追加機能の提供またはプロシージャの作成のために、これらの例に変更を加えたりはしません。
注: この修正プログラムをインストールする前に、Microsoft Dynamics NAV のすべてのクライアント ユーザーがシステムの電源を記録することを確認します。これには、Microsoft Dynamics NAV アプリケーション サーバー (NAS) のサービスが含まれます。この修正プログラムを実装すると、ログオンしている唯一のクライアント ユーザーが必要です。
この修正プログラムを実装するには、開発者用のライセンスが必要です。
ユーザー アカウントまたはデータベース ログイン ウィンドウに Windows のログイン ウィンドウにある「スーパー」ロール id を割り当てられていることをお勧めします。ユーザー アカウントには、「スーパー」ロール ID を割り当てることができません、する場合は、ユーザー アカウントが次のアクセス許可を持っているを確認する必要があります。
-
変更するオブジェクトの変更のアクセス許可。
-
実行のアクセス許可、システム オブジェクトの ID 5210オブジェクトおよびシステム オブジェクトの ID 9015
オブジェクトです。
注: データの修復を実行する必要があるない限り、データ ストアへの権限を持っている必要はありません。
コードの変更
注: 常にテスト コードを修正、管理された環境で適用する前に、運用コンピューターに修正プログラムします。
この問題を解決するには、次の手順を実行します。
-
購買には、 IsFirstDocLine関数内のコードを変更します。明細行フォーム (5806) を受領書には、次のとおり。
既存のコード...FILTERGROUP(2);
PurchRcptLine.COPYFILTERS(Rec);
FILTERGROUP(0);
PurchRcptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
PurchRcptLine.FIND('-');
// End of the deleted line.
TempPurchRcptLine := PurchRcptLine;
TempPurchRcptLine.INSERT;
END;
IF "Line No." = TempPurchRcptLine."Line No." THEN
...置換用コード
...FILTERGROUP(2);
PurchRcptLine.COPYFILTERS(Rec);
FILTERGROUP(0);
PurchRcptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT PurchRcptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempPurchRcptLine := PurchRcptLine;
TempPurchRcptLine.INSERT;
END;
IF "Line No." = TempPurchRcptLine."Line No." THEN
... -
取得の Pst.Doc RtrnRcptLn サブフォーム フォーム (5853) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FINDFIRST THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnRcptLine.FINDSET;
// End of the deleted line.
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
...置換用コード
...TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FINDFIRST THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnRcptLine.FINDSET THEN
EXIT(FALSE);
// End of the added lines.
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
... -
取得の Post.Doc S.Cr.MemoLn Sbfrm フォーム (5854) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempSalesCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempSalesCrMemoLine.FINDFIRST THEN BEGIN
SalesCrMemoLine.COPYFILTERS(Rec);
SalesCrMemoLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
SalesCrMemoLine.FIND('-');
// End of the deleted line.
TempSalesCrMemoLine := SalesCrMemoLine;
TempSalesCrMemoLine.INSERT;
END;
...置換用コード
...TempSalesCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempSalesCrMemoLine.FINDFIRST THEN BEGIN
SalesCrMemoLine.COPYFILTERS(Rec);
SalesCrMemoLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT SalesCrMemoLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempSalesCrMemoLine := SalesCrMemoLine;
TempSalesCrMemoLine.INSERT;
END;
... -
取得の Pst.Doc RtrnShptLn サブフォーム フォーム (5858) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FINDFIRST THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnShptLine.FINDSET;
// End of the deleted line.
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
...置換用コード
...TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FINDFIRST THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnShptLine.FINDSET THEN
EXIT(FALSE);
// End of the added lines.
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
... -
取得の Post.Doc P.Cr.MemoLn Sbfrm フォーム (5859) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempPurchCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempPurchCrMemoLine.FINDFIRST THEN BEGIN
PurchCrMemoLine.COPYFILTERS(Rec);
PurchCrMemoLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
PurchCrMemoLine.FINDSET;
// End of the deleted line.
TempPurchCrMemoLine := PurchCrMemoLine;
TempPurchCrMemoLine.INSERT;
END;
...置換用コード
...TempPurchCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempPurchCrMemoLine.FINDFIRST THEN BEGIN
PurchCrMemoLine.COPYFILTERS(Rec);
PurchCrMemoLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT PurchCrMemoLine.FINDSET THEN
EXIT(FALSE);
// End of the added lines.
TempPurchCrMemoLine := PurchCrMemoLine;
TempPurchCrMemoLine.INSERT;
END;
... -
取得サービス出荷明細行フォーム (5994) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempServiceShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServiceShptLine.FIND('-') THEN BEGIN
ServiceShptLine.COPYFILTERS(Rec);
ServiceShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServiceShptLine.FIND('-');
// End of the deleted line.
TempServiceShptLine := ServiceShptLine;
TempServiceShptLine.INSERT;
END;
IF "Line No." = TempServiceShptLine."Line No." THEN
...置換用コード
...TempServiceShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServiceShptLine.FIND('-') THEN BEGIN
ServiceShptLine.COPYFILTERS(Rec);
ServiceShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServiceShptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempServiceShptLine := ServiceShptLine;
TempServiceShptLine.INSERT;
END;
IF "Line No." = TempServiceShptLine."Line No." THEN
... -
サービス明細行のサブフォームのフォーム (6036) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...IF NOT TempServLine.FIND('-') THEN BEGIN
ServLine.COPYFILTERS(Rec);
ServLine.SETRANGE("Document Type","Document Type");
ServLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServLine.FIND('-');
// End of the deleted line.
TempServLine := ServLine;
TempServLine.INSERT;
END;
IF "Line No." = TempServLine."Line No." THEN
...置換用コード
...IF NOT TempServLine.FIND('-') THEN BEGIN
ServLine.COPYFILTERS(Rec);
ServLine.SETRANGE("Document Type","Document Type");
ServLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempServLine := ServLine;
TempServLine.INSERT;
END;
IF "Line No." = TempServLine."Line No." THEN
... -
サービスの出荷明細行のサブフォーム フォーム (6037) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempServShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServShptLine.FIND('-') THEN BEGIN
ServShptLine.COPYFILTERS(Rec);
ServShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServShptLine.FIND('-');
// End of the deleted line.
TempServShptLine := ServShptLine;
TempServShptLine.INSERT;
END;
IF "Line No." = TempServShptLine."Line No." THEN
...置換用コード
...TempServShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempServShptLine.FIND('-') THEN BEGIN
ServShptLine.COPYFILTERS(Rec);
ServShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServShptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempServShptLine := ServShptLine;
TempServShptLine.INSERT;
END;
IF "Line No." = TempServShptLine."Line No." THEN
... -
サービスの請求書明細行のサブフォーム フォーム (6038) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempServInvLine.SETRANGE("Document No.","Document No.");
IF NOT TempServInvLine.FIND('-') THEN BEGIN
ServInvLine.COPYFILTERS(Rec);
ServInvLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServInvLine.FIND('-');
// End of the deleted line.
TempServInvLine := ServInvLine;
TempServInvLine.INSERT;
END;
EXIT("Line No." = TempServInvLine."Line No.");
...置換用コード
...TempServInvLine.SETRANGE("Document No.","Document No.");
IF NOT TempServInvLine.FIND('-') THEN BEGIN
ServInvLine.COPYFILTERS(Rec);
ServInvLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServInvLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempServInvLine := ServInvLine;
TempServInvLine.INSERT;
END;
EXIT("Line No." = TempServInvLine."Line No.");
... -
サービス Cr. メモ行サブフォーム フォーム (6039) のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempServCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempServCrMemoLine.FIND('-') THEN BEGIN
ServCrMemoLine.COPYFILTERS(Rec);
ServCrMemoLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ServCrMemoLine.FIND('-');
// End of the deleted line.
TempServCrMemoLine := ServCrMemoLine;
TempServCrMemoLine.INSERT;
END;
EXIT("Line No." = TempServCrMemoLine."Line No.");
...置換用コード
...TempServCrMemoLine.SETRANGE("Document No.","Document No.");
IF NOT TempServCrMemoLine.FIND('-') THEN BEGIN
ServCrMemoLine.COPYFILTERS(Rec);
ServCrMemoLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ServCrMemoLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempServCrMemoLine := ServCrMemoLine;
TempServCrMemoLine.INSERT;
END;
EXIT("Line No." = TempServCrMemoLine."Line No.");
... -
取得を返す受信確認明細行フォーム (6638) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FIND('-') THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnRcptLine.FIND('-');
// End of the deleted line.
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
IF "Line No." = TempReturnRcptLine."Line No." THEN
...置換用コード
...TempReturnRcptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnRcptLine.FIND('-') THEN BEGIN
ReturnRcptLine.COPYFILTERS(Rec);
ReturnRcptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnRcptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempReturnRcptLine := ReturnRcptLine;
TempReturnRcptLine.INSERT;
END;
IF "Line No." = TempReturnRcptLine."Line No." THEN
... -
取得戻る出荷明細行フォーム (6648) 内のIsFirstDocLine関数内のコードを次のように変更します。
既存のコード...TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FIND('-') THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Delete the following line.
ReturnShptLine.FIND('-');
// End of the deleted line.
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
IF "Line No." = TempReturnShptLine."Line No." THEN
...置換用コード
...TempReturnShptLine.SETRANGE("Document No.","Document No.");
IF NOT TempReturnShptLine.FIND('-') THEN BEGIN
ReturnShptLine.COPYFILTERS(Rec);
ReturnShptLine.SETRANGE("Document No.","Document No.");
// Add the following lines.
IF NOT ReturnShptLine.FINDFIRST THEN
EXIT(FALSE);
// End of the added lines.
TempReturnShptLine := ReturnShptLine;
TempReturnShptLine.INSERT;
END;
IF "Line No." = TempReturnShptLine."Line No." THEN
...
必要条件
この修正プログラムを適用するのにはインストールされている製品は次のいずれかが必要です。
-
Microsoft Dynamics NAV 2009 R2
-
Microsoft Dynamics NAV 2009 SP1
アンインストール情報
この修正プログラムを削除することはできません。
状況
マイクロソフトは、この問題を「対象製品」セクションに記載されているマイクロソフト製品の問題として認識しています。
注: これは、マイクロソフト サポートの組織内から直接作成した「高速公開」の資料です。ここに含まれる情報は、新たに発生している問題に応じて現状のまま提供されています。速やかに利用できるようにした結果として、内容には誤植が含まれている可能性があり、事前告知なしで改訂する場合があります。その他の考慮事項については、使用条件を参照してください。