You are on page 1of 31

‫ﺟﺮوب ﻓﻴﺠﻮال ﺑﻴﺴﻚ دوت ﻧﺖ و ﺑﺲ‬

‫اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ اﻟﻜﺎﺋﻦ‬


‫ﻓﻴﺠﻮال ﺑﻴﺴﻚ دوت ﻧﺖ‬
‫)‪Ebn Abbas (Hairan Fel Nas‬‬
‫‪8/27/2014‬‬

‫ﻣﺟﻣوﻋﻪ دروس ﻣﺧﺗﺻرﻩ و ﺷرح واﻓﻲ ﻟﺑرﻧﺎﻣﺞ ﻣﺑﯾﻌﺎت ﻛﺎﻣل‪ ،‬ﺑطرﯾﻘﻪ اﻟﺑرﻣﺟﻪ اﻟﻣوﺟﻬﻪ ﻧﺣو اﻟﻛﺎﺋن‪ ،‬ﻻ ﻧرﯾد ﻣﻧﻛم ﺟزاءاً و ﻻ‬
‫ﺷﻛو ار اﻻ دﻋوﻩ ﺻﺎدﻗﻪ ﺑظﻬر اﻟﻐﯾب‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪2‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪3‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬


‫‪#‬ﺑﺮﻧﺎﻣﺞ‪_OOP‬‬
‫ﺳﻠﺴﻠﻪ ﻛﺎﻣﻠﻪ ﻟﺸﺮح ﺑﺮﻧﺎﻣﺞ ﻣﺒﻴﻌﺎت ﻛﺎﻣﻞ ﺑﻄﺮﻗﻪ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ‬
‫اﻟﻜﺎﺋﻦ‪(Object Oriented Programming).‬‬
‫اﻟﺪرس اﻻول‪:‬‬

‫اوﻻً‪ :‬ﻣﻌﻨﻲ ﺑﺮﻣﺠﻪ ﻣﻮﺟﻬﻪ ﻧﺤﻮ اﻟﻜﺎﺋﻦ‬

‫ﻋﻧدﻣﺎ ﺗﻧﺷﻲء ﻛﻼس اﺳﻣﻬﺎ ‪ Car.vb‬ﻣﺛﻼ ‪ ،‬ﺗﺣﺗوي ﻫذﻩ اﻟﻛﻼس ﻋﻠﻲ ﻣﺗﻐﯾرات و ﺧﺻﺎﺋص و طرق او دوال‪ ،‬طﯾب‬
‫ﻛﯾف ﺗﺳﺗﺧدم اﻟطرق و اﻟدوال و اﻟﺧﺻﺎﺋص اﻟﻣوﺟودﻩ ﻓﻲ ﻛﻼس ﻛﺎر ؟؟ ﯾﺗم ذﻟك ﻋن طرﯾق اﺷﺗﻘﺎق )ﯾﺗم ﻫذا‬
‫اﻻﺷﺗﻘﺎق طﺑﻌﺎ داﺧل ﻓورم )ﻛﺎﺋن ﻣن اﻟﻛﻼس ‪ Car.vb‬ﻋن طرﯾق اﻟﻛود‬

‫‪Dim BMW As New Car‬‬

‫ﺑﻛدﻩ ﯾﻛون ‪# BMW‬ﻛﺎﺋن ﻣﺷﺗق ﻣن اﻟﻛﻼس ﻛﺎر ‪ ،‬و ﻣن ﻫﻧﺎ ﻛﺎﻧت اﻟﺗﺳﻣﯾﻪ "ﺑرﻣﺟﻪ ﻣوﺟﻬﻪ ﻧﺣو اﻟﻛﺎﺋن"‬

‫ﺛﺎﻧﻴﺎً‪ :‬ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬


‫ﯾﺣﺗوي اﻟﺑرﻧﺎﻣﺞ ﻋﻠﻲ ﻗﺎﻋدﻩ ﺑﯾﺎﻧﺎت اﻛﺳس ‪ 2007‬او اي اﺻدار اﺧر ﻣش ﺣﺗﻔرق‪ ،‬ﺗﺣﺗوي ﻗﺎﻋدﻩ اﻟﺑﯾﺎﻧﺎت ﻋﻠﻲ ارﺑﻊ‬
‫ﺟداول )طﺑﻌﺎ ﻣش ﺣﺣﺷرح اﻛﺳس ﻫﻧﺎ و اﻟﻣوﺿوع اﺻﻼ ﺳﺎﻫل(‬

‫‪ .1‬اﻟﺟدول اﻻول‪ :‬اﺳﻣﻪ ‪ Customers‬ﯾﺣﺗوي ﻋﻠﻲ ارﺑﻊ ﺣﻘول‬


‫‪ cust_id‬و ﻧوﻋﻪ ‪Number‬‬
‫‪ cust_name‬و ﻧوﻋﻪ ‪Text‬‬
‫‪ address‬و ﻧوﻋﻪ ‪Text‬‬
‫‪ tel‬وﻧوﻋﻪ ‪Text‬‬
‫‪ .2‬اﻟﺟدول اﻟﺛﺎﻧﻲ و اﺳﻣﻪ )‪ (Order‬و ﯾﻌﻧﻲ ﺑﺄواﻣر اﻟﺷراء‬
‫‪ order_id‬وﻧوﻋﻪ ‪Number‬‬
‫‪ order_date‬وﻧوﻋﻪ ‪date/time‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪4‬‬

‫‪ order_status‬وﻧوﻋﻪ ‪) Text‬ﺣﺎﻟﺔ اﻣر اﻟﺷراء ﻣن ﺣﯾث ﻛوﻧﻪ ﺗم اﻻﻧﺗﻬﺎء ﻣﻧﻪ ‪ ،‬ﻗﯾد اﻻﻧﺗظﺎر ‪ ،‬اﻟﻐﻲ‬
‫‪ ،‬او ﺗﺣت اﻟﺗﺷﻐﯾل(‬
‫‪ customer‬وﻧوﻋﻪ ‪Text‬‬
‫‪ .3‬اﻟﺟدول اﻟﺛﺎﻟث و اﺳﻣﻪ )‪ (Order_Details‬ﯾﻌﻧﻲ ﺑﺗﻔﺎﺻﯾل اواﻣر اﻟﺷراء‬
‫‪1- order_id‬وﻧوﻋﻪ‪Number‬‬
‫‪2- pro_id‬وﻧوﻋﻪ‪Number‬‬
‫‪3- price‬وﻧوﻋﻪ ‪ Number‬و ﻧوﻋﻪ ﺗﺣت ﻓﻲ اﻟﺗﻔﺎﺻﯾل‪double‬‬
‫‪4- quantity‬وﻧوﻋﻪ‪Number‬‬
‫‪ .4‬اﻟﺟدول اﻟراﺑﻊ و اﺳﻣﻪ( ‪ Product‬ﯾﻌﻧﻲ ﺑﺎﻟﻣﻧﺗﺟﺎت )‬
‫‪1- pro_name‬وﻧوﻋﻪ‪Text‬‬
‫‪2- pro_desc‬وﻧوﻋﻪ( ‪ Text‬وﺻف ﻟﻠﻣﻧﺗﺞ)‬
‫‪3- pro_id‬وﻧوﻋﻪ‪Number‬‬
‫‪4- price‬وﻧوﻋﻪ ‪ Number‬و ﻧوﻋﻪ ﺗﺣت ﻓﻲ اﻟﺗﻔﺎﺻﯾل‪double‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪5‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬


‫ﺑﺮﻧﺎﻣﺞ_‪OOP‬‬
‫ﺳﻠﺴﻠﻪ ﻛﺎﻣﻠﻪ ﻟﺸﺮح ﺑﺮﻧﺎﻣﺞ ﻣﺒﻴﻌﺎت ﻛﺎﻣﻞ ﺑﻄﺮﻗﻪ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ‬
‫اﻟﻜﺎﺋﻦ‪(Object Oriented Programming).‬‬
‫اﻟﺪرس اﻟﺜﺎﻧﻰ‪:‬‬

‫طﺑﻌﺎ اﻟدرس اﻻول ﻛﺎن ﺳﻬل و ﻣش ﻣﻣﺗﻊ ﻗد ﻛدﻩ ‪ ،‬و ﻟم ﯾﻛن ﺑﻪ ﺳوي ﺑﺻﯾص ﻣن اﻟﺑرﻣﺟﻪ اﻟﻣوﺟﻬﻪ ﻧﺣو اﻟﻛﺎﺋن‪،‬‬
‫ﻋﺷﺎن ﻛدﻩ آﺛرت أن أﻧﺷر درﺳﯾن ﻓﻲ ﻧﻔس اﻟﯾوم‪ ،‬ﻣﻊ اﻟﻌﻠم ان ﻫذا ﻟن ﯾﺗﻛرر إن ﺷﺎء اﷲ‪.‬‬
‫اوﻻ‪ :‬إﻧﺷﺎء اﻟﻣﺷروع‬
‫اﻣر ﻻﯾﺣﺗﺎج اﻟﻲ ﺷرح و ﻟﻛن ﺣﻧﺷرﺣﻪ ‪ ،‬اﻧﺎ اﻋﻣل ﻋﻠﻲ ﻓﯾﺟوال ﺳﺗودﯾو ‪ 2010‬و أي ﻛﺎﻧت ﻧﺳﺧﺗك اﻋﺗﻘد ان اﻻﻣر‬
‫ﻟن ﯾﺧﺗﻠف ﻛﺛﯾ ًار‪.‬‬
‫‪File->new->project‬‬
‫و ﻧﺳﻣﯾﻪ اﺳﻣﺎ و ﻟﯾﻛن ‪ OOP_Project‬و ﻧﺿﻐط‪OK‬‬
‫اﻻن ﻟدﯾﻧﺎ ﻣﺷروع ﺟدﯾد‪ ،‬ﻓﻠﻧدﺧل ﻋﻠﻲ اﻟﺧطوﻩ اﻟﺗﺎﻟﯾﻪ و ﻫﻲ اﻣر‪ ،‬اﻋﺗﻘد ﯾﺟﻬﻠﻪ اﻟﻛﺛﯾرون و ﺣﺗﻲ اﻧﺎ ﻣﻧذ زﻣن ﻟﯾس‬
‫ﺑﺎﻟﺑﻌﯾد‪ ،‬دﻋوﻧﺎ اﻻن ﻧﺗﻧﺳم ﻋﺑق اﻟﺑرﻣﺟﻪ اﻟﻣوﺟﻬﻪ ﻧﺣو اﻟﻛﺎﺋن‪.‬‬

‫ﺛﺎﻧﯿﺎ ‪ :‬إدراج " ﻣﺨﻄﻂ ﻛﻼﺳﺎت " و ﺑﺎﻻﻧﺠﻠﯿﺰﯾﮫ "‪"CLASS DIAGRAM‬‬


‫‪Project->Add New Item‬‬
‫او‪ctrl+shift+a‬‬
‫ﺛم ﻧﺧﺗﺎر ‪Class Diagram‬ﻛﻣﺎ ﻓﻲ ﺷﻛل )‪ (1‬و ﻧﺳﻣﻪ اﺳﻣﺎ او ﻧدع اﻻﺳم اﻟﺗﻠﻘﺎﺋﻲ ﺛم ﻧﺿﻐط‪Add‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪6‬‬

‫ﻓﯾظﻬر ﻟﻧﺎ ﻣﺧطط اﻟﻛﻼﺳﺎت ‪ ،‬ﺷﻛل )‪(2‬‬


‫ﻓﻧﻼﺣظ اﻟﺗﺎﻟﻲ‬
‫‪ -1‬اﻟﺗول ﺑوﻛس ﯾﺣﺗوي ﻋﻧﺎﺻر ﻣﺧﺗﻠﻔﻪ‪ ،‬ﻋن ﺗﻠك اﻟﺗﻲ اﻋﺗدﻧﺎﻫﺎ ﻓﻲ اﻟﻔورم‬
‫و ﻫﻲ ﻋﻠﻲ ﺳﺑﯾل اﻟﻣﺛﺎل )‪(class, Enum, inheritance, association‬‬
‫‪ -2‬ظﻬو اﻟﻛﻼس دﯾﺎﺟرام ﻓﻲ اﻟﺳوﻟﯾوﺷن اﻛﺳﺑﻠورر‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪7‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪8‬‬

‫ﺛﺎﻟﺛﺎ‪ :‬إدراج اﻟﻛﻼﺳﺎت ﻓﻲ اﻟﻛﻼس دﯾﺎﺟرام ‪ ،‬ﻋن طرﯾق اﻟﺳﺣب و اﻻدراج ﻣن اﻟﺗول ﺑوﻛس‪ ،‬ﻋﺎدي زي اﻟﺑﺎﺗون او‬
‫اﻟﺗﻛﺳت ﺑوﻛس ‪،‬ﺷﻛل )‪(3‬‬

‫و ﻫﻲ ارﺑﻊ ﻛﻼﺳﺎت‬

‫ﻛﻼس ‪Customer‬‬
‫ﻛﻼس‪Order‬‬
‫ﻛﻼس ‪Product‬‬
‫ﻛﻼس )‪ (WorkTable‬ﻫذﻩ اﻟﻛﻼس ﺧﺎﺻﻪ ﺑﺎﻟﺗﻌﺎﻣل ﻣﻊ ﻗواﻋد اﻟﺑﯾﺎﻧﺎت ﻛﻣﺎ ﺳﯾﺗﺿﺢ ﺑﻌد ذﻟك‪.‬‬

‫ﻓﻲ ﺷﻛل )‪ (4‬ﺗﻼﺣظ وﺟود ﺗﻔﺎﺻﯾل ﻛﻼس ‪ Customer‬اﻟﻠﻲ اﺣﻧﺎ ﻣﺣددﯾﻧﻬﺎ‪ ،‬و ﻫذﻩ اﻟﺗﻔﺎﺻﯾل ﺗﺷﻣل‬
‫( ‪Methods‬اﻟدوال)‬
‫(‪Properties‬اﻟﺧﺻﺎﺋص)‬
‫(‪fields‬اﻟﺣﻘول)‬
‫( ‪Events‬اﻻﺣداث)‬

‫و دي ﺑﻘﻲ ﻣوﺿوع اﻟدرس اﻟﺛﺎﻟث ان ﺷﺎء اﷲ‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪9‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪10‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬

‫‪#‬ﺑﺮﻧﺎﻣﺞ_‪OOP‬‬

‫ﺳﻠﺴﻠﻪ ﻛﺎﻣﻠﻪ ﻟﺸﺮح ﺑﺮﻧﺎﻣﺞ ﻣﺒﻴﻌﺎت ﻛﺎﻣﻞ ﺑﻄﺮﻗﻪ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ‬
‫اﻟﻜﺎﺋﻦ‪(Object Oriented Programming).‬‬
‫اﻟﺪرس اﻟﺜﺎﻟﺚ‪:‬‬

‫اﻟﯾوم ﻧﻘوم ﺑﻌﻣل اﻟﺣﻘول )‪ (Fields‬و اﻟﺧﺻﺎﺋص )‪ (Properties‬ﻟﻛﻼس ‪ Customer‬و ﻟﻛﻼس ‪ Order‬و ﻛﻼس‬
‫‪ Product‬أﻣﺎ اﻟدوال )‪ (Methods‬ﻟﻠﺛﻼث ﻛﻼﺳﺎت ﺳﻧﺗﻧﺎوﻟﻬﺎ ﻓﻲ اﻟدرس اﻟراﺑﻊ إن ﻗدر اﷲ ﻋز و ﺟل اﻟﺑﻘﺎء‪.‬‬

‫اﻟﺠﺰء اﻻول‪ :‬ﻣﻘﺪﻣﻪ ﻧﻈﺮﻳﻪ )ﻟﻸﺳﻒ ‪(‬‬

‫ﻻﺗﺣﺎول ﻓﻬﻣﻬﺎ اﻻ ﺑﻌد اﻟﺟزء اﻟﻌﻣﻠﻲ و ﻟﻛن ﻻﺑد ﻣﻧﻬﺎ‪ ،‬ﻣن ﻛﺗﺎب اﻻﺳﺗﺎذ ﺗرﻛﻲ اﻟﻌﺳﯾري )ﺑرﻣﺟﺔ اطﺎر اﻟﻌﻣل دوت‬
‫ﻧت( ﺻﻔﺣﻪ ‪ 128‬ﺑﺗﺻرف ﯾﺳﯾر ‪..‬‬
‫اﻟﺣﻘول)‪: (Fields‬‬

‫أﺑﺳط اﻧواع اﻻﻋﺿﺎء اﻟﺗﻲ ﯾﻣﻛﻧك ﺗﻌرﯾﻔﻬﺎ ﻓﻲ اﻟﻛﻼﺳﺎت ﻫﻲ اﻟﺣﻘول ‪ ، Fields‬و اﻟﺣﻘول – ﻓﻲ ﻋﺎﻟم ﻛﻼﺳﺎت‬
‫اﻟدوت ﻧت – ﻣﺎ ﻫﻲ اﻻ ﻣﺗﻐﯾرات ﺗﻘﻠﯾدﯾﻪ ‪ ،‬و اﻟﻛﻼس ﺗﺣﺗوي ﻋﻠﻲ ﺧﻣس اﻧواع ﻣن اﻟﺣﻘول‬

‫‪Class SimpleClass‬‬

‫‪Public Field1 As String‬‬

‫‪Public Field2 As Integer‬‬

‫‪Public Field3 As Double‬‬

‫‪Public Field4 As Boolean‬‬

‫‪Public Field5 As PersonClass‬‬

‫‪End Class‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪11‬‬

‫اﻟﺧﺻﺎﺋص)‪ : (Properties‬اﻟﺧﺻﺎﺋص ﺗﻌﻣل ﻋﻠﻲ اﻟﺣﻘول ‪ ،‬ﺑﺣﯾث ﺗﻣﻛﻧك ﻣن أﺳﻧﺎد )ٍ‪ (Set‬و ﻗراءﻩ )‪ (Get‬اﻟﻘﯾم‬
‫ﻟﻠﺣﻘول‪.‬‬
‫اﻟﻛﺑﺳﻠﻪ )‪ : (Encapsulation‬ﻫﻲ اﻧك ﺗﺟﻌل ﻣﺣدد اﻟوﺻول ﻟﻠﺣﻘل ‪ Private‬و ﺗﻌﻣﻠﻪ ﺧﺎﺻﯾﻪ ﺑﻣﺣدد وﺻول‬
‫‪ Public‬ﻟﻘراءﻩ و أﺳﻧﺎد اﻟﻘﯾم ﻟﻠﺣﻘل‪.‬‬

‫اﻟﺠﺰء اﻟﺜﺎﻧﻲ‪ :‬ﻋﻤﻠﻲ )‪(‬‬

‫‪ -1‬ﺿﺑط اﻟﺣﻘول ﻟﻛﻼس ‪Customer‬‬


‫ﻟﻛل ﺣﻘل ﻓﻲ ﺟدول ‪ Customers‬ﻓﻲ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت ﻧﻌﻣل ﺣﻘل ﻓﻲ اﻟﻛﻼس‬
‫ﻟﻠﺗذﻛﯾر ﺑﺣﻘول اﻟﺟدول اﻻول‪ :‬اﺳﻣﻪ ‪ Customers‬ﯾﺣﺗوي ﻋﻠﻲ ارﺑﻊ ﺣﻘول‬
‫‪ cust_id -1‬و ﻧوﻋﻪ ‪Number‬‬
‫‪ cust_name -2‬و ﻧوﻋﻪ ‪Text‬‬
‫‪ address -3‬و ﻧوﻋﻪ ‪Text‬‬
‫‪ tel -4‬وﻧوﻋﻪ ‪Text‬‬
‫أﺳم ﻛل ﺣﻘل ﻓﻲ اﻟﻛﻼس ﻧﻔﺳﻪ ﻓﺳﻪ ﻓﻲ ﺟدول ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت و ﻟﻛن ﯾﺳﺑﻘﻪ أﻧدرﺳﻛور‬

‫اﻟﺣﻘل اﻻول‪_cust_id :‬‬


‫وﻧوﻋﻪ ‪ String‬ﻋﻠﻲ اﻟرﻏم ﻣن ان ﻫذا اﻟﺣﻘل ﻣن ﻧوع ‪ Number‬ﻓﻲ ﻗﺎﻋدةاﻟﺑﯾﺎﻧﺎت ﻓﻛﺎن اﻟﻣﺗوﻗﻊ ان ﯾﺗم‬
‫ﻋﻣﻠﻪ ﻣن اﻟﻧوع ‪ Integer‬ﻓﻲ اﻟﻛﻼس ؟؟!! ﻣﻌﻠش ﻓوﺗﻬﺎ‪ ،‬واوﻋدك ﺣﺗﻔﻬﻣﻬﺎ ﻓﻲ ﺑرﻣﺟﻪ ﺷﺎﺷﻪ ال‬
‫‪Customers‬‬

‫اﻟﺣﻘل اﻟﺛﺎﻧﻲ‪_cust_name :‬‬


‫و ﻧوﻋﻪ ‪String‬‬
‫اﻟﺣﻘل اﻟﺛﺎﻟث‪_address :‬‬
‫و ﻧوﻋﻪ ‪String‬‬
‫اﻟﺣﻘل اﻟراﺑﻊ ‪_tel :‬‬
‫و ﻧوﻋﻪ ‪String‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪12‬‬

‫دي ﺑﻘﻲ اﺳﻣﺎء اﻟﺣﻘول و اﻧواﻋﻬﺎ ‪ ،‬طب ازاي ﻧدﺧﻠﻬﺎ ﻓﻲ اﻟﻛﻼس دﯾﺎﺟرام ؟؟ اﻗوﻟك ‪،‬ﻛﻣﺎ ﻓﻲ ﺷﻛل )‪(5‬‬
‫ﺣدد اﻟﻛﻼس‬
‫اﻧزل ﺗﺣت ﻟل ‪Class details‬‬
‫اﺿﻐط >‪<add field‬‬

‫ﻓﻲ ﺷﻛل )‪ (6‬ﯾوﺿﺢ اﻟﺣﻘل و ﻧوﻋﻪ و ﻣﺣدد اﻟوﺻول ‪ Private‬و ذﻟك ﺗﺑﻌﺎ ﻟﻠﻛﺑﺳﻠﻪ ‪ Encapsulation‬ﺣﯾث‬
‫ﯾﺗم اﺳﻧﺎد و ﻗراءﻩ اﻟﻘﯾم ﻟﻠﺣﻘول ﻋن طرﯾق اﻟﺧﺻﺎﺋص‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪13‬‬

‫ظﺑط اﻟﺣﻘول ﻟﻛﻼس ‪ Product‬ﻣوﺿﺢ ﻓﻲ ﺷﻛل )‪(7‬‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪14‬‬

‫ظﺑط اﻟﺣﻘول ﻟﻛﻼس ‪ Order‬ﻣوﺿﺢ ﻓﻲ ﺷﻛل )‪(8‬‬

‫ﻣﻠﺣوظﻪ ‪ :‬اﻻ ﺗﻧﺳﻲ اﻻﻧدرﺳﻛور ﻗﺑل اﺳم اﻟﺣﻘل‬


‫ظﺑط اﻟﺣﻘول ﻟﻛﻼس ‪ WorkTable‬ﻣوﺿﺢ ﻓﻲ اﻟدرس ﺑﻌد اﻟﻘﺎدم ان ﺷﺎء اﷲ‬
‫و اﻟﻲ ﻟﻘﺎء ﺑﺄذن اﷲ‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪15‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬

‫‪#‬ﺑﺮﻧﺎﻣﺞ_‪OOP‬‬

‫ﺳﻠﺴﻠﻪ ﻛﺎﻣﻠﻪ ﻟﺸﺮح ﺑﺮﻧﺎﻣﺞ ﻣﺒﻴﻌﺎت ﻛﺎﻣﻞ ﺑﻄﺮﻗﻪ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ‬
‫اﻟﻜﺎﺋﻦ)‪.(Object Oriented Programming‬‬
‫اﻟﺪرس اﻟﺮاﺑﻊ‪:‬‬
‫ﻣﻘدﻣﻪ ﻣﻠﻬﺎش اي ﻻزﻣﻪ ‪v:‬‬

‫ظﺑطﻧﺎ ﻓﻲ اﻟدرس اﻟﺳﺎﺑق‪ ،‬ﺣﻘول اﻟﻛﻼﺳﺎت اﻟﺛﻼﺛﻪ )(‪ ،‬و ﻛﺎن ﻛل ﺣﻘل ﻣوازي ﻟﺣﻘول اﻟﺟداول ﻓﻲ ﻗﺎﻋدة اﻟﺑﯾﺎﻧﺎت‪ ،‬و‬
‫ﻛﻣﺎ ﻻﺣظﻧﺎ أن ﻣﺣدد اﻟوﺻول ﻟﻠﺣﻘول ‪ Private‬ﯾﻌﻧﻲ ﺧﺎص‪ ،‬ﯾﻌﻧﻲ ﻻ ﯾﻣﻛن اﻟوﺻول و ‪#‬رؤﯾﻪ اﻟﺣﻘول اﻻ ﻣن‬
‫داﺧل اﻟﻛﻼس!! طﯾب ﻛﯾف ﯾﻣﻛﻧﻧﺎ إﺳﻧﺎد ﻗﯾﻣﻪ )‪ (Set‬او ﻗراءة ﻗﯾﻣﻪ )‪ (Get‬ﻫذﻩ اﻟﺣﻘول ﺗﺑﻌﺎ ﻟﻘﺎﻋدﻩ اﻟﺑﯾﺎﻧﺎت ؟؟ ﯾﺗم‬
‫ذﻟك ﻋن طرﯾق اﻟﺧﺻﺎﺋص أو ‪ Properties‬و اﻟﻠﻲ ﺑﯾﻛون ﻣﺣدد اﻟو ﺻول ﺑﺗﺎﻋﻬﺎ ‪ ، Public‬و دﻩ طﺑﻌﺎ زي ﻣﺎ ﻗﻠﻧﺎ‬
‫و ﺑﻧﻌﯾد طﺑﻘﺎ ﻟﻣﺑدأ اﻟﻛﺑﺳﻠﻪ او اﻟﺗﻐﻠﯾف او ‪. Encapsulation‬ﺑﻧﺎءا ﻋﻠﯾﻪ ﺣﻧﻌﻣل ﻟﻛل ﺣﻘل ﻓﻲ ﻛل ﻛﻼس ﺧﺎﺻﯾﻪ‪،‬‬
‫ﻟﻬﺎ ﻧﻔس اﺳم اﻟﺣﻘل ﺑس ﻣن ﻏﯾر اﻧدرﺳﻛور‪.‬‬

‫اﻟﻌﻣﻠﻲ‬

‫ﺿﺑط ﺧﺻﺎﺋص ﻛﻼس ‪Customers‬‬

‫طﺑﻌﺎ اﺣﻧﺎ ﻓﺎﻛرﯾن اﻟﺣﻘول ﻛﺎﻧت‬

‫اﻟﺣﻘل اﻻول‪_cust_id :‬‬


‫وﻧوﻋﻪ ‪String‬‬
‫اﻟﺣﻘل اﻟﺛﺎﻧﻲ‪_cust_name :‬‬
‫و ﻧوﻋﻪ ‪String‬‬
‫اﻟﺣﻘل اﻟﺛﺎﻟث‪_address :‬‬
‫و ﻧوﻋﻪ ‪String‬‬
‫اﻟﺣﻘل اﻟراﺑﻊ ‪_tel :‬‬

‫و ﻧوﻋﻪ ‪String‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪16‬‬

‫ﻟﻛل ﺣﻘل ﻣن اﻟﺣﻘول دي ﺳﻧﻘوم ﺑﻌﻣل ‪ Property‬ﻣﺣدد اﻟوﺻول ﻟﻬﺎ ﺑﯾﻛون ‪ Public‬و ﻧوﻋﻬﺎ طﺑﻌﺎ زي ﻧوع اﻟﺣﻘل‬
‫اﻟﻣوازي ﻟﻬﺎ اﻟﻠﻲ ﺑت ‪ Get‬ﻣﻧﻪ و ﺑت ‪ Set‬ﻓﯾﻪ ‪ ،‬اﻻﺳم ﺑﯾﻛوةن ﻧﻔس اﺳم اﻟﺣﻘل و ﻟﻛن ﺑدون اﻧدرﺳﻛور ﻗﺑل اﺳم ال‬
‫‪. Property‬‬

‫اﻟﺧﺎﺻﯾﻪ اﻻوﻟﻲ‪cust_id :‬‬


‫وﻧوﻋﻬﺎ ‪ String‬وﻣﺣدد اﻟوﺻول ‪Public‬‬

‫اﻟﺧﺎﺻﯾﻪ اﻟﺛﺎﻧﯾﻪ‪cust_name :‬‬


‫وﻧوﻋﻬﺎ ‪ String‬وﻣﺣدد اﻟوﺻول ‪Public‬‬

‫اﻟﺧﺎﺻﯾﻪ اﻟﺛﺎﻟﺛﻪ‪address :‬‬


‫وﻧوﻋﻬﺎ ‪ String‬وﻣﺣدد اﻟوﺻول ‪Public‬‬

‫اﻟﺧﺎﺻﯾﻪ اﻟراﺑﻌﻪ‪tel :‬‬


‫وﻧوﻋﻬﺎ ‪ String‬وﻣﺣدد اﻟوﺻول ‪Public‬‬

‫ﺷﻛل )‪ (9‬ﯾوﺿﺢ ﺧﺻﺎﺋص ﻛﻼس ‪Customer‬‬

‫ﺧﺻﺎﺋص اﻟﻛﻼﺳﺎت ‪ Product‬و ‪ Order‬ﻣوﺿﺣﻪ ﻓﻲ ﺷﻛل )‪ (10‬و ﺷﻛل )‪(11‬‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪17‬‬

‫ﺷﻛل )‪(10‬‬

‫ﺷﻛل )‪(11‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪18‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬

‫‪#‬ﺑﺮﻧﺎﻣﺞ_‪OOP‬‬

‫ﺳﻠﺴﻠﻪ ﻛﺎﻣﻠﻪ ﻟﺸﺮح ﺑﺮﻧﺎﻣﺞ ﻣﺒﻴﻌﺎت ﻛﺎﻣﻞ ﺑﻄﺮﻗﻪ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ‬
‫اﻟﻜﺎﺋﻦ)‪.(Object Oriented Programming‬‬
‫اﻟﺪرس اﻟﺨﺎﻣﺲ‪:‬‬

‫إﻧﺗﻬﯾﻧﺎ ﻓﻲ اﻟﻛﻼس دﯾﺎﺟرام ﻣن ﻋﻣل اﻟﺣﻘول اﻟﻠﻲ ﻫﻲ ‪ Private‬و اﻟﺧﺻﺎﺋص اﻟﻠﻲ ﻫﻲ ‪ ، Public‬ﺗﻛون اﻟﺧطوة‬
‫اﻟﺗﺎﻟﯾﻪ اﻟﻣﻧطﻘﯾﻪ ﻫﻲ رﺑط ﻛل ﺧﺎﺻﯾﻪ ﺑﺎﻟﺣﻘل اﻟﻠﻲ ﺗﻘوم ﺑﺈﺳﻧﺎد ﻗﯾﻣﻪ ﻟﻪ )‪ (Set‬و ﻗراءﻩ اﻟﻘﯾﻣﻪ ﻣﻧﻪ )‪(Get‬‬

‫‪ -1‬راﯾت ﻛﻠﯾك ﻋﻠﻲ ﻛﻼس ‪ Customer‬ﺛم إﺧﺗﺎر ‪ View Code‬و ﺑﻛدﻩ ﺗﺻل اﻟﻲ ﻛود اﻟﻛﻼس‬

‫‪ -2‬ﺷﻛل )‪ (13‬ﯾوﺿﺢ اﻟﺣﻘول و اﻟﺧﺻﺎﺋص اﻟﺗﻲ ﺳﻧرﺑطﻬﺎ ﻣﻌﻬﺎ ‪ ،‬ﻋن طرﯾق اﻻﺳﻬم‪ ،‬و ﻟك ان ﺗﻼﺣظ ان‬
‫اﺳم اﻟﺣﻘل ﻓﻘط ﯾﻔرق ﻋن اﺳم اﻟﺧﺎﺻﯾﻪ ب اﻧدرﺳﻛور و ذﻟك ﻟﻠﺗﺳﻬﯾل ﻋﻠﯾك‬
‫‪ -3‬ﺗﻼﺣظ ان اول ﺧﺎﺻﯾﻪ ﻫﻲ ‪ address‬و ﻫﻲ ﺗﺗوﻗﻊ ﻣﻧﺎ ظﺑط ال ‪ Get‬و ال ‪ Set‬اﻟﺧﺎﺻﯾن ﺑﻬﺎ‬
‫ال ‪ Get‬ﻫﻲ ﻋﻣﻠﯾﻪ إﻋﺎدﻩ )‪ (return‬ﻗﯾﻣﻪ ﻣن اﻟﺧﺎﺻﯾﻪ ‪ ،‬ﻣﺎ ﻫﻲ اﻟﻘﯾﻣﻪ اﻟﺗﻲ ﺗﺗوﻗﻊ ان ﺗـ ــﻌﯾدﻫﺎ ﻟﻧﺎ اﻟﺧﺎﺻﯾﻪ‬
19 |‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ‬

(_address) ‫ اي اﻟﺣﻘل‬،‫؟ أﻛﯾد ﻗﯾﻣﻪ اﻟﺣﻘل اﻟﻣرادف اﺳﻣﻪ ﻻﺳم اﻟﺧﺎﺻﯾﻪ‬

‫_( ؟ اﻛﯾد ﻫﻲ اﻟﻘﯾﻣﻪ )( اﻟﺗﻲ ﯾﺗم‬address) ‫( ﻟﻠﺣﻘل‬Set) ‫( اﻟﺗﻲ ﺗﺗوﻗﻊ اﺳﻧﺎدﻫﺎ‬Value) ‫ﺳؤال اﺧر ﻣﺎ ﻫﻲ اﻟﻘﯾﻣﻪ‬
(Set) ‫ارﺳﺎﻟﻬﺎ ﻛﻣﺗﻐﯾر ﺑﯾن ﻗوﺳﯾن اﻣﺎم اﻟﻛﻠﻣﻪ اﻟﻣﺣﺟوزﻩ‬

‫ﺑﻧﺎءا ﻋﻠﻲ ﻣﺎ ﺳﺑق ﯾﻛون ﺿﺑط اﻟﺟﯾت و اﻟﺳﯾت ﻛﺎﻟﺗﺎﻟﻲ‬

Public Class Customer


Private _cust_id As String
Private _cust_name As String
Private _address As String
Private _tel As String

Public Property address As String


Get
Return _address
End Get
Set(ByVal value As String)
_address = value
End Set
End Property

Public Property cust_id As String


Get
Return _cust_id
End Get
20 |‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ‬

Set(ByVal value As String)


_cust_id = value
End Set
End Property

Public Property cust_name As String


Get
Return _cust_name
End Get
Set(ByVal value As String)
_cust_name = value
End Set
End Property

Public Property tel As String


Get
Return _tel
End Get
Set(ByVal value As String)
_tel = value = value
End Set
End Property

End Class

(14) ‫ﻛﻣﺎ ﻫو ﻣوﺿﺢ ﻓﻲ ﺷﻛل‬

(16) ‫( و اﻟﺷﻛل‬15) ‫ ﻛﻣﺎ ﻓﻲ اﻟﺷﻛل‬Order ‫ و ﻛﻼس‬Product ‫ ﻛﻼس‬،‫ﻧﻔس اﻻﻣر ﻧﻌﻣﻠﻪ ﻟﻠﻛﻼﺳﺎت اﻻﺧري‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪21‬‬
22 |‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ‬

Product ‫ ﻧص ﻛﻼس‬،‫ﻟﻣﺣﺑﻲ اﻟﻛوﺑﻲ ﺑﯾﺳت‬

Public Class Product


Private _pro_id As String
Private _pro_name As String
Private _pro_desc As String

Public Property pro_id As String


Get
Return _pro_id
End Get
Set(ByVal value As String)
_pro_id = value
End Set
End Property

Public Property pro_name As String


Get
Return _pro_name
End Get
Set(ByVal value As String)
_pro_name = value
End Set
End Property

Public Property pro_desc As String


Get
Return _pro_desc
End Get
Set(ByVal value As String)
_pro_desc = value
End Set
End Property

End Class

Order ‫ﻧص ﻛﻼس‬

Public Class Order


Private _order_id As String
Private _order_date As Date
Private _oder_status As String
Private _customer As String

Public Property customer As String


Get
Return _customer
End Get
Set(ByVal value As String)
_customer = value
End Set
End Property
23 |‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ‬

Public Property order_status As String


Get
Return _oder_status
End Get
Set(ByVal value As String)
_oder_status = value
End Set
End Property

Public Property order_date As Date


Get
Return _order_date
End Get
Set(ByVal value As Date)
_order_date = value
End Set
End Property

Public Property order_id As String


Get
Return _order_id
End Get
Set(ByVal value As String)
_order_id = value
End Set
End Property

End Class

‫دﻣﺗم ﻓﻲ اﻣﺎن اﷲ‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪24‬‬

‫ﺑﺴﻢ اﷲ اﻟﺮﺣﻤﻦ اﻟﺮﺣﻴﻢ‬

‫‪#‬ﺑﺮﻧﺎﻣﺞ_‪OOP‬‬

‫ﺳﻠﺴﻠﻪ ﻛﺎﻣﻠﻪ ﻟﺸﺮح ﺑﺮﻧﺎﻣﺞ ﻣﺒﻴﻌﺎت ﻛﺎﻣﻞ ﺑﻄﺮﻗﻪ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ‬
‫اﻟﻜﺎﺋﻦ)‪.(Object Oriented Programming‬‬
‫اﻟﺪرس اﻟﺴﺎدس‪:‬‬

‫إﻧﺗﻬﯾﻧﺎ ﻓﻲ اﻟدروس اﻟﺳﺎﺑﻘﻪ ﻣن ﻋﻣل اﻟﺣﻘول )اﻟﻣﺗﻐﯾرات(‪ ،‬و اﻟﺧﺻﺎﺋص‪ ،‬و رﺑطﻧﺎ ﻛل ﺧﺎﺻﯾﻪ ﺑﺎﻟﺣﻘل اﻟﺧﺎص ﺑﻬﺎ‪،‬‬
‫ﯾﺑﻘﻲ ﻟﻧﺎ ﺿﺑط ﻣﺎ ﯾﻣﻧﺢ اﻟﺑرﻧﺎﻣﺞ ‪#‬روﺣﺎً او ﻓﺎﻋﻠﯾﻪ ﯾﺑﻘﻲ ﻟﻧﺎ ﺿﺑط اﻟدوال‬

‫اﻟﺪوال )‪(Methods‬‬

‫و دي طﺑﻌﺎ ﺑﺗﻌﺗﻣد ﻋﻠﻲ طرﯾﻘﺔ ﺗﻔﻛﯾر اي ﻣﺑرﻣﺞ‪ ،‬اﻟﻠﻲ ﺣﻧﻌﻣﻠﻪ ﻫﻧﺎ ﻣﺟرد ﻣﺛﺎل‪ ،‬ﻣﻣﻛن اﻧت ﺗﺿﯾف ﻋﻠﯾﻪ ﻛﺛﯾر ﺟدا‪ ،‬و‬
‫ﻏﺎﻟﺑﺎ ﻟو اﻧت دارس ﻛوﯾس ﻟﻐﺔ ﺳﯾﻛوال )‪ (SQL‬ﻓﻬﻲ ﻣﺟرد ﺗﻌﺑﯾر ﻋن دوال اﻟﺳﯾﻛوال زي ﻣﺎ ﺣﻧﺷوف دﻟوﻗت‪.‬‬

‫‪ -I‬ﺑرﻣﺟﺔ دوال اﻟﻛﻼس ‪Customer‬‬

‫اﻟﺪاﻟﻪ اﻻوﻟﻲ‪:‬‬
‫‪ -‬ﻣﺛﻼ ﻋﺎوزﯾن داﻟﺔ ﺗﻌﯾد ﻛل اواﻣر اﻟﺷراء اﻟﻠﻲ اﻟﻌﻣﯾل اﻟﻔﻼﻧﻲ ﻋﻣﻠﻬم‬
‫ﻣدﺧﻼت اﻟداﻟﻪ دي ﺣﺗﻛون اﯾﻪ ؟؟ اﻛﯾد ال ‪ ID‬ﺑﺗﺎع اﻟﻌﻣﯾل ﻓﻘط‬
‫اﻟﻣﺧرﺟﺎت ﻋﺑﺎرﻩ ﻋن اﯾﻪ ؟؟ اﻛﯾد ‪ DataTable‬ﺟدول ﺑﯾﺎﻧﺎت ﯾﻌﻧﻲ‬

‫ﻣﻠﺣوظﻪ ﻫﺎﻣﻪ ﺣﺗﻼﻗﻲ ﺣﺎﺟﻪ اﺳﻣﻬﺎ ‪ Summary‬ﻟﻛل داﻟﻪ ﻻزم ﺗﻛﺗﺑﻪ‪ ،‬ﻋﺷﺎن ﻣﺎ ﺗﻧﺳﺎش‬

‫و دﻟوﻗت زي ﻣﺎ اﺗﻌودﻧﺎ ﺣﻧﺷوف اازي ﺣﻧﻌﻣل اﻟﻛﻼم دﻩ ﺑﺎﻟﺻور‬

‫ﻛﻣﺎ ﻓﻲ ﺷﻛل )‪(17‬‬ ‫ﺧطوات اﺿﺎﻓﺔ اﻟﺪاﻟﻪ اﻻوﻟﻲ‬


‫‪ -1‬اﺧﺗﺎر ﻛﻼس ‪Customer‬‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪25‬‬

‫‪ -2‬اﺿﻐط >‪<add method‬‬

‫‪ -3‬زي ﺷﻛل )‪ (18‬ﺣﻧﺳﻣﻲ اﻟداﻟﻪ ‪AllOrders‬‬


‫‪ -4‬ﻧوع اﻟداﻟﻪ ‪DataTable‬‬

‫‪ -5‬ﻣﺣدد اﻟوﺻول ‪public‬‬

‫‪ -6‬اﻟﻣﻠﺧص )داﻟﻪ ﺗﺄﺧذ ﻣﻧك رﻗم اﻟﻌﻣﯾل و ﺗﻌﯾد ﻛل اواﻣر اﻟﺷراء ﻟﻬذا اﻟﻌﻣﯾل(‬

‫طب ﻓﻲ اﻟوﺻف اﺣﻧﺎ ﺑﻧﻘول اﻧﻬﺎ ﺑﺗﺎﺧد ال ‪ ID‬ﺑﺗﺎع اﻟﻌﻣﯾل ‪ ،‬ﺑس ﺣﺗﺎﺧدﻩ اازي ؟‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪26‬‬

‫ﺳﻬﻠﻪ اﻧظر ﺷﻛل )‪(19‬‬

‫‪-1‬ﺣﻧدوس ﻋﻠﻲ اﻟﺳﻬم اﻟﺻﻐﯾر اﻟﻠﻲ ﺟﻧب اﺳم اﻟداﻟﻪ ﺣﯾﻔﺗﺢ‬

‫‪ -2‬ﻗوﺳﯾن ﻗداﻣﻬم ﻛﻠﻣﻪ >‪<add parameter‬‬


‫‪ -3‬ﺣﻧﺿﯾف رﻗم اﻟﻌﻣﯾل زي اﻟﺷﻛل‬

‫و ﺑدﻩ ﺷرﺣﻧﺎ ﺑﺎﻟﺗﻔﺻﯾل اﻟداﻟﻪ اﻻوﻟﻲ و اﻻﺧﯾرﻩ )اﻻﺧﯾرﻩ ﻣن ﻧﺎﺣﯾﻪ اﻟﺗﻔﺻﯾل‪ ،‬ﻻن اﻟﺑﺎﻗﻲ ﺣﯾﺳﯾر ﻋﻠﻲ ﻧﻔس اﻟﻣﻧوال(‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪27‬‬

‫اﻟﺪاﻟﻪ اﻟﺜﺎﻧﻴﻪ‪:‬‬
‫‪ -‬داﻟﺔ ﺗرﺟﻊ ﻗﯾﻣﺔ اﻟﻣﺷﺗرﯾﺎت ﻟﻌﻣﯾل ﻣﻌﯾن‬

‫ﻣدﺧﻼت اﻟداﻟﻪ دي ﺣﺗﻛون اﯾﻪ ؟؟ اﻛﯾد ال ‪ ID‬ﺑﺗﺎع اﻟﻌﻣﯾل ﻓﻘط‬


‫اﻟﻣﺧرﺟﺎت ﻋﺑﺎرﻩ ﻋن اﯾﻪ ؟؟ اﻛﯾد ‪Double‬‬

‫ﻣﻠﺣوظﻪ ﻫﺎﻣﻪ ﺣﺗﻼﻗﻲ ﺣﺎﺟﻪ اﺳﻣﻬﺎ ‪ Summary‬ﻟﻛل داﻟﻪ ﻻزم ﺗﻛﺗﺑﻪ‪ ،‬ﻋﺷﺎن ﻣﺎ ﺗﻧﺳﺎش‬

‫ﻛﻣﺎ ﻓﻲ ﺷﻛل )‪(20‬‬ ‫ﺧطوات اﺿﺎﻓﺔ اﻟﺪاﻟﻪ اﻟﺜﺎﻧﻴﻪ‬


‫‪ -1‬اﺳﻣﻬﺎ ‪OrdersValue‬‬

‫‪ -2‬ﻧوﻋﻬﺎ ‪Double‬‬

‫‪ -3‬ﻣﺣدد اﻟوﺻول ‪Public‬‬

‫‪ -4‬اﻟوﺻف " داﻟﺔ ﺗرﺟﻊ ﻗﯾﻣﺔ اﻟﻣﺷﺗرﯾﺎت ﻟﻌﻣﯾل ﻣﻌﯾن"‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪28‬‬

‫‪ -II‬ﺑرﻣﺟﺔ دوال اﻟﻛﻼس ‪Oreder‬‬

‫اﻟﺪاﻟﻪ اﻻوﻟﻲ‪:‬‬
‫‪ -1‬اﻻﺳم ‪AllDetails‬‬

‫‪ -2‬اﻟﻧوع ‪DataTable‬‬

‫‪ -3‬ﻣﺣدد اﻟوﺻول ‪Public‬‬

‫‪ -4‬اﻟوﺻف )ﺗرﺟﻊ ﺟدول ﺑﻪ ﺗﻔﺎﺻﯾل اﻣر ﺷراء ﻣﻌﯾن(‬

‫‪-5‬اﻟﺑﺎارﻣﯾﺗر )اﻟﻣدﺧﻼت( ‪order_id‬‬


‫اﻧظر ﺷﻛل )‪(21‬‬

‫اﻟﺪاﻟﻪ اﻟﺜﺎﻧﻴﻪ‪:‬‬
‫‪ -1‬اﻻﺳم ‪AverageOfOrders‬‬

‫‪ -2‬اﻟﻧوع ‪Double‬‬

‫‪ -3‬ﻣﺣدد اﻟوﺻول ‪Public‬‬

‫‪ -4‬اﻟوﺻف )ﺗرﺟﻊ ﻣﺗوﺳط ﺳﻌر اﻟﺑﯾﻊ ﻓﻲ اواﻣر اﻟﺷراء(‬

‫‪-5‬اﻟﺑﺎارﻣﯾﺗر )اﻟﻣدﺧﻼت( ﻻ ﺷﻲء‬


‫اﻧظر ﺷﻛل )‪(21‬‬

‫اﻟﺪاﻟﻪ اﻟﺜﺎﻟﺜﻪ‪:‬‬
‫‪ -1‬اﻻﺳم ‪MaxOrder‬‬

‫‪ -2‬اﻟﻧوع ‪ ) DataRow‬ﻻﺣظ ﻧوع ﻣﺎ ﺗرﺟﻌﻪ اﻟداﻟﻪ ﺻف ﺑﯾﺎﻧﺎت (‬

‫‪ -3‬ﻣﺣدد اﻟوﺻول ‪Public‬‬

‫‪ -4‬اﻟوﺻف ) داﻟﺔ ﺗرﺟﻊ ﺻف ﺑﯾﺎﻧﺎت ﻋن اﻋﻠﻲ اﻣر ﺷراء ﺳﻌار (‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪29‬‬

‫‪-5‬اﻟﺑﺎارﻣﯾﺗر )اﻟﻣدﺧﻼت( ﻻ ﺷﻲء‬


‫اﻧظر ﺷﻛل )‪(21‬‬

‫اﻟﺪاﻟﻪ اﻟﺮاﺑﻌﻪ‪:‬‬
‫‪ -1‬اﻻﺳم ‪OrdersBetween‬‬

‫‪ -2‬اﻟﻧوع ‪DataTable‬‬

‫‪ -3‬ﻣﺣدد اﻟوﺻول ‪Public‬‬

‫‪ -4‬اﻟوﺻف ) ﺗرﺟﻊ ﺟدول ﺑﻛل اواﻣر اﻟﺷراء ﺑﯾن ﺗﺎرﯾﺧﯾن ﻣﺣددﯾن (‬

‫‪-5‬اﻟﺑﺎارﻣﯾﺗر )اﻟﻣدﺧﻼت(‬

‫‪start_date‬‬

‫‪end_date‬‬

‫اﻧظر ﺷﻛل )‪ (21‬و ﯾوﺿﺢ دوال ﻛﻼس ‪Order‬‬


‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪30‬‬

‫‪ -III‬ﺑرﻣﺟﺔ دوال اﻟﻛﻼس ‪Product‬‬

‫اﻟﺪاﻟﻪ اﻻوﻟﻲ و اﻟﻮﺣﻴﺪه ﻓﻲ ﻫﺬا اﻟﻜﻼس‪:‬‬


‫‪ -1‬اﻻﺳم ‪NumberOfOrders‬‬

‫‪ -2‬اﻟﻧوع ‪Integer‬‬

‫‪ -3‬ﻣﺣدد اﻟوﺻول ‪Public‬‬

‫‪ -4‬اﻟوﺻف ) ﺗﻌﯾد ﻋدد اواﻣر اﻟﺷراء ﻟﻣﻧﺗﺞ ﻣﻌﯾن (‬

‫‪-5‬اﻟﺑﺎارﻣﯾﺗر )اﻟﻣدﺧﻼت( ‪pro_id‬‬


‫اﻧظر ﺷﻛل )‪(22‬‬

‫ﻓﻲ اﻟﺪرس اﻟﻘﺎدم ﻣﻊ ﻗﻤﺔ اﻟﻤﺘﻌﻪ ﻣﻦ اﻟﺒﺮﻣﺠﻪ اﻟﻤﻮﺟﻬﻪ ﻧﺤﻮ اﻟﻜﺎﺋﻦ‬


‫ﺑﺮﻣﺠﻪ ﻛﻼس ‪WorkTable‬‬
‫ﻟﻠﺘﻌﺎﻣﻞ ﻣﻊ ﻗﺎﻋﺪة اﻟﺒﻴﺎﻧﺎت‬
‫ا ﻟ ﺒ ﺮ ﻣ ﺠ ﻪ ا ﻟ ﻤ ﻮ ﺟ ﻬ ﻪ ﻧ ﺤ ﻮ ا ﻟ ﻜ ﺎ ﺋ ﻦ| ‪31‬‬

You might also like