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

‫‪http://www.alshater.

net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬


‫ﺍﻟﺠﻠﺴﺔ ﺍﻟﺭﺍﺒﻌﺔ ﻋﺸﺭ‬
‫ﺒﻨﺎﺀ ﺘﻁﺒﻴﻘﺎﺕ ﻗﻭﺍﻋﺩ ﺍﻟﻤﻌﻁﻴﺎﺕ ‪:‬‬
‫ﻴﺄﺘﻲ ﻤﻊ ﺩﻟﻔﻲ ﻗﻭﺍﻋﺩ ﻤﻌﻁﻴﺎﺕ ﺠﺎﻫﺯﺓ ﺘﺴﺘﺨﺩﻡ ﻜﺄﻤﺜﻠﺔ ﻋﻠﻰ ﻗﻭﺍﻋﺩ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﻁﺭﻕ ﺍﻟﺘﻌﺎﻤل ﻤﻌﻬﺎ‪ ،‬ﻟﺫﻟﻙ ﺴﻨﺘﻌﺎﻤل ﻤﻊ‬
‫ﻫﺫﻩ ﺍﻟﻘﻭﺍﻋﺩ ﺤﺘﻰ ﻴﺼﺒﺢ ﺍﻟﻭﻗﺕ ﺠﺎﻫﺯﹰﺍ ﻹﻨﺸﺎﺀ ﻗﻭﺍﻋﺩﻨﺎ ﺍﻟﺨﺎﺼﺔ ‪.‬‬
‫ﻤﺜﺎل ‪ : 1‬ﺒﻨﺎﺀ ﻨﻤﻭﺫﺝ ﻓﻴﻪ ﺠﺩﻭل ﻭﺤﻴﺩ ‪:‬‬
‫ﺃﺴﻬل ﻁﺭﻴﻘﺔ ﻟﻜﺘﺎﺒﺔ ﺒﺭﻨﺎﻤﺞ ﻗﻭﺍﻋﺩ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻫﻲ ﺍﺴﺘﺨﺩﺍﻡ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ) ‪ ( Form Wizard‬ﻤﻥ ﺍﻟﻘﺎﺌﻤﺔ‬
‫‪. Database‬‬
‫ﻟﻠﺒﺩﺀ ﺒﺎﻟﻌﻤل ﺃﻨﺸﺊ ﻤﺸﺭﻭﻋﹰﺎ ﺠﺩﻴﺩﹰﺍ ﺜﻡ ﺃﻏﻠﻕ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻷﻭل ) ﺍﻻﻓﺘﺭﺍﻀﻲ ( ﻋﻥ ﻁﺭﻴﻕ ﺍﻷﻤﺭ ‪ File Æ Close‬ﺃﻭ‬
‫ﺍﻟﺘﺤﻭﻴل ﺇﻟﻰ ﻤﺤﺭﺭ ﺍﻟﺸﻴﻔﺭﺓ ﻭﺍﻟﻀﻐﻁ ﻋﻠﻰ ﺍﻟﻤﻔﺘﺎﺤﻴﻥ ‪ Ctrl+F4‬ﺴﺘﻅﻬﺭ ﻟﻙ ﻨﺎﻓﺫﺓ ﺘﺴﺄﻟﻙ ﺇﻥ ﻜﻨﺕ ﺘﺭﻴﺩ ﺤﻔﻅ ﺍﻟﻭﺤﺩﺓ‬
‫ﺃﺠﺏ ﺒﻼ ‪.‬‬
‫ﺒﻬﺫﻩ ﺍﻟﻁﺭﻴﻘﺔ ﻨﻜﻭﻥ ﻗﺩ ﺤﺼﻠﻨﺎ ﻋﻠﻰ ﻤﺸﺭﻭﻉ ﺒﺩﻭﻥ ﻨﻤﻭﺫﺝ ﺃﻭﻟﻲ ﻷﻨﻨﺎ ﺴﻨﻨﺸﺊ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ ﻤﻥ ﺨﻼل ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ‬
‫ﺍﺨﺘﺭ ﺍﻷﻤﺭ ‪ Database Æ Form Wizard‬ﻤﻥ ﻗﻭﺍﺌﻡ ﺍﻟﺩﻟﻔﻲ ‪:‬‬
‫ﺴﺘﻅﻬﺭ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ ‪ :‬ﺍﺘﺭﻙ ﺍﻟﺨﻴﺎﺭﺍﺕ‬
‫ﺍﻻﻓﺘﺭﺍﻀﻴﺔ ﻭﺴﺘﺘﻌﺭﻑ ﻋﻠﻰ ﺨﻴﺎﺭﺘﻬﺎ ﻻﺤﻘﹰﺎ ‪.‬‬
‫ﺍﻀﻐﻁ ﻋﻠﻰ ﺍﻟﺯﺭ ‪Next‬‬

‫ﺴﺘﻅﻬﺭ ﻋﻨﺩﻫﺎ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﻤﺠﺎﻭﺭﺓ ﻭﺍﻟﺘﻲ ﺘﻁﺎﻟﺒﻙ‬


‫ﺒﺘﺤﺩﻴﺩ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﺴﻴﺘﻌﺎﻤل ﻤﻌﻪ ﺍﻟﻨﻤﻭﺫﺝ ‪،‬‬
‫ﻟﺘﺤﺩﻴﺩ ﺍﻟﺠﺩﻭل ﺃﺨﺘﺭ ‪ DBDEMOS‬ﻤﻥ ﺍﻟﻘﺴﻡ‬
‫‪) Drive or Alias Name‬ﺴﻴﺸﺭﺡ ﻤﻌﻨﻰ ﺫﻟﻙ‬
‫ﻻﺤﻘ ﹰﺎ(‬
‫ﺴﺘﻅﻬﺭ ﺠﻤﻴﻊ ﺍﻟﺠﺩﺍﻭل ﻓﻲ ﺍﻟﻘﺎﻋﺩﺓ ‪DBDEMOS‬‬
‫ﺍﺨﺘﺭ ﻤﻨﻬﺎ ﺍﻟﺠﺩﻭل ‪Country.db‬‬

‫‪77‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬
‫ﺍﻀﻐﻁ ﻋﻠﻰ ‪. Next‬‬
‫ﺘﻅﻬﺭ ﻋﻨﺩﻫﺎ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﻤﺠﺎﻭﺭﺓ ﻭﺍﻟﺘﻲ ﺘﻁﺎﻟﺒﻙ ﺒﺘﺤﺩﻴﺩ‬
‫ﺍﻟﺤﻘﻭل ﺍﻟﺘﻲ ﺘﺭﻴﺩ ﺇﻅﻬﺎﺭﻫﺎ ﻓﻲ ﺍﻟﺠﺩﻭل ‪.‬‬
‫ﻹﻅﻬﺎﺭ ﺤﻘل ﻤﺎ ﺃﺨﺘﺭ ﻫﺫﺍ ﺍﻟﺤﻘل ﻭﺍﻀﻐﻁ ﻋﻠﻰ ﺍﻟﺯﺭ‬
‫>‬
‫ﻭﻹﻅﻬﺎﺭ ﺠﻤﻴﻊ ﺍﻟﺤﻘﻭل ﺍﺨﺘﺭ ﺍﻟﺯﺭ >>‬
‫ﻟﺘﺭﺍﺠﻊ ﻋﻥ ﺍﺨﻴﺎﺭ ﺤﻘل ﺍﺨﺘﺭ ﻫﺫﺍ ﺍﻟﺤﻘل ﻭﺃﻀﻐﻁ ﻋﻠﻰ‬
‫ﺍﻟﺯﺭ <‬
‫ﻟﻠﺘﺭﺍﺠﻊ ﻋﻥ ﺍﺨﺘﻴﺎﺭ ﺠﻤﻴﻊ ﺍﻟﺤﻘﻭل ﺍﺨﺘﺭ ﺍﻟﺯﺭ <<‬
‫ﺃﻀﻑ ﺍﻵﻥ ﺠﻤﻴﻊ ﺍﻟﺤﻘﻭل ) >> ( ‪.‬‬
‫ﻭﺍﻀﻐﻁ ﻋﻠﻰ ‪ Next‬ﻟﻠﻤﺘﺎﺒﻌﺔ‬

‫ﺴﺘﻅﻬﺭ ﻨﺎﻓﺫﺓ ﺘﻁﺎﻟﺒﻙ ﺒﻁﺭﻴﻘﺔ ﻋﺭﺽ ﺍﻟﺒﻴﺎﻨﺎﺕ ‪:‬‬


‫ﺃﻓﻘﻲ ﺃﻭ ﻋﺎﻤﻭﺩﻱ ﺃﻭ ﻓﻲ ﺠﺩﻭل‬
‫ﺤﺩﺩ ﺍﻟﺨﻴﺎﺭ ﻓﻲ ﺠﺩﻭل ) ‪( In grid‬‬
‫ﻭﺍﻀﻐﻁ ﻋﻠﻰ ‪Next‬‬

‫ﺘﻅﻬﺭ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻷﺨﻴﺭﺓ ) ﺨﻴﺎﺭﺍﺕ ﻫﺫﻩ ﺍﻟﻨﺎﻓﺫﺓ ﺴﻴﺘﻡ‬


‫ﺘﻭﻀﻴﺤﻬﺎ ﻻﺤﻘﹰﺎ (‬
‫ﻓﻌل ﺍﻟﺨﻴﺎﺭ ‪Generate a main form‬‬
‫ﺇﺫﺍ ﻜﺎﻥ ﺍﻟﻨﻤﻭﺫﺝ ﻫﻭ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺭﺌﻴﺴﻲ ﻓﻲ ﺒﺭﻨﺎﻤﺠﻙ‬
‫ﺍﻀﻐﻁ ﻋﻠﻰ ‪ Finish‬ﻹﻅﻬﺎﺭ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺘﺎﻟﻲ ‪.‬‬

‫‪78‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬

‫ﻋﻨﺩ ﺍﻻﻨﺘﻬﺎﺀ ﻴﻅﻬﺭ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺘﺎﻟﻲ ‪:‬‬

‫ﻋﻨﺼﺮ اﻟﻮﺻﻮل‬
‫ﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ‬ ‫‪TDataSouce‬‬
‫‪TDBnaviagtor‬‬

‫ﻋﻨﺼﺮ اﻟﻮﺻﻮل‬
‫‪TTable‬‬
‫ﻋﻨﺼﺮ اﻟﺘﺤﻜﻢ‬
‫‪DBGrid‬‬

‫ﻟﻘﺩ ﻗﺎﻡ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﺒﺈﻨﺸﺎﺀ ﻨﻤﻭﺫﺝ ﻭﻀﻊ ﻋﻠﻴﻪ ﻋﺩﺩ ﻤﻥ ﻋﻨﺎﺼﺭ ﺍﻟﺘﺤﻜﻡ ﺒﺎﻟﻤﻌﻁﻴﺎﺕ ﻭﻋﻨﺎﺼﺭ ﺃﺨﺭﻯ ﻟﻠﻭﺼﻭل ﺇﻟﻰ‬
‫ﺍﻟﻤﻌﻁﻴﺎﺕ ‪.‬‬
‫ﻨﻔﺫ ﺍﻟﺘﻁﺒﻴﻕ ﺍﻵﻥ ﻭﻻﺤﻅ ﻤﺎ ﻴﻠﻲ ‪:‬‬
‫‪ 1‬ـ ﻋﻨﺎﺼﺭ ﺍﻟﻭﺼﻭل ﻋﻠﻰ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻻ ﺘﻅﻬﺭ ﺃﺜﻨﺎﺀ ﺍﻟﺘﻨﻔﻴﺫ ‪.‬‬
‫‪ 2‬ـ ﻴﻅﻬﺭ ﻋﻨﺼﺭ ﺍﻟﺸﺒﻜﺔ ‪ DBGrid‬ﺒﻴﺎﻨﺎﺕ ﺍﻟﺠﺩﻭل ﺍﻟﻤﺭﺘﺒﻁ ﻤﻌﻪ ﺤﻴﺙ ﺃﻋﻤﺩﺓ ﻫﺫﺍ ﺍﻟﺠﺩﻭل ﻫﻲ ﺃﺴﻤﺎﺀ ﺍﻟﺤﻘﻭل‬
‫ﻭﺘﻜﻭﻥ ﻅﺎﻫﺭﺓ ﻓﻲ ﺍﻟﺴﻁﺭ ﺍﻷﻭل ﻭ ﺴﻁﻭﺭ ﻫﺫﻩ ﺍﻟﺠﺩﻭل ﻫﻲ ﺍﻟﺴﺠﻼﺕ ﻭﻴﻭﺠﺩ ﺴﻬﻡ ﺼﻐﻴﺭ ﻴﺩل ﻋﻠﻰ ﺍﻟﺴﺠل‬
‫ﺍﻷﺯﺭﻕ ‪.‬‬
‫ﺒﺎﻟﻠﻭﻥ ﺍﳊﻘﻮﻝ‬
‫ﻼ ﺃﲰﺎﺀ‬ ‫ﺍﻟﺤﺎﻟﻲ‪،‬ﻜﻤﺎ ﺃﻥ ﺍﻟﺤﻘل ﺍﻟﺤﺎﻟﻲ ﻴﻜﻭﻥ ﻤﻔﻌ ﹰ‬

‫ﻣﺆﺷﺮ إﻟﻰ اﻟﺴﺠﻞ اﻟﺤﺎﻟﻲ‬


‫اﻟﺴﺠﻞ اﻟﺤﺎﻟﻲ‬

‫‪79‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬

‫ﻴﻤﻜﻥ ﺃﻥ ﻨﻘﻭﻡ ﻨﺤﻥ ﺒﻭﻀﻊ ﺍﻟﻌﻨﺎﺼﺭ ﻋﻠﻰ ﻨﻤﻭﺫﺝ ﻓﺎﺭﻍ ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺴﺎﺒﻕ ﺒﺩﻭﻥ ﺍﺴﺘﺨﺩﺍﻡ ﻤﻌﺎﻟﺞ ﺍﻷﺸﻜﺎل‪.‬‬
‫ﺴﻨﺸﺭﺡ ﺍﻵﻥ ﻜل ﻋﻨﺼﺭ ﻤﻥ ﻫﺫﻩ ﺍﻟﻌﻨﺎﺼﺭ ﻋﻠﻰ ﺤﺩﻯ ‪:‬‬
‫ﺍﻟﻌﻨﺼﺭ ‪: Table‬‬
‫ﻴﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﻟﻠﺭﺒﻁ ﺒﻴﻥ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﻫﻭ ﻋﻨﺼﺭ ﻤﻥ ﻤﺠﻤﻭﻋﺔ ﻋﻨﺎﺼﺭ ﺘﺩﻋﻰ ‪ DataSet‬ﻭﻫﻲ‬
‫ﻋﺒﺎﺭﺓ ﻋﻥ ﻋﻨﺎﺼﺭ ﻟﻬﺎ ﺍﻟﻘﺩﺭﺓ ﻋﻠﻰ ﺍﻟﺘﻌﺎﻤل ﻤﻊ ﻤﺤﺭﻙ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻟﻠﻭﺼﻭل ﻟﻠﺠﺩﺍﻭل ﻭﻤﻥ ﻫﺫﻩ ﺍﻟﻌﻨﺎﺼﺭ ‪.‬‬
‫‪Table, Query, AdoTable, AdoQuery,‬‬
‫ﻓﻲ ﻤﺜﺎﻟﻨﺎ ﻴﺤﺘﻭﻱ ﺍﻟﻨﻤﻭﺫﺝ ﻋﻠﻰ ﻋﻨﺼﺭ ﻭﺍﺤﺩ ﻤﻥ ﺍﻟﻨﻭﻉ ‪ Table‬ﻭﻗﺩ ﺭﺒﻁﻪ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﻤﻊ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﺍﻋﺘﻤﺎﺩﹰﺍ‬
‫ﻋﻠﻰ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺍﻟﻘﻴﻤﺔ ‪ DBDEMOS‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺴﻡ ﻤﻌﺭﻑ ﻤﺴﺒﻘﹰﺎ ﻴﺸﻴﺭ ﺇﻟﻰ ﻤﻜﺎﻥ‬ ‫‪DBDEMOS DataBaseName‬‬
‫ﺘﻭﺍﺠﺩ‬
‫) ﻤﺴﺎﺭ ( ﺍﻟﺠﺩﺍﻭل ) ﻨﺴﺘﻁﻴﻊ ﺃﻥ ﻨﻜﺘﺏ ﻤﺴﺎﺭ ﻓﻬﺭﺱ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ‬
‫ﻻ ﻤﻨﻬﺎ‬
‫ﺒﺩ ﹰ‬
‫ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﺴﻴﺭﺘﺒﻁ ﻤﻊ ﺍﻟﻌﻨﺼﺭ‬ ‫‪country.db‬‬ ‫‪TableName‬‬
‫ﺍﺴﻡ ﺍﻟﻌﻨﺼﺭ ) ﻴﻤﻜﻥ ﺇﻋﻁﺎﺀ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﺍﺴﻡ ﻜﺄﻱ ﻋﻨﺼﺭ ﺁﺨﺭ ﻓﻲ ﺩﻟﻔﻲ‬ ‫‪Table1‬‬ ‫‪Name‬‬
‫(‬
‫ﺃﻋﻁ ﺍﻟﻘﻴﻤﺔ ‪ True‬ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﺔ ﻟﺘﺴﺘﻁﻴﻊ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺠﺩﻭل ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ‬ ‫‪False‬‬ ‫‪Active‬‬

‫ﺍﻟﻌﻨﺼﺭ ‪: DataSource‬‬
‫ﻴﺭﺘﺒﻁ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﻤﻊ ﺍﻟﻌﻨﺼﺭ ‪ Table‬ﻭﻴﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﻟﻠﺭﺒﻁ ﺒﻴﻥ ﻋﻨﺎﺼﺭ ﺍﻟﻭﺼﻭل ‪ DataSet‬ﻭﻋﻨﺎﺼﺭ‬
‫ﺍﻟﺘﺤﻜﻡ ﺒﺎﻟﻤﻌﻁﻴﺎﺕ ﻭﻟﻪ ﺍﻟﺨﺼﺎﺌﺽ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺘﺠﻌل ﻫﺫﻩ ﺍﻟﺨﺎﺼﺔ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻓﻲ ﻭﻀﻊ ﺍﻟﺘﺤﺭﻴﺭ ) ﺃﻤﻜﺎﻨﻴﺔ ﺍﻟﺘﻌﺩﻴل ( ﺃﻤﺎ‬ ‫‪True‬‬ ‫‪AutoEdit‬‬
‫ﺇﺫﺍ ﺃﺭﺩﻨﺎ ﺍﺴﺘﻌﺭﺍﺽ ) ﻗﺭﺍﺀﺓ ﺩﻭﻥ ﺘﻐﻴﻴﺭ ( ﺍﻟﻤﻌﻁﻴﺎﺕ ﻓﻘﻁ ﻓﻨﻌﻁﻲ ﻫﺫﻩ‬
‫ﺍﻟﺨﺎﺼﺔ ﺍﻟﻘﻴﻤﺔ ‪False‬‬
‫ﺘﺤﺩﺩ ﻫﺫﻩ ﺍﻟﺨﺎﺼﺔ ﺍﺴﻡ ﺍﻟﻌﻨﺼﺭ ﺍﻟﺫﻱ ﺴﻴﺭﺘﺒﻁ ﻤﻌﻪ ﺍﻟـ ‪Datasource‬‬ ‫‪Table1‬‬ ‫‪Dataset‬‬
‫ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺍﻟﻤﻌﻁﻴﺎﺕ ‪.‬‬
‫ﺍﺴﻡ ﺍﻟﻌﻨﺼﺭ ) ﻴﻤﻜﻥ ﺇﻋﻁﺎﺀ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﺍﺴﻡ ﻜﺄﻱ ﻋﻨﺼﺭ ﺁﺨﺭ ﻓﻲ ﺩﻟﻔﻲ‬ ‫‪Datasource1‬‬ ‫‪Name‬‬
‫‪80‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬
‫(‬

‫ﻋﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ ﺒﺎﻟﻤﻌﻁﻴﺎﺕ ) ‪: ( DBGrid‬‬


‫ﻴﺴﺘﺨﺩﻡ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﻟﻌﺭﺽ ﻭﺘﺤﺭﻴﺭ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﻴﺭﺘﺒﻁ ﻤﻊ ﺍﻟﻌﻨﺼﺭ ‪ Datasource‬ﻟﻴﺤﺼل ﻤﻨﻪ ﻋﻠﻰ ﺃﺴﻤﺎﺀ ﺍﻟﺤﻘﻭل‬
‫ﻭﻗﻴﻡ ﺍﻟﺠﺩﻭل ﻭﺃﻋﻁﺎﻩ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺘﺤﺩﺩ ﻫﺫﻩ ﺍﻟﺨﺎﺼﺔ ﺍﻟﻌﻨﺼﺭ ﺍﻟﺫﻱ ﺴﻴﺯﻭﺩ ‪ DBGrid‬ﺒﺎﻟﻤﻌﻁﻴﺎﺕ‬ ‫‪Datasource1‬‬ ‫‪Datasource‬‬
‫ﺍﺴﻡ ﺍﻟﻌﻨﺼﺭ‬ ‫‪Dbgrid1‬‬ ‫‪Name‬‬
‫ﻋﻨﺼﺭ ﺍﻟﺘﺤﻜﻡ ‪: DBNavigator‬‬
‫ﻴﺤﻭﻱ ﻫﺫﻩ ﺍﻟﻌﻨﺼﺭ ﺍﻟﻌﺩﻴﺩ ﻤﻥ ﺍﻷﺯﺭﺍﺭ ﻤﻬﻤﺘﻬﺎ ﺘﺤﺭﻴﻙ ﻤﺅﺸﺭ ﺍﻟﺴﺠل ﻭﺍﻟﻘﻴﺎﻡ ﺒﺄﻋﻤﺎل ﺍﻹﻀﺎﻓﺔ ﻭﺍﻟﺤﺫﻑ ﻭﺍﻟﺘﺭﺍﺠﻊ ﻋﻥ‬
‫ﺍﻟﺘﻌﺩﻴل ﻭﻴﺭﺘﺒﻁ ﻫﺫﺍ ﺍﻟﻌﻨﺼﺭ ﻤﻊ ﺍﻟـ ‪ Datasource‬ﻋﻥ ﻁﺭﻴﻕ ﺍﻟﺨﺎﺼﺔ ‪ ، DataSource‬ﺍﻋﻁ ﺍﻟﻘﻴﻤﺔ ‪True‬ﻟﻠﺨﺎﺼﺔ‬
‫‪ ShowHint‬ﺍﻟﺘﺎﺒﻌﺔ ﻟﻬﺫﺍ ﺍﻟﻌﻨﺼﺭ ‪.‬‬
‫ﻴﻀﻴﻑ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﺃﻴﻀ ﹰﺎ ﺴﻁﺭ ﺒﺭﻤﺠﻲ ﻭﺍﺤﺩ ﻓﻲ ﺤﺩﺙ ﺇﻨﺸﺎﺀ ﺍﻟﻨﻤﻭﺫﺝ ﻫﻭ ‪ Table1.Open‬ﻟﻔﺘﺢ ﺍﻟﺠﺩﻭل ﻭﺇﻅﻬﺎﺭ‬
‫ﺴﺠﻼﺘﻪ ﻭﻴﻤﻜﻥ ﺍﻻﺴﺘﻌﺎﻀﺔ ﻋﻥ ﻫﺫﻩ ﺍﻟﺘﻌﻠﻴﻤﺔ ﺒﺈﻋﻁﺎﺀ ﺍﻟﺨﺎﺼﺔ ‪ Active‬ﻟﻠﻌﻨﺼﺭ ‪ Table‬ﺍﻟﻘﻴﻤﺔ ‪. True‬‬
‫ﻤﺤﺭﻙ ﻗﻭﺍﻋﺩ ﺍﻟﻤﻌﻁﻴﺎﺕ ) ‪: ( Database Engine‬‬
‫ﻤﺤﺭﻙ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻴﺤﺩﺩ ﺃﺴﻠﻭﺏ ﺘﻌﺎﻤل ﺍﻟﺒﺭﻨﺎﻤﺞ ﻤﻊ ﺍﻟﻘﺎﻋﺩﺓ ﻭﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﻤﺠﻤﻭﻋﺔ ﻤﻜﺘﺒﺎﺕ ﺠﺎﻫﺯﺓ ﺘﺭﺒﻁ ﺒﻴﻥ‬
‫ﻋﻨﺎﺼﺭ ﺍﻟﺩﻟﻔﻲ ﻭﻗﻭﺍﻋﺩ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻭﻤﻥ ﺃﻫﻡ ﺍﻟﻤﺤﺭﻜﺎﺕ ﻓﻲ ﺩﻟﻔﻲ ‪:‬‬
‫‪ 1‬ـ ‪: Borland Database Engine : BDE‬‬
‫ﻴﺘﻌﺎﻤل ﻫﺫﺍ ﺍﻟﻤﺤﺭﻙ ﻤﻊ ﻋﻨﺎﺼﺭ ﺍﻟﻭﺼﻭل ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍﻟﺼﻔﺤﺔ ‪ Bde‬ﻭﻴﺘﻌﺎﻤل ﻤﻊ ﻗﻭﺍﻋﺩ ﻤﻌﻁﻴﺎﺕ ﻤﻥ ﺍﻟﻨﻭﻉ‬
‫‪ Pardox‬ﺃﻭ ‪ Dbase‬ﻭﻏﻴﺭﻫﺎ ﻜﺜﻴﺭ ‪.‬‬
‫‪ 2‬ـ ‪: Microsoft ActiveX Data Objects : ADO‬‬
‫ﻴﺘﻌﺎﻤل ﻫﺫﺍ ﺍﻟﻤﺤﺭﻙ ﻋﻠﻰ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍﻟﺼﻔﺤﺔ ‪ Ado‬ﻭﻴﺴﺘﺨﺩﻡ ﻤﻊ ﻗﻭﺍﻋﺩ ﻤﻌﻁﻴﺎﺕ ﻤﺜل ‪ Access‬ﺃﻭ‬
‫‪ SQL SERVER‬ﺃﻭ ‪. Oracle‬‬
‫‪ 3‬ـ ‪:Interbase‬‬
‫ﻴﺘﻌﺎﻤل ﻫﺫﺍ ﺍﻟﻤﺤﺭﻙ ﻋﻠﻰ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﻤﻭﺠﻭﺩﺓ ﻓﻲ ﺍﻟﺼﻔﺤﺔ ‪ Interbase Express‬ﻭﻴﺴﺘﺨﺩﻡ ﻤﻊ ﻗﻭﺍﻋﺩ ﻤﻌﻁﻴﺎﺕ‬
‫‪ Interbase‬ﺍﻟﺘﻲ ﻴﻤﻜﻥ ﺘﺤﻤﻴﻠﻬﺎ ﻤﻥ ﺍﻟﻘﺭﺹ ﺍﻟﺫﻱ ﺘﻭﺠﺩ ﻋﻠﻴﻪ ﺩﻟﻔﻲ ‪.‬‬
‫ﻤﺜﺎل ‪ : 2‬ﺒﻨﺎﺀ ﻨﻤﻭﺫﺝ ﻹﺩﺨﺎل ﺍﻟﻤﻌﻁﻴﺎﺕ ‪:‬‬
‫ﺃﻋﺩ ﺨﻁﻭﺍﺕ ﺍﻟﻤﺜﺎل ﺍﻟﺴﺎﺒﻕ ﺤﺘﻰ ﺘﺼل ﺇﻟﻰ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﻲ ﺘﻁﺎﻟﺒﻙ ﺒﻁﺭﻴﻘﺔ ﻋﺭﺽ ﺍﻟﻤﻌﻁﻴﺎﺕ ) ﺍﺨﺘﺭ ﻤﻨﻬﺎ ‪( Vertical‬‬
‫ﻭﺴﺘﻅﻬﺭ ﺒﻌﺩﻫﺎ ﻨﺎﻓﺫﺓ ﺘﺴﺄﻟﻙ ﻋﻥ ﻁﺭﻴﻘﺔ ﻋﺭﺽ ﻋﻨﺎﻭﻴﻥ ﺍﻟﺤﻘﻭل ) ﺍﺨﺘﺭ ﻤﻨﻬﺎ ‪ ( Left‬ﺃﻀﻐﻁ ﻋﻠﻰ ‪ Next‬ﺜﻡ ‪Finish‬‬
‫ﻟﻴﻅﻬﺭ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﺘﺎﻟﻲ ‪:‬‬

‫‪81‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬
‫ﻻ ﻤﻥ ﺍﻟﺠﺩﻭل ﻭﺘﻅﻬﺭ‬
‫ﻻﺤﻅ ﻅﻬﻭﺭ ﺤﻘﻭل ﺍﻟﻤﻌﻁﻴﺎﺕ ﺒﺩ ﹰ‬
‫ﻫﺫﺍ ﺍﻟﺤﻘﻭل ﻓﻲ ﺍﻟﻌﻨﺎﺼﺭ ‪ Dbedit‬ﻭﺍﻟﺘﻲ ﺘﺭﺘﺒﻁ ﻤﻊ‬
‫ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻋﺒﺭ ﺍﻟﺨﺎﺼﺔ ‪Datasource‬‬
‫ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺍﺴﺘﺨﺩﻡ ‪ DBNavegator‬ﻟﻠﺘﻨﻘل ﺒﻴﻥ‬
‫ﺍﻟﺤﻘﻭل ) ﺍﻟﺴﺠل ﺍﻟﺤﺎﻟﻲ ﻫﻭ ﺍﻟﺤﻘل ﺍﻟﺫﻱ ﺘﻅﻬﺭ ﻗﻴﻤﻪ‬
‫ﺩﺍﺨل ﺍﻟﺤﻘﻭل (‬

‫ﺃﻀﻑ ﻋﻨﺼﺭ ‪ DBGrid‬ﻤﻥ ﺍﻟﺼﻔﺤﺔ ‪ Datacontrole‬ﻭﺃﻋﻁﻪ ﺍﻟﺨﺎﺼﺔ ‪ Datasource‬ﺍﻟﻘﻴﻤﺔ ‪DataSource1‬‬


‫ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺤﺎﻭل ﺍﻟﺘﻨﻘل ﺒﻴﻥ ﺍﻟﺴﺠﻼﺕ ﻓﻲ ‪ DBGrid‬ﺒﺎﻟﻔﺄﺭﺓ ﻭﻻﺤﻅ ﻜﻴﻑ ﺘﺘﻐﻴﺭ ﻗﻴﻡ ﺍﻟﺤﻘﻭل ﻓﻲ ‪ DBEdit‬ﺘﺒﻌﹰﺎ‬
‫ﻟﺘﻐﻴﺭ ﺍﻟﺴﺠل ﺍﻟﺤﺎﻟﻲ ‪.‬‬

‫ﻤﺜﺎل ‪:3‬ﺒﻨﺎﺀ ﻨﻤﻭﺫﺝ ﻤﻥ ﺍﻟﻨﻭﻉ ﺍﻟﺭﺌﻴﺴﻲ ﺘﻔﺼﻴﻠﻲ ) ‪:( Master \ Detail Form‬‬
‫ﻭﺠﺩﻨﺎ ﺴﺎﺒﻘﹰﺎ ﻓﻲ ﻤﺜﺎل ﺍﻟﻤﻜﺘﺒﺔ ﻜﻴﻑ ﻴﻤﻜﻥ ﻟﻤﺠﻤﻭﻋﺔ ﻤﻥ ﺍﻟﺠﺩﺍﻭل ﺃﻥ ﺘﺭﺘﺒﻁ ﻤﻊ ﺒﻌﻀﻬﺎ ﺍﻟﺒﻌﺽ ﻟﺘﺸﻜل ﻗﺎﻋﺩﺓ ﻤﻌﻁﻴﺎﺕ‪،‬‬
‫ﻜﻤﺎ ﻭﺠﺩﻨﺎ ‪:‬ﻜﻴﻑ ﺃﻥ ﺠﺩﻭل ﺍﻟﻤﺅﻟﻔﻴﻥ ﻫﻭ ﺠﺩﻭل ﺭﺌﻴﺴﻲ ﺒﻴﻨﻤﺎ ﺠﺩﻭل ﺍﻟﻜﺘﺏ ﻫﻭ ﺠﺩﻭل ﺜﺎﻨﻭﻱ ﻭﻗﻠﻨﺎ ﺃﻥ ﻫﺫﻩ ﻫﻲ ﻋﻼﻗـﺔ‬
‫ﺭﺃﺱ ﺒﺄﻁﺭﺍﻑ ﺃﻭ ﻭﺍﺤﺩ ﺇﻟﻰ ﻤﺠﻤﻭﻋﺔ ﻟﻨﻔﺘﺭﺽ ﺍﻵﻥ ﺃﻥ ﺍﻟﻤﺴﺘﺨﺩﻡ ﺒﺤﺎﺠﺔ ﻟﻤﻌﺭﻓﺔ ﺠﻤﻴﻊ ﺍﻟﻜﺘﺏ ﺍﻟﺘﻲ ﻜﺘﺒﺕ ﻤـﻥ ﻗﺒـل‬
‫ﻤﺅﻟﻑ ﻤﺎ‪ ،‬ﺘﺩﻋﻰ ﺍﻟﻨﻤﺎﺫﺝ ﺍﻟﺘﻲ ﺘﻘﺩﻡ ﻫﺫﻩ ﺍﻟﻤﻌﻠﻭﻤﺎﺕ ﺒﺎﻟﻨﻤﺎﺫﺝ ﺫﺍﺕ ﺍﻟﻨﻭﻉ ﺍﻟﺭﺌﻴﺴﻲ ﺘﻔﺼﻴﻠﻲ‪.‬‬
‫ﺴﻨﺴﺘﺨﺩﻡ ﻓﻲ ﻤﺜﺎﻟﻨﺎ ﺍﻵﻥ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﻹﻨﺸﺎﺀ ﻨﻤﺎﺫﺝ ﻤﻥ ﻫﺫﺍ ﺍﻟﻨﻭﻉ ﻭﺴﻨﻌﺘﻤﺩ ﻋﻠﻰ ﺍﻟﺠﺩﻭل ﺍﻟﺭﺌﻴﺴﻲ ‪Customer.db‬‬
‫ﻭﺍﻟﺠﺩﻭل ﺍﻟﺘﻔﺼﻴﻠﻲ ‪ Orders.Db‬ﻭﻗﺒل ﺍﻟﺒﺩﺀ ﺴﺄﺸﺭﺡ ﻜل ﻤﻥ ﺍﻟﺠﺩﻭﻟﻴﻥ ‪.‬‬
‫ﺠﺩﻭل ﺍﻟﺯﺒﺎﺌﻥ ‪ : Customer.db :‬ﻴﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﺍﻟﺯﺒﺎﺌﻥ ) ﺭﻗﻡ ﺍﻟﺯﺒﻭﻥ ‪ ،‬ﺍﻷﺴـﻡ ‪ ،‬ﺍﻟﻌﻨـﻭﺍﻥ ‪ ،‬ﺍﻟﻤﺩﻴﻨـﺔ ‪،‬‬
‫ﺍﻟﻬﺎﺘﻑ ‪ ، ( ......‬ﺍﻟﻤﻔﺘﺎﺡ ﺍﻟﺭﺌﻴﺴﻲ ﻓﻴﻪ ﻫﻭ ﺭﻗﻡ ﺍﻟﺯﺒﻭﻥ‪.‬‬
‫ﺠﺩﻭل ﺍﻟﻁﻠﺒﺎﺕ ‪ : Orders.db‬ﻴﺤﻭﻱ ﻤﻌﻠﻭﻤﺎﺕ ﻋﻥ ﻁﻠﺒﺎﺕ ﺍﻟﺯﺒﺎﺌﻥ ) ﺭﻗﻡ ﺍﻟﻁﻠﺒﻴﺔ ‪ ،‬ﺭﻗﻡ ﺍﻟﺯﺒﻭﻥ ‪ ،‬ﺘﺎﺭﻴﺦ ﺍﻟﺘـﺴﻠﻴﻡ ‪،‬‬
‫ﻁﺭﻴﻘﺔ ﺍﻟﺘﺴﻠﻴﻡ ‪( ....‬‬
‫ﻤﻥ ﺍﻟﻭﺍﻀﺢ ﺃﻥ ﺍﻟﻤﻔﺘﺎﺡ ﺍﻟﺭﺌﻴﺴﻲ ﻟﻬﺫﺍ ﺍﻟﺠﺩﻭل ﻫﻭ ﺭﻗﻡ ﺍﻟﻁﻠﺒﻴﺔ ‪ ،‬ﻜﻤﺎ ﺃﻥ ﻫﻨﺎﻙ ﻤﻔﺘﺎﺡ ﺜﺎﻨﻭﻱ ﻫﻭ ﺭﻗﻡ ﺍﻟﺯﺒﻭﻥ ( ‪.‬‬
‫ﺴﻨﻨﺸﺊ ﺍﻵﻥ ﻨﻤﻭﺫﺠﹰﺎ ﻴﻅﻬﺭ ﻓﻴﻪ ﺠﺩﻭﻟﻲ ﺍﻟﺯﺒﺎﺌﻥ ﻭﺍﻟﻁﻠﺒﻴﺎﺕ ﻭﻟﻜﻥ ﺍﻟﺴﺠﻼﺕ ﺍﻟﻅﺎﻫﺭﺓ ﻓﻲ ﺴﺠل ﺍﻟﻁﻠﺒﻴﺎﺕ ﻫﻲ ﺍﻟﺴﺠﻼﺕ‬
‫ﺍﻟﺘﺎﺒﻌﺔ ﻟﻠﺯﺒﻭﻥ ﺍﻟﺤﺎﻟﻲ ﻓﻲ ﺠﺩﻭل ﺍﻟﺯﺒﺎﺌﻥ ‪.‬‬
‫ﺍﺒﺩﺃ ﻤﺸﺭﻭﻋﹰﺎ ﺠﺩﻴﺩﺍﹰ‪ ،‬ﺃﻏﻠﻕ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻻﻓﺘﺭﺍﻀﻲ ‪ ،‬ﺍﺨﺘﺭ ﺍﻷﻤﺭ ‪DatabaseÆ Form Wizard‬‬
‫‪82‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬
‫ﻤﻥ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻷﻭﻟﻰ ﻟﻠﻤﻌﺎﻟﺞ ﺤﺩﺩ ﺍﻟﺨﻴﺎﺭ ‪ Create Master Detail Form‬ﻤﻥ ﺍﻟﻘﺴﻡ ‪ Form Option‬ﻭﺍﻀﻐﻁ ﻋﻠـﻰ‬
‫‪Next‬‬
‫ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺜﺎﻨﻴﺔ ﺘﻁﺎﻟﺒﻙ ﺒﺈﺩﺨﺎل ﺍﻟﺠﺩﻭل ﺍﻟﺭﺌﻴﺴﻲ ﺤﺩﺩ ‪ DBDEMOS‬ﻓﻲ ‪ Driver or alias name‬ﻭﺍﺨﺘﺭ ﺍﻟﺠـﺩﻭل‬
‫‪ Customer.db‬ﻭﻤﻥ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﻲ ﺘﻠﻴﻬﺎ ﺤﺩﺩ ﺠﻤﻴﻊ ﺤﻘﻭل ﻫﺫﺍ ﺍﻟﺠﺩﻭل ‪ ،‬ﻭﻓﻲ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ ﺤـﺩﺩ ﻁﺭﻴﻘـﺔ ﺍﻟﻌـﺭﺽ‬
‫ﺒﺠﺩﻭل ‪. in a grid‬‬
‫ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﺘﺎﻟﻴﺔ ﺘﻁﺎﻟﺒﻙ ﺒﺘﺤﺩﻴﺩ ﺍﻟﺠﺩﻭل ﺍﻟﺘﻔﺼﻴﻠﻲ ﺃﺨﺘﺭ ‪ Orders‬ﻤﻥ ‪ DBDEMOS‬ﻭﺍﺨﺘﺭ ﺒﻌـﺩﻫﺎ ﺠﻤﻴـﻊ ﺍﻟﺤﻘـﻭل‬
‫ﻭﻁﺭﻴﻘﺔ ﺍﻟﻌﺭﺽ ﺠﺩﻭل‬
‫ﺘﻅﻬﺭ ﺒﻌﺩﻫﺎ ﺍﻟﻨﺎﻓﺫﺓ ﺍﻟﻤﺠﺎﻭﺭﺓ ) ﺍﺨﺘﺭ ﻤﻥ ﺍﻟﻘﺴﻡ‬
‫‪Available Indexes‬ﺍﻟﻘﻴﻤﺔ ‪CustNo‬‬
‫ﻭﺍﺨﺘـﺭ ﻤـﻥ ﺍﻟﻼﺌﺤـﺔ ‪ Master Fields‬ﺍﻟﻘﻴﻤـﺔ‬
‫‪CustNo‬‬
‫ﻭﻤﻥ ﺍﻟﻼﺌﺤﺔ ‪ Detail Fields‬ﺍﻟﻘﻴﻤﺔ ‪CustNo‬‬
‫ﺇﻀﻐﻁ ﺒﻌﺩﻫﺎ ﻋﻠﻰ ‪ Add‬ﺜﻡ ﻋﻠﻰ ‪ Next‬ﺜﻡ ﻋﻠـﻰ‬
‫‪ Next‬ﻤﺭﺓ ﺃﺨﺭﻯ ‪.‬ﺴﻴﻅﻬﺭ ﻋﻨﺩﻫﺎ ﺍﻟﻨﻤﻭﺫﺝ ﺭﺌﻴﺴﻲ‬
‫ﺘﻔﺼﻴﻠﻲ ‪:‬‬
‫ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ﻭﺘﻨﻘل ﺒﻴﻥ ﺤﻘﻭل ﺍﻟﺠﺩﻭل ‪ Master‬ﻭﻻ‬
‫ﺤﻅ ﺍﻟﺘﻐﻴﺭﺍﺕ ﻋﻠﻰ ﺍﻟﺠﺩﻭل ‪... Detail‬‬

‫ﻟﻘﺩ ﺃﻀﺎﻑ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﻫﻨﺎ ﻋﻨﺼﺭﻱ ‪ Table‬ﺒﺎﻹﻀﺎﻓﺔ ﺇﻟﻰ ﻋﻨﺼﺭﻱ ‪ Datasource‬ﻭﻗﺎﻡ ﺒـﺎﻟﺭﺒﻁ ﺒﻴﻨﻬﻤـﺎ ﻓـﻲ‬
‫ﺍﻟﺤﻘﻭل ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻓﻲ ﺍﻟﻌﻨﺼﺭ ‪Tabel2‬‬
‫ﺍﻟﺸﺭﺡ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﻴﻌﺭﻑ ﻋﻨﺼﺭ ‪ DataSource‬ﺍﻟﻤﺭﺘﺒﻁ ﻤﻊ ﺍﻟﺠﺩﻭل ﺍﻟﺭﺌﻴﺴﻲ‬ ‫‪Datasource1‬‬ ‫‪MasterSource‬‬
‫ﻴﺤﺩﺩ ﺍﻟﺤﻘل ﺍﻟﺫﻱ ﺴﻴﻘﻭﻡ ﺒﺘﺭﺘﻴﺏ ﻭﻓﻬﺭﺴﺔ ﺍﻟﺴﺠﻼﺕ ﻓﻲ ﺍﻟﺠﺩﻭل‬ ‫‪CustNo‬‬ ‫‪IndexName‬‬

‫ﺒﻌﺩ ﺃﻥ ﺘﻌﻠﻤﻨﺎ ﻜﻴﻔﻴﺔ ﺘﻨﻔﻴﺫ ﺘﻁﺒﻴﻘﺎﺕ ﻗﻭﺍﻋﺩ ﺒﺎﺴﺘﺨﺩﺍﻡ ﻤﻌﺎﻟﺞ ﺍﻟﻨﻤﺎﺫﺝ ﺴﻨﻌﻴﺩ ﺍﻷﻤﺜﻠﺔ ﺍﻟﺴﺎﺒﻘﺔ ﺒﺎﺴﺘﺨﺩﺍﻡ ﺍﻟﻌﻨﺎﺼﺭ ﻤﺒﺎﺸﺭﺓ ‪:‬‬
‫ﻤﺜﺎل ‪: 1‬‬
‫ﺴﻨﻘﻭﻡ ﺒﻜﺘﺎﺒﺔ ﺒﺭﻨﺎﻤﺞ ﻴﻌﺭﺽ ﺍﻟﺠﺩﻭل ‪ Country.db‬ﺍﻟﻤﻭﺠﻭﺩ ﻀﻤﻥ ﺍﻟﻘﺎﻋﺩﺓ ‪DBDemos‬‬
‫ﺍﺒﺩﺃ ﻤﺸﺭﻭﻋﹰﺎ ﺠﺩﻴﺩﹰﺍ ﻭﺃﻀﻑ ﺇﻟﻰ ﺍﻟﻨﻤﻭﺫﺝ ﺍﻟﻌﻨﺎﺼﺭ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫‪ 1‬ـ ﺍﻟﻌﻨﺼﺭ ‪ Table‬ﻤﻥ ﺍﻟﺼﻔﺤﺔ ‪BDE‬‬
‫‪ _ 2‬ﺍﻟﻌﻨﺼﺭ ‪ DataSource‬ﻤﻥ ﺍﻟﺼﻔﺤﺔ ‪. Data Access‬‬

‫‪83‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬
‫‪ 3‬ـ ﺍﻟﻌﻨﺼﺭ ‪ DBGrid‬ﻭ ‪ DBNavigator‬ﻤﻥ ﺍﻟﺼﻔﺤﺔ ‪. Data Control‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ Table‬ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺍﻟﻘﻴﻤﺔ ‪ DBDEMOS‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺴﻡ ﻤﻌﺭﻑ ﻤﺴﺒﻘﹰﺎ ﻴﺸﻴﺭ ﺇﻟﻰ‬ ‫‪DBDEMOS DataBaseName‬‬
‫ﻤﻜﺎﻥ ﺘﻭﺍﺠﺩ‬
‫) ﻤﺴﺎﺭ ( ﺍﻟﺠﺩﺍﻭل ) ﻨﺴﺘﻁﻴﻊ ﺃﻥ ﻨﻜﺘﺏ ﻤﺴﺎﺭ ﻓﻬﺭﺱ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ‬
‫ﻻ ﻤﻨﻬﺎ‬
‫ﺒﺩ ﹰ‬
‫ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﺴﻴﺭﺘﺒﻁ ﻤﻊ ﺍﻟﻌﻨﺼﺭ‬ ‫‪country.db‬‬ ‫‪TableName‬‬
‫ﺃﻋﻁ ﺍﻟﻘﻴﻤﺔ ‪ True‬ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﺔ ﻟﺘﺴﺘﻁﻴﻊ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺠﺩﻭل ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ‬ ‫‪True‬‬ ‫‪Active‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ DataSource‬ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺘﺠﻌل ﻫﺫﻩ ﺍﻟﺨﺎﺼﺔ ﺍﻟﻤﻌﻁﻴﺎﺕ ﻓﻲ ﻭﻀﻊ ﺍﻟﺘﺤﺭﻴﺭ ) ﺃﻤﻜﺎﻨﻴﺔ ﺍﻟﺘﻌﺩﻴل ( ﺃﻤﺎ‬ ‫‪True‬‬ ‫‪AutoEdit‬‬
‫ﺇﺫﺍ ﺃﺭﺩﻨﺎ ﺍﺴﺘﻌﺭﺍﺽ ) ﻗﺭﺍﺀﺓ ﺩﻭﻥ ﺘﻐﻴﻴﺭ ( ﺍﻟﻤﻌﻁﻴﺎﺕ ﻓﻘﻁ ﻓﻨﻌﻁﻲ ﻫﺫﻩ‬
‫ﺍﻟﺨﺎﺼﺔ ﺍﻟﻘﻴﻤﺔ ‪False‬‬
‫ﺘﺤﺩﺩ ﻫﺫﻩ ﺍﻟﺨﺎﺼﺔ ﺍﺴﻡ ﺍﻟﻌﻨﺼﺭ ﺍﻟﺫﻱ ﺴﻴﺭﺘﺒﻁ ﻤﻌﻪ ﺍﻟـ ‪Datasource‬‬ ‫‪Table1‬‬ ‫‪Dataset‬‬
‫ﻟﻠﺤﺼﻭل ﻋﻠﻰ ﺍﻟﻤﻌﻁﻴﺎﺕ ‪.‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ DBGrid‬ﻭﺍﻟﻌﻨﺼﺭ ‪ DBNavigator‬ﺍﻟﺨﺎﺼﺔ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺘﺤﺩﺩ ﻫﺫﻩ ﺍﻟﺨﺎﺼﺔ ﺍﻟﻌﻨﺼﺭ ﺍﻟﺫﻱ ﺴﻴﺯﻭﺩ ‪ DBGrid‬ﺒﺎﻟﻤﻌﻁﻴﺎﺕ‬ ‫‪Datasource1‬‬ ‫‪Datasource‬‬
‫ﻨﻔﺫ ﺍﻟﺒﺭﻨﺎﻤﺞ ‪.‬‬
‫ﻤﺜﺎل ‪: 2‬‬
‫ﺇﻨﺸﺎﺀ ‪ Master Detail Form‬ﺒﺩﻭﻥ ﺍﺴﺘﺨﺩﺍﻡ ﺍﻟﻤﻌﺎﻟﺞ ‪:‬‬
‫ﺍﺒﺩﺃ ﻤﺸﺭﻭﻋﹰﺎ ﺠﺩﻴﺩﹰﺍ ﻭﺃﻀﻑ ﺇﻟﻴﻪ ﻋﻨﺼﺭﻱ ‪ Table‬ﻭﻋﻨﺼﺭﻱ ‪ DataSource‬ﻭﻋﻨﺼﺭﻱ ‪ DBGrid‬ﻭﻋﻨﺼﺭ‬
‫‪. DBNavigator‬‬
‫‪ 1‬ـ ﺭﺒﻁ ﺍﻟﺠﺩﻭل ﺍﻟﺭﺌﻴﺴﻲ ) ‪: ( Master‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ Table1‬ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺍﻟﻘﻴﻤﺔ ‪ DBDEMOS‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺴﻡ ﻤﻌﺭﻑ ﻤﺴﺒﻘﹰﺎ ﻴﺸﻴﺭ ﺇﻟﻰ‬ ‫‪DBDEMOS DataBaseName‬‬
‫ﻤﻜﺎﻥ ﺘﻭﺍﺠﺩ‬
‫) ﻤﺴﺎﺭ ( ﺍﻟﺠﺩﺍﻭل ) ﻨﺴﺘﻁﻴﻊ ﺃﻥ ﻨﻜﺘﺏ ﻤﺴﺎﺭ ﻓﻬﺭﺱ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ‬
‫ﻻ ﻤﻨﻬﺎ‬
‫ﺒﺩ ﹰ‬

‫‪84‬‬
‫‪http://www.alshater.net‬‬ ‫ﻟﻐﺔ اﻟﺒﺮﻣﺠﺔ دﻟﻔﻲ‬
‫‪ Customers.db‬ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﺴﻴﺭﺘﺒﻁ ﻤﻊ ﺍﻟﻌﻨﺼﺭ‬ ‫‪TableName‬‬
‫ﺃﻋﻁ ﺍﻟﻘﻴﻤﺔ ‪ True‬ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﺔ ﻟﺘﺴﺘﻁﻴﻊ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺠﺩﻭل ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ‬ ‫‪True‬‬ ‫‪Active‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ DataSource1‬ﺍﻟﺨﺎﺼﺔ ‪ DataSet‬ﺍﻟﻘﻴﻤﺔ ‪. Table1‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭﻴﻥ ‪ DBGrid1‬ﻭ ‪ DBNavigator1‬ﺍﻟﺨﺎﺼﺔ ‪ DataSource‬ﺍﻟﻘﻴﻤﺔ ‪. DataSource1‬‬

‫‪ 2‬ـ ﺭﺒﻁ ﺍﻟﺠﺩﻭل ﺍﻟﺘﻔﺼﻴﻠﻲ ‪: Detail‬‬


‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ Table2‬ﺍﻟﺨﺼﺎﺌﺹ ﺍﻟﺘﺎﻟﻴﺔ ‪:‬‬
‫ﻤﻼﺤﻅﺎﺕ‬ ‫ﺍﻟﻘﻴﻤﺔ‬ ‫ﺍﻟﺨﺎﺼﺔ‬
‫ﺍﻟﻘﻴﻤﺔ ‪ DBDEMOS‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻥ ﺍﺴﻡ ﻤﻌﺭﻑ ﻤﺴﺒﻘﹰﺎ ﻴﺸﻴﺭ ﺇﻟﻰ‬ ‫‪DBDEMOS DataBaseName‬‬
‫ﻤﻜﺎﻥ ﺘﻭﺍﺠﺩ‬
‫) ﻤﺴﺎﺭ ( ﺍﻟﺠﺩﺍﻭل ) ﻨﺴﺘﻁﻴﻊ ﺃﻥ ﻨﻜﺘﺏ ﻤﺴﺎﺭ ﻓﻬﺭﺱ ﻗﺎﻋﺩﺓ ﺍﻟﻤﻌﻁﻴﺎﺕ‬
‫ﻻ ﻤﻨﻬﺎ‬
‫ﺒﺩ ﹰ‬
‫ﺍﺴﻡ ﺍﻟﺠﺩﻭل ﺍﻟﺫﻱ ﺴﻴﺭﺘﺒﻁ ﻤﻊ ﺍﻟﻌﻨﺼﺭ‬ ‫‪order.db‬‬ ‫‪TableName‬‬
‫ﺃﻋﻁ ﺍﻟﻘﻴﻤﺔ ‪ True‬ﻟﻬﺫﻩ ﺍﻟﺨﺎﺼﺔ ﻟﺘﺴﺘﻁﻴﻊ ﻤﺸﺎﻫﺩﺓ ﺍﻟﺠﺩﻭل ﺃﺜﻨﺎﺀ ﺍﻟﺘﺼﻤﻴﻡ‬ ‫‪True‬‬ ‫‪Active‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ DataSource2‬ﺍﻟﺨﺎﺼﺔ ‪ DataSet‬ﺍﻟﻘﻴﻤﺔ ‪. Table2‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭﻴﻥ ‪ DBGrid2‬ﺍﻟﺨﺎﺼﺔ ‪ DataSource‬ﺍﻟﻘﻴﻤﺔ ‪. DataSource2‬‬
‫ﺒﻬﺫﺍ ﻨﻜﻭﻥ ﻗﺩ ﺭﺒﻁﻨﺎ ﺍﻟﻌﻨﺎﺼﺭ ﻤﻊ ﺍﻟﺠﺩﻭل ﻭﻵﻥ ﻋﻠﻴﻨﺎ ﺃﻥ ﻨﻌﻠﻡ ﺍﻟﺠﺩﻭل ‪ Table2‬ﺃﻨﻪ ﺠﺩﻭل ﺘﻔﺼﻴﻠﻲ ﻟﻠﺠﺩﻭل‬
‫‪. Table1‬‬
‫ﺃﻋﻁ ﺍﻟﻌﻨﺼﺭ ‪ Table2‬ﺍﻟﺨﺎﺼﺔ ‪ MasterSource‬ﺍﻟﻘﻴﻤﺔ ‪ Datasouce1‬ﻭ ﺍﻟﺨﺎﺼﺔ ‪ MasterField‬ﺍﻟﻘﻴﻤﺔ‬
‫‪CustNo‬‬

‫‪85‬‬

You might also like