ورود

View Full Version : سوال: اسم سرور تو کریستال پویا باشه ؟لطفا تاپیک رو پاک نکنید



shocraneh
چهارشنبه 08 مهر 1388, 18:05 عصر
چی کار کنم زمانی که تو کریستال می خای پایگاه رو expert ;kd اسم سرور تو کریستال پویا باشه , و با انتقال رو سیستم دیگه ارور نده ؟
لطفا تاپیک رو پاک نکنید نمی دونم چرا سوالایی که تو قسمت گزارشگیری می پرسیم رو یکی جواب نمی ده

ali_md110
پنج شنبه 09 مهر 1388, 01:16 صبح
روشی رو که میگم انجام بدید نیاز به وصل شدن ابتدایی به سرور ندارید
یک دیتاست مشخص به پروژه اضافه کنید
از طریق Add new Item یک DataSet1.xsd اضافه کنید روش دوبار کلیک کنید تا باز بشه
فیلدهایی که لازم دارید توی کریستال نشون بدید رو دستی اضافه کنید بدین صورت
که یک دیتاتیبل رو از toolbax بکشید بندازید وسط همون دیتاست باز شده اگر کلیک راست کنید روی دیتاتیبل از منوی Add ستونها یا فیلدها رو اضافه کنید دقت کنید اسم فیلدها برابر با نام فیلد توی کوئری که توی سطح برنامه نوشتید باشه
وقتی فیلدها رو اصافه کردید دیتاست رو ذخیره کنید
توی کریستال ریپورت اولین ایتم یعنی project Dateو بعد Ado.net Datasets رو انتخاب کن
باید دیتاتیبل اضافه شده رو مشاهده کنید اونو انتخاب کنید و اضافه کنید به کریستال
بقیه اون دیگه بستگی داره به کد نویسی شما که رشته اتصالتون رو داینامیک بنویسید
مثل

mytbl = New DataTable
sqldataAdApter da.fill(mytbl)

Dim strReportPath As String = GetCurrentDirectory()

If strReportPath.Substring(strReportPath.Length - 9) = "bin\Debug" Then

strReportPath = strReportPath.Substring(0, strReportPath.Length - 10)

End If

strReportPath &= "\CrystalReport1.rpt"

Dim rpt As New CrystalDecisions.CrystalReports.Engine.ReportDocum ent


rpt.Load(strReportPath)

rpt.SetDataSource(mytbl)

CrystalReportViewer1.ReportSource = rpt
اگر سوالی داشتید در خدمتم

shocraneh
پنج شنبه 09 مهر 1388, 22:54 عصر
با تشکر فراوان .
من قبلا از این روش استفاده می کردم . حرف شما کاملا درسته
اما قضیه اینه که می خاستم از command استفاده کنم و همچنان سرورم پویا باشه که البته فکر می کنم یه جورایی محاله ؟!!http://barnamenevis.org/forum/showthread.php?t=181883
در هر صورت ممنون از توجهتون

ali_md110
جمعه 10 مهر 1388, 02:17 صبح
من قبلا از این روش استفاده می کردم . حرف شما کاملا درسته
اما قضیه اینه که می خاستم از command استفاده کنم و همچنان سرورم پویا باشه که البته فکر می کنم یه جورایی محاله ؟

منظور شما از command چیه؟ روشن کنید

shocraneh
شنبه 11 مهر 1388, 08:08 صبح
من زمانی که از کامند استفاده می کنم با ارسال پارامتر رو گزارشام مشکل ندارم
اما نمی دونم چرا وقتی از دیتاتیبل استفاده می کنم قبل از لود گزارش یه فرم باز میشه
وازم مقدار پارامتررو می خاد ومقداری که تو کدنویسی داده بودم رو بی خیال میشه
یه تکه کد هم دوستان داده اند اما افاقه نکرد .اگه می تونی کمک کن عجله دارم
( دوست من فعلا command رو بی خیال شدم اگه می تونی ارسال پارامتر رو کمکم کن )به لینکی که تو تاپیک قبلی گذاشتم مراجعه کنید

bad_boy_2007
سه شنبه 14 مهر 1388, 18:29 عصر
نمی دونم چرا وقتی از دیتاتیبل استفاده می کنم قبل از لود گزارش یه فرم باز میشه
وازم مقدار پارامتررو می خاد ومقداری که تو کدنویسی داده بودم رو بی خیال میشه


ابتدا ديتاست را به گزارش پاس دهيد و سپس پارامتر ها را مقدار دهي كنيد ، كد شما مشابه كد زير است :



RPT.SetParameter("a",a)
...
تمامي پارامترهايتان را تا اينجا پر كرده ايد
RPT.setReportSource(DS)
با ارسال ديتاست تمام پارامترهايتان پاك ميشود !!!!!!


كدتان را بصورت زير اصلاح كنيد :




ابتدا ديتاست را به گزارش ارسال كنيد
RPT.setReportSource(DS)

سپس پارامترها را
RPT.SetParameter("a",a)
...