Miklix

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

ที่ตีพิมพ์: 16 กุมภาพันธ์ 2025 เวลา 11 นาฬิกา 34 นาที 35 วินาที UTC
ปรับปรุงล่าสุด : 16 กุมภาพันธ์ 2025 เวลา 11 นาฬิกา 35 นาที 14 วินาที 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 ปี และปัจจุบันทำงานเต็มเวลาให้กับบริษัทไอทีขนาดใหญ่แห่งหนึ่งในยุโรป เมื่อไม่ได้เขียนบล็อก เขาจะใช้เวลาว่างไปกับความสนใจ งานอดิเรก และกิจกรรมต่างๆ มากมาย ซึ่งในระดับหนึ่งอาจสะท้อนให้เห็นได้จากหัวข้อต่างๆ มากมายที่กล่าวถึงในเว็บไซต์นี้