ฟิลด์ "ขาย YTD (LCY) " ในหน้ากล่องแสดงข้อมูลย่อสถิติลูกค้า (9082) มีอินวอยซ์สินค้าขายที่ลงรายการบัญชีในปีก่อนหน้าใน Microsoft Dynamics NAV 2009


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

อาการ


เมื่อคุณเรียกใช้หน้ากล่องแสดงข้อมูลย่อสถิติลูกค้า (9082) ใน Microsoft Dynamics NAV 2009 ฟิลด์YTD ขาย (LCY)ในหน้ารวมอินวอยซ์สินค้าขายที่ลงรายการบัญชีในปีก่อนหน้า อย่างไรก็ตาม หน้าควรแสดงเฉพาะมูลค่าของอินวอยซ์สินค้าขายที่ลงรายการบัญชีปีปัจจุบัน (YTD) ในฟิลด์YTD ขาย (LCY)
ปัญหานี้เกิดขึ้นในผลิตภัณฑ์ต่อไปนี้:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack ที่ 1 (SP1)

การแก้ปัญหา


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

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

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


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

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

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

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

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


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

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

หมายเหตุ เสมอทดสอบรหัสแก้ไขในสภาพแวดล้อมการควบคุมก่อนที่คุณนำไปใช้แก้ไขปัญหากับคอมพิวเตอร์ของคุณผลิต
เมื่อต้องการแก้ไขปัญหานี้ ให้ทำตามขั้นตอนเหล่านี้:
  1. เพิ่มฟังก์ชันใหม่ในตารางรอบระยะเวลาบัญชี (50) เป็นดังนี้:
    PROCEDURE GetFiscalYearEndtDate@9(ReferenceDate@1000 : Date) : Date;VAR
    AccountingPeriod@1001 : Record 50;
    BEGIN
    WITH AccountingPeriod DO BEGIN
    SETRANGE("New Fiscal Year",TRUE);
    SETRANGE("Starting Date",0D,ReferenceDate);
    IF FINDLAST THEN
    SETRANGE("Starting Date");
    IF FIND('>') THEN
    EXIT("Starting Date" - 1);
    END;
    END;
  2. เพิ่มฟังก์ชันใหม่ในตารางรอบระยะเวลาบัญชี (50) เป็นดังนี้:
    PROCEDURE GetFiscalYearStarttDate@10(ReferenceDate@1000 : Date) : Date;VAR
    AccountingPeriod@1001 : Record 50;
    BEGIN
    WITH AccountingPeriod DO BEGIN
    SETRANGE("New Fiscal Year",TRUE);
    SETRANGE("Starting Date",0D,ReferenceDate);
    IF FINDLAST THEN
    EXIT("Starting Date")
    END;
    END;
  3. เพิ่มตัวแปรใหม่ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082), และระบุตัวแปรดังนี้:
    • ชื่อ: CustomerSalesYTD
    • ชนิดข้อมูล:เรกคอร์ด
    • ชนิดย่อย:ลูกค้า(18)
  4. เพิ่มตัวแปรใหม่ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082), และระบุตัวแปรดังนี้:
    • ชื่อ: AccountingPeriod
    • ชนิดข้อมูล:คอร์ด
    • ชนิดย่อย:รอบระยะเวลาบัญชี(50)
  5. เพิ่มตัวแปรใหม่ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082), และระบุตัวแปรดังนี้:
    • ชื่อ: StartDate
    • ชนิดข้อมูล:วัน
  6. เพิ่มตัวแปรใหม่ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082), และระบุตัวแปรดังนี้:
    • ชื่อ: EndDate
    • ชนิดข้อมูล:วัน
  7. เปลี่ยนแปลงรหัสนี้ในแบบฟอร์ม OnAfterGetRecordทริกเกอร์ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082) เป็นดังนี้:
    รหัสที่มีอยู่
    ...SETRANGE("No.");

    IF CurrentDate <> WORKDATE THEN BEGIN
    CurrentDate := WORKDATE;
    END;

    SETRANGE("Date Filter",0D,CurrentDate);
    CALCFIELDS(
    Balance,"Balance (LCY)","Balance Due","Balance Due (LCY)",
    "Outstanding Orders (LCY)","Shipped Not Invoiced (LCY)");

    TotalAmountLCY := "Balance (LCY)" + "Outstanding Orders (LCY)" + "Shipped Not Invoiced (LCY)" + "Outstanding Invoices (LCY)";

    CALCFIELDS(

    // Delete the following line.
    "Sales (LCY)","Profit (LCY)","Inv. Discounts (LCY)","Inv. Amounts (LCY)","Pmt. Discounts (LCY)",

    "Pmt. Disc. Tolerance (LCY)","Pmt. Tolerance (LCY)",
    "Fin. Charge Memo Amounts (LCY)","Cr. Memo Amounts (LCY)","Payments (LCY)",
    "Reminder Amounts (LCY)","Refunds (LCY)","Other Amounts (LCY)");
    SETRANGE("Date Filter",0D,CurrentDate);
    ...
    รหัสแทน
    ...SETRANGE("No.");

    IF CurrentDate <> WORKDATE THEN BEGIN
    CurrentDate := WORKDATE;
    END;

    // Add the following lines.
    StartDate := AccountingPeriod.GetFiscalYearStarttDate(CurrentDate);
    EndDate := AccountingPeriod.GetFiscalYearEndtDate(CurrentDate);
    CustomerSalesYTD := Rec;
    CustomerSalesYTD.SETRANGE("Date Filter",StartDate,EndDate);
    CustomerSalesYTD.CALCFIELDS("Sales (LCY)");
    "Sales (LCY)" := CustomerSalesYTD."Sales (LCY)";
    // End of the lines.

    SETRANGE("Date Filter",0D,CurrentDate);
    CALCFIELDS(
    Balance,"Balance (LCY)","Balance Due","Balance Due (LCY)",
    "Outstanding Orders (LCY)","Shipped Not Invoiced (LCY)");

    TotalAmountLCY := "Balance (LCY)" + "Outstanding Orders (LCY)" + "Shipped Not Invoiced (LCY)" + "Outstanding Invoices (LCY)";

    CALCFIELDS(

    // Add the following line.
    "Profit (LCY)","Inv. Discounts (LCY)","Inv. Amounts (LCY)","Pmt. Discounts (LCY)",

    "Pmt. Disc. Tolerance (LCY)","Pmt. Tolerance (LCY)",
    "Fin. Charge Memo Amounts (LCY)","Cr. Memo Amounts (LCY)","Payments (LCY)",
    "Reminder Amounts (LCY)","Refunds (LCY)","Other Amounts (LCY)");
    SETRANGE("Date Filter",0D,CurrentDate);
    ...
  8. เพิ่มตัวแปรท้องถิ่นใหม่ในการYTD ยอดขาย (LCY) -OnDrillDownทริกเกอร์ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082), และระบุตัวแปรดังนี้:
    • ชื่อ: CustLedgEntry
    • ชนิดข้อมูล:เรกคอร์ด
    • ชนิดย่อย: ลูกค้า รายการบัญชีแยกประเภท(21)
  9. เพิ่มรหัสต่อไปนี้ในการYTD ยอดขาย (LCY) -OnDrillDownทริกเกอร์ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082):
    ...CustLedgEntry.RESET;
    CustLedgEntry.SETRANGE("Customer No.","No.");
    CustLedgEntry.SETRANGE("Posting Date",StartDate,EndDate);
    FORM.RUNMODAL(FORM::"Customer Ledger Entries",CustLedgEntry);
    ...
  10. ลบคำนิยามคำอธิบายเฉพาะของป้ายชื่อ 16 ในแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082) เป็นดังนี้:
    รหัสที่มีอยู่
    ...{ 16 ;Label ;220 ;6380 ;3300 ;440 ;ParentControl=4;
    CaptionML=ENU=Total Sales (LCY) }
    ...
    รหัสแทน
    ...{ 16 ;Label ;220 ;6380 ;3300 ;440 ;ParentControl=4}
    ...
  11. คุณต้องแก้ไขคำอธิบายเฉพาะหลายภาษาในหน้ากล่องแสดงข้อมูลย่อสถิติลูกค้า (9082) โดยตรง ตัวอย่างเช่น เปลี่ยนป้ายคำอธิบายจาก " Verkauf Vorjahr (MW) " กับ "Verkauf aktuelles Jahr (MW)" ในภาษาเยอรมัน คำอธิบายภาพที่แก้ไขแล้วต้องถูกส่งออกไปยังแฟ้ม "PageTranslations.txt" และจากนั้น คุณควรเรียกใช้กระบวนการการแปลงฟอร์มบนแฟ้ม
    หมายเหตุ กระบวนการแปลงแบบฟอร์มไม่ใช่ขั้นตอนบังคับสำหรับการโอนย้ายการแก้ไขจากแบบฟอร์มกล่องแสดงข้อมูลย่อสถิติลูกค้า (9082) ไปยังหน้ากล่องแสดงข้อมูลย่อสถิติลูกค้า (9082)

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

คุณต้องมีหนึ่งผลิตภัณฑ์ต่อไปนี้ติดตั้งอยู่เพื่อใช้โปรแกรมแก้ไขด่วนนี้:
  • Microsoft Dynamics NAV 2009 R2
  • Microsoft Dynamics NAV 2009 Service Pack ที่ 1 (SP1)

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

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

สถานะ


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