آموزش كريستال

62
دمه ق م ور ط ن ما ه که د ی ن دا ی م رم ن ار ز ف ا وص ص خ م! ن ت ف ز گ& ارش ز گCrestalReport ی م د& اش- ب. رم ن ار ز ف اCrystal Report ی ک1 ب اررهای ا ر- ن ا د ی م ت در ف ه ی ه ت& ارش ز گ ت س ا ا- . ب ن! ی ا رم ن! وان ت می ار ز ف ا ه- ب های ک ب ا- ب ی تعا لا ط اAccess - Foxpro - SQL Server - Oracle - Olap - Btrive - Excel - XBase و ره ی غ ل ص ت م د& ش و ار ها تQ ا& ارش ز گ ه ی ه ت ود م ت. وسط ت! ن ی ا رم ن ار ز ف ا ی م! وان ت ه- ب های ک ب ا- ب ی تعا لا ط ا ل ص ت م ده& ش و ات& ارش ز گ ورد م ر[ ظ ن راراج! خ ت س ا ود م ت ا- . ب ن! ی ا رم ن ار ز ف ا ی م! وان ت ات& ارش ز گ ه ی ف ر& ش1 یd پ و ده1 یg چ یd ن ای را اد- ج ی ا ود م ت ی ح را ط. ی- ح رو خ ات& ارش ز گ ه- بo له ی س وCrystal Report ی م د واب ت ه- ب ی حت را ورت ص ه ی ف ز گ ه- ب وری ط که ر[ ظ ن و ه لاق ع ر هری- ن کار را ن! می ا ب اد- ج ی د. ا ماب ت! ن ی ا ی- ح رو خ وسط ت ار ر- ن ا ود- ج و م درWinApp ها وWebApp ها ز گ امکان! ار ن دg ب د& اش- ب ی م! وان ت ت ف گ ار ی س- ب وار& ش د ت س ا ا . لد- ب ل ع ا های ت ا- ب ر امه رب- ن ی س ب و ت ی ت ها ه را رارای- ن صال ن ا و اده ق ت س ا ار ات& ارش ز گCrystal Report در ود ج ف ی ر ع ت وده م ت لا& ی م د. ابVisual Studio.Net ک پCommponent رای- ن! ن ت ف ز گ& ارش ز گ ار1

Upload: noavaran2005

Post on 06-Jun-2015

2.598 views

Category:

Documents


6 download

TRANSCRIPT

مقدمه

گزارش گرفتن مخصوص افزار نرم میدانید که همانطور

CrestalReport  افزار . نرم باشد می Crystal Reportابزارهای از یکی

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

Access - Foxpro - SQL Server - Oracle - Olap - Btrive - Excel -

XBaseافزار نرم این توسط.نمود تهیه گزارش آنها از و شد متصل غیره و

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

نمود ایجاد را ای پیچیده و پیشرفته گزارشات توان می افزار نرم این . با نمود

راحتی به تواند می  Crystal Report وسیله به گزارشات خروجی . طراحی

این نماید. ایجاد تامین را کاربری هر عالقه و نظر که طوری به گرفته صورت

پذیر امکان اگر ها  WebApp و هاWinApp در موجود ابزار توسط خروجی

نویسی برنامه زبانهای اغلب . لذا است دشوار بسیار گفت توان می باشد

خود در  Crystal Report گزارشات از استفاده و اتصال برای را راههایی

برای  Commponent یک  Visual Studio.Net اند. مثال نموده تعریف

همان راحتی به . که است نموده اضافه  CrystalReport از گزارش گرفتن

برنامه خروجی در را کنیم مشاهده توانیم میCrystalReport در که خروجی

. باشیم داشته

سپس و پرداخته  Crystal Report در گزارش یک ایجاد به ابتدا مقاله این در

نوشته  VB.Net زبان به کهWeb App در گزارش این فراخوانی نحوه به

. پرداخت خواهیم گزارش چاپ چگونگی به انتها در و است پرداخته شده

1

CrystalReport در گزارش ایجاد

Crystal در گزارش نمونه یک ایجاد روش شرح به قسمت این در

Report 8.5  نمود خواهیم استفاده برنامه در گزارش این از که ، پردازیم می

.

بخش در گویی آمد خوش دیالوگ در کنیم می اجرا راCrystal Report ابتدا

create New Crystal Reaport Document  گزینه As a Blank Report

. میکنیم انتخاب را

 

(1تصویر)

 

) و رفته  More Data Source+ روی شده باز  Data Explorer لوگادی درActive data(Ado  پنجره1) تصویر مطابق کنیم می انتخاب را . ( Select

Data Source  شود. می باز

نموده انتخاب راAdo and Oledb گزینه  Select Data Source دیالوگ از

DataLinkProperty دیالوگ وارد و کرده کلیک ) را2) تصویر  Build کلید و

. شویم می

2

(2تصویر)

 

Microsoft OlE آیتم   Provider تب در  DataLink Properties دیالوگ از

DBprovider For Sql Server  کلید ) و3) تصویر کنیم می انتخاب را Next

را آن تنظیمات و شده  Connection تب وارد . سپس دهیم می فشار را

سرور نام  Select or Enter a Server Name.1 در . ابتدا دهیم می انجام

آن روی  SqlServer که است دستگاهی همان اسم . که کنیم می وارد را

Enter Information to logon to the.2 بخش . در است گردیده نصب

Server  قسمت Use a Specific user name and password  انتخاب را

. کنیم می وارد را بانک با ارتباط  Password وuser و نموده

اطالعاتی بانک نام  select the data base on the server.3 بخش در

را  NorthWind ما اینجا در که کنیم می وارد  SqlServer در را نظر مورد

پیغام آمدن صورت در و زده را  TestConnection . کلید نماییم می انتخاب

Test Connection Succeded   پذیرفته صورت درستی به بانک با ارتباط

. است

3

(3تصویر)

نیز آنجا گردیم برمی  Select data Source دیالوگ به و نمودهOk سپس

Okباعنوان دیگر دیالوگ یک نموده Sql Server Login  که شود می باز

    Ok و نموده وارد را  Password. پرسد می را اتصالPassword دوباره

. نماییم می کلیک را

Active Data (Ado) زیر آنجا در گردیم می برData Explorer صفحه به

تحت آیتم یک آن زیر که است گردیده ایجاد سرور نام بهConnection یک

کلیک راAdd کلید و نموده انتخاب را آیتم این است شده آورده  Ado عنوان

. کنیم می

را  Sql گزینه دیالوگ این در شود می بازSelect Record Set دیالوگ حال

Select * from دستور توان می آنListbox ودر نموده انتخاب

employees  دستور این که است این توجه قابل ) . نکته4تصویر) نوشت را

Select  این به برنامه طریق از را دیتایی هر توانید می شما و بوده سوری

. دید خواهید زودی به را مطلب این .که دهید پاس دستور

4

(4تصویر)

 

صفحه به و نمودهOk خروج برای  Select دستور زدن از پس 

Dataexplorerکلید نیز آنجا در و گردیم می باز Closeکنیم می کلیک را  .

، Field Explorer دیالوگ در و آیم می  Crystal Report محیط به حال

DataBase Field  آن زیر تا نموده کلیک را Adoباز نیز را گردد. آن ظاهر

از یک . هر بینیم می اینجا در را نمودیم انتخابSelect در که فیلدهایی نموده

یک هر  دهیم می قرارCrystal Reaport صفحه روی یکی یکی را فیلدها این

محیط به برنامه سطح از را دیتا که هستند کانالهایی مانند فیلدها این از

Crystal Reaportیک کنند می منتقل . TextObject  در گزارش ابتدای به

Report of را گزارش عنوان و نموده اضافهReaport header بخش

Emploees  فیلد کنیم می تایپ آن در . Cityبخش در را report header

را : City متن و گذاشته آن کناز در نیز  TextObject یک و کنیم می اضافه

).5) تصویر کنیم می وارد آن در

5

)5) تصویر

 

محط از و گذاریم میRep1 را فایل اسم نموده ذخیره را گزارش

CrystalReport  شویم می خارج .

6

: گزارش یک مختلف قسمتهای

۱ :Report Header/ Footer - صفحه اولین ابتدای در ها بخش این

: عنوان مثل میشوند داده نمایش آن صفحه آخرین انتهای در و گزارش

گزارش

۲ :Page Header / Footer - از صفحه هر انتهای و ابتدا در قسمتها این

فیلدها- شماره نام همچون اطالعاتی .مثل شد خواهند داده نمایش گزارش

غیره و گزارش چاپ - تاریخ صفحه

۳ :Group Header / Footer - هر از بعد و قبل بالفاصله بخشها این

این در که . اطالعاتی میگردند ظاهر دهید قرار خود گزارش در که گروهی

اساس بر که فیلدی نام همچون مواردی شامل معموال. میشوند ذکر قسمتها

جمع اطالعات یا و گروه آن محاسبه فرمول است گرفته انجام گروهبندی آن

. میباشد گروه هر شده بندی

۴ :Detail- شد خواهد تکرار یکبار رکورد هر ازای به قسمت این .

میشوند دیده یکبار تنها طراحی صفحه در فوق قسمتهای از کدام هر: توجه

. میگردند تکرار نیاز مورد دفعات تعداد به نمایش صفحه در ولی

دقیقه چند از هر اتوماتیک بصورت را خود گزاش میتوانیم چگونه

؟ کنیم ذخیره یکبار

برگه وارد سپس و نموده انتخاب را Option گزینه فایل منو از کافیست

Reporting گزینه و شده AutoSave Reports After xx Minutes را

. مینماییم تنظیم

: فیلدها انواع بندی قالب در مشترک خصوصیات

. میباشند مشترکی خصوصیات دارای ریپورت کریستال در فیلدها کلیه

Suppress  :چاپ زمان در نظر مورد فیلد گزینه این بودن فعال صورت در

7

گزارش در .ولی شد نخواهد دیده اطالعات نمایش صفحه در نیز و گزارش

حالت به را آن میتوان گزینه این نمودن فعال غیر با میتوان و میماند باقی

. گرداند باز خود عادی

Keep Object Together  به مربوط اطالعات نگهداشتن هم کنار : برای

. نمود فعال را گزینه این میبایست صفحه یک در بزرگ فیلدهای

Can Row : اطالعات خط چندین دارای که شیی برای باید را گزینه این

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

یک که خطی تعداد بیشترین میتوانید گزینه این بودن فعال صورت در همچنین

مقدار این فرض پیش صورت به نمایید تعیین نیز را باشد داشته میتواند شی

. میباشد محدودیت بدون معنای به و صفر برابر

 Tool Tip Text: یک به را مختصری توضیح میتوان گزینه این از استفاده با

. داد اختصاص شی

Text Rotationیا و ۹۰ زاویه با را شی میتوان گزینه این از استفاده : با

گذارد نمایش به چرخش درجه ۲۷۰

 Suppress If Duplicated: میگیرد قرار استفاده مورد زمانی گزینه این

داشته را فیلد یک برای تکراری مقادیر آمدن در نمایش به از ممانعت قصد که

باشیم

8

گزارش ايجاد محيط نمودن اختصاصي

نیازهای و سلیقه حسب بر میتوان را گزارش ایجاد و طراحی محیط

برآورده را شما شخصی نیازهای ممکن وجه بهترین به تا نمایید تنظیم خود

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

: است داده قرار

استفاده نمود. با اقدامFile/Options منو از باید که: عمومی - گزینه ۱

تنظیم خود دلخواه به را گزارش ایجاد و طراحی میتوانید پنجره این از

همگی که دیگری کارهای و نمایید تعیین را گزارشها سازی ذخیره نماییدمسیر

دهید. انجام میگردد مربوط ریپورت کریستال کاری محیط به

File/Report منو از باید که: جاری گزارش تنظیم های - گزینه ۲

Optionطراحی مرحله در که گزارشی روی بر تنها ها گزینه نمایید. این اقدام

بود خواهید قادر شما ها گزینه این از استفاده با میگردد اعمال باشد ایجاد و

ذخیره آنها درNull مقدار که را فیلدهایی با برخورد نحوه مثال عنوان به که

گزارش همراه نیز رکوردها آیا که نمایید تعیین یا و کنید مشخص را است شده

ذخیره تنهایی به گزارش یا و شوند ذخیره

9

گيري گزارش نمونه

دیدن داشت خواهد گزارش که نهایی شکل تجسم برای راهها بهترین از یکی

رائه ریپورت کریستال افزار نرم با همراه که است ای نمونه های گزارش

: زیر مسیر در میتوانید را گزارشها این اند شده

c:\Program Files \Business Objects \Crystal Reports 11\

Samples \En\Reports

.ائيدنم مشاهده

گیری گزارش برنامه ایجاد

کنیم می اجرا را  Microsoft Visual Studio.Net 2003 برنامه ابتدا

new Projectکنیم باز را جدید پروژه یک تا نموده .

Project Type/Visual Basic Projects بخش در  NewProject دیالوگ در

این به. کنیم می انتخاب را   Template/Asp.net WebApplication در و

صورت به  شویم می  Microsoft Visual Basic.Net محیط وارد ترتیب

. گردد می ایجاد  Webform1.aspx نام به  form یک دیفالت

می تغییر  FrmRep به را آن نام و رفته آن روی صفحه راست سمت در 

. کنیم می ) پر6تصویر) مطابق هاComponent با را  FrmRep. دهیم

10

)6) تصویر

CrystalReport  از را Componentلیست در موجود های Webform   در

ToolBox  صفحه . یک ایم نموده انتخاب WebFormنام به جدید FrmPrn

می استفاده چاپ آماده گزارش متن ارسال برای آن از که کنیم می ایجاد

Component Crystal Report Viewer یک تنها  WebForm این . در گردد

. کنیم می اضافه را

\File  روی ساختیم    Crystal Report در که گزارشی نمودن اضافه برای

Addnewitem  دیالوگ . از میکنیم Add Newitem Web Application  در

قسمت از و   categories\Webproject item بخش

template/crystalreport  بخش در کنیم می انتخاب را name  نام و رفته

. کنیم می کلیک راOpen کلید آنگاه و میکنیم واردcrep1.rpt را گزارش

Create a بخش . در گردد می ظاهر  Crystal Report Gallery دیالوگ

New CrestalReport Document  قسمت From an Existing Report

نام به  CrystalReport محیط در که را گزارش . و کنیم می انتخاب را

Rep1.rpt  و کرده انتخاب را نمودیم ذخیره Openکنیم می .

11

برنامه محیط در بودیم کرده طراحی و تهیهCrystal Report در که گزارشی

. دیالوگی زنیم می را ذخیره شود. کلید می بازCrep1.rpt نام به نویسی

می انتخاب را  Yes کلید پرسد می را فایل فرمت تغییر که شود می ظاهر

. گردد می ذخیره  Web App در گزارش کنیم

را گزارش یافت درButton   به مربوط  ID  و رفته  FrmRep فرم روی

BtRepمقدار همچنین ،  گزاریم می ID  به مربوط Button  را گزارش چاپ

BtPrn  صورت به را نیاز مورد متغییرهای کالس ابتدای . در گزاریم می

Public  کنیم می معر

 Imports System.Data.SqlClient    ' SqlServerجهت

  از استفاده و ارتباط

Public Class WebForm1

    Inherits System.Web.UI.Page

    'Public cls As New Clss

    Public cn As New SqlConnection

    Public dadb As New SqlDataAdapter

    Public dset As New DataSet

    Public myReport As New WebApplication6.Crep1

    Protected WithEvents Txtcity As

System.Web.UI.WebControls.TextBo

گردد می استفاده شهر جستجوی برای که متغییری'

Public sqlstr As New SqlCommand

به مربوط کد و کنیم می کلیک دوبار و رفته گزارش یافت در کلید روی حال  

. نویسیم می  زیر صورت به را کلید این کلیک

Private Sub Btrep_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs) Handles

Btrep.Click

' گزارش 'دريافت

12

cn.ConnectionString = "Password=as;User

ID=sa;Initial    Catalog=northwind;Data Source=jam"

sqlstr = New SqlCommand(" select  *  from employees

where  city='" + Txtcity.Text + "'  ", cn)

dadb.SelectCommand = sqlstr

dset = New DataSet

dadb.Fill(dset)

If dset.Tables(0).Rows.Count <> 0 Then

myReport.Database.Tables(0).SetDataSource(dset.Table

s(0))

CrystalReportViewer1.ReportSource = myReport

CrystalReportViewer1.DataBind)(

End If

End Sub

مساوی شرط با کهSelect بایک و شده مرتبط دیتابیس به ابتدا کد این توسط

از دیتاها و گردیده تنظیم میگیرد ورودی از که  TxtCity مقدار با  City بودن

. میگردد منتقلDset نام به  DataSet به و  شود می خوانده  Employees جدول

جهت سپس و داده انتقال  Myreport بهDset طریق از شده خوانده رکوردهای

خروجی اجرا از پس و شود می داده انتقالCrystal Report Viewer1 به نمایش

 تصویر)) داریم. مطابق را برنامه

13

(7تصویر)

گزارش چاپ

دارد وجود گزارش چاپ برای روش دو

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

چاپ هرگاه کاربران و کرده نصب سرور روی را نظر موردPrinter صورت

می سرور روی شده نصب  Printer طریق از را خروجی کنند راکلیک گزارش

باشد متمرکز خواهیم می گزارش چاپ که مواردی برای این کنند دریافت توانند

. است مفید

. کنیم می وارد گزارش چاپ کلیک دربخش را ذیل کد لذا

 

Private Sub BtPrn_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtPrn.Click

' گزارش 'چاپ        

14

        cn.ConnectionString = "Password=as;User

ID=sa;Initial Catalog=northwind;Data Source=jam"

        sqlstr = New SqlCommand(" select  * 

from employees where  city='" + Txtcity.Text +

"'  ", cn)

        dadb.SelectCommand = sqlstr

        dset = New DataSet

        dadb.Fill(dset)

        If dset.Tables(0).Rows.Count <> 0 Then

           

myReport.Database.Tables(0).SetDataSource(dset.Ta

bles(0))

          myReport.PrintToPrinter(1, True, 1,

999)

        End If

    End Sub

و راست و چپ  Printer نام ازجمله مشخصات سایر توان می البته

. نمود تنظیم  صفحه از را پایین و باال

گزارش خود چاپگر طریق از بتواند کاربر هر اینکه دوم ) روش ب

می استفاده جدید فرم یک از صورت این . در کند چاپ را نظر مورد

شود چاپ خواهیم می آنچه با متناسب را خروجی آن در که کنیم

میکنیم چاپ  File\print طریق از را صفحه کل و آوریم می بیرون

فرم دو در که هستیم متغییر یک از استفاده به نیاز صورت این در

این در باشد میSession از استفاده روش یک باشد شناسایی قابل

درSession_Start بخش در را متغییر این ابتدا صورت

Global.asax  آن در که کنیم می وارد Dsettemp  یک عنوان به را

Sesstionایم نموده معرفی .

15

    Sub Session_Start(ByVal sender As Object,

ByVal e As EventArgs)

        Session.Add("dsettemp", New DataSet)

        'Fires when the session is started

    End Sub

کنیم می وارد را زیر کد گزارش چاپ کلید کلیک در  

    Private Sub BtPrn_Click(ByVal sender As

System.Object, ByVal e As System.EventArgs)

Handles BtPrn.Click

' گزارش 'چاپ        

        cn.ConnectionString = "Password=as;User

ID=sa;Initial Catalog=northwind;Data Source=jam"

        sqlstr = New SqlCommand(" select  * 

from employees where  city='" + Txtcity.Text +

"'  ", cn)

        dadb.SelectCommand = sqlstr

        dset = New DataSet

        dadb.Fill(dset)

        If dset.Tables(0).Rows.Count <> 0 Then

myReport.Database.Tables(0).SetDataSource(dset.Ta

bles(0))

            Session("dsettemp") = dset

            Response.Redirect("frmprint.aspx")

        End If

    End Sub

. کنیم می وارد  page_load در را زیر کد و رفتهFrmPint فرم به حال

16

Private Sub Page_Load(ByVal sender As System.Object,

ByVal e As System.EventArgs) Handles MyBase.Load

        'Put user code to initialize the page

here

        Dim dset As New DataSet

        dset = Session("dsettemp")

myReport.Database.Tables(0).SetDataSource(dset.T

ables(0))

        CrystalReportViewer1.DisplayGroupTree =

False

        CrystalReportViewer1.DisplayToolbar =

False

        CrystalReportViewer1.ReportSource =

myReport

        CrystalReportViewer1.DisplayGroupTree =

False

        CrystalReportViewer1.DataBind)(

    End Sub

17

(8) تصویر

)8تصویر) مطابق خروجی گزارش چاپ کلید روی کلیک با صورت این در

. بود خواهد

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

این از گزارش ی اطالعات) ارائه زیاد حجم با غیرتجاری های زمینه

Database،الزم است، شبکه یک یا و افزار نرم یک در الزامی امری ها

شود. ایجاد مهم این انجام جهت مناسب ساختاری که است

زمان صرف به مجبور افزار، نرم کامل ایجاد از بعد متخصصان پیش سالها  

و ساخت افزار) برای نرم ایجاد زمان از نیمی اندازه به )گاهی توجهی قابل

ایجاد بر عالوه شدند می مجبور اینکه خاطر به بودند، ها گزارش این مدیریت

به دهند، قرارA4 صفحه یک مثال) داخل عنوان )به آنرا گزارش، اطالعات

تقسیم با هم و کمکی) باشد، افزار نرم هیچ )بدون چاپ قابل هم که صورتی

باقی تغییر بدون آنها بندی قالب و فرمت هم، سر پشت صفحات در اطالعات

های شرکت از متعددی های افزار نرم و ها روش اخیر، سال چند بماند. طی

شد. ارائه نویسان برنامه به کمک و معزل این حل برای مختلف

معایبی و مزایا کدام هر و نیستند کامل مختلف های روش ای، زمینه هیچ در 

که روشی باالخره ولی نبودند، مستثنی قاعده این از هم روشها دارند. این

18

به مایکروسافت توسط داد، ارائهBusiness Objects فرانسوی شرکت

رایگان ی نسخه یک و شد، . پذیرفتهNET پلتفرم در استاندارد روش یک عنوان

نامCrystal Reports که آن افزار نرم محدود) از امکانات با البته )و

در توانید می را مطلب شد. این گنجاندهVisual Studio .Net در دارد،هم

Visual Studio ازAbout منوی زیر در وVisual Studio اسپلش فرم

کنید. مشاهده

(9) شماره تصوير

: کنید دقت آنها به باید مقاله شروع از قبل که نکاتی*

می کتاب3-4 به حداقلCrystal Reports مورد در کامل بحث

گسترده، کاربرد دلیل به و دارد، خود برای زبان یک حتی فناوری این.انجامد

با نویسان، برنامه وسیع طیف تا است، شده تشکیل مختلفSyntax دو از

کنند. استفادهCrystal Reports  از بتوانند کنند، می صرف که زمانی کمترین

که شود، می بحث آن از استفاده ی نحوه مورد در فقط مقاله این در البته

دارد. نیاز مقاله چند به نیز آن خود کامل بحث البته

قسمت نخواندن صورت در که است شده نوشته صورتی به مقاله این نکته:

هایتان افزار نرم درCrystal Reports از اشکال بدون بتوانید مقاله، آتی های

ببرید. بهره

دارید: زیر های مهارت به نیاز مقاله، این از کامل برداری بهره برای 

19

SQL Server مقدماتی علم داشتن          ·

زبان به مقاله این های برنامه )البتهNET. های زبان از یکی به آشنایی          ·

VB.NETشده، برده کار به توابع فهم اینکه به توجه با ولی است، شده نوشته

کافیJ# وC# جمله از دیگری زبان هر به آن ترجمه و کد کامل درک برای

.NET  های زبان از هرکدام به آشنایی مقاله، این کامل درک برای باشد، می

است.) کافی شما برای

) مرحله به حله مر صورت به را برنامه ناگزیرم مقاله حجم به توجه با نکته: 

Step By Stepدهم. ) آموزش

 

Wizard از استفاده و طراحی بخش

دو در هست، پروژه بهDatabase افزودن همان که برنامه این ابتدای قست

یک حالت هر برای مقاله اتمام از بعد کنم می شود. )توصیه می بررسی حالت

دهید.) انجام نمونه پروژه

به آنرا فقط شما و است شده ساخته قبال شماDatabase - اول حالت

کنید: می اضافه پروژه

SQL  فایلProject منوی ازAdd Existing Item ی گزینه از استفاده با

Databaseخودکار صورت به هنگام این کنید. در اضافه پروژه به را خود

شود. نود می بازData Source Configuration Wizard ی صفحه

Tablesانتخاب کنید، سازی گزارش خواهید می که را جدولی ، کرده باز را

کنید. کلیکFinish روی بر و کرده

20

(10شماره) تصوير

شامل که آن به مربوط دیتاست وDatabase فایل هنگام این در

دلیل به موارد از برخی شود. )در می افزوده پروژه به است، نظر مورد جدول

دوباره و بسته راVisual Studio باید ،Visual Studio  در مشخصی نا باگ

به برخورد صورت در و کنید اجرا را بعد مرحله ابتدا کنم می کنید. توصیه باز

دهید.) انجام را کار این مشکل،

کنید: یک می ایجاد پروژه ابتدای در راDatabase  - دوم حالت

Databaseی صفحه هنگام این در کنید، می ایجاد جدید Data Source

Configuration Wizardبار شود.این می باز اید، کرده مشاهده را آن قبال که

کنید. می کلیکFinish دکمه روی بر و کرده انتخاب راTables ی گرینه فقط

dbsCrystalDataSet فایل روی بر کرده، ایجادDatabase در را جداولتان

صفحه بهServer Explorer داخل از را نظر مورد جدول سپس و کرده کلیک

کنید. میdbsCrystalDataSet، Drag and Drop از شده داده نمایش ی

است. مشترک حالت دو هر در برنامه قسمت این از  - مشترک قسمت

21

کنید. تا درگ فرم داخل بهToolBox از راCrystalReportViewer کنترل داشت. خواهید زیر فرم مشابه فرمی اینجا

(11) شماره تصوير

راCrystalReportViewer1 به مربوطTasks پنل که صورتی در

باالی و راست سمت در که کوچکی فلش روی بر کنید، نمی مشاهده

CrystalReportViewer1ی کنید. گزینه کلیک دارد، قرار Create a New

Crystal Reportپنل از را Tasksفایل برای که را نامی و کرده انتخاب

نام به فایلی هنگام این کنید. در تایید شود، می پیشنهاد گزارش

CrystalReport1.rptی صفحه و شده ایجاد Crystal Reports Gallery

کنید. انتخاب را گزارش کلی قالب توانید می شما صفحه این شود. در می باز

OK روی بر تنها پس هستند، جوابگو فرض پیش های گزینه ما ی برنامه برای

کنید. انتخاب را نیاز موردData Source باید بعد صفحه کنید. در کلیک

22

 

(12تصوير شماره )

<-- Project Data مسیر ،Available Data Source لیست در

ADO.NET DataSetsمورد جدول کردید، ایجاد که دیتاستی در و کرده باز را

لیست به جدول تا کنید، < کلیک دکمه روی بر و کرده انتخاب را نظر

Selected Tablesشود. دکمه افزوده Nextی صفحه تا کنید، انتخاب را

Available Fields لیست داخل که را جدولتان شود. نود نمایان فیلد انتخاب

در خواهید می که را هایی فیلد و دارید نگه را کنترل کنید. کلید باز دارد، قرار

به ها فیلد تا کنید < کلیک دکمه روی کنید. بر انتخاب باشند، موجود گزارشان

شوند. اضافهFields To Display لیست

در ولی رسد، می اتمام به مرحله همین در ویزارد اصلی قسمت نکته: 

به که صورتی شوند. در می داده توضیح ها فیلد بندی گروه بعد، ی مرحله

بر صفحه همین در توانید می ویزارد از خروج برای ندارید، نیازی بندی گروه

کنید. کلیکFinish دکمه روی

23

فیلد از شود. یکی ظاهرGrouping صفحه تا کنید، کلیکNext دکمه روی بر

انتخاب دارد قرارAvailable Fields لیست در که راReport Fields  های

افزودهGroup By لیست به فیلد تا کنید، < کلیک دکمه روی بر و کرده،

شود.

است: ضروری نکته چند ذکر اینجا در نکته: 

این کنید. در انتخابReport Fields نود از را فیلد چند توانید می شما: اوال

در که معنا این به شود، می انجام مراتبی سلسه صورت به بندی گروه صورت

از رکورد یک از بیش که گیرد، می صورت )امI) فیلد با بندی گروه صورتی

داشته وجود است، شده بندی دسته )امI - 1) فیلد با که گروه یک در اطالعات

باشد.

Report  نود در که را جدولتان از فیلد یک توانید می شما ثانیا:

Fieldsوجود با صورت این کنید. در انتخاب بندی گروه برای نیست، موجود

آن حسب بر ها رکورد ولی نیست، موجود جدولتان در شده، انتخاب فیلد اینکه

شوند. می بندی دسته فیلد

Finish دکمه روی بر پس رسد، می پایان به نقطه همین در ویزارد با ما کار 

جمله از دیگری اطالعات توانید می بعد صفحات کنید. )در کلیک

Summarized Fieldsو Filter Fieldsرا گزارش کلی ظاهر و کنید ست را

دهید.) تغییر

Visual Studio در فایل و شده افزوده پروژه به گزارش فایل لحظه این در 

شود. می داده نمایش

24

نویسی کد بخش

بنویسیم: کد هم خطی چند تا کنید باز را فرمتان ازLoad رویداد 

کنید کنید: )فرض نگهداری متغیر یک در را گزارش فایل مسیر باید ابتدا:۱

دارد.) قرارD:\Project\CrystalReport ی شاخه در فایل

 

 Dim strReportPath As String = "D:\Project\

CrystalReport\CrystalReport1.rpt"

برد، می سوال زیر را حمل قابلیت ولی است، درست اینکه با کد این نکته:

کنید. عوض را مسیر این باید پروژه ی شاخه محل تغییر با چون

کنید: استفاده زیر کد مشابه کدی از توانید می حمل قابلیت برای 

 Dim strReportPath As String =

GetCurrentDirectory.Substring(0, _

           GetCurrentDirectory.Length - 10) & "\

CrystalReport1.rpt"

 

کنید: اضافه کد صفحه ابتدای به را زیر خط باید صورت این در که

  Imports System.IO.Directory

25

برنامه اجرای در کند، تغییر پروژه ی شاخه مسیر بارها اگر صورت این در

پیشنهاد شما برای را حمل قابلیت از حد همین تا آید. من نمی پیش اختاللی

به را کد باید کنید، میRelease را پروژه که زمانی هم هنوز ولی کنم، می

دهید: تغییر زیر صورت

 Dim strReportPath As String = GetCurrentDirectory()

& "\CrystalReport1.rpt"

که کدی از عاری باشند، داشته برنامه یک خواهند می که کسانی برای نکته: 

شود: می توصیه زیر کد شود، گرفته آن به افزار نرم مهندسی اشکال

  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"

 

در را فایل مسیر و بسازیدCrystalDocument یک باید قسمت این در :۲

کنید:Load آن

26

  Dim rptEmployee As New

CrystalDecisions.CrystalReports.Engine.ReportDocumen

t

 rptEmployee.Load(strReportPath)

دهید قرار آن در را جدولتان اطالعات و بسازید دیتاست یک زمان این در :۳ 

روش هر از توانید می شما دادم، انجام تابع یک از استفاده با را اینکار )من

سند ازSetDataSource متد به را آن سپس کنید)، استفاده دیگری

کنید: ارسال گزارشتان

  Dim dstData As DataSet = fncGetData()

 rptEmployee.SetDataSource(dstData)

راCrystalReportViewer1 کنترل ازReportSource خاصیت انتها در :۴

کنید: ست گزارشتان سند به

  CrystalReportViewer1.ReportSource = rptEmployee

بتوانند افراد همه که این برای ولی شد، تمام فرم ازLoad رویداد کد اینجا تا

شود: می ارائه همfncGetData تابع کد کنند، اجرا اشکال بدون را برنامه

دیتاست فایل نام وDatabase، dbsCrystal فایل نام برنامه این )در

dbsCrystalDataSetاست.) شده گرفته نظر در

 

 Private Function fncGetData() As DataSet

27

     Dim strConn As String = "Data Source=.\

SQLEXPRESS;AttachDbFilename=" & _

     GetCurrentDirectory.Substring(0,

GetCurrentDirectory.Length - 10) & _

     "\dbsCrystal.mdf;Integrated Security=True;User

Instance=True"

     Dim sqlConnection1 As New SqlConnection(strConn)

     Dim strQuery As String = "Select * From

tblEmployee"

     Dim sqlDataAdapter1 As New

SqlDataAdapter(strQuery, sqlConnection1)

     Dim dstData As New dbsCrystalDataSet

     sqlDataAdapter1.Fill(dstData, "tblEmployee")

     Return dstData

 End Function

 

فایل )نامdbsCrystalDataSet یک تابع این در که شود توجه نکته:

ی رشته در . همچنینDataSet یک نه شده، کردید) ایجاد ایجاد که دیتاستی

strConnشود، می مطرح ناقص طور به حمل قابلیت ی مسئله باال تابع در

strReportPath ی رشته در که روشی از توانید می مسئله این رفع برای که

کنید. استفاده کردم، مطرح فرمLoad رویداد در

28

اضافه کد ی صفحه باالی به را زیر خط است الزم باال تابع از استفاده برای

کنید:

  Imports System.Data.SqlClient

باشد: زیر صورت به کدی دارای باید شما کد ی صفحه حاال

29

شماره ) (13تصوير

Crystal از استفاده برای هم تری ساده های راه که شود توجه : نکته

Reportsاین در ولی ندارند، هم نویسی کد به نیاز بعضی که دارد، وجود

"" کد در تغییر کمی با بتوانید که شد داده آموزش روش این عمدا مقاله

Select * From tblEmployeeنظر در اطالعات برای فیلتری گونه هر

Crystal Report  زبان از استفاده به کمتری مراتب به نیاز عمال و بگیرید،

باشید. داشته خاص، فیلتر یک با اطالعات آوردن دست به برای

مشاهده زیر زیبایی! مانند کنید. فرم اجرا را آن است کامل برنامه حاال

خودتان) جدول اطالعات از شده پر کرد: )البته خواهید

فرم( داخل )گزارش

30

)14) شماره تصوير

31

گزارش( از متشکل )فرم

)15) شماره تصوير

CrystalReportViewer1 کنترل باالی در موجودToolbar در که همانطور

مختلف های فرمت به اطالعات دادن خروجی کنترل، این کنید، می مشاهده

صفحه ها، داده در جستجو ، اطالعات پرینت ) ،XLS وPDF، DOC جمله ) از

32

کاهش بدون % و400 ) تا صفحه روی بر کردن زوم حتی و اطالعات پیمایی

کند. می مهبا نهایی کاربر و شما برای ) را ها نوشته کیفیت

33

VB وVB.NET با ريپورت كريستال ارتباط

روش این با توانید می embedded Crystal Reports Designer درون

query بنویسید:

و کرده راست کلیک Field Explorer درون Database Fields روی - 1

Database Expert کنید انتخاب را.

data source – 2 در را خود Database Expert dialog box کرده پیدا

.کنید کلیک دوبار Add Command روی و

.بنویسید را خود نظر مورد query توانید می Add Command درون 3-

حتما باید کنید می استفاده ریپرت کریستال از ویندوزی فرم در اگر - 1

گفته آن MSDN در که همانطور را نت دات در موجود ریپرت کریستال نسخه

در SetUp پروژه یک خود نامه بر جهت سپس کنید Regoster است شده

ایجاد SetUp نامه بر آن حالت این .در کنید ایجاد نامه بر Solutaion همان

.برد می خود همراه به را خود به مربوط های Dll شده

نامهای با فایل4 باید باشد می وبی نوع از شما فرم اگر- 2

CrystalDecisions.CrystalReports.Engine.dll

CrystalDecisions.ReportSource.dll

CrystalDecisions.Shared.dll

CrystalDecisions.Web.dll

.دهید قرار شده ایجاد سایت BIN دایرکتوری در را

.است شده طرف بر زیادی حد تا VS2005 در مشکالت این البته

:کنید اضافه نصب برنامه به را زیر ماژولهای ابتدا

>>Crystal_Database_Access2003.msm )necessary if

you use ado(

>>Crystal_Database_Access2003_enu.msm

)necessary if you use ado(

34

>>Crystal_Managed2003.msm

>>Crystal_regwiz2003.msm )don't forget to set

license key in properties(

>>VC_User_CRT71_RTL_X86_---.msm )used for

reports based on ADO.NET(

>>VC_User_MFC71_RTL_X86_---.msm )used for

reports based on ADO.NET(

از) license) خاصیت زیر و رفته خواص قسمت به باید چهارم ماژول برای

را مربوطه لیسانس و انتخاب را) MergemodualPeraperties) خاصیت

بدست استودیو ویژوال…. about قسمت از لیسانس این که میکنیم اضافه

2003 استودیوی برایویژوال آن مقدار یک کریستال) ولی کناری میآید) رشته

.میباشد) AAP50-GS00000-U7000RN) مقدار

که شود داده keycodev2.dll خطای باز است ممکن وب حالت در:1توجه

:است زیر شرح به آن حل راه یک

)رجیستری برنامه )در بروید زیر کلید دو سراغ به برنامه نصب از پس

-HKEY_CLASSES_ROOT\Interface\{4A4D268A-DF9B-

4FC1-8301-D9FEEEF69F9C}

-HKEY_CLASSES_ROOT\TypeLib\{8D43D0B9-C14E-

4577-9E67-A9A1EEF82302}

راست با اینکار ) برایددهیب را خواندن دسترسی اجازه ASPNET کاربر به و

…permissions انتخاب و Edit منوی ویا… permissions انتخاب و کلیک

اجازه و اضافه را ASPNET کاربر سپس میشود باز مربوطه تبادلی کادر

باشد مفید میتواند زیر متن وب حالت در).میدهیم او به را مربوطه

In web.config:

>compilation defaultLanguage="vb"

debug="true>"

>assemblies>

35

>add

assembly="CrystalDecisions.CrystalReports.Engine,

Version=9.1.5000.0, Culture=neutral,

PublicKeyToken=692fbea5521e1304>/"

>add assembly="CrystalDecisions.ReportSource,

Version=9.1.5000.0, Culture=neutral,

PublicKeyToken=692fbea5521e1304>/"

>add assembly="CrystalDecisions.Shared,

Version=9.1.5000.0, Culture=neutral,

PublicKeyToken=692fbea5521e1304>/"

>add assembly="CrystalDecisions.Web,

Version=9.1.5000.0, Culture=neutral,

PublicKeyToken=692fbea5521e1304>/"

/>assemblies>

/>compilation>

In web references:

CrystalDecisions.CrystalReports.Engine

CrystalDecisions.ReportSource

CrystalDecisions.Shared

CrystalDecisions.Web

نبود نصب برنامه اگر که باشد شده ثبت باید keycodev2.dll فایل :2توجه

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

:کنید اجرا ویندوز Run قسمت

36

Regsvr32 "C:\Program Files\Common Files\Crystal

Decisions\1.0\bin\keycodev2.dll"

همینطور crqe.dll فایل

regsvr32 "C:\Program Files\Common Files\Crystal

Decisions\1.1\Bin\crqe.dll"

همینطور crpe32.dll فایل

regsvr32 "C:\Program Files\Common Files\Crystal

Decisions\1.1\Bin\crpe32.dll"

بیسیک ویژال در را ریپورت کریستال گزارشات میتوان گونهچ

 ؟ ردک استفاده

Crystalآیتم و نموده انتخاب را Refrence گزینه Project منو از الف(

report Activex Designer Run Time Library 10 انتخاب را

. مینماییم

)برای نموده انتخاب را Component گزینه Project منو از سپس ( ب

یعنی ۱۰ کریستال به مربوط آیتم کریستال) و اکتیویکس افزودن

Crystal Activex Report Viewer Library 10 اضافه را

.مینماییم

بر را CrystalActivexReportViewer1 کنترل ToolBox نوار از حال ج(

.اندازیم می فرم روی

و انداخته فرم روی بر CommandButton کنترل یک آن از پس ( د

Caption را آن Load Report میدهیم قرار.

.بنویسید را زیر کد دکمه به مربوط Click رویداد در سپس م(

Dim crApp as New CRAXDRT.Application

37

Dim crRept As New CRAXDRT.Report

Set crRept=crApp.OpenReport(App.Path & "\Report1.Rpt"(  '

Report File

crRept.RecordSelectionFormula = "{tblKala.dateVorood}>='"

& MaskEdBox1.Text & "' and {tblKala.dateVorood}<='" &

MaskEdBox2.Text & "'"

CrystalActivexReportViewer1.ReportSource=crRept

CrystalActivexReportViewer1.ViewReport

Set crApp=Nothing

Set crRept=Nothing

Load Reports دکمه دادن فشار با میتوانید شما گزارش اجرای از پس

.کنید مشاهده را خود گزارش

38

دلفي با ارتباط

. روش باشد Access بانک و کنید استفاده7 کریستال و7 دلفی از چنانچه

.مبری مي بکار پارامتریک گزارشگیری برای را زیر

دستورات سپس و گذاشته فرم روی را ریپورت کریستال کمپوننت باید ابتدا

. بنویسید را زیر

:کد

with crystalreport1 do

begin

ReportFileName:='Report10.rpt;'

SelectionFormula:='{yourtablename.yourfield}>='

+inttostr)edit1.text(+'and

{yourtablename.yourfield}&lt;='+inttostr)edit2.tex

t(;

Action:=1;

end;

39

اكسس در ريپورت كريستال نقش

اكسس محيط در ريپورت كريستال از توان مي چگونه

؟ كرد استفاده

شده گزارشها برگه وارد کافیست اکسس افزار نرم در گزارش ایجاد برای- 1

در و نموده انتخاب راCrystal Report Wizardآیتم و بزنیم راNew گزینه و

. مراحل بقیه و مینماییم انتخاب را مربوطه جدول نام جدول انتخاب قسمت

اكسل در ريپورت كريستال نقش

اكسل محيط در ريپورت كريستال از توان مي چگونه

؟ كرد استفاده

Crystal گزینه Tool منو از سپس و نموده باز را خود اکسل فایل ابتدا

Report Wizard دکمه تا دهید انجام را الزم تنظیمات سپس نمایید کلیک را

. ظاهرشود پایان

نماییم استفاده اکسس در ریپورت کریستال از میتوانیم چگونه

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

آیتم و بزنیم را New گزینه

 Crystal Report Wizard نام جدول انتخاب قسمت در و نموده انتخاب را

.مینماییم انتخاب را مربوطه جدول

40

ماخذ و منابع

 

David McAmis, Professional Crystal Reports for Visual

Studio .NET, 2002 10

.Joe Estes, Neil FitzGerald, Kathryn Hunt, Steve Lucas,

Ryan Marples20

http://www.informit.com/safari/

author_bio.asp@ISBN=0672320908

 

Sams Teach Yourself Crystal Reports® 9 in 24 Hours.

September 03, 2002. Sams Publishing

http://barnamenevis.org/forum/showthread.php?t=14540

http://ebadicrystalreport.blogfa.com

ebadi2003.blogfa.com

41