# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ابزارهای گزارش سازی > سوال: نمایش داده نشدن گزارش stimul سافت؟ هیچ اروری هم نمیده!!

## r4hgozar

سلام دوستان.
من می خوام گزارشم رو تو خود محیط برنامه نمایش بدم. یک stiViewerControl1 هم به صفحه اضافه کردم و از کد زیر هم استفاده می کنم.
اما نه اروری میده و نه چیزی نمایش میده!!!


string conectionString = @"data source=(LocalDB)\v11.0;attachdbfilename=|DataDirec  tory|\TestdbWinform1.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;";
            stiReport.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("conec  tion",conectionString));
            stiReport.Load(@"C:\Users\nabim\documents\visual studio 2013\Projects\WindowsFormsApplicationtest\WindowsF  ormsApplicationtest\Report\ReportTblName.mrt");
            stiViewerControl1.Report = stiReport;

----------


## arash_flag

سلام دوست عزیز من هر وقت بخام از 
*stimul   استفاده کنم یک component  به نام sti report روی فرم قرار میدهم* و بعد ی راست کلیک و بعد design 
و به صورت ویزارد con میسازم  طراحی رو انجان میدهم .
و بعد در پشت btn  مینیویسم : stireport1.show();
روی پرینتر هم تست کردم جواب داده
موفق باشی

----------


## r4hgozar

درسته.
اما شما وقتی از متد show استفاده می کنید فرم گزارش رو براتون باز می کنه.
در حالی که من می خوام در خود فرم نمایش داده بشه. یعنی در خود ابزار stiViewerControl1  که در صفحم هست

----------


## arash_flag

بله درسته - من این حالت رو کار نکردم .تا امشب سعی میکنم کار کنم -فعلا درگیر یاد گرفتن ارسال ایمیل یاهو هستم.
اما برای ی برنامه من ی btn  برا پیش نمایش گذاشتم  و همین کار رو کردم و برای چاپ هم از متد print استفاده کردم
:d

----------


## r4hgozar

کسی نیست جواب بده؟!!!!

----------


## khokhan

> کسی نیست جواب بده؟!!!!


..................................................  ...................
if (ds.Tables[0].Rows.Count > 0)
            {

               
                Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
                stiReport1.Load(System.Windows.Forms.Application.S  tartupPath + @"\Report.mrt");
                stiReport1.RegData(ds.Tables[0]);
                //stiReport1.Design();
                //stiReport1.Show();
                stiReport1.Render(false);
                this.stiViewerControl1.Report = stiReport1;
                this.stiViewerControl1.Refresh();
            }

----------


## r4hgozar

ممنو اقا کوهان.
اما من وقتی از این کد استفاده می کنم یه صفحه گزارش تو فرم برام میاد اما هیچ مقداری توش نیست. خالی خالی و سفید.
واقعا موندم دیگه باید چی کار کنم.
این رو هم بگم که من گزارشم رو تو استیمول سافت بطور کامل ساختم، مثل اتصال به دیتابیس و آوردن مقادیر، فقط می خوام اینجا ازشون استفاده کنم.

خواهشا یکی کمک کنه/

----------


## aghayex

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

----------


## r4hgozar

سلام.
با کمکی که آقای کوهکن کرد مشکل نشون دادن گزارش ساده حل شد.
اما اگه گزارشم مقدار بخواد بگیره دچار مشکل میشم.
این هم کدی که استفاده می کنم.

 stiReport.Load(@"Report\ReportTblName.mrt");
            stiReport.Dictionary.Variables["name"].Value = txt_name.Text;
            stiReport.Render(false);
            this.stiViewerControl1.Report = stiReport;
            this.stiViewerControl1.Refresh();


این هم ارور

http://7uplod.ir/images/y55muhnznmebu4sfbmd0.png

----------


## r4hgozar

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

----------


## r4hgozar

یکی کمک کنه

----------


## khokhan

> یکی کمک کنه


با سلام 
بهترین کار اینه که پارامتر ها رو به شیوه دینامیک توی برنامه ایجاد کنی بعد هنگام اجرا ابتدا وارد محیط دیزاین بشین و متغیر ها رو در محل های مورد نظرتون قرار بدین
  در دفعات بعد تکه کد مربوط به ورود در محیط دیزاین رو کامنت کنین 
به این شکل :
 if (ds.Tables[0].Rows.Count > 0)
                {


                    Stimulsoft.Report.StiReport stiReport1 = new Stimulsoft.Report.StiReport();
                    stiReport1.Load(System.Windows.Forms.Application.S  tartupPath + @"\Report.mrt");
                    stiReport1.RegData(ds.Tables[0]);
                    //
                    Stimulsoft.Report.Dictionary.StiVariable parameter = new Stimulsoft.Report.Dictionary.StiVariable("Personal  Code", typeof(string));
                    parameter.Value = comboBox1.Text.ToString();
                    stiReport1.Dictionary.Variables["PersonalCode"] = parameter;
                    //
                    Stimulsoft.Report.Dictionary.StiVariable parameter2 = new Stimulsoft.Report.Dictionary.StiVariable("today", typeof(string));
                    parameter2.Value = label3.Text.ToString();
                    stiReport1.Dictionary.Variables["today"] = parameter2;

                    stiReport1.Render();
                    //stiReport1.Design();
                    //stiReport1.Show();
                    stiReport1.Render(false);
                    fr.stiViewerControl1.Report = stiReport1;
                    fr.stiViewerControl1.Refresh();
                    fr.ShowDialog();
                }

----------


## r4hgozar

اقای khokhan 
ممنون واقعا از راهنمایی های شما.
من با استفاده از راهنمایی های شما کدم رو به صورت زیر تغییر دادم. و تونستم به نتیجه برسم.
کد رو می زارم اینجا با بقیه دوستان هم استفاده کنن



string cn= @"data source=(LocalDB)\v11.0;attachdbfilename=|DataDirec  tory|\TestdbWinform1.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;";
            stiReport.Load(@"Report\Report.mrt");
            stiReport.Dictionary.Databases.Add(new Stimulsoft.Report.Dictionary.StiSqlDatabase("conec  tion", cn));
            stiReport.Dictionary.Variables["name"].Value = txt_name.Text;
            stiReport.Render(false);
            this.stiViewerControl1.Report = stiReport;
            this.stiViewerControl1.Refresh();

----------

