نمایش نتایج 1 تا 7 از 7

نام تاپیک: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

  1. #1

    Post پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    پویا سازی گزارش گیری در کریستال ریپورت

    سلام
    سئوالات دوستان در انجمن من رو بر آن داشت تا مختصر اطلاعاتی در خصوص کار با کریستال ریپورت رو برای شما در فروم قرار بدم.
    1. .حق انتخاب:
    اولا توجه کنید که با توجه به عدم احترام از طرف ما برای حق کپی رایت و در اختیار بودن امکانات نرم افزاری به صورت مکفی بنابراین ترس رو کنار گذاشته و نرم افزارهای حرفه ای رو برای کارتون در نظر بگیرید
    2. استارت:
    سعی کنید گزارشاتتون رو با نرم افزار کریستال ریپورت بسازید من خودم نسخه کریستال 2008 developer رو استفاده میکنم این نسخه موجود ترین نسخه بازار است
    3.
    وقتی یک گزارش رو با کریستال ریپورت محیا میکنید کار بسیار ساده است با انتخاب روش wizard همه روال به صورت یک روال ساده از ساخت یک کانکشن تا نحوه نمایش رکورد به صورت ساده قابل انجام است.

    4.من فرض رو بر این میزارم که شما یک گزارش ساختید اون رو به پروژتون اضافه کنید این رو هم فکر کنم همه بلدن مثل اضافه کردن هر فایلی به گزارش
    5. به فرمتون یک crystal report viewer اضافه کنید
    6. گوشه crystal report viewer یک فلش کوچک است که در واقع به شما این امکان رو میده تا تنضیماتی رو برای نمایش دهنده گزارشتون انجام بدید
    7. با زدن فلش پنجره کوچکی نمایش داده می شود در قسمت اول این پنجره می توانید سورس گزارش خود را انتخاب نمایید برای قسمت choose report source گزینه new report source را انتخاب کنید حال پنجره ای ظاهر می شود که از شما می خواهد نامی برای سورس خود و یک گزارش برای نمایش انتخاب کنید.اگر در قسمت اضافه کردن فایل گزارش با پروژه درست عمل کرده باشید نام گزارش شما در لیست انتخاب گزارش نمایش داده می شود. و بعد کلیک کردن ok
    8.اکنون نمایش دهنده کریستال گارش شما رو نمایش می دهد اگر شما پروژه را اجرا کنید کشاهده می کنید هیچ چیز نمایش داده نمی شود.
    9. چرا؟
    دلیل این اتفاق اینه که در واقع نمایش دهنده کریستال نمیتونه برای دریافت اطلاعات گزارش به پایگاه داده وصل بشه
    10.چه باید کرد؟
    باید اطلاعات مربوط به وصل شدن به پایگاه داده به صورت مجزا برای نمایش دهنده کریستال ریپورت تعریف شود
    11.
    بر روی فرم خود کلیک راست کرده و به حالت نمایش کد برویدفرض کنید که نام صفحه گزارشات شما report.aspx باشد بنابراین صفحه کد شما به طور مثال برای وی بی report.aspx.vb است

    12.نوشتن کد:
    کدهای زیر را به صفحه اضافه کنبد
    Private Sub ConfigureCrystalReports()

    Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
    SetDBLogonForReport(myConnectionInfo)
    myConnectionInfo.ServerName = ".\sqlexpress"
    myConnectionInfo.DatabaseName = "نام دیتابیس"
    myConnectionInfo.UserID = "یوزر ورود به sql server"
    myConnectionInfo.Password = "پسورد "
    myConnectionInfo.IntegratedSecurity = 1

    End Sub


    Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
    Dim myTableLogOnInfos As TableLogOnInfos = CrystalReportViewer1.LogOnInfo
    For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
    myTableLogOnInfo.ConnectionInfo = myConnectionInfo
    Next
    End Sub
    و همچنین برای رویداد بالا آمدن صفحه کدی را برای صدا زدن تابع بالا می نویسیم.
    مانند زیر:
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    ConfigureCrystalReports()


    End Sub
    و همچنین

    Protected Sub CrystalReportViewer1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
    CrystalReportViewer1.ReportSource = Server.MapPath(DropDownList1.SelectedValue.ToStrin g)
    CrystalReportViewer1.RefreshReport()
    End Sub
    13.پویا سازی:
    برای اینکه گزارش شما پویا باشد می بایست در روال به روز شدن گزارش اتصال به پایگاه داده تعریف گردد بنابراین هر بار گزارش نمایش داده می شود قبل از آن اطلاعاتش به روز شده.
    Protected Sub CrystalReportViewer1_ReportRefresh(ByVal source As Object, ByVal e As CrystalDecisions.Web.ViewerEventArgs) Handles CrystalReportViewer1.ReportRefresh
    CrystalReportViewer1.ReportSource = Server.MapPath("نام گزارش")
    ConfigureCrystalReports()

    End Sub
    اما توضیح تکمیلی:
    در اولین کد یک تابع تعریف شده برای ایجاد تنضیمات برای کریستال ریپورت که برای اتصال به sql server پیکربندی شده است و تنضیمات نام سرور sql و پس از آن نام پایگاه داده یا (دیتابیس) سپس نام کاربری و کلمه عبور اتصال به sql server وارد شده توجه داشته باشید که پس از خط کلمه عبور کدی وارد شده که مشخص می کند از امنیت ویندوز برای اتصال به sql server استفاده می شود یعنی اگر در موقع نصب sql server شما انتخاب کرده باشید که به صورت windows mode به sql server وصل می شود باید این کد موجود باشد اما اگر در سرور خود یوزر و پسورد خاصی برای اتصال تعریف کرده باشید اولا این کد را حذف کنید
    myConnectionInfo.IntegratedSecurity = 1
    ثانیا یوزر و پسورد را با دقت مشخص کنید


    ااین کد
    Protected Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
    ConfigureCrystalReports()

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

    کد زیر:
    Protected Sub CrystalReportViewer1_ReportRefresh(ByVal source As Object, ByVal e As CrystalDecisions.Web.ViewerEventArgs) Handles CrystalReportViewer1.ReportRefresh
    CrystalReportViewer1.ReportSource = Server.MapPath("نام گزارش")
    ConfigureCrystalReports()

    End Sub

    باعث می شود تا هربار گزارش refresh می شود به روز گردد


    و کد زیر:
    Protected Sub CrystalReportViewer1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
    CrystalReportViewer1.ReportSource = Server.MapPath("نام گزارش")
    CrystalReportViewer1.RefreshReport()
    End Sub
    باعث می شود تا هر بار گزارش بالا می آید پویا باشد.

    امیدوارم این آموزش مفید به فایده باشد

  2. #2

    نقل قول: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    ممنون ، خیلی مفید بود.
    حالا اگه ما بخوایم یه Dataset (نه Data Table) رو که توی برنامه ساختیم در Crystal Reports استفاده کنیم باید چیکار کرد؟

  3. #3
    کاربر دائمی آواتار sara.f
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    آنجا که دروغ نباشد!
    پست
    809

    نقل قول: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    نقل قول نوشته شده توسط soheilajoon مشاهده تاپیک
    ممنون ، خیلی مفید بود.
    حالا اگه ما بخوایم یه Dataset (نه Data Table) رو که توی برنامه ساختیم در Crystal Reports استفاده کنیم باید چیکار کرد؟
    سلام
    آخه data table که با data set فرقی نداره.
    شما اون کدی که در اختیارتون گذاشتم را امتحان کردید؟ جواب نداد؟

  4. #4

    نقل قول: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    منظورم این بود که من یه Dataset ساختم ، بعد توی اون یه Datatable ساختم که به هیچ DataTable ی در SQL مرتبط نیست ، یعنی یک Table واقعی نداره.
    داده ها بعد از اجرای برنامه از چند تا Table در SQL وارد این Dataset میشند.
    من نمی دونستم که چطور Table ی رو که وجود نداره به عنوان DataTable در Crystal Reports انتخاب کنم!!
    ولی به هرحال ممنون ، جوابو پیدا کردم ، اول باید یه Crystal Reports توی خود دات نت بسازم و Dataset رو به عنوان Table اون انتخاب کنم ، بعد می تونم این گزارش رو با Crystal Reports 11 باز کنم و اونو همون جا Edit کنم.
    البته هنوز یه سری سوال دارم که باید بعداً از دوستان بپرسم.

  5. #5

    نقل قول: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    سلام
    من دارم یا برنامه انبار داری مینویسم
    میخوام از حواله های صادر شده پرینت بگیرم
    سئوالی داشتم اینه که با کریستال میشه این کارو کرد ضمن اینکه باید مد نظرتون باشه بعضی از
    حواله ها دو تاجنس دارن بعضی ها 3یا بیشتر و کشیدن جدول باید به صورت خودکار و بر اسای تعداد
    اجناس باشه ؟

  6. #6
    کاربر جدید
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    مشهد
    پست
    26

    نقل قول: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    نقل قول نوشته شده توسط mrstar مشاهده تاپیک
    سلام
    من دارم یا برنامه انبار داری مینویسم
    میخوام از حواله های صادر شده پرینت بگیرم
    سئوالی داشتم اینه که با کریستال میشه این کارو کرد ضمن اینکه باید مد نظرتون باشه بعضی از
    حواله ها دو تاجنس دارن بعضی ها 3یا بیشتر و کشیدن جدول باید به صورت خودکار و بر اسای تعداد
    اجناس باشه ؟
    سلام
    دوست عزیز میتونی از subreport استفاده کنی در این صورت مشکلت حل میشه

  7. #7

    نقل قول: پویا سازی گزارش گیری در کریستال ریپورت(امیدوارم مفید باشه)

    با عرض سلام من سعید عباس نؤاد هستم جواب شما ای هستش



    using (SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;Initial Catalog=Costomer;Integrated Security=True;"))
    {
    CrystalReport1 cr = new CrystalReport1();
    con.Open();

    if (textBox1.Text != "")
    {
    string search = "SELECT * FROM customs WHERE nameCostomer LIKE '%" + textBox1.Text + "'";
    using (SqlCommand com = new SqlCommand())
    {
    com.CommandText = search;
    com.Connection = con;
    DataTable dt = new DataTable(search);
    using (SqlDataAdapter sda=new SqlDataAdapter(com))
    {
    using (DataSet ds = new DataSet())
    {
    sda.Fill(dt);
    cr.SetDataSource(dt);
    crystalReportViewer1.ReportSource = cr;
    con.Close();
    }
    }

    }
    }
    }
    }

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •