Dynamics 365'te Finansal Boyut için Bir Arama Alanı Oluşturma
Yayınlandı: 16 Şubat 2025 11:34:09 UTC
Bu makalede, Dynamics 365 for Operations'ta bir finansal boyut için bir arama alanının nasıl oluşturulacağı açıklanmakta olup, bir X++ kod örneği de yer almaktadır.
Creating a Lookup Field for a Financial Dimension in Dynamics 365
Bu gönderideki bilgiler Dynamics 365 for Operations'a dayanmaktadır, ancak çoğu Dynamics AX 2012 için de geçerlidir (aşağıya bakın).
Yakın zamanda, tek bir finansal boyutun (bu durumda Ürün) belirtilmesinin mümkün olduğu yeni bir alan oluşturma göreviyle görevlendirildim. Elbette, yeni alan bu boyutun geçerli değerlerini de arayabilmelidir.
Bu, bir tabloda normal bir arama yapmaktan biraz daha karmaşıktır, ancak nasıl yapılacağını biliyorsanız, aslında o kadar da kötü değildir.
Neyse ki, standart uygulama, yalnızca hangi boyut niteliğinin aranacağını söylemeniz durumunda, bu amaç için kullanılabilecek kullanışlı bir arama formu (DimensionLookup) sağlar.
Öncelikle form alanının kendisini oluşturmanız gerekir. Bu bir tablo alanına veya bir düzenleme yöntemine dayalı olabilir, aramanın kendisi için önemli değildir, ancak bir şekilde DimensionValue genişletilmiş veri türünü kullanmalıdır.
Daha sonra alan için bir OnLookup olay işleyicisi oluşturmanız gerekir. Bir olay işleyicisi oluşturmak için, alan için OnLookup olayına sağ tıklayın ve ardından "Olay işleyicisi yöntemini kopyala"yı seçin. Daha sonra boş bir olay işleyicisi yöntemini bir sınıfa yapıştırabilir ve oradan düzenleyebilirsiniz.
Uyarı: Bunların çoğu Dynamics AX 2012 için de çalışır, ancak bir olay işleyicisi oluşturmak yerine form alanının arama yöntemini geçersiz kılabilirsiniz.
Olay işleyicisi aşağıdaki gibi görünmelidir (gerekirse form adını ve alan adını değiştirin):
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);
}