PDA

View Full Version : جلوگیری از روند شدن خودکار در ریپورت



akobar
سه شنبه 30 شهریور 1389, 01:46 صبح
سلام
من وقتی دارم فاکتور چاپ میکنم مثلا عدد 999.999 به 1000 تبدیل میشه
اگه بخوام اعدادم روند نشن و تا 3 رقم اعشار در ریپورت نمایش داده بشن چی کار کنم
مرسی

Javad_raouf
چهارشنبه 07 مهر 1389, 20:03 عصر
کسی نیست جواب بده؟

akobar
پنج شنبه 08 مهر 1389, 01:41 صبح
سلام
میتونی قسمت decimal آبجکتتو به 3 و round را به .0001 تغییر بدی تا عدد 999.999 را نشون بده

Javad_raouf
پنج شنبه 08 مهر 1389, 11:38 صبح
سلام
میتونی قسمت decimal آبجکتتو به 3 و round را به .0001 تغییر بدی تا عدد 999.999 را نشون بده
مشکل این روش اینه که وقتی عدد اعشار نداشته باشه ( مثل 152 ) عدد رو به صورت زیر نشون میده:
152.000
و این خیلی بده
-------------------------
از اونجایی که کسی توی این سایت جواب تاپیک رو بلد نبود و یا حوصله گذاشتنشو نداشت بنده دیشب چندین ساعت داشتم روی این قضیه کار می کردم و تونستم یک کارایی بکنم:

فرض کنید اسم فیلد عددی شما {show_sanad;1.Tedad} باشه
بعد قرار دادن این فیلد در گزارش بر روی آن راست کلیک کرده و گزینه Format Object را می زنید
در سر برگ Number Style را به "-1,123" تغییر می دهید و سپس بر روی گزینه Customize کلیک می کنید
Desimals رو به حالت "1.000" و Rounding رو به حالت "0.001" تغییر می دهیم

توضیحات:تا اینجا با این تنظیمات فیلد خود را اعشاری کردید و فیلد اگر اعشاری هم نباشد جای اعشار سه تا صفر گذاشته می شود

برای اینکه اگر فیلد اعشاری نبود به صورت اعشاری نشان داده نشود باید برنامه نویسی کنیم
جلوی گزینه Desimals یک دکمه وجود دارد که روی آن عکس مداد است و نوشته "X-2"
بر روی این دکمه کلیک می کنیم
پنجره ی Formula workshop باز می شود در اینکه کد زیر را می نویسیم:

if({show_sanad;1.Tedad}-Int ({show_sanad;1.Tedad})>0) then
3
else
0
این کد بدین معنی است که اگر فیلد {show_sanad;1.Tedad} اعشاری بود Decimals آن 3 باشد وگرنه 0 باشد
به همین راحتی
همچنین می توانید هر طور دیگر که خواستید بنا به نیاز خود کد را تغییر دهید

akobar
جمعه 09 مهر 1389, 12:33 عصر
میتونیم این کد را هم بنویسیم


if round field=field then 0 else 3
برای اینکه این کد کار کنه پرانتز های تابع round را بذارین
من نتونستم چون به هم میریخت