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

## titipop1

درود دوستان
عنوان تاپیکم گویای همه چیز هست دوستان،توی تاپیک ها زیاد گشتم ولی ارسال به استیمول نبودش لطفا راهنمایی کنید
قربون مرام همتون

----------


## fa_karoon

سلام. نمی دونم منظورتون رو درست متوجه شدم یا نه!
ما برای اینکه یه سری مقادیر رو برای نمایش در گزارش به stimul بفرستیم از variableها استفاده می کنیم

stiReport report = new stireport();
 Report.Dictionary.Variables(_VariableName).Value = _Value;

----------


## Aqeel95

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

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

پیشاپیش ممنون

----------


## fa_karoon

الگوریتم کار می تونه این شکلی باشه: یه ستون با visible = false برای idها داریم. حالا هر سطری رو که می خوای گزارش بگیری روش کلیک کن. الان datagridView.currentRow برابر سطری هست که شما انتخاب کردید(datagridView نام گرید ویوی شما خواهد بود). حالا cell مربوط به id  رو بخون و به برای متغیری که در گزارشت براش ساختی بفرست. شبیه کدی که در بالا ذکر کردم

 ReportArea RA = new ReportArea();
            ReportSetter Setter = new ReportSetter(RA.BuyFactorReport);
            Setter.Variable("FactorID", factorGridView.CurrentRow.Cells[factorIdCol.Name].Value.ToString());

من یه تابع variable نوشتم که توش اون خط کدهای پست قبلیم هست.
امیدوارم مفید واقع شده باشه

----------


## Aqeel95

خیلی ممنون از پاسخگوییتون ولی مشکلم حل نشد متاسفانه
1: reportArea و  ReportSetter
که تعریف کردین کتابخونشون چیه!!!؟  اصلا چی هستن!!!؟

2:من الان توی گزارش گیریم با کد زیر 

getNum = dataGridView1.CurrentRow.Cells["Column2"].Value.ToString();
sr.Clear();
sqlcom.CommandText = "select * from Tbl_Add where Num='" + getNum + "'";
sqlda.Fill(sr);

اطلاعات سطر انتخاب شده رو ریختم توی datatable که اسمش هست sr

(یه دیتاگرید گذاشتم و این قطعه کد درست کار میکنه و فقط یک سطر رو منتقل میکنه)

حالا وقتی این کد رو میخوام بفرستم به استیمول فقط سطر 1 رو نمایش میده(به این کاری نداره که من کدوم سطر انتخاب کردم)  و وقتی dataBand گذاشتم از سطر 1 شروع میکنه تا آخر رو نمایش میده
ولی من فقط 1 سطر رو میخوام
*********
درمورد جوابی که دادین هم چون نتونستم تو برنامم اضافش کنم ، نتونستم امتحانش کنم متاسفانه
اگر راهنمایی بیشتری بکنید ممنون میشم
******
درمورد variable هم من کلا یه دونه ساختم برای تاریخ شمسی و کاملا سالم کار میکنه و این کدشه:

String now = pc.GetYear(DateTime.Now) + "/" + pc.GetMonth(DateTime.Now) + "/" + pc.GetDayOfMonth(DateTime.Now);
StiVariable sv = new StiVariable("Date", "shamsidate", typeof(string), now, false);
stiReport1.Dictionary.Variables.Add(sv);

----------


## ژیار رحیمی

دوست گرامی کدهاتو بزار تا راهنمایی لازم صورت گیرد

----------


## Aqeel95

> دوست گرامی کدهاتو بزار تا راهنمایی لازم صورت گیرد


کدهای مربوط به گزارش از استیمول رو که گذاشتم
کد کدوم قسمت مدنظرتونه!!؟ امر کنید که بزارم

----------


## Aqeel95

همچنان منتظر پاسخ گویی اساتید گرام هستم

----------


## fa_karoon

اگر طبق روش من بخواید جلو برید باید یه متغیر برای IDمی ساختید تو گزارش تون بعد IDای که از دیتا گرید می گیرید رو با دستور set کردن variable، پاس می دادید به گزارش. بعد یه select تو گزارش تون می نوشتید که اون سطری از جدول تون رو بیاره که IDاش برابر مقدار این variable هست.


--------------------
اگر مشکل تون حل نشده و هنوز نیاز به توضیح دارید بگید تا بیشتر شرح بدم

----------

