23-03-24, 10:31 PM
السلام عليكم
رمضان كريم علي الجميع
اقوم بانشاء برنامج حضور و انصراف
عندي جدول به
1- كود الموضف
2- تاريخ الحركة
3- نوع الحركة (غياب - حضور - اجازة - مؤمورية)
اريد عمل تقرير ساركي للموظف
بحثت علي الانترنت وصلت ان اقوم بعمل هذا التقرير من ال SQL
وكان الكود كالاتي
الجدول
ال Stored Procedure
ولاكن انا احتاج ان اجعاها في CrystalReport
حتي يمكنني الطباعة و هكذا
التقرير الذي اريدة يكون بهذ الشكل
رمضان كريم علي الجميع
اقوم بانشاء برنامج حضور و انصراف
عندي جدول به
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
حتي يمكنني الطباعة و هكذا
التقرير الذي اريدة يكون بهذ الشكل