Crystal Reports Kullanimi
- Sevdanur GENC

- Dec 26, 2012
- 3 min read
Projelerinizde rapor dokumlerinizi alabileceginiz bir yontem olarak crystal reports'tan bahsediyor olacagim bu makalemde. Oncelikle CrystalReport icin gerekli olan tool'u sitesinden indirmemiz gerekiyor. Gerekli olan link asagidadir. Bununla birlikte projenize dll eklemeniz gerekecektir. Bir onceki makale icin olusturmus oldugumuz asp.net ortaminda ki master page icerisinde rapor nesnemizi nasil kullanacagimizdan bahsetmeye baslayabiliriz. Var olan web rojemize solution explorer penceresinde add new item ile iki yeni sayfa eklemiz gerekecektir. Bu iki web sayfasi arasinda verilerimizi tasirken Server.Transfer komutunu kullaniyor olacagiz.
Crystal Report'u indirebileceginiz link budur ; http://scn.sap.com/people/coy.yonce/blog/2010/11/12/crystal-reports-for-visual-studio-2010-production-release-now-available buradan standart exe'yi indirdikten sonra projenizede ayriyeten referans olarak crystaldecisions.crystalreports.engine.dll dosyasini eklemeyi unutmayin (Arama motorunda ufak bir arastirma sonucunda bu dll dosyasini bulabilirsiniz).
Projemize CrystalReport nesnesi ekleyebilmemiz icin, Projemizin uzerinde sag tus yapiyoruz ve ardindan add new item diyoruz. Karsimiza gelen pencerede CrystalReport secenegini sectikten sonra uzantisi .rpt olacak sekilde raporumuza isim veriyoruz.
Hemen ardindan karsimiza gelecek olan Crystal Reports Gallery penceresinden As a Blank Report diyerek bos bir rapor sayfasi olusturmus oluyoruz.
Bos rapor sayfamiz acildiginda yan tarafta Field Explorer penceresinde bulunan Parameter Fields araciligiyla raporumuza gondermemiz gereken verileri String bir sekilde alabilmesini saglayacimiz yeni alanlar eklemis olucaz. Bunun icin Parameter Field uzerinde sag tus yapip New diyoruz ve karsimiza gelen Create New Parameter penceresinde Name ve Type alanlarini duzenledikten sonra OK butonuna basiyoruz ve hemen yan taraftaki alana eklendigini goruyoruz.
Olusturdugumuz bu parametreleri sayfamizin bos yerlerine surukleyip birakiyoruz ve ardindan asagidaki gibi dizaynimizi yapiyoruz.
Dizayn bittikten sonra bu parametrelere verilerimizi gonderebilmemiz icin kodlarimizi yazmaya baslayabiliriz.
Unutmamamiz gereken bir nokta ise RaporCiktisi.Aspx icerisinde CrystalReportViewer nesnesini tools icerisinde bulunan Reporting sekmesi altindan bulup raporu nerede cikarticaksan o nesneyi oraya tasimamiz gerekmektedir.
RaporOlusturma.Aspx Kaynak Kodlari ;
<%@ Page Title="" Language="C#" MasterPageFile="~/TemplatePage.master" AutoEventWireup="true" CodeFile="RaporOlusturma.aspx.cs" Inherits="RaporOlusturma" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
<style type="text/css">
.style8
{ width: 178px; }
.style9
{ font-weight: bold; color: #921841; }
</style>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table>
<tr> <td> <table> <tr> <td>
<asp:Label ID="Label3" runat="server" CssClass="style9" Text="Isim"></asp:Label>
</td> <td>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</td> </tr> <tr>
<td> <asp:Label ID="Label4" runat="server" CssClass="style9" Text="Soyisim"></asp:Label>
</td> <td> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
</td> </tr> <tr> <td>
<asp:Label ID="Label5" runat="server" CssClass="style9" Text="Telefon"></asp:Label>
</td> <td> <asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
</td> </tr> <tr> <td>
</td> <td> <asp:Button ID="Button1" runat="server" style="font-weight: 700"
Text="Rapor Al..." Width="129px" onclick="Button1_Click" /> </td>
</tr> </table> </td> </tr>
</table>
</asp:Content>
RaporOlusturma.Aspx.Cs Kaynak Kodlari ;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class RaporOlusturma : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString["err"] != null)
Page.Validate();
}
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("RaporCiktisi.aspx", true);
}
public string Isim { get { return TextBox1.Text; } }
public string Soyisim { get { return TextBox2.Text; } }
public string Telefon { get { return TextBox3.Text; } }
}
RaporCiktisi.Aspx Kaynak Kodlari ;
<%@ Page Title="" Language="C#" MasterPageFile="~/TemplatePage.master" AutoEventWireup="true" CodeFile="RaporCiktisi.aspx.cs" Inherits="RaporCiktisi" %>
<%@ Register assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" namespace="CrystalDecisions.Web" tagprefix="CR" %>
<asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
<table> <tr> <td>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server"
AutoDataBind="true" /> </td> </tr> </table>
</asp:Content>
RaporCiktisi.Aspx.Cs Kaynak Kodlari ;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using CrystalDecisions.CrystalReports.Engine;
public partial class RaporCiktisi : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (
PreviousPage != null
)
{
RaporOlusturma prevPage = PreviousPage as RaporOlusturma;
if (prevPage != null)
{
RaporTasarimi rapor = new RaporTasarimi();
ReportDocument raporDoc = rapor;
raporDoc.ParameterFields["Isim"].CurrentValues.AddValue(prevPage.Isim);
raporDoc.ParameterFields["Soyisim"].CurrentValues.AddValue(prevPage.Soyisim);
raporDoc.ParameterFields["Telefon"].CurrentValues.AddValue(prevPage.Telefon);
CrystalReportViewer1.ReportSource = raporDoc;
}
}
}
}
Uygulamanin Ekran Goruntuleri ;
Keyifli Calismalar Dilerim...
Comments