A Dynamics AX 2012-ben valós átalakítása karakterláncra minden tizedesjegygel
Megjelent: 2025. február 16. 10:40:33 UTC
Utolsó frissítés: 2026. január 12. 8:50:48 UTC
Ebben a cikkben elmagyarázom, hogyan lehet egy lebegőpontos számot karakterlánccá konvertálni a Dynamics AX 2012-ben, miközben megőrizzük az összes tizedesjegyet, beleértve egy X++ kódpéldát is.
Convert a Real to String with All Decimals in Dynamics AX 2012
A bejegyzésben található információk a Dynamics AX 2012 R3 verzión alapulnak. Előfordulhat, hogy más verziókra nem érvényesek.
Időről időre előfordul, hogy valós számokat kell karakterlánccá alakítanom. Általában elég, ha csak átadom az strFmt() függvénynek, de az mindig két tizedesjegyre kerekít, ami nem mindig az, amit szeretnék.
Aztán ott van a num2str() függvény, ami jól működik, de előre tudni kell hozzá, hogy hány tizedesjegyet és karaktert szeretnél használni.
Mi van, ha csak egy karakterlánccá szeretnéd konvertálni a számot, minden számjeggyel és tizedesjegygel? Valamiért ez az, ami mindig arra késztet, hogy a Google-ben keressek rá, mert meglepően bonyolult, és olyan ritkán csinálom, hogy általában nem emlékszem pontosan, hogyan - a legtöbb programozási nyelvben azt várnám, hogy egyszerűen összefűzheted a valós számot egy üres karakterlánccal, de az X++ ezt nem támogatja.
Mindenesetre a legegyszerűbb módja ennek egy .NET hívás használata. Itt is több lehetőség van, speciális formázási lehetőségekkel és anélkül, de ha csak egy valós szám egyszerű karakterlánccá konvertálására van szükséged, akkor ez elegendő lesz:
Ha ezt a kódot az AOS-en kell futtatni (például egy kötegelt feldolgozásban), ne felejtse el először igényelni a szükséges kódhozzáférési engedélyt. Ebben az esetben egy ClrInterop típusú InteropPermissionre lesz szüksége a .NET kód meghívásához, így a teljes kódpélda valahogy így nézne ki:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Légy tudatában annak, hogy ez az egyszerű System::Convert függvény a rendszer aktuális területi beállítását használja a tizedesvessző karakterhez képest. Ez lehet, hogy nem jelent problémát számodra, de számomra, aki egy olyan területen élek, ahol a vesszőt használják tizedesjelként pont helyett, további feldolgozást igényelhet, ha például a karakterláncot egy olyan fájlban kell használni, amelynek más rendszerek számára is olvashatónak kell lennie.
További olvasmányok
Ha tetszett ez a bejegyzés, akkor ezek a javaslatok is érdekelhetik:
- A Dynamics AX 2012 SysOperation Framework gyors áttekintése
- Töröljön egy jogi személyt (vállalati fiókokat) a Dynamics AX 2012-ben
- "Nincs metaadatosztály meghatározva az adatszerződés objektumhoz" hiba a Dynamics AX 2012-ben
