الأرصدة في تقرير فترات انتشار الرصيد التجريبي (10026) غير صحيحة عند تشغيل التقرير الذي يستخدم الخيار الأسبوعي في إصدار Microsoft Dynamics NAV 2009 في أمريكا الشمالية

ينطبق على
Microsoft Dynamics NAV 2009 R2 Dynamics NAV 2009 Service Pack 1

تنطبق هذه المقالة على Microsoft Dynamics NAV للبلدان واللغات المحلية التالية.

  • الإنجليزية (كندا) (en-ca)
  • الإنجليزية (الولايات المتحدة) (en-us)
  • الأسبانية (المكسيك) (es-mx)
  • الفرنسية (كندا) (fr-ca)

الأعراض

افترض أنك تقوم بتشغيل تقرير فترات انتشار الرصيد التجريبي (10026) الذي يتجاوز فترة إقفال السنة المالية في إصدار Microsoft Dynamics NAV 2009 في أمريكا الشمالية. إذا قمت بتشغيل التقرير الذي يستخدم الخيار الأسبوعي، فإن الأرصدة في التقرير غير صحيحة. يتم تضمين جميع إدخالات الإغلاق في الفترة الأسبوعية التي تتضمن العبور إلى السنة المالية الجديدة بشكل غير متوقع.
ملاحظة عند تشغيل التقرير الذي يستخدم قسمة زمنية من 1P أو قسمة زمنية من 1M، يعرض النظام الإجماليات الشهرية بشكل صحيح، حتى إذا قمت بتشغيل التقرير الذي يتجاوز فترة إقفال السنة المالية.
تحدث هذه المشكلة في المنتجات التالية:

  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 R2
  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 Service Pack 1 (SP1)

الدقة

معلومات الإصلاح العاجل

يتوفر الآن إصلاح عاجل مدعوم من Microsoft. ومع ذلك، فإنه يهدف فقط إلى تصحيح المشكلة الموضحة في هذه المقالة. قم بتطبيقه فقط على الأنظمة التي تواجه هذه المشكلة المحددة. قد يتلقى الإصلاح العاجل هذا اختبارا إضافيا. لذلك، إذا لم تتأثر بشدة بهذه المشكلة، نوصي بالانتظار حتى حزمة خدمة Microsoft Dynamics NAV التالية أو إصدار 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. أضف متغيرا عموميا جديدا في تقرير الرصيد التجريبي، فترات الانتشار (10026)، ثم حدد المتغير كما يلي:

    • الاسم: CloDate
    • نوع البيانات: التاريخ
  2. تغيير التعليمات البرمجية في مشغل Report - OnPreReport في تقرير الرصيد التجريبي، فترات الانتشار (10026) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    CompanyInformation.GET;
    { set up the date ranges }
    FromDate := "G/L Account".GETRANGEMIN("Date Filter");
    ToDate := "G/L Account".GETRANGEMAX("Date Filter");
    PriorFromDate := CALCDATE('<-1Y>',FromDate);
    PriorToDate := CALCDATE('<-1Y>',ToDate);
    IF NOT PrintToExcel THEN
    "G/L Account".SETRANGE("Date Filter"); // since these are in the titles, they
    GLAccountFilter := "G/L Account".GETFILTERS; // do not have to be in the filter string
    ...
    

    رمز الاستبدال

    ...
    CompanyInformation.GET;
    { set up the date ranges }
    FromDate := "G/L Account".GETRANGEMIN("Date Filter");
    ToDate := "G/L Account".GETRANGEMAX("Date Filter");
    PriorFromDate := CALCDATE('<-1Y>',FromDate);
    PriorToDate := CALCDATE('<-1Y>',ToDate);
    
    // Add the following line.
    CloDate := FindClosingDate(ToDate);
    
    IF NOT PrintToExcel THEN
    "G/L Account".SETRANGE("Date Filter"); // since these are in the titles, they
    GLAccountFilter := "G/L Account".GETFILTERS; // do not have to be in the filter string
    ...
    
  3. تغيير التعليمات البرمجية في G/L Account - مشغل OnAfterGetRecord في DataItem1 - <G/L Account> في تقرير الرصيد التجريبي، فترات الانتشار (10026) كما يلي:
    التعليمات البرمجية الموجودة

    ...
    THEN BEGIN
    FOR i := 1 TO MaxColumns DO
    IF (ColumnFilter[i] <> '') THEN BEGIN
    
    // Delete the following line.
    SETFILTER("Date Filter",ColumnFilter[i]);
    
    CASE AmountType OF
    AmountType::"Actual Change":
    IF UseAddRptCurr THEN BEGIN
    CALCFIELDS("Additional-Currency Net Change");
    ...
    

    رمز الاستبدال

    ...
    THEN BEGIN
    FOR i := 1 TO MaxColumns DO
    IF (ColumnFilter[i] <> '') THEN BEGIN
    
    // Add the following lines.
    IF CloDate = 0D THEN
    SETFILTER("Date Filter",ColumnFilter[i])
    ELSE
    SETFILTER("Date Filter",STRSUBSTNO('%1&<>%2',ColumnFilter[i],CloDate));
    // End of the lines.
    
    CASE AmountType OF
    AmountType::"Actual Change":
    IF UseAddRptCurr THEN BEGIN
    CALCFIELDS("Additional-Currency Net Change");
    ...
    
  4. أضف دالة جديدة في تقرير الرصيد التجريبي، فترات الانتشار (10026) كما يلي:

    NEW LOCAL PROCEDURE:
    FindClosingDate@1020000(ToDate@1020000 : Date) : Date;
    VAR
    AccountingPeriod@1020001 : Record 50;
    
    AccountingPeriod.SETFILTER("Starting Date",'..%1',ToDate);
    AccountingPeriod.SETRANGE(Closed,FALSE);
    AccountingPeriod.SETRANGE("New Fiscal Year",TRUE);
    IF AccountingPeriod.FINDLAST THEN
    EXIT(CLOSINGDATE(CALCDATE('-1D',AccountingPeriod."Starting Date")))
    ELSE
    EXIT(0D);
    

          

المتطلبات الأساسية

يجب أن يكون لديك أحد المنتجات التالية مثبتا لتطبيق هذا الإصلاح العاجل:

  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 R2
  • إصدار أمريكا الشمالية من Microsoft Dynamics NAV 2009 Service Pack 1

معلومات الإزالة

لا يمكنك إزالة هذا الإصلاح العاجل.

الحالة

لقد أكدت Microsoft على أن هذه مشكلة في منتجات Microsoft المُدرجة في القسم "ينطبق على".

ملاحظة هذه مقالة "FAST PUBLISH" تم إنشاؤها مباشرة من داخل مؤسسة دعم Microsoft. وتقدم المعلومات الواردة هنا كما هي استجابة للقضايا الناشئة. نتيجة لسرعة إتاحتها، قد تتضمن المواد أخطاء مطبعية ويمكن مراجعتها في أي وقت دون إشعار. راجع شروط الاستخدام لاعتبارات أخرى.