تحويل رقم حقيقي إلى سلسلة نصية مع جميع الأرقام العشرية في Dynamics AX 2012
نُشرت: ١٦ فبراير ٢٠٢٥ م في ١٠:٤٠:٢٣ ص UTC
آخر تحديث: ١٢ يناير ٢٠٢٦ م في ٨:٥٠:٤٢ ص UTC
في هذه المقالة، أشرح كيفية تحويل رقم الفاصلة العائمة إلى سلسلة نصية مع الحفاظ على جميع الأرقام العشرية في Dynamics AX 2012، بما في ذلك مثال على كود X++.
Convert a Real to String with All Decimals in Dynamics AX 2012
تستند المعلومات الواردة في هذا المنشور إلى Dynamics AX 2012 R3. وقد تكون صالحة أو غير صالحة للإصدارات الأخرى.
أحتاج بين الحين والآخر إلى تحويل عدد حقيقي إلى سلسلة نصية. عادةً ما يكفي تمريره إلى دالة strFmt()، لكن هذه الدالة تقرب العدد دائمًا إلى منزلتين عشريتين، وهو ما لا أريده دائمًا.
ثم هناك دالة num2str()، والتي تعمل بشكل جيد، ولكنها تتطلب منك معرفة عدد المنازل العشرية والأحرف التي تريدها مسبقًا.
ماذا لو أردتَ تحويل الرقم إلى سلسلة نصية، بكل أرقامه العشرية؟ لسببٍ ما، هذا ما يدفعني دائمًا للبحث عنه في جوجل، لأنه من الصعب جدًا القيام به، ونادرًا ما أفعله لدرجة أنني لا أتذكر الطريقة بالضبط - في معظم لغات البرمجة، أتوقع أنه يمكنك ببساطة دمج الرقم الحقيقي مع سلسلة نصية فارغة، لكن X++ لا تدعم ذلك.
على أي حال، أسهل طريقة وجدتها للقيام بذلك هي استخدام استدعاء .NET. هناك خيارات متعددة هنا أيضًا، مع خيارات للتنسيق المتقدم وبدونها، ولكن إذا كنت تريد فقط تحويلًا بسيطًا جدًا لقيمة حقيقية إلى سلسلة نصية، فسيكفي هذا:
إذا كان سيتم تشغيل هذا الكود على نظام التشغيل AOS (على سبيل المثال في مهمة دفعية)، فتذكر التحقق من أذونات الوصول اللازمة للكود أولاً. في هذه الحالة، ستحتاج إلى إذن InteropPermission من نوع ClrInterop لاستدعاء كود .NET، لذا سيبدو مثال الكود الكامل كالتالي:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
انتبه إلى أن دالة System::Convert البسيطة هذه تستخدم إعدادات اللغة الحالية للنظام فيما يتعلق بفاصلة الأرقام العشرية. قد لا يمثل هذا مشكلة بالنسبة لك، ولكن بالنسبة لي، الذي أعيش في منطقة تُستخدم فيها الفاصلة بدلاً من النقطة كفاصلة عشرية، فقد يتطلب الأمر معالجة إضافية إذا كانت السلسلة النصية، على سبيل المثال، بحاجة إلى استخدامها في ملف يجب أن يكون قابلاً للقراءة بواسطة أنظمة أخرى.
قراءات إضافية
إذا أعجبك هذا المنشور، فقد تعجبك أيضًا هذه الاقتراحات:
- نظرة عامة سريعة على إطار عمل Dynamics AX 2012 SysOperation
- كيفية تكرار عناصر Enum من كود X++ في Dynamics AX 2012
- تنسيق السلسلة باستخدام الماكرو وstrFmt في Dynamics AX 2012
