PDA

View Full Version : نحوه استفاده از شرط در کریستال



navid1n2000
شنبه 25 اردیبهشت 1389, 23:07 عصر
سلام
من یه متغیر دارم توی یه گزارش که بستگی به یک متغیر داره که از دیتابیس میاد اگه اون صفر باشه یه فرمول داره و اگه صفر نباشه یه فرمول دیگه
من چطور می تونم اینو بسازم
میدونم که باید از if استفاده کنم اما نمی دونم چطور توی formul editor بنویسم اگه صفر بود این کارو بکن اگه صفر نبود این یکی کارو

2farsoft
یک شنبه 26 اردیبهشت 1389, 08:45 صبح
یک formula field جدید بسازید و کدش رو به این صورت تعریف کنید

if (YOUR FIELD=0 then FORMULA1 else FORMULA2)

navid1n2000
یک شنبه 26 اردیبهشت 1389, 10:07 صبح
یک formula field جدید بسازید و کدش رو به این صورت تعریف کنید

if (YOUR FIELD=0 then FORMULA1 else FORMULA2)
میشه یه مثال عملی بدین

2farsoft
یک شنبه 26 اردیبهشت 1389, 11:33 صبح
شما بگید چه کاری می خواید بکنید تا من روی همون براتون مثال بزنم

منظورم از YOUR FEILD تو مثال قبلی یه فیلد از دیتابیس که از فیلد های دیتابیس یا یه FRMULA FIELD که از report fields انتخاب میکنید. به جای FORMAULA1 و FORMULA2 هم فرمول های خودتون رو بذارید.مثلاً تو مثال زیر اگر field1 که از table1 انتخاب شده مساوی 0 باشه خود field1 رو برمیگرد وگرنه field1+20 رو بر میگردونه

if ({table1.field1}=0 then {table1.field1} else {table1.field1}+20)

navid1n2000
یک شنبه 26 اردیبهشت 1389, 19:15 عصر
شما بگید چه کاری می خواید بکنید تا من روی همون براتون مثال بزنم

منظورم از YOUR FEILD تو مثال قبلی یه فیلد از دیتابیس که از فیلد های دیتابیس یا یه FRMULA FIELD که از report fields انتخاب میکنید. به جای FORMAULA1 و FORMULA2 هم فرمول های خودتون رو بذارید.مثلاً تو مثال زیر اگر field1 که از table1 انتخاب شده مساوی 0 باشه خود field1 رو برمیگرد وگرنه field1+20 رو بر میگردونه

if ({table1.field1}=0 then {table1.field1} else {table1.field1}+20)
من این شرط رو نوشتم اما جواب نمیده :

if {DataTable1.مانده سال قبل}=0 then {DataTable1.M1}
else if {DataTable1.M1}=0 then {DataTable1.M2}
else if {DataTable1.M2}=0 then {DataTable1.M3}
else if {DataTable1.M3}=0 then {DataTable1.M4}
else if {DataTable1.M4}=0 then {DataTable1.M5}
else if {DataTable1.M5}=0 then {DataTable1.M6}
else if {DataTable1.M6}=0 then {DataTable1.M7}
else if {DataTable1.M7}=0 then {DataTable1.M8}
else if {DataTable1.M8}=0 then {DataTable1.M9}
else if {DataTable1.M9}=0 then {DataTable1.M10}
else if {DataTable1.M10}=0 then {DataTable1.M11}
else if {DataTable1.M11}=0 then {DataTable1.M12}
else if {DataTable1.M12}=0 then 0
منظورم اینکه اگه مانده سال قبل صفر بود مانده 1 رو بزن اگه مانده 1 صفر بود مانده 2 ر وبزن اگه مانده 2 صفر بود مانده 3 ر وبزن و . . . اگه مانده 12 صفر بود عدد صفر رو بزن
میشه راهنمایی کنی که این کجاش غلطه

navid1n2000
یک شنبه 26 اردیبهشت 1389, 21:27 عصر
راه حلی نیست

2farsoft
شنبه 01 خرداد 1389, 15:25 عصر
من معذرت می خوام که دیر جواب می دم
این کد برای من جواب داد ولی به نظر روش خیلی جالبی نمیاد چرا توی select query این کار رو انجام نمیدید

if {@M}=0 then (if {@M1}=0 then (if {@M2}=0 then (if {@M3}=0 then {@M4} else {@M3}) else {@M2})else {@M1}) else {@M}

mn_zandy63
یک شنبه 02 خرداد 1389, 00:09 صبح
من این شرط رو نوشتم اما جواب نمیده :

if {DataTable1.مانده سال قبل}=0 then {DataTable1.M1}
else if {DataTable1.M1}=0 then {DataTable1.M2}
else if {DataTable1.M2}=0 then {DataTable1.M3}
else if {DataTable1.M3}=0 then {DataTable1.M4}
else if {DataTable1.M4}=0 then {DataTable1.M5}
else if {DataTable1.M5}=0 then {DataTable1.M6}
else if {DataTable1.M6}=0 then {DataTable1.M7}
else if {DataTable1.M7}=0 then {DataTable1.M8}
else if {DataTable1.M8}=0 then {DataTable1.M9}
else if {DataTable1.M9}=0 then {DataTable1.M10}
else if {DataTable1.M10}=0 then {DataTable1.M11}
else if {DataTable1.M11}=0 then {DataTable1.M12}
else if {DataTable1.M12}=0 then 0 منظورم اینکه اگه مانده سال قبل صفر بود مانده 1 رو بزن اگه مانده 1 صفر بود مانده 2 ر وبزن اگه مانده 2 صفر بود مانده 3 ر وبزن و . . . اگه مانده 12 صفر بود عدد صفر رو بزن
میشه راهنمایی کنی که این کجاش غلطه

سلام دوست من،
کدت به نظر درسته، فقط یه ایراد داره اونم اینکه Else نداره.
اگه اولی صفر نبود احتمالا {DataTable1.مانده سال قبل} رو باید نمایش بدی درسته؟
بنابراین یه چیزی تو مایه های

else {DataTable1.مانده سال قبل}
رو باید به کدت اضافه کنی.

موفق باشی