View Full Version : سوال: ارسال چند پارامتر به کریستال رپورت - ویژوال استودیو 2010
robat7
پنج شنبه 29 دی 1390, 04:39 صبح
سلام
من در ارسال یک پارامتر به کریستال رپورت مشکلی ندارم ولی نمی دانم چگونه چند پارامتر را به گزارش از درون برنامه ارسال کنم بصورتی که کاربر نیازی به ورود پارامترها بصورت دستی نداشته باشد
خیلی هم جستجو کردم ولی پاسخ مناسبی نیافتم
ممکن است راهنمایی فرمایید
با تشکر
Mahmoud Zaad
پنج شنبه 29 دی 1390, 09:37 صبح
سلام
شیوه کار به همون صورته، هیچ فرقی نمیکنه. پارامترها چی هستن؟ منظورتون از اینکه "کاربر نیازی به ورود پارامترها به صورت دستی نداشته باشه" چیه؟
robat7
پنج شنبه 29 دی 1390, 18:08 عصر
سلام
ممنون از پاسخ شما
وقتی یک پارامتر را به سیستم ارسال می کنم (معمولا از این پارامتر در کویری استفاده می نمایم) در قسمت طراحی کریستال رپورت - قسمت تعریف پارامتر، متغیر تعریف شده نمایش داده می شود و علامت سوال در کنار آن قرار دارد
ولی وقتی سایر پارامتر ها را تعریف می کنم ، این علامت سوال در کنار متغیر وجود ندارد
وقتی از طریق برنامه گزارش را فراخوانی می کنم پنچره ای باز می شود و مقادیر پارمتر را از کاربر درخواست می نماید. چون اکثر این پارامتر ها کلیدهای خارجی هستند یا کدهایی هستند که کاربر از آنها اطلاعی ندارد. من می خواهم هنگام اجرای برنامه، خودم پارامترهای مورد نظر را مقدار دهی نمایم
Mahmoud Zaad
پنج شنبه 29 دی 1390, 18:56 عصر
این برنامه رو ببین اگه مشکلی بود مطرح کن
robat7
جمعه 30 دی 1390, 18:15 عصر
سلام
خیلی ممنون از نمونه برنامه ای که برایم ارسال فرمودید
من برنامه را برای خودم پیاده سازی می نمایم و اگر پرسشی داشتم مجددا مطرح می کنم
من کانکشن استرینگ را به برنامه ام ارسال می کنم چون جایی خواندم برای امنیت بیشتر بهتر است یکبار کانشن استرینگ را بوجود بیاوریم و آن را بصورت پراپرتی به فرم ها یا پیج ها ارسال کنیم پرسشی که در این جا من دارم این است که:
وقتی یوزرنیم و پسورد را از درون برنامه تنظیم می نمایم دیگر قابلیت این را ندارم که دیتا سورس را برای گزارش تنظیم کنم ولی وقتی از خیر قسمت نخست بگذرم (که غیر ممکن است) این امکان را دارم که دیتا سورس را از درون برنامه تنظیم نمایم ولی باید یوزر نیم و پسورد را بصورت دستی وارد کنم
آیا شما به این مشکل برخورد کرده اید و اگر بله آیا راه حلی برای آن سراغ دارید
باز هم از شما سپاسگزارم
Mahmoud Zaad
جمعه 30 دی 1390, 18:52 عصر
اگه میشه یه نمونه از کاری که انجام دادید یا کدها رو در صورت امکان اینجا قرار بدید، اگه تونستم کمکتون می کنم
mohan21
جمعه 30 دی 1390, 20:34 عصر
با سلام
شما می تونید از Data Table استفاده کنید و فیلد ها رو در گزارش مشخص کنید و سپس اطلاعات رو از برنامه که از بانک دریافت کرده اید رو به گزارش خودتون تزریق می کنید .....
robat7
دوشنبه 10 بهمن 1390, 23:48 عصر
با سلام و عرض پوزش از تاخیر
پروژه پیوست یک نمونه از کار آزمایشی است. همانطور که ملاحظه می فرمایید 3 کلید در فرم موجود است
کلید 1 کوییری را به رپورت می فرستد (فرم کار می کند ولی کلمه عبور را برای ارتباط با سرور درخواست می نماید)
با فشردن کلید 2 گزارش نمایش داده می شود ولی امکان ارسال کوییری وجود ندارد و در صورت ارسال باید کلمه عبور وراد گردد
با فشردن کلید 3 یک پارامتر به گزارش ارسال می گردد.
من می خواهم کویری را خودم ارسال نمایم و در ضمن کاربر مجبور نباشد کلمه عبور را وارد نماید یا به عبارت دیگر همه اطلاعات از درون برنامه به گزارش ارسال شوند.
با تشکر
robat7
دوشنبه 10 بهمن 1390, 23:55 عصر
سلام دوست عزیز و ممنون از پاسخ شما
حتما روش پیشنهادی شما را نیز آزمایش می نمایم
با تشکر
mohan21
سه شنبه 11 بهمن 1390, 14:11 عصر
برنامه رو نتونستم ببینم، اگر میشه نسخه 2008 رو قرار دهید .....
و اینکه پس بانک کجاست ؟
robat7
سه شنبه 11 بهمن 1390, 17:53 عصر
سلام ممنون از پاسخ شما
اجازه دهید نسخه 2008 را نصب کنم و فکری برای بانک کنم چون بری روی SQL سرور می باشد.
mohan21
سه شنبه 11 بهمن 1390, 19:34 عصر
در این برنامه پارامتر رو می تونید ارسال کنید، بانک در کنار برنامه شما قرار می گیره، در گزارش یک DataTable ایجاد کرده ام ...
generic
سه شنبه 09 اسفند 1390, 10:21 صبح
این برنامه رو ببین اگه مشکلی بود مطرح کن
در زمان اجرا برای پارامتر ها DiscreteValue میخواهد !
Mahmoud Zaad
سه شنبه 09 اسفند 1390, 12:41 عصر
در زمان اجرا برای پارامتر ها DiscreteValue میخواهد !
یعنی شما همین برنامه رو بدون تغییر کدها اجرا کردی و این مقدار رو خواست؟
generic
سه شنبه 09 اسفند 1390, 13:18 عصر
یعنی شما همین برنامه رو بدون تغییر کدها اجرا کردی و این مقدار رو خواست؟
نه.
تو برنامه خودم با این روش این مشکل پیش میاد. من فقط یکی از پارامترها را میتونم به صورت زیر بنویسم که discrete value نخواهد
CrystalDecisions.Shared.ParameterFields pfields = new CrystalDecisions.Shared.ParameterFields();
CrystalDecisions.Shared.ParameterField pfield = new CrystalDecisions.Shared.ParameterField();
CrystalDecisions.Shared.ParameterDiscreteValue disvalue = new CrystalDecisions.Shared.ParameterDiscreteValue();
disvalue.Value = date;
pfield.Name = "date";
pfield.CurrentValues.Add(disvalue);
pfields.Add(pfield);
crystalReportViewer1.ParameterFieldInfo = pfields;
ولی بقیه را نمیدونم چطوری بفرستم حالا سعی میکنم با آرایه اینکارو بکنم.
من گفتم شاید کسی کار کرده باشه ولی ظاهرا....
در هر صورت ممنونم ازتون اگر راهنمایی کنید.
robat7
سه شنبه 08 فروردین 1391, 22:24 عصر
یک نگاهی به این لینک کن فکر می کنم مشکلت را حل می کند
http://www.tek-tips.com/faqs.cfm?fid=1329
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.