Você está na página 1de 79

‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.

0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﻌﻠﻢّ‬
‫‪POWER BUILDER 9.0‬‬

‫ﺇﻋﺪﺍﺩ ﻭﺗﻨﻔﻴﺬ ﻭﺇﺧﺮﺍﺝ‬


‫ﻣﺤﻤﺪ ﻗﺎﺳﻢ ﺍﻟﻤﺼﺮﻱ‬
‫‪PowerBuilder77@yahoo.com‬‬
‫‪U‬‬ ‫‪U‬‬

‫‪1‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻔﺼﻞ ﺍﻷﻭﻝ‬
‫‪............................................‬‬ ‫ﺍﻟﻤﺆﻟﻒ‬
‫‪............................................‬‬ ‫ﺇﻫﺪﺍء‬
‫‪............................................‬‬ ‫ﻟﻤﺤﺔ ﺗﺎﺭﻳﺨﻴﺔ‬
‫‪............................................‬‬ ‫ﻣﻘﺪﻣﻪ‬
‫ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻧﻲ‪ :‬ﻭﺍﺟﻪ ﺗﻄﺒﻴﻖ ﺍﻟـ ‪PB 9.0‬‬
‫‪............................................‬‬ ‫ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ‪Main Interface‬‬
‫‪............................................‬‬ ‫ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‬
‫‪............................................‬‬ ‫ﺷﺠﺮﺓ ﺍﻟﻜﺎﺋﻨﺎﺕ‬
‫‪............................................‬‬ ‫ﺫﺍﻛﺮﺓ ﺍﻟﻨﺴﺦ ﻭﺍﻟﻘﺺ‬
‫‪............................................‬‬ ‫ﺷﺎﺷﺔ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺎﻋﺪﺓ‬
‫ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻟﺚ‪ :‬ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ‪Objects‬‬
‫‪............................................‬‬ ‫ﻓﻀﺎء ﺍﻟﻌﻤﻞ ‪Workspace‬‬
‫‪............................................‬‬ ‫ﺍﻟﻬﺪﻑ ‪Target‬‬
‫‪............................................‬‬ ‫ﺗﻄﺒﻴﻖ ‪Application‬‬
‫‪............................................‬‬ ‫ﻗﻮﺍﻟﺐ ﺗﻄﺒﻴﻖ ‪Template Application‬‬
‫‪............................................‬‬ ‫ﻗﻮﺍﻟﺐ ﻣﻮﺟﻮﺩﺓ ‪Existing Application‬‬
‫‪............................................‬‬ ‫ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺨﺎﺻﺔ ‪PB Object‬‬
‫‪............................................‬‬ ‫ﺷﺎﺷﺔ ‪Window‬‬
‫‪............................................‬‬ ‫ﻗﺎﺋﻤﺔ ‪Menu‬‬
‫‪............................................‬‬ ‫ﻫﻴﻜﻞ ‪Structure‬‬
‫‪............................................‬‬ ‫ﺩﺍﻟﺔ ‪Function‬‬
‫‪............................................‬‬ ‫ﻛﺎﺋﻨﺎﺕ ﻣﺨﺼﺼﺔ ‪Custom Class‬‬
‫‪............................................‬‬ ‫ﻧﻮﺍﻓﺬ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪Data Window‬‬
‫‪............................................‬‬ ‫ﻧﻤﻮﺫﺝ ﺣﺮ ‪Free Form‬‬
‫‪............................................‬‬ ‫ﺷﺒﻜﺔ ‪Grid‬‬
‫‪............................................‬‬ ‫ﺟﺪﻭﻟﻲ ‪Tabular‬‬
‫‪............................................‬‬ ‫ﻣﻠﺼﻘﺎﺕ ‪Label‬‬
‫‪............................................‬‬ ‫ﻣﺠﻤﻮﻋﺔ ‪Group‬‬
‫‪............................................‬‬ ‫ﺗﻘﺎﻁﻊ ‪Crosstab‬‬
‫‪............................................‬‬ ‫ﺗﺠﻤﻴﻊ ‪Composite‬‬
‫‪............................................‬‬ ‫ﺃﻋﻤﺪ ﺟﺮﻳﺪﺓ ‪N-UP‬‬
‫‪............................................‬‬ ‫ﺭﺳﻮﻣﺎﺕ ﺑﻴﺎﻧﻴﺔ ‪Graph‬‬
‫‪............................................‬‬ ‫ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪Database‬‬
‫‪............................................‬‬ ‫ﺭﺳﺎﻡ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪Database Painter‬‬
‫‪............................................‬‬ ‫ﺍﺳﺘﻌﻼﻡ ‪Query‬‬
‫‪............................................‬‬ ‫ﺃﻧﺎﺑﻴﺐ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪Data Pipeline‬‬
‫‪............................................‬‬ ‫ﻣﺸﺮﻭﻉ ‪Project‬‬
‫‪............................................‬‬ ‫ﺗﻄﺒﻴﻖ ﺳﺮﻳﻊ ‪Application Wizard‬‬
‫‪............................................‬‬ ‫ﺗﻄﺒﻴﻖ ‪Application‬‬
‫‪............................................‬‬ ‫ﺃﺩﻭﺍﺕ ‪Tool‬‬
‫‪............................................‬‬ ‫ﻣﺴﺘﻜﺸﻒ ﺍﻟﻤﻜﺘﺒﺎﺕ ‪Library Painter‬‬
‫‪............................................‬‬ ‫ﻣﺤﺮﺭ ﺍﻟﻤﻠﻔﺎﺕ ‪File Editor‬‬
‫‪............................................‬‬ ‫ﺗﺮﻛﻴﺐ ﻧﺎﻓﺬﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪Data window Syntax‬‬

‫‪2‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻔﺼﻞ ﺍﻟﺮﺍﺑﻊ‪ :‬ﻛﺘﺎﺑﺔ ﺍﻟﻜﻮﺩ‬


‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ﺍﻟﻤﺘﻐﻴﺮﺍﺕ ﻭﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺃﻧﻮﺍﻋﻬﺎ‬
‫‪............................................‬‬ ‫ﺍﻷﻭﺍﻣﺮ ﺍﻟﻤﺴﺘﺨﺪﻣﺔ ‪Statements‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ﺍﻟﺪﻭﺍﻝ ﺍﻟﺪﺍﺧﻠﻴﺔ ﻭﺍﻟﺨﺎﺭﺟﻴﺔ ‪Function‬‬
‫ﺍﻟﻔﺼﻞ ﺍﳋﺎﻣﺲ‬
‫‪............................................‬‬ ‫ﻛﻴﻒ ﺗﺒﻨﻲ ﺑﺮﻧﺎﻣﺞ ‪PB 9.0‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ‪Workspace‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ‪Target‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ‪Application‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ‪Library‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ﺍﺗﺼﺎﻝ ﻣﻊ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ‬
‫‪............................................‬‬ ‫ﻣﺎ ﻫﻮ ﺍﻟﻤﻘﺼﻮﺩ ﺑﺎﻟـ ‪Transaction Object‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ﺷﺎﺷﺔ ‪MDI‬‬
‫‪............................................‬‬ ‫ﺇﻧﺸﺎء ﻗﺎﺋﻤﺔ ‪Menu‬‬
‫ﺍﻟﻔﺼﻞ ﺍﻟﺴﺎﺩﺱ‬
‫‪............................................‬‬

‫‪............................................‬‬ ‫ﻣﺸﺎﺭﻳﻊ ﻋﻤﻠﻴﺔ ﻭﺧﺒﺮﺍﺕ ﺷﺨﺼﻴﺔ‬

‫‪3‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻔﺼﻞ ﺍﻷﻭﻝ )ﲤﻬﻴﺪ(‬


‫)‪(1-1‬‬ ‫ﺍﻟﻤﺆﻟﻒ‬

‫‪( 1- 2‬‬ ‫)‬ ‫ﺇﻫﺪﺍء‬

‫ﻟﻤﺤﺔ ﺗﺎﺭﻳﺨﻴﺔ )‪(1-3‬‬

‫)‪(1-4‬‬ ‫ﻣﻘﺪﻣﻪ‬

‫‪4‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪ (1- 1‬ﺍﻟﻤﺆﻟﻒ‪:‬‬


‫ﻣﺤﻤﺪ ﻗﺎﺳﻢ ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬
‫ﻭﻟﺪﺕ ﺑﺘﺎﺭﻳﺦ ‪1977‬ﻡ ﻓﻲ ﺍﻟﺴﻌﻮﺩﻳﺔ‬
‫ﺑﻜﺎﻟﻮﺭﻳﻮﺱ ﻋﻠﻢ ﺍﻟﺤﺎﺳﺐ ﺍﻵﻟﻲ‬
‫ﻣﺒﺮﻣﺞ ﻭﻣﺤﻠﻞ ﻧﻈﻢ ﻭﻣﺪﻳﺮ ﻣﺸﺎﺭﻳﻊ‬
‫‪PMP no : 1350223‬‬
‫ﻋﻤﻠﺖ ﻓﻲ ﻣﺠﺎﻝ ﺍﻟﺒﺮﻣﺠﺔ ﻭﺗﺤﻠﻴﻞ ﺍﻟﻨﻈﻢ ﻭﺇﺩﺍﺭﺓ ﺍﻟﻤﺸﺎﺭﻳﻊ ﻣﻨﺬ ﻋﺎﻡ ‪ 1999‬ﻡ‬
‫ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ‪ VB 6.0 :‬ﻭ ‪ Developer 2000‬ﻭ‪Power Builder 9.0, 11.5‬‬
‫ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪Ms Access, Sybase, MS SQL Server, Oracle 8i,9i,10g :‬‬

‫‪5‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪(1-2‬ﺇﻫﺪﺍء‪:‬‬
‫ﺃﻫﺪﻱ ﻫﺬﺍ ﺍﻟﻌﻤﻞ ﻷﺟﺪﺍﺩﻧﺎ ﺍﻟﺴﺒ‪‬ﺎﻗﲔ ﺇﱃ ﺍﻟﻌﻠﻢ ﻭﺍﳋﲑ‪ ،‬ﺍﻟﺬﻳﻦ ﻣﺎ ﻓﺘﺄﺕ ﻗﻠﻮﲠﻢ ﲣﻔﻖ ﻧﺸﻮﺓ ﺍﻻﻧﺘﺼﺎﺭ‬

‫ﰲ ﺷﺘﻰ ﻣﻴﺎﺩﻳﻦ ﺍﳊﻴﺎﺓ ﻳ‪‬ﺴﻄّﺮﻭﻥ ﲝﺮﻭﻑ ﻣﻦ ﻧﻮﺭ ﻣﻌﻨﻰ ﺍﻟﺘﻤﻴﺰ ﻭﺍﻟﺮﻓﻌﺔ ﻭﺍﻟﺘﻘﺪﻡ‪ ،‬ﻭﺍﻫﺪﻱ ﻛﻞ ﻗﻄﺮﺓ ﻋﺮﻕ‬

‫ﺗﺰﺍﺣــﻤﺖ ﻋﻠﻰ ﺃﺟﺴﺎﺩﻫﻢ ﺍﻟﻨﻘﻴﺔ ﺗﺘﺴﺎﺭﻉ ﻟﺘﻄﻔﺊ ﳍﻴﺐ ﺍﻻﻛﺘﺸﺎﻑ ﻭﺍﻻﺧﱰﺍﻉ ﻭﺍﻟﺒﺤﺚ‪ ،‬ﻟﻘﺪ ﺑ‪‬ﻘ‪‬ﻴﺖ ﺃﻋﻤﺎﳍﻢ‬

‫ﻭﻋﻠﻤﻬﻢ ﻧﱪﺍﺳﺎً ﻣﻀﻴﺌﺎً ﻳﻨﺘﺸﻲ ﺷﻌﺎﻋﻪ ﻳﺒﺪﺩ ﺿﺒﺎﺏ ﺍﳉﻬﻞ ﻭﺍﻟﺘﺄﺧﺮ ﻋﻦ ﺭﻛﺐ ﺍﳊﺎﺿﺮ ﻭﺍﳌﺴﺘﻘﺒﻞ ﺍﳌﻨﺸﻮﺩ‬

‫ﻭﺃﺟﺮﻫﻢ ﻣﺴﺘﻤﺮ ﻏﲑ ﻣﻘﻄﻮﻉ‪ ،‬ﻭﺃﲤﻨﻰ ﻣﻦ ﺍ‪ ‬ﺍﻟﻌﻠﻲ ﺍﻟﻘﺪﻳﺮ ﺃﻥ ﻳﻠﻬﻤﲏ ﺍﻹﳝﺎﻥ ﻭﺍﻟﺼﱪ ﻭﺃﻥ ﺃﻗﺪﻡ ﻣﺎ ﰲ‬

‫ﺟﻌﺒﱵ ﻣﻦ ﻋﻠﻢ ﻣﺘﻮﺍﺿﻊ ﺃﻧﺸﺮﻩ ﰲ ﺷﺘﻰ ﺍﻟﻮﺳﺎﺋﻞ ﻻ ﺃﺑﺘﻐﻲ ﻣﻨﻪ ﺇﻻ ﻭﺟﻪ ﺍ‪ ‬ﺗﻌﺎﱃ ﻭﺃﺟﺮ‪ ‬ﻻ ﻳﻨﻘﻄﻊ ﺑﺈﺫﻥ ﺍ‪‬‬

‫ﻭﺧﺎﻟﺺ ﺩﻋﺎﺋﻜﻢ ﱄ‪.‬‬


‫ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬

‫‪6‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪ (1-3‬ﻟﻤﺤﺔ ﺗﺎﺭﻳﺨﻴﺔ‪:‬‬


‫ﻟﻐﺔ ﺍﻟﺒﺮﻣﺠﺔ ‪ POWER BUILDER‬ﺃﻧﺘﺠﺘﻬﺎ ﺷﺮﻛﺔ ‪ POWER SOFT‬ﻛﻠﻐﺔ ﺭﺍﺋﺪﺓ ﻣﺘﺨﺼﺼﺔ ﺑﺒﻨﺎء ﺑﺮﺍﻣﺞ‬
‫ﻗﻮﺍﻋﺪ ﺑﻴﺎﻧﺎﺕ‪ ،‬ﻭﻟﻘﺪ ﺍﺷﺘﺮﺕ ﺷﺮﻛﺔ ‪ Sybase‬ﺷﺮﻛﺔ ‪ Power Soft‬ﻣﻊ ﻟﻐﺔ ﺍﻟﺒﺮﻣﺠﺔ ‪ Power Builder‬ﻭﺃﺻﺒﺤﺖ‬
‫ﺟﺰء ﻻ ﻳﺘﺠﺰﺃ ﻣﻨﻬﺎ ﻭﺗﻢ ﺗﻄﻮﻳﺮﻫﺎ ﻭﺍﻟﺮﻗﻲ ﺑﻬﺎ ﺣﺘﻰ ﺃﺻﺒﺤﺖ ﻧﺎﺿﺠﺔ ﺍﻹﻣﻜﺎﻧﻴﺎﺕ ﻭﺍﻷﺩﻭﺍﺕ‪.‬‬
‫ﻭﻣﻦ ﺑﻌﺾ ﻣﻤﻴﺰﺍﺗﻬﺎ‪:‬‬
‫‪ ‬ﻭﺍﺟﻬﺔ ﺗﻄﺒﻴﻖ ﻓﺨﻤﺔ ﻭﻭﺍﺿﺤﺔ ﻭﻏﻴﺮ ﻣﻤﻠﺔ‪.‬‬
‫‪ ‬ﺳﻬﻮﻟﺔ ﻭﺳﺮﻋﺔ ﻭﻓﻌﺎﻟﻴﺔ ﻣﻨﻘﻄﻌﺔ ﺍﻟﻨﻈﻴﺮ ﻓﻲ ﺑﻨﺎء ﺑﺮﺍﻣﺞ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻟﻤﺎ ﺗﺤﻮﻳﻪ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻣﻦ ﺃﺩﻭﺍﺕ ﻓﻌﺎﻟﺔ‬
‫ﺟﺪﺍً ﻭﺧﺎﻟﻴﺔ ﻣﻦ ﺍﻟﺘﻌﻘﻴﺪ‪.‬‬
‫‪ ‬ﺳﻬﻮﻟﺔ ﻛﺘﺎﺑﺔ ﺍﻟﻨﺺ ﺍﻟﻤﺼﺪﺭﻱ )‪ (Code‬ﻭﻫﻲ ﺷﺒﻴﻪ ﺑﻠﻐﺔ ‪ C++‬ﺃﻭ ‪ ،JAVA‬ﻭﺗﻌﺘﺒﺮ ﺍﻷﻭﺍﻣﺮ ﻣﺄﻟﻮﻓﺔ ﻟﻠﻤﺒﺮﻣﺠﻴﻦ‬
‫‪ ‬ﺳﻬﻮﻟﺔ ﺍﻟﺮﺑﻂ ﻣﻊ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺘﻌﺪﺩﺓ ﻣﺜﻞ ) ‪Oracle, MS SQL SERVER, Sybase, MS Access‬‬
‫‪.(ODBC‬‬

‫ﻭﻻ ﺑﺪ ﻣﻦ ﺍﻟﺘﻨﺒﻴﻪ ﻣﻦ ﺃﻥ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻏﻴﺮ ﻣﻨﺘﺸﺮﺓ ﺑﺸﻜﻞ ﻛﺒﻴﺮ ﻓﻲ ﺍﻟﺸﺮﻕ ﺍﻷﻭﺳﻂ ﻭﺫﻟﻚ ﻟﻌﺪﻡ ﻭﺟﻮﺩ ﺍﻟﺪﻋﻢ ﺍﻟﻔﻨﻲ ﻣﻦ‬
‫ﺍﻟﺸﺮﻛﺔ ﺍﻷﻡ ‪ Sybase‬ﺍﻟﻘﻮﻱ ﻓﻲ ﺍﻟﺸﺮﻕ ﺍﻷﻭﺳﻂ‪ ،‬ﻭﻋﺪﺩ ﺍﻟﻤﺒﺮﻣﺠﻴﻦ ﻣﺤﺘﺮﻓﻲ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻗﻠﻴﻞ ﻧﺴﺒﻴﺎ ً ﻓﻲ ﻫﺬﻩ ﺍﻟﻤﻨﻄﻘﺔ‪،‬‬
‫ﻭﻟﻜﻦ ﻣﺎ ﺃﻥ ﺗﺒﺤﺮ ﻓﻲ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻭﺗﺮﻯ ﺇﻣﻜﺎﻧﻴﺎﺗﻬﺎ ﺍﻟﻜﺒﻴﺮﺓ ﺳﺘﻨﺸﺄ ﺑﻴﻨﻚ ﻭﺑﻴﻨﻬﺎ ﺭﻭﺍﺑﻂ ﺗﺸﺠﻌﻚ ﻋﻠﻰ ﺗﻌﻠﻤﻬﺎ ﻭﺧﺼﻮﺻﺎ ً ﺇﺫﺍ‬
‫ﻛﻨﺖ ﻣﺤﺘﺮﻑ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﺃﺧﺮﻯ ﺳﺘﺸﺎﻫﺪ ﺍﻟﻔﺮﻕ ﻭﺳﺘﺤﻜﻢ ﺑﻨﻔﺴﻚ‪.‬‬

‫‪7‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪ (1-4‬ﻣﻘﺪﻣﻪ‪:‬‬
‫ﺳﺄﻗﻮﻡ ﺑﺈﺫﻥ ﷲ ﺑﻌﺮﺽ ﻫﺬﻩ ﺍﻟﻤﺎﺩﺓ ﻣﻦ ﻣﻨﻈﻮﺭ ﺗﻄﺒﻴﻖ ﻭﺍﻗﻌﻲ ﻭﻟﻴﺲ ﺳﺮﺩ ﺃﻛﺎﺩﻳﻤﻲ ﺑﺤﺖ‪ ،‬ﻭﺳﺄﻗﻮﻡ ﺑﺎﻟﺘﺮﻛﻴﺰ ﻋﻠﻰ‬
‫ﺇﻣﻜﺎﻧﻴﺎﺕ ‪ (Power Builder 9.0) PB 9.0‬ﺍﻟﺘﻲ ﺗﻬﻤﻚ ﻛﻤﺒﺮﻣﺞ ﻣﺤﺘﺮﻑ ﺃﻭ ﻣﺒﺘﺪﺉ‪ ،‬ﻭﻫﻨﺎﻙ ﻣﺘﻄﻠﺒﺎﺕ ﻳﻔﺘﺮﺽ ﺃﻥ‬
‫ﺗﻜﻮﻥ ﻣﻮﺟﻮﺩﺓ ﻛﻠﻬﺎ ﺃﻭ ﺑﻌﻀﻬﺎ ﻟﺴﺮﻋﺔ ﺗﻌﻠﻤﻚ ‪ PB 9.0‬ﻭﻫﻲ‪:‬‬
‫‪ .1‬ﺍﻣﺘﻼﻙ ﺧﻠﻔﻴﺔ ﺟﻴﺪﺓ ﻋﻦ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻤﺮﺋﻴﺔ‪ ،‬ﻛﺨﺒﺮﺓ ﺳﺎﺑﻘﺔ ﺑﺎﻟﻌﻤﻞ ﻋﻠﻰ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﺮﺋﻴﺔ )‪.(Visual‬‬
‫‪ .2‬ﺍﻹﻁﻼﻉ ﻋﻠﻰ ﺑﺮﺍﻣﺞ ﻣﺮﺗﺒﻄﺔ ﺑﻘﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻟﺘﻤﺘﻠﻚ ﺍﻟﻤﻨﻄﻖ ﻓﻲ ﺑﻨﺎء ﺍﻟﺒﺮﺍﻣﺞ‪.‬‬
‫‪ .3‬ﺍﻣﺘﻼﻙ ﺧﻠﻔﻴﺔ ﺟﻴﺪﺓ ﻋﻦ ﺗﺤﻠﻴﻞ ﺍﻷﻧﻈﻤﺔ‪ ،‬ﻭﻫﺬﻩ ﺿﺮﻭﺭﻳﺔ ﻟﻜﻮﻧﻬﺎ ﺍﻟﻌﻨﺼﺮ ﺍﻟﺮﺋﻴﺴﻲ ﻓﻲ ﻋﻤﻠﻚ ﻛﻤﺒﺮﻣﺞ ﺃﻧﻈﻤﺔ ﻗﻮﺍﻋﺪ‬
‫ﺑﻴﺎﻧﺎﺕ‪ ،‬ﻭﻳﺠﺐ ﺃﻥ ﺗﻌﺮﻑ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫‪Primary key ‬‬ ‫‪ ‬ﺑﻨﺎء ﺍﻟﺠﺪﺍﻭﻝ‬
‫‪Index ‬‬ ‫‪Foreign key ‬‬
‫‪View ‬‬ ‫‪SQL Statement ‬‬
‫‪ .4‬ﺍﻣﺘﻼﻙ ﺍﻟﺤﺲ ﺍﻟﺒﺮﻣﺠﻲ ﻭﺍﻟﻤﻨﻄﻘﻴﺔ ﻓﻲ ﺍﻟﺘﻔﻜﻴﺮ ﻓﻲ ﻛﻴﻔﻴﺔ ﺑﻨﺎء ﺍﻟﺒﺮﺍﻣﺞ ﻭﺣ ّﻞ ﺍﻟﻤﺸﺎﻛﻞ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺘﻲ ﺳﺘﻮﺍﺟﻬﻚ ﺑﺸﻜﻞ‬
‫ﻣﺜﺎﻟﻲ ﻭﺻﺤﻴﺢ‪.‬‬
‫‪ .5‬ﺍﻟﺘﻮﻛﻞ ﻋﻠﻰ ﷲ ﺗﻌﺎﻟﻰ ﻭﺍﻟﺜﻘﺔ ﺑﺎﻟﻨﻔﺲ ﻭﺍﻟﻤﺘﺎﺑﻌﺔ ﺍﻟﻤﺴﺘﻤﺮﺓ ﻟﻤﺴﻴﺮﺓ ﺗﻌﻠﻤﻚ‪.‬‬

‫ﺑﻌﺪ ﺩﺭﺍﺳﺔ ﻫﺬﻩ ﺍﻟﻤﺎﺩﺓ ﻭﺗﻄﺒﻴﻘﻬﺎ ﻋﻤﻠﻴﺎ ً ﻳﺠﺐ ﺃﻥ ﺗﻜﺘﺴﺐ ﺍﻟﻤﻬﺎﺭﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫ﺳﺘﺼﺒﺢ ﻣﺒﺮﻣﺞ ﻣﺤﺘﺮﻑ ﻟﻠﻐﺔ ﺍﻟﺒﺮﻣﺠﺔ ‪.PB 9.0‬‬ ‫‪‬‬
‫ﺍﻟﻤﻌﺮﻓﺔ ﺍﻟﺘﺎﻣﺔ ﺑﺠﻤﻴﻊ ﺃﺩﻭﺍﺕ ﻭﺗﻘﻨﻴﺎﺕ ﺍﻟـ ‪ PB 9.0‬ﻭﻛﻴﻔﻴﺔ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻭﺍﻟﻬﺪﻑ ﻣﻨﻬﺎ‪.‬‬ ‫‪‬‬
‫ﺍﻟﻤﻌﺮﻓﺔ ﺍﻟﺼﺤﻴﺤﺔ ﺑﻜﻴﻔﻴﺔ ﺍﻟﺒﺮﻣﺠﺔ ﻋﻠﻰ ﺍﻷﺻﻮﻝ ﺍﻟﻘﻴﺎﺳﻴﺔ ﺣﺴﺐ ﺗﻮﺻﻴﺎﺕ ﺷﺮﻛﺔ ‪.Sybase‬‬ ‫‪‬‬
‫ﺍﻹﻟﻤﺎﻡ ﺍﻟﺠﻴﺪ ﺑﺎﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻌﺮﺑﻴﺔ ﻭﺧﺎﺻﺔ ﺩﺍﺧﻞ ﺍﻟﻤﻤﻠﻜﺔ ﺍﻟﻌﺮﺑﻴﺔ ﺍﻟﺴﻌﻮﺩﻳﺔ ﻟﺨﺼﻮﺻﻴﺘﻬﺎ‪.‬‬ ‫‪‬‬
‫ﺍﻣﺘﻼﻙ ﻣﻌﻠﻮﻣﺎﺕ ﻋﺎﻣﺔ ﻋﻦ ﺑﻌﺾ ﺍﻷﻧﻈﻤﺔ ﺍﻟﺘﺠﺎﺭﻳﺔ ﺍﻟﺘﻲ ﺳﺘﺴﻬﻢ ﻓﻲ ﺍﻟﺮﻗﻲ ﺑﻚ ﻛﻤﺒﺮﻣﺞ ﺑﺸﻜﻞ ﻋﺎﻡ‪.‬‬ ‫‪‬‬

‫‪8‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻧﻲ‬
‫ﻭﺍﺟﻬﺔ ﺗﻄﺒﻴﻖ ‪PB 9.0‬‬
‫)‪(2-1‬‬ ‫ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‬
‫)‪(2-2‬‬ ‫ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‬
‫)‪(2-3‬‬ ‫ﺷﺠﺮﺓ ﺍﻟﻜﺎﺋﻨﺎﺕ‬
‫)‪(2-4‬‬ ‫ﺫﺍﻛﺮﺓ ﺍﻟﻨﺴﺦ ﻭﺍﻟﻘﺺ‬
‫ﺷﺎﺷﺔ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺎﻋﺪﺓ )‪(2-5‬‬

‫‪9‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪ (2-1‬ﺍﻟﻮﺍﺟﻬﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ‪:‬‬


‫ﺗﺘﻤﻴﺰ ﻭﺍﺟﻬﺔ ﺗﻄﺒﻴﻖ ‪ PB 9.0‬ﺑﺴﻬﻮﻟﺔ ﺍﻟﺨﻴﺎﺭﺍﺕ ﻭﻭﺿﻮﺣﻬﺎ ﻭﻗﺮﺑﻬﺎ ﻣﻦ ﺍﻟﻘﻠﺐ‪ ،‬ﺑﺤﻴﺚ ﺗﻌﻄﻴﻚ ﺟﻤﻴﻊ‬
‫ﺍﻹﻣﻜﺎﻧﻴﺎﺕ ﺑﺸﻜﻞ ﻣﺒﺴﻂ ﻭﻣﺎ ﻋﻠﻴﻚ ﺳﻮﻯ ﻣﻌﺮﻓﺔ ﻣﺎ ﻫﻲ ﺍﻟﺨﻴﺎﺭﺍﺕ ﻭﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﺘﺎﺣﺔ ﻭﻁﺮﻳﻘﺔ ﻋﻤﻠﻬﺎ‬
‫ﻭﺍﺳﺘﺨﺪﺍﻣﻬﺎ‪ ،‬ﻭﺃﻭﺩ ﺃﻥ ﺃﺭﻛﺰ ﻋﻠﻰ ﺃﻥ ﺍﻹﺻﺪﺍﺭ ‪ 8.0‬ﻭﻣﺎ ﻓﻮﻕ ﻟﻪ ﻧﻔﺲ ﻭﺍﺟﻬﺔ ﺍﻟﺘﻄﺒﻴﻖ ﺗﻘﺮﻳﺒﺎ ُ ﻭﻟﻜﻦ ﻣﻦ ‪7.0‬‬
‫ﻭﻣﺎ ﺩﻭﻥ ﺗﺨﺘﻠﻒ ﺑﺸﻜﻞ ﻣﻠﺤﻮﻅ‪ ،‬ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ )‪.(2-1‬‬

‫ﺍﻟﺸﻜﻞ )‪(2-1‬‬

‫ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‬ ‫‪1‬‬


‫ﺷﺠﺮﺓ ﺍﻟﻜﺎﺋﻨﺎﺕ‬ ‫‪2‬‬
‫ﺫﺍﻛﺮﺓ ﺍﻟﻨﺴﺦ ﻭﺍﻟﻘﺺ‬ ‫‪3‬‬
‫ﺷﺎﺷﺔ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﺍﻟﻤﺴﺎﻋﺪﺓ‪ ،‬ﺑﺤﻴﺚ ﺗﻈﻬﺮ ﻓﻴﻬﺎ ﺭﺳﺎﺋﻞ ﺍﻟﺨﻄﺄ‬ ‫‪4‬‬

‫‪10‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪ (2-2‬ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‪:‬‬


‫ﻭﺗﺤﻮﻱ ﺇﺟﺮﺍءﺍﺕ ﻭﻋﻤﻠﻴﺎﺕ ﻭﺇﻧﺸﺎء ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟـ ‪ PB 9.0‬ﻭ ﻫﻲ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬
‫‪EA Server Profile‬‬ ‫‪.9‬‬ ‫‪ New‬ﺟﺪﻳﺪ‪ ،‬ﻹﻧﺸﺎء ﺟﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ‪OBJECTS‬‬ ‫‪.1‬‬
‫‪ Database‬ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻭﻫﻲ ﺟﺰﺋﻴﺔ ﺧﺎﺻﺔ ﺑﻜﻞ ﻣﺎ ﻳﺘﻌﻠﻖ‬ ‫‪ Inherit‬ﺗﻮﺭﻳﺚ‪ ،‬ﻳﺘﻢ ﺗﻮﺭﻳﺚ ﺻﻔﺎﺕ ﻛﺎﺋﻦ ﺇﻟﻰ ﻛﺎﺋﻨﺎﺕ‬
‫ﺑﺒﻨﺎء ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺃﻱ ﻣﺤﺮﺭ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻭﻳﻤﻜﻨﻚ ﺍﻟﺘﺤﻜﻢ‬ ‫ﺃﺧﺮﻯ‪.‬‬
‫‪.10‬‬ ‫‪.2‬‬
‫ﺑﻬﻴﻜﻠﻴﺔ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺜﺎﻝ)ﺇﺿﺎﻓﺔ ﻭﺣﺬﻑ ﺟﺪﻭﻝ‪ ،‬ﺇﺿﺎﻓﺔ ﻭﺣﺬﻑ‬
‫ﺣﻘﻞ‪(...،‬‬
‫‪ Edit‬ﻣﺤﺮﺭ ﺍﻟﻨﺼﻮﺹ‪ ،‬ﺑﺈﻣﻜﺎﻧﻚ ﺇﻧﺸﺎء ﻭﻓﺘﺢ ﻣﻠﻔﺎﺕ ﻧﺼﻴﺔ‬ ‫‪ Open‬ﻓﺘﺢ‪ ،‬ﻳﺘﻢ ﺍﻟﺒﺤﺚ ﻭﻓﺘﺢ ﺟﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ‬
‫ﻟﻼﺳﺘﺨﺪﺍﻡ ﺍﻟﺠﺎﻧﺒﻲ ﻣﺜﺎﻝ )ﺑﺈﻣﻜﺎﻧﻚ ﺣﻔﻆ ﻓﻴﻪ ﺑﻌﺾ ﺍﻷﻭﺍﻣﺮ ﻭﺛﻢ‬ ‫‪.11‬‬ ‫ﻓﻲ ﺍﻟﻤﺸﺮﻭﻉ ﻣﺜﺎﻝ)ﺍﻟﺸﺎﺷﺎﺕ‪ ،‬ﻧﻮﺍﻓﺬ ﺍﻟﺒﻴﺎﻧﺎﺕ‪،‬‬ ‫‪.3‬‬
‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻣﺮﺓ ﺃﺧﺮﻯ(‪.‬‬ ‫ﺍﻟﻘﻮﺍﺋﻢ‪.(...،‬‬
‫‪ Incremental Build Workspace‬ﻋﻤﻞ ﻓﺤﺺ ﻭﺇﻋﺎﺩﺓ‬ ‫‪ ،Run, Preview Object‬ﺗﻨﻔﻴﺬ ﺃﻭ ﻣﻌﺎﻳﻨﺔ ﻛﺎﺋﻦ‬
‫ﺑﻨﺎء ﻟﺠﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺠﺪﻳﺪﺓ ﻭﺍﻟﺘﻲ ﺗﻢ ﺗﻌﺪﻳﻠﻬﺎ ﻓﻘﻂ‪.‬‬ ‫‪.12‬‬ ‫ﻟﻴﻌﻄﻴﻚ ﺗﺼﻮﺭ ﻋﻦ ﺷﻜﻠﻪ ﺃﺛﻨﺎء ﺍﻟﺘﻨﻔﻴﺬ‪ ،‬ﻣﺜﺎﻝ)ﺍﻟﺸﺎﺷﺎﺕ‪،‬‬ ‫‪.4‬‬
‫ﻧﻮﺍﻓﺬ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﺍﻟﻘﻮﺍﺋﻢ‪.(...،‬‬
‫‪ Full Build Workspace‬ﻋﻤﻞ ﻓﺤﺺ ﻭﺇﻋﺎﺩﺓ ﺑﻨﺎء ﻟﺠﻤﻴﻊ‬ ‫‪ ،System Tree‬ﺷﺠﺮﺓ ﺍﻟﻨﻈﺎﻡ ﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺗﻬﺎ ﻓﻲ‬
‫ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺠﺪﻳﺪﺓ ﻭﺍﻟﻘﺪﻳﻤﺔ ﻭﺍﻟﻤﻌﺪﻟﺔ ﻭﺍﻟﻐﻴﺮ ﻣﻌﺪﻟﻪ‪ ،‬ﻭﻫﺬﻩ ﺗﺴﺘﺨﺪﻡ‬ ‫ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ ﺭﻗﻢ) ‪ (2-1‬ﻣﺮﺑﻊ ﺭﻗﻢ ) ‪ (2‬ﻭﻫﺬﻩ ﺍﻟﺸﺠﺮﺓ‬
‫‪.13‬‬ ‫‪.5‬‬
‫ﻋﻨﺪ ﻭﺟﻮﺩ ﻣﺸﻜﻠﺔ ﻏﻴﺮ ﻣﻌﺮﻭﻓﺔ ﻟﻜﺎﺋﻦ ﺃﻭ ﻋﺪﺓ ﻛﺎﺋﻨﺎﺕ ﺩﺍﺧﻞ‬ ‫ﺗﻌﺮﺽ ﻛﻞ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻨﻈﺎﻡ ﺃﻭ ﺍﻟﻤﺸﺮﻭﻉ ﺑﺸﻜﻞ ﻣﺮﺗﺐ‬
‫ﺍﻟﻤﺸﺮﻭﻉ‪.‬‬ ‫ﻭﻣﻨﻈﻢ ﻭﺑﺈﻣﻜﺎﻧﻚ ﺃﻥ ﺗﻨﺸﺄ ﺗﺮﺗﻴﺐ ﺧﺎﺹ ﺑﻚ‪.‬‬
‫‪ exe‬ﻟﻠﺒﺮﻧﺎﻣﺞ‬ ‫‪ Deploy Workspace‬ﺇﻧﺸﺎء ﻣﻠﻒ ﺗﻨﻔﻴﺬﻱ‬ ‫‪ Output‬ﻣﺨﺮﺟﺎﺕ‪ ،‬ﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺗﻬﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ‬
‫ﻭﺇﻧﺸﺎء ﻣﻠﻔﺎﺕ ‪ PBD‬ﺗﺤﻮﻱ ﺟﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻣﻦ ﺷﺎﺷﺎﺕ ﻭﻏﻴﺮﻫﺎ‬ ‫ﺭﻗﻢ)‪ (2-1‬ﻣﺮﺑﻊ ﺭﻗﻢ ) ‪ (4‬ﻳﺘﻢ ﺇﺧﺮﺍﺝ ﺑﻴﺎﻧﺎﺕ ﻭﻣﻌﻠﻮﻣﺎﺕ‬
‫ﻭﻟﻜﻦ ﻻ ﻳﻤﻜﻦ ﺍﻟﺘﻌﺪﻳﻞ ﻋﻠﻴﻬﺎ‪.‬‬ ‫‪.14‬‬ ‫ﻋﻦ ﺑﻌﺾ ﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻦ ﺃﻥ ﺗﺤﺪﺙ‪ ،‬ﻣﺜﺎﻝ)ﻋﻨﺪ‬ ‫‪.6‬‬
‫ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻭﻋﻨﺪﻣﺎ ﻳﻈﻬﺮ ﺧﻄﺄ ﻓﻲ ﺃﺣﺪ ﺟﻤﻞ‬
‫ﺍﻟﺒﺮﻣﺠﺔ ﻓﺈﻥ ﺑﻴﺎﻧﺎﺕ ﻫﺬﺍ ﺍﻟﺨﻄﺄ ﺳﺘﻈﻬﺮ ﻓﻲ ﻫﺬﺍ ﺍﻟﻤﺮﺑﻊ(‬
‫‪ Skip Build‬ﺗﺨﻄﻲ ﺑﻌﺾ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺃﺛﻨﺎء ﺇﻧﺸﺎء ﺍﻟﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬﻱ‪.‬‬ ‫‪ ،Next Error/Message‬ﺍﻟﺬﻫﺎﺏ ﺇﻟﻰ ﺍﻟﺨﻄﺄ ﺃﻭ‬
‫‪.15‬‬ ‫‪.7‬‬
‫ﺍﻟﺮﺳﺎﻟﺔ ﺍﻟﺘﺎﻟﻴﺔ‪.‬‬
‫‪ Stop Build‬ﺇﻳﻘﺎﻑ ﺇﻧﺸﺎء ﺍﻟﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬﻱ‪.‬‬ ‫‪ ،Previous Error/Message‬ﺍﻟﺬﻫﺎﺏ ﺇﻟﻰ ﺍﻟﺨﻄﺄ‬
‫‪.16‬‬ ‫‪.8‬‬
‫ﺃﻭ ﺍﻟﺮﺳﺎﻟﺔ ﺍﻟﺴﺎﺑﻘﺔ‪.‬‬
‫‪ Debug Now‬ﺗﺘﺒﻊ ﺗﺼﺤﻴﺢ ﺍﻷﺧﻄﺎء ﺍﻟﻔﻮﺭﻱ‪ ،‬ﻳﻘﻮﻡ ﺑﺘﺘﺒﻊ‬ ‫‪ To-Do-List‬ﻗﺎﺋﻤﺔ ﺑﺎﻷﻋﻤﺎﻝ ﻭﻫﻲ ﻁﺮﻳﻘﺔ ﺗﻨﻈﻴﻤﻴﺔ‬
‫ﺗﺼﺤﻴﺢ ﺍﻷﺧﻄﺎء ﻋﻦ ﻁﺮﻳﻖ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻣﻦ ﺑﺪﺍﻳﺘﻪ ﻋﻠﻰ ﻣﺮﺍﺣﻞ‬ ‫ﺟﻴﺪﺓ ﻳﻤﻜﻨﻚ ﺑﺄﻥ ﺗﺴﺘﻐﻠﻬﺎ ﻟﻜﻲ ﺗﺪﻭﻥ ﺟﻤﻴﻊ ﺃﻋﻤﺎﻟﻚ‬
‫ﺗﺴﺘﻄﻴﻊ ﺍﻟﺘﺤﻜﻢ ﺑﻤﺴﺎﺭﻙ ﻭﺗﺨﻄﻲ ﻋﺪﺓ ﻣﺮﺍﺣﻞ ﺃﻭ ﺗﻔﺼﻴﻠﻬﺎ‪.‬‬ ‫ﺍﻟﻤﻄﻠﻮﺏ ﺇﻧﺠﺎﺯﻫﺎ ﻟﻴﺴﻬﻞ ﻋﻠﻴﻚ ﺗﻌﻘﺐ ﺍﻹﻧﺠﺎﺯﺍﺕ ﺍﻟﺘﻲ‬
‫‪.17‬‬ ‫ﺃﻧﺠﺰﺕ ﻭﺍﻟﺘﻲ ﻟﻢ ﺗﻨﺠﺰ‪ ،‬ﻛﻤﺎ ﻳﻤﻜﻨﻚ ﺭﺑﻂ ﺃﻱ ﻛﺎﺋﻦ ﻣﻊ‬ ‫‪.9‬‬
‫ﺷﺮﺡ ﺑﺴﻴﻂ ﻟﻪ ﺑﺤﻴﺚ ﺗﺴﺘﻄﻴﻊ ﺍﻟﻮﺻﻮﻝ ﻭﺍﻟﻔﺘﺢ ﺍﻟﺴﺮﻳﻊ‬
‫ﻟﻬﺬﺍ ﺍﻟﻜﺎﺋﻦ ﻋﻦ ﻁﺮﻳﻖ ﺗﺴﺠﻴﻞ ﺍﺭﺗﺒﺎﻁ ﺧﺎﺹ ﺑﻪ ﻓﻲ ﻫﺬﻩ‬
‫ﺍﻟﻘﺎﺋﻤﺔ ﻭﺗﺴﺘﺨﺪﻡ ﻟﻠﻜﺎﺋﻨﺎﺕ ﺍﻷﻛﺜﺮ ﺍﺳﺘﺨﺪﺍﻣﺎ‪.‬‬
‫‪ Select and Debug‬ﺗﺨﺘﺎﺭ ﻛﺎﺋﻦ ﻣﻌﻴﻦ ﻭﺗﺘﺒﻊ ﺗﺼﺤﻴﺢ ﺍﻷﺧﻄﺎء‬ ‫‪ Browser‬ﻣﺴﺘﻜﺸﻒ ﺷﺎﺷﺔ ﺗﻌﺮﺽ ﺟﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ‬
‫ﻓﻘﻂ ﻟﻬﺬﺍ ﺍﻟﻜﺎﺋﻦ‪.‬‬ ‫ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻤﺸﺮﻭﻉ ﻻﺳﺘﻌﺮﺍﺽ ﺍﻟﺘﺎﻟﻲ‬
‫‪.18‬‬ ‫‪.10‬‬
‫)‪ (Properties, Events, Functions‬ﺍﻟﺨﺎﺹ ﺑﻜﻞ‬
‫ﻛﺎﺋﻦ‪.‬‬
‫‪ Run‬ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﺧﺘﺼﺎﺭ ﻣﻦ ﻟﻮﺣﺔ ﺍﻟﻤﻔﺎﺗﻴﺢ‬ ‫‪ Clip Window‬ﺷﺎﺷﺔ ﺍﻟﻤﺸﺒﻚ ‪ ،‬ﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺗﻬﺎ‬
‫‪.CTRL+R‬‬ ‫ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ ﺭﻗﻢ) ‪ (2-1‬ﻣﺮﺑﻊ ﺭﻗﻢ ) ‪ (3‬ﻭﻳﻤﻜﻨﻚ‬
‫‪.19‬‬ ‫‪.11‬‬
‫ﺇﺿﺎﻓﺔ ﺑﻌﺾ ﺍﻟﻘﻴﻢ ﺃﻭ ﺍﻟﻨﺼﻮﺹ ﻛﺘﺮﻣﻴﺰ ﺩﺍﺋﻢ ﺗﺴﺘﻄﻴﻊ‬
‫ﺃﻥ ﺗﺴﺘﺨﺪﻣﻬﺎ ﻭﺗﻨﺴﺨﻬﺎ ﻓﻲ ﺑﺮﻧﺎﻣﺠﻚ‪.‬‬
‫‪ Select And Run‬ﺍﺧﺘﻴﺎﺭ ﻫﺪﻑ ﻣﻌﻴﻦ ﻋﻨﺪ ﻭﺟﻮﺩ ﺃﻛﺜﺮ ﻣﻦ ﻫﺪﻑ‬ ‫‪ Library‬ﻣﻜﺘﺒﺔ‪ ،‬ﻋﺮﺽ ﺟﻤﻴﻊ ﺍﻟﻤﻜﺘﺒﺎﺕ ﺍﻟﺨﺎﺻﺔ‬
‫ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺛﻢ ﺗﻨﻔﻴﺬﻩ‪.‬‬ ‫‪.20‬‬ ‫ﺑﺎﻟﻤﺸﺮﻭﻉ‪ ،‬ﻭﺍﻟﻤﻜﺘﺒﺔ ﺗﺴﺘﺨﺪﻡ ﻟﺘﺠﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ‬ ‫‪.12‬‬
‫ﻛﺠﺰﺋﻴﺎﺕ ﻣﻨﻔﺼﻠﺔ ﺗﻨﻈﻴﻤﻴﺎ ً‪.‬‬
‫‪ Exit‬ﺧﺮﻭﺝ ﻣﻦ ‪. PB 9.0‬‬ ‫‪ DB Profile‬ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺨﺎﺻﺔ ﺑﻘﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻣﻦ‬
‫‪.21‬‬ ‫ﺧﻼﻟﻬﺎ ﺳﺘﺘﻤﻜﻦ ﻣﻦ ﺇﺿﺎﻓﺔ ﺭﻭﺍﺑﻂ ﻣﻊ ﺃﻧﻮﺍﻉ ﻛﺜﻴﺮﺓ ﻣﻦ‬ ‫‪.13‬‬
‫ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻭﺭﺑﻄﻬﺎ ﻣﻊ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﺨﺎﺹ ﺑﻚ‪.‬‬

‫)‪ (2-2‬ﺷﺠﺮﺓ ﺍﻟﻜﺎﺋﻨﺎﺕ‪:‬‬


‫‪ Workspace‬ﻓﻀﺎء ﺍﻟﻌﻤﻞ‪ ،‬ﻭﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﺗﻢ ﺇﺩﺭﺍﺟﻬﺎ ﻣﻦ ﺍﻹﺻﺪﺍﺭ ‪ 8.0‬ﻭﻟﻢ ﺗﻜﻦ ﻣﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺴﺎﺑﻘﺔ ﻣﻦ ﺍﻟـ ‪ PB‬ﻭﻫﻲ ﺇﻣﻜﺎﻧﻴﺔ ﺗﻨﻈﻴﻤﻴﺔ‬
‫‪.1‬‬
‫ﻟﻜﻲ ﻳﺘﻢ ﺍﺣﺘﻮﺍء ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﺨﺎﺹ ﺑﻚ ﻭﺟﻤﻴﻊ ﻛﺎﺋﻨﺎﺗﻪ ﺑﺸﻜﻞ ﻣﻨﻈﻢ‪ ،‬ﻭﺭ ﻳﻤﻜﻦ ﺃﻥ ﻳﺤﺘﻮﻱ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻮﺍﺣﺪ ﺃﻛﺜﺮ ﻣﻦ ﻓﻀﺎء ﻋﻤﻞ‪.‬‬
‫‪Target‬ﺍﻟﻬﺪﻑ‪ ،‬ﻭﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﺗﻢ ﺇﺩﺭﺍﺟﻬﺎ ﻣﻦ ﺍﻹﺻﺪﺍﺭ ‪ 8.0‬ﻭﻟﻢ ﺗﻜﻦ ﻣﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺴﺎﺑﻘﺔ ﻣﻦ ﺍﻟـ ‪ PB‬ﻭﻫﻲ ﺇﻣﻜﺎﻧﻴﺔ ﺗﻨﻈﻴﻤﻴﺔ ﺗﻤﻜﻨﻚ ﻣﻦ‬
‫ﺿﻢ ﺃﻛﺜﺮ ﻣﻦ ﻫﺪﻑ )ﺑﺮﻧﺎﻣﺞ( ﺗﺤﺖ ﻓﻀﺎء ﻋﻤﻞ ﻭﺍﺣﺪ ﻭﺑﺈﻣﻜﺎﻧﻚ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻛﻞ ﻫﺪﻑ ﻋﻠﻰ ﺃﻧﻪ ﺑﺮﻧﺎﻣﺞ ﻣﻨﻔﺼﻞ‪ ،‬ﻭﺿﻢ ﺃﻛﺜﺮ ﻣﻦ ﺑﺮﻧﺎﻣﺞ ﻓﻲ ﻫﺬﻩ ﺍﻟﺤﺎﻟﺔ‬ ‫‪.2‬‬
‫ﻛﺄﻫﺪﺍﻑ ﻳﺴﻬﻞ ﻋﻠﻴﻚ ﻧﻘﻞ ﻭﻧﺴﺦ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻣﻦ ﻫﺪﻑ ﺇﻟﻰ ﺁﺧﺮ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ‪.‬‬
‫‪ Library‬ﺍﻟﻤﻜﺘﺒﺔ‪ ،‬ﻭﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﻣﻮﺟﻮﺩﺓ ﻣﻦ ﺍﻹﺻﺪﺍﺭ ‪ 5.0‬ﺣﺴﺐ ﻋﻠﻤﻲ‪ ،‬ﻭﻫﻲ ﺇﻣﻜﺎﻧﻴﺔ ﺗﻨﻈﻴﻤﻴﺔ ﺗﻤﻜﻨﻚ ﻣﻦ ﺗﺼﻨﻴﻒ ﻋﻤﻠﻚ ﻛﻤﺎ ﻫﻮ ﻋﻠﻰ ﺃﺭﺽ‬
‫ﺍﻟﻮﺍﻗﻊ ﻭﺿﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺨﺎﺻﺔ ﺑﻜﻞ ﺗﺼﻨﻴﻒ ﻓﻲ ﻣﻜﺘﺒﺔ ﺗﺤﻤﻞ ﺍﺳﻢ ﺫﻭ ﺩﻻﻟﺔ‪ ،‬ﻣﺜﺎﻝ‪ :‬ﻟﻨﻔﺘﺮﺽ ﺃﻧﻚ ﺑﺼﺪﺩ ﺑﻨﺎء ﺑﺮﻧﺎﻣﺞ ﻣﺤﺎﺳﺒﻲ ﻳﺸﻤﻞ)ﺍﻟﻤﺨﺰﻭﻥ‪،‬‬
‫‪.3‬‬
‫ﺍﻟﺤﺴﺎﺑﺎﺕ‪ ،‬ﺍﻟﻤﻮﻅﻔﻴﻦ‪ ،‬ﺍﻟﺼﻴﺎﻧﺔ( ﻓﻜﻞ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺎﺕ ﺗﺘﻜﻮﻥ ﻣﻦ ﻛﺎﺋﻨﺎﺕ)ﺷﺎﺷﺎﺕ‪ ،‬ﻗﻮﺍﺋﻢ‪ ،‬ﻧﻮﺍﻓﺬ ﺑﻴﺎﻧﺎﺕ‪ (...،‬ﻓﻤﻦ ﺍﻷﻓﻀﻞ ﺑﻨﺎء ﻣﻜﺘﺒﺎﺕ ﺗﻀﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ‬
‫ﺍﻟﺨﺎﺻﺔ ﺑﻬﺎ‪ ،‬ﻭﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﺗﺴﻬﻞ ﻋﻠﻴﻚ ﺍﻟﻤﺘﺎﺑﻌﺔ ﻭﺳﺮﻋﺔ ﺍﻟﺒﺤﺚ‪.‬‬
‫‪ Application‬ﺍﻟﺘﻄﺒﻴﻖ‪ ،‬ﻛﺎﺋﻦ ﻏﻴﺮ ﻣﺮﺋﻲ ﻭﻫﻮ ﺃﻭﻝ ﻛﺎﺋﻦ ﻳﺘﻢ ﺗﻨﻔﻴﺬﻩ ﻋﻨﺪ ﻋﻤﻞ ‪ Run‬ﻟﻠﺒﺮﻧﺎﻣﺞ ﻭﻳﺘﻢ ﺇﺩﺭﺍﺝ ﺟﻤﻞ ﺍﻟﺮﺑﻂ ﻣﻊ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬ ‫‪.4‬‬

‫‪11‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻔﺼﻞ ﺍﻟﺜﺎﻟﺚ‬
‫‪PB Objects‬‬
‫ﻛﺎﺋﻨﺎﺕ ﺑﻮﺭ ﺑﻴﻠﺪﺭ‬

‫‪12‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻣﺎ ﻫﻮ ﺍﻟﻜﺎﺋﻦ ﺃﻭ ﺍﻟـ ‪ :Object‬ﻫﻮ ﻋﺒﺎﺭﺓ ﻋﻦ ﻣﺠﻤﻮﻋﺔ ﻣﺘﺮﺍﺑﻄﺔ ﻣﻦ ﺍﻟﺨﺼﺎﺋﺺ ﻭﺍﻷﺣﺪﺍﺙ ﻭﺍﻟﻮﻅﺎﺋﻒ ﺗﺮﺳﻢ ﺻﻔﺔ‬
‫ﻋﺎﻣﺔ ﻳﻄﻠﻖ ﻋﻠﻴﻬﺎ ﺍﺳﻢ ﻛﺎﺋﻦ‪ ،‬ﻭﻫﻨﺎﻙ ﺃﻧﻮﺍﻉ ﻣﻦ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﻮﺟﻬﺔ‪:‬‬
‫‪ Visual Object .1‬ﺍﻟﻜﺎﺋﻦ ﺍﻟﻤﺮﺋﻲ‪ :‬ﻣﺜﻞ ﺍﻟﺸﺎﺷﺔ ﻭﺍﻟﻌﻨﺎﺻﺮ ﺩﺍﺧﻞ ﺍﻟﺸﺎﺷﺔ‪.‬‬
‫‪ Non Visual Object .2‬ﺍﻟﻜﺎﺋﻦ ﺍﻟﻐﻴﺮ ﻣﺮﺋﻲ‪ :‬ﻣﺜﻞ ﺍﻟﺘﻄﺒﻴﻖ ‪ ،Application‬ﻣﺜﻞ ﺍﻟﺤﺮﻛﺔ ‪.Transaction‬‬
‫‪ User Object .3‬ﻛﺎﺋﻨﺎﺕ ﻣﻦ ﺻﻨﻌﻚ ﺍﻟﺨﺎﺹ‪ :‬ﻳﻤﻜﻨﻚ ﺍﺑﺘﻜﺎﺭ ﻛﺎﺋﻦ ﺧﺎﺹ ﺑﻚ ﻳﻤﻜﻨﻚ ﺇﻋﻄﺎﺋﻪ ﺧﺼﺎﺋﺺ ﻭﺃﺣﺪﺍﺙ‬
‫ﻭﻭﻅﺎﺋﻒ ﻟﺘﺄﺩﻳﺔ ﻋﻤﻞ ﻣﻌﻴﻦ ﻣﺜﺎﻝ‪ :‬ﺇﻧﺸﺎء ﺗﻘﻮﻳﻢ‪.‬‬

‫ﻭﻟﻘﺪ ﺃﺣﺪﺛﺖ ﺑﺮﻣﺠﺔ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﻮﺟﻬﺔ ﺍﻟﻤﺮﺋﻴﺔ ‪ Visual Object Oriented Programming‬ﺛﻮﺭﺓ ﻓﻲ ﻋﺎﻟﻢ‬
‫ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﻭﺻﻨﺎﻋﺘﻬﺎ ﺇﺫ ﺃﺻﺒﺤﺖ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ ﺗﺘﻨﺎﻓﺲ ﺃﻳﻬﻢ ﻳﻘﺪﻡ ﻛﺎﺋﻨﺎﺕ ﺃﻗﻮﻯ ﻭﺫﺍﺕ ﺇﻣﻜﺎﻧﻴﺎﺕ ﺃﻛﺒﺮ ﻭﺃﺳﻬﻞ‬
‫ﺑﺎﺳﺘﺨﺪﺍﻣﻬﺎ‪ ،‬ﻭﻟﻬﺬﺍ ﺍﻷﺛﺮ ﺍﻷﻛﺒﺮ ﻓﻲ ﻧﻘﻞ ﺍﻟﺒﺮﻣﺠﻴﺎﺕ ﺍﻟﺘﻲ ﺗﻌﻤﻞ ﺗﺤﺖ ﺑﻴﺌﺔ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ ‪ Ms Dos‬ﺇﻟﻰ ﺍﻟﺒﻴﺌﺔ ﺍﻟﺠﺪﻳﺪﺓ ﻣﻦ‬
‫ﺃﻧﻈﻤﺔ ﺍﻟﺘﺸﻐﻴﻞ ﺍﻟﻤﺮﺋﻴﺔ ‪ Windows‬ﻋﻠﻰ ﺍﻓﺘﺮﺍﺽ ﺃﻥ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ ‪ Windows‬ﺍﻷﻛﺜﺮ ﺍﻧﺘﺸﺎﺭﺍ ﻓﻲ ﺍﻟﻌﺎﻟﻢ ﻣﻊ ﻭﺟﻮﺩ‬
‫ﺃﻧﻈﻤﺔ ﺗﺸﻐﻴﻞ ﻣﺮﺋﻴﺔ ﺃﺧﺮﻯ‪.‬‬
‫ﺃﺭﻳﺪ ﺃﻥ ﺃﺭﻛﺰ ﻋﻠﻰ ﺃﻥ ﺍﻟﻔﻬﻢ ﺍﻟﺼﺤﻴﺢ ﻟﻠﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﻮﺟﻬﺔ ﺳﻴﺴﻬﻞ ﻋﻠﻴﻚ ﻛﻤﺒﺮﻣﺞ ﻣﺒﺘﺪﺉ ﺍﻟﺪﺧﻮﻝ ﻣﻦ ﺍﻟﺒﺎﺏ ﺍﻟﺼﺤﻴﺢ ﻟﻬﺬﺍ‬
‫ﺍﻟﻌﺎﻟﻢ ﺍﻻﻓﺘﺮﺍﺿﻲ ﺑﺤﻴﺚ ﻳﻤﻜﻨﻚ ﺷﻖ ﻁﺮﻳﻖ ﺧﺎﺹ ﺑﻚ ﺑﻌﻴﺪﺍً ﻋﻦ ﺍﻟﺘﻘﻠﻴﺪ ﺍﻷﻋﻤﻰ ﻟﻠﻐﻴﺮ‪ ،‬ﺑﺈﻣﻜﺎﻧﻚ ﺍﻣﺘﻼﻙ ﺍﻷﺩﻭﺍﺕ ﻭﺍﻹﻣﻜﺎﻧﻴﺎﺕ‬
‫ﻷﻱ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻭﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻌﻤﻞ ﻣﺸﺮﻭﻉ ﻳﺤﻤﻞ ﺑﺼﻤﺘﻚ ﺍﻟﻤﺘﻔﺮﺩﺓ‪ ،‬ﻭ ﺃﻭﺩ ﺃﻥ ﺃﻫﻤﺲ ﻓﻲ ﺇﺫﻧﻚ ﺑﻌﺾ ﺍﻷﻣﻮﺭ ﻋﻠﻬﺎ‬
‫ﺗﻜﻮﻥ ﺳﺒﺒﺎ ً ﻓﻲ ﺍﺧﺘﻴﺎﺭﻙ ﻟﻠﻐﺔ ﺍﻟﺒﺮﻣﺠﺔ ‪ Power Builder‬ﻟﻐﺔ ﺭﺳﻤﻴﺔ ﻟﺘﻄﺒﻴﻘﺎﺗﻚ ﻋﻠﻰ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪:‬‬
‫‪ ‬ﺃﻧﺘﺒﻪ ﻟﻠﻐﺔ ﺍﻟﺘﻲ ﺗﺮﻳﺪ ﺃﻥ ﺗﺴﺘﺨﺪﻣﻬﺎ ﻣﺎ ﻫﻲ ﺍﻹﻣﻜﺎﻧﻴﺎﺕ ﺍﻟﺘﻲ ﺗﻘﺪﻣﻬﺎ ﻟﻚ ﻛﻤﺒﺮﻣﺞ ﻣﺒﺘﺪﺉ ﺃﻭ ﻣﺤﺘﺮﻑ ﻭﺧﺎﺻﺔ ﺑﺎﻟﻤﺘﻌﻠﻘﺔ‬
‫ﺑﻘﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻫﻞ ﻫﻲ ﺷﺎﻣﻠﺔ؟ ﻫﻞ ﻫﻲ ﺳﻬﻠﺔ ﺍﻻﺳﺘﺨﺪﺍﻡ ﺑﺪﻭﻥ ﺗﻌﻘﻴﺪﺍﺕ ﻭﻟﻒ ﻭﺩﻭﺭﺍﻥ؟ ﻫﻞ ﺗﻮﻓﺮ ﻟﻚ ﺟﻤﻴﻊ ﺍﻟﺤﻠﻮﻝ‬
‫ﺍﻻﺣﺘﺮﺍﻓﻴﺔ ﻭﺍﻟﻤﺘﻘﺪﻣﺔ؟ ﻧﻌﻢ ﻫﻲ ﻟﻐﺔ ‪.Power Builder‬‬
‫‪ ‬ﻻ ﻳﻐﺮﻧﻚ ﺍﻻﻧﺘﺸﺎﺭ ﺍﻟﻜﺒﻴﺮ ﻷﺣﺪ ﺍﻟﻠﻐﺎﺕ ﻓﻲ ﻣﻨﻄﻘﺘﻚ ﻭﻫﺬﺍ ﻳﺆﺩﻱ ﺇﻟﻰ ﺃﻥ ﺗﻘﻞ ﻓﺮﺻﻚ ﺑﺎﻟﻤﻨﺎﻓﺴﺔ ﻋﻠﻰ ﺍﻟﻮﻅﺎﺋﻒ ﺍﻟﺸﺎﻏﺮﺓ‬
‫ﻓﻲ ﺳﻮﻕ ﺍﻟﻌﻤﻞ‪ ،‬ﻭﻟﻜﻦ ﻋﻨﺪﻣﺎ ﺗﻜﻮﻥ ﻣﺤﺘﺮﻑ ‪ Power Builder‬ﺳﻴﻜﻮﻥ ﺍﺣﺘﺮﺍﻓﻚ ﻟﻪ ﻣﺼﺪﺭ ﻗﻮﺓ ﻓﻲ ﺍﻟﺒﺤﺚ ﻋﻦ‬
‫ﺍﻟﻮﻅﺎﺋﻒ ﺍﻟﺸﺎﻏﺮﺓ ﻟﻌﺪﻡ ﺍﻧﺘﺸﺎﺭﻫﺎ ﺍﻟﻜﺒﻴﺮ ﻓﻲ ﺍﻟﺸﺮﻕ ﺍﻷﻭﺳﻂ ﻓﻴﻜﻮﻥ ﺍﻟﻄﻠﺐ ﻗﻠﻴﻞ ﻋﻠﻰ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻭﻟﻜﻦ ﺳﻴﻜﻮﻥ‬
‫ﺍﻟﻤﺮﺩﻭﺩ ﺍﻟﻤﺎﻟﻲ ﻛﺒﻴﺮ ﻟﻌﺪﻡ ﻭﺟﻮﺩ ﻣﻨﺎﻓﺴﺔ ﻛﺒﻴﺮﺓ ﻋﻠﻰ ﻭﻅﺎﺋﻒ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻓﻲ ﺳﻮﻕ ﺍﻟﻌﻤﻞ‪.‬‬
‫‪ ‬ﺇﺫﺍ ﺗﻌﻠﻤﺖ ﺃﻱ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﺮﺋﻴﺔ ﺑﺎﺣﺘﺮﺍﻓﻴﺔ ﻓﻠﻴﺲ ﻋﻠﻴﻚ ﺑﺄﺱ ﻓﻲ ﺍﺣﺘﺮﺍﻓﻚ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻣﺮﺋﻴﺔ ﺃﺧﺮﻯ‪ ،‬ﻓﺒﺈﻣﻜﺎﻧﻚ ﺍﻟﺠﻤﻊ‬
‫ﺑﻴﻦ ﺃﻛﺜﺮ ﻣﻦ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻓﻲ ﺁﻥ ﻭﺍﺣﺪ ﺑﻞ ﺑﺎﻟﻌﻜﺲ ﻫﺬﺍ ﻳﺜﺮﻱ ﻣﻌﻠﻮﻣﺎﺗﻚ ﻭﺧﺒﺮﺍﺗﻚ ﻭﻓﺮﺻﻚ ﺑﺎﻟﻨﺠﺎﺡ ﻭﻳﻤﻜﻨﻚ ﻣﻦ‬
‫ﺍﻟﻤﻘﺎﺭﻧﺔ ﺑﻴﻦ ﻫﺬﻩ ﺍﻟﻠﻐﺎﺕ ﻭﺃﻳﻬﻤﺎ ﺃﻗﻮﻯ ﺗﻘﻨﻴﺎ ً‪.‬‬

‫ﺃﺭﺟﻮﺍ ﻣﻨﻚ ﺍﻟﺘﺮﻛﻴﺰ ﻋﻠﻰ ﻫﺬﺍ ﺍﻟﻔﺼﻞ ﻟﻔﻬﻢ ﻣﺎ ﻳﺤﺘﻮﻳﻪ ﻣﻦ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺨﺎﺹ ﺑﺎﻟـ ‪. PB‬‬

‫‪13‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻛﻴﻒ ﺗﻘﻮﻡ ﺑﺈﻧﺸﺎء ﺃﺣﺪ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺮﺋﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ ﺍﻟـ ‪:PB 9.0‬‬

‫‪ .1‬ﺍﺫﻫﺐ ﺇﻟﻰ ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﺔ ﻭﺍﺧﺘﺮ ) ‪ NEW‬ﺟﺪﻳﺪ ( ‪.‬‬


‫‪ .2‬ﺳﺘﻈﻬﺮ ﻟﻚ ﺷﺎﺷﺔ ﻓﺮﻋﻴﺔ ﻓﻴﻬﺎ ﻣﻌﻈﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺘﺎﺑﻌﺔ ﻟﻠـ ‪ ،PB‬ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ ﺭﻗﻢ )‪.(3-1‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-1‬‬

‫‪ PB‬ﻭﺳﻴﻜﻮﻥ ﻓﻴﻬﺎ ﺗﺮﺗﻴﺐ ﺣﺴﺐ‬ ‫ﺳﺄﻗﻮﻡ ﺑﺘﻔﺼﻴﻞ ﺃﻫﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ ﻓﻲ ﺑﻨﺎء ﺑﺮﻧﺎﻣﺞ ﺍﺣﺘﺮﺍﻓﻲ ﻋﻠﻰ ﻟﻐﺔ ﺍﻟـ‬
‫ﺍﻷﻭﻟﻮﻳﺔ ﻓﻲ ﺑﻨﺎء ﺍﻟﺒﺮﺍﻣﺞ‪ ،‬ﻭﻟﻜﻲ ﺗﻜﺘﻤﻞ ﺍﻟﺼﻮﺭﺓ ﻳﺠﺐ ﻋﻠﻴﻨﺎ ﺃﻥ ﻧﻤﺜﻞ ﻫﺬﻩ ﺍﻟﻔﻘﺮﺓ ﺑﻤﺜﺎﻝ ﻭﺍﻗﻌﻲ ﻟﻜﻲ ﺗﺼﻞ ﺍﻟﻔﻜﺮﺓ ﺍﻟﻤﻄﻠﻮﺑﺔ‬
‫ﺑﺴﻬﻮﻟﺔ‪ ،‬ﺩﻋﻨﻲ ﺍﺳﺄﻝ ﺍﻟﺴﺆﺍﻝ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫ﻛﻴﻒ ﺃﺑﻨﻲ ﺑﺮﻧﺎﻣﺠﺎ ً ﻋﻠﻰ ﻟﻐﺔ ﺍﻟـ ‪PB 9.0‬؟‬
‫ﺍﻟﺠﻮﺍﺏ‪ :‬ﺑﺈﻣﻜﺎﻧﻚ ﺑﻨﺎء ﺑﺮﻧﺎﻣﺞ ﺍﻟـ ‪ PB 9.0‬ﺑﻤﺮﺍﻋﺎﺓ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫ﺃﻭﻻً( ﻳﺠﺐ ﺗﻤﻴﻴﺰ ﺑﻌﺾ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻬﻴﻜﻠﻴﺔ ﺍﻟﺘﻲ ﺗﻌﺘﺒﺮ ﺃﺳﺎﺱ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﻤﻨﺸﻮﺩ ﻭﻫﻲ ) ‪Workspace, Target,‬‬
‫‪ (Application, Library‬ﻭﻫﺬﻩ ﻳﺘﻢ ﺑﻨﺎﺋﻬﺎ ﺑﺸﻜﻞ ﻣﺒﺪﺋﻲ ﻛﻬﻴﻜﻞ ﻟﻠﺒﺮﻧﺎﻣﺞ ﻭﻛﺨﻄﻮﺓ ﺃﻭﻟﻰ‪.‬‬
‫• ﻛﻴﻒ ﺃﺑﻨﻲ ‪Workspace‬؟‬
‫‪ .1‬ﺍﺫﻫﺐ ﺇﻟﻰ ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺍﺧﺘﺮ ) ‪ NEW‬ﺟﺪﻳﺪ ( ‪.‬‬
‫‪ .2‬ﺳﺘﻈﻬﺮ ﻟﻚ ﺷﺎﺷﺔ ﻓﺮﻋﻴﺔ ﻓﻴﻬﺎ ﻣﻌﻈﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺘﺎﺑﻌﺔ ﻟﻠـ ‪ ،PB‬ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ ﺭﻗﻢ )‪.(3-2‬‬
‫‪ .3‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Workspace‬‬
‫‪ .4‬ﺛﻢ ﺍﺿﻐﻂ ‪. Ok‬‬

‫‪14‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-2‬‬

‫‪ Workspace‬ﺑﺎﺳﻢ ﻓﺎﻷﻓﻀﻞ ﺃﻥ ﺗﻘﻮﻡ ﺑﺈﻧﺸﺎء ﻣﺠﻠﺪ ﺟﺪﻳﺪ ﻭﻟﻴﻜﻦ ﺃﺳﻤﻪ‬ ‫‪ .5‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻟﺤﻔﻆ‬
‫‪ NewProject‬ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-3‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-3‬‬


‫‪ .6‬ﺛﻢ ﻗﻢ ﺑﺎﻟﺪﺧﻮﻝ ﻋﻠﻰ ﺍﻟﻤﺠﻠﺪ ‪ NewProject‬ﻭﻗﻢ ﺑﻜﺘﺎﺑﺔ ﺍﺳﻢ ﻟﻠـ ‪ Workspace‬ﻭﻟﻴﻜﻦ ﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ‬
‫‪ Newspace‬ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-4‬‬

‫‪15‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-4‬‬

‫‪ .7‬ﺳﻴﻈﻬﺮ ﺍﻟـ ‪ Workspace‬ﻓﻲ ﺷﺠﺮﺓ ﺍﻟﻨﻈﺎﻡ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-5‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-5‬‬

‫‪16‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫• ﻛﻴﻒ ﺃﺑﻨﻲ ‪ Target‬ﻭ ‪ Application‬ﻭ ‪Library‬؟‬


‫ﺗﻤﻜﻨﻚ ﺍﻟـ ‪ PB 9.0‬ﻣﻦ ﺑﻨﺎء ﻫﺬﺍ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺩﻓﻌﺔ ﻭﺍﺣﺪ ﻟﺘﺴﻬﻴﻞ ﺃﻣﺮ ﺑﻨﺎء ﻫﻴﻜﻠﻴﺔ ﻟﺒﺮﻧﺎﻣﺠﻚ ﺍﻟﺠﺪﻳﺪ‪ ،‬ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪ (3-6‬ﺃﺭﺟﻮﺍ ﺍﻻﻧﺘﺒﺎﻩ ﺇﻟﻰ ﺭﻗﻢ ‪ 4‬ﻭ ‪ 5‬ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪:‬‬
‫‪ : Template Application‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻦ ‪ Wizard‬ﻣﺴﺎﻋﺪ ﺑﻨﺎء ﻳﻤﻜﻨﻚ ﺑﻨﺎء‬
‫‪4‬‬
‫ﺍﻹﻁﺎﺭ ﺍﻟﻌﺎﻡ ﻟﺒﺮﻧﺎﻣﺠﻚ ﺑﺸﻜﻞ ﺳﺮﻳﻊ ﻭﻳﻤﻜﻨﻚ ﺍﻹﻁﻼﻉ ﻋﻠﻴﻬﺎ‪.‬‬
‫‪ :Existing Application‬ﻳﻤﻜﻨﻚ ﺃﻥ ﺗﻘﻮﻡ ﺑﺎﺧﺘﻴﺎﺭ ‪ Application‬ﻣﻮﺟﻮﺩ ﻣﺴﺒﻘﺎ ً‪.‬‬ ‫‪5‬‬
‫‪ :Application‬ﻭﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﻫﻲ ﺍﻟﺘﻲ ﺗﻬﻤﻨﺎ ﻳﺠﺐ ﺍﻟﺘﺮﻛﻴﺰ ﻋﻠﻴﻬﺎ‪.‬‬ ‫‪3‬‬
‫ﺳﻨﻘﻮﻡ ﺑﺸﺮﺡ ﺍﻟﻨﻘﻄﺔ ﺭﻗﻢ ‪.Application 3‬‬
‫(‪.‬‬ ‫‪ .1‬ﺃﺫﻫﺐ ﺇﻟﻰ ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ‬
‫‪ .2‬ﺛﻢ ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Target‬‬
‫‪ .3‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Application‬‬
‫‪ .4‬ﺛﻢ ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Ok‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-6‬‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺗﺤﺪﺩ ﻓﻴﻬﺎ ﺍﺳﻢ ﺍﻟـ ‪ Application‬ﻓﻘﻂ ﻭﻣﻦ ﺛﻢ ﺳﻴﺘﻢ ﺇﻧﺸﺎء ﺍﺳﻢ ﺍﻟـ ‪ Target‬ﻭ‪Library‬‬
‫ﺑﺸﻜﻞ ﺁﻟﻲ ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪ ،(3-7‬ﻗﻢ ﺑﻜﺘﺎﺑﺔ ﺍﺳﻢ ﺍﻟـ ‪ Application‬ﻭﻟﻴﻜﻦ ﺍﺳﻤﻪ ‪.newapplication‬‬

‫‪17‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-7‬‬

‫ﺳﻴﺘﻢ ﺑﻨﺎء ﺍﻟـ ‪ Application‬ﻭ ﺍﻟـ ‪ Target‬ﻭ ﺍﻟـ ‪ ،Library‬ﻓﻲ ﺷﺠﺮﺓ ﺍﻟﻨﻈﺎﻡ ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-8‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-8‬‬

‫ﻓﻬﻜﺬﺍ ﻧﻜﻮﻥ ﻗﺪ ﺃﻧﻬﻴﻨﺎ ﺑﻨﺎء ﺍﻟﻬﻴﻜﻞ ﺍﻟﺨﺎﺹ ﺑﺎﻟﺒﺮﻧﺎﻣﺞ ﻭﺳﻨﻨﺘﻘﻞ ﻟﻠﺨﻄﻮﺓ ﺍﻟﺜﺎﻧﻴﺔ ﻭﻫﻲ ﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟـ‬
‫‪.PB 9.0‬‬

‫‪18‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺛﺎﻧﻴﺎ ً( ﺳﺄﻗﻮﻡ ﺑﻌﺮﺽ ﻭﺍﻓﻲ ﻟﺠﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ ﻓﻲ ﺑﻨﺎء ﺑﺮﻧﺎﻣﺠﻚ‬
‫‪ .1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ (‪.‬‬
‫‪ .2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.PB Object‬‬
‫‪ .3‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ ) ‪ (3-9‬ﻻﺣﻆ ﺃﻥ ﺃﻫﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺼﻨﺪﻭﻕ ﺍﻷﺣﻤﺮ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ‬
‫ﺑﺸﻜﻞ ﻛﺒﻴﺮ ﻭﻣﺘﻜﺮﺭ‪ ،‬ﻭﺳﻨﺒﺪﺃ ﺑﺸﺮﺡ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺑﺸﻜﻞ ﻣﻔﺼﻞ‪:‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-8‬‬

‫ﺍﻟﺸﺎﺷﺔ ‪Window‬‬ ‫‪.1‬‬

‫(‪.‬‬ ‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ‬ ‫‪.1‬‬


‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.PB Object‬‬ ‫‪.2‬‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-9‬‬ ‫‪.3‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﻛﺎﺋﻦ ‪ Window‬ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ‪.‬‬ ‫‪.4‬‬
‫ﺳﻴﻈﻬﺮ ﻛﺎﺋﻦ ‪ Window‬ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-10‬‬ ‫‪.5‬‬

‫‪19‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-9‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-10‬‬

‫ﺳﺘﻼﺣﻆ ﺃﻥ ﺍﻟﺸﺎﺷﺔ ﻣﻘﺴﻮﻣﺔ ﺇﻟﻰ ‪ 3‬ﺃﺟﺰﺍء ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪ (3-10‬ﻭﻣﺮﻗﻤﺔ ﻣﻦ ‪ 1‬ﺇﻟﻰ ‪3‬‬
‫ﺭﻗﻢ ‪ 1‬ﻭﻫﻲ ﺟﺴﻢ ﺍﻟﺸﺎﺷﺔ‪.‬‬
‫‪20‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺭﻗﻢ ‪ 2‬ﺧﺼﺎﺋﺺ ﺍﻟﺸﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ ) ‪ (3-11‬ﻭﺳﻨﺮﻛﺰ ﻋﻠﻰ ﺟﺰﺋﻴﺔ ‪ General‬ﻭﻳﻤﻜﻦ ﺗﺼﻔﺢ ﺑﺎﻗﻲ ﺍﻟﺠﺰﺋﻴﺎﺕ‬
‫ﻟﻮﺣﺪﻙ‪.‬‬
‫ﻋﻨﻮﺍﻥ ﺍﻟﺸﺎﺷﺔ‬ ‫‪Title‬‬
‫ﻧﺺ ﻣﺴﺎﻋﺪﺓ ﻣﺨﺘﺼﺮ‬ ‫‪Tag‬‬
‫ﺍﺳﻢ ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪Menu Name‬‬
‫ﺇﻅﻬﺎﺭ‬ ‫‪Visible‬‬
‫ﺗﻤﻜﻴﻦ‬ ‫‪Enabled‬‬
‫‪Control Menu‬‬

‫ﻗﺎﺋﻤﺔ ﺍﻟﺘﺤﻜﻢ‬

‫ﺗﻜﺒﻴﺮ‬ ‫‪Max Box‬‬


‫ﺗﺼﻐﻴﺮ‬ ‫‪Min Box‬‬
‫ﺣﻮﺍﻑ ﺃﺩﻕ‬ ‫‪Client Edge‬‬
‫ﺗﺤﻮﻳﻞ ﺍﻟﺸﺎﺷﺔ ﻣﻦ ﺍﻟﻴﻤﻴﻦ ﻟﻠﻴﺴﺎﺭ‬
‫‪Right To left‬‬
‫ﻭﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺗﻄﺒﻴﻘﺎﺕ ﺍﻟﻠﻐﺔ ﺍﻟﻌﺮﺑﻴﺔ‬
‫ﺗﺜﺒﻴﺖ ﺍﻟﺸﺎﺷﺔ ﻓﻲ ﺍﻟﻮﺳﻂ‬ ‫‪Center‬‬
‫ﻗﺎﺑﻠﻴﺔ ﺗﻐﻴﻴﺮ ﺣﺠﻢ ﺍﻟﺸﺎﺷﺔ‬ ‫‪Resizable‬‬

‫ﻧﻮﻉ ﺍﻟﺸﺎﺷﺔ‪:‬‬
‫ﺍﺑﻦ ﺗﺎﺑﻊ ﺟﺰء ﻻ ﻳﺘﺠﺰﺃ ﻣﻦ‬
‫‪Child‬‬
‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-11‬‬
‫ﺍﻟﺸﺎﺷﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‬
‫ﺷﺎﺷﺔ ﻋﺎﺩﻳﺔ ﺇﺫﺍ ﺗﻢ ﻓﺘﺤﻬﺎ‬
‫ﺣﺎﻟﺔ ﺍﻟﺸﺎﺷﺔ‬
‫ﺑﻮﺍﺳﻄﺔ ‪ Open‬ﺳﺘﻜﻮﻥ ﻣﻔﺼﻮﻟﺔ‬ ‫‪Window‬‬
‫ﻋﻦ ﺍﻟﺸﺎﺷﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ‪ ،‬ﻭﺗﻜﻮﻥ‬ ‫‪Main‬‬
‫ﺗﺎﺑﻌﺔ ﻟﻠﺸﺎﺷﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﺑﺎﺳﺘﺨﺪﺍﻡ‬
‫‪State‬‬
‫‪Window Type‬‬
‫ﺃﻣﺮ ‪.OpenSheet‬‬
‫ﺷﺎﺷﺔ ﻳﻤﻜﻨﻬﺎ ﺿﻢ ﺃﻛﺜﺮ ﻣﻦ‬
‫ﺷﺎﺷﺔ‪MultipleDocument ،‬‬ ‫‪Mdi‬‬
‫‪Interface‬‬
‫ﺷﺎﺷﺔ ﻧﻔﺲ ‪ Mdi‬ﻭﻓﻴﻬﺎ ﺷﺮﻳﻂ‬ ‫‪Mdi‬‬
‫ﻣﺴﺎﻋﺪﺓ ﺃﺳﻔﻠﻬﺎ‬ ‫‪Help‬‬
‫ﺷﺎﺷﺔ ﺗﻜﻮﻥ ﻣﺜﻞ ﺻﻨﺪﻭﻕ ﺍﻟﺮﺳﺎﻟﺔ‬
‫ﻻ ﻳﻤﻜﻨﻚ ﺍﺧﺘﻴﺎﺭ ﺃﻱ ﻛﺎﺋﻦ ﺧﻠﻔﻬﺎ‬ ‫‪Popup‬‬ ‫‪Back‬‬
‫ﺇﻻ ﺑﺎﺧﺘﻴﺎﺭ ﺯﺭ ﻣﻨﻬﺎ‪.‬‬
‫ﺷﺎﺷﺔ ﺗﻜﻮﻥ ﻣﺜﻞ ﺻﻨﺪﻭﻕ ﺍﻟﺮﺳﺎﻟﺔ‬
‫‪color‬‬
‫ﻻ ﻳﻤﻜﻨﻚ ﺍﺧﺘﻴﺎﺭ ﺃﻱ ﻛﺎﺋﻦ ﺧﻠﻔﻬﺎ‬
‫‪Response‬‬
‫ﺇﻻ ﺑﺎﺧﺘﻴﺎﺭ ﺯﺭ ﻣﻨﻬﺎ‪ ،‬ﻭﻳﻤﻜﻦ ﺃﻥ‬
‫ﺗﻤﺮﺭ ﻗﻴﻤﻪ ﻣﻦ ﺧﻼﻟﻬﺎ‬

‫‪21‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺭﻗﻢ ‪ 3‬ﻣﻜﻮﻧﺎﺕ ﺍﻟﺸﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-10‬‬

‫ﻫﻲ ﺟﺴﻢ ﺍﻟﺸﺎﺷﺔ ﺍﻟﺘﻲ‬


‫ﻳﻤﻜﻨﻚ ﺗﻨﺴﻴﻘﻬﺎ ﻭﺇﺿﺎﻓﺔ‬ ‫‪Layout‬‬
‫‪1‬‬
‫ﻛﺎﺋﻨﺎﺕ ﻋﻠﻴﻬﺎ ﻣﺜﻞ‬ ‫ﺍﻟﺘﺼﻤﻴﻢ‬
‫ﺍﻷﺯﺭﺍﺭ ﻭ ﻛﺎﺋﻨﺎﺕ ﺃﺧﺮﻯ‬

‫ﻫﺬﻩ ﺟﺰﺋﻴﺔ ﻣﺘﻐﻴﺮﺓ‬


‫ﺣﺴﺐ ﺍﺧﺘﻴﺎﺭﻙ ﺇﻣﺎ‬
‫ﻟﺤﺪﺙ)‪ (Event‬ﺃﻭ ﺩﺍﻟﺔ‬
‫ﻣﻨﻄﻘﺔ ﻋﻤﻠﻴﺎﺕ‬ ‫‪2‬‬
‫)‪ (Function‬ﺑﺤﻴﺚ‬
‫ﺗﻈﻬﺮ ﻓﻴﻬﺎ ﺍﺳﻢ ﺁﺧﺮ ﺷﻲ‬
‫ﺗﻢ ﺍﺳﺘﺨﺪﺍﻣﻪ‬
‫ﻫﻲ ﺃﺣﺪﺍﺙ ﺗﺨﺺ ﻛﻞ‬
‫ﻛﺎﺋﻦ ﻳﻤﻜﻨﻚ ﻭﺿﻊ ﻛﻮﺩ‬
‫ﺣﺴﺐ ﻣﺎ ﻳﻘﺘﻀﻴﻪ‬
‫ﺍﻟﻤﻮﻗﻒ‬
‫ﻣﺜﺎﻝ ﺣﺪﺙ)‪ (open‬ﻋﻨﺪ‬
‫‪Event‬‬
‫ﺩﺧﻮﻝ ﺍﻟﺸﺎﺷﺔ ﻳﻨﻔﺬ‬ ‫‪3‬‬
‫ﺃﺣﺪﺍﺙ‬
‫ﺍﻟﻜﻮﺩ ﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﺣﺪﺙ‬
‫‪Open‬‬
‫‪ Close‬ﺇﻏﻼﻕ ﻋﻨﺪ‬
‫ﺍﻟﺨﺮﻭﺝ ﻳﻨﻔﺬ ﺣﺪﺙ‬
‫‪Close‬‬

‫‪22‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻫﺬﻩ ﺍﻟﺪﻭﺍﻝ ﻣﺤﻠﻴﺔ‬


‫‪ Local‬ﻭﻧﻄﺎﻕ‬
‫ﺗﺄﺛﻴﺮﻫﺎ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ‬
‫ﻭﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺮﺗﺒﻄﺔ‬
‫ﺑﻬﺎ‪ ،‬ﻭﻫﻲ ﻧﻮﻋﻴﻦ‪:‬‬
‫• ﺩﻭﺍﻝ ﻣﻮﺟﻮﺩﺓ‬
‫ﻣﺴﺒﻘﺎً ﻛﺼﻔﺔ ﻓﻲ‬ ‫‪Function‬‬
‫‪4‬‬
‫ﺍﻟﻜﺎﺋﻦ‪.‬‬ ‫ﺩﻭﺍﻝ‬
‫• ﺩﻭﺍﻝ ﻳﻤﻜﻦ ﺃﻥ‬
‫ﻳﻌﺮﻓﻬﺎ ﺍﻟﻤﺴﺘﺨﺪﻡ ‪.‬‬‫ّ‬
‫ﻭﻳﻤﻜﻦ ﺃﻥ ﺗﻤﺮﺭ‬
‫ﺃﻛﺜﺮ ﻣﻦ ﻣﺘﻐﻴﺮ‬
‫ﻭﺗﺴﺘﻄﻴﻊ ﺇﺭﺟﺎﻉ‬
‫ﻗﻴﻤﺔ ﻭﺍﺣﺪ ﻓﻘﻂ‬
‫ﺗﻌﺮﻳﻒ ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‪:‬‬
‫ﻭﺗﻌﺘﺒﺮ ﻣﻦ ﺍﻷﻣﻮﺭ‬
‫ﺍﻟﻤﻬﻤﺔ ﺟﺪﺍً ﻓﻲ ﺑﺮﻣﺠﺔ‬
‫‪ PB‬ﺃﻭ ﺃﻱ ﻟﻐﺔ ﺃﺧﺮﻯ‬
‫ﻭﻫﻲ ﺃﻧﻮﺍﻉ ﻳﺠﺐ ﺃﻥ‬
‫ﺗﺴﺘﻮﻋﺒﻬﺎ‪:‬‬
‫‪ Global .1‬ﻋﺎﻡ‪:‬‬
‫ﻧﻄﺎﻕ ﺗﺄﺛﻴﺮﻩ ﻟﻜﻞ‬
‫ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﻮﺟﻮﺩ‬
‫ﻓﻲ ﺍﻟﻤﺸﺮﻭﻉ‪،‬‬
‫ﻭﻳﺤﺘﻔﻆ ﺑﻘﻴﻤﺘﻪ ﻟﻜﻞ‬
‫ﺍﻟﺒﺮﻧﺎﻣﺞ ﻭﻳﻔﻘﺪ‬
‫ﻗﻴﻤﺘﻪ ﻋﻨﺪ ﺍﻟﺨﺮﻭﺝ‬
‫ﻣﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫‪Declare‬‬
‫‪ Shared .2‬ﻣﺸﺘﺮﻙ‬ ‫‪5‬‬
‫‪Variables‬‬
‫ﻧﻄﺎﻕ ﺗﺄﺛﻴﺮﻩ ﻋﻠﻰ‬
‫ﺍﻟﻜﺎﺋﻦ ﻭﻣﺤﺘﻮﻳﺎﺗﻪ‬
‫ﻭﻳﺤﺘﻔﻆ ﺑﻘﻴﻤﺘﻪ‬
‫ﺣﺘﻰ ﺇﺫﺍ ﺗﻢ ﺇﻏﻼﻕ‬
‫ﺍﻟﻜﺎﺋﻦ‪.‬‬
‫‪ Instance .3‬ﺩﺍﺧﻠﻲ‬
‫ﺍﻟﻤﺘﻐﻴﺮ ﻣﺠﺎﻟﻪ ﻓﻘﻂ‬
‫‪Event‬‬ ‫ﺩﺍﺧﻞ‬
‫)ﺍﻟـﺤﺪﺙ( ﺍﻟﺨﺎﺹ‬
‫ﺑﺎﻟـ ‪ Control‬ﺃﻭ‬
‫)ﻋﻨﺼﺮ ﺍﻟﺘﺤﻜﻢ(‬
‫ﻭﻧﻄﺎﻕ ﺗﺄﺛﻴﺮﻩ ﻓﻲ‬
‫ﺩﺍﺧﻞ ﺍﻟﺤﺪﺙ‬
‫‪event‬‬

‫‪23‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪Menu‬‬ ‫‪.2‬‬


‫(‪.‬‬ ‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.PB Object‬‬ ‫‪.2‬‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺷﻜﻞ ﺭﻗﻢ )‪.(3-11‬‬ ‫‪.3‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﻛﺎﺋﻦ ‪ Menu‬ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ‪.‬‬ ‫‪.4‬‬
‫ﺳﻴﻈﻬﺮ ﻛﺎﺋﻦ ‪ Menu‬ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-12‬‬ ‫‪.5‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-11‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-12‬‬

‫‪24‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻳﺘﻢ ﺑﻨﺎء ﺍﻟﻘﺎﺋﻤﺔ ﻋﻠﻰ ﺷﻜﻞ ﺷﺠﺮﺓ ﻳﻤﻜﻨﻚ‬


‫ﺗﻔﺮﻳﻊ ﺃﻛﺜﺮ ﻣﻦ ﻣﺴﺘﻮﻯ ﻭﻳﻤﻜﻨﻚ ﻧﻘﻞ ﺟﺰﺋﻴﺔ‬
‫ﺗﺤﺖ ﺃﺧﺮﻯ ﺃﻭ ﺟﻌﻠﻬﺎ ﺭﺋﻴﺴﻴﺔ ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ‬
‫ﺃﺩﻧﺎﻩ‪،‬‬

‫• ﻗﻢ ﺑﻨﻘﺮ ﺍﻟﺰﺭ ﺍﻷﻳﻤﻦ ﻟﻠﻔﺄﺭﺓ ﻋﻠﻰ‬


‫‪ Untitled‬ﺳﺘﻈﻬﺮ ﻗﺎﺋﻤﺔ ﻣﻨﺒﺜﻘﺔ‬

‫• ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪Insert Submenu‬‬


‫‪.Item‬‬

‫• ﺛﻢ ﻗﻢ ﺑﻜﺘﺎﺑﺔ ﺍﺳﻢ ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺘﻲ ﺗﺮﻳﺪ ‪.‬‬

‫ﺑﻨﺎء ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪1‬‬

‫ﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺓ ﻣﻌﺎﻳﻨﺔ ﻟﻠﻘﺎﺋﻤﺔ‬ ‫ﻣﻌﺎﻳﻨﺔ‬ ‫‪2‬‬


‫ﻟﻠﻘﺎﺋﻤﺔ‬

‫ﻳﻤﻜﻨﻚ ﻛﺘﺎﺑﺔ )ﺍﻟﻜﻮﺩ( ﻓﻲ ﺍﻷﺣﺪﺍﺙ ﺍﻟﺘﻲ‬ ‫ﺍﻷﺣﺪﺍﺙ‬ ‫‪3‬‬


‫ﺗﺨﺺ ﻋﻨﺎﺻﺮ ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪events‬‬

‫‪25‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﺳﻢ ﺍﻟﻌﻨﺼﺮ ﻓﻲ ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪Name‬‬


‫ﻭﻣﻦ ﺍﻟﻤﺴﺘﺤﺴﻦ ﺃﻥ ﻳﺒﺪﺃ‬
‫ﺍﻻﺳﻢ ﺑـ)‪(m‬‬

‫ﺇﻗﻔﺎﻝ ﺣﻘﻞ ﺍﻟـ‪Name‬‬ ‫‪Lock Name‬‬

‫ﺍﻟﻨﺺ‬ ‫‪Text‬‬

‫ﻣﺴﺎﻋﺪﺓ ﺻﻐﻴﺮﺓ ﻋﻨﺪ‬ ‫‪Micro Help‬‬


‫ﻣﺮﻭﺭ ﻣﺆﺷﺮ ﺍﻟﻔﺄﺭﺓ ﻋﻠﻰ‬
‫ﺍﻟﻌﻨﺼﺮ ﻳﻈﻬﺮ ﺍﻟﻨﺺ‬
‫ﺍﻟﻤﻜﺘﻮﺏ‬

‫ﺇﻅﻬﺎﺭ‪/‬ﺇﺧﻔﺎء‬ ‫‪Visible‬‬
‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫‪4‬‬
‫ﺗﻤﻜﻴﻦ‪/‬ﺣﻈﺮ‬ ‫‪Enabled‬‬ ‫‪General‬‬

‫ﺇﺿﺎﻓﺔ ﻋﻼﻣﺔ )ﺻﺢ(‬ ‫‪Checked‬‬


‫ﺑﺠﺎﻧﺐ ﺍﻟﻌﻨﺼﺮ‬

‫ﺍﺧﺘﻴﺎﺭ ﺍﻟﻌﻨﺼﺮ ﺑﺸﻜﻞ‬ ‫‪Default‬‬


‫ﺗﻠﻘﺎﺋﻲ‬

‫ﺗﺤﻮﻳﻞ ﺍﺗﺠﺎﻩ ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪ShiftToRight‬‬


‫ﻟﻠﻴﻤﻴﻦ ﻭﺗﺴﺘﺨﺪﻡ ﻓﻲ‬
‫ﺍﻟﺘﻄﺒﻴﻘﺎﺕ ﺍﻟﻌﺮﺑﻴﺔ‬

‫ﻋﻤﻞ ﺍﺧﺘﺼﺎﺭ ﻣﺜﺎﻝ‬ ‫‪Shortcut Key‬‬


‫‪CTRL+A‬‬

‫ﻣﺴﻤﻰ ﻋﻨﺼﺮ ﻣﻮﺟﻮﺩ‬ ‫‪Toolbar Item‬‬


‫ﻓﻲ ﺷﺮﻳﻂ ﺍﻷﺩﻭﺍﺕ‬ ‫‪Text‬‬

‫ﺗﺨﺘﺎﺭ ﺻﻮﺭﺓ ﻣﻦ‬ ‫‪Toolbar Item‬‬


‫ﺍﻟﻘﺎﺋﻤﺔ‬ ‫‪Name‬‬

‫ﺗﺨﺘﺎﺭ ﺻﻮﺭﺓ ﻟﻌﻨﺼﺮ ﻓﻲ‬ ‫‪Toolbar Item‬‬


‫ﻗﺎﺋﻤﺔ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻨﺴﺪﻟﺔ‬ ‫‪Down Name‬‬

‫ﺇﻅﻬﺎﺭ‪/‬ﺇﺧﻔﺎء‬ ‫‪Toolbar Item‬‬


‫ﺍﻟﺨﺼﺎﺋﺺ‬ ‫‪4‬‬
‫‪Visible‬‬ ‫‪Toolbar‬‬

‫ﺗﺤﺪﺩ ﻣﺴﺎﻓﺔ ﻓﺎﺭﻏﺔ ﻋﻠﻰ‬ ‫‪Toolbar Item‬‬


‫ﺷﺮﻳﻂ ﺍﻷﺩﻭﺍﺕ ﺗﺴﺒﻖ‬ ‫‪Space‬‬
‫ﺍﻟﻌﻨﺼﺮ ﺍﻟﻤﺤﺪﺩ‪.‬‬

‫ﺗﺤﺪﺩ ﺭﻗﻢ ﺗﺴﻠﺴﻠﻲ‬ ‫‪Toolbar Item‬‬


‫ﻟﺘﺮﺗﻴﺐ ﺍﻟﻌﻨﺎﺻﺮ ﻓﻲ‬ ‫‪Order‬‬
‫ﺷﺮﻳﻂ ﺍﻷﺩﻭﺍﺕ‬

‫‪26‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫‪ Structure‬ﺍﻟﻬﻴﻜﻞ‬ ‫‪.3‬‬
‫ﺍﻟﻬﻴﻜﻞ ﻣﻦ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟـ ‪ PB‬ﻭﺗﺴﺘﻄﻴﻊ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﺑﻜﺜﺮﺓ ﻟﻨﻘﻞ ﻭﺗﻤﺮﻳﺮ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺍﺳﺘﻘﺒﺎﻟﻬﺎ‬
‫ﻓﻲ ﻣﻜﺎﻥ ﺁﺧﺮ ﺩﻓﻌﺔ ﻭﺍﺣﺪﺓ‪ ،‬ﻭﻟﺒﻨﺎء ﻫﻴﻜﻞ ﺟﺪﻳﺪ ﺍﺗﺒﻊ ﺍﻟﺘﻌﻠﻴﻤﺎﺕ ﺃﺩﻧﺎﻩ‪:‬‬
‫(‪.‬‬ ‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.PB Object‬‬ ‫‪.2‬‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺷﻜﻞ ﺭﻗﻢ )‪.(3-13‬‬ ‫‪.3‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﻛﺎﺋﻦ ‪ Structure‬ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ‪.‬‬ ‫‪.4‬‬
‫ﺳﻴﻈﻬﺮ ﻛﺎﺋﻦ ‪ Structure‬ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-14‬‬ ‫‪.5‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-13‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-14‬‬


‫ﺑﺈﻣﻜﺎﻧﻚ ﺃﻥ ﺗﻘﻮﻡ ﺑﺈﺿﺎﻓﺔ ﻋﺪﺓ ﺃﺳﻄﺮ ﻭﺗﺴﻤﻲ ﻣﺘﻐﻴﺮﺍﺕ ﻭﺃﻧﻮﺍﻉ ﺑﻴﺎﻧﺎﺕ ﻣﺨﺘﻠﻔﺔ ﺣﺴﺐ ﻣﺎ ﺗﻘﺘﻀﻴﻪ ﺍﻟﺤﺎﺟﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ‬
‫)‪ ،(3-14‬ﻭﺳﻨﺘﻌﺮﻑ ﻋﻠﻰ ﻛﻴﻔﻴﺔ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻬﻴﻜﻞ ﺩﺍﺧﻞ ﺍﻟﻜﻮﺩ ﻭﻛﻴﻒ ﻧﺮﺳﻠﻪ ﻭﻛﻴﻒ ﻧﺴﺘﻘﺒﻠﻪ ﻋﻦ ﻁﺮﻳﻖ ﺍﻟﻜﺎﺋﻦ ‪Message‬‬
‫ﻓﻲ ﺍﻟﻔﺼﻞ ﺍﻟﺨﺎﻣﺲ‪.‬‬
‫‪27‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫‪ Function‬ﺍﻟﺪﺍﻟﺔ‬ ‫‪.4‬‬
‫ﻛﺎﺋﻦ ﺍﻟﺪﺍﻟﺔ ﻳﺴﺘﺨﺪﻡ ﺑﺎﺳﺘﻤﺮﺍﺭ ﻓﻲ ﺃﻱ ﻟﻐﺔ ﺑﺮﻣﺠﺔ ﻟﻤﺎ ﻟﻪ ﻣﻦ ﻓﻮﺍﺋﺪ ﻛﺜﻴﺮﺓ ﻓﻲ ﺗﻨﻈﻴﻢ ﺍﻟﻌﻤﻞ ﻭﺟﻌﻠﻪ ﻣﺮﻛﺰﻳﺎً‪ ،‬ﻭﻟﺘﻮﺿﻴﺢ ﺫﻟﻚ ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺭﻗﻢ‬
‫)‪ (3-15‬ﺍﻟﺬﻱ ﻳﻮﺿﺢ ﺍﻟﻔﺮﻕ ﺑﻴﻦ ﺗﻜﺮﺍﺭ ﻣﺤﺘﻮﻯ ﺍﻟﺪﺍﻟﺔ ﻓﻲ ﺃﺟﺰﺍء ﻣﺨﺘﻠﻔﺔ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻭﺑﻴﻦ ﺍﺳﺘﺪﻋﺎء ﺍﻟﺪﺍﻟﺔ ﻭﻣﺤﺘﻮﻳﺎﺗﻬﺎ ﻟﻜﻲ ﺗﻨﻔﺬ ﺍﻟﻌﻤﻞ‬
‫ﺍﻟﻤﻄﻠﻮﺏ ﻣﻨﻬﺎ ﺑﺸﻜﻞ ﻣﺮﻛﺰﻱ‪.‬‬

‫ﺍﻟﻄﺮﻳﻘﺔ ﺍﻷﻣﺜﻞ ﻟﺘﺠﻤﻴﻊ ﺍﻟﻜﻮﺩ ﻓﻲ ﺩﺍﻟﺔ ﻭﺍﺳﺘﺪﻋﺎﺋﻬﺎ ﻋﻨﺪ ﺍﻟﺤﺎﺟﺔ‬ ‫ﺍﻟﻄﺮﻳﻘﺔ ﺍﻟﺘﻘﻠﻴﺪﻳﺔ ﻧﺸﺮ ﺍﻟﻜﻮﺩ‬
‫ﺍﻹﻳﺠﺎﺑﻴﺎﺕ‪:‬‬ ‫ﺍﻟﺴﻠﺒﻴﺎﺕ‪:‬‬
‫‪ .1‬ﻛﺘﺎﺑﺔ ﺍﻟﻜﻮﺩ ﻣﺮﺓ ﻭﺍﺣﺪﺓ ﻓﻘﻂ ﻭﺣﻔﻈﻪ ﺩﺍﺧﻞ ﺩﺍﻟﺔ‪.‬‬ ‫‪ .1‬ﺍﺳﺘﻬﻼﻙ ﻭﻗﺖ ﻛﺒﻴﺮ ﻓﻲ ﻧﺴﺦ ﻭ ﻟﺼﻖ ﺍﻟﻜﻮﺩ ﻓﻲ‬
‫‪ .2‬ﺳﺮﻋﺔ ﺍﺳﺘﺪﻋﺎء ﺍﻟﺪﺍﻟﺔ ﺑﺄﻣﺎﻥ ﺩﻭﻥ ﺍﺭﺗﻜﺎﺏ ﺃﺧﻄﺎء ﻓﻲ‬ ‫ﺃﺭﺟﺎء ﺍﻟﺒﺮﻧﺎﻣﺞ ﻭﺍﺣﺘﻤﺎﻟﻴﺔ ﺍﺭﺗﻜﺎﺏ ﺃﺧﻄﺎء ﻛﺜﻴﺮﺓ‬
‫ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺃﺭﺟﺎء ﺍﻟﺒﺮﻧﺎﻣﺞ ﻭﺣﺘﻰ ﻟﻮ ﻛﺎﻥ ﺿﺨﻤﺎ ً‪.‬‬ ‫ﻭﺧﺎﺻﺔ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺿﺨﻤﺎ ً‪.‬‬
‫‪ .3‬ﺳﻬﻮﻟﺔ ﺗﺘﺒﻊ ﺍﻟﺪﺍﻟﺔ ﺑﻤﺠﺮﺩ ﺍﻟﻨﻈﺮ ﻟﻤﻌﺮﻓﺔ ﺳﺒﺐ ﺍﺳﺘﺪﻋﺎﺋﻬﺎ‬ ‫‪ .2‬ﺻﻌﻮﺑﺔ ﻣﻌﺮﻓﺔ ﻋﻤﻞ ﻫﺬﺍ ﺍﻟﻜﻮﺩ ﻭﻣﺎ ﺍﻟﻬﺪﻑ ﺍﻟﺬﻱ ﺗﻢ‬
‫ﻓﻲ ﺃﻱ ﺟﺰء ﻣﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫ﺇﻧﺸﺎﺋﻪ ﻟﻪ‪.‬‬
‫‪ .4‬ﺳﻬﻮﻟﺔ ﺍﻟﺘﻌﺪﻳﻞ ﻋﻠﻰ ﺍﻟﻜﻮﺩ ﻟﻜﻮﻧﻪ ﻣﺮﻛﺰﻳﺎ ً ﻓﻲ ﺍﻟﺪﺍﻟﺔ‪،‬‬ ‫‪ .3‬ﺻﻌﻮﺑﺔ ﺍﻟﺘﻌﺪﻳﻞ ﻋﻠﻰ ﺍﻟﻜﻮﺩ ﺃﻭ ﺣﺬﻓﻪ ﻟﺘﻨﺎﺛﺮﻩ ﻓﻲ‬
‫ﻭﺳﻴﺆﺛﺮ ﻋﻠﻰ ﺟﻤﻴﻊ ﺇﺳﺘﺪﻋﺎءﺍﺕ ﺍﻟﺪﺍﻟﺔ ﻓﻲ ﺃﻧﺤﺎء ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﺃﻣﺎﻛﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬

‫‪28‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫‪ Custom Class‬ﻛﺎﺋﻨﺎﺕ ﻣﺨﺼﺼﺔ‬ ‫‪.5‬‬


‫ﻭﻫﺬﺍ ﺍﻟﻜﺎﺋﻦ ﻳﺘﻴﺢ ﻟﻚ ﺇﻧﺸﺎء ﻛﺎﺋﻦ ﻣﺮﺋﻲ ﺃﻭ ﻏﻴﺮ ﻣﺮﺋﻲ ﻣﺨﺼﺺ ﻳﺆﺩﻱ ﻭﻅﻴﻔﺔ ﻣﻌﻴﻨﺔ ﺑﺤﻴﺚ ﻳﺼﺒﺢ ﻣﻮﺟﻮﺩﺍً ﻭﺗﺴﺘﻄﻴﻊ‬
‫ﺍﺳﺘﺨﺪﺍﻣﻪ ﻣﺘﻰ ﺷﺌﺖ ﺑﺤﻴﺚ ﻳﺤﺘﻮﻱ ﻋﻠﻰ ﺃﺣﺪﺍﺙ‪ events‬ﻭﺩﻭﺍﻝ ‪ ،Functions‬ﻭﻹﻧﺸﺎﺋﻪ ﺍﺗﺒﻊ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪ .1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ (‪.‬‬
‫‪ .2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.PB Object‬‬
‫‪ .3‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺷﻜﻞ ﺭﻗﻢ )‪.(3-14‬‬
‫‪ .4‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﻛﺎﺋﻦ ‪ Custom Class‬ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ‪.‬‬
‫‪ .5‬ﺳﻴﻈﻬﺮ ﻛﺎﺋﻦ ‪ Custom Class‬ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-15‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-14‬‬

‫‪29‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻳﻤﻜﻨﻚ ﺑﻨﺎء ﻫﺬﺍ ﺍﻟﻜﺎﺋﻦ ﺍﻟﻤﺨﺼﺺ ﺍﻟﻐﻴﺮ ﻣﺮﺋﻲ ﻭﺇﺿﺎﻓﺔ ﻛﻮﺩ ﻋﻠﻰ‬
‫ﺍﻷﺣﺪﺍﺙ ‪ events‬ﺃﻭ ﻋﻠﻰ ﺍﻟﺪﻭﺍﻝ ﺃﻭ ﺇﺿﺎﻓﺔ ﺩﻭﺍﻝ ﺟﺪﻳﺪﺓ‪.‬‬

‫‪Custom Class‬‬
‫‪3‬‬
‫ﻛﺎﺋﻦ ﻣﺨﺼﺺ ﻏﻴﺮ ﻣﺮﺋﻲ‬

‫ﻳﻤﻜﻨﻚ ﺑﻨﺎء ﻛﺎﺋﻦ ﻣﺨﺼﺺ ﻳﺄﺧﺬ ﺻﻔﺎﺗﻪ ﻣﻦ ﻛﺎﺋﻨﺎﺕ ﻗﻴﺎﺳﻴﺔ ﻣﻮﺟﻮﺩﺓ‬


‫ﺃﺻﻼً ﻓﻲ ﻟﻐﺔ ‪.PB‬‬

‫‪Standard Class‬‬
‫ﻛﺎﺋﻦ ﻗﻴﺎﺳﻲ ﻣﺨﺼﺺ ﻏﻴﺮ‬ ‫‪4‬‬
‫ﻣﺮﺋﻲ‬
‫ﺗﻘﻮﻡ ﺑﺎﺧﺘﻴﺎﺭ ﺃﻱ ﻛﺎﺋﻦ ﻗﻴﺎﺳﻲ ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ ﺛﻢ ﺗﻜﻤﻞ ﺑﺎﻗﻲ ﺍﻹﺟﺮﺍءﺍﺕ‬
‫ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪.‬‬

‫‪30‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻫﺬﻩ ﺍﻹﻣﻜﺎﻧﻴﺔ ﻗﻮﻳﺔ ﺟﺪﺍً ﺑﺤﻴﺚ ﺗﺴﺘﻄﻴﻊ ﺇﻧﺸﺎء ﻛﺎﺋﻦ ﻣﺨﺼﺺ ﻭﻣﺮﺋﻲ‬
‫ﺑﻨﻔﺲ ﺍﻟﻮﻗﺖ‪.‬‬

‫‪Custom Visual‬‬
‫‪5‬‬
‫ﻛﺎﺋﻦ ﻣﺮﺋﻲ ﻣﺨﺼﺺ‬
‫ﻭﻳﻤﻜﻨﻚ ﺇﺿﺎﻓﺔ ﺷﻲء ﻣﻦ ﺍﻷﺩﻭﺍﺕ ﻣﺜﻞ )ﺍﻷﺯﺭﺍﺭ‪ ،‬ﺍﻟﻘﻮﺍﺋﻢ ﺍﻟﻤﻨﺴﺪﻟﺔ‪(..،‬‬

‫‪ *.DLL‬ﻭﺗﺴﻤﻴﺔ‬ ‫ﻭﻫﺬﺍ ﺍﻟﻜﺎﺋﻦ ﺗﺴﺘﻄﻴﻊ ﺇﻧﺸﺎﺋﻪ ﻣﻦ ﺍﺳﺘﺪﻋﺎء ﻣﻠﻒ‬


‫ﻛﺎﺋﻦ ﻣﻮﺟﻮﺩ ﻓﻴﻪ ‪ Class‬ﻟﻜﻲ ﻳﻘﻮﻡ ﺑﻨﻔﺲ ﻋﻤﻠﻪ‪.‬‬

‫‪External Visual‬‬
‫‪6‬‬
‫ﻛﺎﺋﻦ ﻣﺮﺋﻲ ﺧﺎﺭﺟﻲ‬

‫‪31‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻳﻤﻜﻨﻚ ﺑﻨﺎء ﻛﺎﺋﻦ ﻣﺨﺼﺺ ﻣﺮﺋﻲ ﻳﺄﺧﺬ ﺻﻔﺎﺗﻪ ﻣﻦ ﻛﺎﺋﻨﺎﺕ ﻗﻴﺎﺳﻴﺔ‬


‫ﻣﻮﺟﻮﺩﺓ ﺃﺻﻼً ﻓﻲ ﻟﻐﺔ ‪.PB‬‬

‫ﺗﻘﻮﻡ ﺑﺎﺧﺘﻴﺎﺭ ﺃﻱ ﻛﺎﺋﻦ ﻗﻴﺎﺳﻲ ﻣﻦ ﺍﻟﻘﺎﺋﻤﺔ ﺛﻢ ﺗﻜﻤﻞ ﺑﺎﻗﻲ ﺍﻹﺟﺮﺍءﺍﺕ‬


‫‪Standard Visual‬‬
‫ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪ ،‬ﻭﻋﻠﻰ ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ﻧﻘﻮﻡ ﺑﺎﺧﺘﻴﺎﺭ‬ ‫‪7‬‬
‫ﻛﺎﺋﻦ ﻣﺮﺋﻲ ﻗﻴﺎﺳﻲ‬
‫‪ CommandButton‬ﻻﺣﻆ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪ ،‬ﺳﺘﻼﺣﻆ ﺑﺄﻧﻚ ﻻ ﺗﺴﺘﻄﻴﻊ‬
‫ﺇﺿﺎﻓﺔ ﺃﻱ ﺃﺩﺍﺓ ﺃﺧﺮﻯ ﻋﻠﻰ ﺍﻟﺸﻜﻞ ﺍﻟﺤﺎﻟﻲ ﻓﻘﻂ ﺳﻴﺄﺧﺬ ﺍﻟﺼﻔﺎﺕ‬
‫ﺍﻷﺳﺎﺳﻴﺔ ﻟﻸﺩﺍﺓ ﺍﻟﻘﻴﺎﺳﻴﺔ ﺍﻟﺘﻲ ﺍﺧﺘﺮﺗﻬﺎ‪.‬‬

‫ﻛﻴﻒ ﺗﺴﺘﺪﻋﻲ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺨﺼﺼﺔ ﻻﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ؟‬


‫ﻫﻨﺎﻙ ﻁﺮﻳﻘﺘﺎﻥ ﻟﻼﺳﺘﺪﻋﺎء ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺨﺼﺼﺔ‪:‬‬
‫‪ .1‬ﺍﺳﺘﺪﻋﺎء ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻐﻴﺮ ﻣﺮﺋﻴﺔ ﻭﺗﻔﻌﻴﻠﻬﺎ ﻣﻦ ﺍﻟﻜﻮﺩ‪.‬‬
‫‪ .2‬ﺍﺳﺘﺪﻋﺎء ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺨﺼﺼﺔ ﺍﻟﻤﺮﺋﻴﺔ ﻭﺗﻔﻌﻴﻠﻬﺎ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺍﺗﺒﻊ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫• ﺍﻓﺘﺢ ﺃﻭ ﻗﻢ ﺑﺈﻧﺸﺎء ﺷﺎﺷﺔ ﺟﺪﻳﺪﺓ‪.‬‬
‫• ﺛﻢ ﺍﺫﻫﺐ ﺇﻟﻰ ﻗﺎﺋﻤﺔ ﺍﻷﺩﻭﺍﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪ (3-15‬ﻭﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪Create‬‬
‫‪.User Object Control‬‬
‫• ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪ (3-16‬ﻭﻓﻴﻬﺎ ﺟﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﻤﺨﺼﺼﺔ ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺃﺣﺪﻫﺎ ﺣﺴﺐ ﺣﺎﺟﺘﻚ‬
‫• ﻗﻢ ﺑﺈﺩﺭﺍﺟﻪ ﺑﺎﻟﻨﻘﺮ ﺑﺰﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻳﺴﺮ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ ﺳﻴﻈﻬﺮ ﺍﻟﻜﺎﺋﻦ ﺍﻟﻤﺨﺼﺺ ﻋﻠﻰ ﺍﻟﺸﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ‬
‫)‪.(3-17‬‬

‫‪32‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-15‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-16‬‬


‫‪33‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-17‬‬

‫ﺛﺎﻟﺜﺎ ً( ‪ DataWindow Object‬ﻛﺎﺋﻦ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‪:‬‬


‫ﺳﺮ ﻗﻮﺓ‬‫ﺳﺄﻗﻮﻡ ﺑﻌﺮﺽ ﻭﺍﻓﻲ ﻟﺠﻤﻴﻊ ﻛﺎﺋﻨﺎﺕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻫﻲ ﺗﺴﻤﻰ ‪ DataWindow‬ﺃﻭ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻳﻌﺘﺒﺮ ﻫﺬﺍ ﺍﻟﻜﺎﺋﻦ ّ‬
‫ﻟﻐﺔ ﺍﻟـ ‪ PB‬ﺑﻤﺎ ﺗﻌﻨﻴﻪ ﻫﺬﻩ ﺍﻟﻜﻠﻤﺔ ﻣﻦ ﻣﻌﻨﻰ ﻭﺃﺳﺎﺱ ﺍﺣﺘﺮﺍﻓﻚ ﻟﻬﺬﻩ ﺍﻟﻠﻐﺔ ﻫﻮ ﺇﺗﻘﺎﻥ ﻓﻬﻢ ﻭﺍﺳﺘﺨﺪﺍﻡ ﻭﺗﻄﺒﻴﻖ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ‬
‫ﻭﺩﻣﺠﻬﺎ ﻣﻊ ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫ﻓﻬﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺳﻬﻠﺔ ﺍﻻﺳﺘﺨﺪﺍﻡ ﻭﻏﻨﻴﺔ ﺑﺎﻷﺩﻭﺍﺕ ﺍﻟﺘﻲ ﺗﻌﻄﻴﻚ ﻣﺴﺎﺣﺔ ﺗﺤﻜﻢ ﺃﻛﺒﺮ ﺑﻄﺮﻳﻘﺔ ﺑﻨﺎء ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻋﺮﺿﻬﺎ ﻭﺣﺘﻰ‬
‫ﻁﺒﺎﻋﺘﻬﺎ ﻭﺇﺩﺧﺎﻟﻬﺎ‪ ،‬ﻟﻮ ﺭﺟﻌﻨﺎ ﻓﻲ ﺍﻟﻤﺎﺿﻲ ﺍﻟﻘﺮﻳﺐ ﻛﺎﻧﺖ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻜﺒﻴﺮﺓ ﻣﻮﺟﻮﺩﺓ ﻋﻠﻰ ﺃﺟﻬﺰﺓ ﺭﺋﻴﺴﻴﺔ ‪ Frame‬ﺃﻭ‬
‫‪ Sun‬ﻭﻛﺎﻥ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ ﻫﻮ ‪ Unix‬ﻭﻳﻘﺒﻞ ﻗﻮﺍﻋﺪ ﺑﻴﺎﻧﺎﺕ ﻣﺜﻞ ﺍﻟـ ‪ Oracle‬ﻭﻟﻘﺪ ﻛﺎﻧﺖ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺨﺎﺻﺔ ﺑﺈﺩﺍﺭﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﺗﻌﺮﻑ ﺑﺎﺳﻢ ‪ (Structured Query Language ) SQL Statement‬ﻭﻗﺪ ﺗﻢ ﺗﺴﺠﻴﻠﻬﺎ ﻓﻲ ‪ ANSI‬ﻭ ‪ ISO‬ﻛﻠﻐﺔ‬
‫ﻗﻴﺎﺳﻴﺔ ﻭﻣﻨﻬﺠﻴﺔ‪.‬‬
‫ﻭﺗﻤﻜﻨﻚ ﻫﺬﻩ ﺍﻟﻠﻐﺔ ﻣﻦ ﻋﻤﻞ ﺍﻹﺟﺮﺍءﺍﺕ ﺍﻻﻋﺘﻴﺎﺩﻳﺔ ﻋﻠﻰ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ )ﺇﺿﺎﻓﺔ ﺑﻴﺎﻧﺎﺕ‪ ،‬ﺣﺬﻑ ﺑﻴﺎﻧﺎﺕ‪ ،‬ﺣﻔﻆ‬
‫‪SQL‬‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﺍﻻﺳﺘﻌﻼﻡ‪ ،‬ﻭﺇﻧﺸﺎء ﺣﺬﻑ ﺗﻌﺪﻳﻞ ﺟﺪﻭﻝ‪ ،(... ،‬ﻓﺄﺳﺎﺱ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻳﻜﻮﻥ ﻋﻦ ﻁﺮﻳﻖ‬
‫‪ SQL‬ﻫﻲ ﺃﺳﺎﺱ‬ ‫‪ Statement‬ﻭﺇﻟﻰ ﻳﻮﻣﻨﺎ ﻫﺬﺍ ﻣﻊ ﺍﻟﺘﻄﻮﺭ ﺍﻟﻬﺎﺋﻞ ﻓﻲ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ ﺍﻟﻤﻌﺎﺻﺮﺓ ﻭﺇﻣﻜﺎﻧﻴﺎﺗﻬﺎ ﺇﻻ ﺇﻥ‬
‫‪ SQL Statement‬ﺑﺸﻜﻞ‬ ‫ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻟﻜﻦ ﺑﺸﻜﻞ ﻳﺤﻤﻞ ﺻﺒﻐﺔ ﺍﻟﺘﻄﻮﺭ ﺃﻱ ﺃﻧﻚ ﺗﺴﺘﻄﻴﻊ ﺑﻨﺎء ﺟﻤﻠﺔ‬
‫ﻣﺮﺋﻲ ﺩﻭﻥ ﺍﻟﺤﺎﺟﺔ ﺇﻟﻰ ﻛﺘﺎﺑﺔ ﺷﻲ ﻳﺬﻛﺮ ﻭﻫﺬﺍ ﻳﺴﻤﻰ ‪.SQL Editor‬‬
‫ﻓﺘﻌﺘﺒﺮ ‪ Data Window Object‬ﻋﺒﺎﺭﺓ ﻋﻦ ﺟﻤﻠﺔ ‪ Select SQL Statement‬ﻭﻟﻜﻦ ﻣﺮﺋﻴﺔ‪ ،‬ﻭﻳﺴﺎﻭﻳﻬﺎ ﺟﻤﻠﺔ‬
‫‪ SQL‬ﺗﺴﺘﻄﻴﻊ ﺍﺳﺘﻌﺮﺍﺿﻬﺎ‪.‬‬
‫‪34‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫(‪.‬‬ ‫‪ .1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ‬


‫‪ .2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Data Window‬‬
‫‪ .3‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ ) ‪ (3-18‬ﻻﺣﻆ ﺃﻥ ﺃﻫﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺼﻨﺪﻭﻕ ﺍﻷﺣﻤﺮ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ‬
‫ﺑﺸﻜﻞ ﻛﺒﻴﺮ ﻭﻣﺘﻜﺮﺭ‪ ،‬ﻭﺳﻨﺒﺪﺃ ﺑﺸﺮﺡ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺑﺸﻜﻞ ﻣﻔﺼﻞ‪:‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-18‬‬


‫‪ .4‬ﻹﻧﺸﺎء ﺃﻱ ﺷﺎﺷﺔ ﺑﻴﺎﻧﺎﺕ ‪ Data window‬ﻣﻦ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ ﻫﻨﺎﻙ ﺧﻄﻮﺍﺕ ﻣﺸﺘﺮﻛﺔ ﻳﺠﺐ ﺍﻟﻤﺮﻭﺭ ﺑﻬﺎ ﻋﻨﺪ‬
‫ﺍﺧﺘﻴﺎﺭ ﺃﻱ ﻧﻮﻉ ﻣﻦ ﺃﻧﻮﺍﻉ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ )‪ (3-18‬ﻭﺳﺄﺷﺮﺣﻬﺎ ﺍﻵﻥ ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺃﻱ ﻣﻦ ﺷﺎﺷﺎﺕ‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ )‪ (3-18‬ﺳﺘﻈﻬﺮ ﻟﻚ ﺍﻟﺸﺎﺷﺔ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬

‫‪35‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﺘﻼﺣﻆ ﺃﻧﻪ ﻫﻨﺎﻙ ﺃﻛﺜﺮ ﻣﻦ ﻁﺮﻳﻘﺔ ﻻﺧﺘﻴﺎﺭ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻣﻦ ﺍﻟﺠﺪﺍﻭﻝ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺃﻱ‬
‫ﻭﻓﻲ ﻣﺎ ﻳﻠﻲ ﺗﻔﺼﻴﻞ ﻭﻭﻅﻴﻔﺔ ﻛﻞ ﻁﺮﻳﻘﺔ‬ ‫ﻁﺮﻳﻘﻪ ﻣﻦ ﺍﻟﻄﺮﻕ ﺛﻢ ﺍﺿﻐﻂ ﺯﺭ ‪NEXT‬‬

‫ﺷﺎﺷﺔ ﻓﺮﻋﻴﺔ ﻓﻴﻬﺎ‬ ‫ﺳﺘﻈﻬﺮ ﻟﻚ‬


‫ﺍﻟﺠﺪﺍﻭﻝ ﺍﻟﻤﻮﺟﻮﺩﺓ‬ ‫ﺃﺳﻤﺎء ﺟﻤﻴﻊ‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﺘﺼﻠﺔ‬ ‫ﻓﻲ ﻗﺎﻋﺪﺓ‬
‫ﺑﺎﺧﺘﻴﺎﺭ ﺟﺪﻭﻝ ﺃﻭ‬ ‫ﺣﺎﻟﻴﺎً‪ ،‬ﻗﻢ‬
‫ﺳﺒﻴﻞ ﺍﻟﻤﺜﺎﻝ ﻗﻢ‬ ‫ﺃﻛﺜﺮ ﻭﻋﻠﻰ‬
‫‪t_man_job‬‬ ‫ﺑﺎﺧﺘﻴﺎﺭ ﺟﺪﻭﻝ‬

‫ﺷﺎﺷﺔ‬ ‫ﺳﺘﻈﻬﺮ ﻟﻚ‬


‫ﻋﻠﻰ‬ ‫ﺍﻟﺘﺎﻟﻴﺔ ﻭﺗﺤﺘﻮﻱ‬
‫ﺍﻟﺠﺪﻭﻝ‬ ‫ﻣﺤﺘﻮﻳﺎﺕ‬
‫ﻓﻲ ﺍﻟﺨﻄﻮﺓ‬ ‫ﺍﻟﺬﻱ ﺗﻢ ﺍﺧﺘﻴﺎﺭﻩ‬
‫ﺑﺈﺧﺘﻴﺎﺭ‬ ‫ﺍﻟﺴﺎﺑﻘﺔ ﻗﻢ‬
‫ﺛﻢ ﻗﻢ‬ ‫ﺍﻟﺤﻘﻮﻝ ﺍﻟﻤﻄﻠﻮﺑﺔ‬ ‫‪1‬‬
‫ﺷﺮﻳﻂ‬ ‫ﺑﺈﺧﺘﻴﺎﺭ ﻣﻦ‬
‫‪Return‬‬ ‫ﺍﻷﺩﻭﺍﺕ‬
‫ﺑﺈﺭﺟﺎﻉ‬ ‫ﻓﻴﻘﻮﻡ‬
‫ﺷﺎﺷﺔ‬ ‫ﺍﻟﺤﻘﻮﻝ ﺇﻟﻰ‬
‫ﺗﺼﻤﻴﻤﻬﺎ‬ ‫ﺍﻟﺘﺼﻤﻴﻢ ﻹﻧﻬﺎء‬

‫ﺳﺘﻼﺣﻆ ﺃﻥ ﻫﺬﻩ ﺍﻟﻄﺮﻳﻘﺔ ﻋﺒﺎﺭﺓ ﻋﻦ ‪ SQL Select Statement‬ﻣﺮﺋﻴﺔ ﻭﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺓ‬


‫ﺍﻹﻣﻜﺎﻧﻴﺎﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ‪:‬‬
‫• ‪ Syntax‬ﻣﺸﺎﻫﺪﺓ ﺻﻴﻐﺔ ‪.SQL Statement‬‬
‫• ‪ Sort‬ﺗﺮﺗﻴﺐ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫• ‪ Where‬ﺇﺿﺎﻓﺔ ﺷﺮﻭﻁ ﻣﺤﺪﺩﺓ ﻹﻅﻬﺎﺭ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺸﺮﻭﻁ ﻣﺤﺪﺩﺓ‪.‬‬
‫• ‪ Group‬ﺗﺠﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫• ‪ Having‬ﻟﺘﺮﺗﻴﺐ ﺍﻟﻤﺠﻤﻮﻋﺎﺕ‪.‬‬
‫• ‪ Compute‬ﻋﻤﻞ ﻋﻤﻠﻴﺎﺕ ﻣﺤﺎﺳﺒﻴﺔ‪.‬‬

‫‪36‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﺧﺘﻴﺎﺭ ﺳﺮﻳﻊ ﻟﻠﺠﺪﻭﻝ ﺃﻭ ﺍﻟﺠﺪﺍﻭﻝ ﺍﻟﻤﻄﻠﻮﺑﺔ ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪:‬‬

‫‪2‬‬

‫ﻗﻢ ﺑﺈﺧﺘﻴﺎﺭ ﺍﻟﺠﺪﻭﻝ ‪ t_man_job‬ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﻟﻲ‬

‫‪37‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﺨﺪﺍﻡ ‪ Query‬ﻣﺨﺰﻧﺔ ﺃﺻﻼ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺃﻭ ﻛﺘﺎﺑﺘﻬﺎ ﻳﺪﻭﻳﺎ ً ﻟﺘﺤﻮﻳﻠﻬﺎ ﻟﺸﺎﺷﺔ‬


‫ﺑﻴﺎﻧﺎﺕ ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪:‬‬

‫‪3‬‬

‫ﻭﻫﻲ ﻣﻴﺰﺓ ﻗﻮﻳﺔ ﺟﺪﺍً ﻓﻲ ﻟﻐﺔ ﺍﻟـ ‪ PB‬ﺗﺴﺘﻄﻴﻊ ﻣﻦ ﺧﻼﻟﻬﺎ ﺃﻥ ﺗﺒﻨﻲ ﺷﺎﺷﺔ ﺑﻴﺎﻧﺎﺕ ﺧﺎﺭﺟﻴﺔ ﺃﻱ‬
‫ﻟﻴﺴﺖ ﻣﺮﺗﺒﻄﺔ ﺑﺄﻱ ﺟﺪﻭﻝ ﻧﻬﺎﺋﻴﺎ ً ﺇﻧﻤﺎ ﻫﻲ ﺣﻘﻮﻝ ﻭﻫﻤﻴﺔ ﻻ ﺗﺼﻠﺢ ﻟﺘﺨﺰﻳﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻳﻤﻜﻨﻚ ﻓﻘﻂ‬
‫ﺃﻥ ﺗﻜﺘﺐ ﻓﻴﻬﺎ ﻭﺗﻌﺮﺽ ﺑﻴﺎﻧﺎﺗﻚ ﻓﻴﻬﺎ ﻭﻫﻲ ﺗﺴﺘﺨﺪﻡ ﺃﻛﺜﺮ ﺷﻲء ﻓﻲ ﺷﺎﺷﺎﺕ ﺷﺮﻭﻁ ﺍﻟﺒﺤﺚ‪،‬‬
‫ﻭﻣﻴﺰﺗﻬﺎ ﺃﻥ ﻫﺬﻩ ﺍﻟﺤﻘﻮﻝ ﻳﺘﻢ ﺍﻟﺘﻄﺒﻴﻖ ﻋﻠﻴﻬﺎ ﺧﺼﺎﺋﺺ ﻭﺩﻭﺍﻝ ﻭﺇﺟﺮﺍءﺍﺕ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‪:‬‬

‫‪4‬‬

‫ﺑﺈﻣﻜﺎﻧﻚ ﺗﻐﺬﻳﺔ ﺍﻟﺤﻘﻮﻝ ﺍﻟﺘﻲ ﺗﺮﻳﺪﻫﺎ ﺑﺎﻷﻧﻮﺍﻉ ﺍﻟﻤﻄﻠﻮﺑﺔ‪.‬‬

‫‪38‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻹﺟﺮﺍءﺍﺕ ﺍﻟﻤﺨﺰﻧﺔ‪ :‬ﻭﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻦ ﺇﺟﺮﺍءﺍﺕ ﻣﺨﺰﻧﺔ ﻣﺴﺒﻘﺎ ً ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺗﻘﻮﻡ ﺑﻌﻤﻞ‬
‫ﻣﺤﺪﺩ ﺗﻘﻮﻡ ﺑﻪ ﻋﻨﺪ ﺍﺳﺘﺪﻋﺎﺋﻬﺎ ﻭﺗﺨﺘﻠﻒ ﻫﺬﻩ ﺍﻹﺟﺮﺍءﺍﺕ ﻣﻦ ﻧﻮﻉ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﺇﻟﻰ ﺃﺧﺮﻯ‬
‫ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪.‬‬

‫‪5‬‬

‫‪39‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻭﻫﺬﻩ ﺍﻟﺸﺎﺷﺎﺕ ﺳﺘﻈﻬﺮ ﺑﻌﺪ ﺍﺧﺘﻴﺎﺭﻙ ﻷﺣﺪ ﻁﺮﻕ ﺍﺧﺘﻴﺎﺭ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺃﻋﻼﻩ‪:‬‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺗﻨﻈﻴﻤﻴﺔ ﺗﻘﻮﻡ ﻣﻦ ﺧﻼﻟﻬﺎ ﺑﺘﻨﺴﻴﻖ ﺍﻟﺤﻘﻮﻝ ﻭ ﻭﺻﻔﻬﺎ ﻭﻳﻤﻜﻨﻚ ﺑﺎﻻﺣﺘﻔﺎﻅ ﺑﻬﺬﺍ ﺍﻟﺘﻨﺴﻴﻖ ﺇﺫﺍ ﺃﺭﺩﺕ ﺫﻟﻚ‪:‬‬
‫‪ Background Color - 1‬ﻟﻮﻥ ﺧﻠﻔﻴﺔ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺈﻣﻜﺎﻧﻚ ﺍﺧﺘﻴﺎﺭ ﻟﻮﻥ ﻣﻌﻴﻦ ‪.‬‬
‫‪ Text - 2‬ﻭﻫﻮ ﻭﺻﻒ ﻟﻠﺤﻘﻮﻝ ﺑﺈﻣﻜﺎﻧﻚ ﺗﺤﺪﻳﺪ ﻟﻮﻥ ﻭﺷﻜﻞ ﻟﺤﺪﻭﺩ ﺍﻟﻮﺻﻒ‪.‬‬
‫‪ Columns - 3‬ﺍﻟﺤﻘﻮﻝ ﺃﻭ ﺍﻷﻋﻤﺪﺓ ﻭﻫﻲ ﺣﻘﻮﻝ ﺍﻟﺠﺪﻭﻝ ﻭﺑﺈﻣﻜﺎﻧﻚ ﺗﺤﺪﻳﺪ ﻟﻮﻥ ﻭﺷﻜﻞ ﻟﺤﺪﻭﺩ ﺍﻟﺤﻘﻮﻝ‪.‬‬
‫‪ - 4‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ ‪.Next‬‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﻣﻌﻠﻮﻣﺎﺕ ﺗﻔﺼﻴﻠﻴﺔ ﻋﻦ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﺳﻴﺘﻢ ﺇﻧﺸﺎﺋﻬﺎ ﻭﻫﻲ ﻟﻠﻘﺮﺍءﺓ ﻓﻘﻂ ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ‬
‫ﺯﺭ ‪.Finish‬‬

‫‪40‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻗﻢ ﺑﺎﻟﺮﺟﻮﻉ ﻟﻠﺸﻜﻞ ﺭﻗﻢ )‪ (3-18‬ﺃﻋﻼﻩ ﺳﻴﺘﻢ ﺷﺮﺡ ﺃﻧﻮﺍﻉ ﺷﺎﺷﺎﺕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺎﻟﺘﻔﺼﻴﻞ‪:‬‬
‫ﺍﺳﺘﺨﺪﻣﻬﺎ ﻓﻲ ﺷﺎﺷﺎﺕ ﺇﺩﺧﺎﻝ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺷﺎﺷﺎﺕ ﺷﺮﻭﻁ‬
‫‪Data window Free Form .1‬‬
‫ﺍﻟﺒﺤﺚ ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ )‪.(3-19‬‬
‫ﻻﺣﻆ ﺗﻨﺴﻴﻖ ﺣﻘﻮﻝ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺤﺮﺓ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪ ،‬ﻭﺣﺠﻢ ﺍﻟﺨﻂ ﻭﻧﻮﻋﻪ ﺍﻟﻘﻴﺎﺳﻲ ﺍﻟﺬﻱ ﺗﻮﺻﻲ ﺑﻪ ‪Sybase‬‬
‫ﺣﺠﻢ ﺍﻟﺨﻂ ) ‪ (8‬ﻭﻧﻮﻉ ﺍﻟﺨﻂ ‪ Ms Sans Serif‬ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺑﻌﺪ ﺍﻻﻧﺘﻬﺎء ﻣﻦ ﺍﻟﺘﻨﺴﻴﻖ ﺣﺎﻭﻝ ﺑﺄﻥ ﺗﺤﺮﺹ ﻋﻠﻰ ﻧﻔﺲ‬
‫ﺍﻟﺘﻨﺴﻴﻖ‪.‬‬

‫ﺍﻟﺸﻜﻞ )‪(3-19‬‬

‫ﺳﺘﻼﺣﻆ ﺃﻥ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺗﻘﺴﻢ ﺇﻟﻰ ﺃﺭﺑﻌﺔ ﺃﻗﺴﺎﻡ ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ ﻓﻲ ﺍﻟﺸﻜﻞ )‪ (3-19‬ﺃﻋﻼﻩ ﻭﻫﻲ ‪:‬‬

‫ﺗُﺴﺘﺨﺪﻡ ﻟﻮﺿﻊ ﺗﺮﻭﻳﺴﺔ ﺛﺎﺑﺘﺔ ﻟﻠﺼﻔﺤﺔ ﻻ ﺗﺘﻐﻴﺮ ﺑﺈﻣﻜﺎﻧﻚ ﻭﺿﻊ ﻣﺴﻤﻰ ﺃﻭ ﺍﻟﺘﺎﺭﻳﺦ ﻭﻣﺎ ﺷﺎﺑﻪ ﺫﻟﻚ‬ ‫‪Header‬‬ ‫‪1‬‬
‫ﻭﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﺘﻘﺎﺭﻳﺮ ﺑﺸﻜﻞ ﺧﺎﺹ‪.‬‬
‫ﺗﺴﺘﺨﺪﻡ ﻹﻅﻬﺎﺭ ﺣﻘﻮﻝ ﺍﻟﺠﺪﻭﻝ ﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﺤﻘﻮﻝ ﺑﻴﺎﻧﺎﺕ ﻓﻲ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬ ‫‪Detail‬‬ ‫‪2‬‬
‫ﺗﺴﺘﺨﺪﻡ ﻹﻅﻬﺎﺭ ﺑﻴﺎﻧﺎﺕ ﻣﺠﻤﻌﺔ ﺗﻜﻮﻥ ﻣﻘﺮﻭﻧﺔ ﺑﺂﺧﺮ ﺳﻄﺮ ﻓﻲ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﺜﺎﻝ( ﻣﺠﻤﻮﻉ ﺃﻭ ﻣﺘﻮﺳﻂ‬ ‫‪Summary 3‬‬
‫ﺣﺴﺎﺑﻲ ﻟﻌﻤﻮﺩ ﻣﻦ ﺍﻷﻋﻤﺪﺓ‪.‬‬
‫ﺗﺴﺘﺨﺪﻡ ﻟﻮﺿﻊ ﺗﺬﻳﻴﻞ ﺛﺎﺑﺖ ﻟﻠﺼﻔﺤﺔ ﻻ ﺗﺘﻐﻴﺮ ﺑﺈﻣﻜﺎﻧﻚ ﻭﺿﻊ ﻣﺴﻤﻰ ﺃﻭ ﺗﺎﺭﻳﺦ ﺃﻭ ﺍﺳﻢ ﺍﻟﻤﺪﻳﺮ ﺃﻭ‬ ‫‪Footer‬‬ ‫‪4‬‬
‫ﺍﻟﺘﻮﻗﻴﻊ ﺃﻭ ﻋﺪﺩ ﺍﻟﺼﻔﺤﺎﺕ ﻭﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﺘﻘﺎﺭﻳﺮ ﺑﺸﻜﻞ ﻛﺒﻴﺮ‪.‬‬

‫‪41‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﺴﺘﺨﺪﻡ ﻟﻌﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﺘﻘﺎﺭﻳﺮ ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ‬ ‫‪Data Window Tabular .2‬‬
‫ﺭﻗﻢ )‪.(3-20‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-20‬‬

‫ﺗﺴﺘﺨﺪﻡ ﺇﺫﺍ ﺃﺭﺩﺕ ﻁﺒﺎﻋﺔ ﺃﻭ ﻋﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﻠﺼﻘﺎﺕ‬ ‫‪Data Window Label .3‬‬
‫ﻭﻳﻤﻜﻨﻚ ﺗﺤﺪﻳﺪ ﺣﺠﻢ ﺍﻟﻤﻠﺼﻖ ﻭﺍﺗﺠﺎﻩ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬

‫ﻋﻨﺪ ﺍﺧﺘﻴﺎﺭﻙ ﻟﻨﻮﻉ ﻋﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪ Data Window Label‬ﻭﻁﺮﻳﻘﺔ ﺗﺤﺪﻳﺪ ﺍﻟﺠﺪﺍﻭﻝ ﺳﺘﻈﻬﺮ ﻟﻚ ﺷﺎﺷﺔ ﻛﻤﺎ ﻫﻮ ﺃﺩﻧﺎﻩ‪:‬‬

‫ﺃﺗﺒﻊ ﺍﻟﺸﺎﺷﺔ ﺃﺩﻧﺎﻩ‪:‬‬

‫‪42‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺃﺗﺒﻊ ﺍﻟﺸﺎﺷﺔ ﺃﺩﻧﺎﻩ‪:‬‬

‫ﺳﺘﻜﻮﻥ ﺍﻟﻨﺘﻴﺠﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﻟﻲ‪:‬‬

‫‪43‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫‪ Tabular‬ﻛﻤﺎ ﺳﺒﻖ ﺃﻥ‬ ‫ﻭﻫﻲ ﺗﺴﺘﺨﺪﻡ ﺗﻘﺮﻳﺒﺎ ﻛﻤﺎ ﻓﻲ ﺍﻟـ‬ ‫‪Grid .4‬‬
‫ﺫﻛﺮﻧﺎﻫﺎ ﻭﻫﻲ ﺃﻗﺮﺏ ﻟﻠـ ‪ Grid‬ﺍﻟﺘﻲ ﺗﺴﺘﺨﺪﻡ ﻓﻲ ‪.VB 6‬‬

‫ﻫﻨﺎﻙ ﺑﻌﺾ ﺍﻹﻣﻜﺎﻧﻴﺎﺕ ﻟﻠـ ‪ Grid‬ﻋﻨﺪ ﻭﺿﻊ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺃﻭ ﻣﺎ ﻳﻌﺮﻑ ‪: Run Mode‬‬
‫‪ - 1‬ﺑﺈﻣﻜﺎﻧﻚ ﺗﺒﺪﻳﻞ ﻣﻮﺍﻗﻊ ﺍﻷﻋﻤﺪﺓ‪.‬‬
‫‪ - 2‬ﺑﺈﻣﻜﺎﻧﻚ ﺃﻥ ﺗﺘﺤﻜﻢ ﺑﺤﺠﻢ ﺍﻟﻌﻤﻮﺩ‪.‬‬

‫ﺃﻋﻤﺪﺓ ﺍﻟﺼﺤﻴﻔﺔ ﻳﻤﻜﻨﻚ ﺃﻥ ﺗﻘﻮﻡ ﺑﻌﺮﺽ ﺑﻴﺎﻧﺎﺗﻚ ﻛﺄﻋﻤﺪﺓ‬ ‫‪News Paper Up Columns .5‬‬
‫ﺍﻟﺼﺤﻴﻔﺔ‪.‬‬

‫ﺗﻘﻮﻡ ﺑﺈﺩﺭﺍﺝ ﻋﺪﺩ ﺍﻷﻋﻤﺪﺓ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﺒﺪﻭﺍ ﻋﻠﻴﻪ ﺑﻴﺎﻧﺎﺗﻚ ﻭﺳﻴﻈﻬﺮ ﺷﻜﻞ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﺎﻟﺘﺎﻟﻲ‪:‬‬

‫ﺗﻼﺣﻆ ﺑﺄﻥ ﻫﻨﺎﻙ ﻣﺠﻤﻮﻋﺘﻴﻦ ‪ 1‬ﻭ‪ 2‬ﻭﺳﻴﺘﻢ ﻋﺮﺽ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻠﻰ ﺷﻜﻞ ﻋﻤﻮﺩﻳﻦ‪.‬‬

‫‪44‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻳﺘﻢ ﺟﻤﻊ ﻁﻮﻟﻲ ﻭﻋﺮﺿﻲ ﻟﻠﺒﻴﺎﻧﺎﺕ‬ ‫‪Crosstab .6‬‬

‫‪ 1‬ﺍﻟﺨﺎﺹ ﺑﺎﻟﺘﺼﻤﻴﻢ ﻭﻗﺴﻢ ‪ 2‬ﺍﻟﺨﺎﺹ ﺑﻤﻌﺎﻳﻨﺔ‬ ‫ﻻﺣﻆ ﺍﻟﻤﺮﺑﻌﺎﺕ ﺍﻟﻤﻠﻮﻧﺔ ﺑﺎﻷﺯﺭﻕ ﻭﺍﻷﺣﻤﺮ ﻭﺍﻷﺧﻀﺮ‪ ،‬ﻻﺣﻈﻬﺎ ﻓﻲ ﻗﺴﻢ‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬

‫ﻳﺘﻢ ﺗﺠﻤﻴﻊ ﺃﻛﺜﺮ ﻣﻦ ﺷﺎﺷﺔ ﺑﻴﺎﻧﺎﺕ ﻓﻲ ﺷﺎﺷﺔ ﺑﻴﺎﻧﺎﺕ ﺭﺋﻴﺴﻴﺔ‬ ‫‪Composite .7‬‬
‫ﻭﺗﻈﻬﺮ ﻛﻘﻄﺎﻋﺎﺕ ﻓﺮﻋﻴﺔ‪.‬‬

‫ﻗﻢ ﺑﺈﺧﺘﻴﺎﺭ ﺷﺎﺷﺎﺕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ‪.‬‬


‫‪45‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﺎ ﻳﻠﻲ‪:‬‬

‫ﺳﺘﺠﺪ ﺷﺎﺷﺎﺕ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﻔﺮﻋﻴﺔ ﺗﻈﻬﺮ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ ﺑﺮﻗﻢ ‪ 1‬ﻭﺭﻗﻢ ‪.2‬‬

‫ﺗﺠﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺣﺴﺐ ﻓﺌﺔ ﻣﻌﻴﻨﺔ‬ ‫‪Group .8‬‬

‫ﻗﻢ ﺑﺴﺤﺐ ﺣﻘﻞ ﺃﻭ ﺃﻛﺜﺮ ﻣﻦ ﻣﺮﺑﻊ ﺭﻗﻢ ‪ 1‬ﻭﺇﺩﺭﺍﺟﻪ ﻓﻲ ﻣﺮﺑﻊ ﺭﻗﻢ ‪ 2‬ﻟﻴﻜﻮﻥ ﺗﺠﻤﻴﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺣﺴﺐ ﺍﻟﺤﻘﻮﻝ ﺍﻟﻤﺪﺭﺟﺔ ﻓﻲ‬
‫ﺍﻟﻤﺮﺑﻊ ﺭﻗﻢ ‪.2‬‬

‫‪46‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻟﺘﺤﺪﻳﺪ ﻓﻴﻬﺎ ﺷﻜﻞ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‪:‬‬

‫ﺭﻗﻢ ‪ 1‬ﺗﺤﺪﻳﺪ ﻋﻨﻮﺍﻥ ﺍﻟﺼﻔﺤﺔ‬


‫ﺭﻗﻢ ‪ 2‬ﺻﻔﺤﺔ ﺟﺪﻳﺪﺓ ﻋﻨﺪ ﺑﺪﺍﻳﺔ ﻛﻞ ﻣﺠﻤﻮﻋﺔ ﺟﺪﻳﺪﺓ‪.‬‬
‫ﺭﻗﻢ ‪ 3‬ﺇﻋﺎﺩﺓ ﺗﺮﻗﻴﻢ ﺍﻟﺼﻔﺤﺔ ﻋﻨﺪ ﺑﺪﺍﻳﺔ ﻛﻞ ﻣﺠﻤﻮﻋﺔ‪.‬‬

‫ﻓﻲ ﻭﺿﻊ ﺍﻟﻤﻌﺎﻳﻨﺔ‬


‫ﻓﻲ ﻭﺿﻊ ﺍﻟﺘﺼﻤﻴﻢ‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ ﻭﻻﺣﻆ ﺗﻘﺴﻴﻢ ﺍﻟﺸﺎﺷﺔ‪:‬‬
‫ﺗﺮﻭﻳﺴﺔ ﺍﻟﺼﻔﺤﺔ‬ ‫‪Header‬‬ ‫‪1‬‬
‫ﺗﺮﻭﻳﺴﺔ ﺍﻟﻤﺠﻤﻮﻋﺔ‬ ‫‪Header Group‬‬ ‫‪2‬‬
‫ﺗﻔﺎﺻﻴﻞ ﺍﻟﻤﺠﻤﻮﻋﺔ‬ ‫‪Detail‬‬ ‫‪3‬‬
‫ﺍﻟﻤﺠﻤﻮﻉ ﺍﻟﻔﺮﻋﻲ ﻟﻠﻤﺠﻤﻮﻋﺔ‬ ‫‪Trailer Group‬‬ ‫‪4‬‬
‫ﻣﻠﺨﺺ ﻟﻠﺼﻔﺤﺔ‬ ‫‪Summary‬‬ ‫‪5‬‬
‫ﺗﺬﻳﻴﻞ ﺍﻟﺼﻔﺤﺔ‬ ‫‪Footer‬‬ ‫‪6‬‬

‫‪47‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺭﺳﻢ ﺑﻴﺎﻧﻲ ﻟﻠﺒﻴﺎﻧﺎﺕ‬ ‫‪Graph .9‬‬

‫ﺳﺘﻘﻮﻡ ﺑﺈﺧﺘﻴﺎﺭ ﻗﻄﺎﻉ ﻭﺇﺳﻨﺎﺩ ﺣﻘﻞ ﻣﻦ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺮﻗﻢ ‪ 1‬ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‬
‫ﻭﻗﻢ ﺑﺘﻐﺬﻳﺔ ﺍﻟﻘﻴﻤﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺮﻗﻢ ‪ 2‬ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪.‬‬

‫ﻗﻢ ﺑﺈﺩﺧﺎﻝ ﻋﻨﻮﺍﻥ ﺍﻟﺮﺳﻢ ﺍﻟﺒﻴﺎﻧﻲ ﻛﻤﺎ ﻓﻲ ﺭﻗﻢ ‪ 1‬ﻓﻲ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ‪ ،‬ﻭﺛﻢ ﺣﺪﺩ ﺃﺣﺪ ﺍﻟﺮﺳﻮﻡ ﺍﻟﺒﻴﺎﻧﻴﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﻨﻘﻄﺔ ﺭﻗﻢ ‪2‬‬

‫‪48‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﺮﺳﻢ ﺑﻴﺎﻧﻲ ﻓﻲ ﻭﺿﻊ ﺍﻟﺘﺼﻤﻴﻢ‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻛﺮﺳﻢ ﺑﻴﺎﻧﻲ ﻓﻲ ﻭﺿﻊ ﺍﻟﺘﻨﻔﻴﺬ ﺃﻭ ﺍﻟﻤﻌﺎﻳﻨﺔ‪.‬‬

‫ﻓﻲ ﻧﻬﺎﻳﺔ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﻻ ﺑﺪ ﺃﻥ ﺃﻗﻮﻝ ﺑﺄﻥ ﺍﻟﺼﻮﺭﺓ ﺍﻟﻤﺘﻜﺎﻣﻠﺔ ﺳﺘﺘﻀﺢ ﺟﻠﻴﺎ ً ﻓﻲ ﺍﻟﻔﺼﻮﻝ ﺍﻟﺘﺎﻟﻴﺔ ﺣﻴﺚ ﺃﻧﻬﺎ ﻓﺼﻮﻝ ﻋﻤﻠﻴﺔ ﻭﻣﺎ‬
‫ﻗﺪﻣﺘﻪ ﺁﻧﻔﺎ ً ﺇﻧﻤﺎ ﺳﻮﻯ ﺗﺄﺳﻴﺲ ﻟﻸﺩﻭﺍﺕ ﺍﻟﺘﻲ ﺗﺘﻴﺤﻬﺎ ﺍﻟـ ‪ PB‬ﻭﺳﺘﺸﺎﻫﺪ ﺃﻥ ﻫﺬﻩ ﺍﻟﻤﻌﻠﻮﻣﺎﺕ ﻣﻔﻴﺪﺓ ﺟﺪﺍً ﻓﻲ ﺗﻄﺒﻴﻘﻚ ﺍﻟﺘﻔﺼﻴﻠﻲ‬
‫ﺍﻟﻌﻤﻠﻲ‪.‬‬

‫‪49‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺭﺍﺑﻌﺎ ً( ‪ Database‬ﺃﺩﻭﺍﺕ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪:‬‬


‫ﻭﻫﻲ ﺃﺩﻭﺍﺕ ﻣﺨﺘﺼﺔ ﺑﺈﺩﺍﺭﺓ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺸﻜﻞ ﻣﺒﺎﺷﺮ ﻭﻟﻠﻮﺻﻮﻝ ﻟﻬﺬﻩ ﺍﻷﺩﻭﺍﺕ ﺃﺗﺒﻊ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‬
‫‪ .1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ (‪.‬‬
‫‪ .2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Database Painter‬‬
‫‪ .3‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪ (3-21‬ﻻﺣﻆ ﺃﻥ ﺃﻫﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺼﻨﺪﻭﻕ ﺍﻷﺣﻤﺮ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ ﺑﺸﻜﻞ‬
‫ﻛﺒﻴﺮ ﻭﻣﺘﻜﺮﺭ‪ ،‬ﻭﺳﻨﺒﺪﺃ ﺑﺸﺮﺡ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺑﺸﻜﻞ ﻣﻔﺼﻞ‪:‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-21‬‬

‫ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﻣﻬﻤﺔ ﺟﺪﺍً ﻓﻤﻦ ﺧﻼﻟﻬﺎ ﺗﺴﺘﻄﻴﻊ ﺃﻥ ﺗﻘﻮﻡ ﺑﺈﻧﺸﺎء ﺍﻟﻜﺜﻴﺮ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ‬
‫ﺍﻟﻤﺮﺗﺒﻄﺔ ﺑﻘﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻣﻨﻬﺎ‪:‬‬
‫• ﺇﻧﺸﺎء ﺍﺗﺼﺎﻝ ﻣﻊ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﻦ ﺷﺘﻰ ﺍﻷﻧﻮﺍﻉ ﻣﺜﻞ‪:‬‬
‫‪.(MS SQL Server) ‬‬
‫‪.Oracle 8i, 9i, 10g ‬‬ ‫‪1‬‬
‫ﺭﺳﺎﻡ ﺃﻭ ﻣﺤﺮﺭ ﻗﺎﻋﺪﺓ‬
‫‪ ODBC ‬ﻣﺼﺎﺩﺭ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫• ﺇﻧﺸﺎء ﺃﻭ ﺗﻌﺪﻳﻞ ﺃﻭ ﺣﺬﻑ ﺟﺪﻭﻝ‪ ،‬ﺣﻘﻞ‪ ،‬ﻋﻼﻗﺔ ﺑﻴﻦ ﺟﺪﻭﻟﻴﻦ‪ ،‬ﻣﻔﺎﺗﻴﺢ ﺃﺳﺎﺳﻴﺔ‬
‫ﺳﺄﻗﻮﻡ ﺑﺎﻟﺘﺮﻛﻴﺰ ﻋﻠﻰ ﺍﻟﺠﻮﺍﻧﺐ ﺍﻟﺘﻲ ﺗﻬﻤﻚ ﻓﻲ ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﻌﻤﻠﻲ ﺍﻟﺬﻱ ﺳﻴﻈﻬﺮ ﻣﺴﺘﻮﻯ‬
‫ﺍﻷﻫﻤﻴﺔ ﺍﻟﺘﻲ ﺳﺘﺴﺘﻔﻴﺪﻫﺎ ﻣﻦ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ‪ .‬ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-22‬‬

‫‪50‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-22‬‬


‫ﺳﺘﻼﺣﻆ ﺷﺠﺮﺓ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﺤﻴﺚ ﺗﺘﻴﺢ ﻟﻚ ‪ PB‬ﺍﻟﻌﺪﻳﺪ ﻣﻦ ﻗﻮﺍﻋﺪ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‪ ،‬ﺍﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﻋﻼﻩ‬
‫ﻻﺣﻆ ﺭﻗﻢ ‪ 1‬ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ‪ O84 Oracle8/8i‬ﻗﻤﻨﺎ ﺑﺨﻠﻖ ﺍﺗﺼﺎﻝ ﻣﻊ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﻣﻮﺟﻮﺩﺓ ﻣﺴﺒﻘﺎ ً ﻭﺳﻤﻴﻨﺎ ﻫﺬﺍ ﺍﻻﺗﺼﺎﻝ‬
‫‪ Def‬ﻻﺣﻆ ﺭﻗﻢ ‪.2‬‬
‫ﻟﻠﻮﺻﻮﻝ ﻟﺨﺼﺎﺋﺺ ﺍﻻﺗﺼﺎﻝ ‪ Def‬ﺍﺗﺒﻊ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪:(3-23‬‬
‫‪ .1‬ﺍﺿﻐﻂ ﺯﺭ ﺍﻟﻔﺄﺭﺓ ﺍﻷﻳﻤﻦ ﻋﻠﻰ ﺍﻻﺗﺼﺎﻝ ‪ Def‬ﺳﺘﻈﻬﺮ ﻗﺎﺋﻤﺔ‪.‬‬
‫‪ .2‬ﻗﻢ ﺑﺈﺧﺘﻴﺎﺭ ‪ Properties‬ﺧﺼﺎﺋﺺ‪.‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-23‬‬


‫‪51‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺧﺼﺎﺋﺺ ﺍﻻﺗﺼﺎﻝ ﺑﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪ Def‬ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-24‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-24‬‬


‫ﺍﻛﺘﺐ ﺃﻱ ﺍﺳﻢ ﻭﻟﻴﻜﻦ ‪def‬‬ ‫ﺍﺳﻢ ﻣﻠﻒ ﻣﻌﻠﻮﻣﺎﺕ ﺍﻻﺗﺼﺎﻝ‪.‬‬ ‫‪Profile Name‬‬ ‫‪2‬‬
‫ﻭﺳﺘﻜﻮﻥ ﻣﻌﺮﻓﺔ ﻋﻠﻰ ﺍﻟﺠﻬﺎﺯ ﺍﻟﺮﺋﻴﺴﻲ‬ ‫ﺧﺪﻣﺔ ﺍﺗﺼﺎﻝ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫‪Server‬‬ ‫‪3‬‬
‫ﻳﻜﻮﻥ ﻓﻲ ﺑﻴﺎﻧﺎﺕ ﻣﺴﺘﺨﺪﻣﻲ ﻗﺎﻋﺪﺓ‬
‫ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ‬ ‫‪Login ID‬‬ ‫‪4‬‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻨﺪ ﺇﻧﺸﺎﺋﻬﺎ ﺃﻭﻝ ﻣﺮﺓ‪.‬‬
‫ﺗﻜﻮﻥ ﻓﻲ ﺑﻴﺎﻧﺎﺕ ﻣﺴﺘﺨﺪﻣﻲ ﻗﺎﻋﺪﺓ‬
‫ﻛﻠﻤﺔ ﺍﻟﻤﺮﻭﺭ‬ ‫‪Password‬‬ ‫‪5‬‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻨﺪ ﺇﻧﺸﺎﺋﻬﺎ ﺃﻭﻝ ﻣﺮﺓ‪.‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-25‬‬


‫ﻳﺠﺐ ﺃﻥ ﺗﻀﻊ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﺍﻟﻤﺮﺗﺒﻂ ﺑﻘﺎﻋﺪﺓ‬
‫ﻛﺘﺎﻟﻮﺝ ﻣﺎﻟﻚ ﺍﻟﺠﺪﺍﻭﻝ‬ ‫‪Power Builder Catalog Table Owner 2‬‬
‫ﺍﻟﺒﻴﺎﻧﺎﺕ ﻟﻌﺮﺽ ﺍﻟﺠﺪﺍﻭﻝ ﺍﻟﻤﺮﺗﺒﻄﺔ ﺑﻪ‪.‬‬
‫ﻛﺮﺭ ﺍﺳﻢ ﺍﻟﻤﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﺨﻄﺔ ﺍﻟﺴﺎﺑﻘﺔ‪.‬‬ ‫ﻣﺎﻟﻚ ﺍﻟﺠﺪﺍﻭﻝ‬ ‫‪Table Owner 3‬‬

‫‪52‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-26‬‬

‫ﻻﺣﻆ ﻧﺺ ﺍﻻﺗﺼﺎﻝ ﻳﻘﻮﻡ ﺍﻟـ‬


‫‪ PB‬ﺑﺈﻧﺸﺎﺋﻪ ﺗﻠﻘﺎﺋﻴﺎ ً‬
‫‪ Database Connection Syntax‬ﻧﺺ ﺍﻻﺗﺼﺎﻝ ﺑﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‬ ‫‪2‬‬
‫ﻭﺳﻨﺴﺘﻔﻴﺪ ﻣﻦ ﻫﺬﺍ ﺍﻟﻨﺺ‬
‫ﻻﺣﻘﺎ ً‪.‬‬
‫ﺗﻘﻮﻡ ﺑﻨﺴﺦ ﺍﻟﻨﺺ ﻭﻟﺼﻘﻪ ﻓﻲ‬
‫ﻧﺴﺦ ﺍﻟﻨﺺ‬ ‫‪Copy‬‬ ‫‪3‬‬
‫ﺍﻟﺒﺮﻧﺎﻣﺞ‬
‫ﻳﻤﻜﻨﻚ ﺃﻥ ﺗﻔﺤﺺ ﺍﻻﺗﺼﺎﻝ‬ ‫‪4‬‬
‫ﻓﺤﺺ ﺍﻻﺗﺼﺎﻝ ﻣﻊ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺑﻘﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻫﻞ ﻫﻮ ﻧﺎﺟﺢ‬ ‫‪Test Connection‬‬
‫ﺃﻡ ﻻ؟‬

‫‪53‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻣﺤﺮﺭ ﺟﻤﻞ ﺍﺳﺘﻌﻼﻡ ‪ SQL‬ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﺇﻧﺸﺎء ﺟﻤﻠﺔ ﺍﺳﺘﻌﻼﻡ ﻭﺣﻔﻈﻬﺎ ﺑﺎﺳﻢ‬
‫‪2‬‬
‫ﻭﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﺴﻬﻮﻟﺔ‬ ‫‪Statement‬‬
‫( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-27‬‬ ‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺈﺧﺘﻴﺎﺭ ‪. Database‬‬ ‫‪.2‬‬
‫ﻗﻢ ﺑﺈﺧﺘﻴﺎﺭ ‪.Query‬‬ ‫‪.3‬‬
‫ﺍﺿﻐﻂ ﺯﺭ ‪.OK‬‬ ‫‪.4‬‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-28‬‬ ‫‪.5‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-27‬‬


‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺍﻟﺠﺪﺍﻭﻝ ﻗﻢ‬
‫ﺑﺈﺧﺘﻴﺎﺭ ﺟﺪﻭﻝ ﺃﻭ ﺃﻛﺜﺮ ﺛﻢ ﻗﻢ‬
‫ﺑﺎﺧﺘﻴﺎﺭ ‪ Open‬ﻭﻓﻲ ﻫﺬﺍ‬
‫ﺍﻟﻤﺜﺎﻝ ﻗﻤﻨﺎ ﺑﺈﺧﺘﻴﺎﺭ ﺍﻟﺠﺪﻭﻝ‬
‫‪t_man_main‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-28‬‬

‫‪54‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﻴﻈﻬﺮ ﻣﺤﺘﻮﻯ ﺍﻟﺠﺪﻭﻝ‬


‫ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜـﻞ ﺭﻗﻢ‬
‫)‪.(3-29‬‬
‫‪ - 1‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺍﻟﺤﻘﻮﻝ‬
‫ﺍﻟﺘﻲ ﺗﺮﻳﺪﻫﺎ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ‬
‫ﺃﻳﻘﻮﻧﺔ ﺍﻟﺤﻔﻆ‬
‫ﻣﻦ ﺷﺮﻳﻂ ﺍﻷﺩﻭﺍﺕ‪.‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-29‬‬


‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺣﻔﻆ ﺍﻟـ‬
‫‪ Query‬ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪.(3-40‬‬
‫‪ - 1‬ﺍﺩﺧﻞ ﺍﺳﻢ ﺍﻟـ‬
‫‪.Query‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺍﻟﻤﻜﺘﺒﺔ‬
‫ﺍﻟﺘﻲ ﺗﺮﻳﺪ ﺣﻔﻆ‬
‫ﺍﻟـ ‪ Query‬ﻓﻴﻬﺎ‪.‬‬
‫‪ - 3‬ﺛﻢ ﻗﻢ ﺑﻀﻐﻂ ﺯﺭ‬
‫‪. OK‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-40‬‬

‫ﺃﻧﺎﺑﻴﺐ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﻧﻘﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﺟﺪﻭﻝ ﻵﺧﺮ ﺃﻭ ﻣﻦ ﻗﺎﻋﺪﺓ ﺑﻴﺎﻧﺎﺕ ﺇﻟﻰ‬
‫ﺃﺧﺮﻯ‪ ،‬ﻭﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻼﺳﺘﻔﺎﺩﺓ ﻣﻦ ﺑﻴﺎﻧﺎﺕ ﻣﻬﻤﺔ ﻭﻣﻮﺟﻮﺩﺓ ﻣﺴﺒﻘﺎ ً ﻓﻲ‬ ‫‪3‬‬
‫ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-40‬‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪. Database‬‬ ‫‪.2‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Data Pipeline‬‬ ‫‪.3‬‬
‫ﺍﺿﻐﻂ ﺯﺭ ‪ ،OK‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-41‬‬ ‫‪.4‬‬

‫‪55‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-40‬‬

‫‪- 1‬ﻗﻢ ﺑﺘﺤﺪﻳﺪ ﻁﺮﻳﻘﺔ‬


‫ﺍﺧﺘﻴﺎﺭ ﺑﻴﺎﻧﺎﺕ ﻭﻗﺪ‬
‫ﺳﺒﻖ ﺃﻥ ﺷﺮﺣﻨﺎﻩ‬
‫ﺑﺎﻟﺘﻔﺼﻴﻞ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺘﺤﺪﻳﺪ‬
‫ﺍﻟﻤﺼﺪﺭ‪.‬‬
‫‪ - 3‬ﻗﻢ ﺑﺘﺤﺪﻳﺪ‬
‫ﺍﻟﻬﺪﻑ‪.‬‬
‫‪ - 4‬ﺛﻢ ﺍﺿﻐﻂ ‪Ok‬‬
‫ﺳﺘﻈﻬﺮ ﺍﻟﺸﺎﺷﺔ‬
‫ﺭﻗﻢ )‪.(3-42‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-41‬‬

‫‪56‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫‪- 1‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺟﺪﻭﻝ‬


‫ﻣﻦ ﺍﻟﺠﺪﺍﻭﻝ‬
‫ﺍﻟﻤﻌﺮﻭﺿﺔ‪ ،‬ﻭﻟﻴﻜﻦ‬
‫ﺍﻟﺠﺪﻭﻝ‬
‫‪.t_man_main‬‬
‫‪- 2‬ﺛﻢ ﺍﺿﻐﻂ ﺯﺭ‬
‫‪ Open‬ﺳﺘﻈﻬﺮ‬
‫ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ‬
‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ ) ‪-43‬‬
‫‪.(3‬‬
‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-42‬‬
‫‪ - 1‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺍﻟﺤﻘﻮﻝ‬
‫ﻣﻦ ﺍﻟﺠﺪﻭﻝ‪.‬‬
‫‪ - 2‬ﺛﻢ ﺍﺿﻐﻂ‬
‫‪،Return‬‬
‫ﺳﺘﻈﻬﺮ ﺍﻟﺸﺎﺷﺔ‬
‫ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ‬
‫)‪.(3-44‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-43‬‬

‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪(3-44‬‬


‫• ﺇﺿﺎﻓﺔ ﺟﺪﻭﻝ ﺟﺪﻳﺪ‪.‬‬ ‫•‬ ‫‪Create – Add Table.‬‬
‫• ﺗﺒﺪﻳﻞ ﺍﻟﺠﺪﻭﻝ‪.‬‬ ‫•‬ ‫‪Replace – Drop/Add Table.‬‬
‫• ﺗﺤﺪﻳﺚ ﺍﻟﺠﺪﻭﻝ‪.‬‬ ‫•‬ ‫‪Refresh – Delete/Insert Rows.‬‬ ‫‪1‬‬
‫• ﺇﺿﺎﻓﺔ ﺳﻄﻮﺭ ﻟﻠﺠﺪﻭﻝ‪.‬‬ ‫•‬ ‫‪Append – Insert Rows.‬‬
‫• ﺣﻔﻆ ﻭ ﺇﺿﺎﻓﺔ ﺳﻄﻮﺭ‪.‬‬ ‫•‬ ‫‪Update – Update/Insert Rows.‬‬ ‫ﻁﺮﻳﻘﺔ ﻧﻘﻞ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺓ ﺣﻘﻮﻝ‬ ‫ﺃﺳﻤﺎء ﺍﻟﻤﺼﺪﺭ‬ ‫‪Source Name 2‬‬
‫ﺟﺪﻭﻝ ﺍﻟﻤﺼﺪﺭ‪.‬‬
‫‪57‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻳﻤﻜﻨﻚ ﻣﺸﺎﻫﺪﺓ ﺣﻘﻮﻝ‬ ‫ﺃﺳﻤﺎء ﺍﻟﻬﺪﻑ‬ ‫‪Destination Name 3‬‬


‫ﺟﺪﻭﻝ ﺍﻟﻬﺪﻑ‪.‬‬
‫ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺻﻴﻐﺔ ﺍﻟﻨﻘﻞ ﻛﻤﺎ‬ ‫ﺗﻨﻔﻴﺬ‬ ‫‪Execute 4‬‬
‫ﻫﻮ ﻭﺍﺿﺢ ﻓﻲ ﺍﻟﺨﻄﻮﺍﺕ‬
‫ﻣﻦ ‪ 1‬ﺇﻟﻰ ‪.3‬‬

‫ﺧﺎﻣﺴﺎ ً( ‪ Project‬ﺃﺩﻭﺍﺕ ﺍﻟﻤﺸﺮﻭﻉ‪:‬‬


‫ﻭﻫﻲ ﺃﺩﻭﺍﺕ ﻣﺨﺘﺼﺔ ﺑﺈﻧﺸﺎء ﻭﺇﺩﺍﺭﺓ ﺍﻟﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬﻱ ) ‪ (*.exe‬ﻭﻣﻠﻔﺎﺕ ﺍﻟـ )‪ (*.PBD‬ﺍﻟﺘﻲ ﺗﻀﻢ ﺟﻤﻴﻊ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺍﻟﺨﺎﺻﺔ‬
‫ﺑﺎﻟﺒﺮﻧﺎﻣﺞ ﺍﻟﺬﻱ ﺗﻘﻮﻡ ﺑﺈﻧﺸﺎﺋﻪ ﺑﻤﻌﻨﻰ ﺁﺧﺮ ﺗﻘﻮﻡ ﺑﻌﻤﻞ ﻧﺴﺨﺔ ﻣﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻣﻐﻠﻘﺔ ﻻ ﻳﻤﻜﻦ ﺍﻟﺘﻌﺪﻳﻞ ﻋﻠﻴﻬﺎ ﻭﻟﻜﻦ ﺗﺼﻠﺢ‬
‫ﻟﺘﻨﻔﻴﺬﻫﺎ ﻭﻳﺘﻢ ﺗﺮﻛﻴﺒﻬﺎ ﻋﻠﻰ ﺃﺟﻬﺰﺓ ﺍﻟﻤﺴﺘﺨﺪﻣﻴﻦ ﺃﻭ ﻳﺘﻢ ﺑﻴﻌﻬﺎ ﻋﻠﻰ ﺃﻗﺮﺍﺹ ﻣﺪﻣﺠﺔ‪ ،‬ﻭﻟﻠﻮﺻﻮﻝ ﻟﻬﺬﻩ ﺍﻷﺩﻭﺍﺕ ﺃﺗﺒﻊ ﺍﻟﺨﻄﻮﺍﺕ‬
‫ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪.1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ (‪.‬‬
‫‪.2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Project‬‬
‫‪.3‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ ) ‪ (3-45‬ﻻﺣﻆ ﺃﻥ ﺃﻫﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺼﻨﺪﻭﻕ ﺍﻷﺣﻤﺮ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ ﺑﺸﻜﻞ‬
‫ﻛﺒﻴﺮ ﻭﻣﺘﻜﺮﺭ‪ ،‬ﻭﺳﻨﺒﺪﺃ ﺑﺸﺮﺡ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺑﺸﻜﻞ ﻣﻔﺼﻞ‪:‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-45‬‬

‫‪58‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺇﻧﺸﺎء ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﻨﻔﻴﺬﻱ ‪ exe‬ﻭﻣﻠﻔﺎﺕ ‪ PBD‬ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﺒﺮﻧﺎﻣﺞ‬ ‫ﺑﻨﺎء ﺍﻟﺘﻄﺒﻴﻖ‬
‫‪3‬‬
‫ﺍﻟﺨﺎﺹ ﺑﻚ ﺑﻮﺍﺳﻄﺔ ﻣﺴﺎﻋﺪ ﺍﻹﻧﺸﺎء‪.‬‬ ‫ﺑﺎﻟﻤﺴﺎﻋﺪﺓ‬

‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-45‬‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪. Project‬‬ ‫‪.2‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Application Wizard‬‬ ‫‪.3‬‬
‫ﺍﺿﻐﻂ ﺯﺭ ‪ ،OK‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-46‬‬ ‫‪.4‬‬

‫ﺗﻘﻮﻡ ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺑﻌﺮﺽ‬


‫ﻣﺨﺘﺼﺮ ﻋﻦ ﻋﻤﻞ ﻫﺬﻩ‬
‫ﺍﻟﺠﺰﺋﻴﺔ‪.‬‬
‫‪ -1‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪Next‬ﻛﻤﺎ ﻫﻮ ﻣﻮﺿﺢ‬
‫ﺳﺘﻈﻬﺮ ﻟﻚ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ‬
‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-47‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-46‬‬


‫ﺗﺴﺄﻟﻚ ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﻓﻲ ﻣﻜﺘﺒﺔ‬
‫ﺳﺘﺤﻔﻆ ﻣﻠﻒ ﺍﻟﻤﺸﺮﻭﻉ؟‬
‫‪ - 1‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺃﺣﺪ ﻫﺬﻩ‬
‫ﺍﻟﻤﻜﺘﺒﺎﺕ ﻟﺤﻔﻆ ﻣﻠﻒ‬
‫ﺍﻟﻤﺸﺮﻭﻉ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪.NEXT‬‬
‫ﺳﺘﻈﻬﺮ ﻟﻚ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ‬
‫ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-48‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-47‬‬


‫‪59‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺗﻮﺿﺢ ﺃﻥ‬


‫ﺍﻟﻤﺸﺮﻭﻉ ﺍﻟﻤﺒﻨﻲ ﻳﻤﻜﻦ ﺃﻥ‬
‫ﻳﺴﺘﺨﺪﻡ ﻻﺣﻘﺎ ً ﻟﺒﻨﺎء ﺃﻭ ﻟﻨﺸﺮ‬
‫ﺗﻄﺒﻴﻘﻚ‪.‬‬
‫‪ - 1‬ﻗﻢ ﺑﺈﺩﺧﺎﻝ ﺍﺳﻢ ﺍﻟﻤﺸﺮﻭﻉ‬
‫‪ - 2‬ﺛﻢ ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪. NEXT‬‬
‫ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪.(3-49‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-48‬‬

‫ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺗﺒﻴﻦ ﻟﻚ ﺑﻀﺮﻭﺭﺓ‬


‫ﺇﺩﺧﺎﻝ ﺍﺳﻢ ﺍﻟﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬﻱ ‪exe‬‬
‫ﻭﺗﺤﺪﻳﺪ ﺍﺳﻢ ﻣﻠﻒ ﺍﻟﻤﻮﺍﺭﺩ‬
‫)ﺍﺧﺘﻴﺎﺭﻱ(‪.‬‬
‫‪ - 1‬ﻳﻘﻮﻡ ﺍﻟـ ‪ PB‬ﺑﺎﻗﺘﺮﺍﺡ ﺍﺳﻢ‬
‫ﻟﻠﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬﻱ ﺗﻠﻘﺎﺋﻴﺎ ً ﺣﺴﺐ‬
‫ﺍﺳﻢ ﺍﻟـﺘﻄﺒﻴﻖ‬
‫‪ ،Application‬ﺃﻭ ﻗﻢ‬
‫ﺑﺈﺩﺧﺎﻝ ﺍﺳﻢ ﺍﻟﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺈﺩﺧﺎﻝ ﺍﺳﻢ ﻣﻠﻒ ﺍﻟﻤﻮﺍﺭﺩ‬
‫ﻭﻫﻮ ﺍﺧﺘﻴﺎﺭﻱ‪ ،‬ﻭﺍﻟﻤﻘﺼﻮﺩ‬
‫ﺑﻤﻠﻒ ﺍﻟﻤﻮﺍﺭﺩ‪ :‬ﻣﻠﻒ ﻣﻦ‬
‫ﺇﻣﺘﺪﺍﺩ ‪ *.pbr‬ﺗﻘﻮﻡ ﺑﺘﺨﺰﻳﻦ‬
‫ﺃﺳﻤﺎء ﺻﻮﺭ ﺑﺈﻣﺘﺪﺍﺩﺗﻬﺎ‬
‫ﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺑﻨﺎء ﺑﻌﺾ‬
‫ﺟﺰﺋﻴﺎﺕ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻟﻜﻲ ﻻ‬
‫ﺗﺨﺘﻔﻲ ﻣﻦ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻋﻨﺪ ﻧﻘﻞ‬
‫ﺍﻟﻤﻠﻒ ﺍﻟﺘﻨﻔﻴﺬﻱ ﺇﻟﻰ ﺟﻬﺎﺯ‬
‫ﺁﺧﺮ ﻭﺑﻤﺴﺎﺭ ﺁﺧﺮ‪.‬‬
‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-49‬‬ ‫‪ - 3‬ﺍﺿﻐﻂ ﺯﺭ ‪ NEXT‬ﺳﺘﻈﻬﺮ‬
‫ﺍﻟﺸﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ‬
‫)‪.(3-50‬‬

‫‪60‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﺴﺄﻟﻚ ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺍﻟﺴﺆﺍﻝ‬


‫ﺍﻟﺘﺎﻟﻲ‪ :‬ﻗﻢ ﺑﺎﻟﺘﺄﻛﺪ ﺇﺫﺍ ﻛﻨﺖ‬
‫ﺗﺮﻏﺐ ﺑﺘﻨﺒﻴﻬﻚ ﻭﺟﻮﺩ‬
‫ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻘﺪﻳﻤﺔ ﻗﺒﻞ ﺍﻟﻜﺘﺎﺑﺔ‬
‫ﻓﻮﻗﻬﺎ ﻣﻦ ﺟﺪﻳﺪ؟‬
‫‪ - 1‬ﺍﻟﺘﻨﺒﻴﻪ ﻋﻨﺪ ﺍﻟﻜﺘﺎﺑﺔ ﻓﻮﻕ‬
‫ﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻘﺪﻳﻤﺔ‪.‬‬
‫‪ : Full Build - 2‬ﻫﻮ ﺑﻨﺎء‬
‫ﻛﺎﻣﻞ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﺠﻤﻴﻊ‬
‫ﻣﺤﺘﻮﻳﺎﺗﻪ‪.‬‬
‫‪Incremental‬‬ ‫‪-3‬‬
‫‪ : Build‬ﺑﻨﺎء ﺗﻜﻤﻴﻠﻲ‬
‫ﻭﺍﻟﻤﻘﺼﻮﺩ ﺑﻬﺎ ﻓﻘﻂ‬
‫ﺍﻟﻜﺎﺋﻨﺎﺕ ﺃﻭ ﺍﻟﻤﻜﻮﻧﺎﺕ‬
‫ﺍﻟﺘﻲ ﺗﻐﻴﺮﺕ ﻳﺘﻢ ﺑﻨﺎﺋﻬﺎ‬
‫ﻣﻦ ﺟﺪﻳﺪ‪ ،‬ﻭﺗﺄﺧﺬ ﻭﻗﺖ‬
‫ﺃﻗﻞ‪.‬‬
‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-50‬‬ ‫‪ - 4‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪ ، NEXT‬ﺳﺘﻈﻬﺮ‬
‫ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪.(3-51‬‬
‫ﺗﺴﺄﻟﻚ ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺍﻟﺴﺆﺍﻝ‬
‫ﺍﻟﺘﺎﻟﻲ‪ :‬ﻫﻞ ﺗﺮﻏﺐ ﺑﺈﻧﺸﺎء‬
‫ﺭﻣﺰ ﺍﻵﻟﺔ ﻟﻠﺘﻄﺒﻴﻖ؟‬
‫‪ :No- 1‬ﻻ ﺗﻘﻢ ﺑﺈﻧﺸﺎء ﺭﻣﺰ‬
‫ﺍﻵﻟﺔ‪.‬‬
‫‪ :Yes- 2‬ﻗﻢ ﺑﺈﻧﺸﺎء ﺭﻣﺰ‬
‫ﺍﻵﻟﺔ ‪ EXE‬ﻭ‪ ،Dll‬ﻗﻢ‬
‫ﺑﺎﺧﺘﻴﺎﺭ ﺍﻟﺨﻴﺎﺭ ﺭﻗﻢ ‪1‬‬
‫ﻭﻫﻮ ﺍﻷﻓﻀﻞ‪.‬‬
‫‪- 3‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪ NEXT‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ‬
‫ﻛﻤـﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ‬
‫)‪.(3-52‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-51‬‬

‫‪61‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﻮﺿﺢ ﻟﻚ ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺇﺫﺍ‬


‫ﺭﻏﺒﺖ ﺑﺒﻨﺎء ﻣﻜﺘﺒﺎﺕ ﺗﻨﻔﻴﺬ‬
‫ﺩﻳﻨﺎﻣﻜﻴﺔ ﻭﻫﻲ ‪.PBD‬‬
‫‪ - 1‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﻫﺬﺍ ﺍﻟﺨﻴﺎﺭ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪ NEXT‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ‬
‫ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ)‪.(3-53‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-52‬‬


‫ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺗﻤﻜﻨﻚ ﺑﻮﺿﻊ‬
‫ﻣﻌﻠﻮﻣﺎﺕ ﻋﻦ ﺷﺮﻛﺘﻚ ﻭﺍﺳﻢ‬
‫ﺍﻟﻤﻨﺘﺞ ﻭﻭﺻﻒ ﻭﺣﻘﻮﻕ‬
‫ﺍﻟﻨﺴﺦ ﻭ ﺍﻹﺻﺪﺍﺭ‪.‬‬
‫‪ - 1‬ﻗﻢ ﺑﺘﻌﺒﺌﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺇﺫﺍ‬
‫ﺭﻏﺒﺖ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪ ،NEXT‬ﺳﺘﻈﻬﺮ‬
‫ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪.(3-54‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-53‬‬

‫‪62‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻫﺬﻩ ﺍﻟﺸﺎﺷﺔ ﺗﻮﺿﺢ ﻟﻚ‬


‫ﻣﻠﺨﺺ ﻋﻦ ﺧﺼﺎﺋﺺ‬
‫ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺬﻱ ﺳﻴﺘﻢ ﺇﻧﺸﺎﺋﻪ‪.‬‬
‫‪Generate To Do - 1‬‬
‫‪ :list‬ﺇﺫﺍ ﺍﺧﺘﺮﺕ ﻫﺬﺍ‬
‫ﺍﻟﺨﻴﺎﺭ ﺳﺘﻘﻮﻡ ﺑﺈﻧﺸﺎء‬
‫ﻗﺎﺋﻤﺔ ﺑﺈﺟﺮﺍءﺍﺕ ﻳﺠﺐ‬
‫ﺃﻥ ﺗﻌﻤﻞ‪ ،‬ﺃﻧﺼﺢ ﺑﻌﺪ‬
‫ﺍﺧﺘﻴﺎﺭﻫﺎ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ‬
‫‪ ،Finish‬ﺳﺘﻈﻬﺮ‬
‫ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪.(3-56‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-55‬‬


‫ﻫﺬﻩ ﻫﻲ ﺍﻟﺸﺎﺷﺔ‬
‫ﺍﻟﻤﻄﻠﻮﺑﺔ ﻭﺍﻟﺘﻲ ﺳﻮﻑ‬
‫ﻳﺘﻢ ﺣﻔﻈﻬﺎ ﻛﻜﺎﺋﻦ ﻧﺴﺘﻄﻴﻊ‬
‫ﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺍﻟﻤﺴﺘﻘﺒﻞ‬
‫ﻋﻨﺪ ﺍﻟﺤﺎﺟﺔ ﻹﻧﺘﺎﺝ ﻣﻠﻔﺎﺕ‬
‫ﺗﻨﻔﻴﺬﻳﺔ ﺑﻌﺪ ﻋﻤﻞ ﺗﻌﺪﻳﻞ‬
‫ﻋﻠﻰ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺃﻭ ﺇﺿﺎﻓﺔ‬
‫ﻛﺎﺋﻨﺎﺕ ﺟﺪﻳﺪﺓ ﻋﻠﻰ‬
‫ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫ﺭﺍﺟﻊ ﺟﻤﻴﻊ ﺑﻴﺎﻧﺎﺕ‬
‫ﺍﻟﻤﺸﺮﻭﻉ ﻗﺒﻞ ﺍﻟﺘﻨﻔﻴﺬ‪ ،‬ﻭﻻ‬
‫ﺗﻨﺴﻰ ﺃﻥ ﺗﺨﺘﺎﺭ ﻁﺮﻳﻘﺔ‬
‫ﺍﻟﺒﻨﺎء ﺇﻣﺎ ﺗﻜﻤﻴﻠﻴﺔ ﺃﻭ‬
‫ﻛﺎﻣﻠﺔ‪.‬‬
‫ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺃﻳﻘﻮﻧﺔ‬
‫‪ Deploy‬ﺍﻟﻨﺸﺮ ‪.‬‬

‫ﻭﺑﻌﺪﻫﺎ ﺳﻴﻨﺘﺞ ﺍﻟﻤﻠﻒ‬


‫ﺍﻟﺘﻨﻔﻴﺬﻱ ‪ *.exe‬ﻭﻣﻠﻔﺎﺕ‬
‫‪*.pbd‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-56‬‬

‫‪63‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺇﻧﺸﺎء ﺍﻟﺘﻄﺒﻴﻖ ﺍﻟﺘﻨﻔﻴﺬﻱ ‪ exe‬ﻭﻣﻠﻔﺎﺕ ‪ PBD‬ﺍﻟﺨﺎﺻﺔ ﺑﺎﻟﺒﺮﻧﺎﻣﺞ‬


‫ﺑﻨﺎء ﺍﻟﺘﻄﺒﻴﻖ‬ ‫‪4‬‬
‫ﺍﻟﺨﺎﺹ ﺑﻚ ﺑﺸﻜﻞ ﻳﺪﻭﻱ ﻭﻣﺒﺎﺷﺮ‪.‬‬
‫‪ .1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-57‬‬
‫‪ .2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪ .3 . Project‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪ .4 .Application‬ﺍﺿﻐﻂ ﺯﺭ ‪ ،OK‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-58‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-57‬‬

‫ﺗﻼﺣﻆ ﺑﺄﻥ‬
‫ﺍﻟﺘﻄﺒﻴﻖ ﻓﺎﺭﻍ‬
‫ﻭﻳﻤﻜﻨﻚ ﺃﻥ‬
‫ﺗﻀﻊ ﺟﻤﻴﻊ‬
‫ﺑﻴﺎﻧﺎﺗﻚ ﻣﺒﺎﺷﺮﺓ‬
‫ﻭﺗﻘﻮﻡ ﺑﺤﻔﻆ‬
‫ﺍﻟﺘﻄﺒﻴﻖ‬
‫ﻭﺗﻨﻔﻴﺬﻩ ﺃﻭ‬
‫ﻧﺸﺮﻩ‬
‫‪.Deploy‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-58‬‬


‫‪64‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﺎﺩﺳﺎ ً( ‪ Tool‬ﺃﺩﻭﺍﺕ ﻋﺎﻣﺔ‪:‬‬


‫ﻭﻫﻲ ﺃﺩﻭﺍﺕ ﻋﺎﻣﺔ ﺗﺴﺎﻋﺪ ﻣﺒﺮﻣﺠﻲ ﺍﻟـ ‪ PB‬ﺑﺎﺳﺘﺨﺪﺍﻡ ﺃﺩﻭﺍﺕ ﺳﻬﻠﺔ ﺗﺴﺎﻋﺪ ﻋﻠﻰ ﺗﺴﻬﻴﻞ ﺍﻟﻌﻤﻞ‪ ،‬ﻭﻟﻠﻮﺻﻮﻝ ﻟﻬﺬﻩ ﺍﻷﺩﻭﺍﺕ‬
‫ﺃﺗﺒﻊ ﺍﻟﺨﻄﻮﺍﺕ ﺍﻟﺘﺎﻟﻴﺔ‪:‬‬
‫‪ .1‬ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ (‪.‬‬
‫‪ .2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Tool‬‬
‫‪ .3‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ ) ‪ (3-59‬ﻻﺣﻆ ﺃﻥ ﺃﻫﻢ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻛﻤﺎ ﻓﻲ ﺍﻟﺼﻨﺪﻭﻕ ﺍﻷﺣﻤﺮ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺟﻬﺎ ﺑﺸﻜﻞ‬
‫ﻛﺒﻴﺮ ﻭﻣﺘﻜﺮﺭ‪ ،‬ﻭﺳﻨﺒﺪﺃ ﺑﺸﺮﺡ ﻫﺬﻩ ﺍﻟﻜﺎﺋﻨﺎﺕ ﺑﺸﻜﻞ ﻣﻔﺼﻞ‪:‬‬

‫ﺷﻜﻞ ﺭﻗﻢ)‪(3-59‬‬

‫ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﺗﻄﺒﻴﻖ ﺇﺟﺮﺍءﺍﺕ ﻋﻠﻰ ﺍﻟﻤﻜﺘﺒﺎﺕ‪.‬‬


‫ﺭﺳﺎﻡ ﺍﻟﻤﻜﺘﺒﺎﺕ‬ ‫‪2‬‬

‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-59‬‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪. Tool‬‬ ‫‪.2‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Library Painter‬‬ ‫‪.3‬‬
‫ﺍﺿﻐﻂ ﺯﺭ ‪ ،OK‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-60‬‬ ‫‪.4‬‬

‫‪65‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺳﻴﻈﻬﺮ‬
‫ﻣﺴﺘﻜﺸﻒ ﺃﻭ‬
‫ﻣﺤﺮﺭ ﺍﻟﻤﻜﺘﺒﺎﺕ‬
‫ﺗﺸﺎﻫﺪ ﺑﺄﻥ‬
‫ﺍﻟﺸﺎﺷﺔ ﺗﺘﻴﺢ ﻟﻚ‬
‫ﺇﻣﻜﺎﻧﻴﺎﺕ ﻋﺮﺽ‬
‫ﺍﻟﻤﻜﺘﺒﺎﺕ ﻋﻠﻰ‬
‫ﺍﻷﻗﺮﺍﺹ‬
‫ﺍﻟﻤﺘﺎﺣﺔ ﻋﻠﻰ‬
‫ﺟﻬﺎﺯﻙ ﻗﻢ‬
‫ﺑﺎﺧﺘﻴﺎﺭ ﺃﺣﺪ‬
‫ﺍﻟﻤﺠﻠﺪﺍﺕ‬
‫ﺍﻟﻤﺨﺰﻧﺔ ﻓﻴﻬﺎ‬
‫ﺍﻟﺒﺮﻧﺎﻣﺞ ﻻﺣﻆ‬
‫ﺍﻟﻨﻘﻄﺔ ﺭﻗﻢ ‪1‬‬

‫ﺳﺘﻈﻬﺮ‬
‫ﻣﺤﺘﻮﻳﺎﺕ‬
‫ﺍﻟﻤﻜﺘﺒﺔ ﻛﻤﺎ ﻓﻲ‬
‫ﺍﻟﺸﻜﻞ ‪.2‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-60‬‬


‫ﺳﺘﺸﺎﻫﺪ ﺍﻟﻨﻘﻄﺔ ﺭﻗﻢ ‪ 3‬ﺷﺮﻳﻂ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺨﺎﺹ ﺑﻤﺤﺮﺭ ﺍﻟﻤﻜﺘﺒﺎﺕ‪:‬‬
‫ﺑﺤﺚ‬ ‫‪Search‬‬ ‫‪.10‬‬ ‫ﻣﻜﺘﺒﺔ ﺟﺪﻳﺪﺓ‬ ‫‪Create Library‬‬ ‫‪.1‬‬
‫ﺧﺼﺎﺋﺺ‬ ‫‪properties‬‬ ‫‪.11‬‬ ‫ﺗﺤﺪﻳﺪ ﺍﻟﺠﻤﻴﻊ‬ ‫‪Select All‬‬ ‫‪.2‬‬
‫ﻋﺮﺽ ﺃﻛﺜﺮ‬ ‫‪.12‬‬ ‫ﺗﺤﺮﻳﺮ‬ ‫‪Edit‬‬ ‫‪.3‬‬
‫‪Display Most‬‬
‫ﺍﻟﻜﺎﺋﻨﺎﺕ‬ ‫ﻧﺴﺦ‬ ‫‪Copy‬‬ ‫‪.4‬‬
‫‪Resent Object‬‬
‫ﺍﺳﺘﺨﺪﺍﻣﺎ‬ ‫ﻧﻘﻞ‬ ‫‪Move‬‬ ‫‪.5‬‬
‫ﺣﺬﻑ‬ ‫‪Delete‬‬ ‫‪.6‬‬
‫ﺗﺼﺪﻳﺮ‬ ‫‪Export‬‬ ‫‪.7‬‬
‫ﺗﻮﺭﻳﺪ‬ ‫‪Import‬‬ ‫‪.8‬‬
‫ﺇﻋﺎﺩﺓ ﺇﻧﺸﺎء‬ ‫‪Regenerate‬‬ ‫‪.9‬‬
‫‪66‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﺗﺤﺮﻳﺮ ﻭﻓﺘﺢ ﻭﺍﻟﻤﻠﻔﺎﺕ ﺍﻟﻨﺼﻴﺔ ﻭﻏﻴﺮﻫﺎ‪.‬‬


‫ﻣﺤﺮﺭ ﺍﻟﻤﻠﻔﺎﺕ‬ ‫‪3‬‬

‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-59‬‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪. Tool‬‬ ‫‪.2‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.File Editor‬‬ ‫‪.3‬‬
‫ﺍﺿﻐﻂ ﺯﺭ ‪ ،OK‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-61‬‬ ‫‪.4‬‬

‫ﺳﻴﻈﻬﺮ ﻟﻚ ﻣﺤﺮﺭ ﺍﻟﻤﻠﻔﺎﺕ ﻭﻫﻮ ﺷﺒﻴﻪ‬


‫ﺑﺎﻟﻤﻔﻜﺮﺓ ﺍﻟﺨﺎﺻﺔ ﺑﻨﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‬
‫ﺍﻟﻨﻮﺍﻓﺬ ‪Note bad‬‬
‫‪ -1‬ﻗﻢ ﺑﻜﺘﺎﺑﺔ ﺍﻟﻨﺺ ﺍﻟﺬﻱ ﺗﺮﻳﺪﻩ‬
‫ﻭﻳﻤﻜﻨﻚ ﺣﻔﻈﻪ ﺑﻌﺪﺓ ﺃﻧﻮﺍﻉ ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ‬
‫ﺭﻗﻢ )‪.(3-62‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-61‬‬


‫‪ - 1‬ﺍﻛﺘﺐ ﺍﺳﻢ ﺍﻟﻤﻠﻒ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ‬
‫ﺗﺤﻔﻈﻪ‪.‬‬
‫‪ - 2‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﻧﻮﻉ ﻣﻦ ﺃﻧﻮﺍﻉ ﺍﻟﻤﻠﻔﺎﺕ‬
‫ﺍﻟﻤﻮﺟﻮﺩﺓ‪.‬‬
‫‪ - 3‬ﻗﻢ ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ﺯﺭ ‪.SAVE‬‬

‫ﺷﻜﻞ ﺭﻗﻢ )‪(3-62‬‬

‫‪67‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺗﺘﻴﺢ ﻟﻚ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﻣﺸﺎﻫﺪﺓ ﻧﺼﻮﺹ ﻛﻞ ﻣﺎ ﻳﺘﻌﻠﻖ ﺑﺸﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻭﻣﺎ‬ ‫ﻧﺼﻮﺹ ﺷﺎﺷﺔ‬
‫ﺗﺤﺘﻮﻳﻪ ﻣﻦ ﻋﻨﺎﺻﺮ ﻭﺑﺈﻣﻜﺎﻧﻚ ﻧﺴﺨﻬﺎ ﻭﺗﻄﺒﻴﻘﻬﺎ ﻣﺒﺎﺷﺮﺓ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬ ‫ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫‪4‬‬

‫ﺃﺫﻫﺐ ﻟﻠﻘﺎﺋﻤﺔ ﺍﻟﺮﺋﻴﺴﻴﺔ ﻭﺃﺧﺘﺮ ) ‪ New‬ﺟﺪﻳﺪ( ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-59‬‬ ‫‪.1‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪. Tool‬‬ ‫‪.2‬‬
‫ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ‪.Data Window Syntax‬‬ ‫‪.3‬‬
‫ﺍﺿﻐﻂ ﺯﺭ ‪ ،OK‬ﺳﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻛﻤﺎ ﻓﻲ ﺍﻟﺸﻜﻞ ﺭﻗﻢ )‪.(3-63‬‬ ‫‪.4‬‬

‫‪ -‬ﻗﻢ ﺑﺎﺧﺘﻴﺎﺭ ﺃﺣﺪﺙ‬ ‫‪1‬‬


‫ﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﻤﻮﺟﻮﺩﺓ‬
‫ﻓﻲ ﺍﻟﻘﺎﺋﻤﺔ‪،‬‬
‫ﺳﺘﻈﻬﺮ‬
‫ﺧﺼﺎﺋﺼﻬﺎ ﻛﻤﺎ ﻓﻲ‬
‫ﺍﻟﺠﺰء ﺭﻗﻢ ‪. 2‬‬
‫‪ -‬ﻋﻨﺪ ﺇﺧﺘﻴﺎﺭﻙ ﻷﺣﺪ‬ ‫‪2‬‬
‫ﺍﻟﺨﺼﺎﺋﺺ‬
‫ﺳﺘﻈﻬﺮ ﺻﻴﻐﺔ ﻫﺬﻩ‬
‫ﺍﻟﺨﺎﺻﻴﺔ ﻛﺄﻣﺮ‬
‫ﺑﺎﻟـ‪.PB‬‬
‫‪ -‬ﻫﺬﺍ ﺍﻷﻣﺮ ﺧﺎﺹ‬ ‫‪3‬‬
‫ﺑﻌﺮﺽ ﻗﻴﻤﺔ ﻫﺬﻩ‬
‫ﺍﻟﺨﺎﺻﻴﺔ‪ ،‬ﻗﻢ‬
‫ﺑﺘﻈﻠﻴﻠﻬﺎ ﻭﻧﺴﺨﻬﺎ‬
‫ﻭﻟﺼﻘﻬﺎ ﻓﻲ‬
‫ﺍﻟﻤﻜﺎﻥ ﺍﻟﻤﻄﻠﻮﺏ‬
‫ﺩﺍﺧﻞ ﺑﺮﻧﺎﻣﺠﻚ‪.‬‬
‫‪ -‬ﻫﺬﺍ ﺍﻷﻣﺮ ﺧﺎﺹ‬ ‫‪4‬‬
‫ﺑﺘﻌﻴﻴﻦ ﻗﻴﻤﺔ ﻟﻬﺬﻩ‬
‫ﺍﻟﺨﺎﺻﻴﺔ ﻗﻢ ﺑﻨﺴﺦ‬
‫ﺍﻟﺴﻄﺮ ﻭﻟﺼﻘﻪ ﻓﻲ‬
‫ﺍﻟﻤﻜﺎﻥ ﺍﻟﻤﻄﻠﻮﺏ‬
‫ﺷﻜﻞ ﺭﻗﻢ )‪.(3-63‬‬ ‫ﺩﺍﺧﻞ ﺑﺮﻧﺎﻣﺠﻚ‪.‬‬

‫‪68‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﻔﺼﻞ ﺍﻟﺮﺍﺑﻊ )ﺍﻟﻜﻮﺩ(‬


‫) ‪(4-1‬‬ ‫ﺇﻧﺸﺎء ﺍﻟﻤﺘﻐﻴﺮﺍﺕ ﻭﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺃﻧﻮﺍﻋﻬﺎ‬
‫) ‪(4-2‬‬ ‫ﺍﻷﻭﺍﻣﺮ ﻭﺍﻟﺠﻤﻞ ‪Statements‬‬
‫)‪(4-3‬‬ ‫ﺇﻧﺸﺎء ﺍﻟﺪﻭﺍﻝ ﺍﻟﺪﺍﺧﻠﻴﺔ ﻭﺍﻟﺨﺎﺭﺟﻴﺔ ‪Function‬‬

‫‪69‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻣﻘﺪﻣﻪ‪:‬‬
‫ﺑﻌﺪ ﺃﻥ ﻋﺮﺿﻨﺎ ﺍﻷﺩﻭﺍﺕ ﻭﺍﻟﻌﻨﺎﺻﺮ ﺍﻟﺘﻲ ﺗﺘﻜﻮﻥ ﻣﻨﻬﺎ ﺍﻟـ ‪ Pb‬ﺳﺄﻗﻮﻡ ﺑﻌﺮﺽ ﺗﻔﺼﻴﻠﻲ ﻛﻴﻒ ﺗﻜﺘﺐ ﺍﻟﻨﺺ ﺍﻟﻤﺼﺪﺭﻱ ﺃﻭ ﺍﻟﻜﻮﺩ‬
‫‪ Code‬ﻭﺳﺘﺸﺎﻫﺪ ﺑﻌﺾ ﺍﻟﺨﺼﺎﺋﺺ ﺍﻟﺘﻲ ﺗﺘﻤﻴﺰ ﺑﻬﺎ ﻫﺬﻩ ﺍﻟﻠﻐﺔ‪:‬‬
‫‪ - 1‬ﻛﻮﺩ ﺍﻟـ ‪ PB‬ﺷﺒﻴﻪ ﺑﻠﻐﺔ ‪ C‬ﺃﻭ ‪.Java‬‬
‫‪ - 2‬ﺑﺈﻣﻜﺎﻧﻚ ﺃﻥ ﺗﺨﺘﺎﺭ ﺍﻟﺠﻤﻞ ﻭﻟﺼﻘﻬﺎ ﻓﻲ ﻣﺤﺮﺭ ﺍﻷﻭﺍﻣﺮ‪ ،‬ﺑﺤﻴﺚ ﺗﺘﻴﺢ ﻟﻚ ﺍﻟﻠﻐﺔ ﺍﻟﺠﻤﻞ ﺍﻷﺳﺎﺳﻴﺔ ﻓﻲ ﻗﺎﺋﻤﺔ ﺗﺴﺘﻄﻴﻊ‬
‫ﺍﺧﺘﻴﺎﺭﻫﺎ ﻣﺒﺎﺷﺮﺓ ﻭﺍﻟﺘﻌﺪﻳﻞ ﻋﻠﻴﻬﺎ‪.‬‬
‫‪ - 3‬ﺇﻣﻜﺎﻧﻴﺔ ﺍﺧﺘﻴﺎﺭ ﺩﻭﺍﻝ ﻣﺒﻨﻴﺔ ﻓﻲ ﺍﻟﻠﻐﺔ ﻣﺴﺒﻘﺎ ً ﻭﺍﺳﺘﺨﺪﺍﻣﻬﺎ ﻣﺒﺎﺷﺮﺓ ﻓﻲ ﻣﺤﺮﺭ ﺍﻷﻭﺍﻣﺮ‪.‬‬
‫‪ Data Window Object‬ﻋﻦ ﻁﺮﻳﻖ ﺑﻨﺎء ﺍﻟﺘﻌﺒﻴﺮ‬ ‫‪ - 4‬ﺑﺈﻣﻜﺎﻧﻚ ﻛﺘﺎﺑﺔ ﻛﻮﺩ ﻓﻲ ﻧﻔﺲ ﻛﺎﺋﻦ ﺷﺎﺷﺔ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫‪.Expression Builder‬‬
‫‪ - 5‬ﺇﻣﻜﺎﻧﻴﺔ ﺑﻨﺎء ﺟﻤﻠﺔ ‪ SQL Statement‬ﻋﻦ ﻁﺮﻳﻖ ‪ SQL Builder‬ﺑﺴﺮﻋﺔ ﻭﺳﻬﻮﻟﺔ‪.‬‬
‫‪ - 6‬ﺇﻣﻜﺎﻧﻴﺔ ﺗﻔﻌﻴﻞ ‪ Auto Script‬ﺍﻟﻨﺺ ﺍﻵﻟﻲ ﻋﻨﺪ ﻭﺿﻊ ﺍﻟﻨﻘﻄﺔ )‪ (.‬ﺳﻮﻑ ﺗﻈﻬﺮ ﺟﻤﻴﻊ ﺍﻟﺨﺼﺎﺋﺺ ﻭﺍﻟﺪﻭﺍﻝ ﺍﻟﺘﺎﺑﻌﺔ‬
‫ﻟﻠﻜﺎﺋﻦ ﺑﻘﺎﺋﻤﺔ ﻣﻨﺴﺪﻟﺔ ﺗﺴﻬﻞ ﻋﻠﻴﻚ ﻛﺘﺎﺑﺔ ﺍﻷﻭﺍﻣﺮ‪.‬‬

‫)‪ (4-1‬ﺍﻟﻤﺘﻐﻴﺮﺍﺕ )‪ (Variables‬ﻭﺍﻟﺘﻌﺮﻑ ﻋﻠﻰ ﺃﻧﻮﺍﻋﻬﺎ‪:‬‬


‫ﺍﻟﻤﺘﻐﻴﺮﺍﺕ )‪ :(Variables‬ﻫﻲ ﻋﺒﺎﺭﺓ ﻋﻦ ﺃﻭﻋﻴﺔ ﺑﻴﺎﻧﺎﺕ ﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻻﺳﺘﺨﺪﺍﻣﻬﺎ ﻓﻲ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔ‬
‫ﻭﻏﻴﺮﻫﺎ ﻣﻦ ﺍﻟﻌﻤﻠﻴﺎﺕ ﻭﺗﺨﺰﻳﻦ ﻣﺆﻗﺖ ﻟﻠﺒﻴﺎﻧﺎﺕ ﺇﻣﺎ ﻋﻦ ﻁﺮﻳﻖ ﻗﺮﺍءﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻣﻦ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺃﻭ ﻋﻦ ﻁﺮﻳﻖ ﺷﺎﺷﺎﺕ‬
‫ﺇﺩﺧﺎﻝ ﺃﻭ ﻁﺮﻕ ﺃﺧﺮﻯ‪.‬‬
‫ﺃﻧﻮﺍﻉ ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‪:‬‬
‫ﻋﺒﺎﺭﺓ ﻋﻦ ﻛﺎﺋﻦ ﺛﻨﺎﺋﻲ )‪ (Binary‬ﺿﺨﻢ‪ ،‬ﻳﺴﺘﺨﺪﻡ ﻟﺘﺨﺰﻳﻦ ﺑﻴﺎﻧﺎﺕ ﻏﻴﺮ ﻣﺤﺪﻭﺩﺓ ﺍﻟﻜﻤﻴﺔ )ﻣﻔﺘﻮﺡ(‬ ‫‪-1‬‬
‫ﻣﺜﺎﻝ‪:‬‬ ‫‪Blob‬‬
‫)ﺻﻮﺭﺓ‪ ،‬ﻭﺛﻴﻘﺔ ﻭﻭﺭﺩ(‪.‬‬
‫ﺗﺤﺘﻮﻱ ﺇﻣﺎ ‪ True‬ﺃﻭ ‪.False‬‬ ‫‪Boolean - 2‬‬
‫ﺣﺮﻑ ﻭﺍﺣﺪ ﻣﻦ ﺟﺪﻭﻝ ‪ASCII‬‬ ‫‪-3‬‬
‫ﻣﺜﺎﻝ‪:‬‬
‫‪Char C‬‬ ‫‪Char or character‬‬
‫'‪C = 'T‬‬
‫"‪C = "T‬‬
‫ﺍﻟﺘﺎﺭﻳﺦ‪ :‬ﻳﺤﺘﻮﻱ ﺍﻟﺴﻨﺔ ﻛﺎﻣﻠﺔ )‪ 1000‬ﺇﻟﻰ ‪ ،(3000‬ﻋﺪﺩ ﺍﻟﺸﻬﻮﺭ )‪ 1‬ﺇﻟﻰ ‪ ،(12‬ﺍﻷﻳﺎﻡ )‪ 1‬ﺇﻟﻰ ‪.(31‬‬ ‫‪-4‬‬
‫ﻣﺜﺎﻝ‪:‬‬
‫‪Date‬‬
‫‪December 25, 1992 // 25-12-1992‬‬
‫‪February 6, 1995 // 06-02-1995‬‬
‫ﺍﻟﺘﺎﺭﻳﺦ ﻭﺍﻟﻮﻗﺖ ﻓﻲ ﻧﻮﻉ ﺑﻴﺎﻧﺎﺕ ﻭﺍﺣﺪ‪ ،‬ﻳﺴﺘﺨﺪﻡ ﻓﻘﻂ ﻟﻘﺮﺍءﺓ ﻭﻛﺘﺎﺑﺔ ﻗﻴﻢ ﺍﻟﺘﺎﺭﻳﺦ ﻭﺍﻟﻮﻗﺖ ﻣﻦ ﻭﺇﻟﻰ‬ ‫‪-5‬‬
‫ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪ ،‬ﻟﺘﺤﻮﻳﻞ ﻗﻴﻤﺔ ﺍﻟﺘﺎﺭﻳﺦ ﻭﺍﻟﻮﻗﺖ ﺇﻟﻰ ﺃﻧﻮﺍﻉ ﺑﻴﺎﻧﺎﺕ ﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟـ ‪ Pb‬ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫• )‪ :Date(datetime‬ﺩﺍﻟﺔ ﻟﺘﺤﻮﻳﻞ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪ DateTime‬ﺇﻟﻰ ‪ Date‬ﺃﻭ ﺗﺎﺭﻳﺦ‪ ،‬ﺑﻌﺪ‬
‫ﻗﺮﺍءﺗﻬﺎ ﻣﻦ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫‪DateTime‬‬
‫• )‪ :Time(DateTime‬ﺩﺍﻟﺔ ﻟﺘﺤﻮﻳﻞ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪ DateTime‬ﺇﻟﻰ ‪ Time‬ﺃﻭ ﻭﻗﺖ‪ ،‬ﺑﻌﺪ‬
‫ﻗﺮﺍءﺗﻬﺎ ﻣﻦ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫• )‪ :DateTime(Date, Time‬ﺩﺍﻟﺔ ﻟﺘﺤﻮﻳﻞ ﺍﻟﺘﺎﺭﻳﺦ ﻭﺍﻟﻮﻗﺖ )ﺍﺧﺘﻴﺎﺭﻱ( ﺇﻟﻰ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫‪ DateTime‬ﻗﺒﻞ ﻛﺘﺎﺑﺘﻬﺎ ﻋﻠﻰ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‪.‬‬
‫ﺭﻗﻢ ﻋﺸﺮﻱ )‪ (-/+‬ﺣﺘﻰ ‪ 18‬ﺧﺎﻧﺔ ﻭﺑﺈﻣﻜﺎﻧﻚ ﻧﻘﻞ ﺍﻟﻔﺎﺻﻠﺔ ﺍﻟﻌﺸﺮﻳﺔ ﻟﺤﺪ ‪ 18‬ﺧﺎﻧﺔ ﻣﺜﺎﻝ‪:‬‬ ‫‪-6‬‬
‫‪123,456‬‬
‫‪0.000000000000000001‬‬
‫‪12345678901234.5678‬‬
‫ﻫﻨﺎﻙ ﺑﻌﺾ ﺍﻟﺼﻴﻎ ﺍﻟﻤﺘﺸﺎﺑﻬﺔ ﻭﻫﻲ‪:‬‬ ‫‪Decimal or Dec‬‬
‫• ‪ 95‬ﺃﻭ ‪ +95‬ﻫﻲ ﻧﻔﺲ ﺍﻟﻘﻴﻤﺔ‬
‫• ‪ 0.1‬ﺃﻭ ‪ .1‬ﻫﻲ ﻧﻔﺲ ﺍﻟﻘﻴﻤﺔ‬
‫• ‪ 32.00‬ﺃﻭ ‪ 32.0‬ﺃﻭ ‪ 32.‬ﻫﻲ ﻧﻔﺲ ﺍﻟﻘﻴﻤﺔ‪.‬‬

‫‪70‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺭﻗﻢ ﻋﺎﺋﻢ )‪ (-/+‬ﺑـ ‪ 15‬ﺧﺎﻧﺔ ﻣﻦ ﺍﻟﺪﻗﺔ ﻭﻣﺠﺎﻝ‬ ‫‪-7‬‬


‫ﻣﻦ‬
‫‪2.2250738585073E-308‬‬ ‫‪Double‬‬
‫ﺇﻟﻰ‬
‫‪1.79769313486231E+308‬‬
‫‪ 16-Bit‬ﺻﺤﻴﺢ ﻣﻦ ‪ -32768‬ﺇﻟﻰ ‪+32768‬‬ ‫‪Integer or Int - 8‬‬
‫‪ 32-Bit‬ﺻﺤﻴﺢ ﻣﻦ ‪ -2,147,483,648‬ﺇﻟﻰ ‪+2,147,483,647‬‬ ‫‪Long - 9‬‬
‫‪ 64-Bit‬ﺻﺤﻴﺢ ﻣﻦ ‪ -9223372036854775808‬ﺇﻟﻰ ‪9223372036854775807‬‬ ‫‪LongLong - 10‬‬
‫ﺭﻗﻢ ﻋﺎﺋﻢ )‪ (-/+‬ﺑـ ‪ 6‬ﺧﺎﻧﺎﺕ ﻣﻦ ﺍﻟﺪﻗﺔ ﻭﻣﺠﺎﻝ‬ ‫‪- 11‬‬
‫ﻣﻦ‬
‫‪1.175495E-38‬‬ ‫‪Real‬‬
‫ﺇﻟﻰ‬
‫‪3.402822E+38‬‬
‫ﺃﻱ ﺣﺮﻑ ‪ ASCII‬ﺑﻄﻮﻝ ﻣﺘﻐﻴﺮ )‪ 0‬ﺇﻟﻰ ‪ ،(2,147,483,647‬ﻣﻮﺟﻮﺩﺓ ﻓﻲ ﺗﻄﺒﻴﻘﻚ ﻟﻠﺤﺮﻭﻑ‬ ‫‪- 12‬‬
‫ﻛﺎﻷﺳﻤﺎء‪ ،‬ﺍﻟﻌﻨﺎﻭﻳﻦ‪ ،‬ﻭﻫﻜﺬﺍ‪.‬‬
‫ﻭﺗﻮﻓﺮ ﻟﻐﺔ ﺍﻟـ ‪ Pb‬ﺩﻭﺍﻝ ﻋﺪﻳﺪﺓ ﻟﻤﻌﺎﻟﺠﺔ ﺍﻟـ ‪ String‬ﻣﺜﺎﻝ ﺩﺍﻟﺔ ﺗﺤﻮﻝ ﺍﻟﺤﺮﻭﻑ ﻟﻠﺤﺮﻭﻑ ﺍﻟﻜﺒﻴﺮﺓ ‪a‬‬
‫ﺇﻟﻰ ‪ ،A‬ﻭﺩﺍﻟﺔ ﺃﺧﺮﻯ ﺗﻘﻮﻡ ﺑﺈﻟﻐﺎء ﺍﻟﻔﺮﺍﻏﺎﺕ ﺑﻴﻦ ﺍﻟﺤﺮﻭﻑ‪.‬‬

‫‪string s1‬‬
‫'‪s1 = 'This is a string‬‬
‫"‪s1 = "This is a string‬‬
‫‪String‬‬
‫ﻭﺑﺈﻣﻜﺎﻧﻚ ﺗﻀﻤﻴﻦ ﺍﻟﻌﻼﻣﺔ )'( ﻓﻲ ﺍﻟـ‪ String‬ﻣﺜﺎﻝ‪:‬‬
‫‪Here's a string:‬‬
‫‪string s1‬‬
‫‪s1 = "Here's a string".‬‬

‫ﺃﻭ ﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﻼﻣﺔ )~( ﻟﺘﻀﻤﻴﻦ ﺍﻟﻌﻼﻣﺔ)'( ﺩﺍﺧﻞ ﺍﻟـ ‪ String‬ﻣﺜﺎﻝ‪:‬‬
‫"'‪string s1 = 'He said, "It~'s good‬‬

‫ﺍﻟﻮﻗﺖ ﻓﻲ ﺻﻴﻐﺔ ‪ 24‬ﺳﺎﻋﺔ ‪ ،‬ﻳﻀﻢ ﺍﻟﺴﺎﻋﺎﺕ )‪ 00‬ﺇﻟﻰ ‪ (23‬ﺍﻟﺪﻗﺎﺋﻖ )‪ 00‬ﺇﻟﻰ ‪ (59‬ﺍﻟﺜﻮﺍﻧﻲ )‪ 00‬ﺇﻟﻰ‬ ‫‪- 13‬‬
‫‪ (59‬ﻭﺟﺰء ﻣﻦ ﺍﻟﺜﺎﻧﻴﺔ ﺇﻟﻰ ‪ 6‬ﺧﺎﻧﺎﺕ ﻣﻦ ‪ 00:00:00‬ﺇﻟﻰ ‪23:59:59.999999‬‬
‫ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﺍﻟﻮﻗﺖ‪:‬‬
‫‪21:09:15‬‬ ‫‪ 15‬ﺛﺎﻧﻴﺔ ﺑﻌﺪ ﺍﻟﺴﺎﻋﺔ ‪= 9:09 pm‬‬ ‫‪Time‬‬
‫‪6:00:00‬‬ ‫ﺗﻤﺎﻣﺎ ً ‪= 6 am‬‬
‫‪10:29:59‬‬ ‫ﺛﺎﻧﻴﺔ ﻭﺍﺣﺪﺓ ﻗﺒﻞ ﺍﻟﺴﺎﻋﺔ ‪= 10:30 am‬‬
‫‪ 10/1‬ﻣﻦ ﺍﻟﺜﺎﻧﻴﺔ ﻗﺒﻞ ﺍﻟﺴﺎﻋﺔ ‪10:29:59.9sec = 10:30 am‬‬
‫‪16-Bit‬ﺻﺤﻴﺢ ﻣﻦ ﻏﻴﺮ ﺇﺷﺎﺭﺓ )‪ (-/+‬ﻣﻦ ‪ 0‬ﺇﻟﻰ ‪65,535‬‬ ‫‪UnsignedInteger, - 14‬‬
‫‪UnsignedInt, or‬‬
‫‪UInt‬‬
‫‪ 32-Bit‬ﺻﺤﻴﺢ ﻣﻦ ﺩﻭﻥ ﺇﺷﺎﺭﺓ )‪ ( -/+‬ﻣﻦ ‪ 0‬ﺇﻟﻰ ‪4,294,967,295‬‬ ‫‪UnsignedLong or - 15‬‬
‫‪ULong‬‬

‫ﺇﺫﺍ ﻛﺎﻥ ﻋﻨﺪﻙ ﺧﺒﺮﺓ ﻭﻋﻤﻠﺖ ﻋﻠﻰ ﻟﻐﺎﺕ ﺑﺮﻣﺠﺔ ﺃﺧﺮﻯ ﺳﺘﺠﺪ ﺑﺄﻧﻚ ﻗﺮﻳﺐ ﻣﻤﺎ ﺷﺮﺣﻨﺎﻩ ﺳﺎﺑﻘﺎ ً ﻋﻦ ﺍﻟﻤﺘﻐﻴﺮﺍﺕ‪ ،‬ﻻ ﻳﻮﺟﺪ‬
‫ﺍﺧﺘﻼﻑ ﺇﻻ ﻟﺒﻌﺾ ﺍﻟﻤﺴﻤﻴﺎﺕ‪.‬‬

‫‪71‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫)‪ (4-2‬ﺍﻷﻭﺍﻣﺮ ﺃﻭ ﺍﻟﺠﻤﻞ ‪:Statements or Commands‬‬


‫ﺍﻷﻭﺍﻣﺮ ﺃﻭ ﺍﻟﺠﻤﻞ ﻫﻲ ﺍﻟﻠﻐﺔ ﺍﻟﺘﻲ ﻳﺴﺘﻄﻴﻊ ﺃﻥ ﻳﻤﻠﻴﻬﺎ ﺍﻟﻤﺒﺮﻣﺞ ﻋﻠﻰ ﺍﻟﺤﺎﺳﻮﺏ ﻟﻴﺤﻘﻖ ﻧﺘﻴﺠﺔ ﻣﻌﻴﻨﺔ ﻣﻦ ﺇﺩﺍﺭﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ‬
‫ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﻗﺎﻋﺪﺓ ﺍﻟﺒﻴﺎﻧﺎﺕ ﻋﻠﻰ ﺷﻜﻞ ﺑﺮﻧﺎﻣﺞ ﻳﻌﻤﻞ ﺗﺤﺖ ﺑﻴﺌﺔ ﻧﻈﺎﻡ ﺍﻟﺘﺸﻐﻴﻞ‪ ،‬ﻭﻫﻨﺎ ﻳﺨﺘﻠﻒ ﺍﻟﻤﺒﺮﻣﺠﻮﻥ ﺣﺴﺐ ﺭﺅﻳﺘﻬﻢ‬
‫ﻟﻠﻤﺸﻜﻠﺔ ﻭﺗﺼﻮﺭﻫﻢ ﻟﻠﺤﻞ ﺍﻷﻣﺜﻞ‪ ،‬ﻭﻳﻤﻜﻦ ﺃﻥ ﻧﺴﺄﻝ ﺍﻟﺴﺆﺍﻝ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫ﺳﺆﺍﻝ( ﻣﺎ ﻫﻲ ﺍﻟﻌﻮﺍﻣﻞ ﺍﻟﺘﻲ ﺗﺆﺛﺮ ﻋﻠﻰ ﺇﻳﺠﺎﺩ ﺍﻟﺤﻞ ﺍﻷﻣﺜﻞ ﻟﻤﺴﺄﻟﺔ ﺑﺮﻣﺠﻴﺔ؟‬
‫ﺟﻮﺍﺏ( ﻫﻨﺎﻙ ﻋﺪﺓ ﻋﻮﺍﻣﻞ ﺗﺆﺛﺮ ﻋﻠﻰ ﺍﻟﺤﻞ ﻭﻫﻲ‪:‬‬
‫• ﺧﺒﺮﺓ ﺍﻟﻤﺒﺮﻣﺞ ﺑﺄﺩﻭﺍﺕ ﺍﻟﻠﻐﺔ ﻫﻞ ﻫﻮ ﻣﻠﻢ ﺑﺄﻏﻠﺐ ﺃﺩﻭﺍﺕ ﺍﻟﻠﻐﺔ ﻭﺍﻷﻭﺍﻣﺮ ﻭﺍﻟﺠﻤﻞ‪ ،‬ﻭﺍﻟﺪﺭﺍﻳﺔ ﺍﻟﻜﺎﻓﻴﺔ ﺑﺈﻣﻜﺎﻧﻴﺎﺕ ﺍﻟﻠﻐﺔ‪.‬‬
‫• ﺧﺒﺮﺓ ﺍﻟﻤﺒﺮﻣﺞ ﻓﻲ ﻣﺠﺎﻝ ﺍﻟﻤﻌﺮﻓﺔ ﺍﻟﺬﻱ ﻳﻄﺒﻖ ﻓﻴﻪ ﻣﺸﺮﻭﻋﻪ ﻭﺳﻴﺮ ﺍﻟﻌﻤﻞ ﺍﻟﺬﻱ ﻳﺘﺮﺟﻤﻪ ﺇﻟﻰ ﺑﺮﻧﺎﻣﺞ‪ ،‬ﺇﺫﺍ ﺩﺭﺳﺖ‬
‫ﻭﺣﻠﻠﺖ ﻧﻈﺎﻡ ﻋﻤﻞ ﻣﻌﻴﻦ ﻷﺣﺪ ﺍﻷﻧﺸﻄﺔ ﻭﻛﻨﺖ ﻋﻠﻰ ﺩﺭﺍﻳﺔ ﻛﺒﻴﺮﺓ ﺑﻄﺮﻳﻘﺔ ﻋﻤﻞ ﻫﺬﺍ ﺍﻟﻨﺸﺎﻁ ﺳﺘﻜﻮﻥ ﻟﺪﻳﻚ ﻓﺮﺻﺔ ﺃﻛﺒﺮ‬
‫ﻟﺘﺠﺴﻴﺪ ﺍﻟﻨﺸﺎﻁ‪.‬‬
‫• ﺍﺳﺘﺨﺪﺍﻡ ﺍﻷﺩﻭﺍﺕ ﺍﻟﺘﺤﻠﻴﻠﻴﺔ ﺍﻟﻤﻌﺮﻓﻴﺔ ﻻﺳﺘﻨﺘﺎﺝ ﺍﻟﺤﻞ ﺍﻷﻣﺜﻞ‪.‬‬
‫• ﺍﻟﺮﺅﻳﺔ ﺍﻟﻤﺴﺘﻘﺒﻠﻴﺔ ﻟﻠﺤﻞ‪ ،‬ﻭﻭﺿﻮﺡ ﻫﺬﻩ ﺍﻟﺮﺅﻳﺎ ﺗﻌﻄﻲ ﺷﻤﻮﻟﻴﺔ ﻟﻠﺤﻞ ﺗﻮﻓﺮ ﻋﻠﻴﻚ ﻋﻨﺎء ﺍﻟﺘﻌﺪﻳﻼﺕ ﻓﻲ ﺍﻟﻤﺴﺘﻘﺒﻞ‬
‫ﺑﺸﻜﻞ ﻣﻠﺤﻮﻅ‪.‬‬
‫ﻭﻻ ﺑﺪ ﻣﻦ ﺃﻥ ﺃﻋﻄﻲ ﺑﻌﺾ ﺍﻟﻨﺼﺎﺋﺢ ﻓﻲ ﻫﺬﺍ ﺍﻟﺒﺎﺏ ﻭﻟﻜﻮﻧﻚ ﺳﺘﻘﻮﻡ ﺑﺈﻧﺸﺎء ﺑﺮﻧﺎﻣﺠﻚ ﺍﻟﺨﺎﺹ ﺑﻠﻐﺔ ‪ PB‬ﺇﻥ ﺷﺎء ﷲ ﺑﻌﺪ ﺃﻥ‬
‫ﺗﻘﺮﺃ ﻫﺬﺍ ﺍﻟﻜﺘﺎﺏ ﻭﻣﻦ ﺃﻫﻢ ﻫﺬﻩ ﺍﻟﻨﺼﺎﺋﺢ‪:‬‬
‫‪ .1‬ﺗﺮﺗﻴﺐ ﺍﻟﺠﻤﻞ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺑﺤﻴﺚ ﻳﺴﻬﻞ ﺗﺘﺒﻌﻬﺎ ﺩﻭﻥ ﻋﻨﺎء‪ ،‬ﻟﺘﻜﻮﻥ ﻋﻠﻰ ﻫﻴﺌﺔ ﻗﻄﺎﻋﺎﺕ‪.‬‬
‫‪ .2‬ﺍﺳﺘﺨﺪﺍﻡ ﺍﻟﺘﻌﻠﻴﻘﺎﺕ ﺑﻜﺜﺮﺓ ﻟﺘﻜﻮﻥ ﻟﻚ ﻭﻟﻐﻴﺮﻙ ﻣﻦ ﺍﻟﻤﺒﺮﻣﺠﻴﻦ ﺇﺷﺎﺭﺍﺕ ﺗﻮﺿﻴﺤﻴﺔ ﺗﻌﻄﻴﻚ ﻟﻤﺤﺔ ﺳﺮﻳﻌﺔ ﻋﻦ ﺍﻟﻬﺪﻑ‬
‫ﻭﺍﻟﻤﺪﺧﻼﺕ ﻭﺍﻟﻤﺨﺮﺟﺎﺕ‪.‬‬
‫‪ .3‬ﻗﻢ ﺑﺎﻟﺘﻮﻗﻴﻊ ﻋﻠﻰ ﻋﻤﻠﻚ ﺍﻟﺬﻱ ﻗﻤﺖ ﺑﺼﻨﻌﻪ ﺑﻮﺿﻊ ﺍﺳﻤﻚ ﻋﻠﻰ ﻫﺬﻩ ﺍﻟﺠﺰﺋﻴﺔ ﻟﻤﻌﺮﻓﺔ ﻣﻦ ﻫﻮ ﺍﻟﺬﻱ ﺑﻨﺎﻫﺎ ﻓﻲ ﺣﺎﻝ‬
‫ﻭﺟﻮﺩ ﺃﻛﺜﺮ ﻣﻦ ﻣﺒﺮﻣﺞ ﻳﻌﻤﻠﻮﻥ ﻋﻠﻰ ﺑﻨﺎء ﺍﻟﺒﺮﻧﺎﻣﺞ‪.‬‬
‫‪ .4‬ﻗﻢ ﺑﺘﻄﻮﻳﺮ ﺑﺮﻧﺎﻣﺠﻚ ﻓﻲ ﺣﻴﻦ ﺍﻛﺘﺸﻔﺖ ﺃﺩﺍﺓ ﺃﻭ ﺟﻤﻠﺔ ﺃﻭ ﺩﺍﻟﺔ ﺗﻘﻮﻡ ﺑﻨﻔﺲ ﺍﻟﺠﺰﺋﻴﺔ ﺍﻟﺘﻲ ﺑﻨﻴﺘﻬﺎ‪.‬‬
‫‪ .5‬ﻗﻢ ﺑﺘﺨﺼﻴﺺ ﻭﻗﺖ ﻳﻮﻣﻲ ﻟﻘﺮﺍءﺓ ﻣﻮﺿﻮﻉ ﻓﻲ ﺟﺰﺋﻴﺔ ﺍﻟﻤﺴﺎﻋﺪﺓ ‪ Help‬ﺍﻟﻤﻮﺟﻮﺩ ﻓﻲ ﻟﻐﺔ ﺍﻟـ ‪ PB‬ﻟﻠﺘﻮﺳﻴﻊ ﻣﺠﺎﻝ‬
‫ﻣﻌﺮﻓﺘﻚ ﻓﻲ ﺍﻟﻠﻐﺔ‪.‬‬
‫‪ .6‬ﻗﻢ ﺑﺰﻳﺎﺭﺓ ﻣﻮﻗﻊ ﺍﻟﺸﺮﻛﺔ ﺍﻟﻤﻨﺘﺠﺔ ﻟﻠﻐﺔ ﺍﻟﺒﺮﻣﺠﺔ ﻭﺍﻹﻁﻼﻉ ﻋﻠﻰ ﺁﺧﺮ ﺍﻷﺧﺒﺎﺭ ﻭﺍﻹﺻﺪﺍﺭﺍﺕ ﺍﻟﺠﺪﻳﺪﺓ ﻟﻠﻐﺔ ﺍﻟﺒﺮﻣﺠﺔ‬
‫ﻟﻤﻮﺍﻛﺒﺔ ﺍﻟﺘﻄﻮﺭﺍﺕ ﺍﻟﺠﺪﻳﺪﺓ‪.‬‬

‫‪72‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺟﻤﻠﺔ ﺍﻟﺘﻌﻴﻴﻦ ﻟﻠﻤﺘﻐﻴﺮﺍﺕ ‪Assignment Statement‬‬


‫ﺍﻟﻮﺻﻒ ‪:Description‬‬
‫ﻫﻮ ﺗﺨﺰﻳﻦ ﻗﻴﻤﺔ ﻣﻌﻴﻨﺔ ﻓﻲ ﻣﺘﻐﻴﺮ ﺃﻭ ﻓﻲ ﺧﺼﺎﺋﺺ ﺍﻟﻜﺎﺋﻨﺎﺕ ﻻﺳﺘﺨﺪﺍﻣﺎﺕ ﺑﺮﻣﺠﻴﺔ ﻭﺗﻌﺘﺒﺮ ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﻣﻦ ﺃﺑﺴﻂ ﺍﻟﺠﻤﻞ‬
‫ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺘﻲ ﻳﻤﻜﻨﻚ ﺍﺳﺘﺨﺪﺍﻣﻬﺎ‪.‬‬
‫ﺍﻟﺼﻴﻐﺔ ‪:Syntax‬‬
‫‪variablename = expression‬‬
‫ﺍﻟﺘﻌﺒﻴﺮ = ﺍﺳﻢ ﺍﻟﻤﺘﻐﻴﺮ‬
‫ﺍﻹﺳﺘﺨﺪﺍﻡ ‪: Usage‬‬
‫ﻹﺳﻨﺎﺩ ﻗﻴﻤﺔ ﻟﻠﻤﺘﻐﻴﺮ ﺍﺳﺘﺨﺪﻡ ﺇﺷﺎﺭﺓ )=(‪ ،‬ﻣﺜﺎﻝ ﻋﻠﻰ ﺫﻟﻚ‪:‬‬
‫" ‪String1 = "Part is out of stock‬‬
‫‪TaxRate = .05‬‬
‫ﻻ ﺗﻮﺟﺪ ﺟﻤﻞ ﺗﻌﻴﻴﻦ ﻣﺮﻛﺒﺔ‬
‫ﻭﺑﻤﺎ ﺃﻥ ﻋﻼﻣﺔ ﺍﻟﻤﺴﺎﻭﺍﺓ ﻋﻤﻠﻴﺔ ﻣﻨﻄﻘﻴﺔ ﺃﻳﻀﺎً‪ ،‬ﻻ ﺗﺴﺘﻄﻴﻊ ﺗﻌﻴﻴﻦ ﺃﻛﺜﺮ ﻣﻦ ﻣﺘﻐﻴﺮ ﻓﻲ ﺟﻤﻠﺔ ﻭﺍﺣﺪﺓ ﻻﺣﻆ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫‪A=B=0‬‬
‫ﺍﻟﺮﻗﻢ ‪ 0‬ﻟﻦ ﻳﻌﻴﻦ ﻟﻠﻤﺘﻐﻴﺮﻳﻦ ‪A‬ﻭ ‪B‬‬
‫ﺍﻟﺠﻤﻠﺔ ﺗﻘﻮﻡ ﺑﺎﺣﺘﺴﺎﺏ ‪ B=0‬ﻟﻠﻘﻴﻢ ‪ True‬ﺃﻭ ‪ False‬ﻭﻣﻦ ﺛﻢ ﻣﺤﺎﻭﻟﺔ ﺇﺳﻨﺎﺩ ﺍﻟﻨﺘﻴﺠﺔ ﺍﻟﻤﻨﻄﻘﻴﺔ ﺇﻟﻰ ﺍﻟﻤﺘﻐﻴﺮ ‪ ،A‬ﺇﺫﺍ ﻛﺎﻥ‬
‫ﺍﻟﻤﺘﻐﻴﺮ ‪ A‬ﻟﻴﺲ ﻣﻦ ﻧﻮﻉ ﻣﻨﻄﻘﻲ ‪ Boolean‬ﻓﺈﻥ ﺍﻟﺒﺮﻧﺎﻣﺞ ﻋﻨﺪ ﺍﻟﺘﻨﻔﻴﺬ ﺳﻴﻌﻄﻲ ﺭﺳﺎﻟﺔ ﺧﻄﺄ‪.‬‬
‫ﺗﻌﻴﻴﻦ ﻗﻴﻢ ﻟﻠﻤﺼﻔﻮﻓﺔ‪:‬‬
‫ﺗﺴﺘﻄﻴﻊ ﺇﺳﻨﺎﺩ ﺃﻛﺜﺮ ﻣﻦ ﻗﻴﻤﺔ ﻟﻠﻤﺼﻔﻮﻓﺔ ﻓﻲ ﺟﻤﻠﺔ ﻭﺍﺣﺪﺓ‪ ،‬ﻣﺜﺎﻝ‪:‬‬
‫][‪ int Arr‬ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ ﻣﻦ ﻧﻮﻉ ‪ Integer‬ﻭﻫﺬﺍ ﻳﻌﻨﻲ ﺗﻌﺮﻳﻒ ﻣﺼﻔﻮﻓﺔ ﻣﻔﺘﻮﺣﺔ‬ ‫‪1‬‬
‫ﺍﻟﺤﺪﻭﺩ ﻭﺗﻘﺒﻞ ﻗﻴﻢ ‪ integer‬ﻓﻘﻂ‪.‬‬
‫‪ int‬ﻫﻲ ﺍﺧﺘﺼﺎﺭ ﻟﻠﻨﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪.integer‬‬
‫}‪ Arr = {1, 2, 3, 4‬ﺟﻤﻠﺔ ﺍﻹﺳﻨﺎﺩ ﻭﺗﻘﻮﻡ ﺑﺈﺳﻨﺎﺩ ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻷﺭﻗﺎﻡ ﺩﻓﻌﺔ ﻭﺍﺣﺪﺓ ﻟﻠﻤﺼﻔﻮﻓﺔ‬ ‫‪2‬‬

‫‪ Arr2‬ﺇﻟﻰ‬ ‫ﺗﺴﺘﻄﻴﻊ ﻧﺴﺦ ﻣﺤﺘﻮﻳﺎﺕ ﻣﺼﻔﻮﻓﺔ ﺇﻟﻰ ﺃﺧﺮﻯ‪ ،‬ﻣﺜﺎﻝ ﻋﻠﻰ ﺫﻟﻚ ﻫﺬﺍ ﺍﻟﻤﺜﺎﻝ ﻳﻘﻮﻡ ﺑﻨﺴﺦ ﻣﺤﺘﻮﻳﺎﺕ ﺍﻟﻤﺼﻔﻮﻓﺔ‬
‫‪.Arr1‬‬
‫‪Arr1 = Arr2‬‬
‫ﺍﺧﺘﺼﺎﺭ ﻟﻠﻌﻤﻠﻴﺎﺕ ‪:Operation Shortcuts‬‬
‫ﻣﺴﺎﻭﻳﺔ ﻟـ ‪Equivalent To‬‬ ‫ﻣﺜﺎﻝ ‪Example‬‬ ‫ﺍﻟﺘﻌﻴﻴﻦ ‪Assignment‬‬ ‫‪No‬‬
‫‪i=i+1‬‬ ‫‪i++‬‬ ‫‪++‬‬ ‫‪1‬‬
‫‪i=i-1‬‬ ‫‪i--‬‬ ‫‪--‬‬ ‫‪2‬‬
‫‪i=i+3‬‬ ‫‪i +=3‬‬ ‫=‪+‬‬ ‫‪3‬‬
‫‪i=i-3‬‬ ‫‪i -=3‬‬ ‫=‪-‬‬ ‫‪4‬‬
‫‪i=i*3‬‬ ‫‪i *=3‬‬ ‫=*‬ ‫‪5‬‬
‫‪i=i/3‬‬ ‫‪i /=3‬‬ ‫=‪/‬‬ ‫‪6‬‬
‫‪i=i^3‬‬ ‫‪i ^=3‬‬ ‫=^‬ ‫‪7‬‬

‫ﺇﺫﺍ ﻛﺎﻥ ﻫﻨﺎﻙ ﻓﺎﺋﺪﺓ ﻣﻦ ﺍﺳﺘﺨﺪﺍﻣﻚ ‪ (-) Dash‬ﻓﻲ ﺍﻟﻤﺘﻐﻴﺮ ﻻ ﺑﺪ ﻣﻦ ﺃﻥ ﺗﺠﻌﻞ ﻣﺴﺎﻓﺔ ﺑﻴﻨﻬﺎ ﻭﺑﻴﻦ )‪ (--‬ﺃﻭ )=‪ ،(-‬ﺇﻥ ﻟﻢ ﺗﻔﻌﻞ‬
‫ﺳﻴﻌﺘﺒﺮ ﺍﻟـ ‪ Power Script‬ﻋﻼﻣﺔ ﺍﻟﻄﺮﺡ ﺟﺰء ﻣﻦ ﺍﻟﻤﺘﻐﻴﺮ‪.‬‬

‫‪73‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺃﺭﺟﻮﺍ ﺍﻻﻧﺘﺒﺎﻩ ﻟﻬﺬﻩ ﺍﻷﻣﺜﻠﺔ‪:‬‬


‫‪ .1‬ﺳﻨﻘﻮﻡ ﺑﺘﻌﺮﻳﻒ ﻣﺘﻐﻴﺮﺍﺕ ﻣﻦ ﻧﻮﻉ ‪ Integer‬ﻭﻧﺴﻨﺪ ﺇﻟﻴﻬﺎ ﻗﻴﻤﺔ ﻭﻧﻘﻮﻡ ﺑﻌﻤﻞ ﺑﻌﺾ ﺍﻟﻌﻤﻠﻴﺎﺕ ﺍﻟﺤﺴﺎﺑﻴﺔ‬
‫ﺗﻼﺣﻆ ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﺍﻟﻤﺘﻐﻴﺮﺍﺕ ‪ ii_no3 ،ii_no2 ،ii_no1‬ﻛﺄﺭﻗﺎﻡ‬
‫ﻭﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ‬
‫ﺍﻟﻤﺘﻮﺳﻂ ﺍﻟﺤﺴﺎﺑﻲ ﻟﻸﺭﻗﺎﻡ ﺃﻋﻼﻩ ‪ii_avg :‬‬ ‫‪1‬‬
‫ﺍﻟﻤﺠﻤﻮﻉ ﻟﻸﺭﻗﺎﻡ ﺃﻋﻼﻩ ‪ii_sum :‬‬
‫ﻁﺮﺡ ﺍﻷﺭﻗﺎﻡ ﺃﻋﻼﻩ ‪ii_sub :‬‬
‫ﻫﺬﻩ ﻫﻲ ﺟﻤﻞ ﺍﻟﺘﻌﻴﻴﻦ ﺑﺤﻴﺚ ﺗﻘﻮﻡ ﺑﺈﺳﻨﺎﺩ ﺍﻟﻘﻴﻤﺔ ﺍﻟﻤﻄﻠﻮﺑﺔ ﻓﻲ ﺍﻟﻤﺘﻐﻴﺮ ﺍﻟﻤﻌﺮﻑ‬
‫ﻣﺴﺒﻘﺎ ﻓﻲ ﺍﻟﺨﻄﻮﺓ ﺭﻗﻢ ‪ 1‬ﺃﻋﻼﻩ‪.‬‬ ‫‪2‬‬
‫ﺍﻟﻘﻴﻤﺔ = ﺍﻟﻤﺘﻐﻴﺮ‬
‫ﻫﺬﻩ ﺟﻤﻠﺔ ﺍﺣﺘﺴﺎﺏ ﺍﻟﻤﺠﻤﻮﻉ ﻟﻠﻤﺘﻐﻴﺮﺍﺕ ﻭﺗﻌﻴﻴﻦ ﺣﺎﺻﻞ ﺍﻟﺠﻤﻊ ﻓﻲ ﺍﻟﻤﺘﻐﻴﺮ‬
‫‪3‬‬
‫‪ii_sum‬‬
‫ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﻻﺣﺘﺴﺎﺏ ﺍﻟﻤﺘﻮﺳﻂ ﺍﻟﺤﺴﺎﺑﻲ ﻟﻠﻤﺘﻐﻴﺮﺍﺕ ﺃﻋﻼﻩ ﻭﺗﻌﻴﻴﻦ ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ‬
‫‪4‬‬
‫ﺍﻟﻤﺘﻐﻴﺮ ‪ii_avg‬‬
‫ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﻻﺣﺘﺴﺎﺏ ﺣﺎﺻﻞ ﻁﺮﺡ ﺍﻟﻤﺘﻐﻴﺮﺍﺕ ﺃﻋﻼﻩ ﻭﺗﻌﻴﻴﻦ ﺍﻟﻨﺘﻴﺠﺔ ﻓﻲ‬
‫‪5‬‬
‫ﺍﻟﻤﺘﻐﻴﺮ ‪ii_sub‬‬
‫‪ .2‬ﻋﻤﻞ ﻋﺪﺍﺩ ‪:Counter‬‬
‫ﻳﻤﻜﻨﻚ ﻋﻤﻞ ﻋﺪﺍﺩ ﺗﺼﺎﻋﺪﻱ ﺃﻭ ﺗﻨﺎﻗﺼﻲ ﻟﻤﺘﻐﻴﺮ ﻣﺎ ﻭﻳﻤﻜﻨﻚ ﺯﻳﺎﺩﺗﻪ ﺃﻭ ﺇﻧﻘﺎﺻﻪ ﺑﻤﻘﺪﺍﺭ ﺛﺎﺑﺖ‪ ،‬ﺃﻧﻈﺮ ﺍﻟﺼﻴﻐﺔ ﺍﻟﻌﺎﻣﺔ‬
‫ﻟﻠﻌﺪﺍﺩ‪:‬‬
‫ﺭﻗﻢ )‪-‬ﺃﻭ‪ (+‬ﺍﻟﻤﺘﻐﻴﺮ = ﺍﻟﻤﺘﻐﻴﺮ‬
‫‪-) n‬ﺃﻭ‪ll_counter = ll_counter (+‬‬

‫ﻗﻤﻨﺎ ﺑﺘﻌﺮﻳﻒ ﺍﻟﻤﺘﻐﻴﺮ ‪ ll_counter‬ﻣﻦ ﻧﻮﻉ ‪Long‬‬ ‫‪1‬‬


‫ﺟﻤﻠﺔ ﺍﻟﻌﺪﺍﺩ‪ ،‬ﻻﺣﻆ ﺍﻟﺸﻜﻞ ﺍﻟﺘﺎﻟﻲ ‪:‬‬

‫ﺗﺠﺪ ﺃﻥ ﺍﻟﺠﺰء ﺭﻗﻢ ‪ 1‬ﻳﺘﻢ ﺗﻨﻔﻴﺬﻩ ﺃﻭﻻً ﺛﻢ ﻳﺘﻢ ﺗﻌﻴﻴﻦ ﻧﺘﻴﺠﺔ ﺍﻟﺠﺰء ﺭﻗﻢ ‪ 1‬ﻓﻲ‬
‫ﺍﻟﺠﺰء ﺭﻗﻢ ‪ ، 2‬ﻭﻫﻲ ﻗﺎﻋﺪﺓ ﻓﻲ ﺟﻤﻠﺔ ﺍﻟﺘﻌﻴﻴﻦ ﻟﻜﻞ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ‪.‬‬

‫ﺃﻧﻈﺮ ﺍﻟﺸﻜﻞ ﺃﺩﻧﺎﻩ ﻟﻤﻌﺮﻓﺔ ﺁﻟﻴﺔ ﺍﺣﺘﺴﺎﺏ ﺍﻟﻌﺪﺍﺩ‬ ‫‪2‬‬

‫ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﺗﺆﺩﻱ ﻧﻔﺲ ﻋﻤﻞ ﺍﻟﺠﻤﻠﺔ ﻓﻲ ﺧﻄﻮﺓ ﺭﻗﻢ ‪ 2‬ﻭﻫﻲ ﺑﺼﻴﻐﺔ ﻟﻐﺔ ‪C‬‬ ‫‪3‬‬

‫ﻭﺑﻨﻔﺲ ﺍﻟﻄﺮﻳﻘﺔ ﻳﻤﻜﻨﻚ ﺃﻥ ﺗﻄﺒﻖ ﻋﺪﺍﺩ ﺗﻨﺎﺯﻟﻲ ﻭﺫﻟﻚ ﺑﺘﺒﺪﻳﻞ ﺍﻹﺷﺎﺭﺓ )‪ (+‬ﺇﻟﻰ )‪ ،(-‬ﻭﺑﺈﻣﻜﺎﻧﻚ ﺍﺳﺘﺨﺪﺍﻣﻪ ﻓﻲ ﻛﺜﻴﺮ ﻣﻦ‬
‫ﺍﻟﻤﻮﺍﻗﻒ ﺍﻟﺒﺮﻣﺠﻴﺔ ﺍﻟﺘﻲ ﺗﺤﺘﺎﺝ ﻻﺳﺘﺨﺪﺍﻡ ﺍﻟﻌﺪﺍﺩ‪.‬‬

‫‪74‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺍﻟﺠﻤﻞ ﺍﻟﺸﺮﻁﻴﺔ ‪:Condition Statement‬‬


‫ﺃﻱ ﻟﻐﺔ ﺳﻮﺍء ﻛﺎﻧﺖ ﻟﻐﺔ ﺑﺸﺮﻳﺔ ﺃﻡ ﻟﻐﺔ ﺑﺮﻣﺠﻴﺔ ﻣﻦ ﺻﻨﺎﻋﺔ ﺍﻟﺒﺸﺮ ﺗﺘﻜﻮﻥ ﻣﻦ ﺟﻤﻞ ﻭﻣﻦ ﺃﻫﻢ ﺍﻟﺠﻤﻞ ﻫﻲ ﺍﻟﺠﻤﻞ‬
‫ﺍﻟﺸﺮﻁﻴﺔ ﻭﻫﻲ ﻧﻮﻉ ﻣﻦ ﺗﻮﺯﻳﻊ ﺍﻟﻌﻤﻞ ﺣﺴﺐ ﺷﺮﻁ ﻣﻌﻴﻦ ﺇﺫﺍ ﺗﺤﻘﻖ ﻳﻨﻔﺬ ﺍﻟﻤﻄﻠﻮﺏ ﻭﺇﻥ ﻟﻢ ﻳﺘﺤﻘﻖ ﺃﻣﺎ ﻳﻨﺘﻘﻞ ﻟﻠﺠﻤﻞ ﺍﻟﺘﺎﻟﻴﺔ‬
‫ﺃﻭ ﻳﻘﻮﻡ ﺑﻌﻤﻞ ﺁﺧﺮ‪.‬‬
‫ﻭﺑﻤﺎ ﺃﻥ ﺍﻟﻐﺮﺏ ﻫﻢ ﻣﻦ ﻁﻮﺭﻭﺍ ﻫﺬﻩ ﺍﻟﻠﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﻴﺔ ﻛﺎﻥ ﻣﻦ ﺍﻟﻄﺒﻴﻌﻲ ﺃﻥ ﺗﻜﻮﻥ ﺻﻴﻎ ﺍﻟﺠﻤﻞ ﺑﺎﻹﻧﺠﻠﻴﺰﻳﺔ ﻭﻟﻴﺴﺖ‬
‫ﺑﺎﻟﻌﺮﺑﻴﺔ‪ ،‬ﻣﻊ ﺃﻧﻪ ﺗﻮﺟﺪ ﺑﻌﺾ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ ﻣﺤﺪﻭﺩﺓ ﺍﻹﻣﻜﺎﻧﻴﺎﺕ ﺗﻜﺘﺐ ﺃﻭﺍﻣﺮﻫﺎ ﺑﺎﻟﻠﻐﺔ ﺍﻟﻌﺮﺑﻴﺔ ﻭﺗﺴﺘﺨﺪﻡ ﻓﻲ ﺍﻟﻤﺪﺍﺭﺱ‬
‫ﺍﻟﻤﺘﻮﺳﻄﺔ ﻟﻠﺘﺪﺭﻳﺐ ﻭﻛﻤﺪﺧﻞ ﻟﻠﺒﺮﻣﺠﺔ ﻭﺑﺈﻣﻜﺎﻧﻚ ﻛﺘﺎﺑﺔ ﺃﻭﺍﻣﺮ ﺑﺎﻟﻌﺮﺑﻴﺔ ﻣﺜﺎﻝ(‬
‫ﺃﻣﺎﻡ ‪ ،100‬ﻳﻤﻴﻦ ‪ ،50‬ﺧﻠﻒ ‪50‬‬
‫ﻭﻳﻘﻮﻡ ﺑﺮﺳﻢ ﺷﻜﻞ ﻣﻌﻴﻦ ﺃﻭ ﺍﻧﺘﻘﺎﻝ ﺍﻟﻤﺆﺷﺮ ﻟﻠﻨﻘﻄﺔ ﺇﺣﺪﺍﺛﻴﺎﺕ ﺟﺪﻳﺪﺓ‪.‬‬
‫ﺣﺘﻰ ﻳﻤﻦ ﷲ ﻋﻠﻴﻨﺎ ﻭﻧﺼﺒﺢ ﻣﻦ ﻣﻨﺘﺠﻲ ﻟﻐﺎﺕ ﺍﻟﺒﺮﻣﺠﺔ‪ ،‬ﻣﺎ ﻋﻠﻴﻨﺎ ﺇﻻ ﺃﻥ ﻧﺴﺘﺨﺪﻡ ﻫﺬﻩ ﺍﻟﻠﻐﺎﺕ ﺍﻟﻤﻮﺟﻮﺩﺓ ﻓﻲ ﺍﻟﻤﺠﺎﻝ‬
‫ﺍﻟﻤﺤﻴﻂ ﺑﻨﺎ ﻭﻳﺠﺐ ﺃﻥ ﻧﺒﺪﻉ ﺑﺎﺳﺘﺨﺪﺍﻣﻬﺎ ﻟﻨﻐﻄﻲ ﺑﻌﺾ ﺧﻴﺒﺎﺕ ﺍﻷﻣﻞ ﺍﻟﺘﻲ ﺗﻼﺣﻘﻨﺎ ﻭﺗﻘﺼﻴﺮﻧﺎ ﺑﺤﻖ ﻋﻠﻤﺎﺋﻨﺎ ﺍﻟﻘﺪﺍﻣﻰ‪.‬‬

‫ﺍﻟﺠﻤﻠﺔ ﺍﻟﺸﺮﻁﻴﺔ ﺇﺫﺍ‪ ...‬ﺇﺫﻥ‪:‬‬ ‫‪IF … THEN PowerScript Statement .1‬‬


‫ﺍﻟﻮﺻﻒ ‪: Description‬‬
‫ﻋﻨﺼﺮ ﻫﻴﻜﻠﻲ ﻳﺘﺴﺒﺐ ﺑﺘﻄﺒﻴﻖ ﻧﺺ ﺑﺮﻣﺠﻲ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ ‪True‬‬
‫‪ Syntax‬ﺍﻟﺼﻴﻐﺔ‪:‬‬
‫ﻫﻨﺎﻙ ﺻﻴﻐﺘﻴﻦ ﻟﺠﻤﻠﺔ ﺍﻟﺸﺮﻁ ‪IF‬‬
‫‪ .1‬ﺻﻴﻐﺔ ﺭﻗﻢ ‪: 1‬ﺻﻴﻐﺔ ﺍﻟﺴﻄﺮ ﺍﻟﻮﺍﺣﺪ‬
‫}‪IF condition THEN action1 {ELSE action2‬‬
‫‪Parameter‬‬ ‫‪Description‬‬
‫‪condition‬‬ ‫ﺍﻟﺸﺮﻁ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻔﺤﺼﻪ‬
‫‪action1‬‬ ‫ﺍﻟﺤﺪﺙ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻄﺒﻘﻪ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ ﻧﺘﻴﺠﺘﻪ ‪True‬‬
‫‪action2‬‬ ‫ﺍﻟﺤﺪﺙ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻄﺒﻘﻪ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ ﻧﺘﻴﺠﺘﻪ ‪False‬‬

‫‪ .2‬ﺻﻴﻐﺔ ﺭﻗﻢ ‪ : 2‬ﺻﻴﻐﺔ ﺍﻷﺳﻄﺮ ﺍﻟﻤﺘﻌﺪﺩﺓ‬


‫‪IF condition1 THEN‬‬
‫‪action1‬‬ ‫‪Parameter‬‬ ‫‪Description‬‬
‫‪{ ELSEIF condition2‬‬ ‫‪Condition1‬‬ ‫ﺍﻟﺸﺮﻁ ﺍﻷﻭﻝ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻔﺤﺼﻪ‬
‫‪THEN‬‬ ‫‪action1‬‬ ‫ﺍﻟﺤﺪﺙ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻄﺒﻘﻪ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ‬
‫‪action2‬‬ ‫ﺭﻗﻢ ‪ 1‬ﻧﺘﻴﺠﺘﻪ ‪True‬‬
‫}‪...‬‬ ‫‪Condition2‬‬ ‫‪False‬ﺍﻟﺸﺮﻁ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻔﺤﺼﻪ ﺇﺫﺍ ﻛﺎﻥ‬
‫‪{ ELSE‬‬ ‫)ﺍﺧﺘﻴﺎﺭﻱ(‬ ‫ﻧﺘﻴﺠﺔ ﺍﻟﺸﺮﻁ ﺭﻗﻢ ‪1‬‬
‫} ‪action3‬‬ ‫‪action2‬‬ ‫ﺍﻟﺤﺪﺙ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺃﻥ ﺗﻄﺒﻘﻪ ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ‬
‫‪END IF‬‬ ‫ﺭﻗﻢ ‪ 2‬ﻧﺘﻴﺠﺘﻪ ‪True‬‬
‫‪action3‬‬ ‫ﺍﻟﺤﺪﺙ ﺍﻟﺬﻱ ﺗﺮﻳﺪ ﺗﻄﺒﻴﻘﻪ ﺇﺫﺍ ﻟﻢ ﺗﻨﺘﺞ ﺃﺣﺪ‬
‫)ﺍﺧﺘﻴﺎﺭﻱ(‬ ‫ﺍﻟﺸﺮﻭﻁ ﺍﻟﺴﺎﺑﻘﺔ ‪.True‬‬

‫‪75‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﺳﺘﻘﻮﻡ ﺑﻔﺘﺢ ﺍﻟﺸﺎﺷﺔ ‪ w_first‬ﺇﺫﺍ‬ ‫)‪IF Num = 1 THEN Open(w_first) ELSE Open(w_rest‬‬
‫)ﺻﻴﻐﺔ ﺍﻟﺴﻄﺮ ﺍﻟﻮﺍﺣﺪ(‬
‫ﻛﺎﻧﺖ ﻗﻴﻤﺔ ‪ Num = 1‬ﻭﺇﻻ ﺍﻟﺸﺎﺷﺔ ‪w_rest‬‬ ‫‪1‬‬
‫ﻫﻲ ﺍﻟﺘﻲ ﺳﺘﻔﺘﺢ‪.‬‬
‫ﻭﻫﻮ ﻧﻔﺲ ﺍﻟﻤﺜﺎﻝ ﺍﻟﺴﺎﺑﻖ ﺭﻗﻢ ‪ 1‬ﻭﻟﻜﻦ ﺷﻜﻞ‬ ‫‪IF Num = 1 THEN‬‬
‫)‪Open(w_first‬‬
‫ﺻﻴﻐﺔ ﻣﺘﻌﺪﺩ ﺍﻷﺳﻄﺮ‪.‬‬
‫‪ELSE‬‬
‫)‪Open(w_rest‬‬ ‫‪2‬‬
‫‪END IF‬‬

‫)ﺻﻴﻐﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻷﺳﻄﺮ(‬


‫ﻻﺣﻆ ﺗﺮﺍﻛﺐ ﺃﻛﺜﺮ ﻣﻦ ﺟﻤﻠﺔ ﺷﺮﻁﻴﺔ‬ ‫‪IF X=Y THEN‬‬
‫)‪Beep(2‬‬
‫• ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺟﻤﻠﺔ )‪ Beep(2‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ‬ ‫‪ELSEIF X=Z THEN‬‬
‫‪ X=Y‬ﻧﺘﻴﺠﺘﻪ ‪.True‬‬ ‫)‪Beep(5‬‬
‫• ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺟﻤﻠﺔ )‪ Beep(5‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ‬ ‫‪ELSEIF X=" " THEN‬‬
‫‪ X=Y‬ﻧﺘﻴﺠﺘﻪ ‪ False‬ﻭﻧﺘﻴﺠﺔ ﺍﻟﺸﺮﻁ ‪X=Z‬‬
‫)‪Beep(100‬‬
‫‪ELSE‬‬
‫‪.True‬‬ ‫)‪Beep(200‬‬
‫• ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺟﻤﻠﺔ )‪ Beep(100‬ﺇﺫﺍ ﻛﺎﻥ‬ ‫‪END IF‬‬ ‫‪3‬‬
‫ﺍﻟﺸﺮﻁ ‪ X=Y‬ﻧﺘﻴﺠﺘﻪ ‪ False‬ﻭﻧﺘﻴﺠﺔ‬ ‫)ﺻﻴﻐﺔ ﻣﺘﻌﺪﺩﺓ ﺍﻷﺳﻄﺮ(‬

‫ﺍﻟﺸﺮﻁ ‪ False X=Z‬ﻭﻧﺘﻴﺠﺔ ﺍﻟﺸﺮﻁ‬


‫" "=‪.True X‬‬
‫• ﺳﻴﺘﻢ ﺗﻨﻔﻴﺬ ﺟﻤﻠﺔ )‪ Beep(200‬ﺇﺫﺍ ﻛﺎﻧﺖ‬
‫ﺟﻤﻴﻊ ﺍﻟﺸﺮﻭﻁ ﺍﻟﺴﺎﺑﻘﺔ ‪.False‬‬

‫‪ CHOOSE CASE PowerScript statement .2‬ﺟﻤﻠﺔ ﺍﻻﺧﺘﻴﺎﺭ‪:‬‬


‫ﺍﻟﻮﺻﻒ ‪: Description‬‬
‫ﻋﻨﺼﺮ ﻫﻴﻜﻠﻲ ﻳﻘﻮﻡ ﺑﺘﻮﺟﻴﻪ ﺗﻨﻔﻴﺬ ﺍﻟﺒﺮﻧﺎﻣﺞ ﺑﻨﺎءﺍً ﻋﻠﻰ ﻓﺤﺺ ﺍﻟﺘﻌﺒﻴﺮ ﻭﻋﺎﺩﺓً ﻳﻜﻮﻥ )ﻣﺘﻐﻴﺮ(‪.‬‬
‫‪ Syntax‬ﺍﻟﺼﻴﻐﺔ‪:‬‬
‫‪CHOOSE CASE‬‬ ‫‪Parameter‬‬ ‫‪Description‬‬
‫‪CASE‬‬‫‪ testexpression‬‬ ‫‪testexpression‬‬ ‫ﻫﻮ ﺍﻟﺬﻱ ﻳﺤﺪﺩ ﺃﻱ ‪ Script‬ﺳﻴﻨﻔﺬ‬
‫‪ expressionlist‬‬
‫‪expressionlist‬‬ ‫ﺳﻴﻜﻮﻥ ﻭﺍﺣﺪ ﻣﻦ ﺍﻟﺘﺎﻟﻲ‪:‬‬
‫‪{ CASE‬‬‫‪ statementblock‬‬
‫ﻗﻴﻤﺔ ﻓﺮﺩﻳﺔ‬ ‫•‬
‫‪ expressionlist‬‬
‫‪CASE‬‬ ‫ ‪ .‬‬ ‫‪. . statementblock‬‬ ‫• ﻗﺎﺋﻤﺔ ﻣﻦ ﺍﻟﻘﻴﻢ ﻣﻔﺼﻠﺔ ﺑﻔﺎﺻﻠﺔ )‪(8 ،5 ،4 ،2‬‬
‫‪ expressionlist‬‬ ‫• ﺻﻴﻐﺔ ‪.(1 To 5) To‬‬
‫‪CASE‬‬ ‫} ‪ statementblock‬‬ ‫• ‪ Is‬ﻣﺘﺒﻮﻋﺔ ﺑﺄﺩﺍﺓ ﻋﻼﻗﺔ ﻭﻗﻴﻤﺔ ﻟﻠﻤﻘﺎﺭﻧﺔ )‪(Is>5‬‬
‫ ‬ ‫ ‪statementblock‬‬‫‪} ELSE‬‬ ‫• ﺃﻱ ﺗﻮﻟﻴﻒ ﻣﻦ ﺍﻟﺼﻴﻎ ﺍﻟﺴﺎﺑﻘﺔ )‪،9 ،7 ،5 ،3 ،1‬‬
‫‪END CHOOSE‬‬ ‫‪(TO 33, IS >42 27‬‬
‫‪statementblock‬‬ ‫ﻣﺠﻤﻮﻋﺔ ﻣﻦ ﺍﻟﺠﻤﻞ ﻭﺍﻟﺘﻲ ﺗﺮﻳﺪ ﻣﻦ ﺍﻟـ ‪ PB‬ﺗﻨﻔﻴﺬﻫﺎ‬
‫ﺇﺫﺍ ﻭﺍﻓﻖ ﻓﺤﺺ ﺍﻟﺘﻌﺒﻴﺮ ﻗﻴﻤﺔ ﻓﻲ ‪expressionlist‬‬
‫ﻣﻼﺣﻈﺔ‪:‬‬
‫ﺳﺘﺠﺪ ﺗﺸﺎﺑﻪ ﻛﺒﻴﺮ ﺑﻴﻦ ﺟﻤﻠﺔ ‪ CHOOSE CASE‬ﻣﻊ ﺟﻤﻠﺔ ‪IF…THEN ELSEIF…THEN …END IF‬‬
‫ﻣﻊ ﻭﺟﻮﺩ ﺑﻌﺾ ﺍﻻﺧﺘﻼﻓﺎﺕ ﺍﻟﺜﺎﻧﻮﻳﺔ‪.‬‬

‫‪76‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺟﻤﻞ ﺍﻟﺘﻜﺮﺍﺭ ‪:LOOP Statement‬‬


‫‪ FOR...NEXT PowerScript statement .1‬ﺟﻤﻠﺔ ﺍﻟﺘﻜﺮﺍﺭ ﻣﻦ‪...‬ﺇﻟﻰ ‪:‬‬
‫ﺍﻟﻮﺻﻒ ‪: Description‬‬
‫ﻋﻨﺼﺮ ﻫﻴﻜﻠﻲ ﻳﻘﻮﻡ ﺑﺘﻜﺮﺍﺭ ﺭﻗﻤﻲ ﻳﺴﺘﺨﺪﻡ ﻟﺘﻨﻔﻴﺬ ﻭﺍﺣﺪ ﺃﻭ ﺃﻛﺜﺮ ﻣﻦ ﺍﻟﺠﻤﻞ ﻟﻌﺪﺩ ﻣﺤﺪﺩ ﻣﻦ ﺍﻟﻤﺮﺍﺕ‪.‬‬
‫‪ Syntax‬ﺍﻟﺼﻴﻐﺔ‪:‬‬
‫‪FOR varname = start TO end‬‬ ‫‪Parameter‬‬ ‫‪Description‬‬
‫}‪{STEP increment‬‬ ‫‪varname‬‬ ‫ﺍﺳﻢ ﺍﻟﻤﺘﻐﻴﺮ ﻋﺪﺍﺩ ﺍﻟﺘﻜﺮﺍﺭ‪ ،‬ﺑﺈﻣﻜﺎﻧﻚ ﺗﻌﺮﻳﻒ ﺃﻱ ﻧﻮﻉ‬
‫‪statementblock‬‬ ‫ﺑﻴﺎﻧﺎﺕ ﺭﻗﻤﻲ ‪:‬‬
‫‪NEXT‬‬ ‫)‪(integer, double, real, long, decimal‬‬
‫ﻭﻟﻜﻦ ﺇﺳﺘﺨﺪﺍﻡ ﻧﻮﻉ ‪ Integer‬ﻳﺘﻴﺢ ﺃﺩﺍء ﺃﺳﺮﻉ‬
‫‪start‬‬ ‫ﻗﻴﻤﺔ ﺍﻟﺒﺪﺍﻳﺔ ﻟﻠﻤﺘﻐﻴﺮ ‪varname‬‬
‫‪end‬‬ ‫ﻗﻴﻤﺔ ﺍﻟﻨﻬﺎﻳﺔ ﻟﻠﻤﺘﻐﻴﺮ ‪varname‬‬
‫‪increment‬‬ ‫ﻗﻴﻤﺔ ﺍﻟﺰﻳﺎﺩﺓ ﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ﺛﺎﺑﺘﺔ ﻭﻣﻦ ﻧﻔﺲ ﻧﻮﻉ‬
‫ﺑﻴﺎﻧﺎﺕ ﺍﻟﻤﺘﻐﻴﺮ ‪ ،varname‬ﺇﺫﺍ ﺇﺳﺘﺨﺪﻣﺖ‬
‫‪ increment‬ﻳﺠﺐ ﻋﻠﻴﻚ ﺇﺳﺘﺨﺪﺍﻡ ‪ +1 ،STEP‬ﻫﻲ‬
‫ﺍﻟﺰﻳﺎﺩﺓ ﺍﻹﻋﺘﻴﺎﺩﻳﺔ‪.‬‬
‫‪statementblock‬‬ ‫ﺍﻟﺠﻤﻞ ﺍﻟﺘﻲ ﺗﺮﻳﺪ ﺗﻜﺮﺍﺭﻫﺎ‬
‫‪ Usage‬ﺍﻹﺳﺘﺨﺪﺍﻡ‪:‬‬
‫ﺇﺳﺘﺨﺪﺍﻡ ‪ start‬ﻭ ‪:end‬‬
‫• ﻟﻠﺰﻳﺎﺩﺓ ﺍﻟﻤﻮﺟﺒﺔ‪ ،‬ﻭﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ﺍﻟـ ‪ end‬ﺃﻛﺒﺮ ﻣﻦ ‪ ،start‬ﻭﻟﻠﺰﻳﺎﺩﺓ ﺍﻟﺴﺎﻟﺒﺔ ﻳﺠﺐ ﺃﻥ ﺗﻜﻮﻥ ‪ end‬ﺃﻛﺒﺮ‬
‫ﻣﻦ ‪.start‬‬
‫• ﻋﻨﺪﻣﺎ ﺗﻜﻮﻥ ‪ start‬ﻭ ‪ end‬ﺗﻌﺎﺑﻴﺮ ‪ ،Expression‬ﺳﻴﺘﻢ ﺇﻋﺎﺩﺓ ﺇﺣﺘﺴﺎﺑﻬﺎ ﻓﻲ ﻛﻞ ﺗﻜﺮﺍﺭ‪ ،‬ﺇﺫﺍ ﺗﻢ ﺗﻌﺪﻳﻞ‬
‫ﻗﻴﻤﺔ ﺍﻟﺘﻌﺒﻴﺮ ﺳﺘﺆﺛﺮ ﻋﻠﻰ ﻋﺪﺩ ﺍﻟﺘﻜﺮﺍﺭ‪ ،‬ﻭﺳﻨﻌﻄﻲ ﻣﺜﺎﻝ( ﺟﺴﻢ ﺍﻟﺘﻜﺮﺍﺭ ﻳﻐﻴﺮ ﻋﺪﺩ ﺍﻟﺴﻄﻮﺭ‪ ،‬ﺍﻟﺘﻲ ﺗﻐﻴﺮ‬
‫ﻧﺘﻴﺠﺔ ﺩﺍﻟﺔ ‪.RowCount‬‬
‫) (‪FOR n = 1 TO dw_1.RowCount‬‬
‫)‪dw_1.DeleteRow(1‬‬
‫‪NEXT‬‬
‫‪ Nesting‬ﺗﺪﺍﺧﻞ‪:‬‬
‫ﺑﺈﻣﻜﺎﻧﻚ ﻋﻤﻞ ﺗﺪﺍﺧﻞ ﺟﻤﻠﺔ ‪ ،FOR…NEXT‬ﻳﺠﺐ ﺃﻥ ﻳﻜﻮﻥ ‪ NEXT‬ﻟﻜﻞ ‪.FOR‬‬
‫ﺗﺴﺘﻄﻴﻊ ﺇﻧﻬﺎء ‪ FOR‬ﺑﺎﺳﺘﺨﺪﺍﻡ ‪ END FOR‬ﺑﺪﻻً ﻣﻦ ‪.NEXT‬‬

‫‪ Avoid Over Flow‬ﻣﻨﻊ ﺍﻟﻔﻴﻀﺎﻥ‪:‬‬


‫ﺇﺫﺍ ﻛﺎﻥ ‪ Start‬ﺃﻭ ‪ end‬ﻛﺒﻴﺮﺓ ﺟﺪﺍً ﻋﻠﻰ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪ Varname ، Varname‬ﺳﻮﻑ ﺗﻔﻴﺾ ﻣﻤﺎ ﻳﺴﺒﺐ‬
‫ﺗﻜﺮﺍﺭ ﻏﻴﺮ ﻣﻨﺘﻬﻲ ﻣﺜﺎﻝ‪:‬‬
‫‪integer li_int‬‬
‫‪FOR li_int = 1 TO 50000‬‬
‫ﻗﻴﻤﺔ ﺍﻟﻨﻬﺎﻳﺔ ‪ 50000‬ﻛﺒﻴﺮﺓ ﻋﻠﻰ ﻧﻮﻉ ﺍﻟﺒﻴﺎﻧﺎﺕ ‪ ، integer‬ﻭﻋﻨﺪﻣﺎ ﺍﻟﻤﺘﻐﻴﺮ ﻳﺘﺰﺍﻳﺪ ‪ li_int‬ﺳﻴﺼﻞ ﺇﻟﻰ ﺍﻟﻘﻴﻢ‬
‫ﺍﻟﺴﻠﺒﻴﺔ ﻗﺒﻞ ﺍﻟﻮﺻﻮﻝ ﻟﻠﻘﻴﻤﺔ ‪ 50000‬ﻭﺳﻴﺤﺼﻞ ﺍﻟﺘﻜﺮﺍﺭ ﺍﻟﻤﻨﺘﻬﻲ‪.‬‬

‫‪77‬‬
‫ﺑﻘﻠﻢ‪ :‬ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬ ‫‪Power Builder 9.0‬‬ ‫ﺗﻌﻠﻢ‬

‫ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﺟﻤﻠﺔ ﺍﻟـ ‪:FOR…NEXT‬‬


‫‪ FOR n = 5 to 25‬ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﺗﻘﻮﻡ ﺑﺈﺿﺎﻓﺔ ‪ 10‬ﻋﻠﻰ ‪ A‬ﻁﺎﻟﻤﺎ ‪ n‬ﺃﻛﺒﺮ ﺃﻭ ﻳﺴﺎﻭﻱ ‪ 5‬ﻭ ‪n‬‬
‫ﺃﻗﻞ ﺃﻭ ﺗﺴﺎﻭﻱ ‪.25‬‬ ‫‪A = A+10‬‬ ‫‪1‬‬
‫‪NEXT‬‬
‫‪ FOR N = 5 TO 25 STEP 5‬ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﺗﻀﻴﻒ ‪ 10‬ﻋﻠﻰ ‪ A‬ﻭﺗﺰﻳﺪ ‪ N‬ﺑـ ‪ 5‬ﻁﺎﻟﻤﺎ ‪ N‬ﺃﻛﺒﺮ ﺃﻭ‬ ‫‪2‬‬
‫ﺗﺴﺎﻭﻱ ‪ 5‬ﻭ ﺃﻗﻞ ﺃﻭ ﺗﺴﺎﻭﻱ ‪25‬‬ ‫‪A = A+10‬‬
‫‪NEXT‬‬

‫‪ FOR Count = 1 TO 100 STEP -1‬ﻫﺬﻩ ﺍﻟﺠﻤﻞ ﺗﺤﺘﻮﻱ ﻋﻠﻰ ﺳﻄﺮﻳﻦ ﻟﻦ ﺗﻨﻔﺬ ﻷﻥ ﺍﻟﺰﻳﺎﺩﺓ ﺳﺎﻟﺒﺔ ﻭﺍﻟـ‬ ‫‪3‬‬
‫‪Start‬ﺃﻗﻞ ﻣﻦ ‪.end‬‬ ‫‪IF Count < 1 THEN EXIT‬‬
‫‪Box[Count] = 10‬‬
‫‪NEXT‬‬

‫]‪ Int Matrix[100,50,200‬ﻫﺬﻩ ﺍﻟﺠﻤﻞ ﻣﺘﺪﺍﺧﻠﺔ‪ ،‬ﺗﻼﺣﻆ ﻋﺮﻓﻨﺎ ﻣﺼﻔﻮﻓﺔ ﺛﻼﺛﻴﺔ ﺍﻷﺑﻌﺎﺩ ﺛﻢ ﻗﻤﻨﺎ‬ ‫‪4‬‬
‫‪ FOR i = 1 to 100‬ﺑﺈﺳﻨﺎﺩ ﺍﻟﻘﻴﻤﺔ ‪ 1‬ﺇﻟﻰ ﺟﻤﻴﻊ ﺣﻘﻮﻝ ﺍﻟﻤﺼﻔﻮﻓﺔ‪.‬‬
‫‪FOR j = 1 to 50‬‬
‫‪FOR k = 1 to 200‬‬
‫‪Matrix[i,j,k]=1‬‬
‫‪NEXT‬‬
‫‪NEXT‬‬
‫‪NEXT‬‬
‫‪ DO...LOOP PowerScript statement .2‬ﺟﻤﻠﺔ ﺍﻟﺘﻜﺮﺍﺭ ﺍﻋﻤﻞ‪...‬ﻛﺮﺭ ‪:‬‬
‫ﺍﻟﻮﺻﻒ ‪: Description‬‬
‫ﻋﻨﺼﺮ ﻫﻴﻜﻠﻲ ﻳﻘﻮﻡ ﺑﺘﻜﺮﺍﺭ ﺭﻗﻤﻲ ﻳﺴﺘﺨﺪﻡ ﻟﺘﻨﻔﻴﺬ ﻭﺍﺣﺪ ﺃﻭ ﺃﻛﺜﺮ ﻣﻦ ﺍﻟﺠﻤﻞ ﻟﻌﺪﺩ ﻣﺤﺪﺩ ﻣﻦ ﺍﻟﻤﺮﺍﺕ ﺑﻴﻨﻤﺎ ﺃﻭ ﺣﺘﻰ‬
‫ﻳﺘﺤﻘﻖ ﺍﻟﺸﺮﻁ‪.‬‬
‫ﻟﻬﺎ ﺃﺭﺑﻊ ﺃﺷﻜﺎﻝ‪:‬‬
‫ﻳﻨﻔﺬ ﻛﺘﻠﺔ ﺟﻤﻞ ﺣﺘﻰ ﻳﻜﻮﻥ ﺍﻟﺸﺮﻁ ‪ ،True‬ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ ﻣﻦ ﺃﻭﻝ ﺗﻜﺮﺍﺭ ‪ True‬ﻓﻠﻦ ﺗﺘﻨﻔﺬ‬
‫‪DO UNTIL‬‬ ‫‪1‬‬
‫ﺍﻟﺠﻤﻞ‪.‬‬
‫ﻳﻨﻔﺬ ﻛﺘﻠﺔ ﺟﻤﻞ ﺑﻴﻨﻤﺎ ﺍﻟﺸﺮﻁ ﻳﺴﺎﻭﻱ ‪ ،True‬ﺍﻟﺘﻜﺮﺍﺭ ﺳﻴﻨﺘﻬﻲ ﻋﻨﺪﻣﺎ ﻳﺼﺒﺢ ﺍﻟﺸﺮﻁ ‪،False‬‬ ‫‪2‬‬
‫‪DO WHILE‬‬
‫ﺇﺫﺍ ﻛﺎﻥ ﺍﻟﺸﺮﻁ ﻣﻦ ﺃﻭﻝ ﺗﻜﺮﺍﺭ ‪ False‬ﺍﻟﺠﻤﻞ ﻟﻦ ﺗﻨﻔﺬ‪.‬‬
‫‪ LOOP UNTIL‬ﻳﻨﻔﺬ ﻛﺘﻠﺔ ﻣﻦ ﺍﻟﺠﻤﻞ ﻣﺮﺓ ﻭﺍﺣﺪﺓ ﻋﻠﻰ ﺍﻷﻗﻞ ﻭﻳﺴﺘﻤﺮ ﺣﺘﻰ ﻳﺼﺒﺢ‬ ‫‪3‬‬
‫‪ ، True‬ﻭﺍﻟﺘﻜﺮﺍﺭ‬ ‫ﻳﻨﻔﺬ ﻛﺘﻠﺔ ﻣﻦ ﺍﻟﺠﻤﻞ ﻣﺮﺓ ﻭﺍﺣﺪﺓ ﻋﻠﻰ ﺍﻷﻗﻞ ﻭﻳﺴﺘﻤﺮ ﺑﻴﻨﻤﺎ ﺍﻟﺸﺮﻁ ﻗﻴﻤﺘﻪ‬
‫‪LOOP WHILE‬‬ ‫‪4‬‬
‫ﺳﻴﻨﺘﻬﻲ ﻋﻨﺪﻣﺎ ﻳﺼﺒﺢ ﺍﻟﺸﺮﻁ ‪.False‬‬

‫‪78‬‬
‫ ﻣﺤﻤﺪ ﺍﻟﻤﺼﺮﻱ‬:‫ﺑﻘﻠﻢ‬ Power Builder 9.0 ‫ﺗﻌﻠﻢ‬

:‫ ﺍﻟﺼﻴﻐﺔ‬Syntax
DO UNTIL condition Parameter Description
statementblock Condition ‫ﺍﻟﺸﺮﻁ ﺍﻟﺬﻱ ﺗﻔﺤﺼﻪ‬
LOOP
statementblock ‫ﺍﻟﺠﻤﻞ ﺍﻟﺘﻲ ﺗﺮﻳﺪ ﺗﻜﺮﺍﺭﻫﺎ‬
DO WHILE condition
statementblock
LOOP

DO
statementblock
LOOP UNTIL condition
DO
statementblock
LOOP WHILE condition

:Do…Loop ‫ﺃﻣﺜﻠﺔ ﻋﻠﻰ ﺟﻤﻞ‬


.15 ‫ ﺃﻛﺒﺮ ﻣﻦ‬A ‫ ﺣﺘﻰ ﺗﺼﺒﺢ‬Beep ‫ ﻫﺬﺍ ﺍﻟﺘﻜﺮﺍﺭ ﻳﻜﺮﺭ ﺩﺍﻟﺔ‬integer A = 1, B = 1
DO UNTIL A > 15
Beep(A) 1
A = (A + 1) * B
LOOP
.15 ‫ ﺃﻗﻞ ﺃﻭ ﺗﺴﺎﻭﻱ‬A ‫ ﺑﻴﻨﻤﺎ‬Beep ‫ﻫﺬﺍ ﺍﻟﺘﻜﺮﺍﺭ ﻳﻜﺮﺭ ﺩﺍﻟﺔ‬ integer A = 1, B = 1
DO WHILE A <= 15
Beep(A) 2
A = (A + 1) * B
LOOP
A ‫ ﺃﻭﻻ ﺛﻢ ﺍﻻﺳﺘﻤﺮﺍﺭ ﺑﺘﻜﺮﺍﺭ ﺍﻟﺪﺍﻟﺔ ﺣﺘﻰ ﺗﺼﺒﺢ‬Beep ‫ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﺗﻘﻮﻡ ﺑﺘﻨﻔﻴﺬ ﺩﺍﻟﺔ‬ integer A = 1, B = 1
.15 ‫ﺃﻛﺒﺮ ﻣﻦ‬ DO
Beep(A) 3
A = (A + 1) * B
LOOP UNTIL A > 15
‫ﺃﻗﻞ ﺃﻭ‬A ‫ ﺃﻭﻻ ﺛﻢ ﺍﻻﺳﺘﻤﺮﺍﺭ ﺑﺘﻜﺮﺍﺭ ﺍﻟﺪﺍﻟﺔ ﺑﻴﻨﻤﺎ‬Beep ‫ﻫﺬﻩ ﺍﻟﺠﻤﻠﺔ ﺗﻘﻮﻡ ﺑﺘﻨﻔﻴﺬ ﺩﺍﻟﺔ‬ integer A = 1, B = 1
.15 ‫ﺗﺴﺎﻭﻱ‬ DO
Beep(A) 4
A = (A + 1) * B
LOOP WHILE A <= 15

79

Você também pode gostar