Dynamics AX 2012-də Bütün Decimals ilə Bir Realı String-ə Çevir
Nəşr olundu: 16 fevral 2025 at 10:47:36 UTC
Bu məqalədə X++ kod nümunəsi daxil olmaqla Dynamics AX 2012-də bütün ondalıqları qoruyarkən üzən nöqtə nömrəsini bir stringə necə çevirmək lazım olduğunu izah edirəm.
Convert a Real to String with All Decimals in Dynamics AX 2012
Bu postdakı məlumatlar Dynamics AX 2012 R3 əsasında hazırlanıb. Digər versiyalar üçün də keçərli ola bilər və ya olmaya bilər.
Hər dəfə bir dəfə real ədədi ipə çevirmək lazımdır. Adətən, sadəcə strFmt() -ə ötürmək kifayətdir, amma bu funksiya həmişə iki onluqla yuvarlanır. Bu heç də həmişə istədiyim kimi olmur.
Bundan sonra num2str() funksiyası da var. Bu funksiya yaxşı işləyir, amma nə qədər ondalıq və xarakter istədiyinizi əvvəlcədən bilməyinizi tələb edir.
Bəs əgər siz sadəcə rəqəmin bir stringə çevrilməsini istəyirsinizsə, bütün rəqəmlər və ondalıqlar varsa, onda necə? Müəyyən səbəblərdən, bu, həmişə mənə Googling olan bir şeydir, çünki bu, təəccüblü şəkildə gizli edir və mən bunu o qədər nadir hallarda edirəm ki, adətən necə - əksər proqramlaşdırma dillərində, mən gözləyərdim ki, siz sadəcə realı boş bir ipə bir-biri ilə bir-biri ilə bir-birinizə qoşa bilərsiniz, amma X++ bunu dəstəkləmir.
Hər nə olursa olsun, bunu etmək üçün tapdığım ən asan yol .NET zəngindən istifadə etməkdir. Burada da bir neçə variant var, inkişaf etmiş formatlama üçün seçimlərlə və olmadan. Amma əgər siz sadəcə realın həqiqətən sadə bir şəkildə stringə çevrilməsini istəyirsinizsə, bu kifayət edəcək:
Əgər bu kod AOS-da (məsələn, toplu işdə) işləniləcəksə, əvvəlcə lazımi koda giriş icazəsini iddia etməyi unutmayın. Bu halda . NET kodu çağırmaq üçün ClrInterop tipinin InteropPermission-a ehtiyacınız olacaq. Beləliklə, tam kod nümunəsi belə bir şey görünərdi:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Yadda saxlayın ki, bu sadə System::Convert funksiyası ondalıq nöqtə xarakterinə görə sistemin hazırkı lokaliyindən istifadə edir. Bu sizin üçün məsələ olmaya bilər, amma mənim üçün, məsələn, digər sistemlər tərəfindən oxunmalı olan faylda ipdən istifadə etmək lazımdırsa, onda bu, daha çox işlənmə tələb edə bilər.