Miklix

Mencipta Medan Carian untuk Dimensi Kewangan dalam Dynamics 365

Diterbitkan: 19 Mac 2025 pada 9:35:38 PTG UTC

Artikel ini menerangkan cara membuat medan carian untuk dimensi kewangan dalam Dynamics 365 for Operations, termasuk contoh kod X++.


Halaman ini telah diterjemahkan mesin daripada bahasa Inggeris untuk menjadikannya boleh diakses oleh seramai mungkin orang. Malangnya, terjemahan mesin belum lagi merupakan teknologi yang sempurna, jadi ralat boleh berlaku. Jika anda mahu, anda boleh melihat versi bahasa Inggeris asal di sini:

Creating a Lookup Field for a Financial Dimension in Dynamics 365

Maklumat dalam pos ini adalah berdasarkan Dynamics 365 for Operations, tetapi kebanyakannya juga akan berfungsi untuk Dynamics AX 2012 (lihat di bawah).

Saya baru-baru ini ditugaskan untuk mencipta medan baru di mana adalah mungkin untuk menentukan satu dimensi kewangan, dalam kes ini Produk. Sudah tentu, medan baru ini juga harus dapat melihat nilai sah bagi dimensi ini.

Ini agak lebih rumit daripada pencarian biasa dalam jadual, tetapi jika anda tahu caranya, ia sebenarnya tidak terlalu sukar.

Untungnya, aplikasi standard menyediakan borang pencarian yang mudah (DimensionLookup) yang boleh digunakan untuk tujuan tersebut, jika anda memberitahunya atribut dimensi mana yang hendak dicari.

Pertama, anda perlu mencipta medan borang itu sendiri. Ini boleh berdasarkan medan jadual atau kaedah suntingan, tidak penting untuk pencarian itu sendiri, tetapi dalam satu cara atau lain, ia mesti menggunakan jenis data lanjutan DimensionValue.

Anda kemudian perlu mencipta pengendali acara OnLookup untuk medan itu. Untuk mencipta pengendali acara, klik kanan pada acara OnLookup untuk medan itu, kemudian pilih "Salin kaedah pengendali acara". Anda boleh menampal kaedah pengendali acara kosong ke dalam kelas dan mengeditnya dari sana.

Perhatian: Kebanyakan ini juga akan berfungsi untuk Dynamics AX 2012, tetapi sebaliknya mencipta pengendali acara, anda boleh menimpa kaedah pencarian medan borang.

Pengendali acara mesti kelihatan seperti ini (gantikan nama borang dan nama medan seperti yang diperlukan):

[
    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);
}
Kongsi di BlueskyKongsi di FacebookKongsi di LinkedInKongsi di TumblrKongsi di XKongsi di LinkedInSematkan pada Pinterest

Mikkel Christensen

Mengenai Pengarang

Mikkel Christensen
Mikkel ialah pencipta dan pemilik miklix.com. Beliau mempunyai lebih 20 tahun pengalaman sebagai pengaturcara komputer/pembangun perisian profesional dan kini bekerja sepenuh masa untuk sebuah syarikat IT Eropah yang besar. Apabila tidak menulis blog, dia menghabiskan masa lapangnya dengan pelbagai minat, hobi dan aktiviti, yang mungkin sedikit sebanyak dapat dilihat dalam pelbagai topik yang diliputi di laman web ini.