Professional Documents
Culture Documents
Learn Crystal Reports2
Learn Crystal Reports2
Solo_net2005@yahoo.com
_
ARAB TEAM 2000
ﺘﻜﻭﻴﻥ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ
ﻓﻰ ﻜﺜﻴﺭ ﻤﻥ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺤﺘﺎﺝ ﺍﻟﻰ ﺘﻘﺴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻟﻜﻰ ﻨﺠﻌﻠﻬﺎ ﺍﺴﻬل ﻓﻰ ﺍﻟﻘﺭﺍﺀﺓ ﻭﺍﻟﺘﺤﻠﻴل ﻴﺒﻴﻥ
ﻟﻨﺎ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﻜﻴﻔﻴﺔ ﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﻤﺠﻤﻭﻋﺎﺕ ﺒﺎﻟﺘﻘﺭﻴﺭ.
ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ insertﺜﻡ ﻨﻨﻘﺭ group -1
ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ insert groupﻨﺨﺘﺎﺭ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻻﻭﻟﻰ ﺤﻘل ﺍﻟﺘﻘﺴﻴﻡ -2
ﻨﺨﺘﺎﺭ ﺍﺘﺠﺎﻩ ﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ -3
ﻋﻨﺩﻤﺎ ﻨﺭﻏﺏ ﻓﻰ ﺘﺤﺩﻴﺩ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﺒﻴﻨﺔ ﻓﻰ ﻤﻘﺩﻤﺔ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻨﺨﺘﺎﺭ ﻤﺭﺒـﻊ customize group -4
name fieldﻤﻥ ﺍﻟﻨﺎﺤﻴﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﺴﻭﻑ ﻴﻘﻭﻡ ﺭﺍﺱ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺒﻌﺭﺽ ﻗﻴﻤـﺔ ﺤﻘـل ﺘﻘـﺴﻴﻡ
ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﺍﺫﺍ ﺭﻏﺒﻨﺎ ﻓﻰ ﻋﺭﺽ ﻗﻴﻤﺔ ﻤﺨﺘﻠﻔﺔ ﻨﺨﺘﺎﺭ ﺤﻘل ﺒﻴﺎﻨﺎﺕ ﺒﺩﻴل ﺍﻭ ﻨﻜﻭﻥ ﺼﻴﻐﺔ
ﻨﻨﻘﺭ ok -5
2
-1ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ insertﺜﻡ ﻨﻨﻘﺭ group
-2ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ insert groupﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻴﻘﻭﻡ ﻋﻠﻴﻪ ﺍﻟﺘﻨﻅﻴﻡ ﺍﻟﻬﺭﻤﻰ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜـﺎل
ﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺒﻨﺎﺀ ﺍﻟﻬﺭﻤﻰ ﻟﻠﻤﻭﻅﻔﻴﻥ ﻓﻰ ﺸﺭﻜﺔ ﻨﺨﺘﺎﺭ ﺤﻘل ﺒﻴﺎﻨﺎﺕ ﺭﻗﻡ ﺍﻟﻤﻭﻅﻑ ﻭﻋﻨـﺩﻤﺎ
ﻨﺭﻴﺩ ﻤﺸﺎﻫﺩﺓ ﻫﺭﻡ ﻤﻜﺎﺘﺏ ﻤﺒﻴﻌﺎﺕ ﺍﻟﻤﻨﺎﻁﻕ ﻨﺨﺘﺎﺭ ﺍﺴﻡ ﺍﻟﻤﻜﺘﺏ
-3ﻨﺨﺘﺎﺭ in ascending order
-4ﺘﻠﻘﺎﺌﻴﺎ ﺘﻌﺭﺽ ﻤﻘﺩﻤﺔ ﺍﻟﻤﺠﻤﻭﻋﺔ group headerﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻗﻴﻤﺔ ﺍﻟﺤﻘل ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﻰ ﺘﻘـﺴﻴﻡ
ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﺍﻅﻬﺎﺭ ﻗﻴﻤﺔ ﻤﺨﺘﻠﻔﺔ ﻨﻀﻊ ﻋﻼﻤﺔ ﻓﻰ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭ customize group
name
-5ﻨﻨﻘﺭ okﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﺍﻀﺎﻓﺔ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﻰ ﺍﻟﺘﻘﺭﻴﺭ
-6ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ reportﻨﻨﻘﺭ hierarchical group
optionsﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻋﺭﺽ ﻤﺭﺒﻊ ﺤﻭﺍﺭ
-7ﻓﻰ ﻗﺎﺌﻤﺔ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﻤﺘﺎﺤﺔ ﻨﺨﺘﺎﺭ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﺘﻨﻅﻴﻤﻬﺎ ﻫﺭﻤﻴﺎ ﻓﺎﺫﺍ ﻜﺎﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻴﺤﺘﻭﻯ
ﻋﻠﻰ ﻤﺠﻤﻭﻋﺔ ﻭﺍﺤﺩﺓ ﻓﺎﻥ ﻫﺫﻩ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻴﺘﻡ ﺍﺨﺘﻴﺎﺭﻫﺎ ﺘﻠﻘﺎﺌﻴﺎ ﻓﻰ ﻗﺎﺌﻤﺔ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﻤﺘﺎﺤﺔ
-8ﻨﺨﺘﺎﺭ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭ sort data hierarchically
-9ﻓﻰ ﻗﺎﺌﻤﺔ parent id fieldﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻴﺘﺒﻌﻪ ﺤﻘل instance idﻋﻠـﻰ ﺴـﺒﻴل ﺍﻟﻤﺜـﺎل
ﺒﺎﻟﻨﺴﺒﺔ ﻟﺘﻘﺭﻴﺭ ﻫﺭﻤﻰ ﺨﺎﺹ ﺒﺸﺭﻜﺔ ﻴﻤﻜﻨﻨﺎ ﺍﺨﺘﻴﺎﺭ ﺤﻘل ﺍﻟﻤﺩﻴﺭ ﺍﻟﺫﻯ ﻴﺭﻓﻊ ﺍﻟﻤﻭﻅﻑ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻴـﻪ
ﻭﻴﺠﺏ ﺍﻥ ﻴﻜﻭﻥ ﻜل ﻤﻥ ﺤﻘل instance idﻭﺤﻘل parent idﻤﻥ ﻨﻔﺱ ﻨﻭﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻓﻰ ﺤﻘل group indentﻨﺩﺨل ﻜﻤﻴﺔ ﻤﺴﺎﻓﺔ ﺍﻟﺯﺤﺯﻩ ﺍﻟﻰ ﺍﻟﺩﺍﺨل ﻟﻜل ﻤﺠﻤﻭﻋﺔ -10
ﻨﻨﻘﺭ ok -11
3
ﺍﺤﺩ ﺍﻻﻏﺭﺍﺽ ﺍﻻﺴﺎﺴﻴﺔ ﻟﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻫﻭ ﺍﺠﺭﺍﺀ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﻋﻠﻰ ﻜل ﻤﺠﻤﻭﻋﺔ ﻤﻥ
ﺍﻟﺴﺠﻼﺕ ﺒﺩﻻ ﻤﻥ ﺍﺠﺭﺍﺌﻬﺎ ﻋﻠﻰ ﺠﻤﻴﻊ ﺍﻟﺴﺠﻼﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻋﻨﺩﻤﺎ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺘﻠﺨﻴﺹ ﺍﻟﺒﻴﺎﻨـﺎﺕ ﻓﺎﻨـﻪ
ﻴﻘﻭﻡ ﺒﻔﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﺘﻘﺴﻴﻤﻬﺎ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﺜﻤﺘﻠﺨﻴﺹ ﺍﻟﻘﻴﻡ ﻓﻰ ﻜل ﻤﺠﻤﻭﻋﺔ ﻭﻴﺘﻡ ﺍﻟﻘﻴﺎﻡ ﺒﺫﻟﻙ ﺍﺘﻭﻤﺎﺘﻴﻜﻴـﺎ
ﻭﻴﺤﺘﻭﻯ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻋﻠﻰ ﻋﺩﺩ ﻤﻥ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺘﻠﺨﻴﺹ:
• ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﺍﺠﻤﺎﻟﻰ ﺍﻟﻘﻴﻡ ﻓﻰ ﻜل ﻤﺠﻤﻭﻋﺔ
• ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﻋﺩﺩ ﺠﻤﻴﻊ ﺍﻟﻘﻴﻡ ﺍﻭ ﺍﻟﻘﻴﻡ ﺍﻟﻤﺘﻤﻴﺯﻩ
• ﻤﻌﺭﻓﺔ ﺍﻗﺼﻰ ﻗﻴﻤﺔ ﺍﻗل ﻗﻴﻤﺔ ﻤﺘﻭﺴﻁ ﺍﻟﻘﻴﻡ
ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ insertﺜﻡ ﻨﻨﻘﺭsummary -1
ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺨﺘﺎﺭ ﻋﻤﻠﻴﻰ ﺍﻟﺘﻠﺨﻴﺹ ﺍﻟﻤﺴﺘﻬﺩﻓﻰ ﻤﻥ ﺍﻟﻘﺎﺌﻤـﺔ ﺍﻟﻤﻨـﺴﺩﻟﺔ ﻭﺘﻅﻬـﺭ ﺍﻟﻌﻤﻠﻴـﺎﺕ -2
ﺍﻟﺤﺴﺎﺒﻴﺔ ﻓﻰ ﻫﺫﻩ ﺍﻟﻘﺎﺌﻤﺔ ﻓﻘﻁ ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ ﺤﻘل ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺒﻴﺎﻨﺎﺕ ﺭﻗﻤﻴﺔ ﻓﻰ ﺍﻟﻘﺎﺌﻤـﺔ ﺍﻟﻤﻨـﺴﺩﻟﺔ
ﺍﻟﺜﺎﻨﻴﺔ
ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﺘﻠﺨﻴﺼﻬﺎ -3
ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻟﺜﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺍﻟﻔﺭﺯ ﻭﺍﻟﺘﺠﻤﻴﻊ ﻋﻠﻰ ﺍﺴﺎﺴﻪ -4
ﻨﻨﻘﺭ ok -5
ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﻋﺩﺩ ﺍﻟﻌﻤﻼﺀ ﻓﻰ ﻜل ﺩﻭﻟﺔ ﻨﻜﻭﻥ ﺤﻘل ﻴﻌﺘﻤﺩ ﻋﻠﻰ ﺍﻟﻌﻤﻴل ﻭﺘﻘﺴﻴﻡ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﺩﻭﻟﺔ
4
ﻴﻤﻜﻥ ﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺘﺼﺎﻋﺩﻯ ﺍﻭ ﺘﻨﺎﺯﻟﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻗﻴﻡ ﺍﻟﻤﻠﺨﺼﺎﺕ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜـﺎل ﻓـﻰ
ﺘﻘﺭﻴﺭ ﺍﻻﻭﺍﻤﺭ ﺍﺫﺍ ﺘﻡ ﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻴﺎﺕ ﻓﺭﻋﻴﺔ ﻟﻤﺒﺎﻟﻎ ﺍﻻﻭﺍﻤﺭ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﻤﻨﻁﻘﺔ ﻴﻤﻜﻥ ﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ:
• ﻤﻥ ﺍﺩﻨﻰ ﻗﻴﻤﺔ ﺍﻟﻰ ﻗﻴﻤﺔ ﺍﻻﻤﺭ)ﺘﺭﺘﻴﺏ ﺘﺼﺎﻋﺩﻯ(
• ﻤﻥ ﺍﻋﻠﻰ ﻗﻴﻤﺔ ﺍﻟﻰ ﺍﺩﻨﻰ ﻗﻴﻤﺔ)ﺘﺭﺘﻴﺏ ﺘﻨﺎﺯﻟﻰ(
ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ reportﺜﻡ ﻨﻨﻘﺭ Top N/Sort Group -1
Expert.ﻭﻴﺠﺏ ﺍﻥ ﻴﻜﻭﻥ ﻟﺩﻴﻨﺎ ﺤﻘل ﺘﻠﺨﻴﺹ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻟﻜﻰ ﻴﺼﺒﺢ ﺨﺒﻴﺭ top nﻤﺘﺎﺤـﺎ ﻴﻅﻬـﺭ
ﻤﺭﺒﻊ ﺤﻭﺍﺭ top n expertﻤﺤﺘﻭﻴﺎ ﻋﻠﻰ ﻤﻠﺼﻕ ﻟﻜل ﻭﺍﺤﺩﺓ ﻤﻥ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﻤﺨﺘﺼﺭﺓ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ
ﻨﻨﻘﺭ ﺍﻟﻤﻠﺼﻕ ﺍﻟﺨﺎﺹ ﺒﺎﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﻓﺭﺯﻫﺎ -2
ﻨﺨﺘﺎﺭ allﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻋﻠﻰ ﺍﻟﻴﺴﺎﺭ -3
ﻨﺨﺘﺎﺭ ﺍﻟﻤﻠﺨﺹ ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺒﻨﺎﺀ ﺍﺨﺘﻴﺎﺭﻨﺎ ﻋﻠﻴﻪ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻋﻠﻰ ﺍﻟﻴﻤﻴﻥ -4
ﻨﺤﺩﺩ ﺍﺘﺠﺎﻩ ﺍﻟﻔﺭﺯ ﺒﺎﻟﻨﻘﺭ ﻋﻠﻰ ascendingﺍﻭ descending -5
ﻻﺨﺘﻴﺎﺭ ﻓﺭﺯ ﻤﺠﻤﻭﻋﺔ ﺜﺎﻨﻴﺔ ﻨﻜﺭﺭ ﺍﻟﺨﻁﻭﺍﺕ 2ﺍﻟﻰ 5 -6
ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﺴﻭﻑ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﻗﻴﻡ ﺍﻟﻤﻠﺨﺼﺎﺕ ﺍﻟﻤﺤﺩﺩﺓ
ﻋﻥ ﻁﺭﻴﻕ ﺍﺨﻔﺎﺀ ﻗﺴﻡ ﺍﻟﺘﻔﺼﻴﻼﺕ ﻓﻰ ﺘﻘﺭﻴﺭ ﻤﻠﺨﺹ ﻨﺘﺠﻨﺏ ﺍﻏﺭﺍﻕ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﺒﺎﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻗﺩ ﻻ ﻴﺤﺘﺎﺠﻭﻥ
ﺍﻟﻴﻬﺎ ﻤﺒﺎﺸﺭﺓ ﻭﻋﻨﺩ ﺍﺨﻔﺎﺀ ﻗﺴﻡ ﺍﻟﺘﻔﺼﻴﻼﺕ ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺍﻭﻻ ﺒﺘﺼﻔﺢ ﺸﺠﺭﺓ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻟﺘﺤﺩﻴـﺩ ﻤﻜـﺎﻥ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺭﻏﻭﺏ ﻗﻴﻬﺎ ﺜﻡ ﺒﺎﻟﺘﻨﻘﻴﺏ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻴﻤﻜﻨﻪ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺒﻴﺎﻨﺎﺕ ﻤﻌﻴﻨﺔ ﻟﺘﺴﻬﻴل ﻋﻤﻠﻴﺔ ﺍﻟﺘﺼﻔﺢ ﺒﻬﺫﻩ
ﺍﻟﻁﺭﻴﻘﺔ ﻻ ﻨﺤﺘﺎﺝ ﺍﻻ ﺍﻟﻰ ﺘﻭﺯﻴﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﻤﺠﻤﻭﻋﺎﺕ ﺜﻡ ﺍﺩﺭﺍﺝ ﺤﻘﻭل ﺍﻟﻤﻠﺨﺼﺎﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ
-1ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻗﺴﻡ detailsﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺜﻡ ﻨﺨﺘﺎﺭ format section
-2ﻨﺨﺘﺎﺭ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭ )Hide(Drill-Down OK
-3ﻨﻨﻘﺭ ok
ﻗﺩ ﻨﺤﺘﺎﺝ ﺍﺤﻴﺎﻨﺎ ﺍﻟﻰ ﺍﻅﻬﺎﺭ ﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﻘﻤﺔ ﺍﻭ ﻤﺠﻤﻭﻋﺔ ﺍﻟﻘﺎﻉ ﻓﻘﻁ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜـﺎل ﺍﺴـﺭﻉ
ﺨﻁﻭﻁ ﺍﻻﻨﺘﺎﺝ ﻤﺒﻴﻌﺎ ﺍﻟﻤﻨﺎﻁﻕ ﺍﻻﻗل ﻤﺒﻴﻌﺎﺕ ﻭﻏﻴﺭ ﺫﻟﻙ ﻭﺒﺎﻟﻨﻅﺭ ﺍﻟﻰ ﺍﻥ ﻫﺫﺍ ﺍﻟﻨـﻭﻉ ﻤـﻥ ﺍﻻﺨﻴـﺎﺭ ﺸـﺎﺌﻊ
ﺍﻻﺴﺘﺨﺩﺍﻡ ﻟﺫﺍ ﻴﻭﺠﺩ ﻓﻰ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺍﺩﺍﺓ ﻟﺘﻨﻔﻴﺫ ﺫﻟﻙ ﺒﺴﻬﻭﻟﺔ ﻭﺴﺭﻋﺔ ﻫﺫﻩ ﺍﻻﺩﺍﺓ ﻫﻰ N/Sort Group
Expert
5
ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ reportﺜﻡ ﻨﻨﻘﺭ Top N/Sort Group -1
Expertﻭﻴﺠﺏ ﺍﻥ ﻴﺤﺘﻭﻯ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﻗﻴﻤﺔ ﻤﻠﺨﺹ ﺨﺘﻰ ﻴﻤﻜﻥ ﺘﻨﻔﻴﺫ ﻫﺫﺍ ﺍﻻﺨﺘﻴﺎﺭ
ﻨﻨﻘﺭ ﻋﻠﻰ Top Nﺍﻭ Bottom Nﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ -2
ﻨﺨﺘﺎﺭ ﺍﻟﻤﻠﺨﺹ ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺒﻨﺎﺀ ﺍﺨﺘﻴﺎﺭﻨﺎ ﻋﻠﻴﻪ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻋﻠﻰ ﺍﻟﻴﻤﻴﻥ -3
ﻓﻰ ﻤﺭﺒﻊ Where N isﻨﺩﺨل ﻋﺩﺩ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﻋﺭﻀﻬﺎ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل -4
* ﻟﺘﻜﻭﻴﻥ ﺘﻘﺭﻴﺭ ﻋﻥ ﺍﺴﺭﻉ ﺜﻼﺙ ﺨﻁﻭﻁ ﺍﻨﺘﺎﺝ ﻤﺒﻴﻌﺎ ﻨﺨﺘﺎﺭ Top Nﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ﺍﻟﺨﺒﻴﺭ ﻭﻨﺠﻌل ﻋﺩﺩ
Nﺘﺴﺎﻭﻯ ﺜﻼﺜﺔ
* ﻟﺘﻜﻭﻴﻥ ﺘﻘﺭﻴﺭ ﻋﻥ ﺍﻟﺨﻤﺱ ﻤﻨﺎﻁﻕ ﺍﻻﻗل ﻤﺒﻴﻌﺎ ﻨﺨﺘﺎﺭ Bottom Nﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ﺍﻟﺨﺒﻴـﺭ ﻭﻨﺠﻌـل N
ﺘﺴﺎﻭﻯ ﺨﻤﺴﺔ
-5ﺍﺫﺍ ﻜﻨﺎ ﻨﺭﻴﺩ ﺘﻜﻭﻴﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺠﻤﻴﻊ ﺍﻟﺴﺠﻼﺕ ﺍﻟﻤﺘﺒﻘﻴـﺔ ﻨﺨﺘـﺎﺭ Include Others With The
Nameﻭﻨﺩﺨل ﺍﺴﻡ ﻤﻨﺎﺴﺏ
-6ﻨﻨﻘﺭ ok
ﻋﻨﺩ ﻗﻴﺎﻡ ﺍﻟﺭﻨﺎﻤﺞ ﺒﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﺴﻭﻑ ﻴﺸﺘﻤل ﻓﻘﻁ ﻋﻠﻰ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﺘﻡ ﺘﺤﺩﻴﺩﻫﺎ
ﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻋﻥ ﻁﺭﻴﻕ ﻓﺭﺯ ﺍﻟﺴﺠﻼﺕ ) (Sortingﻴﻤﻜﻨﻨﺎ ﺘﻨﻅﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺘﺭﺘﻴﺏ ﻤﻌﻴﻥ ﻟﻠﻤﺴﺎﻋﺩﺓ ﻓﻰ ﺍﻟﻌﺜﻭﺭ ﻋﻠﻰ ﻭﺘﻘﻴﻴﻡ
ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ،ﻟﻔﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻨﻁﺒﻕ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ:
-1ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻟﻠﻭﺼﻭل ﺍﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ
-2ﻨﺸﻴﺭ ﺍﻟﻰ reportﻭﻨﻨﻘﺭ ﻋﻠﻰ sort recordsﻴﻔﺘﺢ ﻤﺭﺒﻊ ﺤﻭﺍﺭ record sort order
-3ﻓﻰ ﻗﺎﺌﻤﺔ available fieldsﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺍﻟﻔﺭﺯ ﻋﻠﻰ ﺍﺴﺎﺴﻪ
-4ﻨﻨﻘﺭ ﺯﺭ addﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﺍﻀﺎﻓﺔ ﺍﻟﺤﻘل ﺍﻟﻰ ﻗﺎﺌﻤﺔ sort fields
-5ﻓﻰ ﻤﻨﻁﻘﺔ sort directionﺒﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﻨﻘﺭ ascendingﺍﻭdescending
-6ﺍﺫﺍ ﻜﺎﻥ ﺍﻟﻔﺭﺯ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻜﺜﺭ ﻤﻥ ﺤﻘل ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺜﺎﻨﻰ ﺜﻡ ﻨﻨﻘﺭ addﻻﻀﺎﻓﺘﻪ ﺍﻟﻰ ﺤﻘﻭل ﺍﻟﻔﺭﺯ
-7ﻨﻨﻘﺭ ok
6
ﺘﻜﻭﻴﻥ ﺍﻻﺠﻤﺎﻟﻴﺎﺕ
ﻟﻤﺴﺎﻋﺩﺓ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﻓﻰ ﺘﺤﻠﻴل ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﻴﻤﻜﻥ ﺘﻜﻭﻴﻥ ﻭﺍﻀﺎﻓﺔ ﺤﻘـﻭل ﺍﺠﻤﺎﻟﻴـﺎﺕ) (Totalingﺍﻟـﻰ
ﺍﻟﺘﻘﺭﻴﺭ .ﺘﻜﻭﻴﻥ ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﺒﺴﻴﻁﺎ ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎل ﻋﻨﺩ ﺍﻋﺩﺍﺩ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ ﻓﻰ ﻨﻬﺎﻴﺔ ﻗﺎﺌﻤﺔ ﻤﻥ
ﺍﻟﺴﺠﻼﺕ ﺍﻭ ﻤﻌﻘﺩﺍ ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎﺩﺙ ﻋﻨﺩ ﻋﺭﺽ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﺒﻨﺎﺀ ﻋﻠﻰ ﺸﺭﻭﻁ ﻤﺤﺩﺩﺓ ﺒﻭﺍﺴﻁﺔ ﺼﻴﻐﺔ
ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ insertﺜﻡ ﻨﻨﻘﺭ subtotal -1
ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﻨﻘﺭ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻭﻨﺨﺘﺎﺭ ﺤﻘل ﺤﺴﺎﺏ ﺍﻻﺠﻤﺎﻟﻰ -2
ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﻓﺭﺯ ﻭﺘﺠﻤﻴﻊ ﺍﻟﺴﺠﻼﺕ ﻋﻠﻰ ﺍﺴﺎﺴﻪ -3
ﺍﺫﺍ ﻅﻬﺭﺕ ﻗﺎﺌﻤﺔ ﻤﻨﺴﺩﻟﺔ ﺜﺎﻟﺜﺔ ﻨﺤﺩﺩ ﺍﺘﺠﺎﻩ ﺍﻟﻔﺭﺯ -4
ﻨﻨﻘﺭ ok -5
7
ﻴﻤﻜﻥ ﺤﺴﺎﺏ ﺍﻟﻨﺴﺏ ﺍﻟﻤﺌﻭﻴﺔ ﻻﺤﺩﻯ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻤﺠﻤﻭﻋﺔ ﺍﻭﺴﻊ .ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻴﻤﻜﻥ ﻋـﺭﺽ
ﺍﻟﻤﺒﻴﻌﺎﺕ ﻓﻰ ﻜل ﻤﺩﻴﻨﺔ ﻓﻰ ﺼﻭﺭﺓ ﻨﺴﺒﺔ ﻤﺌﻭﻴﺔ ﻤﻥ ﺍﺠﻤﺎﻟﻰ ﺍﻟﻤﺒﻴﻌﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺩﻭﻟﺔ ﻭﻴﻤﻜﻥ ﻋـﺭﺽ ﻨـﺴﺒﺔ
ﻤﺴﺎﻫﻤﺔ ﻜل ﺩﻭﻟﺔ ﻓﻰ ﺍﺠﻤﺎﻟﻰ ﺍﻟﻤﺒﻴﻌﺎﺕ ﺍﻟﻌﺎﻡ
ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻟﻠﻭﺼﻭل ﺍﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ -1
ﻨﺸﻴﺭ ﺍﻟﻰ insertﺜﻡ ﻨﻨﻘﺭ summary -2
ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ insert summaryﻨﺨﺘﺎﺭ sumﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻻﻭﻟﻰ ﻭﻴﺠﺏ ﻤﻼﺤﻅـﺔ ﺍﻥ -3
ﺩﺍﻟﺔ sumﻻ ﺘﻅﻬﺭ ﺍﻻ ﺍﺫﺍ ﻜﺎﻥ ﺍﻟﺤﻘل ﺍﻟﻤﻌﺭﻭﺽ ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻴﺤﺘﻭﻯ ﻋﻠـﻰ ﻗﻴﻤـﺔ
ﺭﻗﻤﻴﺔ
ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﻰ ﻨﺭﻴﺩ ﺤﺴﺎﺏ ﺍﻻﺠﻤﺎﻟﻰ ﻟﻪ -4
ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺜﺎﻟﺜﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺴﺘﺨﺩﻤﻪ ﻓﻰ ﻓﺭﺯ ﻭﺘﺠﻤﻴﻊ ﺍﻟﺴﺠﻼﺕ -5
ﻨﺨﺘﺎﺭ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭ show as percentage of -6
ﻓﻰ ﻗﺎﺌﻤﺔ show as a percentage ofﻨﺨﺘﺎﺭ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﺍﺘﺨﺎﺫﻫﺎ ﺍﺴﺎﺴﺎ ﻟﺤـﺴﺎﺏ -7
ﺍﻟﻨﺴﺒﺔ
ﻨﻨﻘﺭ ok -8
ﻭﺘﺘﻡ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﻀﻭﺍﺒﻁ ﺍﻟﻤﺨﺘﺎﺭﺓ ﻓﻰ Running Total
Expertﻤﻥ ﻨﺎﺤﻴﺔ ﺍﺨﺭﻯ ﻴﺅﺜﺭ ﻤﻜﺎﻥ ﻭﻀﻊ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻔﻌﻠﻴﺔ ﺍﻟﺘﻰ ﺘﻅﻬـﺭ ﻋﻠـﻰ
ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻋﻨﺩ ﻭﻀﻊ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻴﻘﻭﻡ ﺒﺘﻘﻴﻴﻡ ﻜل ﺴﺠل ﻭﻴﺴﺘﻤﺭ ﺒﺩﻭﻥ ﺍﻋﺎﺩﺓ ﺍﻟﺤﺴﺎﺏ ﻤﻥ
ﺍﻟﺒﺩﺍﻴﺔ،ﻓﻰ ﻗﺴﻡ ﻤﻘﺩﻤﺔ ﺍﻟﺘﻘﺭﻴﺭ ) (Report Headerﻓﺎﻥ ﻗﻴﻤﺔ ﺍﻟﺴﺠل ﺍﻻﻭل ﻓﻘﻁ ﺴﻭﻑ ﺘﻅﻬﺭ .ﻭﻀﻊ ﻨﻔﺱ
ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﺫﻴل ﺍﻟﺘﻘﺭﻴﺭ ﻴﻌﻴﺩ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺼﺤﻴﺤﺔ.ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻴﺘﻡ ﺤﺴﺎﺒﻪ ﺒﺎﻟﻁﺭﻴﻘﺔ ﺍﻟـﺼﺤﻴﺤﺔ
ﻓﻰ ﻜﻼ ﻤﻥ ﺍﻟﺤﺎﻟﺘﻴﻥ ﻭﻟﻜﻥ ﻴﺘﻡ ﻋﺭﻀﻪ ﺤﺎﻻ ﻓﻰ ﺍﻟﺤﺎﻟﻪ ﺍﻻﻭﻟﻰ.
8
ﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻰ ﻴﺒﻴﻥ ﺍﻗﺴﺎﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻟﺴﺠﻼﺕ ﺍﻟﺘﻰ ﺴﻭﻑ ﻴﺴﺘﺨﺩﻤﻬﺎ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ:
ﺍﻟﺘﺎﺜﻴﺭ ﻋﻠﻰ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻗﺴﻡ ﺍﻟﺘﻘﺭﻴﺭ
9
10
ﻓﻰ ﻤﻨﻁﻘﺔ Available Tables and fieldsﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺘﺠﻤﻴﻌﻪ -3
ﻨﻨﻘﺭ ﺯﺭ ﺍﻟﺴﻬﻡ ﺍﻻﻭل ﻻﻀﺎﻓﺔ ﺍﻟﺤﻘل ﺍﻟﻰ ﻤﺭﺒﻊ Field To Summarize -4
ﻓﻰ ﻗﺴﻡ Evaluateﻨﻨﻘﺭ For each record -5
ﻓﻰ ﻗﺴﻡ Resetﻨﻨﻘﺭ On chage of groupﻭﻨﻘﺒل ﺍﻻﺴﻡ ﺍﻻﻓﺘﺭﺍﻀﻰ ﻟﻠﻤﺠﻤﻭﻋﺔ -6
ﻨﻨﻘﺭ okﻟﺤﻔﻅ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ .ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻅﻬﻭﺭ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﻤﺭﺒﻊ -7
filed explorerﺘﺤﺕ running total fields
ﻴﻤﻜﻥ ﺴﺤﺏ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﺍﻟﻰ ﻗﺴﻡ Detailsﺒﺎﻟﺘﻘﺭﻴﺭ ﺍﻭ ﻨـﺴﺤﺏ ﺍﻟﺤﻘـل ﺍﻟـﻰ ﻗـﺴﻡ -8
Group Footerﺍﺫﺍ ﻜﻨﺎ ﻨﺭﻴﺩ ﻤﺸﺎﻫﺩﺓ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ ﻟﻜل ﻤﺠﻤﻭﻋﺔ ﻭﻴﺘﻡ ﺘﻤﻴﻴﺯ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤـﺭﻙ
ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺒﻭﻀﻊ ﺭﻤﺯ #ﻗﺒﻠﻪ
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺼﻴﻎ
ﻗﺩ ﻨﺤﺘﺎﺝ ﺍﻟﻰ ﻭﻀﻊ ﻤﻌﻠﻭﻤﺎﺕ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻻﺘﻭﺠﺩ ﺒﺤﻘﻭل ﺠﺩﺍﻭل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟـﺔ ﻨـﺴﺘﺨﺩﻡ
ﺍﻟﺼﻴﻎ ) (Formulasﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻫﻨﺎﻙ ﺍﺭﺒﻌﺔ ﻤﺠﻤﻭﻋﺎﺕ ﻤﺨﺘﻠﻔﺔ ﻤﻥ ﺍﻟـﺼﻴﻎ:ﺼـﻴﻎ
ﺍﻟﺘﻘﺭﻴـــﺭ) ،(reportﺼـــﻴﻎ ﺍﻟﺘﻨـــﺴﻴﻕ ﺍﻟﻤـــﺸﺭﻭﻁ)،(Conditional Formulaﺼـــﻴﻎ
ﺍﻻﺨﺘﻴﺎﺭ)،(Selectionﻭﺼﻴﻎ ﺍﻟﺒﺤﺙ). (Search Formulasﻭﺍﻟﻐﺎﻟﺒﻴﺔ ﻤﻥ ﺍﻟﺼﻴﻎ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻫﻰ
ﺼﻴﻎ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺼﻴﻎ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ
ﺼﻴﻎ ﺍﻟﺘﻘﺭﻴﺭ
ﺼﻴﻎ ﺍﻟﺘﻘﺭﻴﺭ ) (Report Formulaﻫﻰ ﺍﻟﺼﻴﻎ ﺍﻟﺘﻰ ﻨﻘﻭﻡ ﺒﺘﻜﻭﻴﻨﻬﺎ ﻟﻠﻌﻤل ﺒﺎﺴﺘﻘﻼﻟﻴﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺴﺒﻴل
ﺍﻟﻤﺜﺎل ،ﺍﻟﺼﻴﻐﺔ ﺍﻟﺘﻰ ﺘﻘﻭﻡ ﺒﺤﺴﺎﺏ ﻋﺩﺩ ﺍﻻﻴﺎﻡ ﺒﻴﻥ ﺘﺎﺭﻴﺦ ﺍﻻﻤﺭ ﻭﺘﺎﺭﻴﺦ ﺍﻟﺸﺤﻥ ﻫﻰ ﺼﻴﻐﺔ ﺘﻘﺭﻴﺭ
11
ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ
ﺘﺤﺩﺩ ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﺴﺠﻼﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﺘﻅﻬﺭ ﺒﺎﻟﺘﻘﺭﻴﺭ ﻭﻤﻥ ﺍﻟﻤﻌﺘﺎﺩ ﻋﺩﻡ ﺍﺩﺨﺎل ﻫﺫﻩ ﺍﻟﺼﻴﻎ ﻤﺒﺎﺸﺭﺓ
ﻟﻜﻥ ﺒﺩﻻ ﻤﻥ ﺫﻟﻙ ﻨﺤﺩﺩ ﺍﻻﺨﺘﻴﺎﺭ ﻴﺎﺴﺘﺨﺩﺍﻡ select expertﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻗﻴﺎﻡ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺘﻭﻟﻴـﺩ
ﺼﻴﻎ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺴﺠﻼﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﻴﻤﻜﻥ ﺘﻜﻭﻴﻥ ﻫﺫﻩ ﺍﻟﺼﻴﻎ ﻴﺩﻭﻴﺎ .ﻭﻟﻜﻥ ﻴﺠﺏ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ Crystal
ﻭﺍﺫﺍ ﻜﻨﺎ ﻋﻠﻰ ﻤﻌﺭﻓﺔ ﺒﻜﻭﺩ Basicﻓﺎﻨﻨﺎ ﺴﻭﻑ ﻨﺤﺘﺎﺝ ﺍﻟﻰ ﻤﻌﺭﻓﺔ ﻜﻤﻴﺔ ﺼﻐﻴﺭﺓ ﻤﻥ ﻜﻭﺩ ﻜﺭﻴـﺴﺘﺎل ﻟﺘﻌـﺩﺩﻴل
ﻤﻌﻅﻡ ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻭ ﺍﻟﺒﺤﺙ
ﺼﻴﻎ ﺍﻟﺒﺤﺙ
ﺘﺴﺎﻋﺩﻨﺎ ﺼﻴﻎ ﺍﻟﺒﺤﺙ ﻓﻰ ﺘﺤﺩﻴﺩ ﻤﻭﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻤﺜل ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﻨﺤﺩﺩ ﺼﻴﻐﺔ ﺍﻟﺒﺤﺙ ﺒﺎﺴـﺘﺨﺩﺍﻡ
seach expert
ﺍﺩﺭﺍﺝ ﺍﻟﺼﻴﻎ
ﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻎ ﻫﻨﺎﻙ ﺨﻴﺎﺭ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ crystalﺍﻭ ﻜﻭﺩ basicﻭﻴﻤﻜـﻥ ﺘﻘﺭﻴﺒـﺎ ﻜﺘﺎﺒـﺔ ﺍﻯ ﺼـﻴﻐﺔ
ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﺤﺩ ﻨﻭﻋﻰ ﺍﻟﻜﻭﺩ ﺍﺫﺍ ﻜﺎﻨﺕ ﺍﻟﺼﻴﻐﺔ ﻓﻰ ﺍﻻﺼل ﻗﺩ ﺘﻤﺕ ﻜﺘﺎﺒﺘﻬﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻨﻭﻉ ﺍﻻﺨﺭ .ﻭﻴﻤﻜـﻥ ﺍﻥ
ﻴﺤﺘﻭﻯ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺼﻴﻎ ﺘﻡ ﻜﺘﺎﺒﺘﻬﺎ ﺒﻜﻭﺩ ﻜﺭﻴﺴﺘﺎل ﻭﺼﻴﻎ ﺍﺨﺭﻯ ﻤﻜﺘﻭﺒﺔ ﺒﻜﻭﺩ ﺒﻴﺴﻙ
12
ﺍﻟﻤﺤﺘﻭﻴﺎﺕ ﺍﻟﻨﺎﻓﺫﺓ
ﻭﻴﻭﺠﺩ ﻗﺎﺌﻤﺔ ﻤﺭﻜﺒﺔ ) (comboboxﻟﻼﺨﺘﻴﺎﺭ ﻤﺎ ﺒﻴﻥ ﻜﻭﺩ ﻜﺭﻴﺴﺘﺎل ﺍﻭ ﻜﻭﺩ ﺒﻴﺴﻙ ﻭﻋﻠﻴـﻪ ﻴﺘﻐﻴـﺭ ﺍﻟـﺩﻭﺍل
ﻭﺍﻟﻌﻭﺍﻤل.ﻭﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺼﻴﻐﺔ ﺒﻬﺫﻩ ﺍﻻﺩﺍﺓﻴﻤﻜﻨﻨﺎ ﺍﻀﺎﻓﺔ ﺍﻯ ﻤﻜﻭﻥ)ﻜﺎﻟﺩﻭﺍل ﻭﺍﻟﻌﻭﺍﻤل ﻭﺍﻟﺤﻘﻭل( ﺒﺎﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ
ﻋﻠﻴﻪ.
ﺘﻌﺒﻴﺭﺍﺕ SQL
ﺘﻤﺎﺜل ﺘﻌﺒﻴﺭﺍﺕ SQLﺍﻟﺼﻴﻎ ﻭﻟﻜﻨﻬﺎ ﺘﻜﺘﺏ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ﺍﻻﺴﺘﻌﻼﻡ ﺍﻟﻤﻬﻴﻜﻠﺔ (STRUCTURE QUERY
) . LANGUAGEﻭﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺘﻌﺒﻴﺭ SQLﻻﺴﺘﻌﻼﻡ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﻋﻥ ﻓﺌﺔ ﻤﻌﻴﻨﺔ ﻤـﻥ ﺍﻟﺒﻴﺎﻨـﺎﺕ.
ﻭﻴﻤﻜﻨﻨﺎ ﺍﻴﻀﺎ ﺘﻨﻔﻴﺫ ﻋﻤﻠﻴﺎﺕ ﺍﻟﻔﺭﺯ ،ﺍﻟﺘﺠﻤﻴﻊ،ﻭﺍﻻﺨﺘﻴﺎﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﺘﻌﺒﻴﺭ SQL
ﻭﺘﺘﻤﻴﺯ ﺘﻌﺒﻴﺭﺍﺕ SQLﺒﻘﺩﺭﺘﻬﺎ ﻋﻠﻰ ﺘﺤﺴﻴﻥ ﺍﺩﺍﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻻﻥ ﺍﻟﻤﻬﻤﺔ ﺍﻟﺘﻰ ﺘﻘﻭﻡ ﺒﻬﺎ ﺘﻨﻔﺫ ﻋﺎﺩﺓ ﻋﻠﻰ ﺨـﺎﺩﻡ
ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ,ﻋﻠﻰ ﺍﻟﻌﻜﺱ ﻤﻥ ﺍﻟﺼﻴﻎ ﺍﻟﻤﻌﺘﺎﺩﺓ ﺍﻟﺘﻰ ﻴﺠﺭﻯ ﺘﻨﻔﻴﺫﻫﺎ ﻓﻰ ﺍﻟﻐﺎﻟﺏ ﻋﻠﻰ ﺍﻟﻜﻤﺒﻴﻭﺘﺭ ﺍﻟﻤﺤﻠﻰ .ﻭﻻ
ﻴﺠﺏ ﺍﺴﺘﺨﺩﺍﻡ ﻋﺒﺎﺭﺍﺕ SQLﺒﻜﺜﺎﻓﺔ ﻻﻥ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻟﻐﺔ ﺍﻟﺼﻴﻎ ﺍﻟﺨﺎﺼﺔ ﺒﻬﺎ ﻭﺍﻟﺘﻰ ﻫـﻰ
ﻓﻰ ﻨﻔﺱ ﺍﻟﻭﻗﺕ ﺍﻜﺜﺭ ﻗﻭﺓ ﻤﻥ SQLﺍﻟﻤﻌﺘﺎﺩﺓﻭﻟﻜﻥ ﻓﻰ ﺒﻌﺽ ﺍﻟﺤﺎﻻﺕ ﻴﻜﻭﻥ ﻤﻥ ﺍﻟﻀﺭﻭﺭﻯ ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘـﻭل
ﺘﻌﺒﻴﺭﺍﺕ SQLﻟﺯﻴﺎﺩﺓ ﺴﺭﻋﺔ ﻋﻤﻠﻴﺎﺕ ﻤﻌﺎﻟﺠﺔ ﺍﻟﺘﻘﺎﺭﻴﺭ
ﺘﻜﻭﻴﻥ ﺤﻘل ﺘﻌﺒﻴﺭ SQL
-1ﻓﻰ ﻤﺭﺒﻊ field explorerﻨﻨﻘﺭ ﺒﺯﺭ ﺍﺍﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠـﻰ SQL Expression Fieldsﺜـﻡ
Newﻭﻴﺠﺏ ﻤﻼﺤﻅﺔ ﺍﻥ ﺒﻨﺩ sql expression fieldﻻ ﻴﻅﻬﺭ ﺍﻻ ﻓﻰ ﺤﺎﻟﺔ ﺍﺴﺘﺨﺩﺩﺍﻡ ﻤﺼﺩﺭ sql
ﻓﻰ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ
-2ﻨﺩﺨل ﺍﺴﻡ ﻓﻰ ﻤﺭﺒﻊ nameﺜﻡ ﻨﻨﻘﺭ okﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻅﻬﻭﺭ ﻤﺭﺒﻊ ﺤﻭﺍﺭ
-3ﻨﻁﺒﻊ ﺍﻟﺘﻌﺒﻴﺭ ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺍﺩﺨﺎﻟﻪ ﻓﻰ SQL Expression Editor
-4ﻨﻨﻘﺭ ok
13
ﻴﺸﺭﺡ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﺍﻟﻭﺴـﺎﺌل ﺍﻟﺘـﻰ ﻴﻤﻜـﻥ ﺍﺴـﺘﺨﺩﺍﻤﻬﺎ ﻟﺠـﺫﺏ ﺍﻻﻨﺘﺒـﺎﻩ ﺍﻟـﻰ ﺍﻟﺒﻴﺎﻨـﺎﺕ ﺘﻐﻴﻴـﺭ ﻋـﺭﺽ
ﺍﻟﺘﻭﺍﺭﻴﺦ،ﺍﻻﺭﻗﺎﻡ،ﻭﺍﻟﻘﻴﻡ ﺍﻻﺨﺭﻯ ،ﺍﺨﻔﺎﺀ ﺍﻻﻗﺴﺎﻡ ﺍﻟﻐﻴﺭ ﻤﺭﻏﻭﺏ ﻓﻴﻬﺎ ﻭﺍﻟﻘﻴﺎﻡ ﺒﻤﻬﺎ ﺘﻨﺴﻴﻕ ﺍﺨﺭﻯ ﺘﻀﻔﻰ ﻋﻠـﻰ
ﺍﻟﺘﻘﺭﻴﺭ ﻤﻅﻬﺭ ﺘﻘﺎﺭﻴﺭ ﺍﻟﻤﺤﺘﺭﻓﻴﻥ
ﺘﻨﺴﻴﻕ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻴﺸﻴﺭ ﺍﻟﺘﻨﺴﻴﻕ ) (Formattingﺍﻟﻰ ﺍﻟﺘﻐﻴﻴﺭﺍﺕ ﻓﻰ ﺨﺭﻴﻁﺔ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺒﺎﻟﻤﺜل ﺸﻜل ﻅﻬﻭﺭ ﺍﻟﻨﺼﻭﺹ,
ﺍﻟﻜﺎﺌﻨﺎﺕ ,ﺍﻭ ﺍﻗﺴﺎﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺎﻟﻜﺎﻤل .ﻭﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺘﻨﺴﻴﻕ ﻟﻠﻘﻴﺎﻡ ﺒﺎﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻻﻋﻤﺎل ﺍﻟﺘﻰ ﻤﻥ ﺒﻴﻨﻬﺎ:
• ﺘﻭﺠﻴﻪ ﺍﻻﻨﺘﺒﺎﻩ ﺍﻟﻰ ﺒﻴﺎﻨﺎﺕ ﻤﻌﻴﻨﺔ
• ﺍﻀﻔﺎﺀ ﻤﻅﻬﺭ ﺍﺤﺘﺭﺍﻓﻰ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ
• ﺘﻐﻴﻴﺭ ﻋﺭﺽ ﺍﻟﺘﻭﺍﺭﻴﺦ ،ﺍﻻﺭﻗﺎﻡ ،ﺍﻟﻘﻴﻡ ﺍﻟﻤﻨﻁﻘﻴﺔ ،ﻗﻴﻡ ﺍﻟﻌﻤﻠﺔ ،ﻭﺴﻼﺴل ﺍﻟﻨﺼﻭﺹ
ﻭﻟﻠﻘﻴﺎﻡ ﺒﺘﻨﺴﻴﻕ ﻜﺎﺌﻥ ﺍﻭ ﻗﺴﻡ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻴﻪ ﺜﻡ ﻨﺨﺘﺎﺭ Formatﻭﻟﺘﻨﺴﻴﻕ ﻜﺎﺌﻥ
ﺭﺴﻡ ﺒﻴﺎﻨﻰ ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻴﻪ ﺜﻡ ﻨﺨﺘﺎﺭ chart expertﻭﻴﻤﻜﻥ ﺍﻴﻀﺎ ﺍﺴﺘﺨﺩﺍﻡ ﻨﺎﻓﺫﺓ ﺍﻟﺨﺼﺎﺌﺹ
ﻓﻰ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ ﻟﺘﻨﺴﻴﻕ ﺍﻟﻜﺎﺌﻨﺎﺕ ﻭﺍﻻﻗﺴﺎﻡ
ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ
ﻴﻁﺒﻕ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻤﻥ ﺍﻟﺘﻨﺴﻴﻕ ﻓﻰ ﻅل ﺘﻭﻓﺭ ﺸﺭﻭﻁ ﻤﻌﻴﻨﺔ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻓﻰ ﺍﺤﺩ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻴﻤﻜﻥ ﺍﻥ ﻨﺤﺘﺎﺝ
ﺍﻟﻰ:
• ﻁﺒﺎﻋﺔ ﺍﺭﺼﺩﺓ ﺍﻟﻌﻤﻼﺀ ﺒﺎﻟﻠﻭﻥ ﺍﻻﺤﻤﺭ ﻋﻨﺩ ﺘﺠﺎﻭﺯ ﺘﺎﺭﻴﺦ ﺍﺴﺘﺤﻘﺎﻕ ﺍﻟﺴﺩﺍﺩ
• ﻁﺒﺎﻋﺔ ﺍﻟﺘﺎﺭﻴﺦ ﺒﺼﻴﻐﺔ ﺘﻨﺎﺴﺏ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻟﻠﺘﻘﺭﻴﺭ
• ﺍﻅﻬﺎﺭ ﻟﻭﻥ ﺍﻟﺨﻠﻔﻴﺔ ﻜل ﺜﻼﺜﺔ ﺴﻁﻭﺭ
ﻴﻤﻜﻨﻨﺎ ﺘﺤﺩﻴﺩ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﺸﺭﻁﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺼﻴﻎ ﻭﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺼﻴﻐﺔ ﺘﻨﺴﻴﻕ ﺸﺭﻁﻴﺔ ﻴﻜﻭﻥ ﻟﻬﺎ ﺍﻻﺴﺒﻘﻴﺔ ﻋﻠﻰ
ﺠﻤﻴﻊ ﻗﻴﻡ ﺍﻟﻀﺒﻁ ﺍﻟﺘﻰ ﺘﻡ ﺍﻋﺩﺍﺩﻫﺎ ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ format editor
14
15
16
-6ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺍﺴﺘﺨﺩﺍﻤﻪ ﺤﻘل ﺍﺭﺘﺒﺎﻁ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻤﻥ ﻗﺎﺌﻤﺔ Avilable fields
-7ﻨﺴﺘﺨﺩﻡ ﻗﺴﻡ Field Linkﺍﻟﺫﻯ ﻴﻅﻬﺭ ﻓﻘﻁ ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ ﺤﻘل ﺍﺭﺘﺒﺎﻁ ﻟﻀﺒﻁ ﺍﻻﺭﺘﺒـﺎﻁ ﻟﻜـل ﺤﻘـل
ﺍﺭﺘﺒﺎﻁ:
• ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺭﺒﻁﻪ ﻤﻊ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻤﻥ subreport parameter field to use
• ﻨﺨﺘﺎﺭ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭ select data based on fieldﻭﻨﺨﺘﺎﺭ ﺤﻘل ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﻤﺠﺎﻭﺭﺓ
ﻟﺘﺭﺘﻴﺏ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﺒﻨﺎﺀ ﻋﻠﻰ ﺤﻘل ﻤﺤﺩﺩ .ﻭﺍﺫﺍ ﻟﻡ ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺍﻯ ﺸﺊ ﻫﻨﺎ ،ﻓﺎﻥ ﺍﻟﺘﻘﺭﻴـﺭ
ﺍﻟﻔﺭﻋﻰ ﺴﻭﻑ ﻴﺴﺘﺨﺩﻡ ﺘﻨﻅﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ
-8ﻨﻨﻘﺭ ok
ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﺴﻭﻑ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺘﻨﺴﻴﻕ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻤﻊ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ
17
ﺨﺎﺼﻴﺔ Hide
ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺒﺎﺨﻔﺎﺀ ﻗﺴﻡ ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻓﻰ ﺘﻘﺭﻴﺭ ﻤﻠﺨﺹ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ
ﺍﻟﺨﺎﺼﻴﺔ ﻟﻌﺭﺽ ﺍﻟﻤﻠﺨﺼﺎﺕ ﻓﻘﻁ ﻭﻟﻴﺱ ﺍﻟﺘﻔﺼﻴﻼﺕ ﺨﻠﻑ ﻫﺫﻩ ﺍﻟﺘﻔﺼﻴﻼﺕ .ﻭﻋﻨﺩ ﺘﻁﺒﻴﻕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻋﻠـﻰ
ﻗﺴﻡ ﻓﺎﻥ ﺍﻟﺘﻔﺼﻴﻼﺕ ﺒﻬﺫﺍ ﺍﻟﻘﺴﻡ ﺘﺼﺒﺢ ﻤﺭﺌﻴﺔ ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺅﺸﺭ Drill-Downﻟﻠﺘﻨﻘﻴﺏ ﻋﻥ ﻤﺤﺘﻭﻴـﺎﺕ
ﺍﻟﻘﺴﻡ ﻭﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻤﻁﻠﻘﺔ ﻭﻻ ﻴﻤﻜﻥ ﺭﺒﻁ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﺒﺘﺤﻘﻕ ﺍﺤﺩ ﺍﻟﺸﺭﻭﻁ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺼﻴﻎ
ﻻﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ:
-1ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ
-2ﻤﻥ ﺍﻟﻘﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ ،ﻨﺨﺘﺎﺭ Format Section
-3ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺨﺘﺎﺭ )Hide(Drill-Down-Ok
ﺨﺎﺼﻴﺔ Suppress
ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻴﻀﺎ ﺒﺎﺨﻔﺎﺀ ﻗﺴﻡ ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﻭﻋﻠﻰ ﺨﻼﻑ ﺨﺎﺼﻴﺔ Hideﻻ ﺘﻤﻜﻨﻨﺎ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ
ﻤﻥ ﺍﻟﺘﻨﻘﻴﺏ ﻋﻥ ﺍﻟﺘﻔﺼﻴﻼﺕ.ﻭﻴﻤﻜﻥ ﺘﻁﺒﻴﻕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺒﺼﻔﺔ ﻤﻁﻠﻘﺔ ﺍﻭ ﻋﻨﺩ ﺘﻭﻓﺭ ﺍﺤﺩ ﺍﻟﺸﺭﻭﻁ ﺒﺎﺴـﺘﺨﺩﺍﻡ
ﺍﻟﺼﻴﻎ .ﻻﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ:
18
ﻨﺤﺘﺎﺝ ﻭﻗﺕ ﺘﺸﻐﻴل ﺍﻟﺘﻁﺒﻴﻕ ﻭﻋﺭﺽ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻰ ﺍﻻﺴﺘﺠﺎﺒﺔ ﻟﻤﺘﻁﻠﺒﺎﺕ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﺍﻟﺘﻰ ﻗﺩ ﺘـﺸﻤل ﺍﺨﺘﻴـﺎﺭ
ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻤﻁﻠﻭﺏ ﺘﺸﻐﻴﻠﻪ ،ﺘﻐﻴﻴﺭ ﺸﻜل ﺍﺩﺍﺓ ﻋﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ،ﺘﻐﻴﻴﺭ ﺸﻜل ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻌﺭﻭﻀﺔ .ﻟﺘﻤﻜﻴﻥ
ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍﻟﻤﻬﺎﻡ ﻴﻭﻓﺭ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺍﻤﻜﺎﻨﻴﺔ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ) (Objectﻟﻠﻘﻴﺎﻡ ﺒﻤﺨﺘﻠﻑ
ﻤﻬﺎﻡ ﺘﻜﻭﻴﻥ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻜﻤﺎ ﻴﻭﻓﺭ ﻟﻐﺔ ﺼﻴﺎﻏﺔ ﻗﻭﻴﺔ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻟﺘﻐﻴﻴﺭ ﻁﺭﻴﻘﺔ ﻋﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻟﺘﺤﻜﻡ ﻓﻰ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ .ﻴﻨﺎﻗﺵ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻔﺎﻋل ﻤﻊ ﺘﺤﺩﺍﺙ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﻭﺍﻟﻭﺴﺎﺌل ﺍﻟﻤﺘـﻭﻓﺭﺓ
ﻟﻠﻘﻴﺎﻡ ﺒﺫﻟﻙ.
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ
ﻴﺤﺘﻭﻯ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻋﻠﻰ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻟﻔﺌﺎﺕ ) (Classesﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺘﻜـﻭﻴﻥ ﺍﻟﻜﺎﺌﻨـﺎﺕ ﺍﻟﺨﺘﻠﻔـﺔ
ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺘﻨﻔﻴﺫ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺘﻰ ﻴﻘﻭﻡ ﺒﻬﺎ.ﻜﻤﺎ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻟﻐﺔ ﺼﻴﺎﻏﺔ ﻗﻭﻴﺔ ﺘﺴﺘﺨﺩﻡ ﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟـﺼﻴﻎ
ﺍﻟﻤﺨﺘﻠﻔﺔ .ﻭﻋﻥ ﻁﺭﻴﻕ ﺨﺼﺎﺌﺹ ﺍﻟﻜﺎﺌﻨﺎﺕ) (Propertiesﻭﻁﺭﻗﻬـﺎ) (Methodsﺍﻟﺘـﻰ ﺘﺤﺘـﻭﻯ ﻋﻠﻴﻬـﺎ
ﻭﺍﻻﺤﺩﺍﺙ) (Eventsﺍﻟﺘﻰ ﺘﺴﺘﺠﻴﺏ ﻟﻬﺎ ﻴﻤﻜﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﺘﻐﻴﻴﺭ ﺨﺼﺎﺌﺼﻬﺎ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل.
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ
ﻫﻨﺎﻙ ﺍﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻏﻴﺭ ﺍﻥ ﺍﻫﻡ ﻫﺫﻩ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺒـﺭﻤﺞ
ﻫﻰ ﻜﺎﺌﻥ ReportDocumentﻭﻜﺎﺌﻥ CrystalReportViewer
ﻜﺎﺌﻥ ReportDocument
ﻴﻘﺩﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﺩﻭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﺍﻻﺴﺎﺴﻴﺔ ﻓﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ .ﻭﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﻜﺜﻴﺭﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻟﻭﺴـﺎﺌل ﺍﻟﺘـﻰ
ﺘﺴﻤﺢ ﻟﻨﺎ ﺒﺎﻟﺘﺤﻜﻡ ﻓﻰ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺸﻜل ﻋﺭﻀﻪ ﻤﻥ ﺨﻼل ﻀﺒﻁ ﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻻﺴﺘﺠﺎﺒﺔ ﻟﻼﺤﺩﺍﺙ .ﻭﻴﻤﻜﻥ
ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻓﻰ ﺍﺠﺭﺍﺀ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﺜﻡ ﺘﻤﺭﻴﺭ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻰ ﻜـﺎﺌﻥ
ﺍﺨﺭ ﻫﻭ ﻜﺎﺌﻥ CrystalReportViewerﻟﻌﺭﻀﻪ ﺍﻤﺎﻡ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ.ﻟﻔﺘﺢ ﻤﻠﻑ ﺘﻘﺭﻴﺭ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻴﻘﺔ
Loadﺍﻭ ﺘﺨﺼﻴﺹ ﺘﻘﺭﻴﺭ ﻨﻭﻋﻰ ﻟﻬﺫﺍ ﺍﻟﻜﺎﺌﻥ .ﻭﻟﻜﻰ ﻨﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻴﺠﺏ ﺍﻥ ﺘﻜﻭﻴﻥ ﻤﺭﺠﻊ ﺍﻟﻰ ﻓـﻀﺎﺀ
ﺍﻻﺴﻤﺎﺀ CrystalDecisions.CrystalReports.Engineﻭﻴﺘﻡ ﺍﻀﺎﻓﺔ ﻫﺫﺍ ﺍﻟﻤﺭﺠﻊ ﺘﻠﻘﺎﺌﻴﺎ ﻋﻨﺩ ﺍﻀـﺎﻓﺔ
ﺘﻘﺭﻴﺭ ﺍﻟﻰ ﺍﻟﺘﻁﺒﻴﻕ ﻗﻡ ﺒﺎﺴﺘﻴﺭﺍﺩﻩ
ﺨﺼﺎﺌﺼﻪ
ﻴﺤﺘﻭﻯ ReportDocumentﻋﻠﻰ ﺍﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻰ ﺘﺴﻤﺢ ﻟﻨﺎ ﺒﺎﻟﺘﺤﻜﻡ ﻓﻰ ﺸﻜل ﻭﺴﻠﻭﻙ ﺍﻟﺘﻘﺎﺭﻴﺭ.
ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻫﻡ ﺍﻫﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ:
19
ﻜﺎﺌﻥ Databaseﺘﺘﻴﺢ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻤﻌﻠﻭﻤﺎﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﺤﺘﻭﻯ •
ﻜﺎﺌﻥ Databaseﻋﻠﻰ ﻤﺠﻤﻭﻋﺔ Tablesﺘﺤﺘﻭﻯ ﻫﺫﻩ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻋﻠـﻰ ﻜـل ﻜﺎﺌﻨـﺎﺕ ﺍﻟﺠـﺩﺍﻭل
ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ .ﻭﻴﻭﻓﺭ ﻟﻨﺎ ﻜﺎﺌﻥ Tableﺍﻤﻜﺎﻨﻴﺔ ﻀﺒﻁ ﻤﻌﻠﻭﻤﺎﺕ ﺍﻻﺘﺼﺎل ﻭﺍﻟﺤﺼﻭل ﻋﻠﻴﻬﺎ
ﻤﻥ ﺨﻼل ﻜﺎﺌﻥ ConnectionInfoﻜﻤﺎ ﻴﻭﻓﺭ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﻜل ﺍﻟﺤﻘﻭل ﺍﻟﻤﺘﺎﺤﺔ ﻓﻰ ﺍﻟﺠﺩﻭل ﻤﻥ
ﺨﻼل ﻤﺠﻤﻭﻋﺔ DatabaseFieldDefinitions
ﻜﺎﺌﻥ DataDefinitionﻴﺘﻴﺢ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺍﻟﺤﻘﻭل ﺤﻘﻭل ﺍﻟﻤﻌﺎﻤﻼﺕ ﺤﻘﻭل ﺍﻟﻔﺭﺯ ﺤﻘﻭل •
ﺍﺴﻤﺎﺀ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺤﻘﻭل ﺍﻟﻤﻠﺨﺼﺎﺕ ﺤﻘﻭل ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ ﻭﺤﻘﻭل ﺘﻌﺒﻴﺭﺍﺕ SQLﻭﻴﻤﻜـﻥ
ﻋﻥ ﻁﺭﻴﻕ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ ﺍﻟﺘﻘﺭﻴﺭ
ﻜﺎﺌﻥ ExportOptionﻴﻭﻓﺭ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺒﺎﺴﺘﺨﺭﺍﺝ ﻭﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺘـﺼﺩﻴﺭ •
ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻟﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺠﻬﺔ ﺍﻟﺘﺼﺩﻴﺭ ﻭﻨﻭﻉ ﺍﻟﺘﺼﺩﻴﺭ
ﻜﺎﺌﻥ PrintOptionﻴﺤﺘﻭﻯ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻋﻠﻰ ﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻟﻭﺴﺎﺌل ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ •
ﻁﺒﺎﻋﺔ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻰ ﻴﻤﻜﻥ ﻀﺒﻁﻬﺎ.ﺨﺎﺼﻴﺔ ﺍﺴﻡ ﺍﻟﻁﺎﺒﻌﺔ ﺤﺠﻡ ﺍﻟﻭﺭﻕ ﻭﻫﻭﺍﻤﺵ ﺍﻟﻭﺭﻕ
ﻜﺎﺌﻥ ReportDefinitionﻴﺴﻤﺢ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺒﺎﺴﺘﺨﺭﺍﺝ ﻜل ﺍﻟﻤﻨﺎﻁﻕ ،ﻜﺎﺌﻨـﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ،ﻭﺍﻻﻗـﺴﺎﻡ •
ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ.ﻴﺘﻴﺢ ﻟﻨﺎ ﺫﻟﻙ ﺍﻤﻜﺎﻨﻴﺔ ﺍﺴﺘﺨﺭﺍﺝ ﻭﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺼﻴﺎﻏﺔ ﻟﺘﻠﻙ ﺍﻟﺒﻨﻭﺩ
ﻜﺎﺌﻥ ReportOptionﻴﺴﻤﺢ ﻟﻨﺎ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺒﺎﻟﺤﺼﻭل ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺒﺨﻴـﺎﺭﺍﺕ ﺨﺎﺼـﺔ •
ﺒﺎﻟﺘﻘﺭﻴﺭ
ﻜﺎﺌﻥ CrystalReportViewer
ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻋﻠﻰ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻰ ﺘﻤﻜﻨﻨﺎ ﻤﻥ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺸﻜل ﻭﺴﻠﻭﻙ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻫﻡ ﺍﻟﻜﺎﺌﻨـﺎﺕ ﺍﻟﺘـﻰ ﻴﺤﺘﻭﻯ
ﻋﻠﻴﻬﺎ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺘﺸﻤل ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻻﺘﻴﺔ: ﻴﺤﺘﻭﻯ
ﻜﺎﺌﻥ TableLogOnInfosﻴﻭﻓﺭ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻤﺠﻤﻭﻋﺔ TableLogOnInfoﻭﻫـﺫﺍ ﺍﻟﻜـﺎﺌﻥ •
ﺒﺩﺩﻭﺭﻩ ﻴﻭﻓﺭ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﻼﺯﻤﺔ ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﻭﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺍﻻﺘﺼﺎل ﻤﻊ ﺍﻟﺠﺩﻭل ،ﻤﺜـل ﺍﺴـﻡ
ﺍﻟﺨﺎﺩﻡ،ﺍﺴﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ،ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ،ﻭﻜﻠﻤﺔ ﺍﻟﻤﺭﻭﺭ
ﻜﺎﺌﻥ ParameterFieldsﻴﻭﻓﺭ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻤﺠﻤﻭﻋﺔ ParameterFieldﻭﺘﺴﻤﺢ ﻟﻨـﺎ ﻫـﺫﻩ •
ﺍﻟﻤﺠﻤﻭﻋﺔ ﺒﺎﻟﺤﺼﻭل ﻋﻠﻰ ﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﻌﺎﻤﻼﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻀﺒﻁﻬﺎ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻴﻤﻜﻥ ﻀﺒﻁ
ﺨﺼﺎﺌﺹ ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺨﻴﺎﺭﺍﺕ ﻭﻗﻴﻡ ﺤﻘﻭل ﺍﻟﻤﻤﺭﺍﺕ ﻭﻀﺒﻁﻬﺎ ﻤﺜل ﺍﻟﻘﻴﻡ ﺍﻟﺤﺎﻟﻴﺔ ،ﺍﻟﻘﻴﻡ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ
ﻭﻨﺹ ﺤﺙ ﺍﻟﻤﺴﺘﺨﺩﻡ
ﺨﺎﺼﻴﺔ ReportSourceﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻀﺒﻁ ﻤﺼﺩﺭ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﻤﻜـﻥ ﺍﻥ ﻴﻜـﻭﻥ ﻫـﺫﺍ •
ﺍﻟﻤﺼﺩﺭ ﻜﺎﺌﻥ ReportDocumentﺍﻭ ﺴﻠﺴﻠﺔ ﻨﺼﻴﺔ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻤﻭﻗﻊ ﺍﻟﻤﻠﻑ ﺍﻟﺨﺎﺹ ﺒﺎﻟﺘﻘﺭﻴﺭ
ﺍﻭ ﻜﺎﺌﻥ ﺘﻘﺭﻴﺭ
20
ﺤﺩﺙ CrysatlReportViewer.Navigateﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺩﺙ ﻋﻨﺩﻤﺎ ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﻟﺘﺠﻭل ﻓﻰ •
ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻌﺭﺽ ﺭﻗﻡ ﺍﻟﺼﻔﺤﺔ ﻋﻠﻰ ﺍﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ
ﻟﻐﺔ ﺍﻟﺼﻴﺎﻏﺔ
ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ Crstal Reportﺍﻭ ﻟﻐﺔ Basicﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻎ ) (Formulasﻭﻴﻤﻜﻥ ﻜﺘﺎﺒﺔ ﺍﻟﺼﻴﻎ
ﺍﻟﻤﻜﺘﻭﺒﺔ ﺒﻠﻐﺔ ﻜﺭﻴﺴﺘﺎل ﺒﺎﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ﺒﻴﺴﻙ ﺍﻭ ﺍﻟﻌﻜﺱ .ﻭﺘﻤﺎﺜل ﻟﻐﺔ Basicﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ crystal
reportﻟﻐﺔ Visual Basicﺍﻻ ﺍﻨﻬﺎ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﺒﻌﺽ ﺍﻻﻀﺎﻓﺎﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﺘﻘﺎﺭﻴﺭ ﻭﺒﻤﺎ ﺍﻨﻨﺎ ﺍﻜﺜﺭ ﺍﻟﻔﺔ
ﻤﻊ ﻟﻐﺔ Visual Basicﻟﺫﺍ ﺴﻴﺘﻡ ﺍﻴﻀﺎﺡ ﻟﻐﺔ ﺒﻴﺴﻙ ﻓﻘﻁ
ﻴﻤﻜﻥ ﺍﻥ ﺘﻌﻤل ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﺘﻰ ﺘﺴﺘﺨﺩﻡ ﻜﻭﺩ ﺒﻴﺴﻙ ﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻎ ﻋﻠﻰ ﺍﻯ ﺠﻬﺎﺯ ﻜﻤﺒﻴﻭﺘﺭ ﻴﻌﻤل ﻋﻠﻴﻪ
ﻜﺭﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻭﻴﺘﻤﻴﺯ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ﺒﻴﺴﻙ ﺒﺩﻻ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ﻜﺭﻴﺴﺘﺎل ﻓﻰ ﺍﻋﺩﺍﺩ ﺼﻴﻎ ﻜﺭﻴﺴﺘﺎل
ﺭﻴﺒﻭﺭﺕ ﺒﺎﻨﻪ ﻻ ﻴﺘﻁﻠﺏ ﺘﻭﺯﻴﻊ ﻤﻠﻔﺎﺕ ﺍﻀﺎﻓﻴﺔ ﻤﻊ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺍﻟﺘﻰ ﺘﺴﺘﺨﺩﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﻫﺫﻩ ﺒﻌﺽ ﺍﻟﻤﻴﺯﺍﺕ ﻟﻠﻐﺔ
ﺒﻴﺴﻙ:
• ﺘﺴﺘﺨﺩﻡ ﺘﻘﺭﻴﺒﺎ ﻨﻔﺱ ﺍﻟﺩﻭﺍل ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ Visual Basicﻴﺸﻤل ﺫﻟﻙ ﺩﻭﺍل ﺍﻟﻨﺼﻭﺹ ﻤﺜل ﺩﺍﻟﺔ
،Lenﺩﺍﻟﻪ Midﻭﻏﻴﺭﻫﺎ .ﻜﻤﺎ ﺘﺸﻤل ﺍﻟﺩﻭﺍل ﺍﻟﺤﺴﺎﺒﻴﺔ ﻭﺍﻟﻤﺎﻟﻴﺔ ﻭﺩﻭﺍل ﺍﻟﺘﺎﺭﻴﺦ
• ﺘﺩﻋﻡ ﻤﻌﻅﻡ ﺍﻟﻌﻭﺍﻤل ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻤﺜل ﻋﺎﻤل ﺭﺒﻁ ﺍﻟﺴﻼﺴل ﺍﻟﻨﺼﻴﺔ )&( ﻭﺼﻴﻎ
ﺍﻟﺘﺎﺭﻴﺦ
• ﺘﺴﺘﺨﺩﻡ ﻤﻌﻅﻡ ﺍﻟﻌﺒﺎﺭﺍﺕ ﻭﻫﻴﺎﻜل ﺍﻟﺘﺤﻜﻡ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻤﺜل Do ،Do Until،Select
For\Next،While
• ﺘﺴﺘﺨﺩﻡ ﻨﻔﺱ ﻜﻭﺩ ﺍﻟﻤﻼﺤﻅﺎﺕ ﻭﻭﺼل ﺍﻟﺴﻁﻭﺭ ﻟﻠﻜﻭﺩ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺯﻙ
21
ﻨﺘﻴﺠﺔ ﺍﻟﺼﻴﻐﺔ
ﻨﺘﻴﺠﺔ ﺍﻟﺼﻴﻐﺔ ﻫﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻰ ﻴﺘﻡ ﻁﺒﺎﻋﺘﻬﺎ ﻋﻨﺩ ﻭﻀﻊ ﺍﻟﺼﻴﻐﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺘﺴﻤﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻌﺎﺌﺩﺓ ﻤﻥ
ﺍﻟﺼﻴﻐﺔ .ﻭﻴﺠﺏ ﺍﻥ ﺘﻌﻴﺩ ﺍﻯ ﺼﻴﻐﺔ ﻓﻰ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻗﻴﻤﺔ ﻤﻌﻴﻨﺔ ﻴﻘﻭﻡ ﻜﻭﺩ ﺒﻴﺯﻙ ﺒﺘﻨﻔﻴﺫ ﺫﻟﻙ ﻋﻥ ﻁﺭﻴﻕ
ﻀﺒﻁ ﻗﻴﻤﺔ ﻤﺘﻐﻴﺭ ﺨﺎﺹ ﻴﺴﻤﻰ Formulaﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ:
Formula= 10
ﻭﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻌﺎﺌﺩﺓ ﻤﻥ ﺍﻟﺼﻴﻐﺔ ﻤﻥ ﺍﺤﺩ ﺍﻨﻭﺍﻉ ﺴﺒﻌﺔ:
Number,Currency,String,Boolean,Date,Time,Date and Timeﻭﻴﺠﺏ ﺘﺨﺼﻴﺹ ﻗﻴﻤﺔ
ﻟﻠﻤﺘﻐﻴﺭ Formulaﻟﻜﻰ ﺘﻜﻭﻥ ﺍﻟﺼﻴﻐﺔ ﺼﺤﻴﺤﺔ ﻤﻥ ﺍﻤﺜﻠﺔ ﺍﻟﺼﻴﻎ ﻭﺍﻟﻘﻴﻤﺔ ﺍﻟﻌﺎﺌﺩﺓ ﻤﻨﻬﺎ ﻤﺎ ﻴﻠﻰ/
Global x As String,y As Number,z As DateTime
"X="solo.net
Y=10.5
Z=#aug 6,1982#
Formula=10
ﻭﻴﻤﻜﻥ ﻀﺒﻁ ﻤﺘﻐﻴﺭ Formulaﻋﺩﺓ ﻤﺭﺍﺕ ﺩﺍﺨل ﺍﻟﺼﻴﻐﺔ ﺍﻟﻭﺍﺤﺩﺓ ﻭﻟﻜﻥ ﻻ ﻴﺠﺏ ﺘﻐﻴﻴﺭ ﻨﻭﻉ ﺒﻴﺎﻨﺎﺕ ﺍﻟﻘﻴﻤﺔ
ﺍﻟﺘﻰ ﺘﻡ ﺘﺨﺼﻴﺼﻬﺎ ﻟﻪ ﻓﻰ ﺍﻟﻤﺭﺓ ﺍﻻﻭﻟﻰ ﻭﻜﻭﺩ ﺒﻴﺴﻙ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﻰ ﺍﻋﺩﺍﺩ ﺍﻟﺼﻴﻎ ﻏﻴﺭ ﺤﺴﺎﺱ ﻟﺤﺎﻟﺔ ﺍﻻﺤﺭﻑ
ﻴﻌﻨﻰ ﺍﻟﺤﺭﻭﻑ ﺍﻟﺼﻐﻴﺭﺓ ﺘﺴﺎﻭﻯ ﺍﻟﻜﺒﻴﺭﺓ
ﺍﻟﺤﻘﻭل
ﻫﻨﺎﻙ ﺍﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﺤﻘﻭل ) (Fieldsﺍﻟﺘﻰ ﻨﺴﺘﺨﺩﻤﻬﺎ ﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻓﻰ ﺍﻟﺼﻴﻎ ﺍﻟﺘﻰ ﻨﻘﻭﻡ
ﺒﺒﻨﺎﺀﻫﺎ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﻗﺎﺍﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ،ﺤﻘﻭل ﺍﻟﻤﻤﺭﺍﺕ،ﺤﻘﻭل ﺍﻻﺠﻤﺎﻟﻴﺎﺕ
ﺍﻟﻤﺘﺤﺭﻜﺔ،ﻭﺤﻘﻭل ﺘﻌﺒﻴﺭﺍﺕ ، SQLﺤﻘﻭل ﺍﻟﻤﻠﺨﺼﺎﺕ،ﻭﺤﻘﻭل ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﺍﻟﺼﻴﻎ
ﺍﻻﺨﺭﻯ .ﻭﺘﻅﻬﺭ ﺍﺴﻤﺎﺀ ﺍﻟﺤﻘﻭل ﺩﺍﺨل ﺍﻟﺼﻴﻐﺔ ﻤﺤﺎﻁﺔ ﺒﺎﻗﻭﺍﺱ }{ .ﻭﺘﻅﻬﺭ ﺤﻘﻭل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﺅﻫﻠﻰ ﺒﺎﺴﻡ
ﺍﻟﺠﺩﻭل ﺍﻟﺫﻯ ﺘﺘﺒﻌﻪ .ﻭﺘﻭﻀﻊ ﺍﻟﻌﻼﻤﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻓﻰ ﻤﻘﺩﻤﺔ ﺍﻟﺤﻘﻭل:
ﻋﻼﻤﺔ ? ﻓﻰ ﺤﻘﻭل ﺍﻟﻤﻤﺭﺍﺕ ،ﻋﻼﻤﺔ @ ﻓﻰ ﺤﻘﻭل ﺍﻟﺼﻴﻎ ﺍﻻﺨﺭﻯ ،ﻋﻼﻤﺔ #ﻓﻰ ﺤﻘﻭل ﺍﻻﺠﻤﺎﻟﻰ
ﺍﻟﻤﺘﺤﺭﻙ،ﻋﻼﻤﺔ %ﻓﻰ ﺤﻘﻭل ﺘﻌﺒﻴﺭﺍﺕ . SQLﻭﺘﻅﻬﺭ ﺤﻘﻭل ﺍﻟﻤﻠﺨﺼﺎﺕ ﻭﺤﻘﻭل ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻤﺜل ﻜﻭﺩ
ﺍﺴﺘﺩﻋﺎﺀ ﺍﻟﺩﻭﺍل ﻜﻤﺎ ﻴﺘﻀﺢ ﻤﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ:
)}S um ({Orders.Order Amount},{Orders.Ship Via
)}GroupName({Orders.Ship Via
ﺍﻟﺼﻴﻐﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺘﻘﻭﻡ ﺒﺤﺴﺎﺏ ﻋﺩﺩ ﺍﻻﻴﺎﻡ ﻤﻨﺫ ﺘﺎﺭﻴﺦ ﺍﻋﺩﺍﺩ ﻁﻠﺏ ﺍﻟﺸﺭﺍﺀ ﺍﻟﻰ ﺘﺎﺭﻴﺦ ﺸﺤﻥ ﺍﻟﺒﻀﺎﻋﺔ
Rem A formula that uses database field
}Formula={Order.Ship Date} – {Order.Order Date
ﻭﺘﻘﻭﻡ ﺍﻟﺼﻴﻐﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺒﺤﺴﺎﺏ ﺴﻌﺭ ﺍﻟﺒﻴﻊ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻨﻪ %80ﻤﻥ ﺍﻟﺴﻌﺭ ﺍﻻﺼﻠﻰ
Formula={Order Detail.Unit Price} * 0.80
ﺍﻟﻌﺒﺎﺭﺍﺕ
ﻴﺘﻜﻭﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻯ ﺘﺘﻜﻭﻥ ﻤﻨﻪ ﺍﻟﺼﻴﻎ ﻤﻥ ﺴﻠﺴﻠﺔ ﻤﻥ ﺍﻟﻌﺒﺎﺭﺍﺕ ) (statementsﻭﻴﺠﺏ ﻗﺼل ﻜل ﻋﺒﺎﺭﺓ ﻋﻥ
ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺴﺎﺒﻘﺔ ﺒﺴﻁﺭ ﺠﺩﻴﺩ ﺍﻭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺭﻤﺯ ﺍﻟﻭﻗﻑ ﺍﻻﺴﺘﺩﺭﺍﻜﻰ ) (:ﻭﻤﻥ ﺍﻟﻤﻌﺘﺎﺩ ﻭﻀﻊ ﻜل ﻋﺒﺎﺭﺓ ﻓﻰ ﺴﻁﺭ
ﻤﻨﻔﺼل ﻭﻴﻤﻜﻥ ﺍﺴﺘﻤﺭﺍﺭ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﻰ ﺍﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺸﺭﻁﺔ ﺍﺴﻔل ﺍﻟﺴﻁﺭ ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻤﺜل ﻤﻥ ﺍﻟﻌﺒﺎﺭﺍﺕ:
22
Dim x As Number
X=10+10+10
_X=10+
10+10
Y="solo" :x=30 :formula=true
ﺍﻟﻤﺘﻐﻴﺭﺍﺕ
ﻋﻨﺩﻤﺎ ﺘﺴﺘﺨﺩﻡ ﺍﻟﺼﻴﻐﺔ ﺍﺤﺩ ﺍﻟﻤﺘﻐﻴﺭﺕ) (Variableﻓﺎﻨﻬﺎ ﺘﺒﺤﺙ ﻋﻥ ﻗﻴﻤﺔ ﺍﻟﻤﺘﻐﻴﺭ ﻭﺘﺴﺘﺨﺩﻤﻬﺎ .ﻭﺘﺤﺘﻔﻅ
ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺒﺎﻟﻘﻴﻡ ﺍﻟﺘﻰ ﻴﺘﻡ ﺘﺨﺼﻴﺼﻬﺎ ﻟﻬﺎ ﺍﻟﻰ ﺍﻥ ﻴﺘﻡ ﺘﺨﺼﻴﺹ ﻗﻴﻡ ﺠﺩﻴﺩﺓ ﻟﻬﺎ .ﻭﻴﺠﺏ ﺍﻻﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ
ﻗﺒل ﺍﺴﺘﻌﻤﺎﻟﻬﺎ ﻟﻜﻰ ﻴﺼﻴﺢ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻋﻠﻰ ﻋﻠﻡ ﺒﻬﺎ
ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻘﻭﻡ ﺒﺎﺴﺘﺨﺭﺍﺝ ﺭﻗﻡ ﺍﻟﻤﻨﻁﻘﺔ ﻤﻥ ﺭﻗﻡ ﺍﻟﻔﺎﻜﺱ ﺍﻟﺨﺎﺹ ﺒﺎﺤﺩ ﺍﻟﻌﻤﻼﺀ:
Dim areaCode As String
)areaCode=Left({Customer.Fax},3
ﻨﻁﺎﻕ ﺍﻟﻘﻴﻡ
ﻴﻤﻜﻥ ﺘﻜﻭﻴﻥ ﻨﻁﺎﻕ ) (Rangeﻤﻥ ﻜل ﺍﻨﻭﺍﻉ ﺍﻟﻘﻴﻡ ﺍﻟﺒﺴﻴﻁﺔ ﻓﻴﻤﺎ ﻋﺩﺍ ﺍﻟﻘﻴﻡ ﺍﻟﻤﻨﻁﻘﻴﺔ ﺍﻤﺜﻠﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺘﻭﻀﺢ
ﺘﻜﻭﻴﻥ ﻭﺍﺴﺘﺨﺩﺍﻡ ﻨﻁﺎﻕ ﻤﻥ ﺍﻟﻘﻴﻡ .ﺍﻟﻤﺜﺎل ﺍﻻﻭل ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻨﻁﺎﻕ ﻴﺘﻜﻭﻥ ﻤﻥ 2ﺍﻟﻰ 5ﻭﻤﺎ ﺒﻴﻨﻬﻤﺎ ﻤﻥ ﺍﺭﻗﺎﻡ
2 To 5
ﺍﻟﻨﻁﺎﻕ ﺍﻟﺘﺎﻟﻰ ﻴﺘﻜﻭﻥ ﻤﻥ 2ﺍﻟﻰ 5ﻭﻻ ﻴﺸﻤل ﺍﻟﺭﻗﻡ 2
2_To 5
ﺍﻟﻨﻁﺎﻕ ﺍﻟﺘﺎﻟﻰ ﻴﺘﻜﻭﻥ ﻤﻥ ﻜل ﺍﻻﺭﻗﺎﻡ ﺍﻟﺘﻰ ﺍﻗل ﻤﻥ ﺍﻭ ﺘﺴﺎﻭﻯ 5
Is <= 5
ﺍﻟﻨﻁﺎﻕ ﺍﻟﺘﺎﻟﻰ ﻴﺘﻜﻭﻥ ﻤﻥ ﻋﺩﺓ ﺘﻭﺍﺭﻴﺦ
#jan 5 , 1999# to # dec 12,2000# Is>=#jan 1,2000#
ﻭﻴﺴﺘﺨﺩ ﻨﻁﺎﻕ ﺍﻟﻘﻴﻡ ﻓﻰ ﺍﻟﺼﻴﻎ ﻏﺎﻟﺒﺎ ﻤﻊ ﻋﺒﺎﺭﺍﺕ ifﻭ selectﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻴﻘﻭﻡ ﺒﺤﺴﺎﺏ ﺩﺭﺠﺎﺕ ﺸﻬﺎﺩﺓ
ﺍﻟﻁﺎﻟﺏ ﺒﻨﺎﺀ ﻋﻠﻰ ﺩﺭﺠﺎﺕ ﺍﻻﻤﺘﺤﺎﻨﺎﺕ ﺍﻟﺨﺎﺼﺔ ﺒﻪ ﺤﻴﺙ ﻴﺘﻡ ﺘﺨﺼﻴﺹ " "Aﻟﻠﻨﺘﻴﺠﺔ ﺍﻟﺘﻰ ﺘﺴﺎﻭﻯ 90ﺍﻭ ﺍﻜﺒﺭ
ﻤﻨﻬﺎ ﻭﺘﺨﺼﻴﺹ " "Bﻟﻠﺩﺭﺠﺎﺕ ﻤﻥ 80ﺍﻟﻰ 90ﻤﻥ ﺩﻭﻥ ﺍﻥ ﺘﺸﻤل :90
}Select Case {Student.Test Scores
Case Is >=90
"Formula="A
Case 80To_90
"Formula="B
Case 70 To_80
"Formula="C
.
.
.
.
End Select
ﻭﻴﺨﺘﺒﺭ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻭﺠﻭﺩ ﻗﻴﻤﺔ ﻤﻌﻴﻨﺔ ﻓﻰ ﻨﻁﺎﻕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻋﺎﻤل In
Formula=5 In 2 To 10
ﺍﻟﻤﺼﻔﻭﻓﺎﺕ) (Arraysﻫﻰ ﻗﻭﺍﺌﻡ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻗﻴﻡ ﻤﻥ ﻨﻔﺱ ﺍﻟﻨﻭﻉ .ﻭﻴﻁﻠﻕ ﻋﻠﻰ ﻫﺫﻩ ﺍﻟﻘﻴﻡ ﻋﻨﺎﺼﺭ ﺍﻟﻤﺼﻔﻭﻓﺔ
ﻭﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﻗﻴﻡ ﺍﻟﻌﻨﺎﺼﺭ ﻤﻥ ﺍﻨﻭﺍﻉ ﺒﺴﻴﻁﺔ ﺍﻭ ﻤﻥ ﻨﻭﻉ ﻨﻁﺎﻕ ﺒﻴﺎﻨﺎﺕ ﻭﻨﻘﻭﻡ ﺒﺘﻜﻭﻴﻥ ﺍﻟﻤﺼﻔﻭﻓﺔ ﻋﻥ ﻁﺭﻴﻕ
23
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ Arrayﻭﺘﻜﻭﻥ ﺍﻟﻤﺼﻔﻭﻓﺎﺕ ﺍﻜﺜﺭ ﻓﺎﺌﺩﺓ ﻋﻨﺩﻤﺎ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻤﺘﻐﻴﺭﺍﺕ ﺒﺴﺒﺏ ﺘﻭﻓﺭ ﺍﻤﻜﺎﻨﻴﺔ
ﺘﻐﻴﻴﺭ ﻗﻴﻡ ﺍﻟﻌﻨﺎﺼﺭ ﻓﻰ ﺘﻠﻙ ﺍﻟﻤﺼﻔﻭﻓﺎﺕ .ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻤﺜﻠﺔ ﺘﻭﻀﺢ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺼﻔﻭﻓﺎﺕ ﻓﻰ ﺍﻟﺼﻴﻎ.
ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻭﻀﺢ ﺘﻜﻭﻴﻥ ﻤﺼﻔﻭﻓﺔ ﻤﻥ ﺜﻼﺙ ﻗﻴﻡ ﺜﺎﺒﺘﻪ
)Array(10,5,20
ﻭﻫﻨﺎ ﺍﻟﻌﻨﺼﺭ ﺍﻻﻭل ﻓﻰ ﺍﻟﻤﺼﻔﻭﻓﻪ ﻴﻜﻭﻥ ﻤﻔﻬﺭﺴﻪ 1ﻭﻟﻴﺱ 0ﻜﻤﺎ ﻫﻭ ﺍﻟﻤﻌﺘﺎﺩ ﻓﻰ vb.net
ﻜﻤﺎ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻨﻁﺎﻕ ﻗﻴﻡ ﻻﺴﺘﺨﺭﺍﺝ ﻋﻨﺎﺼﺭ ﺍﻟﻤﺼﻘﻭﻗﺔ .ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﺴﺘﺨﺩﻡ ﻻﺴﺘﺨﺭﺍﺝ ﺍﻟﻤﺼﻔﻭﻓﺔ
) (5,20ﻤﻥ ﺍﻟﻤﺼﻔﻭﻓﺔ )(10,5,20
)Array(10,5,20)(2 To 3
ﺍﻟﺘﻔﺎﻋل ﻤﻊ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ
ﻴﺘﻁﻠﺏ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﺜﻨﺎﺀ ﺍﻟﺘﺸﻐﻴل ﺍﻀﺎﻓﺔ ﻜﻭﺩ ﺍﻟﻰ ﺍﻟﺘﻁﺒﻴﻕ ﻴﺩﻋﻡ ﺍﺩﺨﺎﻻﺕ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻋﻥ ﻁﺭﻴﻕ
ﺍﺴﺘﺨﺩﺍﻡ ﻜﺎﺌﻨﺎﺕ ﻤﻭﻟﺩ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻭ ﻜﺎﺌﻥ ﻤﺸﺎﻫﺩﺓ ﺘﻘﺎﺭﻴﺭ ﺍﻟﻭﻴﻨﺩﻭﺯ ﻭﻴﻤﻜﻥ ﺘﺩﻋﻴﻡ ﻫﺫﻩ ﺍﻻﺩﺨﺎﻻﺕ ﻓﻰ ﺘﻁﺒﻴﻕ
ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻕ ﺍﻟﺘﺎﻟﻴﺔ:
• ﺘﻜﻭﻴﻥ ﺍﺠﺭﺍﺀﺍﺕ ﻤﻌﺎﻟﺠﺔ ﺍﻻﺤﺩﺍﺙ ﺍﻟﻰ ﺘﻘﻊ ﺍﺜﻨﺎﺀ ﺘﻌﺎﻤل ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻊ ﻤﻊ ﺍﺩﺍﺓ ﻤﺸﺎﻫﺩﺓ ﻨﻤﺎﺫﺝ
ﺍﻟﻭﻴﻨﺩﻭﺯ)(crystal report viewer
• ﺘﻜﻭﻴﻥ ﺍﺠﺭﺍﺀﺍﺕ ﻤﻌﺎﻟﺠﺔ ﺍﻻﺤﺩﺍﺙ ﺍﻟﺘﻰ ﺘﻘﻊ ﺍﺜﻨﺎﺀ ﻗﻴﺎﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻴﺎﻟﺘﻌﺎﻤل ﻤﻊ ﻤﻊ ﺍﺩﻭﺍﺕ ﺍﺨﺭﻯ ﻋﻠﻰ
ﻨﻤﻭﺫﺝ ﻭﻴﻨﺩﻭﺯ
24
fieldObject.Color = Color.Red
End If
CrViewer.Refresh()
ﻴﻤﻜﻥ ﺘﺩﻋﻴﻡ ﺍﺩﺨﺎﻻﺕ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻤﺭﺍﺕ ﻓﻰ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻭﺘﺴﺘﺨﺩﻡ ﺍﻟﻤﻤﺭﺍﺕ ﻻﻏﺭﺍﺽ ﻤﺘﻨﻭﻋﺔ
:ﻤﻥ ﺍﻤﺜﻠﺔ ﻫﺫﻩ ﺍﻻﻏﺭﺍﺽ
• ﺒﻨﺎﺀ ﺍﻟﻤﻤﺭ ﻋﻠﻰ ﺍﺴﺎﺱ ﺤﻘل ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﺜﻡ ﺘﻤﻜﻴﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﺤﺩﻴﺩ ﻗﻴﻡ ﻫﺫﺍ ﺍﻟﺤﻘل ﺍﻟﺘﻰ ﻴﺘﻡ
ﻋﻠﻰ ﺍﺴﺎﺴﻬﺎ ﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ
• ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﺍﻟﻤﻤﺭﺭﺍﺕ ﻟﺘﻤﻜﻴﻥ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ
• ﺘﺭﺘﻴﺏ ﺍﻟﻔﺭﺯ
ﻴﻭﻀﺢ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻜﻴﻔﻴﺔ ﻀﺒﻁ ﻗﻴﻡ ﺤﻘل ﻤﻤﺭﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل ﻭﻴﺸﺭﺡ ﻜﻴﻔﻴﺔ ﻀﺒﻁ
ﻤﻤﺭﺭﻴﻥ ﻤﺨﺘﻠﻔﻴﻥ ﺍﻟﻤﻤﺭﺭ ﺍﻻﻭل ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻗﻴﻡ ﻓﺭﺩﻴﺔ ﻤﺘﻌﺩﺩﺓ ﻭﺍﻟﻤﻤﺭ ﺍﻟﺜﺎﻥ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻨﻁﺎﻕ ﻤﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ
discreteVal = New
CrystalDecisions.Shared.ParameterDiscreteValue
discreteVal.Value = "Aruba Sport"
paramField.CurrentValues.Add(discreteVal)
paramFields.Add(paramField)
rangeVal.StartValue = 42
rangeVal.EndValue = 72
paramField.CurrentValues.Add(rangeVal)
paramFields.Add(paramField)
CrViewer.ParameterFieldInfo = paramFields
CrViewer.ReportSource = "c:\my_report.rpt"
25
ﻨﻤﻤﺭ ﺼﻴﻐﺔ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﻰ ﺍﺩﺍﻯ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ:
Dim SelectFormula As String
SelectFormula="{Customer.Last Year's Sales}>" & TextBox1.Text
CrViewer.SelectionFormula=SelectFormula
ﺍﻭ ﻨﻤﺭﺭ ﺼﻴﻐﺔ ﺍﻻﺨﺘﻴﺎﺭ ﻤﻥ ﺨﻼل ﻜﺎﺌﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻜﻤﺎ ﻴﺘﻀﺦ ﻤﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ:
Dim SelectFormula As String
SelectFormula="{Customer.Last Year's Sales}>" & TextBox1.Text
Report.DataDefinition.RecordSelectionFormula=SelectFormula
26
وServerName وﻟﻜ ﻦ ﯾﺠ ﺐ ﻋ ﺪم ادﺧ ﺎل ﻗ ﯿﻢAccess وﯾﻤﻜ ﻦ اﺳ ﺘﺨﺪام ﻧﻔ ﺲ اﻟﻄﺮﯾﻘ ﺔ ﻣ ﻊ ﻗﻮاﻋ ﺪ ﺑﯿﺎﻧ ﺎت
DatabaseName
27