Miklix

การสร้างฟิลด์การค้นหาสำหรับมิติทางการเงินใน Dynamics 365

ที่ตีพิมพ์: 16 กุมภาพันธ์ 2025 เวลา 11 นาฬิกา 34 นาที 35 วินาที UTC
ปรับปรุงล่าสุด : 12 มกราคม 2026 เวลา 8 นาฬิกา 56 นาที 21 วินาที UTC

บทความนี้อธิบายวิธีการสร้างฟิลด์ค้นหาสำหรับมิติทางการเงินใน Dynamics 365 for Operations รวมถึงตัวอย่างโค้ด X++


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

Creating a Lookup Field for a Financial Dimension in Dynamics 365

ข้อมูลในโพสต์นี้อ้างอิงจาก Dynamics 365 for Operations แต่ส่วนใหญ่ก็สามารถนำไปใช้กับ Dynamics AX 2012 ได้เช่นกัน (ดูด้านล่าง)

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

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

โชคดีที่แอปพลิเคชันมาตรฐานมีแบบฟอร์มค้นหาที่สะดวก (DimensionLookup) ซึ่งสามารถใช้เพื่อวัตถุประสงค์นี้ได้ หากคุณระบุแอตทริบิวต์มิติที่ต้องการค้นหา

ขั้นแรก คุณต้องสร้างฟิลด์แบบฟอร์มก่อน ฟิลด์นี้สามารถอิงจากฟิลด์ในตารางหรือวิธีการแก้ไขก็ได้ ไม่สำคัญสำหรับฟังก์ชันการค้นหา แต่ไม่ว่าด้วยวิธีใดวิธีหนึ่ง ฟิลด์นั้นจะต้องใช้ชนิดข้อมูลเพิ่มเติม DimensionValue

จากนั้นคุณต้องสร้างตัวจัดการเหตุการณ์ OnLookup สำหรับฟิลด์นั้น ในการสร้างตัวจัดการเหตุการณ์ ให้คลิกขวาที่เหตุการณ์ OnLookup สำหรับฟิลด์ แล้วเลือก "คัดลอกวิธีการจัดการเหตุการณ์" จากนั้นคุณสามารถวางวิธีการจัดการเหตุการณ์ที่ว่างเปล่าลงในคลาสและแก้ไขจากที่นั่นได้

หมายเหตุ: วิธีการส่วนใหญ่ต่อไปนี้จะใช้ได้กับ Dynamics AX 2012 เช่นกัน แต่แทนที่จะสร้างตัวจัดการเหตุการณ์ คุณสามารถเขียนทับวิธีการค้นหาของฟิลด์ในฟอร์มได้

ตัวจัดการเหตุการณ์ควรมีลักษณะดังนี้ (เปลี่ยนชื่อฟอร์มและชื่อฟิลด์ตามความจำเป็น):

[
    FormControlEventHandler(formControlStr( MyForm,
                                            MyProductDimField),
                            FormControlEventType::Lookup)
]
public static void MyProductDimField_OnLookup(  FormControl _sender,
                                                FormControlEventArgs _e)
{
    FormStringControl   control;
    Args                args;
    FormRun             formRun;
    DimensionAttribute  dimAttribute;
    ;

    dimAttribute    =   DimensionAttribute::findByName('Product');
    args            =   new Args();
    args.record(dimAttribute);
    args.caller(_sender);
    args.name(formStr(DimensionLookup));
    formRun         =   classFactory.formRunClass(args);formRun.init();
    control         =   _sender as FormStringControl;
    control.performFormLookup(formRun);
}

อ่านเพิ่มเติม

หากคุณชอบโพสต์นี้ คุณอาจชอบคำแนะนำเหล่านี้ด้วย:


แชร์บนบลูสกายแชร์บนเฟสบุ๊คแชร์บน LinkedInแชร์บน Tumblrแชร์บน Xแชร์บน LinkedInปักหมุดบน Pinterest

มิคเคล คริสเตนเซ่น

เกี่ยวกับผู้เขียน

มิคเคล คริสเตนเซ่น
ไมเคิล คือผู้สร้างและเจ้าของเว็บไซต์ miklix.com เขามีประสบการณ์เป็นโปรแกรมเมอร์/นักพัฒนาซอฟต์แวร์คอมพิวเตอร์มืออาชีพมากว่า 20 ปี และปัจจุบันทำงานเต็มเวลาให้กับบริษัทไอทีขนาดใหญ่แห่งหนึ่งในยุโรป เมื่อไม่ได้เขียนบล็อก เขาจะใช้เวลาว่างไปกับความสนใจ งานอดิเรก และกิจกรรมต่างๆ มากมาย ซึ่งในระดับหนึ่งอาจสะท้อนให้เห็นได้จากหัวข้อต่างๆ มากมายที่กล่าวถึงในเว็บไซต์นี้