تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مساعدة في تقرير
#1
السلام عليكم 

رمضان كريم علي الجميع 


اقوم بانشاء برنامج حضور و انصراف 

عندي جدول به 
1- كود الموضف
2- تاريخ الحركة
3- نوع الحركة (غياب  - حضور - اجازة - مؤمورية)

اريد عمل تقرير ساركي للموظف

بحثت علي الانترنت وصلت ان اقوم بعمل هذا التقرير من ال SQL  



وكان الكود كالاتي 

الجدول 

كود :
CREATE TABLE TMP
(
  NAME VARCHAR(50),
  DATE DATETIME ,
  PRESENT_STATUS VARCHAR(10)
)


ال  Stored Procedure
كود :
Create   PROCEDURE GET_ATTENDANCEREPORT
@STARTDATE DATETIME,
@ENDDATE DATETIME
AS BEGIN

WITH DATERANGE AS
(
  SELECT DT =DATEADD(DD,0, @STARTDATE)
  WHERE DATEADD(DD, 1, @STARTDATE) <= @ENDDATE
  UNION ALL
  SELECT DATEADD(DD, 1, DT)
  FROM DATERANGE
  WHERE DATEADD(DD, 1, DT) <= @ENDDATE
)

SELECT * INTO #TMP_DATES
FROM DATERANGE

DECLARE @COLUMN VARCHAR(MAX)
SELECT @COLUMN=ISNULL(@COLUMN+',','')+ '['+ CAST(CONVERT(DATE , T.DT) AS VARCHAR) + ']' FROM #TMP_DATES T
DECLARE @Columns2 VARCHAR(MAX)
SET @Columns2 = SUBSTRING((SELECT DISTINCT ',ISNULL(['+ CAST(CONVERT(DATE , DT) as varchar )+'],''N/A'') AS ['+CAST(CONVERT(DATE , DT) as varchar )+']' FROM #TMP_DATES GROUP BY dt FOR XML PATH('')),2,8000)
DECLARE @QUERY VARCHAR(MAX)
SET @QUERY = 'SELECT NAME, ' + @Columns2 +' FROM
(
SELECT A.NAME , B.DT AS DATE, A.PRESENT_STATUS FROM attend A RIGHT OUTER JOIN #TMP_DATES B ON A.DATE=B.DT
) X
PIVOT
(
MIN([PRESENT_STATUS])
FOR [DATE] IN (' + @COLUMN + ')
) P
WHERE ISNULL(NAME,'''')<>''''
'

EXEC (@QUERY)
DROP TABLE #TMP_DATES

END




ولاكن انا احتاج ان اجعاها في CrystalReport

حتي يمكنني الطباعة و هكذا 

التقرير الذي اريدة يكون بهذ الشكل
الرد }}}
تم الشكر بواسطة:
#2
هل يوجد طريقة لعمل هذا التقرير
الرد }}}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم