PDA

View Full Version : فرمول نویسی در کریستال ریپورت



ZahraBabaei
دوشنبه 21 بهمن 1387, 16:56 عصر
سلام من میخوام حاصل ضرب دو تا از فیلدهای dataTable ام رو با استفاده از فرمول یک جای نمایش بدم ولی پیغام There is an error in this formula رو میده کسی میدونه که علتش چیه و باید براش چکار کرد ؟راستی یه سوال دیگه هم اینکه من چطوری میتونم یک رشته عددی رو در کریستال ریپورتم به صورت حروف نمایش بدم ؟ مثلا 22330 رو بیست و دو هزار و سیصد و سی بنویسم .اگر کسی میدونه لطفا منو راهنمایی کنه .

با تشکر

hasan_esfahan
جمعه 02 اسفند 1387, 13:54 عصر
اگه فیلد از نوع عددی است



numbervar t1:={table11.id1};
numbervar t2:={table11.id2};
numbervar t3:=t1*t2;
t3;

hasan_esfahan
جمعه 02 اسفند 1387, 13:56 عصر
اما در مورد :

راستی یه سوال دیگه هم اینکه من چطوری میتونم یک رشته عددی رو در کریستال ریپورتم به صورت حروف نمایش بدم ؟ مثلا 22330 رو بیست و دو هزار و سیصد و سی بنویسم .اگر کسی میدونه لطفا منو راهنمایی کنه .

در این مورد باید کد نویسی کنید که بیشر از دستورات switch case استفاده می شود من امروز بیکار بودم یکمی از کد را برات نوشتم البته روش ابتدایی ولی صد در صد جواب می دهد




numbervar mycount1;
numbervar countdahi1;
numbervar count1;
stringvar mystr1;

whileprintingrecords;
mycount1:=mycount1+1;
count1:=mycount1;
mystr1:="";

/////////////betwin 20 to 99
if (count1>19)and(count1<100) then
countdahi1:=count1-(count1 mod 10);
select countdahi1
case 20:
mystr1:=" بیست "
case 30:
mystr1:=" سی "
case 40:
mystr1:=" چهل "
case 50:
mystr1:=" پنجاه "
case 60:
mystr1:=" شصت "
case 70:
mystr1:=" هفتاد "
case 80:
mystr1:=" هشتاد "
case 90:
mystr1:=" نود ";
if (count1>19)and(count1<100) then
count1:=count1 mod 10;
/////////////betwin 10 to 19
select count1
case 10:
mystr1:=" ده "
case 11:
mystr1:=" یازده "
case 12:
mystr1:=" دوازده "
case 13:
mystr1:=" سیزده "
case 14:
mystr1:=" چهارده "
case 15:
mystr1:=" پانزده "
case 16:
mystr1:=" شانزده "
case 17:
mystr1:=" هفده "
case 18:
mystr1:=" هجده "
case 19:
mystr1:="نوزده";
/////////////betwin 1 to 10
select count1
case 1:
mystr1:=mystr1+" یک "
case 2:
mystr1:=mystr1+" دو "
case 3:
mystr1:=mystr1+" سه "
case 4:
mystr1:=mystr1+" چهار "
case 5:
mystr1:=mystr1+" پنج "
case 6:
mystr1:=mystr1+" شش "
case 7:
mystr1:=mystr1+" هفت "
case 8:
mystr1:=mystr1+" هشت "
case 9:
mystr1:=mystr1+"نه";
mystr1;

ZahraBabaei
شنبه 03 اسفند 1387, 13:04 عصر
سلام
من چطوری میتونم که از این کد استفاده کنم ؟

hasan_esfahan
چهارشنبه 07 اسفند 1387, 14:19 عصر
کافی در کریستال ریپورت یک فرمول ایجاد کنید واین کد را داخل ان قرار بدی یا روی فیلد مورد نظر کلیک راست و select export و یا...........

mojtaba1363
پنج شنبه 27 فروردین 1388, 20:14 عصر
سلام دوستان عزیز من یک می خوام از اطلاعات یک نفر در جدول گزارش تهیه کنم همه اطلاعات جدول رو نیاز ندارم کسی میتونه کمک کنه

hasan_esfahan
پنج شنبه 27 فروردین 1388, 22:15 عصر
سلام دوستان عزیز من یک می خوام از اطلاعات یک نفر در جدول گزارش تهیه کنم همه اطلاعات جدول رو نیاز ندارم کسی میتونه کمک کنه


دوست عزیز یک تاپیک ایجاد کن و سوالتم دقیق تر مطرح کن برای این کار وقتی وارد گزارش سازی می شوید بر روی موضوع جدید کلیک کن

mojtaba1363
یک شنبه 30 فروردین 1388, 02:20 صبح
دوست عزيز
من يك برنامه دارم قصد دارم1 -ميخوام از اطلاعات يك نفر ( يك ركورد )گزارش تهيه كنم يعني وقتي شماره دانشجويي از طريق كاربر وارد شد فقط اطلاعات همان شخص چاپ شود (فيلتر كردن براساس شماره دانشجويي) و 2-ميخوام بين دو تاريخ سرچ انجام بدم مثلا افرادي كه از تاريخ a تا تاريخ b ثبت نام شده اند را چاپ كنم
اگه براتون امكان داره كمكم كنيد

hasan_esfahan
یک شنبه 30 فروردین 1388, 17:11 عصر
http://barnamenevis.org/forum/showthread.php?t=145776

mojtaba1363
دوشنبه 31 فروردین 1388, 01:07 صبح
دوست عزيز مقاله جامع و مفيدي بود ممنون مشكل اولم حل شد اما با مشكل دوم كه جستجو بين دوتاريخ است . هنوز نتونستم كاري كنم اگه ميشه در اين مورد هم به من كمك كنيد
موفق باشي دوست عزيز

hasan_esfahan
دوشنبه 31 فروردین 1388, 13:14 عصر
در جای که فیلتر گذاری را انجام میدهید


cr1.datadifintion.record selectionfourmul


مثلا بنویسید


cr1.datadifintion.record selectionfourmul="{tb1.date}<1387/02/01";