Applies To
Dynamics NAV 2009

本文適用於 Microsoft 動態航行點的所有國家/地區和所有的語言地區設定。

狀況

您套用以獲得 Microsoft 動態航行點 2009年 2292157 和 2764340 的 hotfix 之後,套用客戶項目表單,並套用廠商項目表單請在 [平衡] 欄位和263.33 光碟中顯示不正確的值。量欄位。下列產品中,就會發生這個問題︰

  • Microsoft 動態航行點 2009 Service Pack 1

  • Microsoft 動態航行點 2009 R2

如需有關 hotfix 2292157 和 2764340 的詳細資訊,請按一下下面的文件編號,檢視 「 Microsoft 知識庫 」 中的文件︰

2292157 「 平衡 」 欄位和 < 263.33="" 的光碟片。在套用客戶項目表單和套用廠商項目表單中的數量="" 」="" 欄位會顯示不正確的值是否您套用付款到數個開啟的文件,在="" [microsoft="">

2764340廠商項目是仍處於選取狀態即使您清除先前的 Microsoft 動態航行點 2009年中的 「 套用廠商項目 」 表單的廠商項目

解決方案

Hotfix 資訊

已經可以從 Microsoft 取得支援的 hotfix。不過,它只被用來修正本文所述的問題。它只適用於發生此特定問題的系統上。此 hotfix 可能會接受其他測試。因此,如果此問題不會嚴重影響,我們建議您等候下一步的 Microsoft 動態航行點 2009 service pack 或包含此 hotfix 的下一個 Microsoft 動態航行點版本。注意 在特殊的情況下,通常會支援呼叫可能已被取消如果技術支援專業人員的 Microsoft 動態及相關的產品所產生的費用會決定某特定更新程式可以解決您的問題。收取支援費用會套用,如果有其他支援問題是,不能限定的特定更新程式。

安裝資訊

Microsoft 會提供程式設計範例僅供說明,而不做任何明示或默示的保證。這包括,但不限於適售性或適合某特定用途之默示擔保責任。本文假設您已相當熟悉使用的我們所示範的程式設計語言以及建立和偵錯程序所使用的工具。Microsoft 技術支援工程師可以協助解釋特定程序的功能。不過,它們不會修改這些範例以提供附加功能或建構程序來滿足您特定需求。注意套用此 hotfix 之前,請確認所有的 Microsoft 動態航行點用戶端使用者會登出系統。這包括 Microsoft 動態航行點應用程式伺服器 (NAS) 服務。您應該是唯一的用戶端使用者已登入,當您實作此 hotfix。若要實作此 hotfix,您必須有開發人員授權。我們建議您在 Windows 登入] 視窗中的色彩,或資料庫登入] 視窗中的使用者帳戶被指派 「 進階 」 的角色識別碼。如果使用者帳戶不能指派為 「 超級 」 的角色識別碼,您必須確認使用者帳戶具有下列權限︰

  • 您將會變更物件的 [修改] 權限。

  • 執行權限的系統物件 ID 5210物件和系統物件 ID 9015物件。

注意您沒有擁有資料存放區的權限,除非您需要執行資料修復。

程式碼變更

注意永遠測試程式碼修正在受控制的環境中才能套用到實際執行電腦的修正程式。若要解決這個問題,請依照下列步驟執行:

  1. 變更客戶的項目表單 (232) theApply 的HandlChosenEntries函式中的程式碼如下所示︰現有的程式碼 1

    ...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" -                AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Delete the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtDisc;               CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                 AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtDisc;               PossiblePmtDisc := 0;// End of the deleted lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF (FromZeroGenJnl) THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";...

    取代程式碼 1

    ...CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedCustLedgEntryTemp."Remaining Amount" -                AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Add the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";               CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                 AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";// End of the added lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF (FromZeroGenJnl) THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedCustLedgEntryTemp."Remaining Amount" - AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";...

    現有的程式碼 2

    ...END;                CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Delete the following lines.             PossiblePmtDisc := AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";             IF (((CurrentAmount - PossiblePmtDisc + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN BEGIN               PmtDiscAmount := PmtDiscAmount + PossiblePmtDisc;               CurrentAmount := CurrentAmount - PossiblePmtDisc;               PossiblePmtDisc := 0;               AppliedAmount := AppliedAmount + CorrectionAmount;             END;// End of the deleted lines.              CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedCustLedgEntryTemp.SETRANGE(Positive);            AppliedCustLedgEntryTemp.FINDFIRST;...

    取代程式碼 2

    ...END;                CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Remaining Amount" -                  AppliedCustLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Add the following lines.             IF (((CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply") * CurrentAmount) <= 0) THEN               AppliedAmount := AppliedAmount + CorrectionAmount;// End of the added lines.              CurrentAmount := CurrentAmount + AppliedCustLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedCustLedgEntryTemp.SETRANGE(Positive);            AppliedCustLedgEntryTemp.FINDFIRST;...
  2. 變更在套用廠商項目表單 (233) 中的HandlChosenEntries函式中的程式碼如下所示︰現有的程式碼 1

    ...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" -                AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Delete the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" + PossiblePmtdisc;               CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                 AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible" - PossiblePmtdisc;               PossiblePmtdisc := 0;// End of the deleted lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF FromZeroGenJnl THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";...

    取代程式碼 1

    ...CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END ELSE IF (ABS(CurrentAmount) = ABS(AppliedVendLedgEntryTemp."Remaining Amount" -                AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible"))              THEN BEGIN// Add the following lines.               PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";               CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                 AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";// End of the added lines.                AppliedAmount := AppliedAmount + CorrectionAmount;              END ELSE IF FromZeroGenJnl THEN BEGIN                PmtDiscAmount := PmtDiscAmount + AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";                CurrentAmount := CurrentAmount +                  AppliedVendLedgEntryTemp."Remaining Amount" - AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";...

    現有的程式碼 2

    ...END;                CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Delete the following lines.             PossiblePmtdisc := AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";             IF (((CurrentAmount - PossiblePmtdisc + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN BEGIN               PmtDiscAmount := PmtDiscAmount + PossiblePmtdisc;               CurrentAmount := CurrentAmount - PossiblePmtdisc;               PossiblePmtdisc := 0;               AppliedAmount := AppliedAmount + CorrectionAmount;             END;// End of the deleted lines.              CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedVendLedgEntryTemp.SETRANGE(Positive);            AppliedVendLedgEntryTemp.FINDFIRST;...

    取代程式碼 2

    ...END;                CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Remaining Amount" -                  AppliedVendLedgEntryTemp."Remaining Pmt. Disc. Possible";              END;            END ELSE BEGIN// Add the following lines.             IF (((CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply") * CurrentAmount) >= 0) THEN               AppliedAmount := AppliedAmount + CorrectionAmount;// End of the added lines.              CurrentAmount := CurrentAmount + AppliedVendLedgEntryTemp."Amount to Apply";            END;          END ELSE BEGIN            AppliedVendLedgEntryTemp.SETRANGE(Positive);            AppliedVendLedgEntryTemp.FINDFIRST;...

先決條件

您必須具備套用此 hotfix 之後安裝下列產品的其中一個︰

  • Microsoft 動態航行點 2009 Service Pack 1

  • Microsoft 動態航行點 2009 R2

移除資訊

您無法移除此 hotfix。

狀態

Microsoft 已確認這是<套用>一節所列出的 Microsoft 產品的問題。

注意這是直接從 Microsoft 支援組織內建立的「快速發行」文件。本文件所包含的現狀資訊是針對新興問題的回應。為縮短使其可用的時程,資料可能會包含印刷錯誤,且可能會隨時進行修改而不另行通知。如其他考量,請參閱 「使用規定」。

Need more help?

Want more options?

探索訂閱權益、瀏覽訓練課程、瞭解如何保護您的裝置等等。