ยอดเงินในการชําระเงินและยอดการชําระเงินคงค้างจะถูกผสมและแสดงในส่วน "Payments นอกขีดจํากัดทางกฎหมาย" ในรายงาน Payments ที่เกินกําหนดของผู้จัดจําหน่าย (10748) อย่างไม่ถูกต้องใน Microsoft Dynamics NAV เวอร์ชันภาษาสเปน

นำไปใช้กับ
Dynamics NAV 2009 Microsoft Dynamics NAV 5.0

บทความนี้ใช้กับ Microsoft Dynamics NAV สําหรับภูมิภาคสเปน (es)

อาการ

สมมติว่า คุณมีสองใบสําหรับผู้จัดจําหน่ายใน Microsoft Dynamics NAV เวอร์ชันภาษาสเปน คุณลงรายการบัญชีการชําระเงินสําหรับหนึ่งใบเรียกเก็บเงิน ในสถานการณ์นี้ เมื่อคุณรันรายงานการเกินกําหนดของผู้จัดจําหน่าย Payments (10748) ยอดเงินการชําระเงินและยอดการชําระเงินที่เปิดสําหรับผู้จัดจําหน่ายจะผสมและแสดงในส่วน "Payments นอกขีดจํากัดทางกฎหมาย (LYC)" อย่างไม่ถูกต้อง 
ปัญหานี้เกิดขึ้นในผลิตภัณฑ์ต่อไปนี้:

  • Microsoft Dynamics NAV 2009 R2 เวอร์ชันภาษาสเปน
  • Microsoft Dynamics NAV 2009 Service Pack 1 เวอร์ชันภาษาสเปน
  • Microsoft Dynamics NAV 5.0 Service Pack 1 เวอร์ชันภาษาสเปน

      

การแก้ปัญหา

ข้อมูลโปรแกรมแก้ไขด่วน

โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม มีไว้เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นําไปใช้กับระบบที่พบปัญหานี้โดยเฉพาะเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบอย่างร้ายแรงจากปัญหานี้ เราขอแนะนําให้คุณรอ Service Pack 2009 สําหรับ Microsoft Dynamics NAV 2009 ถัดไป หรือ Microsoft Dynamics NAV เวอร์ชันถัดไปที่ประกอบด้วยโปรแกรมแก้ไขด่วนนี้

หมายเหตุ ในกรณีพิเศษ ค่าธรรมเนียมสําหรับการโทรติดต่อฝ่ายสนับสนุนตามปกติอาจถูกยกเลิกถ้าผู้เชี่ยวชาญฝ่ายสนับสนุนทางเทคนิคสําหรับ Microsoft Dynamics และผลิตภัณฑ์ที่เกี่ยวข้องระบุว่าการอัปเดตเฉพาะจะแก้ไขปัญหาของคุณได้ ค่าใช้จ่ายในการสนับสนุนปกติจะใช้กับคําถามและปัญหาการสนับสนุนเพิ่มเติมที่ไม่มีคุณสมบัติสําหรับการอัปเดตเฉพาะที่สงสัย

            
          

ข้อมูลการติดตั้ง

Microsoft แสดงตัวอย่างการเขียนโปรแกรมสําหรับภาพประกอบเท่านั้น โดยไม่มีการรับประกันทั้งโดยชัดแจ้งหรือโดยนัย ซึ่งรวมถึงแต่ไม่จํากัดเพียงการรับประกันโดยนัยถึงความสามารถในเชิงพาณิชย์หรือความเหมาะสมสําหรับวัตถุประสงค์เฉพาะ บทความนี้จะถือว่าคุณคุ้นเคยกับภาษาการเขียนโปรแกรมที่กําลังแสดงอยู่ และมีเครื่องมือที่ใช้สําหรับสร้างและแก้ไขจุดบกพร่องของกระบวนการ วิศวกรฝ่ายสนับสนุนของ Microsoft สามารถช่วยอธิบายฟังก์ชันการทํางานของกระบวนการเฉพาะได้ แต่จะไม่ปรับเปลี่ยนตัวอย่างเหล่านี้เพื่อให้มีฟังก์ชันการทํางานที่เพิ่มขึ้นหรือสร้างขั้นตอนต่างๆ เพื่อตอบสนองความต้องการเฉพาะของคุณ

หมายเหตุ ก่อนที่คุณจะติดตั้งโปรแกรมแก้ไขด่วนนี้ ตรวจสอบว่าผู้ใช้ไคลเอนต์ Microsoft Navision ทั้งหมดออกจากระบบ ซึ่งรวมถึงผู้ใช้ไคลเอนต์ Microsoft Navision Application Services (NAS) คุณควรเป็นผู้ใช้ไคลเอนต์เท่านั้นที่เข้าสู่ระบบเมื่อคุณใช้โปรแกรมแก้ไขด่วนนี้

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้

เราขอแนะนําให้ใช้บัญชีผู้ใช้ในหน้าต่าง ล็อกอินของ Windows หรือในหน้าต่าง ล็อกอินของฐานข้อมูล ถูกกําหนด ID บทบาท "SUPER" หากบัญชีผู้ใช้ไม่สามารถกําหนดรหัสบทบาท "SUPER" ได้ คุณต้องตรวจสอบว่าบัญชีผู้ใช้มีสิทธิ์ต่อไปนี้:

  • สิทธิ์ในการปรับเปลี่ยนสําหรับวัตถุที่คุณจะเปลี่ยนแปลง
  • สิทธิ์ Execute สําหรับวัตถุ System Object ID 5210 และสําหรับวัตถุ System Object ID 9015

                
หมายเหตุ คุณไม่มีสิทธิ์ในที่เก็บข้อมูล เว้นแต่คุณจะต้องดําเนินการซ่อมแซมข้อมูล

การเปลี่ยนแปลงโค้ด

หมายเหตุ ทดสอบการแก้ไขรหัสเสมอในสภาพแวดล้อมที่ควบคุมก่อนที่คุณจะนําการแก้ไขไปใช้กับคอมพิวเตอร์การผลิตของคุณ
เมื่อต้องการแก้ไขปัญหา ให้ทําตามขั้นตอนต่อไปนี้:

  1. เปลี่ยนรหัสในหมายเลขสินค้าข้อมูล 1 ในรายงาน ผู้ขาย - เลยกําหนดเวลา Payments (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
    ...
    
  2. เปลี่ยนรหัสในหมายเลขสินค้าข้อมูล 3 ในรายงาน ผู้ขาย - เลยกําหนดเวลา Payments (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
    {
    ...
    
  3. เปลี่ยนรหัสในตัวแปรสากลในผู้ขาย - รายงาน Payments เลยกําหนด (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;
    ...
    
  4. เปลี่ยนรหัสในฟังก์ชัน ClearVendAmount ในรายงาน ผู้ขาย - เกินกําหนด Payments (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 ที่แสดงไว้ในส่วน "นำไปใช้กับ"

หมายเหตุ นี่คือบทความ "เผยแพร่อย่างรวดเร็ว" ที่สร้างขึ้นโดยตรงจากภายในองค์กรสนับสนุนของ Microsoft ข้อมูลที่อยู่ในที่นี้มีให้เพื่อตอบสนองต่อปัญหาที่เกิดขึ้นใหม่ เนื่องจากความเร็วในการทําให้พร้อมใช้งานวัสดุอาจรวมถึงข้อผิดพลาดในการพิมพ์และอาจได้รับการแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ดู ข้อตกลงการใช้งาน สําหรับข้อควรพิจารณาอื่นๆ