รายงานแนะนําผู้ขาย Payments (393) แนะนําการชําระเงินสําหรับผู้จัดจําหน่ายที่มียอดดุลติดลบโดยไม่คาดคิดเมื่อเปิดใช้งานการตั้งค่า ระดับความสําคัญของผู้จัดจําหน่าย ใน Microsoft Dynamics NAV 2009 R2

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

บทความนี้ใช้กับ Microsoft Dynamics NAV สําหรับทุกประเทศและทุกภาษา

อาการ

สมมติว่า คุณใช้ 2623584 โปรแกรมแก้ไขด่วนใน Microsoft Dynamics NAV 2009 R2 เมื่อคุณรันรายงานแนะนําผู้ขาย Payments (393) ที่มีการเปิดใช้งานการตั้งค่า ระดับความสําคัญผู้ขาย รายงาน แนะนํา Payments ผู้ขาย (393) แนะนําการชําระเงินสําหรับผู้ขายที่มีดุลค่าลบโดยไม่คาดคิด
  สําหรับข้อมูลเพิ่มเติมเกี่ยวกับ 2623584 โปรแกรมแก้ไขด่วน ให้คลิกหมายเลขบทความต่อไปนี้ เพื่อดูบทความใน Microsoft Knowledge Base:

2623584 รายงาน "แนะนํา Payments ผู้จัดจําหน่าย" (393)

การแก้ปัญหา

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

โปรแกรมแก้ไขด่วนที่ได้รับการสนับสนุนจาก Microsoft พร้อมใช้งานแล้ว อย่างไรก็ตาม มีไว้เพื่อแก้ไขปัญหาที่อธิบายไว้ในบทความนี้เท่านั้น นําไปใช้กับระบบที่พบปัญหานี้โดยเฉพาะเท่านั้น โปรแกรมแก้ไขด่วนนี้อาจได้รับการทดสอบเพิ่มเติม ดังนั้น ถ้าคุณไม่ได้รับผลกระทบอย่างร้ายแรงจากปัญหานี้ เราขอแนะนําให้คุณรอ Service Pack ถัดไปของ Microsoft Dynamics NAV หรือ 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. เพิ่มตัวแปรส่วนกลางในรายงานแนะนําผู้จัดจําหน่าย Payments (393) แล้วระบุตัวแปรดังนี้:

    • ชื่อ: VendorBalance@1065
    • ชนิดข้อมูล: ทศนิยม
  2. เปลี่ยนรหัสในผู้ขาย - ทริกเกอร์ OnAfterGetRecord ในรายงานแนะนํา Payments ผู้จัดจําหน่าย (393) ดังนี้:
    รหัสที่มีอยู่

    ...
    // Delete the following lines.
    IF StopPayments THEN
    CurrReport.BREAK;
    Window.UPDATE(1,"No.");
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    // End of the lines.
    ...
    

    รหัสทดแทน

    ...
    // Add the following lines.
    CLEAR(VendorBalance);
    CALCFIELDS("Balance (LCY)");
    VendorBalance := "Balance (LCY)";
    IF StopPayments THEN
    CurrReport.BREAK;
    Window.UPDATE(1,"No.");
    IF VendorBalance > 0 THEN BEGIN
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    END;
    // End of the lines.
    ...
    
  3. เปลี่ยนรหัสในผู้ขาย - ทริกเกอร์ OnPostDataItem ในรายงานแนะนํา Payments ผู้จัดจําหน่าย (393) ดังนี้:
    รหัสที่มีอยู่

    ...
    COPYFILTERS(Vend2);
    SETCURRENTKEY(Priority);
    SETRANGE(Priority,0);
    IF FIND('-') THEN
    REPEAT
    
    // Delete the following lines.
    Window.UPDATE(1,"No.");
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    // End of the lines.
    
    UNTIL (NEXT = 0) OR StopPayments;
    END;
    IF UsePaymentDisc AND NOT StopPayments THEN BEGIN
    RESET;
    COPYFILTERS(Vend2);
    Window.OPEN(Text007);
    IF FIND('-') THEN
    REPEAT
    
    // Delete the following lines.
    Window.UPDATE(1,"No.");
    PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
    GetVendLedgEntries(TRUE,TRUE);
    GetVendLedgEntries(FALSE,TRUE);
    CheckAmounts(TRUE);
    UNTIL (NEXT = 0) OR StopPayments;
    END;
    ClearNegative;
    // End of the lines.
    
    JnlLineDim.LOCKTABLE;
    ...
    

    รหัสทดแทน

    ...
    COPYFILTERS(Vend2);
    SETCURRENTKEY(Priority);
    SETRANGE(Priority,0);
    IF FIND('-') THEN
    REPEAT
    
    // Add the following lines.
    CLEAR(VendorBalance);
    CALCFIELDS("Balance (LCY)");
    VendorBalance := "Balance (LCY)";
    IF VendorBalance > 0 THEN BEGIN
    Window.UPDATE(1,"No.");
    GetVendLedgEntries(TRUE,FALSE);
    GetVendLedgEntries(FALSE,FALSE);
    CheckAmounts(FALSE);
    ClearNegative;
    END;
    // End of the lines.
    
    UNTIL (NEXT = 0) OR StopPayments;
    END;
    IF UsePaymentDisc AND NOT StopPayments THEN BEGIN
    RESET;
    COPYFILTERS(Vend2);
    Window.OPEN(Text007);
    IF FIND('-') THEN
    REPEAT
    
    // Add the following lines.
    CLEAR(VendorBalance);
    CALCFIELDS("Balance (LCY)");
    VendorBalance := "Balance (LCY)";
    Window.UPDATE(1,"No.");
    PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
    IF VendorBalance > 0 THEN BEGIN
    GetVendLedgEntries(TRUE,TRUE);
    GetVendLedgEntries(FALSE,TRUE);
    CheckAmounts(TRUE);
    ClearNegative;
    END;
    UNTIL (NEXT = 0) OR StopPayments;
    END ELSE
    IF FIND('-') THEN
    REPEAT
    ClearNegative;
    UNTIL NEXT = 0;
    // End of the lines.
    
    JnlLineDim.LOCKTABLE;
    ...
    
  4. เปลี่ยนรหัสในฟังก์ชัน ClearNegative ในรายงานแนะนํา Payments ผู้ขาย (393) ดังนี้:
    รหัสที่มีอยู่

    ...
    CLEAR(PayableVendLedgEntry);
    PayableVendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
    WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
    TempCurrency.Code := PayableVendLedgEntry."Currency Code";
    CurrencyBalance := 0;
    
    // Delete the following line.
    PayableVendLedgEntry2 := PayableVendLedgEntry;
    
    IF TempCurrency.INSERT THEN BEGIN
    PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
    REPEAT
    CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
    UNTIL PayableVendLedgEntry.NEXT = 0;
    IF CurrencyBalance < 0 THEN
    PayableVendLedgEntry.DELETEALL;
    PayableVendLedgEntry.SETRANGE("Currency Code");
    PayableVendLedgEntry := PayableVendLedgEntry2;
    END;
    END;
    PayableVendLedgEntry.RESET;
    ...
    

    รหัสทดแทน

    ...
    CLEAR(PayableVendLedgEntry);
    PayableVendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
    WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
    TempCurrency.Code := PayableVendLedgEntry."Currency Code";
    CurrencyBalance := 0;
    IF TempCurrency.INSERT THEN BEGIN
    PayableVendLedgEntry.SETRANGE("Currency Code",PayableVendLedgEntry."Currency Code");
    REPEAT
    CurrencyBalance := CurrencyBalance + PayableVendLedgEntry."Amount (LCY)"
    UNTIL PayableVendLedgEntry.NEXT = 0;
    IF CurrencyBalance < 0 THEN
    PayableVendLedgEntry.DELETEALL;
    PayableVendLedgEntry.SETRANGE("Currency Code");
    PayableVendLedgEntry := PayableVendLedgEntry2;
    END;
    END;
    PayableVendLedgEntry.RESET;
    ...
    

ข้อกำหนดเบื้องต้น

คุณต้องติดตั้ง Microsoft Dynamics NAV 2009 R2 เพื่อใช้โปรแกรมแก้ไขด่วนนี้

ลบข้อมูลออก

คุณไม่สามารถลบโปรแกรมแก้ไขด่วนนี้ได้

สถานะ

Microsoft ได้ยืนยันว่านี่เป็นปัญหาที่เกิดขึ้นกับผลิตภัณฑ์ของ Microsoft ที่แสดงไว้ในส่วน "นำไปใช้กับ"

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