آموزش كريستال
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
: گزارش یک مختلف قسمتهای
۱ :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
گزارش( از متشکل )فرم
)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}<='+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