יצירת שדה חיפוש עבור ממד פיננסי ב- Dynamics 365
פורסם: 16 בפברואר 2025 בשעה 11:35:32 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);
}