Professional Documents
Culture Documents
ﺍ ﻟ ﻔﺼ ل ﺍ ﻟ ﺜ ﺎ ﻟ ﺙ ﺤ ﺎ ﺴ ﻭ ﺏ
ﺒﻴﺴﻙ ﺍﻟﻤﺭﺌﻲ)(2 ﻤﻠﺨﺼﺎﺕ ﻓﻲ
Visual Basic .NET 2003
ﺭﻗﻡ ﺭﻗﻡ
ﺍﻟﻤﺤﺘﻭﻴﺎﺕ ﺍﻟﻤﺤﺘﻭﻴﺎﺕ
ﺍﻟﺼﻔﺤﺔ ﺍﻟﺼﻔﺤﺔ
12 ﻤﻌﺎﻟﺞ ﻨﻤﺎﺫﺝ ﺍﻟﺒﻴﺎﻨﺎﺕ 0 ﻤﻘﺩﻤﺔ
17 ﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﻭﻜﻭﺩ ﺍﻟﻤﻌﺎﻟﺞ 1 ﻤﺭﺍﺠﻌﺔ
20 ﺘﻘﻨﻴﺔ ADO .NET 2 ﻤﻼﺤﻅﺎﺕ ﻋﻥ ﺤﻔﻅ ﺍﻟﻤﺸﺭﻭﻉ
22 ﺭﺒﻁ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ 3 ﻤﻠﻔﺎﺕ ﺍﻟﺤل ﻭﺒﻴﺌﺘﻪ
ﺍﻟﻜﻭﺩ ﺍﻷﺴﺎﺴﻲ ﻟﺘﻜﻭﻴﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻓﻲ ﺘﻁﺒﻴﻕ
23 ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ
ﻤﻼﺤﻅﺎﺕ ﻋﻥ 4
Windows
24 ﺃﺴﺎﻟﻴﺏ ﺍﻟﺭﺴﻡ 5 ﻤﺘﻁﻠﺒﺎﺕ ﻭﻤﻠﺤﻘﺎﺕ VS .NET
25 ﺭﺒﻁ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ 6 ﻤﺸﺭﻭﻉ ﺘﺠﺭﻴﺒﻲ
29 ﺍﻟﺘﻘﺎﺭﻴﺭ Crystal Reports 7 ﻁﺭﻕ ﺘﺨﺯﻴﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ
8 ﺘﺨﺯﻴﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﻤﺴﺠل
12 ﻤﺸﺎﺭﻴﻊ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ
وﺟﻮد
أﺧﻄﺎء ﻗﺎﺌﻤﺔ ﺍﻷﺨﻁﺎﺀ
ﻟﺘﺼﺤﯿﺢ اﻷﺧﻄﺎء
ﻴﻤﺘﺎﺯ ﺍﻟﻤﺘﺭﺠﻡ ﻓﻲ ﻟﻐﺔ VBﺒﺄﻨ ﻪ ﻤﺘﺭﺠﻡ ﻓﻭﺭﻱ Interpreterﺃﻱ ﺒﻤﺠﺭﺩ ﺍﻻﻨﺘﻬﺎﺀ ﻤﻥ ﻜﺘﺎﺒﺔ ﺴﻁﺭ ﻭﺍﻻﻨﺘﻘﺎل ﺇﻟﻰ ﺴﻁﺭ ﺁﺨﺭ
ﻴﻘﻭﻡ ﺍﻟﻤﺘﺭﺠﻡ ﺒﺘﺭﺠﻤﺔ ﺍﻟﺠﻤﻠﺔ .ﻭﻫﻨﺎﻙ ﻨﻭﻉ ﺁﺨﺭ ﻤﻥ ﺍﻟﻤﺘﺭﺠﻤﺎﺕ ﻴﻘﻭﻡ ﺒﺎﻟﺘﺭﺠﻤﺔ ﻟﻠﺒﺭﻨﺎﻤﺞ ﺩﻓﻌﺔ ﻭﺍﺤﺩﺓ ﻤﺜل ﻤﺘﺭﺠﻡ ﻟﻐﺔ .C
ﻭﻓﻲ VB .NETﻴﻘﻭﻡ ﺍﻟﻤﺘﺭﺠﻡ ﺒﺒﻨﺎﺀ ﺍﻟﻤﻠﻑ ﺍﻟﺘﻨﻔﻴﺫﻱ ﺩﺍﺨل ﺍﻟﻤﺠﹼﻠﺩ binﻓﻲ ﻤﺠﹼﻠﺩ ﺍﻟﺤل )ﺍﻟﻤﺸﺭﻭﻉ(.
ﺘﺸﻐﻴل ﺒﻴﺌﺔ VS .NETﻟﺘﺸﻐﻴل ﺒﻴﺌﺔ VS .NETﻫﻨﺎﻙ ﻋﺩﺓ ﺃﺴﺎﻟﻴﺏ ﻤﻨﻬﺎ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﺒﺩﺃ ﻭﻜﻤﺎ ﻴﻠﻲ:
1
. < ﺍﺒﺩﺃ< ﺍﻟﺒﺭﺍﻤﺞ ﺃﻭ ﻜﺎﻓﺔ ﺍﻟﺒﺭﺍﻤﺞ <
ﻜﻤـﺎ ﻴﻤﻜﻨـﻨﺎ ﺇﻨﺸﺎﺀ ﺍﺨﺘﺼﺎﺭ ﻟـ VSﻋﻠﻰ ﺴﻁﺢ ﺍﻟﻤﻜﺘﺏ ﺒﺎﻟﻨﻘﺭ ﺒﺎﻷﻴﻤﻥ ﻋﻠﻰ ﺍﺴﻤﻪ ﻓﻲ ﺍﻟﻘﺎﺌﻤﺔ ﺍﺒﺩﺃ ﺜﻡ ﻨﺨﺘﺎﺭ ﺇﺭﺴﺎل ﺇﻟﻰ <
ﺴـﻁﺢ ﺍﻟﻤﻜـﺘﺏ ﻜﺎﺨﺘﺼـﺎﺭ ،ﻭﺒﺎﻟﻨﻘﺭ ﺍﻟﻤﺯﺩﻭﺝ ﻋﻠﻰ ﺃﻴﻘﻭﻨﺘﻪ ﻋﻠﻰ ﺴﻁﺢ ﺍﻟﻤﻜﺘﺏ ﻴﺘﻡ ﺘﺸﻐﻴﻠ ﻪ ،ﻭﺃﺜﻨﺎﺀ ﺘﺤﻤﻴﻠﻪ ﻟﻠﺫﺍﻜﺭﺓ ﺍﻟﺭﺌﻴﺴﻴﺔ
RAMﻴﻅﻬـﺭ ﺇﻁـﺎﺭ ﻴﺤـﺘﻭﻱ ﺭﻗﻡ ﻭﻨﻭﻉ ﺍﻹﺼﺩﺍﺭﺓ ﻭﺍﺴﻡ ﺍﻟﻤﺎﻟﻙ ﻭﺍﻟﻤﺅﺴﺴﺔ ﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل 1ﻓﻲ ﺍﻟﺼﻔﺤﺔ ، 0ﺜﻡ ﻴﺨﺘﻔﻲ
ﻭﺘﻅﻬﺭ ﺒﻴﺌﺔ ، VS .NETﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل ، 2ﻭﻓﻴﻬﺎ ﺼﻔﺤﺔ ﺍﻟﺒﺩﺍﻴﺔ .Start Page
ﻟﻠﺨﺭﻭﺝ ﻤﻥ ﺍﻟﺒﻴﺌﺔ ﻴﻜﻔﻲ ﺃﻥ ﻨﻐﻠﻕ ﻨﺎﻓﺫﺘﻬﺎ ﺍﻟﺭﺌﻴﺴﻴﺔ ﺃﻭ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ File > Exitﺃﻭ ﻜﺒﺱ ﺍﻟﻤﻔﺘﺎﺤﻴﻥ Alt+F4ﻤﻌﹰﺎ.
ﻻﺳﺘﻌﺮاض
اﻟﻤﺠﻠﺪات وﺗﺤﺪﯾﺪ
ﻣﻮﻗﻊ ﻟﻤﻠﻔﺎت اﻟﺤﻞ
2
ﺍﻟﺸﻜل 4ﺭﺴﺎﻟﺔ ﺍﻟﺘﺤﺫﻴﺭ ﻓﻲ ﺤﺎﻟﺔ ﻭﺠﻭﺩ ﺍﻻﺴﻡ
ﺒﻌـﺩ ﺇﻨﺸـﺎﺀ ﺍﻟﻤﺸﺭﻭﻉ ﺴﻴﺘﻡ ﺤﻔﻅ ﻤﻠﻑ ﺍﻟﺤل ﺒﺎﻻﻤﺘﺩﺍﺩ .slnﻭﻤﻠﻑ ﺍﻟﻤﺸﺭﻭﻉ .vbprojﻭﻤﻠﻔﺎﺕ ﻜﻭﺩ ﺍﻟﻨﻤﻭﺫﺝ ﺒﺎﻻﻤﺘﺩﺍﺩ .vbﻭﺍﻟﻤﻠﻑ
ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﻭﻗﺕ ﺍﻟﺘﺼﻤﻴﻡ ﺒﺎﻻﻤﺘﺩﺍﺩ ، .resxﻜﻤﺎ ﻴﺤﺘﻔﻅ ﺍﻟﻨﻅﺎﻡ ﺒﺨﻴﺎﺭﺍﺕ ﻤﺴﺘﺨﺩﻡ ﺍﻟﺤل ﻓﻲ ﻤﻠﻑ .suoﻭﺨﻴﺎﺭﺍﺕ
ﺍﻟﻤﺴـﺌﻭل ﻋﻥ
ﻤﺴﺘﺨﺩﻡ ﺍﻟﻤﺸﺭﻭﻉ ﻓﻲ ﻤﻠﻑ ﺍﻤﺘﺩﺍﺩﻩ .user ﻭﺍﻟﻨﺴﺨﺔ ﺍﻟﺘﻨﻔﻴﺫﻴﺔ ﺩﺍﺨل ﺍﻟﻤﺠﹼﻠﺩ binﺒﺎﻻﻤﺘﺩﺍﺩ .exeﺒﻌﺩ ﺍﻟﺘﻨﻔﻴﺫ ﺃﻭ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ Build
ﺤـﻴﺙ ﻴﺴﺘﺨﺩﻡ VB .NETﻨﻤﺎﺫﺝ ﻭﻴﻨﺩﻭﺯ ﺍﻟﻘﻴﺎﺴﻴﺔ ﺒﻤﻌﻨﻰ ﺃﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻴﺘﻡ ﺇﻨﺸﺎﺅﻩ ﻭﻜﺫﻟﻙ
ﺇﻨﺸﺎﺀ ﻋﻨﺎﺼﺭ ﺘﺤﻜﻤﻪ Controls ﻤﻊ ﻀﺒﻁ ﺨﺼﺎﺌﺼﻬﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﻭﻋﻨﺩ ﺍﻟﺘﻨﻔﻴﺫ.
ﺍﻟﺸـﻜل 5ﺍﻟﺘﺎﻟـﻲ ﻴﺒﻴﻥ ﺒﻴﺌﺔ VB .NETﻭﺍﻟﻨﻤﻭﺫﺝ ﺒﺎﻟﻌﺭﺽ ﺍﻟﺘﺼﻤﻴﻤﻲ ﻭﺇﻁﺎﺭ ﻤﺴﺘﻜﺸﻑ ﺍﻟﺤل Solution Explorerﻭﺍﻟﺫﻱ ﻴﺤﺘﻭﻱ
ﻋﻠﻰ ﻜﺎﺌﻨﺎﺕ ﺍﻟﻤﺸﺭﻭﻉ
ﻋَﺮض إﻃﺎر
اﻟﻜﻮد
إﻃﺎر
اﻟﺨﺼﺎﺋﺺ
ﺍﻟﺸﻜل 5ﺍﻟﺤل ﺒﺎﻟﻌﺭﺽ ﺍﻟﺘﺼﻤﻴﻡ ﻭﺒﻌﺽ ﺍﻹﻁﺎﺭﺍﺕ ﻤﺨﻔﻴﺔ ﺘﻠﻘﺎﺌﻴﹰﺎ ﻋﻥ ﻁﺭﻴﻕ ﺍﻷﺩﺍﺓ
ﺷﺮﯾﻂ اﻟﺤﺎﻟﺔ ﯾُﻌﺮض ﻣﻦ
Tools>Options
ﺍﻻﺨﺘـﻴﺎﺭ ﺍﻻﻓﺘﺭﺍﻀـﻲ ﻟﻠﺤﻔﻅ ﻫﻭ ﺤﻔﻅ ﻤﻠﻔﺎﺕ ﺍﻟﺤل ﻜﻠﹼﻤﺎ ﺘﻡ ﺍﻟﺘﻨﻔﻴﺫ ﺃﻭ ﺒﻨﺎﺀ ﺍﻟﺤل ﻭﻴﻤﻜﻥ ﺘﻐﻴﻴﺭﻩ ﻋﻥ ﻁﺭﻴﻕ Tools>Options..ﺜﻡ
،ﻤﺜﻼﹰ ﺍﻟﺘﺎﺒﻊ ﻟﻠﺒﻨﺩ ﺍﻻﺨﺘﻴﺎﺭﺍﺕ ﺘﺤﺕ ﺍﻻﺨﺘﻴﺎﺭ
ﻫـﻨﺎﻙ ﺇﻁـﺎﺭﺍﺕ ﻏﻴـﺭ ﻅﺎﻫﺭﺓ ﻓﻲ ﺍﻟﺸﻜل 5ﺃﻋﻼﻩ ﻴﻤﻜﻥ ﺇﻅﻬﺎﺭﻫﺎ ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﻘﺎﺌﻤﺔ Viewﻤﻨﻬﺎ ﺇﻁﺎﺭ ﻤﺴﺘﻌﺭﺽ ﺍﻟﻤﻠﻘﻡ
،ﻤﻭﻗﻌ ﻪ Server Explorerﻭﻫـﻭ ﻟﻌـﺭﺽ ﺃﺴـﻤﺎﺀ ﺍﻟ ﻤﻠﻘﻤـﺎﺕ ﻭﻗﻭﺍﻋﺩ ﺒﻴﺎﻨﺎﺕ SQL serverﻭﺍﻻﺘﺼﺎﻻﺕ ﺍﻟﺘﻲ ﺘﻡ ﺇﻨﺸﺎﺅﻫﺎ
ﻴﻤﻜﻥ ﺘﻐﻴﻴﺭ ﻤﻭﻗﻌ ﻪ ﺒﺎﻟﺴﺤﺏ ﻭﺍﻹﻟﻘﺎﺀ Drag and Dropﻟﻌﻼﻤﺔ ﺘﺒﻭﻴﺒﻪ ﺃﻭ ﻟﻌﻨﻭﺍﻨﻪ. ﺍﻻﻓﺘﺭﺍﻀﻲ ﺇﻟﻰ ﺠﻬﺔ ﺍﻟﻴﺴﺎﺭ ﻤﻊ ﻤﺭﺒﻊ ﺍﻷﺩﻭﺍﺕ
ﺇﻁﺎﺭ ﺍﻟﻜﻭﺩ
ﺘﻌـﺘﻤﺩ ﺒﻴـﺌﺔ VS .NETﻋﻠـﻰ ﻨﻤﺎﺫﺝ Windowsﺍﻟﻘﻴﺎﺴﻴﺔ ﻓﺒﺘﻜﻭﻴﻥ ﺍﻟﺤل ﺍﻟﺫﻱ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﻨﻤﻭﺫﺝ Windowsﻓﺈﻥ ﺍﻟﻨﻤﻭﺫﺝ
ﺴﻨﺸﺄ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﻭﻤﻥ ﺍﻟﺼﻔﺭ ﺤﻴﺙ ﻜﻭﺩ ﺘﺼﻨﻴﻑ )ﻓﺼﻴﻠﺔ( Classﺍﻟﻨﻤﻭﺫﺝ ﻜﻤﺎ ﻴﻠﻲ:
ﻴ
3
ﻥ ﺍﺴﻡ ﺍﻟﺘﺼﻨﻴﻑ )ﺍﻟﻔﺼﻴﻠﺔ( Classﺒﺎﺴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﻭﻤﻌﻠﻥ ﻋﻨﻬﺎ ﻓﻲ ﺃﻭل ﺴﻁﺭ ،ﺃﻤﺎ ﺍﻟﺴﻁﺭ ﺍﻟﺜﺎﻨﻲ ﻓﻴﺴﺘﺨﺩﻡ ﺍﻟﻭﺭﺍﺜﺔ Inheritsﻭﻫﻲ
ﻨﺠ ﺩ ﺃ
ﻤـﻥ ﻤﻔﺎﻫـﻴﻡ ﺍﻟﺒﺭﻤﺠﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺍﻟﻤﻭﺠﻬﺔ OOPﺤﻴﺙ ﻴﺠﻌل ﺍﻟﺘﺼﻨﻴﻑ ﺍﻟﺠﺩﻴﺩ ﻴﺭﺙ ﺠﻤﻴﻊ ﺨﺼﺎﺌﺹ ﻭﺃﺴﺎﻟﻴﺏ ﺍﻟﺘﺼﻨﻴﻑ
ﺍﻷﺴﺎﺴﻲ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﺠﺯﺀ ﺍﻟﺜﺎﻨﻲ ﻤﻥ ﺍﻟﺴﻁﺭ .ﺒﻌﺩ ﻓﺘﺢ ﻤﻨﻁﻘﺔ ﺍﻟﻜﻭﺩ ﺍﻷﺴﺎﺴﻲ ﺒﺎﻟﻨﻘﺭ ﻋﻠﻰ ﻋﻼﻤﺔ ﺍﻟﺠﻤﻊ ﺴﺘﻅﻬﺭ ﻤﻘﺎﻁﻌﻪ.
ﺍﻟﻜﻭﺩ ﺍﻷﺴﺎﺴﻲ ﻟﺘﻜﻭﻴﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻓﻲ ﺘﻁﺒﻴﻕ Window s
ﺒﻌﺩ ﺇﻨﺸﺎﺀ ﺍﻟﺤل ﺴﻴﺘﻡ ﺘﻜﻭﻴﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻤﻥ ﺨﻼل ﺍﻟﻜﻭﺩ ﻻ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺃﻱ ﻋﻨﺼﺭ ﺘﺤﻜﻡ .ﻭﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﻴﻴﺒﻥ ﻜﻭﺩ ﺘﺼﻨﻴﻑ ﺍﻟﻨﻤﻭﺫﺝ
ﻥ VB .NETﺴﻴﻜﺘﺏ ﺫﻟﻙ ﻓﻲ ﺍﻟﻜﻭﺩ
ﻭﻜﻠﹼﻤﺎ ﺃﻀﻔﻨﺎ ﻋﻨﺼﺭ ﺘﺤﻜﻡ ﻟﻠﻨﻤﻭﺫﺝ ﺃﻭ ﻀﺒﻁﻨﺎ ﺨﺼﺎﺌﺹ ﻜﺎﺌﻥ ﻤﺎ ﻓﺈ
4
ﻤﺘﻁﻠﺒﺎﺕ ﻭﻤﻠﺤﻘﺎﺕ Visual Basic .NET 2003
ﺒﻴﺴـﻙ ﺍﻟﻤﺭﺌـﻲ ﻟﻠﺸﺒﻜﺎﺕ ﺃﻭ VB .NETﺃﻭ VB7.1ﺃﺤﺩ ﺃﻨﻅﻤﺔ ﺍﻟﺒﺭﻤﺠﺔ ﻓﻲ ﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ Visual Studio .NETﻭﺍﻟﺘﻲ
ﻭﻁﻠﻕ ﻋﻠﻰ ﺍﻟﻤﺸﺭﻭﻉ ﻓﻲ ﻫﺫﻩ ﺍﻟﺒﻴﺌﺔ ﺍﻟﺘﺴﻤﻴﺔ ﺤـ ﻟ
ﺘﺤﺘﻭﻱ ﺃﻴﻀﺎ ﻋﻠﻰ (C Sharp) Visual C#ﻭ Visual C++ﻭ ، Visual J#ﻴ
، Solutionﻭﻤﻥ ﺍﻟﻤﺘﻁﻠﺒﺎﺕ ﻭﺍﻟﻤﻠﺤﻘﺎﺕ ﻟﺒﻴﺌﺔ ﺍﻟﺘﻁﻭﻴﺭ VS .NETﻤﺎ ﻴﻠﻲ:
.1ﻴﺤﺘﺎﺝ ﻨﻅﺎﻡ ﺘﺸﻐﻴل Windows2000ﺃﻭ ﻤﺎ ﻴﻠﻴﻪ ﻤﺜل Windows XPﺃﻭ Windows 2003 Server
.2ﻴﺤﺘﺎﺝ ﺇﻁﺎﺭ ﻋﻤل .NET Frameworkﻴﺄﺘﻲ ﻤﻊ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺎﻹﺼﺩﺍﺭﺓ ﺍﻷﺤﺩﺙ ، 1.1ﻭﻴﺒﻘﻰ ﺍﻟﺘﻁﺒﻴﻕ ﻴﺤﺘﺎﺝ ﺇﻟﻰ
.NET framework1.1 Redistributableﻓﻲ ﺠﻬﺎﺯ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﻴﺠﺏ ﺇﺭﻓﺎﻗﻪ ﻤﻊ ﺍﻟﻨﺴﺦ ﺍﻟﺘﻭﺯﻴﻌﻴﺔ ﻟﻠﺘﻁﺒﻴﻕ ﻭﻫﻭ ﺒﺤﺠﻡ 23.1MB
.3ﻴﺤـﺘﺎﺝ ﺍﻟﻭﺼـﻭل ﺇﻟﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺒﺭﻨﺎﻤﺞ ) Microsoft Data Access Components version 2.6 (MDACﺃﻭ ﻤﺎ ﻴﻠﻴﻪ
ﻭﺍﻹﺼﺩﺍﺭﺓ ﺍﻷﺤﺩﺙ ﻫﻲ MDAC2.8ﻓﻲ ، 13/8/2003ﻭﻋﻨﺩ ﺇﻋﺩﺍﺩ VS .NET2003ﻴﺘﻡ ﺇﻋﺩﺍﺩ ﻫﺫﺍ ﺍﻟﺒﺭﻨﺎﻤﺞ ﺒﺎﻹﺼﺩﺍﺭﺓ
2.7ﺘﻠﻘﺎﺌﻴﹰﺎ ،ﻭ ﺘﻅﻬﺭ ﺍﻟﺭﺴﺎﻟﺔ ﺍﻟﺘﺎﻟﻴﺔ ﻓﻲ ﺤﺎﻟﺔ ﻋﺩﻡ ﻭﺠﻭﺩ ﺇﺤﺩﻯ ﺍﻹﺼﺩﺍﺭﺍﺕ ﺍﻟﻤﻁﻠﻭﺒﺔ ﻋﻨﺩﻤﺎ ﻨﺭﻏﺏ ﺒﺈﻨﺸﺎﺀ ﻨﻤﻭﺫﺝ ﺒﻴﺎﻨﺎﺕ ﺒﻤﻌﺎﻟﺞ
ﺍﻟﻨﻤﺎﺫﺝ ﻭﻻ ﻴﺘﻤﻜﻥ ﺍﻟﻤﻌﺎﻟﺞ ) (wizardﻤﻥ ﺇﻨﺸﺎﺀ ﺍﻟﻨﻤﻭﺫﺝ
.4ﻤﻥ ﺍﻟﻤﻠﺤﻘﺎﺕ ﺍﻟﻤﻬﻤﺔ ﺸﺒﻜﺔ ﺍﻟﻤﻁﻭﺭﻴﻥ ﻤﻥ ﻤﺎﻴﻜﺭﻭﺴﻭﻓﺕ ) Microsoft Developer Network (MSDNﻭﻫﻲ ﺘﻌﻠﻴﻤﺎﺕ ﻟﻜﻴﻔﻴﺔ
ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﺒﺭﻤﺠﺔ ﻓﻲ ﺒﻴﺌﺔ VS .NETﻭﺘﺄﺘﻲ ﺒﺜﻼﺙ ﺃﻗﺭﺍﺹ ﻤﻀﻐﻭﻁﺔ ) (3CDﻤﻊ VS .NET 2003
.5ﻤﻥ ﺍﻟﻤﻠﺤﻘﺎﺕ ﺍﻟﻤﻔﻴﺩﺓ ﻟﻠﻤﻁﻭﺭﻴﻥ ﻓﻲ ﺒﻴﺌﺔ VS .NETﻭﺨﺼﻭﺼﺎ ﺒﺎﺴﺘﺨﺩﺍﻡ VB .NETﻫﻲ
Visual Basic NET Resource Kitﻭﻫﻲ ﻤﺠﺎﻨﻴﺔ ﻓﻲ ﻤﻭﻗﻊ ﺍﻟﺸﺭﻜﺔ www.microsoft.com/downloadsﻭﻴﺼل ﺤﺠﻤﻬﺎ
ﺤﺘﻰ . 192MB
.6ﻓﻲ ﺤﺎﻟﺔ ﺒﻨﺎﺀ ﻤﺸﺎﺭﻴﻊ ﻟﻼﺘﺼﺎل ﺒﻤﺼﺩﺭ ﺒﻴﺎﻨﺎﺕ ﻤﻔﺘﻭﺡ ODBC .NETﻓﻴﺠﺏ ﺇﻋﺩﺍﺩ ﺍﻟﻤﻠﻑ ﺍﻟﺨﺎﺹ ﺒﻬﺫﺍ ﺍﻟﻤﻭﱢﻓﺭ ﻭﻫﻭ ODBC
.NET Data Providerﻭﺤﺠﻤ ﻪ 848KBﻭﻏﻴﺭ ﻤﺭﻓﻕ ﻤﻊ . VS .NET2003
.7ﻋـﻨﺩ ﺍﻟﺤﺎﺠﺔ ﺇﻟﻰ ﺍﺴﺘﺨﺩﺍﻡ ﻗﻭﺍﻋﺩ ﺒﻴﺎﻨﺎﺕ SQL serverﺃﻭ MSDE serverﻭﻫﻲ ﻤﺠﻤﻭﻋﺔ ﺠﺯﺌﻴﺔ ﻤﻥ SQL serverﻓﻴﺠﺏ
ﺇﻨﺸـﺎﺀ ﻤﻠﻘﱢـﻡ ) (serverﺨـﺎﺹ ﺒﺎﺴـﺘﺨﺩﺍﻡ (Microsoft Desktop Engine) MSDEﻭﻫـﻭ ﻤﺘﻭﻓﺭ ﻤﺠﺎﻨﺎﹰ ﻤﻊ ﻤﻨﺘﺠﺎﺕ
ﻤﺎﻴﻜﺭﻭﺴـﻭﻓﺕ ﻤـﺜل ،Officeﻓـﻴﺠﻌل ﻤﻥ ﺍﻟﻤﻤﻜﻥ ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﻗﻭﺍﻋﺩ ﺒﻴﺎﻨﺎﺕ ﻤﻠﻘﻡ SQLﻓﻌﻨﺩﻤﺎ ﻴﻜﻭﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻴﻌﻤل ﺘﻅﻬﺭ
. ﺃﻴﻘﻭﻨﺘ ﻪ ﺒﻤﻨﻁﻘﺔ ) System Trayﺼﻴﻨﻴﺔ ﺍﻟﻨﻅﺎﻡ( ﻀﻤﻥ ﺸﺭﻴﻁ ﺍﻟﻤﻬﺎﻡ
.8ﺍﻟﺒـﺭﻨﺎﻤﺞ VISIOﻭﻫـﻭ ﺒﺭﻨﺎﻤﺞ ﺭﺴﻭﻤﻲ ﻹﻨﺸﺎﺀ ﺍﻟﻤﺨﻁﻁﺎﺕ ،ﻭﺍﻟﺒﺭﻨﺎﻤﺞ SourceSafeﻟﺘﻜﻭﻴﻥ ﻗﺎﻋﺩﺓ ﺒﻴﺎﻨﺎﺕ ﺘﺨ ﺯﻥ ﺍﻟﻤﻠﻔﺎﺕ
ﺍﻟﻤﺭﺍﻓﻘﺔ ﻟﻠﻤﺸﺭﻭﻉ ﻻﺴﺘﺨﺩﺍﻤﻬﺎ ﻓﻴﻤﺎ ﺒﻌﺩ ،ﻭﻟﺘﺘﺒﻊ ﺍﻷﺨﻁﺎﺀ ﺍﻟﺘﻲ ﺘﺤﺼل ﺒﻜﻭﺩ ﺍﻟﻤﺸﺭﻭﻉ.
5
ﻤﺸﺭﻭﻉ ﺘﺠﺭﻴﺒﻲ
ﻨﺭﻏﺏ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺸﺭﻭﻉ ﺍﻟﺒﺴﻴﻁ ﻋﺭﺽ ﺍﻟﻭﻗﺕ ﻭﺍﻟﺘﺎﺭﻴﺦ ﻓﻲ ﻤﺘﺴﻤﻴﺘﻴﻥ Labelsﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﻓﻨﻀﻊ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﺇﻀﺎﻓﺔ ﺇﻟﻰ
Enabledﻋﻠﻰ Trueﻭﺍﻟﺨﺎﺼﻴﺔ Intervalﻋﻠﻰ 1000ﻤل ﺜﺎﻨﻴﺔ ﻭﻨﻜﺘﺏ ﻓﻲ ﺍﻟﻤﺘﺴـﻤﻴﺘﻴﻥ ﻤﻭﻗﹼﺕ Timerﻭﻨﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ
ﻟﻌﺭﺽ ﺍﻟﻭﻗﺕ ،ﺤﻴﺙ Lbltﻫﻭ ﺍﺴﻡ ﺍﻟﺘﺴﻤﻴﺔ. ﺍﻟﻤﻘﻁﻊ Timer1_Tickﺍﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻲlblt.Text = TimeString:
ﻭﻟﻌﺭﺽ ﺍﻟﺘﺎﺭﻴﺦ ﻨﺴﺘﺨﺩﻡ ﻓﻲ ﺍﻟﺘﺴﻤﻴﺔ Lbldﻓﻨﻜﺘﺏ ﺍﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻲ ﻓﻲ ﺍﻟﻤﻘﻁﻊ Form1_Activatedﻤﺜ ﹰ
ﻼ
. Lbld.Text = DateString
ﻤﻼﺤﻅﺔ :ﻴﻤﻜﻥ ﺇﻴﻘﺎﻑ ﻋﻤل ﺍﻟﻤﻭﻗﹼﺕ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻷﺴﻠﻭﺏ )( ، Timer1.Stopﻭﺒﺩﺀ ﻋﻤل ﺍﻟﻤﻭﹼﻗﺕ ﺒﺎﻷﺴﻠﻭﺏ)(Timer1.Start
ﻤﺜﺎل ﻟﻌﺭﺽ ﺭﺴﺎﻟﺔ ﻟﻠﻤﺴﺘﺨﺩﻡ ﺒﻌﺩ ﻤﺭﻭﺭ 10ﺜﻭﺍﻨﻲ ﻓﻨﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﻓﻲ ﻤﻭﹼﻗﺕ
ﻥ ﺘﺎﺭﻴﺦ
ﺘﻤـﺭﻴﻥ :ﻁـ ﻭﺭ ﺍﻟﺒـﺭﻨﺎﻤﺞ ﺍﻷﺨﻴﺭ ﻟﻴﺨﺘﺒﺭ ﺍﻟﺘﺎﺭﻴﺦ ﻓﻔﻲ ﺤﺎﻟﺔ ﻜﻭﻥ ﺍﻟﺘﺎﺭﻴﺦ ﺃﺼﻐﺭ ﻤﻥ 2004/9/1ﻓﺘﻅﻬﺭ ﺭﺴﺎﻟﺔ ﻨﻌﻡ /ﻻ ﺒﺄ
ﺍﻟـﻨﻅﺎﻡ ﺨﻁـﺄ ﻫـ ﻟ ﺘﺭﻴﺩ ﺘﺼﺤﻴﺤﻪ ،ﻋﻨﺩ ﺍﺨﺘﻴﺎﺭ ﻨﻌﻡ ﻴﺘﻡ ﻓﺘﺢ ﻨﻤﻭﺫﺝ ﺁﺨﺭ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﻋﻨﺎﺼﺭ ﺘﺤﻜﻡ ﺘﹸﻤﻜﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﺘﻐﻴﻴﺭ
ﺍﻟﺘﺎﺭﻴﺦ ،ﻤﺜل DateTimePickerﺃﻭ . ComboBox
6
ﻁ ﺭﻕ ﺘﺨ ﺯ ﻴ ﻥ ﺍ ﻟ ﺒ ﻴ ﺎ ﻨ ﺎ ﺕ
ﻤـﻥ ﻁﺭﻕ ﺘﺨﺯﻴﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻜﻭﺩ ﻓﻲ ﺘﺨﺯﻴﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻜﻤﺎ ﺴﺒﻕ ﻓﻲ ﺍﻟﻤﺸﺭﻭﻉ ﺍﻟﺴﺎﺒﻕ ،ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﺴﺠﻼﺕ Registry
ﻭﻫـﻲ ﻗﺎﻋـﺩﺓ ﺒـﻴﺎﻨﺎﺕ ﻓـﻲ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻟﺘﺨﺯﻴﻥ ﺒﻴﺎﻨﺎﺕ ﻋﻥ ﺍﻟﺒﺭﺍﻤﺞ ،ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻠﻔﺎﺕ ﻤﺜل ﻤﻠﻔﺎﺕ (initialization) .iniﻤﻠﻔﺎﺕ
ﺇﻋـﺩﺍﺩﺍﺕ ﺍﻟﺘﻜﻭﻴﻥ ،ﻭﻤﻠﻔﺎﺕ (extensible markup language) .xmlﻟﻐﺔ ﺍﻟﺘﺭﻤﻴﺯ ﺍﻟﻘﺎﺒﻠﺔ ﻟﻠﺘﻭﺴﻴﻊ ، … ،ﻭﺍﺴﺘﺨﺩﺍﻡ ﻗﻭﺍﻋﺩ ﺍﻟﺒﻴﺎﻨﺎﺕ
.Databases
ﻭﻤﻥ ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﺘﻲ ﹸﺘﺴﺘﺨﺩﻡ ﻟﺘﺨﺯﻴﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻠﻔﺎﺕ ﺍﻟﻘﻴﻡ ﺍﻟﻤﻔﺼﻭﻟﺔ ﺒﻔﺎﺼﻠﺔ ). Comma-Separated Values File (CSV
ﻤـﺜﺎل :ﻗـﺭﺍﺀﺓ ﻤﺤﺘﻭﻴﺎﺕ ﻤﻠﻑ ﻨﻭﻋ ﻪ CSVﻭﻋﺭﻀﻬﺎ ﻓﻲ ﻤﺭﺒﻊ ﻨﺹ ﺍﺴﻤﻪ txtStuﺒﻤﺸﺭﻭﻉ ﻨﻭﻋﻪ، Windows Application
ﻴﺠـﺏ ﺃﻥ ﻴﻜﻭﻥ ﺍﻟﻤﻠﻑ ﻤﻭﺠﻭﺩ ﻓﻲ ﻨﻔﺱ ﻤﺠﻠﹼﺩ ﺍﻟﺘﻁﺒﻴﻕ ،ﻓﻴﻤﻜﻥ ﺘﻜﻭﻴﻨ ﻪ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻔﻜﺭﺓ ) (Notepadﻭﻨﺤﻔﻅﻪ ﻓﻲ ﺍﻟﻤﺠﻠﹼﺩ binﺒﺎﺴﻡ
" "students.csvﻭﺒﺘﺭﻤﻴﺯ Unicodeﻭﻟﻴﺱ ANSIﻴﻟﻤﻜﻥ ﻗﺭﺍﺀﺓ ﺍﻟﻨﺹ ﺍﻟﻌﺭﺒﻲ ﻤﻥ ﺨﻼل ﺍﻟﺘﻁﺒﻴﻕ.
ﻜﻭﺩ ﺍﻟﺘﺼﻨﻴﻑ )ﺍﻟﻔﺼﻴﻠﺔ( ) (classﺍﻟﺨﺎﺹ ﺒﺎﻟﻨﻤﻭﺫﺝ ﻜﻤﺎ ﻴﻠﻲ:
7
ﻭﻨﺎﺘﺞ ﺍﻟﻘﺭﺍﺀﺓ ﻤﻥ ﺍﻟﻤﻠﻑ ﻭﺍﻟﻌﺭﺽ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻜﻤﺎ ﻴﻠﻲ ﻭﻜﻤﺜﺎل ﻋﻠﻰ ﺍﻟﻤﻠﻑ ﻤﺎ ﻴﻠﻲ
ﺤل ﺍﻟﺘﻤﺭﻴﻥ :ﻓﻴﻤﺎ ﻴﻠﻲ ﺍﻟﺘﺤﻭﻴﺭ ﻓﻲ ﺍﻟﻜﻭﺩ ﺒﻌﺩ ﺍﻹﻋﻼﻥ ﻋﻥ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﻓﻲ ﺍﻟﻤﻘﻁﻊ Form_Loadﻭﺘﻡ ﺘﻐﻴﻴﺭ ﺃﺴﻤﺎﺀ ﺍﻟﻜﺎﺌﻨﺎﺕ ﺇﻟﻰ ﺍﻟﻠﻐﺔ
ﺍﻟﻌﺭﺒﻴﺔ ﻜﺘﺠﺭﺒﺔ ﻟﻜﺘﺎﺒﺔ ﺃﺴﻤﺎﺀ ﺍﻟﻤﺘﻐﻴﺭﺍﺕ ﺒﺎﻟﻠﻐﺔ ﺍﻟﻌﺭﺒﻴﺔ.
8
ﺘﺨﺯﻴﻥ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟ ﻤﺴﺠل
ﻤـﺜﺎل) :ﺍﻟـﺘﻌﺎﻤل ﻤـﻊ ﺍﻟ ﻤﺴﺠل (Registryﺴﹸﻨﺼﻤﻡ ﻓﻲ ﻫﺫﺍ ﺍﻟﻤﺜﺎل ﻤﺸﺭﻭﻋﹰﺎ ﻴﺤﺘﻭﻱ ﻋﻠﻰ ﺜﻼﺙ ﻨﻤﺎﺫﺝ ،ﻭﺴﻨﻘﻭﻡ ﺒﺤﻤﺎﻴﺔ
ﺍﻟﺘﻁﺒـﻴﻕ ﺒﻜﻠﻤـﺔ ﻤﺭﻭﺭ Passwordﺤﻴﺙ ﺃﻥ ﺍﻟﻜﻠﻤﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻫﻲ 0000ﻭﻴﺴﺘﻁﻴﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺘﻐﻴﻴﺭﻫﺎ ﻤﻥ ﺨﻼل
ﺍﻟـﻨﻤﻭﺫﺝ ﺍﻟـﺜﺎﻟﺙ Form3ﻭﺍﻟﺫﻱ ﻴﻅﻬﺭ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺃﻤﺎﻥ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺜﺎﻨﻲ .ﻟﻠﻭﺼﻭل ﺇﻟﻰ ﺍﻟﻤﺴﺠﻼﺕ ﻨﺴﺘﺨﺩﻡ ﺍﻟﺩﺍﻟﺔ
ﺠل ،ﻭﺍﻟﺩﺍﻟﺔ DeleteSetting
ﺠل ،ﻭﺍﻟﺩﺍﻟﺔ SaveSettingﻟﻠﻜﺘﺎﺒﺔ )ﺍﻟﺘﺨﺯﻴﻥ(ﺇﻟﻰ ﺍﻟﻤﺴ
GetSettingﻟﻠﻘـﺭﺍﺀﺓ ﻤﻥ ﺍﻟﻤﺴ ِ
ﺠﻼﺕ ﺃﻭ ﺍﻟﺘﺴﺠﻴل registryﻫﻲ ﻗﺎﻋﺩﺓ
ﺠل ،ﻭﺍﻟﻤﺴ
ﻟﺤـﺫﻑ ﺇﻋـﺩﺍﺩﺍﺕ ﺘﻁﺒـﻴﻕ ﺃﻭ ﺠﺯﺀ ﻤﻨﻬﺎ ﺃﻭ ﻤﻔﺘﺎﺡ Keyﻤﻥ ﺍﻟﻤﺴ
ﺒـﻴﺎﻨﺎﺕ Databaseﻤﺭﻜﺯﻴﺔ ﻴﺴﺘﺨﺩﻤﻬﺎ ﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل Windowsﻟﺘﺨﺯﻴﻥ ﺒﻴﺎﻨﺎﺕ ﻫﺎﻤﺔ ﺘﻀﻡ ﺍﻹﻋﺩﺍﺩﺍﺕ Settings
ﻭﺍﻟﺘﻜﻭﻴـﻨﺎﺕ Configurationsﺍﻟﺨﺎﺼـﺔ ﺒـﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻨﻔﺴﻪ ﻭﺍﻟﺒﺭﺍﻤﺞ ﺍﻟﻌﺎﻤﻠﺔ ﻤﻥ ﺨﻼﻟﻪ ﻭﺍﻟﻤﻌﺩﺍﺕ ﺍﻟﻤﺘﺼﻠﺔ ﺒﻪ.
ﻭﻹﺠـﺭﺍﺀ ﺘﻌـﺩﻴﻼﺕ ﻋﻠـﻰ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺍﻟﺴﺎﺒﻘﺔ ﺍﻟﱢﺫﻜﺭ ﻴﻭﻓﺭ Windowsﺒﺭﻨﺎﻤﺞ ﻤﺤﺭﺭ ﺍﻟﻤﺴﺠِل Rigistry Edit
.ﻭﺘﺭﻜﻴﺏ ﻭﻟﺘﺸـﻐﻴﻠﻪ ﻨﻜﺘﺏ ﺍﻷﻤﺭ regeditﻓﻲ ﺨﺎﻨﺔ ﺍﻷﻤﺭ ﻓﻲ ﺇﻁﺎﺭ ﺘﺸﻐﻴل… Runﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ ﺍﺒﺩﺃ ﺜﻡ
ﺍﻟﺩﻭﺍل ﺍﻟﺘﻲ ﻴﻭﻓﺭﻫﺎ VB .NETﻟﻠﺘﻌﺎﻤل ﻤﻊ ﺍﻟﻤﺴﺠِل ﻜﻤﺎ ﻴﻠﻲ:
ﻓﻲ ﺠل
ﻟﻠﻘـﺭﺍﺀﺓ ﻤـﻥ ﺍﻟﻤﺴ ِ
ﺠﺩﺕ.
ﺤﺎﻟﺔ ﻋﺩﻡ ﻭﺠﻭﺩ ﺍﻟﻤﻔﺘﺎﺡ Keyﺍﻟﻤﺤﺩﺩ ﻓﺈﻥ ﺍﻟﺩﺍﻟﺔ GetSettingﺴﹸﺘﻌﻴﺩ ﺍﻟﻭﺴﻴﻁﺔ ﺍﻟﺭﺍﺒﻌﺔ ﻓﻲ ﺘﺭﻜﻴﺒﻬﺎ ﺇﻥ ﻭ ِ
ﺇﻥ ﻟﻡ ﻴﻜﻥ ﺠل
ﻟﻠﻜـﺘﺎﺒﺔ ﺇﻟـﻰ ﺍﻟﻤﺴ ِ
ﺍﻟﻤﻔﺘﺎﺡ ﻤﻭﺠﻭﺩﹰﺍ ﺴﻴﺘﻡ ﺘﻜﻭﻴﻨﻪ.
ﻟﺤﺫﻑ ﻤﻔﺘﺎﺡ ﺃﻭ ﺠﺯﺀ ﺃﻭ ﺇﻋﺩﺍﺩﺍﺕ ﺘﻁﺒﻴﻕ
ﺒﻌـﺩ ﺘﻜﻭﻴﻥ ﻤﺸﺭﻭﻉ ﺠﻴﺩ ،ﻨﻀﻴﻑ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ ﻨﻤﻭﺫﺠﻴﻥ
ﺁﺨﺭﻴﻥ ﻓﻴﺼﺒﺢ ﻓﻴﻪ ﺜﻼﺜﺔ ﻨﻤﺎﺫﺝ .ﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻷﻭل ﻜﻤﺎ
ﻓﻲ ﺍﻟﺸﻜل ﺍﻟﻤﺠﺎﻭﺭ
Form1
ﺨﺼﺎﺌﺹ ﻜﺎﺌﻨﺎﺕ ﺍﻟﻨﻤﻭﺫﺝ Form1
Object Properties Value
Form
9
ﻟﻜـﻲ ﻴﺘﻌـ ﺭﻑ ﺍﻟـﻨﻤﻭﺫﺝ ﺍﻷﻭل ﻭﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺜﺎﻟﺙ ﻋﻠﻰ ﻤﺘﻐﻴﺭ ﻜﻠﻤﺔ ﺍﻟﻤﺭﻭﺭ pwdﺴﹸﻨﻌﻠﻥ ﻋﻨﻪ ﻓﻲ ﻭﺤﺩﺓ ﻨﻤﻁﻴﺔ ﻗﻴﺎﺴﻴﺔ Moduleﺒﻌﺩ
ﻭﻨﻜﺘﺏ ﺍﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻲ: ﺜﻡ ﺜﻡ ﺍﻷﻤﺭ ﺇﻀﺎﻓﺘﻬﺎ ﻟﻠﻤﺸﺭﻭﻉ ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ
ﻟﻠﻨﻤﻭﺫﺝ ﻭﻨﻜﺘﺏ ﻓﻲ ﻜﻭﺩ ﺒﺈﻀﺎﻓﺔ ﻋﻨﺼﺭ ﺘﺤﻜﻡ ﻭﻨﺼﻤﻡ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺜﺎﻨﻲ ﺍﻟﻘﺎﺌﻤﺔ ﺍﻟﺘﺎﻟﻴﺔ
Dim frm As New Form3 ﺍﻟﺒﻨﺩ ﺍﻟﺴﻁﺭﻴﻥ ﺍﻟﺘﺎﻟﻴﻴﻥ :
)(frm.ShowDialog
ﻭﻨﻜﺘﺏ ﻓﻲ ﺍﻟﻤﻘﻁﻊ Form2_Closedﺍﻷﻤﺭ End
ﻭﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺜﺎﻟﺙ Form3ﻜﻤﺎ ﻴﻠﻲ :
10
TabIndex 0
PasswordChar *
TextBox Name txtpnew
MaxLength 14
PasswordChar *
Visible False
TextBox Name txtpnew1
MaxLength 14
PasswordChar *
Visible False
Label Name lblpOld
Text ﺍﺩﺨل ﺍﻟﻜﻠﻤﺔ ﺍﻟﺤﺎﻟﻲ
Label Name lblpnew
Text ﺍﻟﻜﻠﻤﺔ ﺍﻟﺠﺩﻴﺩﺓ
Visible False
Label Name lblpnew1
Text ﺘﺄﻜﻴﺩﻫــﺎ
Visible False
Button Name btnCh
Text ﺘﻐﻴﻴﺭ
ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻨﻜﺘﺏ ﻓﻲ ﻤﻘﻁﻊ،Form3 ﻤﻘﺎﻁﻊ ﺍﻟﻨﻤﻭﺫﺝ
11
ﻋﺒﺎﺭﺓ ﺘﺼﺩ ﺍﻷﺨﻁﺎﺀ Tryﻭﺘﺭﻜﻴﺒﻬﺎ ﻜﻤﺎ ﻴﻠﻲ:
12
jﺍﻟﺨﻁﻭﺓ ﺍﻷﻭﻟﻰ ﻤﻥ ﻤﻌﺎﻟﺞ ﻨﻤﺎﺫﺝ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻫﻲ ﺇﻅﻬﺎﺭ ﺭﺴﺎﻟﺔ
ﺘﺭﺤﻴﺒﻴﺔ
13
mﺴـﻴﻅﻬﺭ ﺇﻁـﺎﺭ ﺨﺼﺎﺌﺹ ﺍﻻﺘﺼﺎل ﻟﺘﺤﺩﻴﺩ ﺍﻟﻤﻭﻓﱢﺭ ﻭﺴﻨﺠﺩ
ﺍﻟﻤﻭﻓﱢﺭ ﺍﻻﻓﺘﺭﺍﻀﻲ ﺒﺎﻟﻨﻘﺭ ﻋﻠﻰ ﻋﻼﻤﺔ ﺍﻟﺘﺒﻭﻴﺏ ﺍﻟﻤﻭﻓﱢﺭ Provider
،ﺴﻨﺴﺘﺨﺩﻡ ﻓﻲ ﻭﻫـﻭ
ﻤﺜﺎﻟـﻨﺎ ﺍﻟﻤﻭﻓﱢـﺭ Microsoft Jet 4.0 OLE DB Provider
أو اﻧ ﺘﻘﺎء ﻋﻼﻣ ﺔ اﻟﺘ ﺒﻮﯾﺐ اﺗﺼ ﺎل ﻓـــﻨﺤﺩﺩ ﻩ ﺜـــﻡ
Connection
14
pﻫـﺫﻩ ﺍﻟﺨﻁـﻭﺓ ﻤﺴﺌﻭﻟﺔ ﻋﻥ ﺘﺤﺩﻴﺩ ﺍﻟﺤﻘﻭل ﺍﻟﺘﻲ ﺴﺘﻅﻬﺭ ﻓﻲ
ﻜﺎﺌﻨﺎﺕ ﺍﻟﻨﻤﻭﺫﺝ ،ﺜﻡ
ﻓﻲ ﺤﺎﻟﺔ ﺍﺨﺘﻴﺎﺭ ﻨﻭﻉ ﻤﻭﱢﻓﺭ ﺁﺨﺭ ﻟﻼﺘﺼﺎل ﺒﺎﻟﺒﻴﺎﻨﺎﺕ ﻓﺈﻥ ﺇﻁﺎﺭ ﺨﺼﺎﺌﺹ ﺍﻻﺘﺼﺎل ﺴﻴﺘﻐﻴﺭ ﺤﺴﺏ ﻨﻭﻉ ﺍﻟﻤﻭﱢﻓﺭ .ﻜﻤﺎ ﺃﻥ ﻤﻌﺎﻟﺞ ﻨﻤﺎﺫﺝ
15
ﺍﻟﺒـﻴﺎﻨﺎﺕ ﻻ ﻴﺩﻋﻡ ﺍﻟﻤﻭﻓﱢﺭ . ODBC .NETﻓﻔﻲ ﺤﺎﻟﺔ ﺍﺴﺘﺨﺩﺍﻡ
ﺍﻟﻤﻭﻓـﺭ ODBC .NETﻓـﺈﻥ ﺍﺴﻡ ﺍﻟﻤﻭﻓﺭ ﺴﻴﻅﻬﺭ ﻓﻲ ﺇﻁﺎﺭ
ﺨﺼﺎﺌﺹ ﺍﻻﺘﺼﺎل ﻭﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل ﺍﻟﻤﺠﺎﻭﺭ ﻭﻟﻜﻥ ﻤﻌﺎﻟﺞ ﻨﻤﺎﺫﺝ
ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ VB .NETﻻ ﻴﺩﻋﻡ ﻫﺫﺍ ﺍﻟﻤﻭﻓﺭ ﻟﺫﻟﻙ ﻓﻲ ﻫﺫﻩ ﺍﻟﺤﺎﻟﺔ
ﻴﺠﺏ ﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﺒﺩﻭﻥ ﺍﻟﻤﻌﺎﻟﺞ .ﻭﻗﺒل ﺫﻟﻙ ﻴﺠﺏ ﺃﻥ ﻨﻜﻭﻥ ﻗﺩ
ﺃﻨﺸﺄﻨﺎ ﻤﺼﺩﺭ ﺒﻴﺎﻨﺎﺕ ﻭﻜﻤﺎ ﻴﻠﻲ
)) ODBC Data Sources (32 bitﻤﺼﺎﺩﺭ jﻓﻲ Windows 9xﻨﺸﹼﻐل ﻤﻥ ﻟﻭﺤﺔ ﺍﻟﺘﺤﻜﻡ Control Panelﺍﻟﺒﺭﻨﺎﻤﺞ
ﺒﻴﺎﻨﺎﺕ(
16
Single ﻭﻁﺭﻴﻘﺔ ﺍﻟﻌﺭﺽ ﺴﺠل ﻤﻔﺭﺩstuds ﻭﺍﺴﻡ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻫﻭMicrosoft Jet4.0 OLE DB ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﻭﻓﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﻪ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﺒﺩﻭﻥ ﻜﻭﺩ ﻤﻨﻁﻘﺔ ﻜﻭﺩ ﺘﻜﻭﻴﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻭﻓﻴﻤﺎ ﻴﻠﻲ ﺍﻟﻜﻭﺩ ﺍﻟﺫﻱ ﻜﺘﺒ، ﻤﻊ ﺘﻀﻤﻴﻥ ﻜﻠﻤﺔ ﻤﺭﻭﺭrecord
System.Data.OleDb
System.Data.SqlClient
Form_Load ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻭﻟﺼﻘﻪ ﻓﻲ ﺍﻟﻤﻘﻁﻊ ﻤﻜﻨـﻨﺎ ﻓﻲ ﻨﻤﻭﺫﺝ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻗﺹ ﻜﻭﺩ ﺍﻟﻤﻘﻁﻊ ﺍﻟﺨﺎﺹ ﺒﺯﺭ ﺍﻷﻤﺭﻴ
ل ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺜﻡ ﺇﻗﻔﺎل ﺍﻻﺘﺼﺎل ﺒﻤﺠﺭﺩ ﺍﻟﺘﻨﻔﻴﺫ ﺃﻭﻟﻴـﺘﻡ ﻓـﺘﺢ ﺍﻻﺘﺼـﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﺘﺤﻤﻴل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﻤﺤﻭ
19
ﻥ ﺒﻴﺎﻨﺎﺕ ﺤﻘﻠﻲ ﺍﻟﻘﺴﻡ ﻭﺍﻟﻔﺼل ﺘﹸﻌﺭﺽ ﻓﻲ ﻤﺭﺒﻌﻲ ﻨﺹ ﻭﺃﻥ ﺍﻟﻤﻌﺭﻭﺽ ﻫﻭ
ﺘﺤﻤﻴل ﺍﻟﻨﻤﻭﺫﺝ ﺇﻟﻰ ﺍﻟﺫﺍﻜﺭﺓ ﺍﻟﺭﺌﻴﺴﻴﺔ ) .(RAMﻨﻼﺤﻅ ﺃ
ﺍﻟﺭﻗﻡ ﻓﻨﺭﻏﺏ ﺒﻌﺭﺽ ﺍﻻﺴﻡ )ﺍﺴﻡ ﺍﻟﻘﺴﻡ ﺃﻭ ﺍﺴﻡ ﺍﻟﻔﺼل( ﺒﺩﻻﹰ ﻤﻥ ﺍﻟﺭﻗﻡ ﺫﻟﻙ ﻷﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻫﻭ ﻭﺍﺠﻬﺔ ﻟﻠﺘﻌﺎﻤل ﻤﻊ ﺍﻟﻤﺴﺘﺨﺩﻡ ،ﻓﻨﻀﻊ ﻓﻲ
ﺍﺴﻤ ﻪ cboDepﻟﻌﺭﺽ ﺃﺴﻤﺎﺀ ﺍﻷﻗﺴﺎﻡ ﻓﻲ ﺒﻨﻭﺩﻩ ﻭﻨﻔﺭﻍ ﺍﻟﺨﺎﺼﻴﺔ .Textﻭﻤﻥ ﺍﻟـﻨﻤﻭﺫﺝ ﻤـﺭﺒﻊ ﺘﺤﺭﻴـﺭ ﻭﺴـﺭﺩ
ﺨﺼـﺎﺌﺹ ﻤـﺭﺒﻊ ﺍﻟﺘﺤﺭﻴـﺭ ﻭﺍﻟﺴﺭﺩ ﺍﻟﺨﺎﺼﻴﺔ Itemsﻭﻫﻲ ﻤﺼﻔﻭﻓﺔ ﻤﺴﺌﻭﻟﺔ ﻋﻥ ﺒﻨﻭﺩ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ،ﻭﺍﻟﻔﻬﺭﺱ Index
ﻟﻠﻤﺼـﻔﻭﻓﺔ Itemsﻴـﺒﺩﺃ ﻤﻥ 0ﺇﻟﻰ ﻋﺩﺩ ﺍﻟﺒﻨﻭﺩ ، 1-ﻭﺍﻟﺨﺎﺼﻴﺔ SelectedIndexﻤﺴﺌﻭﻟﺔ ﻋﻥ ﻓﻬﺭﺱ ﺍﻟﺒﻨﺩ ﺍﻟﻤﻨﺘﻘﻰ ﻭﻓﻲ ﺤﺎﻟﺔ ﻋﺩﻡ
ﻥ ﻗﻴﻤﺘﻬﺎ ﻫﻲ ، -1ﺍﻟﺨﺎﺼﻴﺔ SelectedItemﻤﺴﺌﻭﻟﺔ ﻋﻥ ﺍﻟﺒﻨﺩ ﺍﻟﻤﻨﺘﻘﻰ ﻨﻔﺴﻪ ﻭﻫﻭ ﻋﺎﺩﺓ ﻨﺹ ،ﺍﻟﺨﺎﺼﻴﺔ Items.Count
ﺍﻨﺘﻘﺎﺀ ﺒﻨﺩ ﻓﺈ
ﻥ ﺍﻟﺨﺎﺼﻴﺔ
ﻋـﺩﺩ ﺍﻟﺒـﻨﻭﺩ ﻓﻬـﻲ ﺒﻁﺒـﻴﻌﺔ ﺍﻟﺤـﺎل ﺘـﺯﻴﺩ ﺒـﻭﺍﺤﺩ ﻋﻠـﻰ ﺃﻜﺒﺭ ﻗﻴﻤﺔ ﻤﻤﻜﻨﺔ ﻓﻲ ﺍﻟﺨﺎﺼﻴﺔ SelectedIndexﺫﻟﻙ ﻷ
SelectedIndexﺘﺒﺩﺃ ﻤﻥ ﺍﻟﺼﻔﺭ . Zero-basedﻭﻤﻥ ﺃﺴﺎﻟﻴﺏ Methodsﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﺍﻷﺴﻠﻭﺏ Items.Addﻹﻀﺎﻓﺔ
ﺒﻨﺩ ﺠﺩﻴﺩ ،ﺍﻷﺴﻠﻭﺏ Items.Insertﺍﻷﺴﻠﻭﺏ Items.Removeﺍﻷﺴﻠﻭﺏ .Items.Clear
ﺴـﻨﻘﻭﻡ ﺒﺠﻌل ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﻴﻌﺭﺽ ﺃﺴﻤﺎﺀ ﺍﻷﻗﺴﺎﻡ ﻭﻋﻨﺩ ﺍﻟﺘﻨﻘل ﻋِﺒﺭ ﺍﻟﺴﺠﻼﺕ ﻴﻌﺭﺽ ﻓﻴﻪ ﺍﺴﻡ ﺍﻟﻘﺴﻡ ﻟﺫﻟﻙ ﺍﻟﻁﺎﻟﺏ
ﻭﻤﻜﻨﻨﺎ
ﻭﻋـﻨﺩ ﺍﻟﺘﺤﺩﻴﺙ )ﺍﻹﻀﺎﻓﺔ ﺃﻭ ﺍﻟﺘﻐﻴﻴﺭ( ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﻴﺘﻡ ﺍﻟﺘﻐﻴﻴﺭ ﻓﻲ ﺍﻟﺭﻗﻡ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ،editdepﻴ
ﻋﻤل ﺫﻟﻙ ﺒﻌﺩﺓ ﻁﺭﻕ ﺴﻨﺫﻜﺭ ﻤﻨﻬﺎ ﻁﺭﻴﻘﺘﻴﻥ ﺍﻷﻭﻟﻰ ﺴﻨﺴﺘﺨﺩﻡ ﻤﻌﺎﻟﺞ ﻤﺤﻭﻻﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻫﻲ ﺒﺜﻼﺙ ﻤﺭﺍﺤل ﻭﻫﻲ ﻜﻤﺎ ﻴﻠﻲ:
ﺃﻭﹰﻻ ﻋﺭﺽ ﺃﺴﻤﺎﺀ ﺍﻷﻗﺴﺎﻡ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ cboDepﻭﻴﺘﻡ ﺫﻟﻙ ﺒﺎﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ
ﻟﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﻓﻴﺒﺩﺃ ﻤﻌﺎﻟﺞ ﻤﺤﻭﻻﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺎﻟﻌﻤل ﻓﺎﻟﺨﻁﻭﺓ ﺍﻷﻭﻟﻰ ﺘﺭﺤﻴﺒﻴﺔ ﻭ ﻓﻲ .1ﺇﻀﺎﻓﺔ ﻤﺤ ﻭل ﺒﻴﺎﻨﺎﺕ
ﺍﻟﺨﻁﻭﺓ ﺍﻟﺜﺎﻨﻴﺔ ﻨﺨﺘﺎﺭ ﺍﻻﺘﺼﺎل connectionﻭﻫﻭ ﻨﻔﺱ ﺍﻻﺘﺼﺎل
ﺍﻟـﺫﻱ ﺍﺴﺘﺨﺩﻤﻨﺎﻩ ﺴﺎﺒﻘﺎﹰ ﻟﻼﺘﺼﺎل ﺒﻘﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﺃﻤﺎ ﻓﻲ ﺍﻟﺨﻁﻭﺓ
ﺍﻟﺜﺎﻟـﺜﺔ ﻓﻴﻅﻬـﺭ ﺍﻹﻁﺎﺭ ﺍﻟﻤﺠﺎﻭﺭ ﻭﻫﻭ ﻟﺘﺤﺩﻴﺩ ﻨﻭﻉ ﺍﻻﺴﺘﻌﻼﻡ ﺃﻭ
ﻁـﺭﻴﻘﺔ ﻭﺼﻭل ﻤﺤﻭل ﺍﻟﺒﻴﺎﻨﺎﺕ ﺇﻟﻰ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻓﻲ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ،
ﻭﻴﻌﻨﻲ ﺍﺴﺘﺨﺩﺍﻡ ﻭﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﻤﺘﺎﺡ ﻫﻭ
ﻋـﺒﺎﺭﺍﺕ SQLﻟﻐﺔ ﺍﻻﺴﺘﻌﻼﻡ ﺍﻟﺒﻨﻴﻭﻴﺔ Structured Query
Language
20
ﻟﺘﺤﺪﯾﺪ ﻓﻨﻌﻭﺩ ﺇﻟﻰ ﺍﻟﺨﻁﻭﺓ ﺍﻟﺭﺍﺒﻌﺔ ﻤﻥ ﺍﻟﻤﻌﺎﻟﺞ ﻭﻨﺨﺘﺎﺭ ﺴﺘﺘﻡ ﺒﺫﻟﻙ ﻜﺘﺎﺒﺔ ﻋﺒﺎﺭﺓ SQLﺜﻡ ﻨﺨﺘﺎﺭ
ﺃﻭﺍﻤــﺭ ﻤﺤــ ﻭل ﺍﻟﺒــﻴﺎﻨﺎﺕ ﻓــﻨﻌﻁﹼل ﺨﺎﻨــﺔ ﺍﻟﺘﺩﻗــﻴﻕ
ﻭﻫــﻨﺎﻙ
ﺃﺭﺒﻌﺔ ﺃﻭﺍﻤﺭ ﻟﻤﺤ ﻭل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻫﻲ
SelectCommandﻻﺨﺘﻴﺎﺭ ﺍﻟﺤﻘﻭل )ﺍﻷﻋﻤﺩﺓ(
InsertCommandﻹﺩﺭﺍﺝ ﺴﺠل )ﺼﻑ(
UpdateCommandﻟﺘﺤﺩﻴﺙ ﺍﻟﺒﻴﺎﻨﺎﺕ
DeleteCommandﻟﺤﺫﻑ ﺴﺠل )ﺼﻑ(
ﻓﻲ ﻤﻌﺎﻟﺞ ﻤﺤﻭﻻﺕ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﺍﻟﺨﻁﻭﺓ ﺍﻷﺨﻴﺭﺓ ﻫﻲ ﺨﻼﺼﺔ ﻻﺨﺘﻴﺎﺭﺍﺘﻨﺎ ﻓﻲ ﺜﻡ ﺒـﺫﻟﻙ ﻟﻡ ﻨﺴﺘﺨﺩﻡ ﺇﻻ ﺃﻤﺭ ﺍﻻﺨﺘﻴﺎﺭ ﺜﻡ
.ﺜﻡ ﻓﻲ ﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﻨﺤﺩﺩ ﻤﺤﻭل ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﻨﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺴﺎﺒﻘﺔ ﻨﺨﺘﺎﺭ ﻤﻨﻬﺎ
ﺜﻡ ﻓﻴﻅﻬﺭ ﺇﻁﺎﺭ ﺇﻀﺎﻓﺔ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ ﻨﺨﺘﺎﺭ .2ﺇﻀـﺎﻓﺔ ﻜـﺎﺌﻥ ﻤﺠﻤـﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ
ﻭﻨﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ
.3ﺴﻨﻌﺒﺊ ﺒﻨﻭﺩ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﻤﻥ ﺨﻼل ﺍﻟﻜﻭﺩ ﻭﻜﻤﺎ ﻴﻠﻲ:
ﻋﻥ ﻤﺼﻔﻭﻓﺔ ﺃ .ﻨﹸﻌﻠـﻥ ﻓـﻲ ﻗﺴـﻡ ﺍﻹﻋﻼﻨﺎﺕ ﺍﻟﻌﺎﻤﺔ ﻟﻠﻨﻤﻭﺫﺝ
ﺴﺘﺨ ﺯﻥ ﺃﺭﻗﺎﻡ ﺍﻷﻗﺴﺎﻡ Dim arrdep( ) As String
ﺏ .ﻨﻜـﺘﺏ ﺍﻟﻜـﻭﺩ ﺍﻟﺘﺎﻟﻲ ﻓﻲ ﺍﻟﻤﻘﻁﻊ FillDataSetﻓﺒﻌﺩ ﺍﻟﺴﻁﺭ )(Me.OleDbConnection1.Openﺍﻟﺫﻱ ﻴﻔﺘﺢ ﺍﻻﺘﺼﺎل ﻤﻊ
ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻨﻜﺘﺏ) Me.oleDbDadep.Fill(Me.objdepdsﺒﺫﻟﻙ ﻴﺘﻡ ﺘﻌﺒﺌﺔ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﻤﺤﻭل ﺍﻟﺒﻴﺎﻨﺎﺕ .ﻭﻓﻲ ﺍﻟﺤﻘﻴﻘﺔ
ﻥ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻋﺒﺎﺭﺓ ﻋﻥ ﺒﻴﺎﻨﺎﺕ ﻓﻲ ﺍﻟﺫﺍﻜﺭﺓ ﻤﻥ ﻋﺩﺓ ﺠﺩﺍﻭل ﻗﺩ ﺘﻜﻭﻥ ﺒﻴﻨﻬﺎ ﻋﻼﻗﺎﺕ ﻴﺤﻔﻅ ﻤﺨﻁﻁﻬﺎ ﻓﻲ ﻤﻠﻑ .xsd
ﻓﺈ
ﻤﺎ ﻴﻠﻲ: ﺕ .ﻨﻜﺘﺏ ﻓﻲ ﻨﻔﺱ ﺍﻟﻤﻘﻁﻊ FillDataSetﺒﻌﺩ ﺍﻟﺴﻁﺭ ﺍﻟﺫﻱ ﻴﻐﻠﻕ ﺍﻻﺘﺼﺎل)(Me.OleDbConnection1.Close
ﺤﺘﻰ ﻫﺫﻩ ﺍﻟﻤﺭﺤﻠﺔ ﻨﻨﻔﺫ Runﻟﻨﺘﺄﻜﺩ ﻤﻥ ﻋﻤﻠﻨﺎ ،ﻴﺠﺏ ﺃﻥ ﺘﻅﻬﺭ ﺍﻷﻗﺴﺎﻡ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ.
ﺜﺎﻨﻴﹰﺎ ﻋﺭﺽ ﺍﺴﻡ ﺍﻟﻘﺴﻡ ﻟﻠﺴﺠل ﺍﻟﺤﺎﻟﻲ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ cboDepﻋﻨﺩ ﺍﻟﺘﻨﻘل ﻋِﺒﺭ ﺍﻟﺴﺠﻼﺕ ﻭﻴﺘﻡ ﺫﻟﻙ ﺒﺈﻀﺎﻓﺔ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ
ﻟﻠﻤﻘﻁﻊ objstuds_PositionChangedﻭﺍﻟﺫﻱ ﻜﺘﺒﻪ ﺍﻟﻤﻌﺎﻟﺞ ﻭﻤﻬﻤﺘ ﻪ ﻋﺭﺽ ﺭﻗﻡ ﺘﺴﻠﺴل ﺍﻟﺴﺠل ﻭﺍﻟﻌﺩﺩ ﺍﻟﻜﻠﻲ ﻟﻠﺴﺠﻼﺕ ﺃﺜﻨﺎﺀ ﺍﻟﺘﻨﻘل
21
ﺜﻡ ﻨﻨﻔﺫ ﻟﺘﺠﺭﺒﺔ ﺍﻟﻜﻭﺩ ،ﻓﻌﻨﺩ ﺍﻟﺘﻨﻘل ﻴﺠﺏ ﺃﻥ ﻴﻌﺭﺽ ﺍﻟﻘﺴﻡ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ.
ﺜﺎﻟـﺜﹰﺎ ﻋﻨﺩ ﺍﻟﺘﺤﺩﻴﺙ )ﺇﻀﺎﻓﺔ ﺃﻭ ﺘﻐﻴﻴﺭ( ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ cboDepﻴﺘﻡ ﺘﺤﺩﻴﺙ ﻤﺭﺒﻊ ﺍﻟﻨﺹ editdepﻭﺫﻟﻙ ﺒﺈﻀﺎﻓﺔ ﺍﻟﻜﻭﺩ
ﺍﻟﺘﺎﻟﻲ ﻟﻠﻤﻘﻁﻊ ﺍﻟﺨﺎﺹ ﺒﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﻋﻨﺩ ﺘﻐﻴﻴﺭ ﺍﻟﺒﻨﺩ ﺍﻟﻤﻨﺘﻘﻰ cboDep_SelectedIndexChanged
ﻥ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﺃﺼﺒﺢ ﻤﺭﺘﺒﻁﹰﺎ ﺒﺤﻘل ﺍﻟﻘﺴﻡ ﻓﻲ ﺠﺩﻭل ﺍﻟﻁﻠﺒﺔ ﻭﻴﻌﺭﺽ ﺃﺴﻤﺎﺀ ﺍﻷﻗﺴﺎﻡ.
ﻋﻨﺩ ﺍﻟﺘﻨﻔﻴﺫ ﺴﻨﺠﺩ ﺃ
ﺍﻟﻁـﺭﻴﻘﺔ ﺍﻟﺜﺎﻨﻴﺔ ﻟﺠﻌل ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﻤﺭﺘﺒﻁﺎﹰ ﺒﺎﻟﺤﻘل ﺴﻨﻁﺒﻘﻬﺎ ﻋﻠﻰ ﺤﻘل ﺍﻟﻔﺼل ﻭﺒﺩﻭﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻌﺎﻟﺞ ﺤﻴﺙ ﻨﻘﻭﻡ
ﺒﺈﻀـﺎﻓﺔ ﻤـﺭﺒﻊ ﺘﺤﺭﻴﺭ ﻭﺴﺭﺩ ) (combo boxﻟﺘﺼﻤﻴﻡ ﻨﻤﻭﺫﺝ ﺍﻟﻁﻠﺒﺔ ﻭﻨﺴﻤﻴﻪ cbosemﻭﻨﻔﺭﻍ ﺍﻟﺨﺎﺼﻴﺔ Textﻭﻗﺕ ﺍﻟﺘﺼﻤﻴﻡ ﺜﻡ
ﻨﻁ ﻭﺭ ﺍﻟﻤﻘﻁﻊ FillDataSetﻭﺒﺩﻭﻥ ﺇﻀﺎﻓﺔ ﻜﺎﺌﻥ ﻤﺤ ﻭل ﺒﻴﺎﻨﺎﺕ ﺃﻭ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ ﻭﻗﺕ ﺍﻟﺘﺼﻤﻴﻡ ﻟﻠﻨﻤﻭﺫﺝ ﻭﻜﻤﺎ ﻴﻠﻲ:
.1ﻨﹸﻌﻠـﻥ ﻋـﻥ ﻜﺎﺌﻥ ﻜﻤﺤ ﻭل ﺒﻴﺎﻨﺎﺕ daSemﻭﻨﻜﺘﺏ ﻋﺒﺎﺭﺓ SQLﺍﻟﺘﻲ ﺘﻨﺘﻘﻲ ﺠﻤﻴﻊ ﺤﻘﻭل ﺠﺩﻭل ﺍﻟﻔﺼﻭل ) ، (semﻜﻤﺎ ﹸﻨﻌﻠﻥ ﻋﻥ
ﻜﺎﺌﻥ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ dsSemﻭﺫﻟﻙ ﻗﺒل ﺍﻟﻌﺒﺎﺭﺓ Try
.2ﺘﻌﺒـﺌﺔ ﻜـﺎﺌﻥ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻤﻥ ﻤﺤﻭل ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﺠﺩﻭل ﺍﻟﻔﺼﻭل ﺒﻌﺩ ﺴﻁﺭ ﻓﺘﺢ ﺍﻻﺘﺼﺎل ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﻤﻘﻁﻊ FillDataSet
ﻭﺫﻟﻙ ﺒﺎﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻲ:
.3ﺜﻡ ﻨﻘﻭﻡ ﺒﻀﺒﻁ ﺜﻼﺙ ﺨﺼﺎﺌﺹ ﻟﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﻤﻥ ﺨﻼل ﺍﻟﻜﻭﺩ ﻫﻲ:
DisplayMemberﻤﺴﺌﻭﻟﺔ ﻋﻥ ﺍﺴﻡ ﺍﻟﺤﻘل ﺍﻟﺫﻱ ﻴﺤﺘﻭﻱ ﺍﻟﻨﺹ ﺍﻟﻤﺭﺍﺩ ﻋﺭﻀﻪ ﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﺨﺎﺼﻴﺔ DataSource
ValueMemderﻤﺴﺌﻭﻟﺔ ﻋﻥ ﺍﺴﻡ ﺤﻘل ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﻘﺎﺒﻠﺔ ﻟﻠﻨﺹ ﻭﺍﻟﻤﻭﺠﻭﺩ ﻓﻲ ﺍﻟﺨﺎﺼﻴﺔ ﻤﺼﺩﺭ ﻋﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ DataSource
DataSourceﺍﻟﺨﺎﺼﻴﺔ ﻤﺼﺩﺭ ﻋﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ ﻭﻫﻲ ﺍﺴﻡ ﻤﺠﻤﻭﻋﺔ ﺒﻴﺎﻨﺎﺕ ﺃﻭ ﻤﺼﻔﻭﻓﺔ ﻴﺴﺘﻨﺩ ﻋﻠﻴﻬﺎ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﺒﺒﻨﻭﺩﻩ
ﻭﻴﺘﻡ ﺫﻟﻙ ﺒﻜﺘﺎﺒﺔ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﺒﻌﺩ ﺴﻁﺭ ﺇﻏﻼﻕ ﺍﻻﺘﺼﺎل ﻟﻨﺠﻌل ﻓﺘﺭﺓ ﻓﺘﺢ ﺍﻻﺘﺼﺎل ﺃﻗل ﻤﺎ ﻴﻤﻜﻥ
ﺣﺴﺎﺳﺔ ﻟﺤﺎﻟﺔ اﻷﺣﺮف
اﺳﻢ اﻟﺤﻘﻞ
ﻟﻠﺘﺤﺪﯾﺚ
ﺍﻟﺴـﻁﺭ ﺍﻷﺨﻴـﺭ ﺍﻟﺴـﺎﺒﻕ ﻟﺭﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ SelectedValueﻟﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ﺒﺤﻘل ﺍﻟﻔﺼل ﻓﻲ ﺠﺩﻭل ﺍﻟﻁﻠﺒﺔ ﻭﺫﻟﻙ ﻟﺘﺤﺩﻴﺙ
ﺍﻟﻔﺼل ﺤﺴﺏ ﺍﻻﺨﺘﻴﺎﺭ ﺍﻟﺫﻱ ﻴﺤﺩﺩﻩ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺴﺭﺩ ،ﻓﺎﺴﺘﺨﺩﻤﻨﺎ ﺍﺴﻡ ﻜﺎﺌﻥ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻟﺠﺩﻭل ﺍﻟﻁﻠﺒﺔ.
ﺍﻟﺨﺎﺼـﻴﺔ ) DataBindingsﺭﺒﻁ ﺍﻟﺒﻴﺎﻨﺎﺕ( ﺘﹸﻌﻴﺩ ﺭﺒﻁ ﺒﻴﺎﻨﺎﺕ ﺒﻌﻨﺼﺭ ﺘﺤﻜﻡ .ﻭﺘﺴﺘﺨﺩﻡ ﻹﻀﺎﻓﺔ ﻜﺎﺌﻥ ﺭﺒﻁ ﻟﻤﺠﻤﻭﻋﺔ ﺍﻟﺭﺒﻁ ﻟﻌﻨﺼﺭ
ﺍﻟﺘﺤﻜﻡ ControlBindingsCollectionﻟ ﺮﺑﻂ ﺃﻱ ﺨﺎﺼﻴﺔ ﻟﻌﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ ﺭﺒﻁﻬﺎ ﺒﺎﻟﺨﺎﺼﻴﺔ ﺍﻟﺘﻲ ﻴﻤﻠﻜﻬﺎ ﺍﻟﻜﺎﺌﻥ .ﻓﺄﻭل ﻭﺴﻴﻁﺔ ﻋﻨﺩ
ﺍﻹﻀﺎﻓﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻷﺴﻠﻭﺏ Addﻫﻲ ﺍﺴﻡ ﺍﻟﺨﺎﺼﻴﺔ ﻜﻨﺹ ،ﻭﺍﻟﻭﺴﻴﻁﺔ ﺍﻟﺜﺎﻨﻴﺔ ﺍﺴﻡ ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ ،ﻭﺍﻟﺜﺎﻟﺜﺔ ﻻﺴﻡ ﺍﻟﺤﻘل ﻜﻨﺹ.
ﻨﻼﺤﻅ ﺃﻨﻨﺎ ﻓﻲ ﺍﻷﺴﻠﻭﺏ ﺍﻷﻭل ﻟﻡ ﻨﺴﺘﻐﻨﻲ ﻋﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ، editdepﺒﻴﻨﻤﺎ ﻓﻲ ﺍﻷﺴﻠﻭﺏ ﺍﻟﺜﺎﻨﻲ ﻴﻤﻜﻨﻨﺎ ﺍﻻﺴﺘﻐﻨﺎﺀ ﻋﻥ ﻤﺭﺒﻊ
ﺍﻟﻨﺹ editsemﺒﺤﺫﻓﻪ .ﺍﻷﺴﻠﻭﺏ ﺍﻟﺜﺎﻨﻲ ﻴﺤﺘﺎﺝ ﻤﻌﺭﻓﺔ ﺒﻌﺒﺎﺭﺍﺕ ﻟﻐﺔ ، SQLﻭﻓﻲ ﺤﺎﻟﺔ ﻭﺠﻭﺩ ﻓﺭﺍﻏﺎﺕ ﻓﻲ ﺃﺴﻤﺎﺀ ﺍﻟﺠﺩﺍﻭل ﺃﻭ ﺃﺴﻤﺎﺀ
ﺍﻟﻔﺼﻭل ﻓﻨﻀﻊ ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺃﻭ ﺍﺴﻡ ﺍﻟﺤﻘل ﺒﻴﻥ ﻤﻌﻘﻔﺎﺕ ] [ ﻤﺜﻼ "]ﺠﺩﻭل ﺍﻟﻁﻠﺒﺔ[].ﺭﻗﻡ ﺍﻟﻘﺴﻡ[" .
ﺒﺎﻟﻨﺴﺒﺔ ﻟﻠﺤﻘﻭل ﺍﻟﻤﺭﻤﺯﺓ ﺘﺭﻤﻴﺯﹰﺍ ﻤﻐﻠﻘﹰﺎ ﻓﻨﻀﻊ ﺇﻁﺎﺭ ﻤﺠﻤﻭﻋﺔ Group Boxﺜﻡ ﻨﺭﺴﻡ ﺒﺩﺍﺨﻠﻪ ﺃﺯﺭﺍﺭ ﺨﻴﺎﺭ Radio Buttons
ﺒﻌـﺩﺩ ﺍﻟﻘـﻴﻡ ﺍﻟﻤﻤﻜـﻨﺔ ﺍﻟﻅﻬﻭﺭ ﻭﻨﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ Textﻟﻠﻤﺠﻤﻭﻋﺔ ﻭﻷﺯﺭﺍﺭ ﺍﻟﺨﻴﺎﺭ ﺒﺎﻟﻨﺹ ﺍﻟﻤﻨﺎﺴﺏ ،ﻓﻤﺜﻼﹰ ﻟﺤﻘل ﺍﻟﺠﻨﺱ ﻨﻜﺘﺏ ﻓﻲ
ﺍﻟﺨﺎﺼﻴﺔ Textﻟﻠﻤﺠﻤﻭﻋﺔ ﻋﻠﻰ ﺍﻟﺠﻨﺱ ،ﻭﻷﺤﺩ ﺃﺯﺭﺍﺭ ﺍﻟﺨﻴﺎﺭ ﺫﻜﺭ ﻭﻟﻶﺨﺭ ﺃﻨﺜﻰ ﻜﻤﺎ ﻨﻀﺒﻁ ﺨﺎﺼﻴﺔ Nameﻟﻬﺎ ﻜﻤﺎ ﻴﻠﻲ:
22
ﻭﻨﻜﺘﺏ ﻓﻲ ﺍﻟﻤﻘﻁﻊ objstuds_PositionChangedﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ: RadMﻟﻠﺫﻜﺭ ﻭ RadFﻟﻸﻨﺜﻰ
ﺜﻡ ﻨﻜﺘﺏ ﻓﻲ ﻜل ﻤﻥ ﺯﺭﻱ ﺍﻟﺨﻴﺎﺭ ﻓﻲ ﺍﻟﺤﺩﺙ ﻋﻨﺩ ﺍﻟﺘﻐﻴﻴﺭ ﺴﻁﺭﹰﺍ ﻤﻬﻤﺘ ﻪ ﺘﻐﻴﻴﺭ ﺍﻟﻘﻴﻤﺔ ﻓﻲ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻭﻜﻤﺎ ﻴﻠﻲ:
ﻋـﻨﺩ ﺍﻟﺘﻨﻔـﻴﺫ ﺴـﻨﺠﺩ ﺃﻥ ﺃﺯﺭﺍﺭ ﺍﻟﺨﻴﺎﺭ ﺃﺼﺒﺤﺕ ﻤﺭﺘﺒﻁﺔ ﺒﻤﺭﺒﻊ ﺍﻟﻨﺹ ﻭﻟﻜﻥ ﻻ ﻨﺴﺘﻁﻴﻊ ﺍﻻﺴﺘﻐﻨﺎﺀ ﻋﻥ ﻤﺭﺒﻊ ﺍﻟﻨﺹ ﺒل ﻨﻘﻭﻡ ﺒﻀﺒﻁ
ﻼ ﻭﻫﻲ ﺘﺘﺒﻊ ﺍﻟﺨﺎﺼﻴﺔ Location
Enabledﻋﻠﻰ Falseﻭﺘﻐﻴﻴﺭ ﻤﻭﻗﻌﻪ ﺒﺤﻴﺙ ﻻ ﻴﺭﻯ ﺒﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ Xﻋﻠﻰ -20ﻤﺜ ﹰ ﺍﻟﺨﺎﺼﻴﺔ
ﺒﺤﻴﺙ ﻻ ﻴﺭﻯ ﻭﺤﺫﻑ ﺍﻟﺘﺴﻤﻴﺔ ﺍﻟﻤﺭﺍﻓﻘﺔ ﻟﻪ.
ﺃﻤـﺜﻠﺔ ﻋﻥ ﻋﺭﺽ ﺍﻟﻨﻤﺎﺫﺝ) :ﻤﺜﺎل ﺍﻟﻼﺸﻔﺎﻓﻴﺔ( ﻟﻌﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﺒﺸﻜل ﻤﺘﺩﺭﺝ ﻤﻥ ﺤﻴﺙ ﺍﻟﺸﻔﺎﻓﻴﺔ ،ﻭﻜﺫﻟﻙ ﻋﻨﺩ ﺇﻏﻼﻕ ﺍﻟﻨﻤﻭﺫﺝ
ﺒﺎﺴـﺘﺨﺩﺍﻡ ﺯﺭ ﺃﻤﺭ ﻓﻴﺨﺘﻔﻲ ﺒﺸﻜل ﺘﺩﺭﻴﺠﻲ ﻨﻀﻊ Timerﻭﻨﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ Enabled = Trueﻭﺍﻟﺨﺎﺼﻴﺔ ، Interval = 10
ﻭﺒﺎﻟﻨﺴـﺒﺔ ﻟﻠﻨﻤﻭﺫﺝ ﻓﻨﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ ) Opacity=0%ﺍﻟﻼﺸﻔﺎﻓﻴﺔ( ،ﻭﺍﻟﺨﺎﺼﻴﺔ CancelButtonﻋﻠﻰ ﺍﺴﻡ ﺯﺭ ﺍﻷﻤﺭ ﺇﻏﻼﻕ ،ﻭﻨﻜﺘﺏ
)(If Me.Opacity >= 1 Then Me.Timer1.Stop ﻓﻲ ﻤﻘﻁﻊ ﺍﻟﻤﻭﻗﱢﺕ ﺍﻟﺴﻁﺭﻴﻥ ﺍﻟﺘﺎﻟﻴﻴﻥ:
Me.Opacity += 0.05
ﻭﻨﻜﺘﺏ ﻓﻲ ﺍﻟﻤﻘﻁﻊ ﺍﻟﺨﺎﺹ ﺒﺎﻟﻨﻤﻭﺫﺝ ﺤﺩﺙ ﻋﻨﺩ ﺍﻹﻏﻼﻕ Closedﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ:
Do While Me.Opacity > 0.1 ' ﻓﻲ ﺍﻟﻤﻘﻁﻊ DataForm1_Closed
Me.Opacity -= 0.05
Loop
ﺃﻭ ﻨﺴﺘﺨﺩﻡ ﺍﻷﺴﻠﻭﺏ ﺍﻟﺘﺎﻟﻲ :ﹸﻨﻌﻠﻥ ﻋﻥ ﻤﺘﻐﻴﺭ ﻤﻨﻁﻘﻲ
23
ﺜﻡ ﻨﻜﺘﺏ ﺍﻟﺴﻁﺭﻴﻥ ﺍﻟﺘﺎﻟﻴﻴﻥ ﻓﻲ ﺍﻟﻤﻘﻁﻊ ﺍﻟﺨﺎﺹ ﺒﺯﺭ ﺍﻷﻤﺭ ﺇﻏﻼﻕ ﻋﻨﺩ ﺍﻟﻨﻘﺭ
ﻋﻨﺩ ﺍﻟﺘﻨﻔﻴﺫ ﺴﻴﻅﻬﺭ ﺍﻟﻨﻤﻭﺫﺝ ﺘﺩﺭﻴﺠﻴﹰﺎ ﻭﻋﻨﺩ ﺍﻟﻨﻘﺭ ﻋﻠﻰ ﺇﻏﻼﻕ ﺃﻭ ﻀﻐﻁ ﺍﻟﻤﻔﺘﺎﺡ Escﺴﻴﺨﺘﻔﻲ ﺍﻟﻨﻤﻭﺫﺝ ﺘﺩﺭﻴﺠﻴﹰﺎ.
ﻤﺜﺎل )ﺭﺴﻡ ﺨﻁ( ﻟﻌﺭﺽ ﺨﻁ Lineﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﻨﻘﻭﻡ ﺒﺭﺴﻤﻪ ﻭﻗﺕ ﺍﻟﺘﻨﻔﻴﺫ ﺒﻜﺘﺎﺒﺔ ﺍﻟﻜﻭﺩ ﺍﻟﺘﺎﻟﻲ ﻓﻲ ﺍﻟﺤﺩﺙ Form_Load
DrawRectangle ﻭ
DrawEllipse ﺍﻷﺴﻠﻭﺏ
ﺤﻴﺙ ﺍﻟﻨﻘﻁﺔ ) (0 , 0ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ﻫﻲ ﺍﻟﺯﺍﻭﻴﺔ ﺍﻟﻌﻠﻴﺎ ﺍﻟﻴﺴﺭﻯ ﻟﻠﻨﻤﻭﺫﺝ ،ﻭﻭﺤﺩﺓ ﺍﻟﻘﻴﺎﺱ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻟﻺﺤﺩﺍﺜﻴﺎﺕ ﻫﻲ ﺍﻟﺒﻜﺴل
،Color.Pink ،Color.Red ﺍﻨـﺞ ﻭﺤﺴـﺏ ﺩﻗﺔ ﺍﻟﺸﺎﺸﺔ .Resolutionﻭﻤﻥ ﺃﻤﺜﻠﺔ ﺍﻷﻟﻭﺍﻥ ﻟﻠﻌﻨﺼﺭ Colorﻫﻲ 1 ﻭﻫـﻭ
72
.Color.YellowGreen ،Color.Yellow ،Color.White ،Color.Black
ﻟﻘـﺩ ﺍﺴﺘﺨﺩﻤﻨﺎ ﻓﻲ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ ﺍﻟﺨﺎﺼﻴﺔ Widthﻟﻠﻨﻤﻭﺫﺝ ﻭﻫﻲ ﻤﺴﺌﻭﻟﺔ ﻋﻥ ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﻭﺒﺸﻜل ﻋﺎﻡ ﻋﻥ ﻋﺭﺽ ﺍﻟﻜﺎﺌﻥ ،ﻭﻤﻥ
ﺃﺨـﻭﺍﺘﻬﺎ ﺍﻟﺨﺎﺼﻴﺔ Heightﺍﻻﺭﺘﻔﺎﻉ ،ﻭﺍﻟﺨﺎﺼﻴﺔ Topﺃﻋﻠﻰ ،ﻭﺍﻟﺨﺎﺼﻴﺔ Leftﻴﺴﺎﺭ ،ﻓﺎﻟﺨﺎﺼﻴﺘﻴﻥ Widthﻭ Heightﺘﺘﺤﻜﻤﺎﻥ
ﺒﺤﺠﻡ ﺍﻟﻨﻤﻭﺫﺝ ،ﺒﻴﻨﻤﺎ ﺍﻟﺨﺎﺼﻴﺘﻴﻥ Leftﻭ Topﻟﻠﺘﺤﻜﻡ ﺒﻤﻭﻗﻊ ﺍﻟﻨﻤﻭﺫﺝ ﻋﻠﻰ ﺍﻟﺸﺎﺸﺔ.
24
ﻤﺜﺎل )ﻭﺍﺠﻪ ﺍﻟﺘﻁﺒﻴﻕ( ﻟﺠﻌل ﻨﻤﺎﺫﺝ ﺍﻟﻤﺸﺭﻭﻉ ﹸﺘﻌﺭﺽ ﺒﺄﺴﻠﻭﺏ ﻭﺍﺠﻬﺔ ﻤﺘﻌﺩﺩﺓ ﺍﻟﻤﺴﺘﻨﺩﺍﺕ )Multiple Document (MDI
ﻟﻠﻨﻤﻭﺫﺝ ﺍﻷﺏ ،ﻭﻋﻨﺩ ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻻﺒﻥ ﻤﻥ ﺨﻼل ﺍﻟﻨﻤﻭﺫﺝ ﺍﻷﺏ ﻨﺤﺩﺩ Interfaceﻨﻀـﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ
Dim frm As New Form2 ﻟ ﻪ ﺨﺎﺼﻴﺔ ﺍﻷﺏ MdiParentﻭﻜﻤﺎ ﻴﻠﻲ :
' frm.MdiParent = Me اﻷب ﻟﻠﻨﻤﻮذج اﻟﺬي ﺳﯿﻌﺮض ﻫﻮ اﻟﻨﻤﻮذج اﳊﺎﱄ
)(frm.Show
ﺒﻴﻨﻤﺎ ﺍﻟﻭﺍﺠﻬﺔ ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻟﻨﻤﺎﺫﺝ ﺍﻟﺘﻁﺒﻴﻕ ﻫﻲ .(Single Document Interface) SDI
ﻤﺜﺎل )ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﻤﺸﺭﻭﻁ( ﻟﻌﺭﺽ ﻨﻤﻭﺫﺝ ﺒﺸﻜل ﻤﺸﺭﻭﻁ ﺒﻤﻌﻨﻰ ﻻ ﻴﻤﻜﻥ ﺍﻻﺴﺘﻤﺭﺍﺭ ﺒﺎﻟﻌﻤل ﺒﺎﻟﻨﻤﺎﺫﺝ ﺍﻷﺨﺭﻯ ﺒﺎﻟﺘﻁﺒﻴﻕ ﻤﺎ ﻟﻡ
ﻴﺘﻡ ﺍﻻﻨﺘﻬﺎﺀ ﻤﻥ ﺍﻟﻌﻤل ﺒﺎﻟﻨﻤﻭﺫﺝ ﺍﻟﻤﺸﺭﻭﻁ ﻭﺇﻏﻼﻗﻪ ،ﻓﻨﺴﺘﺨﺩﻡ ﺍﻷﺴﻠﻭﺏ ، ShowDialogﻭﻴﺠﺏ ﺃﻥ ﻻ ﻴﻜﻭﻥ ﻨﻤﻭﺫﺝ ﺍﺒﻥ ،ﺒﻤﻌﻨﻰ ﺃﻥ
ﻭﺴﻤﻰ ﻋﻨﺩ ﺇ ٍﺫ ) Modalﻤﺸﺭﻭﻁ( .ﺃﻤﺎ ﻋﻨﺩ ﺍﻟﻌﺭﺽ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻷﺴﻠﻭﺏ Show
ﺍﻟـﻨﻤﻭﺫﺝ ﺍﻟﻤﺸﺭﻭﻁ ﻴﺠﺏ ﺃﻥ ﻴﻜﻭﻥ . SDI formﻴ
ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﻤﺸﺭﻭﻁﺎﹰ ﻴﺨﺘﻠﻑ ﻋﻥ ﻤﻔﻬﻭﻡ ﻋﺭﺽ ﺍﻟﻨﻤﻭﺫﺝ ﻓﻲ ﺍﻟﻤﻘﺩﻤﺔ ﺍﻟﺫﻱ ﺘﺘﺤﻜﻡ ﺒﻪ
ﻓﺴﻤﻰ ﺃﺴﻠﻭﺏ ﺍﻟﻌﺭﺽ ﺒـ . Modelessﻭ
ﻴ
ﻭﻫﻲ ﺨﺎﺼﻴﺔ ﻤﻨﻁﻘﻴﺔ ﻋﻨﺩ ﻀﺒﻁﻬﺎ ﻋﻠﻰ Trueﺘﺠﻌل ﺍﻟﻨﻤﻭﺫﺝ ﻓﻲ ﻤﻘﺩﻤﺔ ﺍﻟﻨﻤﺎﺫﺝ ﻭﻟﻜﻥ ﻴﻤﻜﻥ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﺍﻟﺨﺎﺼـﻴﺔ
ﺒﻘﻴﺔ ﻨﻤﺎﺫﺝ ﺍﻟﺘﻁﺒﻴﻕ ﻋﻠﻰ ﺍﻟﺭﻏﻡ ﻤﻥ ﻭﺠﻭﺩﻩ.
ﻻﺨﺘـﻴﺎﺭ ﺍﻟﺘﺎﺭﻴﺦ( ﺇﺫﺍ ﻜﺎﻥ ﻟﺩﻴﻨﺎ ﺤﻘل ﺘﺎﺭﻴﺦ ﻓﻴﻤﻜﻨﻨﺎ ﺃﻥ ﻨﺭﺒﻁﻪ ﺒﻤﺭﺒﻊ ﺍﺨﺘﻴﺎﺭ ﺍﻟﺘﺎﺭﻴﺦ ﻋﻥ ﻤـﺜﺎل )ﺍﻷﺩﺍﺓ
ﻭﻨﺨﺘﺎﺭ ﺍﻟﺘﻨﺴﻴﻕ ﺍﻟﻤﻨﺎﺴﺏ ﺒﺎﻟﺨﺎﺼﻴﺔ ، Formatﺃﻭ ﺍﺴﺘﺨﺩﺍﻡ ﺘﻨﺴﻴﻕ ﻁـﺭﻴﻕ ﺍﻟﺨﺎﺼـﻴﺔ Textﺍﻟـﺘﺎﺒﻌﺔ ﻟﻠﺨﺎﺼﻴﺔ
dateTimePicker1.Format = DateTimePickerFormat.Custom ﻤﺨﺼﺹ ﻭﻜﻤﺎ ﻴﻠﻲ:
"dateTimePicker1.CustomFormat = "MMMM dd, yyyy – dddd
25
.3ﻤﻨﻁﻘﺔ ﻜﻭﺩ ﻟﻠﻤﻘﺎﻁﻊ
26
27
ﻤﻼﺤﻅـﺔ :ﺃﺘـﺎﺡ ﻟﻨﺎ ﺍﻟﻜﻭﺩ ﺍﻟﺴﺎﺒﻕ ﺍﻟﺘﺤﺭﻴﺭ ﻭﺍﻟﺘﺤﺩﻴﺙ ﻓﻲ ﺍﺴﻡ ﺍﻟﻘﺴﻡ ﻓﻲ ﺤﺎﻟﺔ ﺍﻟﺴﺠل ﺍﻟﺠﺩﻴﺩ ﺃﻭ ﺴﺠل ﻤﻭﺠﻭﺩ ﻭﻟﻜﻥ ﺍﻟﺘﺤﺩﻴﺙ ﻓﻲ ﺭﻗﻡ
ﺍﻟﻘﺴـﻡ ﻏﻴـﺭ ﻤﻤﻜـﻥ ﺇﻻ ﻓﻲ ﺤﺎﻟﺔ ﺍﻟﺴﺠل ﺍﻟﺠﺩﻴﺩ ﻭﺫﻟﻙ ﻷﻨﻨﺎ ﻨﺤﺩﺙ ﺒﻴﺎﻨﺎﺕ ﺍﻟﺴﺠل ﺍﻟﻤﻭﺠﻭﺩ ﺒﺎﻻﻋﺘﻤﺎﺩ ﻋﻠﻰ ﺭﻗﻡ ﺍﻟﻘﺴﻡ ﺍﻟﻤﺨﺯﻥ ﻓﻲ
ﻤﺠﻤﻭﻋﺔ ﺍﻟﺒﻴﺎﻨﺎﺕ .Dataset
28
ﺍﻟﺘﻘﺎﺭﻴﺭ Reports
ﺍﻷﺩﺍﺓ ﺍﻟﺭﺌﻴﺴـﻴﺔ ﻟﺘﻜﻭﻴﻥ ﻭﺘﻨﺴﻴﻕ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻓﻲ Visual Studio .NETﻫﻲ ، Crystal Reports .NETﺤﻴﺙ ﺘﺤﺘﻭﻱ ﻫﺫﻩ
ﺍﻷﺩﺍﺓ ﻋﻠـﻰ ﻤﻨﺸـﺊ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻭﺍﻟﺫﻱ ﻴﻘﻭﻡ ﺒﻌﺭﺽ ﻋﺩﺓ ﻭﺍﺠﻬﺎﺕ ﺘﹸﺴﻤﻰ ﺨﺒﺭﺍﺀ ﺍﻟﺘﻘﺎﺭﻴﺭ Report Expertsﻟﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺒﺴﺭﻋﺔ.
ﻭﺘﻤﺘﺎﺯ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﺘﻲ ﻴﻨﺸﺌﻬﺎ Crystal Reports .NETﺒﺈﻤﻜﺎﻨﻴﺔ ﺍﺴﺘﺨﺩﺍﻤﻬﺎ ﻓﻲ ﺒﻴﺌﺔ Windowsﻭﻓﻲ . Web
ﺘﺴـﺎﻋﺩﻨﺎ ﺍﻟﺘﻘﺎﺭﻴـﺭ ﻓﻲ ﺘﻘﺩﻴﻡ ﺍﻟﺒﻴﺎﻨﺎﺕ ﺒﻁﺭﻴﻘﺔ ﺫﺍﺕ ﻤﻌﻨﻰ ﻭﺇﻋﺩﺍﺩﻫﺎ ﻟﻠﻁﺒﺎﻋﺔ ﻋﻠﻰ ﺍﻵﻟﺔ ﺍﻟﻁﺎﺒﻌﺔ ،ﻓﻴﺠﺏ ﺃﻥ ﺘﻜﻭﻥ ﻫﻨﺎﻙ
ﻁﺎﺒﻌـﺔ ﻤﻌ ﺭﻓﺔ ﺒﻨﻅﺎﻡ ﺍﻟﺘﺸﻐﻴل ﻟﻜﻲ ﻨﺘﻤﻜﻥ ﻤﻥ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ .ﻭﻟﻴﺱ ﺒﺎﻟﻀﺭﻭﺭﺓ ﺃﻥ ﻴﻜﻭﻥ ﺍﻟﺠﻬﺎﺯ ﻤﺭﺒﻭﻁﹰﺎ ﺒﻁﺎﺒﻌﺔ ) .ﻴﻤﻜﻥ
ﺇﻀﺎﻓﺔ ﻁﺎﺒﻌﺔ ﻋﻥ ﻁﺭﻴﻕ ﺍﺒﺩﺃ< ﺇﻋﺩﺍﺩﺍﺕ < ﺍﻟﻁﺎﺒﻌﺎﺕ ﺜﻡ ﺇﻀﺎﻓﺔ ﻁﺎﺒﻌﺔ(.
ﻴﺤﺘﻭﻯ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ ﺨﻤﺴﺔ ﺃﺠﺯﺍﺀ ﺃﺴﺎﺴﻴﺔ ﻫﻲ :
:ﻭﻫﻭ ﻴﺤﺘﻭﻯ ﻋﻠﻰ ﻤﺎ ﻴﻅﻬﺭ ﻓﻲ ﺍﻟﺠﺯﺀ ﺍﻟﻌﻠﻭﻱ ﻤﻥ ﺃﻭل ﺼﻔﺤﺔ ﻓﻘﻁ .1ﺭﺃﺱ ﺍﻟﺘﻘﺭﻴﺭ
:ﻴﻅﻬﺭ ﻓﻲ ﺍﻟﺠﺯﺀ ﺍﻟﻌﻠﻭﻱ ﻤﻥ ﻜل ﺼﻔﺤﺔ ﻭﻫﻭ ﻴﻨﻔﻊ ﺃﻥ ﻨﻀﻊ ﻓﻴﻪ ﻋﻨﺎﻭﻴﻥ ﺍﻷﻋﻤﺩﺓ. .2ﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ
:ﻟﻌﺭﺽ ﺍﻟﺴﺠﻼﺕ. .3ﺍﻟﺘﻔﺼﻴل
:ﻤﺎ ﻴﻅﻬﺭ ﻓﻲ ﺍﻟﺠﺯﺀ ﺍﻟﺴﻔﻠﻲ ﻤﻥ ﺃﺨﺭ ﺼﻔﺤﺔ .4ﺘﺫﻴﻴل ﺍﻟﺘﻘﺭﻴﺭ
:ﻤﺎ ﻴﻅﻬﺭ ﺃﺴﻔل ﻜل ﺼﻔﺤﺔ. .5ﺘﺫﻴﻴل ﺍﻟﺼﻔﺤﺔ
ﻭﻹﻀﺎﻓﺔ ﺘﻘﺭﻴﺭ ﺇﻟﻰ ﺍﻟﻤﺸﺭﻭﻉ ﻨﹼﺘﺒﻊ ﺍﻟﺨﻁﻭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ
.1ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ Projectﻨﺨﺘﺎﺭ ﺍﻷﻤﺭ Add Windows Form
ﺃﻭ Add New Itemﻓﻴﻅﻬﺭ ﺇﻁﺎﺭ ﺇﻀﺎﻓﺔ ﺒﻨﺩ ﺠﺩﻴﺩ ﻟﺘﺤﺩﻴﺩ ﻨﻭﻉ
ﺍﻟﻨﻤﻭﺫﺝ ﻓﻨﺨﺘﺎﺭ ، Crystal Reportﻭﻴﻤﻜﻥ ﺍﻟﻭﺼﻭل ﺇﻟﻰ ﻫﺫﻩ
ﺍﻟﻤـﺭﺤﻠﺔ ﻤـﻥ ﺨـﻼل ﺍﻟﻨﻘﺭ ﺒﺎﻷﻴﻤﻥ ﻋﻠﻰ ﺍﺴﻡ ﺍﻟﺤل ﻓﻲ ﺇﻁﺎﺭ
(Solutionﺜـــﻡ ﻤﺴﺘﻜﺸـــﻑ ﺍﻟﺤـــ ﻟ )Explorer
ﺃﻭ ﺜـــﻡ
ﻭﻜﻤـﺎ ﺴﺒﻕ ﺫِﻜﺭﻩ .ﻭﺒﻌﺩ ﺍﻟﺘﺤﺩﻴﺩ ﺴﻴﻌﻁﻲ
ﺍﻟﺒـﺭﻨﺎﻤﺞ ﺍﺴﻤﺎﹰ ﺍﻓﺘﺭﺍﻀﻴﺎﹰ ﻟﻠﺘﻘﺭﻴﺭ ﺒﺎﻻﻤﺘﺩﺍﺩ .rptﺜﻡ ﺒﺎﻟﻨﻘﺭ ﻋﻠﻰ
Openﻴﺒﺩﺃ ﻋﻤل ﺍﻟﺒﺭﻨﺎﻤﺞ Crystal Report
29
ﺘﻘﺭﻴﺭ ﻗﻴﺎﺴﻲ: .2ﻭﺃﻨﻭﺍﻉ ﺍﻟﺘﻘﺎﺭﻴﺭ ﺍﻟﻤﺘﺎﺤﺔ ﻫﻲ:
ﻭﻫـﻲ ﺍﻷﺩﺍﺓ ﺍﻷﻜﺜـﺭ ﺍﺴﺘﺨﺩﺍﻤﺎﹰ ،ﻭﺘﺤﺘﻭﻱ ﻋﻠﻰ ﺜﻤﺎﻨﻴﺔ ﻋﻼﻤﺎﺕ
ﺘﺒﻭﻴﺏ ﻻﺨﺘﻴﺎﺭ ﻤﺼﺩﺭ ﺍﻟﺒﻴﺎﻨﺎﺕ ﻭﺍﻟﺭﺒﻁ ﻤﻊ ﺍﻟﺠﺩﺍﻭل.
ﻨﻤـﻭﺫﺝ ﺨﻁﺎﺒـﺎﺕ :ﻟﺘﻜﻭﻴﻥ ﺘﻘﺎﺭﻴﺭ ﺍﻟﺨﻁﺎﺒﺎﺕ
)ﺍﻟﻤﺭﺍﺴﻼﺕ(
ﻨﻤـﻭﺫﺝ :ﻟﺘﻜﻭﻴﻥ ﺘﻘﺎﺭﻴﺭ ﻴﻤﻜﻥ ﻁﺒﺎﻋﺘﻬﺎ ﻋﻠﻰ ﻨﻤﺎﺫﺝ
ﻤﻭﺠﻭﺩﺓ ﻤﺜل ﺍﻟﻔﻭﺍﺘﻴﺭ ﻜﺸﻭﻓﺎﺕ ﺍﻟﺤﺴﺎﺒﺎﺕ
ﺘﻘﺭﻴﺭ ﺠﺩﻭﻟﻲ :ﻟﺘﻜﻭﻴﻥ ﺘﻘﺎﺭﻴﺭ ﺘﻌﺭﺽ ﺍﻟﺒﻴﺎﻨﺎﺕ
ﺒﺼـﻭﺭﺓ ﻤـﺘﻘﺎﻁﻌﺔ ﻓﻘﻴﻡ ﺤﻘل ﺃﻭ ﺃﻜﺜﺭ ﻜﻌﻨﺎﻭﻴﻥ ﻟﻠﺼﻔﻭﻑ ﻭﻗﻴﻡ
ﺤﻘـ ﻟ ﻭﺍﺤﺩ ﻓﻘﻁ ﻜﻌﻨﺎﻭﻴﻥ ﺃﻋﻤﺩﺓ ﻭﻤﺠﺎﻤﻴﻊ ﻗﻴﻡ ﺤﻘل ﻜﻘﻴﻡ ﺩﺍﺨل
ﺍﻟﺠﺩﻭل
ﺘﻘﺭﻴـﺭ ﻓﺭﻋﻲ :ﻟﺘﻜﻭﻴﻥ ﺘﻘﺭﻴﺭ ﺭﺌﻴﺴﻲ ﻭﺘﻘﺭﻴﺭ
ﻓﺭﻋﻲ ﻓﻲ ﻨﻔﺱ ﺍﻟﻭﻗﺕ
ﺒﻁﺎﻗﺔ ﺍﻟﻌﻨﻭﻨﺔ :ﻹﻨﺸﺎﺀ ﺒﻁﺎﻗﺎﺕ ﻭﻤﻠﺼﻘﺎﺕ ﻜﻌﻨﺎﻭﻴﻥ ﺍﻟﻤﺴﺘﻌﻴﺭﻴﻥ ،ﻤﻭﺍﺼﻔﺎﺕ ﺍﻟﻤﻨﺘﺞ ﻟﻠﺼﻘﻬﺎ ﻋﻠﻰ ﺍﻟﻤﻨ ﹶﺘﺞ.
ﺘﺘﺒﻊ ﺍﻟﺘﻔﺼﻴﻼﺕ :ﻴﻘﻭﻡ ﺍﻟﺘﻘﺭﻴﺭ ﺒﺈﺨﻔﺎﺀ ﺒﻌﺽ ﺍﻷﻗﺴﺎﻡ ﻭﻴﺠﻌﻠﻬﺎ ﻤﺘﺎﺤﺔ ﻤﻥ ﺨﻼل ﺍﻟﺘﻨﻘﻴﺏ Drill Down
.3ﻭﺍﻟﺨﻁـﻭﺓ ﺍﻟﺘﻲ ﺘﻠﻲ ﺍﺨﺘﻴﺎﺭ ﻨﻭﻉ ﺍﻟﺘﻘﺭﻴﺭ ﻫﻲ ﻟﺘﺤﺩﻴﺩ ﻤﺼﺩﺭ
ﺍﻟﺒـﻴﺎﻨﺎﺕ ﻭﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻓﻨﺨﺘﺎﺭ ﻓﻲ ﻤﺜﺎﻟﻨﺎ ﻫﺫﺍ OLE
) DB (ADOﻓﻴﺒﺩﺃ ﻤﻌﺎﻟﺞ ﺍﻻﺘﺼﺎل ﺒﺎﻟﻌﻤل ﻻﺨﺘﻴﺎﺭ ﻨﻭﻉ ﻤﻭﻓﹼﺭ
ﺍﻟﺒﻴﺎﻨﺎﺕ
30
.5ﺜﻡ ﺘﺤﺩﻴﺩ ﺍﺴﻡ ﻭﻤﺴﺎﺭ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ
31
.6ﺇﺫﺍ ﺭﻏﺒﻨﺎ ﺒﺘﻀﻤﻴﻥ ﺍﻟﺘﻘﺭﻴﺭ ﻤﺨﻁﻁﹰﺎ
ﻭﻫﻲ ﻤﻭﺠﻭﺩﺓ ﻀﻤﻥ ﻋﻼﻤﺔ ﻓﻲ ﺘﺼﻤﻴﻡ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺨﺎﺹ ﺒﻌﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻨﻘﻭﻡ ﺒﺈﻀﺎﻓﺔ ﺍﻷﺩﺍﺓ ﻋﺎﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ
ﻭﻤـﻥ ﺃﻫـﻡ ﺨﺼﺎﺌﺹ ﻋﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ ﻋﺎﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻫﻲ ﻤﺼﺩﺭ ﺍﻟﺘﻘﺭﻴﺭ ، ReportSourceﻓﻨﻜﺘﺏ ﻓﻲ ﺍﻟﺘـﺒﻭﻴﺏ
ﺍﻟﻤﻘﻁﻊ Form_Loadﺍﻟﺴﻁﺭ ﺍﻟﺘﺎﻟﻲ
ﺜﻡ ﻨﺸﻐل ﺍﻟﺤل ﻟﻴﺒﺩﺃ ﺍﻟﺘﺸﻐﻴل ﺒﻨﻔﺱ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺨﺎﺹ ﺒﻌﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﻓﻴﻅﻬﺭ ﺍﻟﺘﻘﺭﻴﺭ ﻤﻥ ﺨﻼل ﻋﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ ﻋﺎﺭﺽ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻟﻤﻭﺠﻭﺩ
ﻓﻲ ﺍﻟﻨﻤﻭﺫﺝ ،ﻭﻴﺠﺏ ﺤﻔﻅ ﺍﻟﻤﺸﺭﻭﻉ ﻗﺒل ﺍﻟﺘﻨﻔﻴﺫ ﻟﻴﺘﻡ ﺘﺤﺩﻴﺙ ﺍﻟﺘﻐﻴﻴﺭﺍﺕ ﺍﻟﺘﻲ ﻨﹸﺠﺭﻴﻬﺎ ﻋﻠﻰ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ.
ﻹﻨﺸـﺎﺀ ﻤﺭﺒﻊ ﺤﻘل ﺭﻗﻡ
ﻤﺴﻠﺴل ﻨﻨﻘﺭ ﺒﺯﺭ ﺍﻟﻤﺎﻭﺱ
ﺍﻷﻴﻤــــﻥ ﻋﻠــــﻰ
ﻓ ﻲ ﺇ ﻁ ﺎﺭ
ﺜﻡ ﻨﺨﺘﺎﺭ New..ﻭﻨﺤﺩﺩ
ﺤﻘـ ﻟ ﺍﻟﺭﻗﻡ ﺍﻟﺩﺭﺍﺴﻲ ﺜﻡ
ﻨﺨﺘﺎﺭ ﺍﻟﺩﺍﻟﺔ Count
32
ﻓﻲ ﺸﺭﻴﻁ ﺃﺩﻭﺍﺕ ﻤﻐﻠﻘﺎﹰ ﻓﻨﻨﻘﺭ ﻋﻠﻰ ﺍﻷﺩﺍﺓ ﺇﺫﺍ ﻜﺎﻥ ﺍﻹﻁﺎﺭ
ﻟﻤﺭﺒﻊ ﺍﻟﺤﻘل stuidﻓﻲ ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ. ﻹﻅﻬﺎﺭﻩ .ﻭﻹﺯﺍﻟﺔ ﻓﻭﺍﺼل ﺍﻵﻻﻑ ﻨﺤﺫﻑ ﺍﻟﺭﻤﺯ ﻤﻥ ﺍﻟﺨﺎﺼﻴﺔ
ﻭﻹﻅﻬﺎﺭ ﺤﺩﻭﺩ ﻤﺭﺒﻌﺎﺕ ﺍﻟﻨﺼﻭﺹ ﻨﺴﺘﺨﺩﻡ ﺍﻟﺨﺼﺎﺌﺹ ) LineStyleﺍﻷﺭﺒﻌﺔ( ﻟﻤﺭﺒﻌﺎﺕ ﺍﻟﻨﺼﻭﺹ.
ﻤﺜﺎل :ﻋﺭﺽ ﺘﻘﺭﻴﺭﻴﻥ )ﻜل ﻭﺍﺤﺩ ﻋﻠﻰ ﺤﺩﺓ( ﻭﻟﻜﻥ ﻓﻲ ﻨﻔﺱ ﻋﺎﺭﺽ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻤﻥ ﺨﻼل ﺯﺭﻱ ﺃﻤﺭ .ﻭﺃﺤﺩ ﺍﻟﺘﻘﺭﻴﺭﻴﻥ ﻴﺴﺘﺨﺩﻡ ﻟﻌﺭﺽ
ﺍﻟﺴﺠﻼﺕ ﺒﻌﺩ ﺍﻟﺘﺼﻔﻴﺔ ﺤﺴﺏ ﻤﻌﺎﻴﻴﺭ ﻴﺤﺩﺩﻫﺎ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻭﻗﺕ ﺍﻟﺘﻨﻔﻴﺫ.
ﻨﻨﺴﺦ ﻗﺎﻋﺩﺓ ﺍﻟﺒﻴﺎﻨﺎﺕ studb.mdbﻤﻥ ﻤﺠﻠﹼﺩ ﺍﻷﻤﺜﻠﺔ E:\3\dbﺇﻟﻰ ﻤﺠﻠﹼﺩ ﺍﻟﻤﺸﺭﻭﻉ )ﺩﺍﺨل ﺍﻟﻤﺠﻠﹼﺩ ، (Binﺜﻡ ﻨﺒﺩﺃ ﺒﺈﻨﺸﺎﺀ ﺘﻘﺭﻴﺭ ﺠﺩﻴﺩ
ﻴﺴـﺘﻨﺩ ﻋﻠﻰ ﺠﺩﻭل ﺍﻟﻁﻠﺒﺔ stuﻭﺍﺴﻡ ﺍﻟﻘﺴﻡ ﻤﻥ ﺠﺩﻭل ﺍﻷﻗﺴﺎﻡ ، depﻭﻓﻲ ﺍﻟﺨﻁﻭﺓ ﺍﻟﺴﺎﺒﻌﺔ ﻤﻥ ﻤﻌﺎﻟﺞ ﺍﻟﺘﻘﺎﺭﻴﺭ ﻨﺤﺩﺩ ﺤﻘل ﺭﻗﻡ ﺍﻟﻘﺴﻡ
ﻤﻥ ﺠﺩﻭل ﺍﻟﻁﻠﺒﺔ ﻟﻴﺘﻡ ﺘﺼﻔﻴﺔ ﺍﻟﺴﺠﻼﺕ ﺤﺴﺏ ﻗﻴﻤﻪ
ﺘﺼﻤﻴﻡ ﺍﻟﺘﻘﺭﻴﺭ
ﻟﺯﺭ ﺍﻷﻤﺭ ﺜﻡ ﻨﺼﻤﻡ ﻨﻤﻭﺫﺠﺎﹰ ﻭﻨﻀﻊ ﻓﻴﻪ ﺯﺭﻱ ﺭﺍﺩﻴﻭ ﻭﻤﺭﺒﻊ ﺘﺤﺭﻴﺭ ﻭﺴﺭﺩ ﻭﺯﺭ ﺃﻤﺭ ﻭﻋﺎﺭﺽ ﺘﻘﺎﺭﻴﺭ ﺃﻀﺒﻁ ﺍﻟﺨﺎﺼﻴﺔ
.ﻭﻜﻭﺩ ﻓﺼﻴﻠﺔ ﺍﻟﻨﻤﻭﺫﺝ ﻜﻤﺎ ﻴﻠﻲ: ﻋﻠﻰ
33
،ﻭﻋﻨﺩ ﺍﻟﺘﻨﻔﻴﺫ ﺴﻴﻅﻬﺭ ﺍﻟﺘﻘﺭﻴﺭ ﻜﻤﺎ ﻓﻲ ﻭﻨﻀـﺒﻁ ﺍﻟﺨﺼﺎﺌﺹ ) LineStyleﺍﻷﺭﺒﻌﺔ( ﻟﻤﺭﺒﻌﻲ ﺍﻟﻨﺹ ﻓﻲ ﺍﻟﺘﻘﺭﻴﺭ ﻋﻠﻰ
ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻲ:
34
ﺃﻤﺎ ﺍﻟﺘﻘﺭﻴﺭ ﺍﻵﺨﺭ ﻭﺍﻟﺫﻱ ﻴﻌﺭﺽ ﺠﻤﻴﻊ ﺍﻟﻁﻠﺒﺔ ﻓﻜﻤﺎ ﻓﻲ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ.
ﺘﻤﺭﻴﻥ:
.1ﺼـﻤﻡ ﺘﻘﺭﻴـﺭﺍﹰ ﻴﻌﺭﺽ ﺍﻟﻁﻠﺒﺔ ﺤﺴﺏ ﺍﻟﻘﺴﻡ ﻭﺍﻟﻔﺼل ﺤﻴﺙ ﻴﺨﺘﺎﺭﻫﻤﺎ ﺍﻟﻤﺴﺘﺨﺩﻡ ﻤﻥ ﻤﺭﺒﻌﻲ ﺘﺤﺭﻴﺭ ﻭﺴﺭﺩ ،ﺍﻟﺤﻘﻭل ﺍﻟﻤﻁﻠﻭﺒﺔ ﺍﻟﺭﻗﻡ
ﺍﻟﺩﺭﺍﺴـﻲ ﻭﺍﻻﺴـﻡ ﻭﻴﻅﻬـﺭ ﻓﻲ ﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ ﺍﺴﻡ ﺍﻟﻘﺴﻡ ﻭﺍﻟﻔﺼل ﻭﻗﻡ ﺒﺈﺩﺭﺍﺝ ﺸﻌﺎﺭ ﺍﻟﻤﺭﻜﺯ ﻜﺼﻭﺭﺓ ﻓﻲ ﺭﺃﺱ ﺍﻟﺼﻔﺤﺔ ﻭﺇﻅﻬﺎﺭ
ﺍﻟﺘﺎﺭﻴﺦ ﺍﻟﺤﺎﻟﻲ.
ﺘﺤﺘﻭﻱ ﻋﻠﻰ ﺒﻨﺩﻴﻥ ﻋﻨﺩ ﺍﻟﻨﻘﺭ ﺒﺎﻷﻴﻤﻥ ﻋﻠﻰ ﻋﺎﺭﺽ .2ﺃﻀﻑ ﻟﻠﻨﻤﻭﺫﺝ ﻓﻲ ﺍﻟﺘﻤﺭﻴﻥ ﺍﻟﺴﺎﺒﻕ ﺃﺩﺍﺓ ﻗﺎﺌﻤﺔ ﻤﺨﺘﺼﺭﺓ
ﺍﻟﺘﻘﺎﺭﻴﺭ ﺘﻅﻬﺭ ﺍﻟﻘﺎﺌﻤﺔ ﻭﺍﻜﺘﺏ ﺍﻟﻜﻭﺩ ﺍﻟﻤﻨﺎﺴﺏ ﻟﻜل ﺒﻨﺩ ﻭﻜﻤﺎ ﻓﻲ ﺍﻟﺸﻜل ﺍﻟﺘﺎﻟﻲ:
35