# مباحث متفرقه برنامه نویسی > گزارش سازی با Crystal Report >  فرمول نویسی در کریستال ریپورت

## ZahraBabaei

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

----------


## hasan_esfahan

اگه فیلد از نوع عددی است


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

----------


## hasan_esfahan

اما در مورد :

راستی یه سوال دیگه هم اینکه من چطوری میتونم یک رشته عددی رو در کریستال ریپورتم به صورت حروف نمایش بدم ؟ مثلا 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

سلام 
من چطوری میتونم که از این کد استفاده کنم ؟

----------


## hasan_esfahan

کافی در کریستال ریپورت یک فرمول ایجاد کنید واین کد را داخل ان قرار بدی یا روی فیلد مورد نظر کلیک راست و select export و یا...........

----------


## mojtaba1363

سلام دوستان عزیز من یک می خوام از اطلاعات یک نفر در جدول گزارش تهیه کنم همه اطلاعات جدول رو نیاز ندارم کسی میتونه کمک کنه

----------


## hasan_esfahan

> سلام دوستان عزیز من یک می خوام از اطلاعات یک نفر در جدول گزارش تهیه کنم همه اطلاعات جدول رو نیاز ندارم کسی میتونه کمک کنه


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

----------


## mojtaba1363

دوست عزيز
من يك برنامه دارم قصد دارم1 -ميخوام از اطلاعات يك نفر ( يك ركورد )گزارش تهيه كنم يعني وقتي شماره دانشجويي از طريق كاربر وارد شد فقط اطلاعات همان شخص چاپ شود    (فيلتر كردن براساس شماره دانشجويي) و 2-ميخوام بين دو تاريخ سرچ انجام بدم مثلا افرادي كه از تاريخ a تا تاريخ b ثبت نام شده اند را چاپ كنم 
 اگه براتون امكان داره كمكم كنيد

----------


## hasan_esfahan

https://barnamenevis.org/showthread.php?t=145776

----------


## mojtaba1363

دوست عزيز مقاله جامع و مفيدي بود ممنون مشكل اولم حل شد اما با مشكل دوم كه جستجو بين دوتاريخ است . هنوز نتونستم كاري كنم اگه ميشه در اين مورد هم به من كمك كنيد 
موفق باشي دوست عزيز

----------


## hasan_esfahan

در جای که فیلتر گذاری را انجام میدهید 

cr1.datadifintion.record selectionfourmul


مثلا بنویسید

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

----------

