Vous êtes sur la page 1sur 13

Hng dn to bo co ng Crystal Report vi Store Procedure C# Vs 2005

C l v kh c ch do cc ngun thong tin him hoi, hoc khng ai rnh m hng dn c th. Nn mnh xin hng dn chi tit vic to crystal report vi store procedure, nh cc bn bit, store n cng c dng: khng truyn tham s no ( cch ny report qu d ), cch 2 l c truyn tham s lc ra cc gi tr ( tui s hng dn lien qua phn ny) . Ngoi ra crystal report c cc cch khc nhau truyn tham s , c ngi dng: parameter field ( a s cc thng tin hng dn ton ci ny) , c ngi dng formula Field ( t ai hng dn ci ny) v xin thong bo tui ch hng dn formula v n nm trong ci tui tm hiu. Cn y s l Dng mnh mun lm, yu cu nh sau : Ti c danh sch cc ha n thanh ton, ti mun lc ra cc Ha n cha ng tin t ngy 20/11/2000 n ngy 20/11/2010 . Ht ! Thit k giao din : + 2 ci datetimepicker +2 button ( ci button Lp bo co l ti lu bo co ny xung CSDL, ko dnh g crystal nn khi quan tm) + 1 crystalreportViewer. + my ci label ng quan tm. Hnh nh sau :

Sau y ti s demo trnh t cc bc thc hin : Bc 1 : - To 1 database c tn l HoaDonThanhToan, 1 bng cha thng tin. V d tblHoaDonThanhToan nh hnh sau

Bc 2: To kt ni server trong VS2005, ci ny chc khi ch cho mt cng nh, ai khng bit c th tm ch no hng dn . Hnh mnh kt ni sever explorer l y

Bc 3: Thit k ci form y nh ci hnh yu cu ( Lu ch c nhng ai c ci crystal report th trong toolbox mi hin tool crystal report thi nh, ko th 1 l coi trong a c ko, 2 l t down v ) Bc 4: thit k store procedure , tao mi 1 store trong SQL hay VS2005 u c
ALTER PROCEDURE dbo.StoredProcedure2 @TuNgay datetime, @DenNgay datetime AS /* SET NOCOUNT ON */ DECLARE @TuNgay datetime DECLARE @DenNgay datetime*/ SELECT HoaDonThanhToan.SoHoaDon, HoaDonThanhToan.MSTKV, HoaDonThanhToan.DaThanhToan, HoaDonThanhToan.HanChot FROM HoaDonThanhToan WHERE (HoaDonThanhToan.DaThanhToan = 0) and (HoaDonThanhToan.HanChot <= @DenNgay) and (HoaDonThanhToan.HanChot >= @TuNgay) RETURN /*

ng c m copy lun c ci ALTER PROCEDURE dbo.StoredProcedure2 nh v ci ny ch dng cho stored c to, copy cha ra ci ny dm ko ni mnh ch sai Sau khi xong ri thch th c execute chy th ngay trong VS2005

Bc 5: thit k DataSet, thi chc ch lun khi ai thc mc, sn cho nhng ai mi lm quen lun

Sau chn DataSet

K tip ta add store mi to vo trong DataSet ny

Chn Next >> chn Use existing Stored Procedures >> chn select combox >> chn ci stored mnh mi to

Ri chn Next >> Next >>> Finish. n y ta c dataset cha store trong c cc bng m ta mun hin ri Bc 6: To Crystal report

Ca ti l BaoCaoTienPhat.rpt ( ai t tn g th nh ly ) Sau khi ta nhn nt Add, chn nh hnh sau :

Tip theo ta s add d liu store ca chng ta vo nh sau :

OK, n bc ny ta cn ngh ngi nghe ti gii thch t cho r, n y Stored ca chng ta c add vo Crystal Report, nu chng ta ko cn truyn tham s th c vic ko cc Field vo trong Section3 Detail

Nhng trng hp chng ta cn phi truyn tham s t dateTimePicker m chng ta thit k th chng ta ko lm trc tip dc vi cch ny, m chng ta phi lm gin tip, sau vit code th mi c. Nh ni c cc cch nh dng Bin o thuc: Parameter Field hoc Formula Fields nh hnh trn bn tri cc bn thy, y ti dng Formula ( ty ngi, c ngi cho l Parameter d, cn ti th Formula d xi ). OK, tip tc ti s new cc bin trong Formula Field bng cch Right_click ln Formula Field >> chn New, ( khuyn co cc bn ang tm hiu nn t theo cch ti, v sau ai rnh th c i t do ), y ti t l F1, F2, F3, F4, ng vi 4 ci Field trong Stored m ta to ( Hnh trn l do phn ca ti n c lin quan 2 table nn c ti 7 field , cng ko quan trng lm nu cc bn hiu r ny gi mnh ang lm g ). Khi new cc bn c chn Use Editor hoc Use Expert ty, ko quan trng. Sau ko cc field trong Formula Field vo trong Section3 Detail cc bn s thy nh hnh trn. Xong, trc khi cc bn tip, cc bn vo Section2 ( Page Header ) , click tri vo F1 >>> qua Properties >> Name n l Text1, tng t F2:Text2, F3:Text3, v sao ti ni cc bn ci ny, bi v lt vit code chng ta s i chng thnh cc Name tng ng vi cc field thuc Store, v d: Text1=SoHoaDon, Text2= MSTKV. Hon tt Crystal, gi chng ta qua Form thit k bc 3 . Bc Cui cng: Chng ta s ch c nhiu y code thi

BaoCaoTP.StoredProcedure2DataTable baocao; private void bttHienThi_Click(object sender, EventArgs e) { BaoCaoTienPhat document = new BaoCaoTienPhat(); baocao = new BaoCaoTPTableAdapters.StoredProcedure2TableAdapter().GetData(dateTuNgay.Value, dateDenNgay.Value); document.SetDataSource((DataTable)baocao); for (int i = 0; i < baocao.Columns.Count; i++) { document.DataDefinition.FormulaFields[i].Text = string.Format("{{StoredProcedure2.{0}}}", baocao.Columns[i].ColumnName); ((CrystalDecisions.CrystalReports.Engine.TextObject)document.ReportDefinition.Report Objects[string.Format("Text{0}", i + 1)]).Text = baocao.Columns[i].ColumnName; } crystalReportViewer1.ReportSource = document; }

Nhn ri nh, ng lo ti s gii thch chi tit lun u tin chng ta s cn ly d liu t Dataset cha Store m chng ta to BaoCaoTP.StoredProcedure2DataTable baocao; baocao = new BaoCaoTPTableAdapters.StoredProcedure2TableAdapter().GetData(dateTuNgay.Value, dateDenNgay.Value);// Ci ny s lc ra d liu da vo 2 ci dateTimePicker chng ta thit k trn ri ly d liu gn vo baocao document.SetDataSource((DataTable)baocao); // Thit lp DataSoucre cho report ca chng ta t ci baocao Gii thiu t v string. Format lun string.Format("Text{0}", 1) // khi xut ra chng ta s c Text1 string.Format("Text{0}", 2) // khi xut ra chng ta s c Text2

((CrystalDecisions.CrystalReports.Engine.TextObject)document.ReportDefinition.ReportObjects[string.Fo rmat("Text{0}", i + 1)]).Text = baocao.Columns[i].ColumnName; // Ci ny kh gii thch , chc ai gii ln MSDN s r cc lp i tng ny, ni chung y chng ta s thay i tiu cc field Section2 Header F1,F2,F3 da vo baocao.Columns[i].ColumnName ( SoHoaDon, MSTKV,DaThanhToan, HanChot)

document.DataDefinition.FormulaFields[i].Text = string.Format("{{StoredProcedure2.{0}}}", baocao.Columns[i].ColumnName);/// in tt c cc d liu thuc trng no vo Field *i+, chc phi gii thch r t ch ny, cc bn "{{StoredProcedure2.{0}}}" gi s i=1 nu xut ra messagebox.show ta s c kt qu {StoredProcedure2.SoHoaDon}ngha l khi ta lc ra ta c cc SoHoaDon nh 1,2,3,4 theo 1 hng dc ( ct ) sau gn ci ct ny vo Formula Field th [i], ng vi @F1,@F2,@F3 V d n gin nh document.DataDefinition.FormulaFields*0+.Text = ABC th trong report ngay ch @F1 s c 1 chui ABC ( c to 1 project Test ri th code s r ). Cui cng gn document ny gi ta lm vo crystalreportViewer trn Form l xong

crystalReportViewer1.ReportSource = document; Cng vic by gi l buil d n ca chng ta ln v chy chng. Bt u chy thi. Hy thng thc thnh qu mnh va lm ra.

23h28 ri, tn 2h ngi vit ci ny cng mong cho ai ang cn c th tm c nh sang ni cui chn tri. Chc ng ngn everybody !

Vous aimerez peut-être aussi