PDA

View Full Version : حرفه ای: ارسال یک متغیر برای فیلتر کردن گزارش



crazy_1892
چهارشنبه 06 مرداد 1389, 10:48 صبح
سلام دوستان من می خوام یک مقدار عددی رو به گزارشم ارسال کنم برای فیلتر کردن یک جدول
ولی هر کاری میکنم نمیشه بانک sql هست ابزار گزارشم هم stmimul 2010 خیلی گیرم اگه یک sample بزارین خیلی بهتره لطفا کمکم کنین ممنون

misoft.ir
چهارشنبه 06 مرداد 1389, 14:40 عصر
سلام
باید بری توی انجمن خودش بگردی اگر نبود ، سوال کنی.
ولی به طور خلاصه :یه متغیر در استیمول تعریف میکنی.(منوی سمت راست ---variable)
با کد زیر هم اون رو مقدار دهی میکنی:
stiReport1.Dictionary.Variables["Serial"].Value = txtSerial.Text;

crazy_1892
چهارشنبه 06 مرداد 1389, 18:50 عصر
دوست عزیز من این کارو کردم حواب میده فقط مشکلم اینه که می خوام یک متغیر int بفرستم
وقتی از نوع string می فرستم چون فیلد ایدی که میخواد بر اساس اون فیلتر شه عددی هست خطا می گیره من این متغیرو یا داخل stimul یا C# باید تبدیل به رشته بکنم اما نمی دونم چی جوری!!!!!!!!

javad_r_85
جمعه 08 مرداد 1389, 09:05 صبح
سلام دوستان من می خوام یک مقدار عددی رو به گزارشم ارسال کنم برای فیلتر کردن یک جدول
ولی هر کاری میکنم نمیشه بانک sql هست ابزار گزارشم هم stmimul 2010 خیلی گیرم اگه یک sample بزارین خیلی بهتره لطفا کمکم کنین ممنون



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

ابتدا یک فرم جدید ایجاد کرده در آن یک کنترل کریستال ریپورت قرار داده.البته
report source
ان باید خالی باشد
سپس از طریق
add new item
یک کرستال ریپورت به برنامه اضافه میکنیم به نام
CrystalReport1
در فرم اصلی یک تکست باکس برای وارد کردن مقدار و یک باتن قرار داده و این کد را به آن اضافه می کنیم
.

private void button1_Click(object sender, EventArgs e)
{


CrystalReport1 rpt = new CrystalReport1();
rpt .RecordSelectionFormula = "{costomerid.id}=" + Int16.Parse(textBox1.Text);


Form2 f2=new Form2 ();
f2.crystalReportViewer1.ReportSource = rpt ;

f2.Show ();
}


در اینجا ما در تکست باکس عدد وارد میکنیم و فیلتر ما بر اساس آن است و اگر ما مثلا برای نام خواستیم فیلتر کنیم نیاز نیست تا
Int16.Parse
را وارد نماییم.

javad_r_85
جمعه 08 مرداد 1389, 09:14 صبح
دوست عزیز من این کارو کردم حواب میده فقط مشکلم اینه که می خوام یک متغیر int بفرستم
وقتی از نوع string می فرستم چون فیلد ایدی که میخواد بر اساس اون فیلتر شه عددی هست خطا می گیره من این متغیرو یا داخل stimul یا C#‎ باید تبدیل به رشته بکنم اما نمی دونم چی جوری!!!!!!!!



این کد برای تبدیل عدد به رشته وبرعکس.



int a =10;
string str = a.ToString(); //.

int i=Int16.Parse(str); //a

crazy_1892
شنبه 09 مرداد 1389, 17:17 عصر
برای ارسال رشته از روش زیر استفاده می کنم
stiReport1.Dictionary.Variables["Serial"].Value = txtSerial.Text;
ولی برای ارسال ععد نمی دونم چی کار کنم ؟؟؟؟؟؟؟؟

misoft.ir
سه شنبه 12 مرداد 1389, 23:53 عصر
سلام
ببخشید ، چند روزی میشه که نیستم.
شما فرمودید که بانک شما SQL هست .
خوب این متغیر رو در کد SQL بنویس.مثلا:


Select * from DATABASE where Number=[Variable]