تنطبق هذه المقالة على Microsoft Dynamics NAV لمنطقة إسبانيا (es).
الأعراض
افترض أن لديك فواتير لمورد في الإصدار الأسباني من Microsoft Dynamics NAV. يمكنك نشر دفعة لفاتورة واحدة. في هذه الحالة، عند تشغيل تقرير المدفوعات المورد المتأخر (10748)، يتم خلط مبالغ الدفع ومبالغ الدفع المفتوحة للمورد وعرضها في قسم "المدفوعات خارج الحد القانوني (LYC)" بشكل غير صحيح.
تحدث هذه المشكلة في المنتجات التالية:
- الإصدار الأسباني من Microsoft Dynamics NAV 2009 R2
- الإصدار الأسباني من Microsoft Dynamics NAV 2009 Service Pack 1
- الإصدار الأسباني من Microsoft Dynamics NAV 5.0 Service Pack 1
الدقة
معلومات الإصلاح العاجل
يتوفر الآن إصلاح عاجل مدعوم من Microsoft. ومع ذلك، فإنه يهدف فقط إلى تصحيح المشكلة الموضحة في هذه المقالة. قم بتطبيقه فقط على الأنظمة التي تواجه هذه المشكلة المحددة. قد يتلقى الإصلاح العاجل هذا اختبارا إضافيا. لذلك، إذا لم تتأثر بشدة بهذه المشكلة، نوصي بالانتظار حتى حزمة خدمة Microsoft Dynamics NAV 2009 التالية أو إصدار Microsoft Dynamics NAV التالي الذي يحتوي على هذا الإصلاح العاجل.
ملاحظة في حالات خاصة، قد يتم إلغاء الرسوم التي يتم تكبدها عادة لمكالمات الدعم إذا حدد محترف الدعم التقني ل Microsoft Dynamics والمنتجات ذات الصلة أن تحديثا معينا سيحل مشكلتك. سيتم تطبيق تكاليف الدعم المعتادة على أسئلة الدعم الإضافية والمشكلات غير المؤهلة للتحديث المحدد المعني.
معلومات التثبيت
توفر Microsoft أمثلة برمجة للتوضيح فقط، دون ضمان سواء تم التعبير عنه أو تضمينه. وهذا يشمل، على سبيل المثال لا الحصر، الضمانات الضمنية للقابلية التجارية أو اللياقة البدنية لغرض معين. تفترض هذه المقالة أنك على دراية بلغة البرمجة التي يتم توضيحها ومع الأدوات المستخدمة لإنشاء إجراءات وتصحيح الأخطاء. يمكن لمهندسي دعم Microsoft المساعدة في شرح وظائف إجراء معين، لكنهم لن يعدلوا هذه الأمثلة لتوفير وظائف إضافية أو إجراءات بناء لتلبية متطلباتك المحددة.
ملاحظة قبل تثبيت هذا الإصلاح العاجل، تحقق من تسجيل خروج جميع مستخدمي عميل Microsoft Navision من النظام. يتضمن ذلك مستخدمي عميل Microsoft Navision Application Services (NAS). يجب أن تكون المستخدم العميل الوحيد الذي قام بتسجيل الدخول عند تنفيذ هذا الإصلاح العاجل.
لتنفيذ هذا الإصلاح العاجل، يجب أن يكون لديك ترخيص مطور.
نوصي بتعيين معرف دور "SUPER" لحساب المستخدم في نافذة تسجيلات الدخول إلى Windows أو في نافذة تسجيلات دخول قاعدة البيانات. إذا تعذر تعيين معرف دور "SUPER" لحساب المستخدم، فيجب عليك التحقق من أن حساب المستخدم لديه الأذونات التالية:
- إذن تعديل للكائن الذي ستقوم بتغييره.
- إذن Execute للكائن System Object ID 5210 ولعنصر System Object ID 9015.
ملاحظة ليس لديك حقوق في مخازن البيانات ما لم يكن لديك لإجراء إصلاح البيانات.
تغييرات التعليمات البرمجية
ملاحظة اختبر دائما إصلاحات التعليمات البرمجية في بيئة خاضعة للرقابة قبل تطبيق الإصلاحات على أجهزة الكمبيوتر الإنتاجية.
لحل المشكلة، اتبع الخطوات التالية:
تغيير التعليمات البرمجية في رقم عنصر البيانات 1 في تقرير المورد - متأخر المدفوعات (10748) كما يلي:
التعليمات البرمجية الموجودة 1... } { PROPERTIES { SectionType=GroupFooter; SectionWidth=17850; // Delete the following line. SectionHeight=2538; OnPreSection=BEGIN CurrReport.SHOWOUTPUT(VendTotalAmount <> 0); END; } ...رمز الاستبدال 1
... } { PROPERTIES { SectionType=GroupFooter; SectionWidth=17850; // Add the following line. SectionHeight=2961; OnPreSection=BEGIN CurrReport.SHOWOUTPUT(VendTotalAmount <> 0); END; } ...التعليمات البرمجية الموجودة 2
... DataSetFieldName=Vend_WeightedExceededAmount } { 1170000000;TextBox;13800;0 ;450 ;423 ;Visible=No; ForeColor=65535; SourceExpr=[VendWeightedExceededAmount ]; DataSetFieldName=WeightedExceededAmount1 } } } { PROPERTIES { SectionType=Footer; ...رمز الاستبدال 2
... DataSetFieldName=Vend_WeightedExceededAmount } { 1170000000;TextBox;13800;0 ;450 ;423 ;Visible=No; ForeColor=65535; SourceExpr=[VendWeightedExceededAmount ]; DataSetFieldName=WeightedExceededAmount1 } // Add the following lines. { 1000000000;Label ;5250 ;2115 ;4950 ;423 ;ParentControl=1000000001; DataSetFieldName=ABS_OpenTotalPaymentOutsideDueDate_Caption } { 1000000001;TextBox;10350;2115 ;1800 ;423 ;CaptionML=[ENU=Open Payments outside the legal limit (LCY); ESP=Pagos fuera del l¡mite legal (DL):]; SourceExpr=ABS(OpenVendPaymentOutsideDueDate); DataSetFieldName=OpenVend_PaymentOutsideDueDate } { 1000000004;TextBox;12600;2115 ;1800 ;423 ;SourceExpr=FormatRatio(OpenVendPaymentOutsideDueDate,VendTotalAmount); DataSetFieldName=OpenVend_PaymentOutsideDueDateRatio } // End of the lines. } } { PROPERTIES { SectionType=Footer; ...التعليمات البرمجية الموجودة 3
... } { PROPERTIES { SectionType=Footer; SectionWidth=17850; // Delete the following line. SectionHeight=2115; OnPreSection=BEGIN CurrReport.SHOWOUTPUT(TotalAmount <> 0); END; } ...رمز الاستبدال 3
... } { PROPERTIES { SectionType=Footer; SectionWidth=17850; // Add the following line. SectionHeight=2538; OnPreSection=BEGIN CurrReport.SHOWOUTPUT(TotalAmount <> 0); END; } ...التعليمات البرمجية الموجودة 4
... DataSetFieldName=Total_PaymentOutsideDueDateRatio } { 1100057;TextBox ;10350;846 ;1800 ;423 ;CaptionML=[ENU=Weighted average term exceeded:; ESP=Plazo medio ponderado superado:]; SourceExpr=TotalWeightedExceededAmount / ABS(TotalAmount); DataSetFieldName=Total_WeightedExceededAmount } } } } } { PROPERTIES ...رمز الاستبدال 4
... DataSetFieldName=Total_PaymentOutsideDueDateRatio } { 1100057;TextBox ;10350;846 ;1800 ;423 ;CaptionML=[ENU=Weighted average term exceeded:; ESP=Plazo medio ponderado superado:]; SourceExpr=TotalWeightedExceededAmount / ABS(TotalAmount); DataSetFieldName=Total_WeightedExceededAmount } // Add the following lines. { 1000000002;Label ;5250 ;2115 ;4950 ;423 ;ParentControl=1000000003; DataSetFieldName=ABS_OpenTotalPaymentOutsideDueDate__Control1100045Caption } { 1000000003;TextBox;10350;2115 ;1800 ;423 ;CaptionML=[ENU=Open Payments outside the legal limit (LCY); ESP=Pagos fuera del l¡mite legal (DL):]; SourceExpr=ABS(TotalOpenPaymentOutsideDueDate); DataSetFieldName=OpenTotal_PaymentOutsideDueDate } { 1000000005;TextBox;12600;2115 ;1800 ;423 ;SourceExpr=FormatRatio(TotalOpenPaymentOutsideDueDate,TotalAmount); DataSetFieldName=OpenTotal_PaymentOutsideDueDateRatio } // End of the lines. } } } } { PROPERTIES ...تغيير التعليمات البرمجية في رقم عنصر البيانات 3 في تقرير المورد - متأخر المدفوعات (10748) كما يلي:
التعليمات البرمجية الموجودة 1... IF AppldVendLedgEntryTmp.NEXT = 0 THEN CurrReport.BREAK; IF AppldVendLedgEntryTmp."Posting Date" > AppldVendLedgEntryTmp."Initial Entry Due Date" THEN BEGIN DaysOverdue := AppldVendLedgEntryTmp."Posting Date" - AppldVendLedgEntryTmp."Initial Entry Due Date"; // Delete the following lines. VendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; TotalPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; // End of the lines. END ELSE BEGIN DaysOverdue := 0; VendPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; TotalPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; END; ...رمز الاستبدال 1
... IF AppldVendLedgEntryTmp.NEXT = 0 THEN CurrReport.BREAK; IF AppldVendLedgEntryTmp."Posting Date" > AppldVendLedgEntryTmp."Initial Entry Due Date" THEN BEGIN DaysOverdue := AppldVendLedgEntryTmp."Posting Date" - AppldVendLedgEntryTmp."Initial Entry Due Date"; // Add the following lines. IF AppldVendLedgEntryTmp."Applied Vend. Ledger Entry No." = 0 THEN BEGIN OpenVendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; TotalOpenPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; END ELSE BEGIN VendPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; TotalPaymentOutsideDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; END; // End of the lines. END ELSE BEGIN DaysOverdue := 0; VendPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; TotalPaymentWithinDueDate += AppldVendLedgEntryTmp."Amount (LCY)"; END; ...التعليمات البرمجية الموجودة 2
... IF AppldVendLedgEntryTmp."Entry Type" = AppldVendLedgEntryTmp."Entry Type"::"Initial Entry" THEN AppldVendLedgEntryTmp."Posting Date" := 0D; VendDaysOverdue += DaysOverdue; VendWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)"); // Delete the following lines. VendTotalAmount := VendPaymentOutsideDueDate + VendPaymentWithinDueDate; TotalDaysOverdue += DaysOverdue; TotalWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)"); TotalAmount := TotalPaymentOutsideDueDate + TotalPaymentWithinDueDate; // End of the lines. END; } SECTIONS { ...رمز الاستبدال 2
... IF AppldVendLedgEntryTmp."Entry Type" = AppldVendLedgEntryTmp."Entry Type"::"Initial Entry" THEN AppldVendLedgEntryTmp."Posting Date" := 0D; VendDaysOverdue += DaysOverdue; VendWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)"); // Add the following lines. VendTotalAmount := VendPaymentOutsideDueDate + VendPaymentWithinDueDate + OpenVendPaymentOutsideDueDate; TotalDaysOverdue += DaysOverdue; TotalWeightedExceededAmount += DaysOverdue * ABS(AppldVendLedgEntryTmp."Amount (LCY)"); TotalAmount := TotalPaymentOutsideDueDate + TotalPaymentWithinDueDate+TotalOpenPaymentOutsideDueDate; // End of the lines. END; } SECTIONS { ...تغيير التعليمات البرمجية في المتغيرات العمومية في تقرير المورد - متأخر المدفوعات (10748) كما يلي:
التعليمات البرمجية الموجودة... VendPaymentWithinDueDate@1100016 : Decimal; VendDaysOverdue@1100017 : Decimal; TotalDaysOverdue@1100018 : Decimal; TotalWeightedExceededAmount@1100019 : Decimal; ShowPayments@1100012 : 'Overdue,Legally Overdue,All'; LOCAL PROCEDURE FindAppliedPayments@1210013(VendLedgEntryNo@1210000 : Integer); VAR DtldVendLedgEntry@1210001 : Record 380; InvVendLedgEntry@1100000 : Record 25; ...رمز الاستبدال
... VendPaymentWithinDueDate@1100016 : Decimal; VendDaysOverdue@1100017 : Decimal; TotalDaysOverdue@1100018 : Decimal; TotalWeightedExceededAmount@1100019 : Decimal; ShowPayments@1100012 : 'Overdue,Legally Overdue,All'; // Add the following lines. OpenVendPaymentOutsideDueDate@1000000000 : Decimal; TotalOpenPaymentOutsideDueDate@1000000001 : Decimal; // End of the lines. LOCAL PROCEDURE FindAppliedPayments@1210013(VendLedgEntryNo@1210000 : Integer); VAR DtldVendLedgEntry@1210001 : Record 380; InvVendLedgEntry@1100000 : Record 25; ...تغيير التعليمات البرمجية في الدالة ClearVendAmount في تقرير المورد - متأخر المدفوعات (10748) كما يلي:
التعليمات البرمجية الموجودة... VendTotalAmount := 0; VendDaysOverdue := 0; VendWeightedExceededAmount := 0; VendPaymentOutsideDueDate := 0; VendPaymentWithinDueDate := 0; END; BEGIN END. } ...رمز الاستبدال
... VendTotalAmount := 0; VendDaysOverdue := 0; VendWeightedExceededAmount := 0; VendPaymentOutsideDueDate := 0; VendPaymentWithinDueDate := 0; // Add the following line. OpenVendPaymentOutsideDueDate := 0; END; BEGIN END. } ...
المتطلبات الأساسية
يجب أن يكون لديك أحد المنتجات التالية مثبتا لتطبيق هذا الإصلاح العاجل:
- الإصدار الأسباني من Microsoft Dynamics NAV 2009 R2
- الإصدار الأسباني من Microsoft Dynamics NAV 2009 Service Pack 1
- الإصدار الأسباني من Microsoft Dynamics NAV 5.0 Service Pack 1
معلومات الإزالة
لا يمكنك إزالة هذا الإصلاح العاجل.
الحالة
لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".
ملاحظة هذه مقالة "FAST PUBLISH" تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة هنا كما هي استجابة للقضايا الناشئة. نتيجة لسرعة إتاحتها، قد تتضمن المواد أخطاء مطبعية ويمكن مراجعتها في أي وقت دون إشعار. راجع شروط الاستخدام لاعتبارات أخرى.