سؤال

أنا أستخدم حقل صيغة لتسلسل قيمتين عشريتين مفصولتين بشرطة.ومع ذلك، أريد أن تؤدي النتيجة إلى قطع كافة الأصفار الزائدة والنقاط العشرية غير الضرورية لكلا القيمتين.

على سبيل المثال، أريد أن تكون القيمتان 10 و8.5 "10 - 8.5".الآن يظهر "10.00 - 8.50".

الصيغة التي أستخدمها هي CSTR({field1}) + " - " + CSTR({field2}).

هل كانت مفيدة؟

المحلول

وأعتقد أن هذا هو ما كنت تبحث عن:

تحويل الأرقام العشرية إلى نص يظهر فقط غير صفر عشرية

وخصوصا هذا الخط قد تكون مفيدة:

StringVar text     :=  Totext ( {Your.NumberField} , 6 , ""  )  ;

وهو عشري لتحويلها المعلمة الأولى، المعلمة الثانية هي عدد الخانات العشرية والمعلمة الثالثة هي الفاصل لآلاف / الملايين الخ.

نصائح أخرى

CSTR({number_field}, 0, '')

والحرف النائب الثاني لعشرية.

والحرف النائب الأخير لآلاف الفاصل.

ولقد كتبت وظيفة بسيطة لذلك:

Function (stringVar param)
(
    Local stringVar oneChar := '0';
    Local numberVar strLen := Length(param);
    Local numberVar index := strLen;

    oneChar = param[strLen];

    while index > 0 and oneChar = '0' do
    (
        oneChar := param[index];
        index := index - 1;
    );

    Left(param , index + 1);
)

يمكنك أيضًا تجربة استخدام وظيفة الاستبدال:

استبدال("10.00"،".00"،"")

ولكنها لن تعمل إذا كانت هناك أرقام غير الصفر بعد العلامة العشرية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top