آموزش و اجرا

آموزش گزارش گیری با کریستال ریپورت (قسمت ۱)

ایجاد یک گزارش ساده

برای اینکه یک برنامه ی مجهزبه امکان گرفتن گزارش قابل چاپ در دات نت داشته باشیم می توانیم از یکی از بهترین ابزارهای گزارش گیری در این محیط یعنی ابزار گزارش گیری کریستال ریپورت – crystal report استفاده کنیم.

برای این کارباید در هنگام نصب ویژال استودیو گزینه ی مربوط به نصب این برنامه نیز فعال باشد سپس در یک پروژه ی vb.net گزینه ی add new item… را انتخاب کرده و crystal report – کریستال ریپورت را انتخاب می کنیم و برای آن آیتم بانک اطلاعاتی مورد نظرخود و فیلدها و جداول وسایر تنظیمات ان را انتخاب می کنیم.

اگر جدول دیتا بیس ما مجهر به رمز عبور باشد در هنگام تعریف اطلاعات اتصال  نی توانیم گزینه ی integrated security را انتخاب کنیم  با این کار در هنگام اجرای برنامه و ورود به صفحه ی گزارش مجددا از کاربر رمز عبور دیتا بیس خواسته نمی شود.

ضمن اینکه در رویداد لود یک صفحه هم باید اطلاعات کانکشن را برای استفاده ی حرفه ای تر از امکانات تعریف نماییم:


Dim strconnection As String = "رشته اتصال"

dim oconnetion as new sqlclient.sqlconnection(strconnetion)

dim strsql as string =”select * from table where” ...

Dim oda As New SqlClient.SqlDataAdapter(strsql, aconnetion)

Dim adataset As New DataSet

oda.Fill(odataset, "table")

Dim rpt As New crystalreport1

rpt.load("crystalreport1")

rpt.setdatasource(odataset.tables("table"))

crystalreportviewer1.reportsource = rpt

crystalreportviewer1.refresh()

نکته : از پنجره Tools نیز یک Crystal Report Viewer به فرم مورد نظر اضافه می کنیم  این ریپورت ویور،گزارش موجود در crystal report 1 را نمایش می دهد.

برای اطلاع از آموزش خصوصی و یا شرکت در کلاس های آموزش کریستال ریپورت اینجانب با ما تماس بگیرید.

16 Responses to آموزش گزارش گیری با کریستال ریپورت (قسمت ۱)

  • سلام سایت پر محتوایی داری لطفاً مطالب بیشتری در مورد کریستال ریپورت بزارین ممنون.

  • سلام دوستان اینم C# این تیکه کد :

    DateTime dt;
    dt= DateTime.Now;
    System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
    int dt_month,dt_year,dt_day;
    dt_year = pc.GetYear(dt);
    dt_month = pc.GetMonth(dt);
    dt_day = pc.GetDayOfMonth(dt);
    MessageBox.Show(dt_year.ToString() + "/" + dt_month.ToString() + "/" + dt_day.ToString());

  • شرمنده اشتباهی تو این پست کامنت گذاشتم کامنتی که گذاشتم در مورد پست زیر :
    http://pooryab.ir/?p=610

  • متشکرم

  • ممنون از مطلب خوبت
    اما من می خواهم در دستور SQL از شرط استفاده کنم که متغیر رو از vb می گیره چکار کنم.

    • برای چنین کاری یکم وقت لازمه و توی نت نمیشه کامل شرح داد، فقط من اینجا میتونم به عزیزان سرنخ ارائه کنم.
      برای رسیدن به چنین هدفی باید از فرمول نویسی داخل کریستال ریپورت استفاده کنید، دقیقتر سوالتون رو مطرح کنید تا بتونم بهتر پاسخ بدم.
      با احـــــترام.

  • آقا دستات هزار تا مرسی

  • سلام درباره برنامه نویسی سایت به زبان Asp.net MVC چیزی میدونید اگه می دونستید لطفا مطلبی برای شروع کاربا آن برام بزارید ممنون

  • سلام.من این کد ها رو داخل فرم لود هم نوشتم. اما در گزارشم فقط تیتر هارو میده و اطلاعات جدولمو نشون نمیده.مشکل کجاست؟

    Dim con As New SqlConnection
    con = New SqlConnection(“Data Source=.;Initial Catalog=model;Integrated Security=True”)
    Dim dap As New SqlDataAdapter(“select name,famili,namedore from nomarat;”, con)
    Dim dst As New DataSet
    Dim oRpt As New CrystalReport1
    con.Open()
    dap.Fill(dst, “nomarat”)
    con.Close()
    oRpt.SetDataSource(dst)
    Me.CrystalReportViewer1.ReportSource = oRpt
    ممنون میشم کمکم کنید.

    • شما در پرکردن دیتا ست مشکل دارید، نام جدولی از دیتا ست که پر شده است را در هنگام اتصال آن به گزارش وارد کنید. خط ۹ کد خودتون.

    • با سلام من از این کد استفاده کردم کارم راه افتاد
      crTblTempStadiumDefined objRpt = new crTblTempStadiumDefined();

      String ConnStr = “Data Source=.;Initial Catalog=Db_EssA;Integrated Security=True”;

      SqlConnection myConnection = new SqlConnection(ConnStr);

      String Query1 = “select * from tblTempStadiumDefined”;

      SqlDataAdapter adapter = new SqlDataAdapter(Query1, ConnStr);

      dsReports Ds = new dsReports();

      adapter.Fill(Ds, “tblTempStadiumDefined”);

      if (Ds.Tables[0].Rows.Count == 0)
      {
      MessageBox.Show(“No data Found”, “CrystalReport “);
      return;
      }

      objRpt.SetDataSource(Ds);
      crystalReportViewer1.ReportSource = objRpt;

  • من کد های خود شمارو هم نوشتم بازم فقط تیتر هارو نشون میده.

  • میشه نمونه همین کد رو به زبان C# ارائه کنید ؟

    VS C#.NET 2008

  • مرسی با ما باشید ما رو تنها نزارید ممنون

  • باسلام . با تشکر از شما . موفق باشید

  • سلام مهندس جان اگه بتونین در مورد فرمول نویسی و روش استفاده از اونو هم توضیح کامل بدین ممنون میشم