مثال علي اعداد تقارير Microsoft Report - Client-Side Reporting الجزء الاول


     -          اولا اعداد مصدر البيانات الـ Dataset

في هذا المثال سوف نستخدم Dataset  كمصدر محلي للبيانات , يمكن ان نعيد البيانات الي Dataset من اي قاعده بيانات كـ SQL SERVER  او Oracle  او ....  
وفي الفقرة القادمه ساسرد طريقة ارجاع البيانات للـ Dataset  باستخدام SQL Server Table Valued Functions

1 -

من Project Solution  ومن Add New Item  نقوم باختيار Dataset  من النافذة التي ستظهر .
بعد اضافه Dataset  وباستخدام الـ Dataset Designer  نقوم بضغط الزر الايمن للماوس واختيار
 Add >> Data Table او يمكن افلاتها من  ToolBoxكما بالشكل :



2- بعد اضافه الـ Data Table  يمكننا اضافه الـ  Columns  وتسميتها كما نريد بالضغط علي الـ Data Table  
Add >> Column  , قمت باضافة الـ Columns   وحددت نوع البيانات كالاتي:



الان وبعد ان تم انشاء مصدر البيانات المحلي سيمكننا ان نربطه بالتقرير وسوف اقوم بشرح اعداد التقرير بالتفصيل في الجزء الثاني .
- ثانيا اعداد مصدر البيانات من SQlServer

1- 

بعد انشاء قاعدة البيانات سنقوم بانشاء الــ Table  التي سنستخدمها تحتوي علي Culomns الاتية


وهذا اسكريبت انشائها
-----------------------------------------------------------------------------------------------------------
/****** Object:  Table [dbo].[BirthDay]    Script Date: 02/23/2013 21:00:25 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[BirthDay](
      [Id] [int] IDENTITY(1,1) NOT NULL,
      [FirstName] [nvarchar](50) NOT NULL,
      [LastName] [nvarchar](50) NOT NULL,
      [birthdayDate] [date] NOT NULL,
 CONSTRAINT [PK_BirthDay] PRIMARY KEY CLUSTERED
(
      [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO
-----------------------------------------------------------------------------------------------------------

2 - 

الان سنقوم بانشاء Table Function  التي ستقوم بارجاع البيانات من الجدول خلال فتره معينة باستخدام 2 براميتر هما
يعبران عن بداية ونهاية الفترة كما في هذا السكريبت
-----------------------------------------------------------------------------------------------------------

/****** Object:  UserDefinedFunction [dbo].[FUBirthDayReport]    Script Date: 02/23/2013 21:06:07 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

Create FUNCTION [dbo].[FUBirthDayReport](@DateFrom Datetime , @DateTo Datetime)

RETURNS @BirthDayOrder Table
(
Se int identity(1,1) ,
FullName nvarchar(110) ,
BirthDay Date ,
DateFrom datetime ,
DateTo datetime
)
AS
Begin
declare @Crs Cursor ,
            @FullName nvarchar(50) ,
            @BirthDay Date;


Set @Crs = Cursor For Select FirstName + ' ' + LastName As FullName , birthdaydate
                                          From BirthDay
                                          Where birthdaydate Between @DateFrom And @DateTo
                                          Order by birthdaydate , FullName

Open @Crs ;
Fetch next From @Crs
           Into @FullName , @BirthDay ;

While(@@FETCH_STATUS = 0)
BEGIN
Insert into @BirthDayOrder
(FullName , BirthDay , DateFrom , DateTo)
values
(@FullName , @BirthDay , @DateFrom , @DateTo)

Fetch next From @Crs
           Into @FullName , @BirthDay ;

End
Close @Crs
Deallocate @Crs
Return ;
End
GO
------
- الان اصبحت مصادر البيانات جاهزة الجزء الثاني من هذا المقال سيتناول طريقة تصميم التقارير