# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ابزارهای گزارش سازی >  ارسال پارامتر به Stimul report

## salimzare

سلام دوستان ، 
من با stimul report برای گزارش گیری از دیتا بیس کار می کنم . از همه چیش راضیم ولی نمی دونم چطوری می تونم بهش پارامتر پاس بدم .

لطفاً اگه کسی می دونه کمک کنه .

با تشکر

----------


## Afshin160

سلام ..
دوست عزيز در سايت خودش به صورت ويديويي توضيح داده ...
http://stimulsoft.com/ReportsNetVideos.aspx

----------


## salimzare

ممنون از پاسخت ، 
دوست من پارامتری که اون در سایت خودش توضیح داده در مورد پارامتر های ارسالی از طرف sql server هستش ، نه یک پارامتر ساده که از Code Behind بشه Handel کرد و مقدار داد یا مقدارش را تغییر داد . 

مشکل من دقیقاً اینه که می خوام تاریخ شمسی رو روی فرمم نشان بدم ، لطفاً اگه میشه یک مثال برام بزنید ، من خیلی تلاش کردم ولی نشد ، 

بازم از توجه شما خیلی ممنونم .

----------


## mkhsoft

سلام
خيلي راحت
تو استايمول يه متغير تعريف کن مثلا به نام mydate

حالا فرض کنيم تو برنامه اسم گزارشت re هست کافيه اين کد را بنويسي

   re["mydate"]=dateTime.Now.toString() ;

re.render();
re.show();

----------


## salimzare

با سلام و تشکر از پاسخ شما ، 
دوست عزیز من این کد رو هم نوشتم ولی مشکل هنوز باقیه
میشه یک لطف بکنین و یک نمونه برنامه بنویسین ؟
من هر کاری می کنم متغیر رو بدرستی نمی شناسه . و همش می گه متغییر رو پیدا نمیکنه ، تو رو خدا یکی کمک کنه
ایمیل من : 
salim.zarepour@gmail.com
salimyanisalam@yahoo.com

بازم پیشاپیش از لطف همه تشکر می کنم

----------


## salimzare

لطفاً یکی کمک کنه ، خیلی مهمه ، ممنون

----------


## saeedr22

با این دستور
CType(StiReport1.Pages("Page1").Components("Text4"), Stimulsoft.Report.Components.StiText).Text.Value = TextBox1.Text

----------


## salimzare

خیلی ممنون که جواب دادی ، میشه یکم بیشتر توضیح بدی ، در ضمن تو C#‎ که CType نداریم ، تو ز# از چی استفاده کنم . اگه میشه یکم راجع به اینکه این کد دقیقن داره چیکار میکنه توضیح بدین . خیلی ممنون

----------


## atryass

سلام واسه اينكه بخواي از تو كدت به گزارش مقدار پاس كني يه Variable تو گزارشت تعريف كن مثلا var1.
حالا از تو كد با كد زير مي توني بهش دسترسي اشته باشي:

rpt.Dictionary.Variables["var1"].Value = "مقداري كه مي خواي پاس بدي";

----------


## mir555

من از این پارامتر استفاده کردم ولی وقتی پارامتر عوض می کنم دوباره چاپ می زنم سیستم همون مقدار قبلیو چاپ می کنه تو ریپورت

rpt.Dictionary.Variables["var1"].Value = "مقداری که می خوای پاس بدی";

----------


## fakhravari

اگر ممکن سمپل بزارید برای دادن پارامتر

----------


## sh_abbasi

یعنی کسی نمی دونه چطور پارامتر ارسال کرد

----------


## aslan

سلام
دوستان قبلا در مورد ارسال پارامتر به استیمول بارها بحث شده است .
به این ترتیب عمل کنید :
با فرض اینکه پارامتر ارسالی شما از نوع string  میباشد . بایستی یک متغیر در فرم گزارشتون بسازید :
از سمت راست فرم به ترتیب : بخش :
Dictionary
Variables
کلیک راست روی Variables
New Variable ....
انتخاب نام مناسب ( مثلا  MyVar)
انتخاب Type مناسب : در اینمورد  string
بعد 
OK
اگر درست عمل کرده باشید در زیر Variables   متغیری بنام  MyVar  ایجاد خواهد شد
سپس
با فرض اینکه نام فایل گزارشتون rep  باشه کد مربوط به ارسال پارامتر بصورت زیر خواهد بود :

rep["MyVar"]=" من تلاش دارم نحوه ارسال پارامتر را یاد بگیرم";
rep.Compile();
                rep.Show();

----------


## aknj56

با سلام خدمت دوستان 
برای گذاشتن تاریخ شمسی در گزارش 
این طور عمل کن
   Dim t As New Stimulsoft.Report.Components.StiText
        '--------------------------------------------------------
        't = Me.StiReport1.GetComponentByName("data_print")
        't.Text = persian_date()
نام اون تکس باکس داخل گزارش رو من data_print گذاشتم 
بعد بیا مثل من که یک ماژول تاریخ شمسی رو تعریف کردم تعریف کن با نام persian _data و مقدار اون تکس باکس رو که من t تعریف کردم برابر تاریخ شمسی قرار بده
موفق باشید

----------


## JaVaD_1900

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

----------


## مجید آرتا

شما در نظر بگیرید یک Text داخل گزارش دارید و می خواهید از طریق سی شارپ متن این تکست رو تغییر یا به عبارتی پارامتر ارسال کنید
و پراپراتی name کنترل Text هستش text1 (توجه کنید در محیط Stimulsoft دارم عرض می کنم) خب می ریم سراغ سی شازپ

بنده میام در ابتدا این using هارو می نویسم:
ببینید اینجا بنده فرض می کنم شما کدهای مربوط به کزارشو نوشتین و اسم گزارش report هست.کد هارو قبل از کد مربوط به show کردن گزارش بنویسید*;using Stimulsoft.Report*
*;using Stimulsoft.Report.Components*
و تعریف می کنیم:*;()StiReport report=new StiReport
;()StiText txt= new StiText

;("txt=(StiText)sti.GetComponentByName("text1
;"txt.Text="In Matn Gharare Toye Report Namayesh Dade Beshe
*به همین راحتی
واسه کنترل های دیگه هم همین کارو انجام بدید 
برای مثال کنترل  image در محیط stimul پراپرتی name ش هست image1






*;()StiImage img=new StiImage
;("img=(StiImage)report.GetComponentByName("imag  e1
;"img.File=@"c:\ax.jpg*

----------


## missordoni

سلام.
برای ارسال پارامتر به استیمل سافت به این صورت عمل میکنیم:

(اول یه مطلبی توی پرانتز بگم که ارسال پارامتر برای چه منظوری استفاده میشه. مثلا فرض کنید شما یه تعداد رکورد توی دیتا بیس دارید که میخواید فقط رکوردهای تاریخ مشخصی رو توی گزارش گیری نشون بدید. اینجاست که باید تاریخ مورد نظر رو در قالب پارامتر به گزارشتون ارسال کنید)

حالا چطوری این کار رو میکنیم:
در برنامه ی استیمل سافت (Designer) این کار رو میکنیم:
1- روی پنل Dictionary قسمت Data Sources کلیک راست کنید و یک New Connection ایجاد کنید. (در پنجره Select Type Connection گزینه SQL Connection رو انتخاب کنید، اگر دیتا بیستون همین هست، در پنجره بعدی یک نام - معمولا نام بانک - انتخاب کنید و کانکشن استرینگ مورد نظر رو وارد کنید. کانکشن استرینگتون بستگی به دیتابیس خودتون داره. فیلدهای مورد نظر خودتون رو توی این استرینگ قرار بدید : 
Persist Security Info=False;Data Source=127.0.0.1;Initial Catalog=your bank name;User id=your sql id;Password=your sql password;
your bank name: اسم بانکی هست که توی دیتا بیس ساختید.
your sql id : آیدی مورد نظر که در زمان نصب اس کیو ال در انتخاب کردید
your sql password : پسوردی که در زمان نصب اس کیو ال انتخاب کردید.)

بعد از ساخت Connection مورد نظر در Dictionary روی اسمش کلیک راست کنید و New Data Source رو انتخاب کنید. در قسمت Connection، کانکشنی که در مرحله قبل ساختید رو انتخاب کنید. اوکی کنید و در مرحله بعد در Select Data، گزینه ی new Query رو انتخاب کنید.
در قسمت Query مورد نظرتون رو بنویسید.
مثلا من یه بانک دارم که یه جدول داره به اسم tblTest. این جدول 2 تا ستون داره. ID از نوع int   و name  از نوع string
در قسمت query این رو مینویسم :
SELECT id, name FROM tblTest WHERE iD = @param1

بعد در قسمت پایین همین صفحه گزینه new parameter رو انتخاب میکنم و یک پارامتر از نوع string و به اسم param1 میسازم.
میتونم ستون هایی که در کوئری بالا انتخاب کردم رو برای گزارش گیری اینجا هم تعریف کنم. پس گزینه new column رو میزنم و دو تا ستون به اسم name  و id با توجه به نوع هرکدوم انتخاب میکنم

کارمون در قسمت stimulsoft تموم شد.

حالا توی برنامه ی سی شارپ این کار رو میکنیم: (تحت ویندوز)


Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
stiReport1.Load(Environment.CurrentDirectory.ToStr  ing() + "\\Reporttest.mrt");
stiReport1["param1"] = 1;


stiReport1.Render(false);
this.stiViewerControl1.Report = stiReport1;

this.stiViewerControl1.Refresh();

فراموش نکنید باتوجه به این کدی که بالا هست، باید فایلی که توی stimulsoft درست کردید رو به اسم Reporttest.mrt ذخیره و کنار فایل exe برنامه ی خودتون قرار بدید

تموم شد.
موفق باشید
سوالی داشتید من در خدمتم. 


missordoni@gmail.com

----------

