Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

SOLO.NET@ARABTEAM2000.

COM Learn Crystal Reports

Solo_net2005@yahoo.com
_
ARAB TEAM 2000

PDF created with pdfFactory trial version www.pdffactory.com


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺘﻜﻭﻴﻥ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ‬
‫ﻓﻰ ﻜﺜﻴﺭ ﻤﻥ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺤﺘﺎﺝ ﺍﻟﻰ ﺘﻘﺴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻟﻜﻰ ﻨﺠﻌﻠﻬﺎ ﺍﺴﻬل ﻓﻰ ﺍﻟﻘﺭﺍﺀﺓ ﻭﺍﻟﺘﺤﻠﻴل ﻴﺒﻴﻥ‬
‫ﻟﻨﺎ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﻜﻴﻔﻴﺔ ﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﻤﺠﻤﻭﻋﺎﺕ ﺒﺎﻟﺘﻘﺭﻴﺭ‪.‬‬

‫ﻟﺘﻜﻭﻴﻥ ﻤﺠﻤﻭﻋﺎﺕ ﺒﻴﺎﻨﺎﺕ‪:‬‬

‫ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ insert‬ﺜﻡ ﻨﻨﻘﺭ ‪group‬‬ ‫‪-1‬‬
‫ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪ insert group‬ﻨﺨﺘﺎﺭ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻻﻭﻟﻰ ﺤﻘل ﺍﻟﺘﻘﺴﻴﻡ‬ ‫‪-2‬‬
‫ﻨﺨﺘﺎﺭ ﺍﺘﺠﺎﻩ ﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ‬ ‫‪-3‬‬
‫ﻋﻨﺩﻤﺎ ﻨﺭﻏﺏ ﻓﻰ ﺘﺤﺩﻴﺩ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﺒﻴﻨﺔ ﻓﻰ ﻤﻘﺩﻤﺔ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻨﺨﺘﺎﺭ ﻤﺭﺒـﻊ ‪customize group‬‬ ‫‪-4‬‬
‫‪ name field‬ﻤﻥ ﺍﻟﻨﺎﺤﻴﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﺴﻭﻑ ﻴﻘﻭﻡ ﺭﺍﺱ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺒﻌﺭﺽ ﻗﻴﻤـﺔ ﺤﻘـل ﺘﻘـﺴﻴﻡ‬
‫ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﺍﺫﺍ ﺭﻏﺒﻨﺎ ﻓﻰ ﻋﺭﺽ ﻗﻴﻤﺔ ﻤﺨﺘﻠﻔﺔ ﻨﺨﺘﺎﺭ ﺤﻘل ﺒﻴﺎﻨﺎﺕ ﺒﺩﻴل ﺍﻭ ﻨﻜﻭﻥ ﺼﻴﻐﺔ‬
‫ﻨﻨﻘﺭ ‪ok‬‬ ‫‪-5‬‬

‫‪2‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻭﻀﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻫﺭﻤﻴﺔ‬


‫ﻴﻭﻓﺭ ﻟﻨﺎ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺍﻴﻀﺎ ﺍﻤﻜﺎﻨﻴﺔ ﻭﻀﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻓﻰ ﻤﺠﻤﻭﻋﺎﺕ ﺘﺒﻴﻥ ﺍﻟﻌﻼﻗﺎﺕ ﺍﻟﻬﺭﻤﻴـﺔ‬
‫ﻭﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﻬﺭﻤﻴﺔ ﺘﻘﻭﻡ ﺒﻔﺭﺯ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﻌﻼﻗﺔ ﺒﻴﻥ ﺍﻟﺤﻘﻭل ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜـﺎل‬
‫ﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﺍﻅﻬﺎﺭ ﻫﻴﻜل ﻫﺭﻤﻰ ﻻﺤﺩ ﺍﻻﻗﺴﺎﻡ ﻴﻤﻜﻥ ﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺭﻗﻡ ﺍﻟﻤﻭﻅـﻑ‬
‫ﻭﺘﺤﺩﻴﺩ ﺍﻟﺸﻜل ﺍﻟﻬﺭﻤﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺤﻘل ﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺴﺘﻭﻯ ﺍﻟﺫﻯ ﻴﺘﺒﻌﻪ ﺍﻟﻤﻭﻅﻑ‪.‬‬

‫ﻟﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻫﺭﻤﻴﺔ‪:‬‬

‫‪ -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‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺘﻠﺨﻴﺹ ﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ‬

‫ﺍﺤﺩ ﺍﻻﻏﺭﺍﺽ ﺍﻻﺴﺎﺴﻴﺔ ﻟﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻫﻭ ﺍﺠﺭﺍﺀ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺒﻴﺔ ﻋﻠﻰ ﻜل ﻤﺠﻤﻭﻋﺔ ﻤﻥ‬
‫ﺍﻟﺴﺠﻼﺕ ﺒﺩﻻ ﻤﻥ ﺍﺠﺭﺍﺌﻬﺎ ﻋﻠﻰ ﺠﻤﻴﻊ ﺍﻟﺴﺠﻼﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻋﻨﺩﻤﺎ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺘﻠﺨﻴﺹ ﺍﻟﺒﻴﺎﻨـﺎﺕ ﻓﺎﻨـﻪ‬
‫ﻴﻘﻭﻡ ﺒﻔﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ ‪،‬ﺘﻘﺴﻴﻤﻬﺎ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﺜﻤﺘﻠﺨﻴﺹ ﺍﻟﻘﻴﻡ ﻓﻰ ﻜل ﻤﺠﻤﻭﻋﺔ ﻭﻴﺘﻡ ﺍﻟﻘﻴﺎﻡ ﺒﺫﻟﻙ ﺍﺘﻭﻤﺎﺘﻴﻜﻴـﺎ‬
‫ﻭﻴﺤﺘﻭﻯ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻋﻠﻰ ﻋﺩﺩ ﻤﻥ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺘﻠﺨﻴﺹ‪:‬‬
‫• ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﺍﺠﻤﺎﻟﻰ ﺍﻟﻘﻴﻡ ﻓﻰ ﻜل ﻤﺠﻤﻭﻋﺔ‬
‫• ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﻋﺩﺩ ﺠﻤﻴﻊ ﺍﻟﻘﻴﻡ ﺍﻭ ﺍﻟﻘﻴﻡ ﺍﻟﻤﺘﻤﻴﺯﻩ‬
‫• ﻤﻌﺭﻓﺔ ﺍﻗﺼﻰ ﻗﻴﻤﺔ ﺍﻗل ﻗﻴﻤﺔ ﻤﺘﻭﺴﻁ ﺍﻟﻘﻴﻡ‬

‫ﻟﺘﻠﺨﻴﺹ ﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ‪:‬‬

‫ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ insert‬ﺜﻡ ﻨﻨﻘﺭ‪summary‬‬ ‫‪-1‬‬
‫ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺨﺘﺎﺭ ﻋﻤﻠﻴﻰ ﺍﻟﺘﻠﺨﻴﺹ ﺍﻟﻤﺴﺘﻬﺩﻓﻰ ﻤﻥ ﺍﻟﻘﺎﺌﻤـﺔ ﺍﻟﻤﻨـﺴﺩﻟﺔ ﻭﺘﻅﻬـﺭ ﺍﻟﻌﻤﻠﻴـﺎﺕ‬ ‫‪-2‬‬
‫ﺍﻟﺤﺴﺎﺒﻴﺔ ﻓﻰ ﻫﺫﻩ ﺍﻟﻘﺎﺌﻤﺔ ﻓﻘﻁ ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ ﺤﻘل ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺒﻴﺎﻨﺎﺕ ﺭﻗﻤﻴﺔ ﻓﻰ ﺍﻟﻘﺎﺌﻤـﺔ ﺍﻟﻤﻨـﺴﺩﻟﺔ‬
‫ﺍﻟﺜﺎﻨﻴﺔ‬
‫ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﺘﻠﺨﻴﺼﻬﺎ‬ ‫‪-3‬‬
‫ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻟﺜﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺍﻟﻔﺭﺯ ﻭﺍﻟﺘﺠﻤﻴﻊ ﻋﻠﻰ ﺍﺴﺎﺴﻪ‬ ‫‪-4‬‬
‫ﻨﻨﻘﺭ ‪ok‬‬ ‫‪-5‬‬

‫ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﻋﺩﺩ ﺍﻟﻌﻤﻼﺀ ﻓﻰ ﻜل ﺩﻭﻟﺔ ﻨﻜﻭﻥ ﺤﻘل ﻴﻌﺘﻤﺩ ﻋﻠﻰ ﺍﻟﻌﻤﻴل ﻭﺘﻘﺴﻴﻡ‬
‫ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﺩﻭﻟﺔ‬

‫‪4‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﻤﻠﺨﺼﺎﺕ ﺍﻟﻘﻴﻡ‬

‫ﻴﻤﻜﻥ ﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺘﺼﺎﻋﺩﻯ ﺍﻭ ﺘﻨﺎﺯﻟﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻗﻴﻡ ﺍﻟﻤﻠﺨﺼﺎﺕ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜـﺎل ﻓـﻰ‬
‫ﺘﻘﺭﻴﺭ ﺍﻻﻭﺍﻤﺭ ﺍﺫﺍ ﺘﻡ ﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻴﺎﺕ ﻓﺭﻋﻴﺔ ﻟﻤﺒﺎﻟﻎ ﺍﻻﻭﺍﻤﺭ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﻤﻨﻁﻘﺔ ﻴﻤﻜﻥ ﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ‪:‬‬
‫• ﻤﻥ ﺍﺩﻨﻰ ﻗﻴﻤﺔ ﺍﻟﻰ ﻗﻴﻤﺔ ﺍﻻﻤﺭ)ﺘﺭﺘﻴﺏ ﺘﺼﺎﻋﺩﻯ(‬
‫• ﻤﻥ ﺍﻋﻠﻰ ﻗﻴﻤﺔ ﺍﻟﻰ ﺍﺩﻨﻰ ﻗﻴﻤﺔ)ﺘﺭﺘﻴﺏ ﺘﻨﺎﺯﻟﻰ(‬

‫ﻟﺘﺭﺘﻴﺏ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﻗﻴﻤﺔ ﺍﻟﻤﻠﺨﺹ‪:‬‬

‫ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ 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‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻻﺨﺘﻴﺎﺭ ﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﻘﻤﺔ ﺍﻭ ﺍﻟﻘﺎﻉ‪:‬‬

‫ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪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‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺘﻜﻭﻴﻥ ﺍﻻﺠﻤﺎﻟﻴﺎﺕ‬

‫ﻟﻤﺴﺎﻋﺩﺓ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﻓﻰ ﺘﺤﻠﻴل ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﻴﻤﻜﻥ ﺘﻜﻭﻴﻥ ﻭﺍﻀﺎﻓﺔ ﺤﻘـﻭل ﺍﺠﻤﺎﻟﻴـﺎﺕ)‪ (Totaling‬ﺍﻟـﻰ‬
‫ﺍﻟﺘﻘﺭﻴﺭ‪ .‬ﺘﻜﻭﻴﻥ ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﻴﻤﻜﻥ ﺍﻥ ﻴﻜﻭﻥ ﺒﺴﻴﻁﺎ ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎل ﻋﻨﺩ ﺍﻋﺩﺍﺩ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ ﻓﻰ ﻨﻬﺎﻴﺔ ﻗﺎﺌﻤﺔ ﻤﻥ‬
‫ﺍﻟﺴﺠﻼﺕ ﺍﻭ ﻤﻌﻘﺩﺍ ﻜﻤﺎ ﻫﻭ ﺍﻟﺤﺎﺩﺙ ﻋﻨﺩ ﻋﺭﺽ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﺒﻨﺎﺀ ﻋﻠﻰ ﺸﺭﻭﻁ ﻤﺤﺩﺩﺓ ﺒﻭﺍﺴﻁﺔ ﺼﻴﻐﺔ‬

‫ﻟﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻰ ﻓﺭﻋﻰ‪:‬‬

‫ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ insert‬ﺜﻡ ﻨﻨﻘﺭ ‪subtotal‬‬ ‫‪-1‬‬
‫ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﻨﻘﺭ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﻭﻨﺨﺘﺎﺭ ﺤﻘل ﺤﺴﺎﺏ ﺍﻻﺠﻤﺎﻟﻰ‬ ‫‪-2‬‬
‫ﻓﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﻓﺭﺯ ﻭﺘﺠﻤﻴﻊ ﺍﻟﺴﺠﻼﺕ ﻋﻠﻰ ﺍﺴﺎﺴﻪ‬ ‫‪-3‬‬
‫ﺍﺫﺍ ﻅﻬﺭﺕ ﻗﺎﺌﻤﺔ ﻤﻨﺴﺩﻟﺔ ﺜﺎﻟﺜﺔ ﻨﺤﺩﺩ ﺍﺘﺠﺎﻩ ﺍﻟﻔﺭﺯ‬ ‫‪-4‬‬
‫ﻨﻨﻘﺭ ‪ok‬‬ ‫‪-5‬‬

‫‪7‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺍﻀﺎﻓﺔ ﻨﺴﺒﺔ ﻤﺌﻭﻴﺔ ﺍﻟﻰ ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﻴﻤﻜﻥ ﺤﺴﺎﺏ ﺍﻟﻨﺴﺏ ﺍﻟﻤﺌﻭﻴﺔ ﻻﺤﺩﻯ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻤﺠﻤﻭﻋﺔ ﺍﻭﺴﻊ‪ .‬ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻴﻤﻜﻥ ﻋـﺭﺽ‬
‫ﺍﻟﻤﺒﻴﻌﺎﺕ ﻓﻰ ﻜل ﻤﺩﻴﻨﺔ ﻓﻰ ﺼﻭﺭﺓ ﻨﺴﺒﺔ ﻤﺌﻭﻴﺔ ﻤﻥ ﺍﺠﻤﺎﻟﻰ ﺍﻟﻤﺒﻴﻌﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺩﻭﻟﺔ ﻭﻴﻤﻜﻥ ﻋـﺭﺽ ﻨـﺴﺒﺔ‬
‫ﻤﺴﺎﻫﻤﺔ ﻜل ﺩﻭﻟﺔ ﻓﻰ ﺍﺠﻤﺎﻟﻰ ﺍﻟﻤﺒﻴﻌﺎﺕ ﺍﻟﻌﺎﻡ‬

‫ﻟﺤﺴﺎﺏ ﻨﺴﺒﺔ ﻤﺌﻭﻴﺔ‪:‬‬

‫ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻟﻠﻭﺼﻭل ﺍﻟﻰ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ‬ ‫‪-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‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻰ ﻴﺒﻴﻥ ﺍﻗﺴﺎﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻟﺴﺠﻼﺕ ﺍﻟﺘﻰ ﺴﻭﻑ ﻴﺴﺘﺨﺩﻤﻬﺎ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ‪:‬‬
‫ﺍﻟﺘﺎﺜﻴﺭ ﻋﻠﻰ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ‬ ‫ﻗﺴﻡ ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﺴﺠل ﺍﻻﻭل ﻓﻘﻁ‬ ‫ﻤﻘﺩﻤﺔ ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﺴﺠﻼﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﺍﻟﺴﺠل ﺍﻻﻭل‬ ‫ﻤﻘﺩﻤﺔ ﺍﻟﺼﻔﺤﺔ‬


‫ﻤﻥ ﺍﻟﺼﻔﺤﺔ‬

‫ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﺴﺠﻼﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﺍﻟﺴﺠل ﺍﻻﻭل‬ ‫ﻤﻘﺩﻤﺔ ﻤﺠﻤﻭﻋﺔ‬


‫ﻤﻥ ﺍﻟﻤﺠﻤﻭﻋﺔ‬

‫ﻴﻜﻭﻥ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻟﻜل ﺴﺠل‬ ‫ﺍﻟﺘﻔﺼﻴﻼﺕ‬

‫ﻴﻜﻭﻥ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ ﻟﻜل ﻤﺠﻤﻭﻋﺔ‬ ‫ﺫﻴل ﺍﻟﻤﺠﻤﻭﻋﺔ‬

‫ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﺴﺠﻼﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻭﺍﻟﺴﺠل ﺍﻻﻭل‬ ‫ﺫﻴل ﺍﻟﺼﻔﺤﺔ‬


‫ﻤﻥ ﺍﻟﺼﻔﺤﺔ ﺍﻟﺘﺎﻟﻴﺔ‬

‫ﻴﻜﻭﻥ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ ﻴﺸﻤل ﺠﻤﻴﻊ ﺴﺠﻼﺕ ﺍﻟﺘﻘﺭﻴﺭ‬ ‫ﺫﻴل ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﺘﻜﻭﻴﻥ ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ ﻓﻰ ﻗﺎﺌﻤﺔ‬


‫ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ ﻫﻰ ﺍﺠﻤﺎﻟﻴﺎﺕ ﻴﺠﺭﻯ ﻋﺭﻀﻬﺎ ﻋﻨﺩ ﻤﻌﺎﻟﺠﺔ ﻜل ﺴﺠل‪ .‬ﻭﺘﻘﻭﻡ ﺒﺘﺠﻤﻴﻊ ﺠﻤﻴـﻊ ﺍﻟـﺴﺠﻼﺕ‬
‫ﺴﻭﺍﺀ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ‪،‬ﺍﻟﻤﺠﻤﻭﻋﺔ‪ ،‬ﺍﻭ ﻏﻴﺭ ﺫﻟﻙ‪ .‬ﻭﻴﺸﻤل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤـﺭﻙ ﺠﻤﻴـﻊ ﺍﻟـﺴﺠﻼﺕ ﺤﺘـﻰ ﺍﻟـﺴﺠل‬
‫ﺍﻟﺠﺎﺭﻯ‪.‬ﻭﺍﺒﺴﻁ ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ ﻫﻭ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻻﺤﺩ ﺍﻟﻘـﻭﺍﺌﻡ ﻭﻴـﺴﺘﺨﺩﻡ ‪Running Total‬‬
‫‪ Expert‬ﻓﻰ ﺍﺨﺘﻴﺎﺭ ﺤﻘل ﺍﻟﺘﻠﺨﻴﺹ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻠﺨﻴﺹ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﺘﻨﻔﻴﺫﻫﺎ‪،‬ﺘﺤﺩﻴﺩ ﺸﺭﻭﻁ ﺍﻟﺘﻘﻴﻴﻡ‪ ،‬ﻭﺍﻟﺸﺭﻁ ﺍﻟـﺫﻯ‬
‫ﻴﺘﻡ ﻋﻠﻰ ﺍﺴﺎﺴﻪ ﺍﻋﺎﺩﺓ ﺍﻟﺘﻘﻴﻴﻡ ﻤﻥ ﺍﻟﺒﺩﺍﻴﺔ‬

‫‪9‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻟﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻓﻰ ﻗﺎﺌﻤﺔ‪:‬‬


‫‪ -1‬ﻓﻰ ﻤﺭﺒﻊ ‪ field explorer‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ‪ Running Total Field‬ﺜـﻡ ﻨﻨﻘـﺭ‬
‫‪ New‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻋﺭﺽ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪Creat Running Total Field‬‬
‫‪ -2‬ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺩﺨل ﺍﺴﻡ ﻟﻜﺎﺌﻥ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﺤﻘل ‪Running Total Name‬‬
‫‪ -3‬ﻓﻰ ﻤﻨﻁﻘﺔ ‪ Available Tables and fields‬ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺘﺠﻤﻴﻌﻪ‬
‫‪ -4‬ﻨﻨﻘﺭ ﺯﺭ ﺍﻟﺴﻬﻡ ﺍﻻﻭل ﻻﻀﺎﻓﺔ ﺍﻟﺤﻘل ﺍﻟﻰ ﻤﺭﺒﻊ ‪Field To Summarize‬‬
‫‪ -5‬ﻓﻰ ﻗﺴﻡ ‪ Evaluate‬ﻨﺨﺘﺎﺭ ﻭﻗﺕ ﺘﻨﻔﻴﺫ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻼﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓـﻰ ﻗﺎﺌﻤـﺔ‬
‫ﻨﻨﻘﺭ ‪On change of field‬‬
‫‪ -6‬ﻓﻰ ﻤﻨﻁﻘﺔ ‪ Available Tables and Fields‬ﻨﺨﺘﺎﺭ ﺤﻘل "‪ "on change of‬ﻨﻨﻘﺭ ﺍﻟﺴﻬﻡ ﺍﻟﺜﺎﻨﻰ‬
‫ﻻﻀﺎﻓﺔ ﺍﻟﺤﻘل ﺍﻟﻰ ﻤﺭﺒﻊ ‪On change field‬‬
‫‪ -7‬ﻓﻰ ﻗﺴﻡ ‪ reset‬ﻨﻨﻘﺭ ‪ never‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻻ ﻴﻌﺎﺩ ﺘـﺸﻐﻠﻴﻪ ﻤـﻥ‬
‫ﺍﻟﺒﺩﺍﻴﺔ ﻓﻰ ﻜل ﻤﺭﺓ‪.‬ﻭﻴﻌﻨﻰ ﺫﻟﻙ ﺍﺴﺘﻤﺭﺍﺭ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﺨﻼل ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﺅﺩﻯ ﺍﻟﻰ ﺍﻟﺤﺼﻭل ﻋﻠﻰ‬
‫ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ‬
‫‪ -8‬ﻨﻨﻘﺭ ‪ ok‬ﻟﺤﻔﻅ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ‪ .‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻅﻬﻭﺭ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﻤﺭﺒـﻊ‬
‫‪ filed explorer‬ﺘﺤﺕ ‪running total fields‬‬
‫‪ -9‬ﻨﺴﺤﺏ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﺍﻟﻰ ﻗﺴﻡ ‪ Details‬ﺒﺎﻟﺘﻘﺭﻴﺭ‬

‫ﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻴﺎﺕ ﻤﺘﺤﺭﻜﺔ ﻟﻤﺠﻤﻭﻋﺔ‬


‫ﻴﺒﺩﺃ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻟﻤﺠﻤﻭﻋﺔ ﺒﺎﻟﺴﺠل ﺍﻻﻭل ﻓﻰ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻭﻴﻨﺘﻬﻰ ﺒﺎﻟﺴﺠل ﺍﻻﺨﻴﺭ ﺜﻡ ﻴﺒﺩﺃ ﻤﺭﺓ ﺍﺨـﺭﻯ‬
‫ﻟﻠﻤﺠﻤﻭﻋﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺜﻡ ﺍﻟﺘﺎﻟﻴﺔ ﺤﺘﻰ ﻨﻬﺎﻴﺔ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﻴﺠﺏ ﺘﻘﺴﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻗﺒل ﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻰ‬
‫ﻤﺘﺤﺭﻜﺔ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﻤﺠﻤﻭﻋﺔ‬
‫ﻟﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﻤﺠﻤﻭﻋﺔ‪:‬‬
‫‪ -1‬ﻓﻰ ﻤﺭﺒﻊ ‪ field explorer‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ‪ Running Total Field‬ﺜـﻡ ﻨﻨﻘـﺭ‬
‫‪ New‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻋﺭﺽ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪Creat Running Total Field‬‬
‫‪ -2‬ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺩﺨل ﺍﺴﻡ ﻟﻜﺎﺌﻥ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﺤﻘل ‪Running Total Name‬‬

‫‪10‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻓﻰ ﻤﻨﻁﻘﺔ ‪ 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‬ﺍﺫﺍ ﻜﻨﺎ ﻨﺭﻴﺩ ﻤﺸﺎﻫﺩﺓ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ ﻟﻜل ﻤﺠﻤﻭﻋﺔ ﻭﻴﺘﻡ ﺘﻤﻴﻴﺯ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤـﺭﻙ‬
‫ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺒﻭﻀﻊ ﺭﻤﺯ ‪ #‬ﻗﺒﻠﻪ‬

‫ﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻴﺎﺕ ﻤﺘﺤﺭﻜﺔ ﺸﺭﻁﻴﺔ‬


‫ﻓﻰ ﺒﻌﺽ ﺍﻻﻭﻗﺎﺕ ﻗﺩ ﻴﻜﻭﻥ ﻟﺩﻴﻨﺎ ﻗﻴﻡ ﻏﻴﺭ ﻤﻘﺴﻤﺔ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻭﻨﺭﻴﺩ ﻓﻘﻁ ﺍﺠﻤﺎﻟﻴﺎﺕ ﻓﺭﻋﻴﺔ ﻟـﺒﻌﺽ ﻫـﺫﻩ‬
‫ﺍﻟﻘﻴﻡ‪ .‬ﻟﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻋﻠﻰ ﺍﺴﺎﺱ ﺘﻭﻓﺭ ﺒﻌﺽ ﺍﻟﺸﺭﻭﻁ‪:‬‬
‫‪ -1‬ﻓﻰ ﻤﺭﺒﻊ ‪ field explorer‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ‪ Running Total Field‬ﺜـﻡ ﻨﻨﻘـﺭ‬
‫‪ New‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻋﺭﺽ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪Creat Running Total Field‬‬
‫‪ -2‬ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺩﺨل ﺍﺴﻡ ﻟﻜﺎﺌﻥ ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ ﻓﻰ ﺤﻘل ‪Running Total Name‬‬
‫‪ -3‬ﻓﻰ ﻤﻨﻁﻘﺔ ‪ Available Tables and fields‬ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺘﺠﻤﻴﻌﻪ‬
‫‪ -4‬ﻨﻨﻘﺭ ﺯﺭ ﺍﻟﺴﻬﻡ ﺍﻻﻭل ﻻﻀﺎﻓﺔ ﺍﻟﺤﻘل ﺍﻟﻰ ﻤﺭﺒﻊ ‪Field To Summarize‬‬
‫‪ -5‬ﻓﻰ ﻗﺎﺌﻤﺔ ‪ Type of summary‬ﻨﻨﻘﺭ ‪sum‬‬
‫‪ -6‬ﻓﻰ ﻗﺴﻡ ‪ Evaluate‬ﻨﻨﻘﺭ ‪ Use formula‬ﺜﻡ ﻨﻨﻘﺭ ﺯﺭ )‪(X+2‬‬
‫‪ -7‬ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪ Running Total Condition Formula‬ﻨﺩﺨل ﺍﻟﺼﻴﻐﺔ ﻓﻰ ﻤﺭﺒﻊ ‪formula‬‬
‫ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل‪ ،‬ﻟﺘﻜﻭﻴﻥ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﻟﻠﻤﺒﻴﻌﺎﺕ ﻓﻰ ﺍﻟﻤﻤﻠﻜﺔ ﺍﻟﻌﺭﺒﻴﺔ ﺍﻟﺴﻌﻭﺩﻴﺔ ﻨﺴﺘﺨﺩﻡ ﺍﻟـﺼﻴﻎ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‪.‬‬

‫ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ‪Crystal:‬‬


‫"‪{Customer.Country}="ksa‬‬

‫ﻭﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ﺍﻟﺒﻴﺴﻙ‬


‫"‪Formula={Customer.Country}="ksa‬‬
‫‪ -8‬ﻨﻨﻘﺭ ‪save and close‬‬
‫‪ -9‬ﻓﻰ ﻗﺴﻡ ‪ reset‬ﻨﻨﻘﺭ ‪never‬‬
‫ﻨﻨﻘﺭ ‪ ok‬ﻟﺤﻔﻅ ﺤﻘل ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻤﺘﺤﺭﻙ‬ ‫‪-10‬‬
‫ﻨﻜﻭﻥ ﺍﺠﻤﺎﻟﻰ ﻤﺘﺤﺭﻙ ﺍﺨﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﺍﻟﻔﺭﻕ ﺍﻟﻭﺤﻴﺩ ﺴﻭﻑ ﻴﻜﻭﻥ ﺍﻟﻘﻴﻤﺔ‬ ‫‪-11‬‬
‫ﺍﻟﺘﻰ ﻓﻰ ﺍﻟﺼﻴﻐﺔ‬
‫ﻴﻤﻜﻥ ﺴﺤﺏ ﺤﻘﻭل ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ ﺍﻟﻰ ﻗﺴﻡ ‪ Details‬ﺒﺎﻟﺘﻘﺭﻴﺭ ﺍﻭ ﺍﻟﻰ ﻗﺴﻡ‬ ‫‪-12‬‬
‫‪ Report Footer‬ﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﻤﺸﺎﻫﺩﺓ ﺍﺠﻤﺎﻟﻰ ﻋﺎﻡ‬

‫ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺼﻴﻎ‬
‫ﻗﺩ ﻨﺤﺘﺎﺝ ﺍﻟﻰ ﻭﻀﻊ ﻤﻌﻠﻭﻤﺎﺕ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻻﺘﻭﺠﺩ ﺒﺤﻘﻭل ﺠﺩﺍﻭل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ‪ .‬ﻓﻰ ﻫﺫﻩ ﺍﻟﺤﺎﻟـﺔ ﻨـﺴﺘﺨﺩﻡ‬
‫ﺍﻟﺼﻴﻎ )‪ (Formulas‬ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻫﻨﺎﻙ ﺍﺭﺒﻌﺔ ﻤﺠﻤﻭﻋﺎﺕ ﻤﺨﺘﻠﻔﺔ ﻤﻥ ﺍﻟـﺼﻴﻎ‪:‬ﺼـﻴﻎ‬
‫ﺍﻟﺘﻘﺭﻴـــﺭ)‪ ،(report‬ﺼـــﻴﻎ ﺍﻟﺘﻨـــﺴﻴﻕ ﺍﻟﻤـــﺸﺭﻭﻁ)‪،(Conditional Formula‬ﺼـــﻴﻎ‬
‫ﺍﻻﺨﺘﻴﺎﺭ)‪،(Selection‬ﻭﺼﻴﻎ ﺍﻟﺒﺤﺙ)‪. (Search Formulas‬ﻭﺍﻟﻐﺎﻟﺒﻴﺔ ﻤﻥ ﺍﻟﺼﻴﻎ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻫﻰ‬
‫ﺼﻴﻎ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺼﻴﻎ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ‬

‫ﺼﻴﻎ ﺍﻟﺘﻘﺭﻴﺭ‬
‫ﺼﻴﻎ ﺍﻟﺘﻘﺭﻴﺭ )‪ (Report Formula‬ﻫﻰ ﺍﻟﺼﻴﻎ ﺍﻟﺘﻰ ﻨﻘﻭﻡ ﺒﺘﻜﻭﻴﻨﻬﺎ ﻟﻠﻌﻤل ﺒﺎﺴﺘﻘﻼﻟﻴﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺴﺒﻴل‬
‫ﺍﻟﻤﺜﺎل‪ ،‬ﺍﻟﺼﻴﻐﺔ ﺍﻟﺘﻰ ﺘﻘﻭﻡ ﺒﺤﺴﺎﺏ ﻋﺩﺩ ﺍﻻﻴﺎﻡ ﺒﻴﻥ ﺘﺎﺭﻴﺦ ﺍﻻﻤﺭ ﻭﺘﺎﺭﻴﺦ ﺍﻟﺸﺤﻥ ﻫﻰ ﺼﻴﻐﺔ ﺘﻘﺭﻴﺭ‬

‫‪11‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺼﻴﻎ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ‬


‫ﺘﻘﻭﻡ ﺼﻴﻎ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ ﺒﺘﻐﻴﻴﺭ ﺨﺭﻴﻁﺔ ﻭﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ‪،‬ﺸﻜل ﺍﻟﻨﺹ‪،‬ﺤﻘﻭل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ‪ ،‬ﺍﻟﻜﺎﺌﻨﺎﺕ‪ ،‬ﺍﻭ‬
‫ﻗﺴﻡ ﻜﺎﻤل ﻤﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻋﻨﺩ ﺍﻟﺤﺎﺠﺔ ﺍﻟﻰ ﺘﻜﻭﻴﻥ ﺼﻴﻎ ﺍﻟﺘﻨﺴﻴﻕ ﻨﻘﻭﻡ ﺒﺎﻟﻭﺼﻭل ﺍﻟﻰ ﻤﺤﺭﺭ ﺍﻟﺼﻴﻎ ‪(Formula‬‬
‫)‪ Editor‬ﻤﻥ ﺨﻼل ﻤﺤﺭﺭ ﺍﻟﺘﻨﺴﻴﻕ )‪(Format Editor‬‬

‫ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ‬
‫ﺘﺤﺩﺩ ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﺴﺠﻼﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﺘﻅﻬﺭ ﺒﺎﻟﺘﻘﺭﻴﺭ ﻭﻤﻥ ﺍﻟﻤﻌﺘﺎﺩ ﻋﺩﻡ ﺍﺩﺨﺎل ﻫﺫﻩ ﺍﻟﺼﻴﻎ ﻤﺒﺎﺸﺭﺓ‬
‫ﻟﻜﻥ ﺒﺩﻻ ﻤﻥ ﺫﻟﻙ ﻨﺤﺩﺩ ﺍﻻﺨﺘﻴﺎﺭ ﻴﺎﺴﺘﺨﺩﺍﻡ ‪ select expert‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻗﻴﺎﻡ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺘﻭﻟﻴـﺩ‬
‫ﺼﻴﻎ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺴﺠﻼﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﻴﻤﻜﻥ ﺘﻜﻭﻴﻥ ﻫﺫﻩ ﺍﻟﺼﻴﻎ ﻴﺩﻭﻴﺎ‪ .‬ﻭﻟﻜﻥ ﻴﺠﺏ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ‪Crystal‬‬
‫ﻭﺍﺫﺍ ﻜﻨﺎ ﻋﻠﻰ ﻤﻌﺭﻓﺔ ﺒﻜﻭﺩ ‪ Basic‬ﻓﺎﻨﻨﺎ ﺴﻭﻑ ﻨﺤﺘﺎﺝ ﺍﻟﻰ ﻤﻌﺭﻓﺔ ﻜﻤﻴﺔ ﺼﻐﻴﺭﺓ ﻤﻥ ﻜﻭﺩ ﻜﺭﻴـﺴﺘﺎل ﻟﺘﻌـﺩﺩﻴل‬
‫ﻤﻌﻅﻡ ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻭ ﺍﻟﺒﺤﺙ‬

‫ﺼﻴﻎ ﺍﻟﺒﺤﺙ‬
‫ﺘﺴﺎﻋﺩﻨﺎ ﺼﻴﻎ ﺍﻟﺒﺤﺙ ﻓﻰ ﺘﺤﺩﻴﺩ ﻤﻭﻉ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻤﺜل ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﻨﺤﺩﺩ ﺼﻴﻐﺔ ﺍﻟﺒﺤﺙ ﺒﺎﺴـﺘﺨﺩﺍﻡ‬
‫‪seach expert‬‬

‫ﺍﺩﺭﺍﺝ ﺍﻟﺼﻴﻎ‬
‫ﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻎ ﻫﻨﺎﻙ ﺨﻴﺎﺭ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ‪ crystal‬ﺍﻭ ﻜﻭﺩ ‪ basic‬ﻭﻴﻤﻜـﻥ ﺘﻘﺭﻴﺒـﺎ ﻜﺘﺎﺒـﺔ ﺍﻯ ﺼـﻴﻐﺔ‬
‫ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﺤﺩ ﻨﻭﻋﻰ ﺍﻟﻜﻭﺩ ﺍﺫﺍ ﻜﺎﻨﺕ ﺍﻟﺼﻴﻐﺔ ﻓﻰ ﺍﻻﺼل ﻗﺩ ﺘﻤﺕ ﻜﺘﺎﺒﺘﻬﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻨﻭﻉ ﺍﻻﺨﺭ‪ .‬ﻭﻴﻤﻜـﻥ ﺍﻥ‬
‫ﻴﺤﺘﻭﻯ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺼﻴﻎ ﺘﻡ ﻜﺘﺎﺒﺘﻬﺎ ﺒﻜﻭﺩ ﻜﺭﻴﺴﺘﺎل ﻭﺼﻴﻎ ﺍﺨﺭﻯ ﻤﻜﺘﻭﺒﺔ ﺒﻜﻭﺩ ﺒﻴﺴﻙ‬

‫ﻻﺩﺭﺍﺝ ﺼﻴﻐﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ‪:‬‬


‫‪ -1‬ﻓﻰ ﻤﺭﺒﻊ ‪ field explorer‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ‪ formula fields‬ﺜﻡ ﻨﻨﻘﺭ ‪new‬‬
‫‪ -2‬ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪ formula name‬ﻨﺩﺨل ﺍﺴﻡ ﻟﻠﺼﻴﻐﺔ‬
‫‪ -3‬ﻨﻨﻘﺭ ‪ok‬‬
‫‪ -4‬ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪ formula editor‬ﻨﺨﺘﺎﺭ ﺍﻤﺎ ‪ crystal syntax‬ﺍﻭ ‪basic‬‬
‫‪ -5‬ﻨﺩﺨل ﺍﻟﺼﻴﻐﺔ ﺒﻁﺒﺎﻋﺘﻬﺎ ﻭﺒﺎﺨﺘﻴﺎﺭ ﺍﻟﻤﻜﻭﻨﺎﺕ ﻤﻥ ﺍﺸﺠﺎﺭ ﺍﻟﻤﻜﻭﻨﺎﺕ )‪ (component tree‬ﻭﻴﺤﺘـﻭﻯ‬
‫ﻤﺤﺭﺭ ﺍﻟﺼﻴﻐﺔ ﻋﻠﻰ ﺸﺠﺭﺓ ﻟﺤﻘﻭل ﺍﻟﺘﻘﺭﻴﺭ )‪ (report fields‬ﻭﺍﺨﺭﻯ ﻟﻠﺩﻭﺍل )‪(function trees‬‬
‫ﻭﺸﺠﺭﺓ ﺍﻟﻌﻭﺍﻤل)‪ (operators tree‬ﻭﻻﻀﺎﻗﺔ ﺍﻯ ﻤﻜﻭﻥ ﺍﻟﻰ ﺍﻟﺼﻴﻐﺔ ﻨﻘﻭﻡ ﺒﺎﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻴﻪ‬
‫‪ -6‬ﻨﻨﻘﺭ ﺯﺭ ‪ check‬ﻟﻠﺘﻌﺭﻑ ﻋﻠﻰ ﺍﻯ ﺨﻁﺄ ﻓﻰ ﺍﻟﺼﻴﻐﺔ‬
‫‪ -7‬ﻭﻋﻨﺩﻤﺎ ﻨﺘﺤﻘﻕ ﻤﻥ ﻋﺩﻡ ﻭﺠﻭﺩ ﺍﺨﻁﺎﺀ ﻓﻰ ﺍﻟﺼﻴﻐﺔ ﻨﻨﻘﺭ ‪ save and close‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟﻙ ﻅﻬﻭﺭ‬
‫ﺍﻟﺼﻴﻐﺔ ﻓﻰ ﻤﺭﺒﻊ ‪ field explorer‬ﺘﺤﺕ ‪formula fields‬‬
‫‪ -8‬ﻨﺴﺤﺏ ﺍﻟﺼﻴﻐﺔ ﻭﻨﻀﻌﻬﺎ ﻓﻰ ﺍﻟﻤﻜﺎﻥ ﺍﻟﻤﺭﻏﻭﺏ ﺒﻪ ﻋﻠـﻰ ﺍﻟﺘﻘﺭﻴـﺭ ﻭﻴﺠـﺏ ﻤﻼﺤﻅـﺔ ﺍﻥ ﺍﻟـﺼﻴﻐﺔ‬
‫ﺍﻟﻤﻭﻀﻭﻋﺔ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻴﺘﻡ ﺘﻤﻴﻴﻴﺯ ﺍﺴﻤﻬﺎ ﺒﻭﻀﻊ ﺍﻟﺭﻤﺯ @ ﻗﺒﻠﻬﺎ‬

‫‪12‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺍﻗﺴﺎﻡ ﻤﺤﺭﺭ ﺍﻟﺼﻴﻐﺔ‬


‫ﻴﺤﺘﻭﻯ ﻤﺤﺭﺭ ﺍﻟﺼﻴﻐﺔ ﻋﻠﻰ ﻋﺩﺩ ﻤﻥ ﺍﻻﺠﺯﺍﺀ ﺘﺸﻤل ﻤﺭﺒﻌﺎﺕ ﺴﺭﺩ ﻤﺭﺒﻌﺎﺕ ﺴﺭﺩ ﻤﺭﻜﺒﺔ ﻭﻗﺎﺌﻤﺔ ﺍﺩﻭﺍﺕ‪ .‬ﺘﺘﻜﻭﻥ‬
‫ﻤﺭﺒﻌﺎﺕ ﺍﻟﺴﺭﺩ ﻤﻥ ﺍﺭﺒﻌﺔ ﻤﺭﺒﻌﺎﺕ ﻤﻭﻀﺤﺔ ﺒﺎﺍﻟﺠﺩﻭل ﺍﻟﺘﺎﻟﻰ‪:‬‬

‫ﺍﻟﻤﺤﺘﻭﻴﺎﺕ‬ ‫ﺍﻟﻨﺎﻓﺫﺓ‬

‫ﺘﺸﺘﻤل ﻋﻠﻰ ﺠﻤﻴﻊ ﺤﻘﻭل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ‬ ‫‪Report fields‬‬


‫ﻴﻤﻜﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻴﻬﺎ ﺒﺎﻟﺘﻘﺭﻴﺭ ﻜﻤﺎ ﺘﺤﺘﻭﻯ ﻫﺫﻩ‬
‫ﺍﻟﻨﺎﻓﺫﺓ ﻋﻠﻰ ﺍﻟـﺼﻴﻎ ﻭﺍﻟﻤﺠﻤﻭﻋـﺎﺕ ﺍﻟـﺴﺎﺒﻕ‬
‫ﺘﻜﻭﻴﻨﻬﺎ‬
‫ﺍﻟﺩﻭﺍل ﻫﻰ ﺍﺠﺭﺍﺀﺍﺕ ﺴﺎﺒﻘﺔ ﺍﻟﺘﻜﻭﻴﻥ ﺘﻌﻴﺩ ﻗـﻴﻡ‬ ‫‪function‬‬
‫ﻭﺘﻨﻔـــﺫ ﺍﻟﻌﻤﻠﻴـــﺎﺕ ﺍﻟﺤـــﺴﺎﺒﻴﺔ ﻤﺜـــل‬
‫ﺍﻟﻤﺘﻭﺴﻁ‪،‬ﺍﻻﺠﻤﺎﻟﻰ ﺍﻟﻌﺩﺩ ﻭﻏﻴﺭﻫﺎ‬

‫ﺘﻘﻭﻡ ﺍﻟﻌﻭﺍﻤل ﺒﻭﺼﻑ ﻋﻤﻠﻴﺔ ﺍﻭ ﺘﺼﺭﻑ ﻴﺤﺩﺙ‬ ‫‪operators‬‬


‫ﺒﻴﻥ ﺍﺜﻨﻴﻥ ﺍﻭ ﺍﻜﺜﺭ ﻤﻥ ﺍﻟﻘﻴﻡ‬

‫ﻫﻰ ﺍﻟﻤﻨﻁﻘﺔ ﺍﻟﺘﻰ ﻨﺴﺘﺨﺩﻤﻬﺎ ﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻐﺔ‬ ‫‪Formula text windows‬‬

‫ﻭﻴﻭﺠﺩ ﻗﺎﺌﻤﺔ ﻤﺭﻜﺒﺔ )‪ (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‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺘﺭﻗﻴﺔ ﻋﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﻴﺸﺭﺡ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﺍﻟﻭﺴـﺎﺌل ﺍﻟﺘـﻰ ﻴﻤﻜـﻥ ﺍﺴـﺘﺨﺩﺍﻤﻬﺎ ﻟﺠـﺫﺏ ﺍﻻﻨﺘﺒـﺎﻩ ﺍﻟـﻰ ﺍﻟﺒﻴﺎﻨـﺎﺕ ﺘﻐﻴﻴـﺭ ﻋـﺭﺽ‬
‫ﺍﻟﺘﻭﺍﺭﻴﺦ‪،‬ﺍﻻﺭﻗﺎﻡ‪،‬ﻭﺍﻟﻘﻴﻡ ﺍﻻﺨﺭﻯ‪ ،‬ﺍﺨﻔﺎﺀ ﺍﻻﻗﺴﺎﻡ ﺍﻟﻐﻴﺭ ﻤﺭﻏﻭﺏ ﻓﻴﻬﺎ ﻭﺍﻟﻘﻴﺎﻡ ﺒﻤﻬﺎ ﺘﻨﺴﻴﻕ ﺍﺨﺭﻯ ﺘﻀﻔﻰ ﻋﻠـﻰ‬
‫ﺍﻟﺘﻘﺭﻴﺭ ﻤﻅﻬﺭ ﺘﻘﺎﺭﻴﺭ ﺍﻟﻤﺤﺘﺭﻓﻴﻥ‬

‫ﺘﻨﺴﻴﻕ ﺍﻟﺒﻴﺎﻨﺎﺕ‬
‫ﻴﺸﻴﺭ ﺍﻟﺘﻨﺴﻴﻕ )‪ (Formatting‬ﺍﻟﻰ ﺍﻟﺘﻐﻴﻴﺭﺍﺕ ﻓﻰ ﺨﺭﻴﻁﺔ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺒﺎﻟﻤﺜل ﺸﻜل ﻅﻬﻭﺭ ﺍﻟﻨﺼﻭﺹ‪,‬‬
‫ﺍﻟﻜﺎﺌﻨﺎﺕ‪ ,‬ﺍﻭ ﺍﻗﺴﺎﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺎﻟﻜﺎﻤل‪ .‬ﻭﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺘﻨﺴﻴﻕ ﻟﻠﻘﻴﺎﻡ ﺒﺎﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻻﻋﻤﺎل ﺍﻟﺘﻰ ﻤﻥ ﺒﻴﻨﻬﺎ‪:‬‬
‫• ﺘﻭﺠﻴﻪ ﺍﻻﻨﺘﺒﺎﻩ ﺍﻟﻰ ﺒﻴﺎﻨﺎﺕ ﻤﻌﻴﻨﺔ‬
‫• ﺍﻀﻔﺎﺀ ﻤﻅﻬﺭ ﺍﺤﺘﺭﺍﻓﻰ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬
‫• ﺘﻐﻴﻴﺭ ﻋﺭﺽ ﺍﻟﺘﻭﺍﺭﻴﺦ ‪ ،‬ﺍﻻﺭﻗﺎﻡ‪ ،‬ﺍﻟﻘﻴﻡ ﺍﻟﻤﻨﻁﻘﻴﺔ ‪،‬ﻗﻴﻡ ﺍﻟﻌﻤﻠﺔ‪ ،‬ﻭﺴﻼﺴل ﺍﻟﻨﺼﻭﺹ‬

‫ﻭﻟﻠﻘﻴﺎﻡ ﺒﺘﻨﺴﻴﻕ ﻜﺎﺌﻥ ﺍﻭ ﻗﺴﻡ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻴﻪ ﺜﻡ ﻨﺨﺘﺎﺭ ‪Format‬ﻭﻟﺘﻨﺴﻴﻕ ﻜﺎﺌﻥ‬
‫ﺭﺴﻡ ﺒﻴﺎﻨﻰ ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻴﻪ ﺜﻡ ﻨﺨﺘﺎﺭ ‪ chart expert‬ﻭﻴﻤﻜﻥ ﺍﻴﻀﺎ ﺍﺴﺘﺨﺩﺍﻡ ﻨﺎﻓﺫﺓ ﺍﻟﺨﺼﺎﺌﺹ‬
‫ﻓﻰ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ ﻟﺘﻨﺴﻴﻕ ﺍﻟﻜﺎﺌﻨﺎﺕ ﻭﺍﻻﻗﺴﺎﻡ‬

‫ﺘﻨﺴﻴﻕ ﺍﻻﺭﻗﺎﻡ ﻭﺍﻟﺘﻭﺍﺭﻴﺦ‬


‫ﻟﺘﺩﻋﻴﻡ ﺍﻟﻤﻔﺎﻫﻴﻡ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻤﻬﻨﺔ ﺍﻟﻤﺤﺎﺴﺒﺔ ﻴﺴﻤﺢ ﻟﻨﺎ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺘﻘﺭﻴﺭﻜﻴﻔﻴﺔ ﻋﺭﺽ ﺭﻤﻭﺯ ﺍﻟﻌﻤﻠﺔ‬
‫ﺍﻟﻘﻴﻡ ﺍﻟﺴﺎﻟﺒﺔ ﻭﺍﻻﺼﻔﺎﺭ ﻋﻠﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻤﺎﻟﻴﺔ ﻭﻴﻤﻜﻥ ﺍﻴﻀﺎ ﻀﺒﻁ ﺍﻟﺘﻘﺭﻴﺭ ﻟﻌﻜﺱ ﺍﻻﺸﺎﺭﺍﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﻤﺒـﺎﻟﻎ‬
‫ﺍﻟﻤﺩﻴﻨﺔ ﻭﺍﻟﺩﺍﺌﻨﺔ‬
‫ﻟﺘﻨﺴﻴﻕ ﺍﻻﺭﻗﺎﻡ ﻭﺍﻟﺘﻭﺍﺭﻴﺦ‪:‬‬
‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺤﻘل ﺍﻟﻌﻤﻠﺔ ‪،‬ﺍﻟﺭﻗﻡ‪،‬ﺍﻭ ﺍﻟﺘﺎﺭﻴﺦ ﺜﻡ ﻨﺨﺘﺎﺭ ‪Format‬‬
‫‪ -2‬ﻨﺨﺘﺎﺭ ﻭﺍﺤﺩﺍ ﻤﻥ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻭ ﻨﻨﻘﺭ ‪ customize‬ﻟﺘﺤﺩﻴﺩ ﺘﻨﺴﻴﻕ ﺍﺨﺭ‬

‫ﺍﻀﺎﻓﺔ ﺤﺩﻭﺩ‪ ،‬ﺍﻟﻭﺍﻥ‪،‬ﺍﻭ ﻀﻼل ﺍﻟﻰ ﺍﻟﺤﻘﻭل‬


‫ﻴﺴﻤﺢ ﻟﻨﺎ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺎﻀﺎﻓﺔ ﺤﺩﻭﺩ‪،‬ﻟﻭﻥ‪،‬ﺍﻭ ﻀﻼل ﺍﻟﻰ ﺤﻘﻭل ﺍﻟﺘﻘﺭﻴﺭ ﻟﻜﻰ ﻴﺘﻡ ﺍﻟﺘﺭﻜﻴﺯ ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨـﺎﺕ‬
‫ﺍﻟﻤﻬﻤﺔ ﻭﺘﻜﻭﻴﻥ ﺘﻘﺎﺭﻴﺭ ﻤﺤﺘﺭﻓﺔ‬
‫ﻟﻌﻤل ﺫﻟﻙ‪:‬‬
‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺍﻟﻜﺎﺌﻥ ﻭﻨﺨﺘﺎﺭ ‪Format‬‬
‫‪ -2‬ﻨﻨﻘﺭ ﻤﻠﺼﻕ ‪ Border‬ﻭﻨﺨﺘﺎﺭ ﻨﻤﻁ ﺍﻟﺨﻁ‪ ،‬ﺍﻟﻠﻭﻥ‪ ،‬ﻭﻟﻭﻥ ﺍﻟﺨﻠﻔﻴﺔ ﻟﻠﺤﻘل‬
‫‪Ok -3‬‬

‫ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ‬

‫ﻴﻁﺒﻕ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻤﻥ ﺍﻟﺘﻨﺴﻴﻕ ﻓﻰ ﻅل ﺘﻭﻓﺭ ﺸﺭﻭﻁ ﻤﻌﻴﻨﺔ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻓﻰ ﺍﺤﺩ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻴﻤﻜﻥ ﺍﻥ ﻨﺤﺘﺎﺝ‬
‫ﺍﻟﻰ‪:‬‬
‫• ﻁﺒﺎﻋﺔ ﺍﺭﺼﺩﺓ ﺍﻟﻌﻤﻼﺀ ﺒﺎﻟﻠﻭﻥ ﺍﻻﺤﻤﺭ ﻋﻨﺩ ﺘﺠﺎﻭﺯ ﺘﺎﺭﻴﺦ ﺍﺴﺘﺤﻘﺎﻕ ﺍﻟﺴﺩﺍﺩ‬
‫• ﻁﺒﺎﻋﺔ ﺍﻟﺘﺎﺭﻴﺦ ﺒﺼﻴﻐﺔ ﺘﻨﺎﺴﺏ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻟﻠﺘﻘﺭﻴﺭ‬
‫• ﺍﻅﻬﺎﺭ ﻟﻭﻥ ﺍﻟﺨﻠﻔﻴﺔ ﻜل ﺜﻼﺜﺔ ﺴﻁﻭﺭ‬

‫ﻴﻤﻜﻨﻨﺎ ﺘﺤﺩﻴﺩ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﺸﺭﻁﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺼﻴﻎ ﻭﻋﻨﺩ ﺘﻜﻭﻴﻥ ﺼﻴﻐﺔ ﺘﻨﺴﻴﻕ ﺸﺭﻁﻴﺔ ﻴﻜﻭﻥ ﻟﻬﺎ ﺍﻻﺴﺒﻘﻴﺔ ﻋﻠﻰ‬
‫ﺠﻤﻴﻊ ﻗﻴﻡ ﺍﻟﻀﺒﻁ ﺍﻟﺘﻰ ﺘﻡ ﺍﻋﺩﺍﺩﻫﺎ ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪format editor‬‬

‫‪14‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻻﻀﺎﻗﺔ ﺘﻨﺴﻴﻕ ﺸﺭﻁﻰ ﺍﻟﻰ ﻜﺎﺌﻥ‪:‬‬


‫‪ -1‬ﻨﻨﻘﺭ ﻴﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺍﻟﻜﺎﺌﻥ ﻨﺨﺘﺎﺭ ‪format‬‬
‫‪ -2‬ﻨﻨﻘﺭ ﺯﺭ ﺍﻟﺼﻴﻐﺔ ﺍﻟﻤﻨﺎﺴﺏ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻰ ﺍﻟﺠﺎﻨﺏ ﺍﻻﻴﻤﻥ ﺒﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ‬
‫‪ -3‬ﻓﻰ ﻤﺭﺒﻊ ‪ format editor‬ﻨﺩﺨل ﺍﻟﺼﻴﻐﺔ‬
‫‪ -4‬ﻨﻨﻘﺭ ‪ save‬ﺍﺫﺍ ﻜﺎﻥ ﻴﻭﺠﺩ ﺍﻯ ﺍﺨﻁﺎﺀ ﻴﺘﻡ ﺍﻟﺘﻨﺒﻴﻪ ﻋﻠﻴﻬﺎ‬
‫‪ -5‬ﻨﻨﻘﺭ ‪ok‬‬

‫ﺍﺩﺭﺍﺝ ﺍﻟﺭﺴﻭﻡ ﺍﻟﺒﻴﺎﻨﻴﺔ‬


‫ﻴﺘﻴﺢ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺍﻤﻜﺎﻨﻴﺔ ﻭﻀﻊ ﺭﺴﻭﻡ ﺒﻴﺎﻨﻴﺔ ﻤﻌﻘﺩﺓ ﻭﻤﻠﻭﻨﺔ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻻ ﺘﻌﺘﺒﺭ ﺍﻟﺭﺴﻭﻡ ﺍﻟﺒﻴﺎﻨﻴـﺔ‬
‫ﻭﺴﻴﻠﺔ ﻟﻌﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻓﻘﻁ ﺒل ﺍﻨﻬﺎ ﺍﺩﺍﺓ ﺘﺤﻠﻴﻠﻴﺔ ﺍﻴﻀﺎ ﻭﻴﻤﻜﻥ ﻟﻠﻤﺴﺘﺨﺩﻤﻴﻥ ﺍﻟﺘﻨﻘﻴﺏ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﺭﺴﻡ ﺍﻟﺒﻴﺎﻨﻰ ﺍﻭ‬
‫ﻤﻔﺘﺎﺡ ﺍﻟﺭﺴﻡ ﺍﻟﺒﻴﺎﻨﻰ ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﻤﻌﻠﻭﻤﺎﺕ ﺘﻔﺼﻴﻠﻴﺔ‪ .‬ﻭﻴﻤﻜﻥ ﺍﻋﺩﺍﺩ ﺍﻟﺭﺴﻭﻡ ﺍﻟﺒﻴﺎﻨﻴﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﺎﻴﻠﻰ‬
‫• ﺤﻘﻭل ﺍﻟﻤﻠﺨﺼﺎﺕ ﻭﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻔﺭﻋﻴﺔ‬
‫• ﺤﻘﻭل ﺍﻟﺘﻔﺼﻴﻼﺕ‪ ،‬ﺍﻟﺼﻴﻎ‪ ،‬ﻭﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ‬
‫• ﺍﻟﻤﻠﺨﺼﺎﺕ ﺍﻟﻤﺘﻘﺎﻁﻌﺔ‬

‫ﻻﺩﺭﺍﺝ ﺭﺴﻡ ﺒﻴﺎﻨﻰ‪:‬‬


‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ insert‬ﺜﻡ ﻨﻨﻘﺭ ‪ chart‬ﻴﺘﺭﺘﺏ ﻋﻠﻰ ﺫﻟـﻙ‬
‫ﻋﺭﺽ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪chart expert‬‬
‫‪ -2‬ﻓﻰ ﻤﻠﺼﻕ ‪ type‬ﻨﺨﺘﺎﺭ ﻨﻭﻉ ﺍﻟﺭﺴﻡ‬
‫‪ -3‬ﻨﺨﺘﺎﺭ ‪ Automatically set chart option‬ﻋﻨﺩﻤﺎ ﻨﺭﻴﺩ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻀﻭﺍﺒﻁ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ‬
‫‪ -4‬ﻨﻨﻘﺭ ﻤﻠﺼﻕ ‪Data‬‬
‫‪ -5‬ﻓﻰ ﻤﻨﻁﻘﺔ ‪ Placement‬ﻨﺤﺩﺩ ﻜﻴﻔﻴﺔ ﻅﻬﻭﺭ ﺍﻟﺭﺴﻡ ﺍﻟﺒﻴﺎﻨﻰ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴـﺭ ﺜـﻡ ﻨﻨﻘـﺭ ‪ Header‬ﺍﻭ‬
‫‪ Footer‬ﻟﺘﺤﺩﻴﺩ ﻤﻜﺎﻥ ﻭﻀﻊ ﺍﻟﺭﺴﻡ‬
‫‪ -6‬ﻓﻰ ﻤﻨﻁﻘﺔ ‪ Layout‬ﻨﺨﺘﺎﺭ ‪Chart Layout‬‬

‫‪15‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫‪ -7‬ﻓﻰ ﻤﻨﻁﻘﺔ ‪ Data‬ﻨﺤﺩﺩ ﺤﻘﻭل ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﺸﺭﻭﻁﺎ‬


‫ـﺼﺎﺌﺹ ﺍﻟﺭﺴــﻡ ﻤﺜــل‬ ‫ـﺎ ﺘﻌــﺩﻴل ﺒﻌــﺽ ﺨـ‬
‫ـﺭﺕ ﻤﻠــﺼﻘﺎﺕ ‪ Axes‬ﻭ‪ Options‬ﻴﻤﻜﻨﻨـ‬ ‫‪ -8‬ﺍﺫﺍ ﻅﻬـ‬
‫ﺍﻟﺘﺼﺎﻋﺩ‪،‬ﺍﻟﻤﻔﺘﺎﺡ‪،‬ﻭﻨﻘﺎﻁ ﺍﻟﺒﻴﺎﻨﺎﺕ‬
‫‪ -9‬ﻨﻨﻘﺭ ﻤﻠﺼﻕ ‪ Text‬ﻭﻨﻘﺒل ﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻌﻨﻭﺍﻥ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﺍﻭ ﻨﻀﻴﻑ ﻋﻨﺎﻭﻴﻥ ﺠﺩﻴﺩﺓ ﺍﻟﻰ ﺍﻟﺭﺴﻡ‬
‫ﻨﻨﻘﺭ ‪ok‬‬ ‫‪-10‬‬

‫ﺍﺩﺭﺍﺝ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ‬


‫ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ)‪ (Subreport‬ﻫﻭ ﺘﻘﺭﻴﺭ ﺩﺍﺨل ﺘﻘﺭﻴﺭ ﻭﻋﻥ ﻁﺭﻴﻕ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﻴﻤﻜﻥ ﺍﺩﻤـﺎﺝ‬
‫ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﺘﻰ ﻻ ﻴﻭﺠﺩ ﺒﻴﻨﻬﺎ ﻋﻼﻗﺎﺕ ﻓﻰ ﺘﻘﺭﻴﺭ ﻭﺍﺤﺩ‪ .‬ﻭﻴﻤﻜﻥ ﺒﻬﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ ﺘﻨﺴﻴﻕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘـﻰ ﻻ ﻴﻤﻜـﻥ‬
‫ﺘﻨﺴﻴﻘﻬﺎ ﺒﻁﺭﻴﻘﺔ ﺍﺨﺭﻯ‪ ،‬ﺍﻭ ﻴﻤﻜﻥ ﻋﺭﺽ ﻤﺸﺎﻫﺩ ﻤﺨﺘﻠﻔﺔ ﻤﻥ ﻨﻔﺱ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﺘﻘﺭﻴﺭ ﻭﺍﺤﺩ‪.‬‬
‫ﻭﺍﺫﺍ ﻜﺎﻥ ﺍﻟﺘﻘﺭﻴﺭ ﺒﻪ ﻗﺴﻡ ﻴﻘﻭﻡ ﺒﻤﻌﺎﻟﺠﺔ ﻋﺩﺩ ﻀﺨﻡ ﻤﻥ ﺍﻟﺴﺠﻼﺕ ﻴﻤﻜﻥ ﻭﻀﻊ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﻓﻰ ﺘﻘﺭﻴـﺭ ﻓﺭﻋـﻰ‬
‫ﺘﺤﺕ ﺍﻟﻁﻠﺏ ‪ .‬ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﺍﻟﻤﻭﻀﻭﻉ ﺘﺤﺕ ﺍﻟﻁﻠﺏ ﻴﻅﻬﺭ ﻓﻰ ﺼﻭﺭﺓ ﺍﺭﺘﺒﺎﻁ ﻨـﺸﻁ )‪ (hyperlink‬ﻓـﻰ‬
‫ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻭﻋﻨﺩ ﻓﺘﺢ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻻ ﻴﺘﻡ ﺍﺴﺘﺨﺭﺍﺝ ﺒﻴﺎﻨﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﺍﻟـﻰ ﺍﻥ ﻴـﺘﻡ‬
‫ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺍﻻﺭﺘﺒﺎﻁ ﺍﻟﺨﺎﺹ ﺒﻪ‪.‬‬

‫ﻻﺩﺭﺍﺝ ﺘﻘﺭﻴﺭ ﻓﺭﻋﻰ‪:‬‬


‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ insert‬ﺜﻡ ﻨﻨﻘﺭ ‪subreport‬‬
‫‪ -2‬ﻨﺴﺤﺏ ﻜﺎﺌﻥ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻰ ﺍﻟﺘﻘﺭﻴﺭ‬
‫‪ -3‬ﻨﺨﺘﺎﺭ ﺘﻘﺭﻴﺭ ﺍﺨﺭ ﻓﻰ ﺍﻟﻤﺸﺭﻭﻉ ﺍﻭ ﻨﻜﻭﻥ ﺘﻘﺭﻴﺭ ﺠﺩﻴﺩ ﺨﺎﺹ ﺒﺎﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ‬
‫‪ -4‬ﻨﺨﺘﺎﺭ ‪ On-demand subreport‬ﻟﻜﻰ ﻴﻤﻜﻨﻨﺎ ﺍﺴﺘﺨﺭﺍﺝ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﻋﻨـﺩ‬
‫ﺍﻟﺤﺎﺠﺔ ﻭﺍﻻ ﻓﺎﻥ ﻜل ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﺴﻭﻑ ﺘﻅﻬﺭ ﻤﻊ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﺠﺏ ﻤﻼﺤﻅﺔ ﺍﻥ ﺍﺴـﺘﺨﺩﺍﻡ‬
‫ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﻋﻨﺩ ﺍﻟﻁﻠﺏ ﺴﻭﻑ ﻴﺅﺩﻯ ﺍﻟﻰ ﺯﻴﺎﺩﺓ ﺍﺩﺍﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﺘﻰ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﺘﻘﺎﺭﻴﺭ ﻓﺭﻋﻴﺔ‬
‫‪ -5‬ﻨﻨﻘﺭ ﻤﻠﺼﻕ ‪ link‬ﺍﺫﺍ ﻜﻨﺎ ﻨﺭﻴﺩ ﺭﺒﻁ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﻤﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻴﺘﺭﺘﺏ ﻋﻠـﻰ‬
‫ﺫﻟـﻙ ﻋـﺭﺽ ﺼـﻔﺤﺔ ‪ Container Report Fields To Link‬ﺒﻤﺭﺒـﻊ ﺤـﻭﺍﺭ ‪Insert‬‬
‫‪Subreport‬‬

‫‪16‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫‪ -6‬ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺍﺴﺘﺨﺩﺍﻤﻪ ﺤﻘل ﺍﺭﺘﺒﺎﻁ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻤﻥ ﻗﺎﺌﻤﺔ ‪Avilable fields‬‬
‫‪ -7‬ﻨﺴﺘﺨﺩﻡ ﻗﺴﻡ ‪ Field Link‬ﺍﻟﺫﻯ ﻴﻅﻬﺭ ﻓﻘﻁ ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ ﺤﻘل ﺍﺭﺘﺒﺎﻁ ﻟﻀﺒﻁ ﺍﻻﺭﺘﺒـﺎﻁ ﻟﻜـل ﺤﻘـل‬
‫ﺍﺭﺘﺒﺎﻁ‪:‬‬
‫• ﻨﺨﺘﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻨﺭﻴﺩ ﺭﺒﻁﻪ ﻤﻊ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻤﻥ ‪subreport parameter field to use‬‬
‫• ﻨﺨﺘﺎﺭ ﻤﺭﺒﻊ ﺍﻻﺨﺘﻴﺎﺭ ‪ select data based on field‬ﻭﻨﺨﺘﺎﺭ ﺤﻘل ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﻨﺴﺩﻟﺔ ﺍﻟﻤﺠﺎﻭﺭﺓ‬
‫ﻟﺘﺭﺘﻴﺏ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﺒﻨﺎﺀ ﻋﻠﻰ ﺤﻘل ﻤﺤﺩﺩ‪ .‬ﻭﺍﺫﺍ ﻟﻡ ﻴﺘﻡ ﺘﺤﺩﻴﺩ ﺍﻯ ﺸﺊ ﻫﻨﺎ‪ ،‬ﻓﺎﻥ ﺍﻟﺘﻘﺭﻴـﺭ‬
‫ﺍﻟﻔﺭﻋﻰ ﺴﻭﻑ ﻴﺴﺘﺨﺩﻡ ﺘﻨﻅﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ‬
‫‪ -8‬ﻨﻨﻘﺭ ‪ok‬‬

‫ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﺴﻭﻑ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺘﻨﺴﻴﻕ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ ﻤﻊ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ‬

‫ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﻏﻴﺭ ﺍﻟﻤﺭﺘﺒﻁﻪ‬


‫ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﻏﻴﺭ ﺍﻟﻤﺭﺘﺒﻁﺔ)‪ (Unlike Reports‬ﻫﻰ ﺘﻘﺎﺭﻴﺭ ﻤﺴﺘﻘﻠﺔ ﻻ ﻴﺘﻡ ﺘﻨﺴﻴﻕ ﺒﻴﺎﻨﺎﺘﻬﺎ ﺒﺎﻯ ﻁﺭﻴﻘﺔ‬
‫ﻤﻊ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ‪ .‬ﻭﻓﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻏﻴﺭ ﺍﻟﻤﺭﺘﺒﻁﺔ ﻻ ﺘﻭﺠﺩ ﺍﻯ ﻤﺤﺎﻭﻻﺕ ﻟﻤﻭﺍﻓﻘﺔ ﺍﻟﺴﺠﻼﺕ ﻓﻰ ﺘﻘﺭﻴﺭ‬
‫ﻤﻊ ﺍﻟﺴﺠﻼﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺨﺭ‪ .‬ﻭﻟﻴﺱ ﻤﻥ ﺍﻟﻀﺭﻭﺭﻯ ﺍﻥ ﺘﻘﻭﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﻏﻴﺭ ﺍﻟﻤﺭﺘﺒﻁـﺔ ﺒﺎﺴـﺘﺨﺩﺍﻡ‬
‫ﻨﻔﺱ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﺜل ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ‪،‬ﻴﻤﻜﻨﻬﺎ ﺍﺴﺘﺨﺩﺍﻡ ﻨﻔﺱ ﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻭ ﻤﺼﺩﺭ ﺒﻴﺎﻨﺎﺕ ﻤﺨﺘﻠﻑ ﺒﺎﻟﻜﺎﻤل‪.‬‬
‫ﺒﺎﻻﻀﺎﻓﺔ ﺍﻟﻰ ﺫﻟﻙ ﻓﺎﻥ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﻟﻴﺱ ﻤﻠﺯﻤﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺠﺩﻭل ﻭﺍﺤﺩ‪ .‬ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ ﻏﻴﺭ ﺍﻟﻤﺭﺘﺒﻁ ﻴﻤﻜﻥ‬
‫ﺍﻥ ﻴﺴﺘﺨﺩﻡ ﺠﺩﻭل ﻭﺍﺤﺩ ﺍﻭ ﻋﺩﺓ ﺠﺩﺍﻭل‬

‫ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﺍﻟﻤﺭﺘﺒﻁﺔ‬


‫ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻔﺭﻋﻴﺔ ﺍﻟﻤﺭﺘﺒﻁﺔ )‪ (Linked Reports‬ﺘﻤﺜل ﺍﻟﺠﺎﻨﺏ ﺍﻻﺨﺭ ﺤﻴﺙ ﻴﺘﻡ ﺘﻨﺴﻴﻕ ﺒﻴﺎﻨﺎﺘﻬﺎ ﻤﻊ ﺒﻴﺎﻨـﺎﺕ‬
‫ﺍﻟﺘﻘﺭﻴﺭ ﺍﻻﺴﺎﺴﻰ‪ .‬ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﻤﻭﺍﻓﻘﺔ ﺍﻟﺴﺠﻼﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴـﺭ ﺍﻟﻔﺭﻋـﻰ ﻤـﻊ ﺍﻟـﺴﺠﻼﺕ ﻓـﻰ ﺍﻟﺘﻘﺭﻴـﺭ‬
‫ﺍﻻﺴﺎﺴﻰ‪.‬ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﺍﺫﺍ ﻗﻤﻨﺎ ﺒﺘﻜﻭﻴﻥ ﺘﻘﺭﻴﺭ ﺍﺴﺎﺴﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻌﻤﻼﺀ ﻭﺘﻘﺭﻴـﺭ ﻓﺭﻋـﻰ‬
‫ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻤﻌﻠﻭﻤﺎﺕ ﺍﻭﺍﻤﺭ ﺍﻟﻤﺒﻴﻌﺎﺕ ﺜﻡ ﺠﺭﻯ ﺍﻟﺭﺒﻁ ﺒﻴﻨﻬﻤﺎ ﻴﻘﻭﻡ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺘﻜﻭﻴﻥ ﺘﻘﺭﻴﺭ ﻓﺭﻋﻰ ﻟﻜل ﻋﻤﻴل‬
‫ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻜل ﺍﻻﻭﺍﻤﺭ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﻌﻤﻴل‪.‬‬

‫ﺍﺩﺭﺍﺝ ﻜﺎﺌﻨﺎﺕ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﺘﻘﺎﻁﻌﺔ‬


‫ﻜﺎﺌﻥ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﺘﻘﺎﻁﻌﺔ)‪ (Cross-Tab‬ﻫﻭ ﻋﺒﺎﺭﺓ ﻋﻥ ﺸﺒﻜﺔ ﺘﻌﻴﺩ ﻤﻌﻠﻭﻤﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﻤﻌﻴـﺎﺭ ﻴﺠـﺭﻯ‬
‫ﺘﺤﺩﻴﺩﻩ‪ .‬ﻭﻴﺘﻡ ﻋﺭﺽ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﺍﻋﻤﺩﺓ ﻭﺼﻔﻭﻑ‪ .‬ﻫﺫﺍ ﺍﻟﺘﻨﺴﻴﻕ ﻴﻤﻜﻥ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﻤﻥ ﻤﻘﺎﺭﻨـﺔ ﺍﻟﺒﻴﺎﻨـﺎﺕ‬
‫ﻭﺍﻟﺘﻌﺭﻑ ﻋﻠﻰ ﺍﻻﺘﺠﺎﻫﺎﺕ‪ .‬ﻭﻴﺘﻜﻭﻥ ﻜﺎﺌﻥ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﺘﻘﺎﻁﻌﺔ ﻤﻥ ﺜﻼﺙ ﻋﻨﺎﺼﺭ ‪ :‬ﺍﻟﺼﻔﻭﻑ‪ ،‬ﺍﻻﻋﻤﺩﺓ‪ ،‬ﻭﺤﻘﻭل‬
‫ﺍﻟﻤﻠﺨﺼﺎﺕ‪.‬‬

‫‪17‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻻﺩﺭﺍﺝ ﻜﺎﺌﻥ ﻤﻌﻠﻭﻤﺎﺕ ﻤﺘﻘﺎﻁﻌﺔ‪:‬‬


‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻤﺼﻤﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻨﺸﻴﺭ ﺍﻟﻰ ‪ insert‬ﺜﻡ ﻨﻨﻘﺭ ‪Cross-Tab‬‬
‫‪ -2‬ﻨﻀﻊ ﻜﺎﺌﻥ ‪ Cross-Tab‬ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬
‫‪ -3‬ﻓﻰ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ‪ Format Cross-Tab‬ﻨﻀﻴﻑ ﺤﻘﻭل ﺍﻟﻰ ﻤﻨﺎﻁﻕ ﺍﻟﺼﻔﻭﻑ‪ ،‬ﺍﻻﻋﻤـﺩﺓ‪ ،‬ﻭﺤﻘـﻭل‬
‫ﺍﻟﻤﻠﺨﺼﺎﺕ‬
‫‪ -4‬ﻨﻨﻘﺭ ﻤﻠﺼﻕ ‪ Style‬ﻻﺨﺘﻴﺎﺭ ﺍﻟﺘﺼﻤﻴﻡ ﺍﻟﻤﻨﺎﺴﺏ ﺍﻭ ﻤﻠﺼﻕ ‪ Customize Style‬ﻟﺘﻜﻭﻴﻥ ﺘـﺼﻤﻴﻡ‬
‫ﺨﺎﺹ ﺒﻨﺎ‬

‫ﺍﺨﻔﺎﺀ ﺍﻗﺴﺎﻡ ﺍﻟﺘﻘﺭﻴﺭ‬


‫ﻴﺤﺘﻭﻯ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻋﻠﻰ ﺜﻼﺜﺔ ﺨﺼﺎﺌﺹ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻻﺨﻔﺎﺀ ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﺨﺎﺼﻴﺔ ‪Hide‬‬
‫ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺒﺎﺨﻔﺎﺀ ﻗﺴﻡ ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻓﻰ ﺘﻘﺭﻴﺭ ﻤﻠﺨﺹ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ‬
‫ﺍﻟﺨﺎﺼﻴﺔ ﻟﻌﺭﺽ ﺍﻟﻤﻠﺨﺼﺎﺕ ﻓﻘﻁ ﻭﻟﻴﺱ ﺍﻟﺘﻔﺼﻴﻼﺕ ﺨﻠﻑ ﻫﺫﻩ ﺍﻟﺘﻔﺼﻴﻼﺕ‪ .‬ﻭﻋﻨﺩ ﺘﻁﺒﻴﻕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻋﻠـﻰ‬
‫ﻗﺴﻡ ﻓﺎﻥ ﺍﻟﺘﻔﺼﻴﻼﺕ ﺒﻬﺫﺍ ﺍﻟﻘﺴﻡ ﺘﺼﺒﺢ ﻤﺭﺌﻴﺔ ﻋﻨﺩ ﺍﺴﺘﺨﺩﺍﻡ ﻤﺅﺸﺭ ‪ Drill-Down‬ﻟﻠﺘﻨﻘﻴﺏ ﻋﻥ ﻤﺤﺘﻭﻴـﺎﺕ‬
‫ﺍﻟﻘﺴﻡ ﻭﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻤﻁﻠﻘﺔ ﻭﻻ ﻴﻤﻜﻥ ﺭﺒﻁ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﺒﺘﺤﻘﻕ ﺍﺤﺩ ﺍﻟﺸﺭﻭﻁ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺼﻴﻎ‬
‫ﻻﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ‪:‬‬
‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬
‫‪ -2‬ﻤﻥ ﺍﻟﻘﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ ‪،‬ﻨﺨﺘﺎﺭ ‪Format Section‬‬
‫‪ -3‬ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺨﺘﺎﺭ )‪Hide(Drill-Down-Ok‬‬

‫ﺨﺎﺼﻴﺔ ‪Suppress‬‬
‫ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻴﻀﺎ ﺒﺎﺨﻔﺎﺀ ﻗﺴﻡ ﻋﻨﺩ ﺘﺸﻐﻴل ﺍﻟﺘﻘﺭﻴﺭ ﻭﻋﻠﻰ ﺨﻼﻑ ﺨﺎﺼﻴﺔ ‪ Hide‬ﻻ ﺘﻤﻜﻨﻨﺎ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ‬
‫ﻤﻥ ﺍﻟﺘﻨﻘﻴﺏ ﻋﻥ ﺍﻟﺘﻔﺼﻴﻼﺕ‪.‬ﻭﻴﻤﻜﻥ ﺘﻁﺒﻴﻕ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺒﺼﻔﺔ ﻤﻁﻠﻘﺔ ﺍﻭ ﻋﻨﺩ ﺘﻭﻓﺭ ﺍﺤﺩ ﺍﻟﺸﺭﻭﻁ ﺒﺎﺴـﺘﺨﺩﺍﻡ‬
‫ﺍﻟﺼﻴﻎ‪ .‬ﻻﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ‪:‬‬

‫‪18‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬


‫‪ -2‬ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ ﻨﺨﺘﺎﺭ ‪Format Section‬‬
‫‪ -3‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﻗﺴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺜﻡ ﻨﺨﺘﺎﺭ ﺨﺎﺼﻴﺔ )‪Suppress(No Drill-Down‬‬

‫ﺨﺎﺼﻴﺔ ‪Suppress Blank Section‬‬


‫ﺘﻘﻭﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﺒﺎﺨﻔﺎﺀ ﺍﺤﺩ ﺍﻻﻗﺴﺎﻡ ﻋﻨﺩﻤﺎ ﻻ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺸﺊ ﺒﺩﺍﺨﻠﻪ ﻭﺍﺫﺍ ﺘﻡ ﻭﻀﻊ ﺸﺊ ﺩﺍﺨﻠﻪ ﻓﺎﻥ ﺍﻟﻘﺴﻡ‬
‫ﺴﻭﻑ ﻴﺼﺒﺢ ﻤﺭﺌﻴﺎ ﻻﺴﺘﺨﺩﺍﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ‪:‬‬
‫‪ -1‬ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ ﺍﻻﻴﻤﻥ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬
‫‪ -2‬ﻤﻥ ﺍﻟﻘﺌﻤﺔ ﺍﻟﻤﺨﺘﺼﺭﺓ ‪،‬ﻨﺨﺘﺎﺭ ‪Format Section‬‬
‫‪ -3‬ﻓﻰ ﻤﺭﺒﻊ ﺍﻟﺤﻭﺍﺭ ﻨﺨﺘﺎﺭ ‪Suppress Blank Section‬‬

‫ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‬

‫ﻨﺤﺘﺎﺝ ﻭﻗﺕ ﺘﺸﻐﻴل ﺍﻟﺘﻁﺒﻴﻕ ﻭﻋﺭﺽ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻰ ﺍﻻﺴﺘﺠﺎﺒﺔ ﻟﻤﺘﻁﻠﺒﺎﺕ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﺍﻟﺘﻰ ﻗﺩ ﺘـﺸﻤل ﺍﺨﺘﻴـﺎﺭ‬
‫ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻤﻁﻠﻭﺏ ﺘﺸﻐﻴﻠﻪ‪ ،‬ﺘﻐﻴﻴﺭ ﺸﻜل ﺍﺩﺍﺓ ﻋﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ‪،‬ﺘﻐﻴﻴﺭ ﺸﻜل ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﻌﺭﻭﻀﺔ‪ .‬ﻟﺘﻤﻜﻴﻥ‬
‫ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﻨﻔﻴﺫ ﻫﺫﻩ ﺍﻟﻤﻬﺎﻡ ﻴﻭﻓﺭ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺍﻤﻜﺎﻨﻴﺔ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ)‪ (Object‬ﻟﻠﻘﻴﺎﻡ ﺒﻤﺨﺘﻠﻑ‬
‫ﻤﻬﺎﻡ ﺘﻜﻭﻴﻥ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻜﻤﺎ ﻴﻭﻓﺭ ﻟﻐﺔ ﺼﻴﺎﻏﺔ ﻗﻭﻴﺔ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻟﺘﻐﻴﻴﺭ ﻁﺭﻴﻘﺔ ﻋﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻟﺘﺤﻜﻡ ﻓﻰ‬
‫ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ‪ .‬ﻴﻨﺎﻗﺵ ﻫﺫﺍ ﺍﻟﻘﺴﻡ ﻋﻤﻠﻴﺔ ﺍﻟﺘﻔﺎﻋل ﻤﻊ ﺘﺤﺩﺍﺙ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ ﻭﺍﻟﻭﺴﺎﺌل ﺍﻟﻤﺘـﻭﻓﺭﺓ‬
‫ﻟﻠﻘﻴﺎﻡ ﺒﺫﻟﻙ‪.‬‬

‫ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ‬

‫ﻴﺤﺘﻭﻯ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻋﻠﻰ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻟﻔﺌﺎﺕ )‪ (Classes‬ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺘﻜـﻭﻴﻥ ﺍﻟﻜﺎﺌﻨـﺎﺕ ﺍﻟﺨﺘﻠﻔـﺔ‬
‫ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺘﻨﻔﻴﺫ ﺍﻟﻭﻅﺎﺌﻑ ﺍﻟﺘﻰ ﻴﻘﻭﻡ ﺒﻬﺎ‪.‬ﻜﻤﺎ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻟﻐﺔ ﺼﻴﺎﻏﺔ ﻗﻭﻴﺔ ﺘﺴﺘﺨﺩﻡ ﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟـﺼﻴﻎ‬
‫ﺍﻟﻤﺨﺘﻠﻔﺔ‪ .‬ﻭﻋﻥ ﻁﺭﻴﻕ ﺨﺼﺎﺌﺹ ﺍﻟﻜﺎﺌﻨﺎﺕ)‪ (Properties‬ﻭﻁﺭﻗﻬـﺎ)‪ (Methods‬ﺍﻟﺘـﻰ ﺘﺤﺘـﻭﻯ ﻋﻠﻴﻬـﺎ‬
‫ﻭﺍﻻﺤﺩﺍﺙ)‪ (Events‬ﺍﻟﺘﻰ ﺘﺴﺘﺠﻴﺏ ﻟﻬﺎ ﻴﻤﻜﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﺘﻐﻴﻴﺭ ﺨﺼﺎﺌﺼﻬﺎ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‪.‬‬

‫ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ‬

‫ﻫﻨﺎﻙ ﺍﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻏﻴﺭ ﺍﻥ ﺍﻫﻡ ﻫﺫﻩ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﻤﺒـﺭﻤﺞ‬
‫ﻫﻰ ﻜﺎﺌﻥ ‪ ReportDocument‬ﻭﻜﺎﺌﻥ ‪CrystalReportViewer‬‬

‫ﻜﺎﺌﻥ ‪ReportDocument‬‬

‫ﻴﻘﺩﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﺩﻭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﺍﻻﺴﺎﺴﻴﺔ ﻓﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ‪ .‬ﻭﻴﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﻜﺜﻴﺭﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻟﻭﺴـﺎﺌل ﺍﻟﺘـﻰ‬
‫ﺘﺴﻤﺢ ﻟﻨﺎ ﺒﺎﻟﺘﺤﻜﻡ ﻓﻰ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺸﻜل ﻋﺭﻀﻪ ﻤﻥ ﺨﻼل ﻀﺒﻁ ﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻻﺴﺘﺠﺎﺒﺔ ﻟﻼﺤﺩﺍﺙ‪ .‬ﻭﻴﻤﻜﻥ‬
‫ﺍﺴﺘﺨﺩﺍﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻓﻰ ﺍﺠﺭﺍﺀ ﺍﻟﺘﻌﺩﻴﻼﺕ ﺍﻟﻤﺨﺘﻠﻔﺔ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﺜﻡ ﺘﻤﺭﻴﺭ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻰ ﻜـﺎﺌﻥ‬
‫ﺍﺨﺭ ﻫﻭ ﻜﺎﺌﻥ‪ CrystalReportViewer‬ﻟﻌﺭﻀﻪ ﺍﻤﺎﻡ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ‪.‬ﻟﻔﺘﺢ ﻤﻠﻑ ﺘﻘﺭﻴﺭ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻴﻘﺔ‬
‫‪ Load‬ﺍﻭ ﺘﺨﺼﻴﺹ ﺘﻘﺭﻴﺭ ﻨﻭﻋﻰ ﻟﻬﺫﺍ ﺍﻟﻜﺎﺌﻥ‪ .‬ﻭﻟﻜﻰ ﻨﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻴﺠﺏ ﺍﻥ ﺘﻜﻭﻴﻥ ﻤﺭﺠﻊ ﺍﻟﻰ ﻓـﻀﺎﺀ‬
‫ﺍﻻﺴﻤﺎﺀ ‪ CrystalDecisions.CrystalReports.Engine‬ﻭﻴﺘﻡ ﺍﻀﺎﻓﺔ ﻫﺫﺍ ﺍﻟﻤﺭﺠﻊ ﺘﻠﻘﺎﺌﻴﺎ ﻋﻨﺩ ﺍﻀـﺎﻓﺔ‬
‫ﺘﻘﺭﻴﺭ ﺍﻟﻰ ﺍﻟﺘﻁﺒﻴﻕ ﻗﻡ ﺒﺎﺴﺘﻴﺭﺍﺩﻩ‬

‫ﺨﺼﺎﺌﺼﻪ‬
‫ﻴﺤﺘﻭﻯ ‪ ReportDocument‬ﻋﻠﻰ ﺍﻟﻜﺜﻴﺭ ﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻰ ﺘﺴﻤﺢ ﻟﻨﺎ ﺒﺎﻟﺘﺤﻜﻡ ﻓﻰ ﺸﻜل ﻭﺴﻠﻭﻙ ﺍﻟﺘﻘﺎﺭﻴﺭ‪.‬‬
‫ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻫﻡ ﺍﻫﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ ﻭﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ‪:‬‬

‫‪19‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻜﺎﺌﻥ ‪ Database‬ﺘﺘﻴﺢ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻤﻌﻠﻭﻤﺎﺕ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﺤﺘﻭﻯ‬ ‫•‬
‫ﻜﺎﺌﻥ ‪ Database‬ﻋﻠﻰ ﻤﺠﻤﻭﻋﺔ ‪ Tables‬ﺘﺤﺘﻭﻯ ﻫﺫﻩ ﺍﻟﻤﺠﻤﻭﻋﺔ ﻋﻠـﻰ ﻜـل ﻜﺎﺌﻨـﺎﺕ ﺍﻟﺠـﺩﺍﻭل‬
‫ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ‪ .‬ﻭﻴﻭﻓﺭ ﻟﻨﺎ ﻜﺎﺌﻥ ‪ Table‬ﺍﻤﻜﺎﻨﻴﺔ ﻀﺒﻁ ﻤﻌﻠﻭﻤﺎﺕ ﺍﻻﺘﺼﺎل ﻭﺍﻟﺤﺼﻭل ﻋﻠﻴﻬﺎ‬
‫ﻤﻥ ﺨﻼل ﻜﺎﺌﻥ ‪ ConnectionInfo‬ﻜﻤﺎ ﻴﻭﻓﺭ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﻜل ﺍﻟﺤﻘﻭل ﺍﻟﻤﺘﺎﺤﺔ ﻓﻰ ﺍﻟﺠﺩﻭل ﻤﻥ‬
‫ﺨﻼل ﻤﺠﻤﻭﻋﺔ ‪DatabaseFieldDefinitions‬‬
‫ﻜﺎﺌﻥ ‪ DataDefinition‬ﻴﺘﻴﺢ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺍﻟﺤﻘﻭل ﺤﻘﻭل ﺍﻟﻤﻌﺎﻤﻼﺕ ﺤﻘﻭل ﺍﻟﻔﺭﺯ ﺤﻘﻭل‬ ‫•‬
‫ﺍﺴﻤﺎﺀ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺤﻘﻭل ﺍﻟﻤﻠﺨﺼﺎﺕ ﺤﻘﻭل ﺍﻻﺠﻤﺎﻟﻴﺎﺕ ﺍﻟﻤﺘﺤﺭﻜﺔ ﻭﺤﻘﻭل ﺘﻌﺒﻴﺭﺍﺕ ‪ SQL‬ﻭﻴﻤﻜـﻥ‬
‫ﻋﻥ ﻁﺭﻴﻕ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﺍﻟﺘﻰ ﻴﺤﺘﻭﻯ ﻋﻠﻴﻬﺎ ﺍﻟﺘﻘﺭﻴﺭ‬
‫ﻜﺎﺌﻥ ‪ ExportOption‬ﻴﻭﻓﺭ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺒﺎﺴﺘﺨﺭﺍﺝ ﻭﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺘـﺼﺩﻴﺭ‬ ‫•‬
‫ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻟﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺠﻬﺔ ﺍﻟﺘﺼﺩﻴﺭ ﻭﻨﻭﻉ ﺍﻟﺘﺼﺩﻴﺭ‬
‫ﻜﺎﺌﻥ ‪ PrintOption‬ﻴﺤﺘﻭﻯ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻋﻠﻰ ﺍﻟﺨﺼﺎﺌﺹ ﻭﺍﻟﻭﺴﺎﺌل ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ‬ ‫•‬
‫ﻁﺒﺎﻋﺔ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻥ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻰ ﻴﻤﻜﻥ ﻀﺒﻁﻬﺎ‪.‬ﺨﺎﺼﻴﺔ ﺍﺴﻡ ﺍﻟﻁﺎﺒﻌﺔ ﺤﺠﻡ ﺍﻟﻭﺭﻕ ﻭﻫﻭﺍﻤﺵ ﺍﻟﻭﺭﻕ‬
‫ﻜﺎﺌﻥ‪ ReportDefinition‬ﻴﺴﻤﺢ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺒﺎﺴﺘﺨﺭﺍﺝ ﻜل ﺍﻟﻤﻨﺎﻁﻕ ‪،‬ﻜﺎﺌﻨـﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ‪،‬ﻭﺍﻻﻗـﺴﺎﻡ‬ ‫•‬
‫ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ‪.‬ﻴﺘﻴﺢ ﻟﻨﺎ ﺫﻟﻙ ﺍﻤﻜﺎﻨﻴﺔ ﺍﺴﺘﺨﺭﺍﺝ ﻭﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺼﻴﺎﻏﺔ ﻟﺘﻠﻙ ﺍﻟﺒﻨﻭﺩ‬
‫ﻜﺎﺌﻥ ‪ ReportOption‬ﻴﺴﻤﺢ ﻟﻨﺎ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺒﺎﻟﺤﺼﻭل ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺘﻌﻠﻘﺔ ﺒﺨﻴـﺎﺭﺍﺕ ﺨﺎﺼـﺔ‬ ‫•‬
‫ﺒﺎﻟﺘﻘﺭﻴﺭ‬

‫ﻭﻴﺤﺘﻭﻯ ﻜﺎﺌﻥ ‪ ReportDocument‬ﻋﻠﻰ ﺤﺩﺙ ﻭﺤﻴﺩ ﻫﻭ‪ ReportDocument.InnitReport‬ﻴﻘﻊ ﻫﺫﺍ‬


‫ﺍﻟﺤﺩﺙ ﻋﻨﺩ ﻨﺠﺎﺡ ﺘﺤﻤﻴل ﺍﻟﺘﻘﺭﻴﺭ‪.‬‬

‫ﻜﺎﺌﻥ ‪CrystalReportViewer‬‬

‫ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻋﻠﻰ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﻰ ﺘﻤﻜﻨﻨﺎ ﻤﻥ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺸﻜل ﻭﺴﻠﻭﻙ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺍﻫﻡ ﺍﻟﻜﺎﺌﻨـﺎﺕ ﺍﻟﺘـﻰ‬ ‫ﻴﺤﺘﻭﻯ‬
‫ﻋﻠﻴﻬﺎ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﺘﺸﻤل ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻻﺘﻴﺔ‪:‬‬ ‫ﻴﺤﺘﻭﻯ‬
‫ﻜﺎﺌﻥ ‪ TableLogOnInfos‬ﻴﻭﻓﺭ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻤﺠﻤﻭﻋﺔ ‪ TableLogOnInfo‬ﻭﻫـﺫﺍ ﺍﻟﻜـﺎﺌﻥ‬ ‫•‬
‫ﺒﺩﺩﻭﺭﻩ ﻴﻭﻓﺭ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﻼﺯﻤﺔ ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﻭﻀﺒﻁ ﺨﻴﺎﺭﺍﺕ ﺍﻻﺘﺼﺎل ﻤﻊ ﺍﻟﺠﺩﻭل‪ ،‬ﻤﺜـل ﺍﺴـﻡ‬
‫ﺍﻟﺨﺎﺩﻡ‪،‬ﺍﺴﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ‪،‬ﺍﺴﻡ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ‪،‬ﻭﻜﻠﻤﺔ ﺍﻟﻤﺭﻭﺭ‬
‫ﻜﺎﺌﻥ ‪ ParameterFields‬ﻴﻭﻓﺭ ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻤﺠﻤﻭﻋﺔ ‪ ParameterField‬ﻭﺘﺴﻤﺢ ﻟﻨـﺎ ﻫـﺫﻩ‬ ‫•‬
‫ﺍﻟﻤﺠﻤﻭﻋﺔ ﺒﺎﻟﺤﺼﻭل ﻋﻠﻰ ﻤﻌﻠﻭﻤﺎﺕ ﺍﻟﻤﻌﺎﻤﻼﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻀﺒﻁﻬﺎ ﻋﻠﻰ ﺴﺒﻴل ﺍﻟﻤﺜﺎل ﻴﻤﻜﻥ ﻀﺒﻁ‬
‫ﺨﺼﺎﺌﺹ ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺨﻴﺎﺭﺍﺕ ﻭﻗﻴﻡ ﺤﻘﻭل ﺍﻟﻤﻤﺭﺍﺕ ﻭﻀﺒﻁﻬﺎ ﻤﺜل ﺍﻟﻘﻴﻡ ﺍﻟﺤﺎﻟﻴﺔ‪ ،‬ﺍﻟﻘﻴﻡ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ‬
‫ﻭﻨﺹ ﺤﺙ ﺍﻟﻤﺴﺘﺨﺩﻡ‬
‫ﺨﺎﺼﻴﺔ ‪ ReportSource‬ﺘﺴﺘﺨﺩﻡ ﻫﺫﻩ ﺍﻟﺨﺎﺼﻴﺔ ﻟﻀﺒﻁ ﻤﺼﺩﺭ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﻤﻜـﻥ ﺍﻥ ﻴﻜـﻭﻥ ﻫـﺫﺍ‬ ‫•‬
‫ﺍﻟﻤﺼﺩﺭ ﻜﺎﺌﻥ ‪ ReportDocument‬ﺍﻭ ﺴﻠﺴﻠﺔ ﻨﺼﻴﺔ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻤﻭﻗﻊ ﺍﻟﻤﻠﻑ ﺍﻟﺨﺎﺹ ﺒﺎﻟﺘﻘﺭﻴﺭ‬
‫ﺍﻭ ﻜﺎﺌﻥ ﺘﻘﺭﻴﺭ‬

‫ﻭﻴﺤﺘﻭﻯ ﻫﺫﺍ ﺍﻟﻜﺎﺌﻥ ﻋﻠﻰ ﻋﺩﺩ ﻤﻥ ﺍﻻﺤﺩﺍﺙ ﻁﺒﻘﺎ ﻟﻠﺘﻔﺼﻴل ﺍﻟﺘﺎﻟﻰ‪:‬‬


‫• ﺤﺩﺙ ‪ CrystalReportViewer.Drill‬ﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺩﺙ ﻋﻨﺩ ﺍﻟﺘﻨﻘﻴﺏ ﻋﻥ ﺍﻟﻤﻌﻠﻭﻤـﺎﺕ ﺒـﺎﻟﺘﻘﺭﻴﺭ‬
‫ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻭﻀﺢ ﻜﻴﻔﻴﺔ ﺭﺒﻁ ﺍﺴﻡ ﺍﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﺍﻟﺘﻨﻘﻴﺏ ﻤﻊ ﺍﺩﺍﺓ ‪Label‬‬

‫_‪Private Sub CrViewer_Drill(ByVal source As Object, ByVal e As‬‬


‫‪CrystalDecisions.Windows.Forms.DrillEventArgs) Handles CrViewer.Drill‬‬
‫‪Label1.Text = e.CurrentGroupName‬‬
‫‪End Sub‬‬
‫ﺤﺩﺙ ‪ CrystalReportViewer.DrillDownSubreport‬ﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺙ ﻋﻨﺩ ﺍﻟﺘﻨﻘﻴـﺏ ﻓـﻰ‬ ‫•‬
‫ﺘﻘﺭﻴﺭ ﻓﺭﻋﻰ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻭﻀﻊ ﻀﺒﻁ ﻨﺹ ﺍﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ ﻋﻠﻰ ﺍﺴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻔﺭﻋﻰ‬

‫‪20‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫‪Private Sub CrViewer_DrillDownSubreport(ByVal source As Object, ByVal‬‬


‫‪e As CrystalDecisions.Windows.Forms.DrillSubreportEventArgs) Handles‬‬
‫‪CrViewer.DrillDownSubreport‬‬
‫‪Label1.Text = e.CurrentSubreportName‬‬
‫‪End SuB‬‬
‫* ﺤﺩﺙ ‪ CrystalReportViewer.HandleExecption‬ﻴﻘﻊ ﻋﻨﺩ ﺤﺩﻭﺙ ﺨﻁﺄ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻘﻭﻡ ﺒﻌﺭﺽ‬
‫ﺭﺴﺎﻟﺔ ﺨﻁﺄ ﻋﻨﺩ ﺤﺩﻭﺜﺔ‬

‫‪Private Sub CrViewer_HandleException(ByVal source As Object, ByVal e‬‬


‫‪As CrystalDecisions.Windows.Forms.ExceptionEventArgs) Handles‬‬
‫‪CrViewer.HandleException‬‬
‫)‪MessageBox.Show(e.Exception.ToString‬‬
‫‪End Sub‬‬

‫ﺤﺩﺙ ‪ CrysatlReportViewer.Navigate‬ﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺩﺙ ﻋﻨﺩﻤﺎ ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﻟﺘﺠﻭل ﻓﻰ‬ ‫•‬
‫ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻌﺭﺽ ﺭﻗﻡ ﺍﻟﺼﻔﺤﺔ ﻋﻠﻰ ﺍﺩﺍﺓ ﺍﻟﻌﻨﻭﺍﻥ‬

‫‪Private Sub CrViewer_Navigate(ByVal source As Object, ByVal e As‬‬


‫‪CrystalDecisions.Windows.Forms.NavigateEventArgs) Handles‬‬
‫‪CrViewer.Navigate‬‬
‫‪Label1.Text = e.NewPageNumber‬‬
‫‪End Sub‬‬
‫ﺤﺩﺙ ‪ CrystalReportViewer.ReportRefresh‬ﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺩﺙ ﻋﻨﺩ ﺘﺠﺩﻴﺩ ﻤﻌﻠﻭﻤﺎﺕ‬ ‫•‬
‫ﺍﻟﺘﻘﺭﻴﺭ‬
‫ﺤﺩﺙ ‪ CrystalReportViewer.Search‬ﻭﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺩﺙ ﻋﻨﺩ ﺍﻟﺒﺤﺙ ﻋﻥ ﻨﺹ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ‬ ‫•‬
‫ﺤﺩﺙ ‪ CrystalReportViewer.ViewZoom‬ﻴﻘﻊ ﻫﺫﺍ ﺍﻟﺤﺩﺙ ﻋﻨﺩ ﺘﻐﻴﻴﺭ ﻤﻌﺎﻤل ﺍﻟﺘﻜﺒﻴﻴﺭ‬ ‫•‬
‫ﻭﺍﻟﺘﺼﻐﻴﺭ‬

‫ﻟﻐﺔ ﺍﻟﺼﻴﺎﻏﺔ‬

‫ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ‪ Crstal Report‬ﺍﻭ ﻟﻐﺔ ‪ Basic‬ﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻎ )‪ (Formulas‬ﻭﻴﻤﻜﻥ ﻜﺘﺎﺒﺔ ﺍﻟﺼﻴﻎ‬
‫ﺍﻟﻤﻜﺘﻭﺒﺔ ﺒﻠﻐﺔ ﻜﺭﻴﺴﺘﺎل ﺒﺎﺴﺘﺨﺩﺍﻡ ﻟﻐﺔ ﺒﻴﺴﻙ ﺍﻭ ﺍﻟﻌﻜﺱ ‪.‬ﻭﺘﻤﺎﺜل ﻟﻐﺔ ‪ Basic‬ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ‪crystal‬‬
‫‪ report‬ﻟﻐﺔ ‪ Visual Basic‬ﺍﻻ ﺍﻨﻬﺎ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﺒﻌﺽ ﺍﻻﻀﺎﻓﺎﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﺘﻘﺎﺭﻴﺭ ﻭﺒﻤﺎ ﺍﻨﻨﺎ ﺍﻜﺜﺭ ﺍﻟﻔﺔ‬
‫ﻤﻊ ﻟﻐﺔ ‪ Visual Basic‬ﻟﺫﺍ ﺴﻴﺘﻡ ﺍﻴﻀﺎﺡ ﻟﻐﺔ ﺒﻴﺴﻙ ﻓﻘﻁ‬

‫ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ﺒﻴﺴﻙ‬

‫ﻴﻤﻜﻥ ﺍﻥ ﺘﻌﻤل ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﺘﻰ ﺘﺴﺘﺨﺩﻡ ﻜﻭﺩ ﺒﻴﺴﻙ ﻓﻰ ﺘﻜﻭﻴﻥ ﺍﻟﺼﻴﻎ ﻋﻠﻰ ﺍﻯ ﺠﻬﺎﺯ ﻜﻤﺒﻴﻭﺘﺭ ﻴﻌﻤل ﻋﻠﻴﻪ‬
‫ﻜﺭﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻭﻴﺘﻤﻴﺯ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ﺒﻴﺴﻙ ﺒﺩﻻ ﻤﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻜﻭﺩ ﻜﺭﻴﺴﺘﺎل ﻓﻰ ﺍﻋﺩﺍﺩ ﺼﻴﻎ ﻜﺭﻴﺴﺘﺎل‬
‫ﺭﻴﺒﻭﺭﺕ ﺒﺎﻨﻪ ﻻ ﻴﺘﻁﻠﺏ ﺘﻭﺯﻴﻊ ﻤﻠﻔﺎﺕ ﺍﻀﺎﻓﻴﺔ ﻤﻊ ﺍﻟﺘﻁﺒﻴﻘﺎﺕ ﺍﻟﺘﻰ ﺘﺴﺘﺨﺩﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﻫﺫﻩ ﺒﻌﺽ ﺍﻟﻤﻴﺯﺍﺕ ﻟﻠﻐﺔ‬
‫ﺒﻴﺴﻙ‪:‬‬
‫• ﺘﺴﺘﺨﺩﻡ ﺘﻘﺭﻴﺒﺎ ﻨﻔﺱ ﺍﻟﺩﻭﺍل ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ‪ Visual Basic‬ﻴﺸﻤل ﺫﻟﻙ ﺩﻭﺍل ﺍﻟﻨﺼﻭﺹ ﻤﺜل ﺩﺍﻟﺔ‬
‫‪،Len‬ﺩﺍﻟﻪ‪ Mid‬ﻭﻏﻴﺭﻫﺎ‪ .‬ﻜﻤﺎ ﺘﺸﻤل ﺍﻟﺩﻭﺍل ﺍﻟﺤﺴﺎﺒﻴﺔ ﻭﺍﻟﻤﺎﻟﻴﺔ ﻭﺩﻭﺍل ﺍﻟﺘﺎﺭﻴﺦ‬
‫• ﺘﺩﻋﻡ ﻤﻌﻅﻡ ﺍﻟﻌﻭﺍﻤل ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻤﺜل ﻋﺎﻤل ﺭﺒﻁ ﺍﻟﺴﻼﺴل ﺍﻟﻨﺼﻴﺔ )&( ﻭﺼﻴﻎ‬
‫ﺍﻟﺘﺎﺭﻴﺦ‬
‫• ﺘﺴﺘﺨﺩﻡ ﻤﻌﻅﻡ ﺍﻟﻌﺒﺎﺭﺍﺕ ﻭﻫﻴﺎﻜل ﺍﻟﺘﺤﻜﻡ ﺍﻟﻤﺴﺘﺨﺩﻤﺔ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ ﻤﺜل ‪Do ،Do Until،Select‬‬
‫‪For\Next،While‬‬
‫• ﺘﺴﺘﺨﺩﻡ ﻨﻔﺱ ﻜﻭﺩ ﺍﻟﻤﻼﺤﻅﺎﺕ ﻭﻭﺼل ﺍﻟﺴﻁﻭﺭ ﻟﻠﻜﻭﺩ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺯﻙ‬

‫‪21‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﻨﺘﻴﺠﺔ ﺍﻟﺼﻴﻐﺔ‬

‫ﻨﺘﻴﺠﺔ ﺍﻟﺼﻴﻐﺔ ﻫﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﺘﻰ ﻴﺘﻡ ﻁﺒﺎﻋﺘﻬﺎ ﻋﻨﺩ ﻭﻀﻊ ﺍﻟﺼﻴﻐﺔ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﺘﺴﻤﻰ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻌﺎﺌﺩﺓ ﻤﻥ‬
‫ﺍﻟﺼﻴﻐﺔ‪ .‬ﻭﻴﺠﺏ ﺍﻥ ﺘﻌﻴﺩ ﺍﻯ ﺼﻴﻐﺔ ﻓﻰ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻗﻴﻤﺔ ﻤﻌﻴﻨﺔ ﻴﻘﻭﻡ ﻜﻭﺩ ﺒﻴﺯﻙ ﺒﺘﻨﻔﻴﺫ ﺫﻟﻙ ﻋﻥ ﻁﺭﻴﻕ‬
‫ﻀﺒﻁ ﻗﻴﻤﺔ ﻤﺘﻐﻴﺭ ﺨﺎﺹ ﻴﺴﻤﻰ ‪ 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‬‬

‫ﻭﺘﻘﻭﻡ ﺍﻟﺼﻴﻐﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺒﺤﺴﺎﺏ ﺍﺠﻤﺎﻟﻰ ﻗﻴﻤﺔ ﺍﻟﺒﻀﺎﻋﺔ ﺍﻟﻤﻁﻠﻭﺒﺔ‪:‬‬


‫_ * }‪Formula={Orders Detail.Unit Price‬‬
‫}‪{ Order Detial.Quantity‬‬

‫ﻭﺘﻘﻭﻡ ﺍﻟﺼﻴﻐﺔ ﺍﻟﺘﺎﻟﻴﺔ ﺒﺤﺴﺎﺏ ﺴﻌﺭ ﺍﻟﺒﻴﻊ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻨﻪ ‪ %80‬ﻤﻥ ﺍﻟﺴﻌﺭ ﺍﻻﺼﻠﻰ‬
‫‪Formula={Order Detail.Unit Price} * 0.80‬‬

‫ﺍﻟﻌﺒﺎﺭﺍﺕ‬

‫ﻴﺘﻜﻭﻥ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻯ ﺘﺘﻜﻭﻥ ﻤﻨﻪ ﺍﻟﺼﻴﻎ ﻤﻥ ﺴﻠﺴﻠﺔ ﻤﻥ ﺍﻟﻌﺒﺎﺭﺍﺕ )‪ (statements‬ﻭﻴﺠﺏ ﻗﺼل ﻜل ﻋﺒﺎﺭﺓ ﻋﻥ‬
‫ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﺴﺎﺒﻘﺔ ﺒﺴﻁﺭ ﺠﺩﻴﺩ ﺍﻭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺭﻤﺯ ﺍﻟﻭﻗﻑ ﺍﻻﺴﺘﺩﺭﺍﻜﻰ )‪ (:‬ﻭﻤﻥ ﺍﻟﻤﻌﺘﺎﺩ ﻭﻀﻊ ﻜل ﻋﺒﺎﺭﺓ ﻓﻰ ﺴﻁﺭ‬
‫ﻤﻨﻔﺼل ﻭﻴﻤﻜﻥ ﺍﺴﺘﻤﺭﺍﺭ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻟﻰ ﺍﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻰ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺸﺭﻁﺔ ﺍﺴﻔل ﺍﻟﺴﻁﺭ ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻤﺜل ﻤﻥ ﺍﻟﻌﺒﺎﺭﺍﺕ‪:‬‬

‫‪22‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫‪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‬‬

‫ﻭﻟﻠﺤﺼﻭل ﻋﻠﻰ ﻨﻬﺎﻴﺎﺕ ﺍﻟﻨﻁﺎﻕ ﻨﺴﺘﺨﺩﻡ ﺩﺍﻟﺔ ‪ Maximum‬ﺍﻭ ﺩﺍﻟﺔ ‪Minimum‬‬


‫)‪Formula=Maximum(2 To 10‬‬
‫ﺍﻟﻤﺼﻔﻭﻓﺎﺕ‬

‫ﺍﻟﻤﺼﻔﻭﻓﺎﺕ)‪ (Arrays‬ﻫﻰ ﻗﻭﺍﺌﻡ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻗﻴﻡ ﻤﻥ ﻨﻔﺱ ﺍﻟﻨﻭﻉ‪ .‬ﻭﻴﻁﻠﻕ ﻋﻠﻰ ﻫﺫﻩ ﺍﻟﻘﻴﻡ ﻋﻨﺎﺼﺭ ﺍﻟﻤﺼﻔﻭﻓﺔ‬
‫ﻭﻴﻤﻜﻥ ﺍﻥ ﺘﻜﻭﻥ ﻗﻴﻡ ﺍﻟﻌﻨﺎﺼﺭ ﻤﻥ ﺍﻨﻭﺍﻉ ﺒﺴﻴﻁﺔ ﺍﻭ ﻤﻥ ﻨﻭﻉ ﻨﻁﺎﻕ ﺒﻴﺎﻨﺎﺕ ﻭﻨﻘﻭﻡ ﺒﺘﻜﻭﻴﻥ ﺍﻟﻤﺼﻔﻭﻓﺔ ﻋﻥ ﻁﺭﻴﻕ‬

‫‪23‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺩﺍﻟﺔ ‪ Array‬ﻭﺘﻜﻭﻥ ﺍﻟﻤﺼﻔﻭﻓﺎﺕ ﺍﻜﺜﺭ ﻓﺎﺌﺩﺓ ﻋﻨﺩﻤﺎ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﻤﺘﻐﻴﺭﺍﺕ ﺒﺴﺒﺏ ﺘﻭﻓﺭ ﺍﻤﻜﺎﻨﻴﺔ‬
‫ﺘﻐﻴﻴﺭ ﻗﻴﻡ ﺍﻟﻌﻨﺎﺼﺭ ﻓﻰ ﺘﻠﻙ ﺍﻟﻤﺼﻔﻭﻓﺎﺕ‪ .‬ﻓﻴﻤﺎ ﻴﻠﻰ ﺍﻤﺜﻠﺔ ﺘﻭﻀﺢ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺼﻔﻭﻓﺎﺕ ﻓﻰ ﺍﻟﺼﻴﻎ‪.‬‬
‫ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﻭﻀﺢ ﺘﻜﻭﻴﻥ ﻤﺼﻔﻭﻓﺔ ﻤﻥ ﺜﻼﺙ ﻗﻴﻡ ﺜﺎﺒﺘﻪ‬
‫)‪Array(10,5,20‬‬
‫ﻭﻫﻨﺎ ﺍﻟﻌﻨﺼﺭ ﺍﻻﻭل ﻓﻰ ﺍﻟﻤﺼﻔﻭﻓﻪ ﻴﻜﻭﻥ ﻤﻔﻬﺭﺴﻪ ‪ 1‬ﻭﻟﻴﺱ ‪ 0‬ﻜﻤﺎ ﻫﻭ ﺍﻟﻤﻌﺘﺎﺩ ﻓﻰ ‪vb.net‬‬
‫ﻜﻤﺎ ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻨﻁﺎﻕ ﻗﻴﻡ ﻻﺴﺘﺨﺭﺍﺝ ﻋﻨﺎﺼﺭ ﺍﻟﻤﺼﻘﻭﻗﺔ‪ .‬ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ ﻴﺴﺘﺨﺩﻡ ﻻﺴﺘﺨﺭﺍﺝ ﺍﻟﻤﺼﻔﻭﻓﺔ‬
‫)‪ (5,20‬ﻤﻥ ﺍﻟﻤﺼﻔﻭﻓﺔ )‪(10,5,20‬‬
‫)‪Array(10,5,20)(2 To 3‬‬

‫ﻫﻴﺎﻜل ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺘﻨﻔﻴﺫ ﺍﻟﻜﻭﺩ‬


‫ﻋﻨﺩﻤﺎ ﻻ ﺘﺤﺘﻭﻯ ﺍﻟﺼﻴﻐﺔ ﻋﻠﻰ ﻫﻴﺎﻜل ﺘﺤﻜﻡ ﻴﺘﻡ ﺘﻨﻔﻴﺫ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺒﺩﺍﺨﻠﻬﺎ ﺒﺎﻟﺘﺭﺘﻴﺏ ﻤﻥ ﺍﻟﻌﺒﺎﺭﺓ ﺍﻻﻭﻟﻰ ﺍﻟﻰ‬
‫ﺍﻻﺨﻴﺭﺓ ‪ .‬ﺍﺴﺘﺨﺩﺍﻡ ﻫﻴﺎﻜل ﺍﻟﺘﺤﻜﻡ ﻴﻤﻜﻜﻨﺎ ﻤﻥ ﺘﻐﻴﻴﺭ ﺘﻨﻔﻴﺫ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﻭﺍﻟﻘﻔﺯ ﻓﻭﻕ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺒﺩﻭﻥ ﺘﻨﻔﻴﺫ ﻭﻴﺩﻋﻡ‬
‫ﺒﻴﺴﻙ ﻓﻰ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻤﻌﻅﻡ ﻫﻴﺎﻜل ﺍﻟﺘﺤﻜﻡ ﺍﻟﺘﻰ ﺘﺴﺘﺨﺩﻡ ﻓﻰ ﻓﻴﺠﻭﺍل ﺒﻴﺴﻙ‬

‫ﺍﻟﺘﻔﺎﻋل ﻤﻊ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ‬
‫ﻴﺘﻁﻠﺏ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﺜﻨﺎﺀ ﺍﻟﺘﺸﻐﻴل ﺍﻀﺎﻓﺔ ﻜﻭﺩ ﺍﻟﻰ ﺍﻟﺘﻁﺒﻴﻕ ﻴﺩﻋﻡ ﺍﺩﺨﺎﻻﺕ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻋﻥ ﻁﺭﻴﻕ‬
‫ﺍﺴﺘﺨﺩﺍﻡ ﻜﺎﺌﻨﺎﺕ ﻤﻭﻟﺩ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻭ ﻜﺎﺌﻥ ﻤﺸﺎﻫﺩﺓ ﺘﻘﺎﺭﻴﺭ ﺍﻟﻭﻴﻨﺩﻭﺯ ﻭﻴﻤﻜﻥ ﺘﺩﻋﻴﻡ ﻫﺫﻩ ﺍﻻﺩﺨﺎﻻﺕ ﻓﻰ ﺘﻁﺒﻴﻕ‬
‫ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻁﺭﻕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫• ﺘﻜﻭﻴﻥ ﺍﺠﺭﺍﺀﺍﺕ ﻤﻌﺎﻟﺠﺔ ﺍﻻﺤﺩﺍﺙ ﺍﻟﻰ ﺘﻘﻊ ﺍﺜﻨﺎﺀ ﺘﻌﺎﻤل ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻊ ﻤﻊ ﺍﺩﺍﺓ ﻤﺸﺎﻫﺩﺓ ﻨﻤﺎﺫﺝ‬
‫ﺍﻟﻭﻴﻨﺩﻭﺯ)‪(crystal report viewer‬‬
‫• ﺘﻜﻭﻴﻥ ﺍﺠﺭﺍﺀﺍﺕ ﻤﻌﺎﻟﺠﺔ ﺍﻻﺤﺩﺍﺙ ﺍﻟﺘﻰ ﺘﻘﻊ ﺍﺜﻨﺎﺀ ﻗﻴﺎﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻴﺎﻟﺘﻌﺎﻤل ﻤﻊ ﻤﻊ ﺍﺩﻭﺍﺕ ﺍﺨﺭﻯ ﻋﻠﻰ‬
‫ﻨﻤﻭﺫﺝ ﻭﻴﻨﺩﻭﺯ‬

‫ﺘﻌﺩﻴل ﺍﺩﺍﺓ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺘﻘﺎﺭﻴﺭ‬


‫ﻴﺩﻋﻡ ﺘﺼﻨﻴﻑ ﺍﺩﺍﺓ ﻤﺸﺎﻫﺩﺓ ﺘﻘﺎﺭﻴﺭ ﻋﻠﻰ ﻨﻤﺎﺫﺝ ﻭﻴﻨﺩﻭﺯ ﺨﻴﺎﺭﺍﺕ ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﻁﺭﻴﻘﺔ ﻋﺭﺽ ﻫﺫﻩ ﺍﻻﺩﺍﺓ ﻭﻗﺕ‬
‫ﺍﻟﺘﺸﻐﻴل ﻭﺘﺸﻤل ﻋﻤﻠﻴﺎﺕ ﺍﻟﺘﺤﻜﻡ ﺍﻅﻬﺎﺭ ﻭﺤﺠﺏ ﺸﺭﻴﻁ ﺍﻻﺩﻭﺍﺕ ‪ ToolBar‬ﻭﺍﻅﻬﺎﺭ ﻭﺤﺠﺏ ﺸﺠﺭﺓ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ‬
‫‪ Group Tree‬ﻭﻴﺘﻡ ﺫﻟﻙ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺨﺎﺼﻴﺘﻴﻥ ‪ DisplayToolBar‬ﻭ‪ DisplayGeoupTree‬ﻋﻠﻰ‬
‫ﺍﻟﺘﻭﺍﻟﻰ‬
‫‪CrViewer.DisplayGroupTree = True‬‬
‫‪CrViewer.DisplayToolbar = False‬‬

‫ﺘﻌﺩﻴل ﺍﻁﻘﻡ ﺍﻟﺤﺭﻭﻑ ﻭﺍﻻﻟﻭﺍﻥ‬


‫ﻴﺴﻤﺢ ﻟﻨﺎ ﻤﻭﻟﺩ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﺒﺎﻀﺎﻓﺔ ﻟﻭﻥ ﻭﺍﻁﻘﻡ ﺤﺭﻭﻑ ﺨﺎﺼﺔ ﺍﻟﻰ ﺍﻟﺤﻘﻭل ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻴﺴﺘﻴﺢ ﻟﻨﺎ ﺫﻟﻙ‬
‫ﻤﻥ ﺍﻟﺘﺭﻜﻴﺯ ﻋﻠﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻬﺎﻤﺔ ﻭﺘﻜﻭﻴﻥ ﺘﻘﺎﺭﻴﺭ ﻤﺤﺘﺭﻓﺔ ﻭﻴﻤﻜﻥ ﻟﻠﻤﺴﺘﺨﺩﻡ ﺘﻌﺩﻴل ﺍﻟﺘﻘﺭﻴﺭ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‬
‫ﺒﺘﻐﻴﻴﺭ ﻫﺫﻩ ﺍﻟﻀﻭﺍﺒﻁ ﻟﺘﻐﻴﻴﺭ ﺍﻟﻭﺍﻥ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‪:‬‬
‫‪ -1‬ﻨﻜﻭﻥ ﺘﻘﺭﻴﺭ ﻭﻨﻀﻴﻑ ﺼﻴﻐﺔ ﺍﻟﻰ ﻤﻘﺩﻤﺔ ﺍﻟﺘﻘﺭﻴﺭ‬
‫‪ -2‬ﻨﺭﺒﻁ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻊ ﺍﺩﺍﺓ ‪viewer‬‬
‫‪ -3‬ﻨﻀﻴﻑ ﺍﺩﺍﺓ ‪ button‬ﺍﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺤﻴﺙ ﻴﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﺯﺭ ﻓﻰ ﺘﻐﻴﻴﺭ ﻟﻭﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ‬
‫‪ -4‬ﻓﻰ ﺍﻟﺤﺩﺙ ‪ Click‬ﻨﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ‬

‫‪Dim report As ReportDocument = New ReportDocument‬‬


‫‪Dim section As Section‬‬
‫‪Dim fieldObject As FieldObject‬‬
‫‪Dim fieldFormat As FieldFormat‬‬
‫)"‪report.Load("c:\myreport.rpt‬‬
‫)"‪section = report.ReportDefinition.Sections.Item("section3‬‬
‫= ‪If section.ReportObjects("filed1").Kind‬‬
‫‪CrystalDecisions.[Shared].ReportObjectKind.FieldObject Then‬‬
‫)"‪fieldObject = section.ReportObjects("field1‬‬
‫‪fieldFormat = fieldObject.FieldFormat‬‬

‫‪24‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


SOLO.NET@ARABTEAM2000.COM Learn Crystal Reports

fieldObject.Color = Color.Red

End If

CrViewer.Refresh()

‫ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺘﻘﺩﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬


‫ﻴﻤﻜﻥ ﺍﻟﺴﻤﺎﺡ ﻟﻠﻤﺴﺘﺨﺩﻡ ﺒﺎﻫﺘﻴﺎﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﺘﻌﺭﺽ ﻭﺍﺨﺘﻴﺎﺭ ﻜﻴﻔﻴﺔ ﻋﺭﻀﻬﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻤﺭﺭﺍﺕ ﺍﻭ ﺼﻴﻎ‬
‫ﺍﻻﺨﺘﻴﺎﺭ ﻟﺘﻜﻭﻴﻥ ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻭﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ‬

‫( ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‬Parameter Fields)‫ﺍﻟﺘﺤﻜﻡ ﻓﻰ ﺤﻘﻭل ﺍﻟﻤﻤﺭﺍﺕ‬

‫ﻴﻤﻜﻥ ﺘﺩﻋﻴﻡ ﺍﺩﺨﺎﻻﺕ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻤﺭﺍﺕ ﻓﻰ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻭﺘﺴﺘﺨﺩﻡ ﺍﻟﻤﻤﺭﺍﺕ ﻻﻏﺭﺍﺽ ﻤﺘﻨﻭﻋﺔ‬
:‫ﻤﻥ ﺍﻤﺜﻠﺔ ﻫﺫﻩ ﺍﻻﻏﺭﺍﺽ‬
‫• ﺒﻨﺎﺀ ﺍﻟﻤﻤﺭ ﻋﻠﻰ ﺍﺴﺎﺱ ﺤﻘل ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﺜﻡ ﺘﻤﻜﻴﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﺤﺩﻴﺩ ﻗﻴﻡ ﻫﺫﺍ ﺍﻟﺤﻘل ﺍﻟﺘﻰ ﻴﺘﻡ‬
‫ﻋﻠﻰ ﺍﺴﺎﺴﻬﺎ ﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ‬
‫• ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﺍﻟﻤﻤﺭﺭﺍﺕ ﻟﺘﻤﻜﻴﻥ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﺸﺭﻭﻁ ﻋﻠﻰ ﺍﻟﺘﻘﺭﻴﺭ‬
‫• ﺘﺭﺘﻴﺏ ﺍﻟﻔﺭﺯ‬

‫ﻴﻭﻀﺢ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻜﻴﻔﻴﺔ ﻀﺒﻁ ﻗﻴﻡ ﺤﻘل ﻤﻤﺭﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل ﻭﻴﺸﺭﺡ ﻜﻴﻔﻴﺔ ﻀﺒﻁ‬
‫ﻤﻤﺭﺭﻴﻥ ﻤﺨﺘﻠﻔﻴﻥ ﺍﻟﻤﻤﺭﺭ ﺍﻻﻭل ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻗﻴﻡ ﻓﺭﺩﻴﺔ ﻤﺘﻌﺩﺩﺓ ﻭﺍﻟﻤﻤﺭ ﺍﻟﺜﺎﻥ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻨﻁﺎﻕ ﻤﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ‬

Dim paramFields As New CrystalDecisions.Shared.ParameterFields


Dim paramField As New CrystalDecisions.Shared.ParameterField
Dim discreteVal As New
CrystalDecisions.Shared.ParameterDiscreteValue
Dim rangeVal As New
CrystalDecisions.Shared.ParameterRangeValue

paramField.ParameterFieldName = "Customer Name"


discreteVal.Value = "AIC Childrens"
paramField.CurrentValues.Add(discreteVal)

discreteVal = New
CrystalDecisions.Shared.ParameterDiscreteValue
discreteVal.Value = "Aruba Sport"
paramField.CurrentValues.Add(discreteVal)

paramFields.Add(paramField)

paramField = New CrystalDecisions.Shared.ParameterField

paramField.ParameterFieldName = "Customer ID"

rangeVal.StartValue = 42
rangeVal.EndValue = 72
paramField.CurrentValues.Add(rangeVal)

paramFields.Add(paramField)

CrViewer.ParameterFieldInfo = paramFields
CrViewer.ReportSource = "c:\my_report.rpt"

25

PDF created with pdfFactory trial version www.pdffactory.com


‫‪SOLO.NET@ARABTEAM2000.COM‬‬ ‫‪Learn Crystal Reports‬‬

‫ﺘﻌﺩﻴل ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‬


‫ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺼﻴﻎ ﺍﻻﺨﺘﻴﺎﺭ ﻟﻔﺭﺯ ﺍﻟﺴﺠﻼﺕ ﺍﻟﺘﻰ ﻨﺭﻴﺩ ﺍﻥ ﻴﺸﺘﻤل ﻋﻠﻴﻬﺎ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﻤﻜﻥ ﺍﻴﻀﺎ ﺘﺤﺩﻴﺩ ﺤﻘـﻭل‬
‫ﻟﻼﺴﺘﺨﺩﺍﻡ ﻓﻰ ﺘﻭﺯﻴﻊ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﻠﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻭﻓﺭﺯ ﻫﺫﻩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻴﻤﻜﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﻌـﺩﻴل‬
‫ﺼﻴﻐﺔ ﺍﻻﺨﺘﻴﺎﺭ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‪ .‬ﻭﻴﻤﻜﻥ ﺍﻥ ﻴﺘﻡ ﺫﻟﻙ ﻤﻥ ﺨﻼل ﺍﺩﺍﺓ ‪ viewer‬ﺍﻭ ﻤﻥ ﺨﻼل ﻤﺤﺭﻙ ﺍﻟﺘﻘﺭﻴﺭ‬

‫ﻟﺘﻌﺩﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‪:‬‬


‫‪ -1‬ﻨﻜﻭﻥ ﺘﻘﺭﻴﺭﺍ ﻴﺴﺘﺨﺩﻡ ﺠﺩﻭل ﺍﻟﻌﻤﻼﺀ ﻓﻰ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﻌﻴﻨﺔ‪xtreme.mdb‬‬
‫‪ -2‬ﻨﻀﻴﻑ ﺼﻴﻌﺔ ﺍﺨﺘﻴﺎﺭ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ‬

‫‪{Customer.Last Year's Sales} > 11000.00‬‬


‫‪ -3‬ﻨﻀﻴﻑ ﺍﺩﺍﺓ ‪ viewer‬ﺍﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ‬
‫‪ -4‬ﻨﺭﺒﻁ ﺍﻟﺘﻘﺭﻴﺭ ﺒﻼﺩﺍﺓ‬
‫‪ -5‬ﻨﻀﻴﻑ ﺍﺩﺍﺘﻰ ‪ Text Box‬ﻭ ‪ Button‬ﺍﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ‬
‫‪ -6‬ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﺩﺨﺎل ﺍﻟﺤﺩ ﺍﻻﺩﻨﻰ ﻟﻠﻘﻴﻤﺔ ﺍﻟﺘﻰ ﻋﺭﻀﻬﺎ ﺒﺎﻟﻨﺴﺒﺔ ﻟﻤﺒﻴﻌﺎﺕ ﺍﻟﺴﻨﺔ ﺍﻟﺴﺎﺒﻘﺔ ﻓﻰ ﻤﺭﺒﻊ‬
‫ﺍﻟﻨﺹ ﺜﻡ ﻴﻨﻘﺭ ﻋﻠﻰ ﺍﻟﺯﺭ ﻻﺩﺨﺎل ﺫﻟﻙ ﺍﻟﻰ ﺍﻟﻨﻅﺎﻡ‬
‫‪ -7‬ﻨﻜﺘﺏ ﺍﻟﻜﻭﺩ ﻓﻰ ﺍﻟﺤﺩﺙ ‪ click‬ﻟﻠﺯﺭ‬

‫ﻨﻤﻤﺭ ﺼﻴﻐﺔ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﻰ ﺍﺩﺍﻯ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ‪:‬‬
‫‪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‬‬

‫ﺘﻌﺩﻴل ﺤﻘﻭل ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‬


‫ﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﺍﻟﻤﺠﻤﻭﻋﺎﺕ ﻟﺘﻘﺴﻴﻡ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻰ ﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﺸﺭﻭﻁ ﺍﻟﻤﻭﻀـﻭﻋﺔ‪.‬‬
‫ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻴﻤﻜﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﻌﺩﻴل ﺤﻘل ﺍﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﺨﺎﺹ ﺒﺎﻟﺘﻘﺭﻴﺭ ﻭﻴﻔﺘﺭﺽ ﻭﺠﻭﺩ ﺘﻘﺭﻴﺭ ﺒﻪ ﺍﻟﻌﻨﺎﺼﺭ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫• ﺤﻘــﻭل ‪ Customer.Region،Customer.Country، Customer.City‬ﻓــﻰ ﺘﻘــ‬
‫ـﺴﻡ‬
‫ﺍﻟﺘﻔﺼﻴﻼﺕ‪.‬‬
‫• ﻭﻴﺘﺨﺩﻡ ﺍﻟﺘﻁﺒﻴﻕ ﺍﺩﺍﺓ ‪ ComboBox‬ﻟﺘﺤﺩﻴﺩ ﺍﻻﺨﺘﻴﺎﺭﺍﺕ ﺍﻟﺨﺎﺼﺔ ﺒﺎﻟﻤﺠﻤﻭﻋﺔ‬
‫• ﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﻤﺠﻤﻭﻋﺎﺕ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻥ ﻁﺭﻴﻕ ﺍﻀﺎﻓﺔ ﻜﻭﺩ ﺍﻟﻰ ﺍﺩﺍﺓ ‪Button‬‬

‫ﻟﺘﻜﻭﻴﻥ ﻤﺠﻤﻭﻋﺎﺕ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‪:‬‬


‫‪ -1‬ﻨﻜﻭﻥ ﺘﻘﺭﻴﺭ ﻴﺴﺘﺨﺩﻡ ﺠﺩﻭل ‪ Customer‬ﻓﻰ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ‪ xtreme.mdb‬ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺴﺎﺒﻘﺔ‬
‫ﺘﺠﺩﻫﺎ ﻓﻰ ﻫﺫﺍ ﺍﻟﻤﺴﺎﺭ ﻋﻠﻰ ﺠﻬـﺎﺯﻙ ‪XXX:\Program Files\Microsoft Visual Studio‬‬
‫‪ .NET 2003\Crystal Reports\Samples\Database‬ﺤﻴﺙ ‪ XXX‬ﻫﻭ ﺍﻟﻘـﺭﺹ ﺍﻟﻤﺜﺒـﺕ‬
‫ﻋﻠﻴﻪ ‪VS.NET2003‬‬
‫‪ -2‬ﻨﻀﻴﻑ ﻤﺠﻤﻭﻋﺔ ﺍﻟﻰ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺤﻘل ‪Customer.City‬‬
‫‪ -3‬ﻨﺭﺒﻁ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺎﺩﺍﺓ ‪Viewer‬‬
‫‪ -4‬ﻨﻀﻴﻑ ﺍﺩﺍﺓ ‪ ComboBox‬ﺍﻟﻰ ﺍﻟﻨﻤﻭﺝ‬
‫‪ -5‬ﺘﺤﺘـــــــــﻭﻯ ﺍﻻﺩﺍﺓ ‪ ComboBox‬ﻋﻠـــــــــﻰ ﺍﻟﺤﻘـــــــــﻭل‬
‫‪Customer.Region،Customer.Country،Customer.City‬‬
‫‪ -6‬ﻨﻀﻴﻑ ﺍﻻﺩﺍﺓ ‪Button‬ﺍﻟﻰ ﺍﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ ﻟﻜﻰ ﻴﻘﻭﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺎﻟﻨﻘﺭ ﻋﻠـﻰ ﻫـﺫﺍ ﺍﻟـﺯﺭ ﻟﺘﻜـﻭﻴﻥ‬
‫ﻤﺠﻤﻭﻋﺎﺕ ﻋﻠﻰ ﺍﺴﺎﺱ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﺘﻡ ﺍﺨﺘﻴﺎﺭﻩ ﻓﻰ ﺍﺩﺍﺓ‪ComboBox‬‬

‫‪26‬‬

‫‪PDF created with pdfFactory trial version www.pdffactory.com‬‬


SOLO.NET@ARABTEAM2000.COM Learn Crystal Reports

‫ ﻟﻠﺯﺭ‬click ‫ ﻨﻜﺘﺏ ﻫﺫﺍ ﺍﻟﻜﻭﺩ ﻓﻰ ﺍﻟﺤﺩﺙ‬-7

Dim FieldDef As FieldDefinition


FieldDef=Report.Database.Table.Item(0).Fields.Item(ComboBox1.Text)
Report.DataDefinition.Group.Item(0).ConditionField= FieldDef
CrViewer.RefreshReport

‫ﺘﻌﺩﻴل ﺤﻘﻭل ﺍﻟﻔﺭﺯ ﻓﻰ ﻭﻗﺕ ﺍﻟﺘﺸﻐﻴل‬


‫ﻴﻤﻜﻨﻨﺎ ﺍﺴﺘﺨﺩﺍﻡ ﺤﻘﻭل ﺍﻟﻔﺭﺯ ﻻﺨﺘﻴﺎﺭ ﺍﻟﺤﻘل ﺍﻟﺫﻯ ﻋﻠﻰ ﺍﺴﺎﺴﻪ ﻴﺠﺭﻯ ﻓﺭﺯ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺘﻰ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻭﻴﻤﻜﻥ ﺍﻥ‬
‫ ﻴﻤﻜﻥ ﺍﻟﻤﺜﺎل ﺍﻟﺘـﺎﻟﻰ‬.‫ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﺍﻗل ﻗﻴﻡ‬،‫ﺍﻟﺤﺼﻭل ﻋﻠﻰ ﺍﻋﻠﻰ ﻗﻴﻡ‬،‫ﻴﻜﻭﻥ ﺍﺘﺠﺎﻩ ﺍﻟﻔﺭﺯ ﺘﺼﺎﻋﺩﻯ ﺍﻭ ﺘﻨﺎﺯﻟﻰ‬
‫ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﻌﺩﻴل ﺤﻘل ﺍﻟﻔﺭﺯ ﺍﻟﺨﺎﺹ ﺒﺎﺤﺩ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﻴﻔﺘﺭﺽ ﺍﻥ ﻟﺩﻴﻨﺎ ﺘﻘﺭﻴﺭ ﺘﺘﻭﻓﺭ ﺒﻪ ﺍﻟﺸﺭﻭﻁ ﺍﻟﺘﺎﻟﻴﺔ‬
‫ ﻭ‬Customer.Name ‫ ﻫﻤــﺎ‬:Details ‫• ﻴﺤﺘــﻭﻯ ﺍﻟﺘﻘﺭﻴــﺭ ﻋﻠــﻰ ﺤﻘﻠــﻴﻥ ﻓــﻰ ﻗــﺴﻡ‬
Customer.Country
Customer.Name ‫• ﺍﻟﺒﻴﺎﻨﺎﺕ ﻴﺠﺭﻯ ﻓﺭﺯﻫﺎ ﻋﻠﻰ ﺍﺴﺎﺱ ﺤﻘل‬
Click ‫ ﻓﻰ ﺍﻟﺤﺩﺙ‬Button ‫• ﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﺘﺭﺘﻴﺏ ﺍﻟﻔﺭﺯ ﻓﻰ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻥ ﻁﺭﻴﻕ ﺍﻀﺎﻓﺔ ﻜﻭﺩ ﺍﻟﻰ ﺍﺩﺍﺓ‬

Dim FieldDef As FieldDefinition


FieldDef=Report.Database.Tables.Item(0).Fields.Item(ComboBox1.Text)
Report.DataDefinition.SortFields.Item(0).Field= FieldDef

‫ﺍﻟﻭﺼﻭل ﺍﻟﻰ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻻﻤﻨﺔ‬


‫ﻓﻰ ﺘﻁﺒﻴﻘﺎﺕ ﺍﻟﻭﻴﻨﺩﻭﺯ ﺍﻟﺘﻰ ﺘﺤﺘﻭﻯ ﻋﻠﻰ ﺘﻘﺎﺭﻴﺭ ﻜﺭﻴﺴﺘﺎل ﺭﻴﺒﻭﺭﺕ ﻴﻘﻭﻡ ﻤﺭﺒﻊ ﺤﻭﺍﺭ ﺘﻠﻘﺎﺌﻴﺎ ﺒﺤﺙ ﺍﻟﻤﺴﺘﺨﺩﻤﻴﻥ‬
.‫ ﻭﻴﻤﻜﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﻟﺘﺤﺩﻴﺩ ﺍﺴﻡ ﺍﻟﻤـﺴﺘﺨﺩﻡ ﻭﻜﻠﻤـﺔ ﺍﻟﻤـﺭﻭﺭ‬.‫ﻋﻠﻰ ﺍﺩﺨﺎل ﺍﺴﻡ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻭﻜﻠﻤﺔ ﺍﻟﻤﺭﻭﺭ‬
‫ﻴﻭﻀﺢ ﺍﻟﻤﺜﺎل ﺍﻟﺘﺎﻟﻰ ﻜﻴﻔﻴﺔ ﺘﻤﺭﻴﺭ ﻤﻤﺭﺍﺕ ﺒﺩﺀ ﺘﺴﺠﻴل ﺍﻟﺩﺨﻭل ﻋﻠﻰ ﺠﺩﺍﻭل ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻰ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ‬
:SQL Server
‫ ﻨﺒﺩﺃ ﻤﺸﺭﻭﻉ ﺠﺩﻴﺩ‬-1
‫( ﺍﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ‬TextBox) ‫ ﻨﻀﻴﻑ ﺍﺩﺍﺓ ﺯﺭ ﻭﺍﺭﺒﻊ ﻤﺭﺒﻌﺎﺕ ﻨﺹ‬-2
‫ ﻭ‬userNameTXT،DBNameTXT،ServerNameTXT ‫ ﻨﺨـــــﺼﺹ ﺍﺴـــــﻤﺎﺀ‬-3
‫ ﺍﻟﻰ ﻤﺭﺒﻌﺎﺕ ﺍﻟﻨﺹ‬passwordTXT
‫ ﻟﻠﺯﺭ ﻨﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻰ‬Click ‫ ﻓﻰ ﺍﻟﺤﺩﺙ‬-4

Dim logOnInfo As New TableLogOnInfo()


For i As Integer=0 To Report.Database.Tables.Count -1
LogOnInfo.ConnectionInfo.ServerName= ServerNameTXT.Text
LogOnInfo.ConnectionInfo.DatabaseName=DBNameTXT.Text
LogOnInfo.ConnectionInfo.UserID=userNameTXT.Text
LogOnInfo.ConnectionInfo.Password=passwordTXT.Text
Report.Database.Tables.Item(i).ApplyLogOnInfo(logOnInfo)
Next i

‫ و‬ServerName ‫ وﻟﻜ ﻦ ﯾﺠ ﺐ ﻋ ﺪم ادﺧ ﺎل ﻗ ﯿﻢ‬Access ‫وﯾﻤﻜ ﻦ اﺳ ﺘﺨﺪام ﻧﻔ ﺲ اﻟﻄﺮﯾﻘ ﺔ ﻣ ﻊ ﻗﻮاﻋ ﺪ ﺑﯿﺎﻧ ﺎت‬
DatabaseName

@‫@اﻧﺘﮭﻰ اﻟﺠﺰء اﻟﺜﺎﻧﻰ‬


SOLO.NET
ARAB TEAM 2000

27

PDF created with pdfFactory trial version www.pdffactory.com

You might also like