Dynamics AX 2012 дээрх бүх аравтын тоо бүхий бодит утгыг мөр болгон хөрвүүлэх
Нийтэлсэн: 2025 оны гуравдугаар сарын 19 21:34:12 (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 дээр ажиллуулах бол (жишээлбэл, батч ажлын үед), эхлээд шаардлагатай кодын хандалтын эрхийг шалгахыг санаарай. Энэ тохиолдолд та .NET кодыг дуудхаар ClrInterop төрлийн InteropPermission хэрэгтэй болно, тиймээс бүрэн кодын жишээ дараах байдлаар харагдах болно:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Энэ энгийн System::Convert функц нь системийн одоогийн орон нутгийн тохиргоог ашигладаг бөгөөд энэ нь арван хоёртын оронд оролт ашиглах үед асуудал гарахгүй байж болох ч, надад кома тэмдэгтийг тоон оронд ашигладаг бүс нутагт амьдардаг тул, хэрвээ строкийг жишээ нь бусад системд уншигдах ёстой файлын хэлбэрт оруулах шаардлагатай бол, илүү нарийн боловсруулах шаардлагатай байж болох юм.