ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

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

บทความนี้นำไปใช้กับ Microsoft Dynamics NAV 2009 สำหรับประเทศทั้งหมดและตำแหน่งที่ตั้งภาษาทั้งหมด

อาการ

ถ้ายอดดุลของผู้จัดจำหน่ายเป็นค่าลบใน Microsoft Dynamics NAV 2009 Service Pack 1 รายงาน "ชำระเงิน" (393) แนะนำยอดดุลติดลบเป็นการชำระเงิน

การแก้ปัญหา

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

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

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



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

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

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

เมื่อต้องการใช้โปรแกรมแก้ไขด่วนนี้ คุณต้องมีสิทธิ์การใช้งานสำหรับนักพัฒนา

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

  • สิทธิ์การปรับเปลี่ยนสำหรับออปเจ็กต์ที่คุณจะสามารถเปลี่ยน

  • สิทธิ์ Execute สำหรับออบเจ็กต์5210 รหัสวัตถุของระบบและ สำหรับออบเจ็กต์ระบบ 9015 ID ของวัตถุ



หมายเหตุ คุณไม่จำเป็นต้องมีสิทธิ์ไปยังร้านค้าข้อมูลยกเว้นว่าคุณจำเป็นต้องซ่อมแซมข้อมูล

การเปลี่ยนแปลงรหัส

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

  1. เปลี่ยนรหัสในผู้จัดจำหน่าย - OnPostDataItemทริกเกอร์ในรายงาน "ชำระเงิน" (393) เป็นดังนี้:
    รหัสที่มีอยู่

    ...   IF FIND('-') THEN
    REPEAT
    Window.UPDATE(1,"No.");
    PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
    GetVendLedgEntries(TRUE,TRUE);
    GetVendLedgEntries(FALSE,TRUE);
    CheckAmounts(TRUE);
    UNTIL (NEXT = 0) OR StopPayments;
    END;

    ClearNegative;

    JnlLineDim.LOCKTABLE;
    ...

    รหัสแทน

    ...   IF FIND('-') THEN
    REPEAT
    Window.UPDATE(1,"No.");
    PayableVendLedgEntry.SETRANGE("Vendor No.","No.");
    GetVendLedgEntries(TRUE,TRUE);
    GetVendLedgEntries(FALSE,TRUE);
    CheckAmounts(TRUE);
    ClearNegative;
    UNTIL (NEXT = 0) OR StopPayments;
    END ELSE
    IF FIND('-') THEN
    REPEAT
    ClearNegative;
    UNTIL NEXT = 0;

    JnlLineDim.LOCKTABLE;
    ...

  2. เปลี่ยนแปลงรหัสนี้ในขั้นตอนGetVendLedgEntriesในรายงาน "ชำระเงิน" (393) เป็นดังนี้:
    รหัสที่มีอยู่

    ...  VendLedgEntry.RESET;
    VendLedgEntry.SETCURRENTKEY("Vendor No.",Open,Positive,"Due Date");
    VendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
    VendLedgEntry.SETRANGE(Open,TRUE);
    VendLedgEntry.SETRANGE(Positive,Positive);

    IF Future THEN BEGIN
    ...

    รหัสแทน

    ...  VendLedgEntry.RESET;
    VendLedgEntry.SETCURRENTKEY("Vendor No.",Open,Positive,"Due Date");
    VendLedgEntry.SETRANGE("Vendor No.",Vendor."No.");
    VendLedgEntry.SETRANGE(Open,TRUE);
    VendLedgEntry.SETRANGE(Positive,Positive);
    VendLedgEntry.SETRANGE("Applies-to ID",'');
    IF Future THEN BEGIN
    ...

  3. เปลี่ยนแปลงรหัสนี้ในขั้นตอนMakeGenJnlLinesในรายงาน "ชำระเงิน" (393) เป็นดังนี้:
    รหัสที่มีอยู่

    ...      Window.UPDATE(1,VendLedgEntry."Vendor No.");
    TempPaymentBuffer.INSERT;
    END;
    VendLedgEntry.TESTFIELD("Applies-to ID",'');
    VendLedgEntry."Applies-to ID" := TempPaymentBuffer."Document No.";
    END ELSE BEGIN
    ...

    รหัสแทน

    ...      Window.UPDATE(1,VendLedgEntry."Vendor No.");
    TempPaymentBuffer.INSERT;
    END;

    VendLedgEntry."Applies-to ID" := TempPaymentBuffer."Document No.";
    END ELSE BEGIN
    ...

  4. เปลี่ยนแปลงรหัสนี้ในขั้นตอนClearNegativeในรายงาน "ชำระเงิน" (393) เป็นดังนี้:
    รหัสที่มีอยู่

    ...      WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
    TempCurrency.Code := PayableVendLedgEntry."Currency Code";
    CurrencyBalance := 0;
    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;
    END;
    PayableVendLedgEntry.SETRANGE("Currency Code");
    PayableVendLedgEntry := PayableVendLedgEntry2;
    END;
    ...

    รหัสแทน

    ...      WHILE PayableVendLedgEntry.NEXT <> 0 DO BEGIN
    TempCurrency.Code := PayableVendLedgEntry."Currency Code";
    CurrencyBalance := 0;

    IF TempCurrency.INSERT THEN BEGIN
    PayableVendLedgEntry2 := PayableVendLedgEntry;
    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;
    ...

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

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

ข้อมูลการเอาออก

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

สถานะ

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

และ/หรือซัพพลายเออร์ของ MICROSOFT ทำให้ไม่ได้ยืนยันหรือรับประกันใด ๆ ในความเหมาะสม ความน่าเชื่อถือ หรือความถูกต้องของข้อมูลที่มีอยู่ในเอกสาร และรูปภาพที่เกี่ยวข้องที่เผยแพร่บนเว็บไซต์นี้ ("วัสดุ") เพื่อวัตถุประสงค์ใด ๆ

วัตถุดิบอาจรวมทางเทคนิค INACCURACIES หรือข้อผิดพลาด TYPOGRAPHICAL และอาจแก้ไขได้ตลอดเวลาโดยไม่ต้องแจ้งให้ทราบ ระดับสูงสุดที่ได้รับอนุญาตตามกฎหมายที่เกี่ยวข้อง MICROSOFT และ/หรือซัพพลายเออร์ของ DISCLAIM และรวมทั้งหมดที่ใช้แทน รับประกัน และเงื่อนไขว่า EXPRESS ทั้งโดยนัย หรือตาม กฎหมาย รวมถึงแต่ไม่จำกัดเฉพาะการนำเสนอ การรับประกัน หรือเงื่อนไขของชื่อเรื่อง เงื่อนไขที่ไม่ละเมิด น่าพอใจ หรือคุณภาพ ความสามารถเชิงพาณิชย์ และความเหมาะสมสำหรับวัตถุประสงค์เฉพาะ โดยอ้างอิงวัตถุดิบ

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

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

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

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

ขอบคุณสำหรับคำติชมของคุณ!

×