0% found this document useful (0 votes)
12 views14 pages

Basic Form Module Creation Guide

Uploaded by

sherif ramadan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views14 pages

Basic Form Module Creation Guide

Uploaded by

sherif ramadan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Creating a Basic Form Module

:‫اﻻهﺪاف‬
.Form Module ‫اﻟﻘﺪرة ﻋﻠﻰ اﻧﺸﺎء و ﺣﻔﻆ‬ •
.Data Block ‫اﻟﻘﺪرة ﻋﻠﻰ اﻧﺸﺎء‬ •
.Data Block ‫اﻟﻘﺪرة ﻋﻠﻰ ﺗﻌﺪﻳﻞ‬ •
.Lay out ‫اﻟﻘﺪرة ﻋﻠﻰ ﺗﻌﺪﻳﻞ‬ •
.Form Module ‫ﻣﻌﺮﻓﺔ آﻴﻔﻴﺔ ﻋﺮض‬ •
.(Relation)‫ و ﺑﻴﻨﻬﻢ رﺑﻂ‬Data Block ‫اﻧﺸﺎء اآﺜﺮ ﻣﻦ‬ •

: Form Module ‫هﻨﺎك ﺑﻌﺾ اﻟﺨﻄﻮات ﻻﻣﻜﺎﻧﻴﺔ اﻧﺸﺎء‬

Tolls Action ‫اﻟﺨﻄﻮات‬


Object Navigator ‫ ﻓﺎرغ‬Module ‫اﻧﺸﺎء‬ .١
Data Block wizard Items ‫ و‬Data Block ‫اﻧﺸﺎء‬ .٢
Lay Out Wizard ‫ ﻟﺘﻨﺴﻴﻖ‬Lay Out ‫اﺳﺘﺨﺪام‬ .٣
.Form ‫ﺷﻜﻞ‬
Property Palette ‫ﺗﺨﺼﻴﺺ اﻟﻤﻮاﺻﻔﺎت ﻟﺒﻌﺾ‬ .٤
.Objects ‫ﻣﻦ‬
PL/SQL Editor .‫اﺳﺘﺨﺪام اﻟﻜﻮد‬ .٥
Run Form button .Module ‫ﺗﺠﺮﺑﺔ‬ .٦
‫ﻻﺣﻆ اﻧﻚ ﻳﻤﻜﻨﻚ ﻋﻦ ﻃﺮﻳﻖ ‪ Object Navigator‬اﻧﺸﺎء ارﺑﻊ ‪ File‬آﻤﺎ‬
‫ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬

‫آﻴﻔﻴﺔ اﻧﺸﺎء ‪Form Module‬‬

‫‪ -١‬ﻳﻤﻜﻨﻚ اﻟﻘﻴﺎم ﺑﺎﻧﺸﺎء ‪ Module‬ﺟﺪﻳﺪ ﺑﺎﺳﺘﺨﺪام ‪ Wizard‬ﻋﻦ ﻃﺮﻳﻖ اﺧﺘﻴﺎر‬


‫‪. Use Data Block Wizard‬‬
‫‪ -٢‬ﻳﻤﻜﻨﻚ اﻟﻘﻴﺎم ﺑﺎﻧﺸﺎء ‪ Module‬ﺟﺪﻳﺪ وﻟﻜﻦ ﻟﻴﺲ ‪ Wizard‬ﻋﻦ ﻃﺮﻳﻖ اﺧﺘﻴﺎر‬
‫‪. Build a new form manually‬‬
‫‪ -٣‬ﻳﻤﻜﻨﻚ اﺳﺘﺨﺪام ‪ Module‬ﺗﻢ ﺣﻔﻈﺔ ﻣﻦ ﻗﺒﻞ ﻋﻦ ﻃﺮﻳﻖ اﺧﺘﻴﺎر‬
‫‪. Open an exiting form‬‬
‫ﻳﻤﻜﻦ ﺗﻌﺪﻳﻞ اﺳﻢ ‪ Module‬ﺑﻄﺮﻳﻘﺘﻴﻦ‪:‬‬
‫‪ -١‬اﺿﻐﻂ ﻋﻠﻰ اﺳﻢ ‪ Module‬ﻣﻦ ﻋﻠﻰ ‪ Object Navigator‬ﺑﻌﺪ ذﻟﻚ ﻗﻢ ﺑﺘﻌﺪﻳﻞ‬
‫اﻻﺳﻢ‪.‬‬
‫‪ -٢‬ﺗﻌﺪﻳﻞ اﺳﻢ ‪ Module‬ﻣﻦ ﺧﻼل ‪ Property‬اﻟﺨﺎﺻﺔ ﺑﺔ‪.‬‬

‫ﻳﻤﻜﻦ اﻧﺸﺎء ‪ Data Block‬ﺑﻄﺮﻳﻘﺘﻴﻦ‪:‬‬


‫‪. Data Block Wizard -١‬‬
‫‪.Data Block Manual -٢‬‬
‫ﻓﻌﻨﺪ اﻟﻘﻴﺎم ﺑﺎﻧﺸﺎء ‪ Block‬ﺟﺪﻳﺪ ﺗﻈﻬﺮ ﻟﻚ رﺳﺎﻟﺔ ﺑﻬﺎ اﺧﺘﻴﺎرﻳﻦ‬
‫‪ Wizard‬او ‪ Manual‬و ﺗﻜﻮن ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬ ‫وهﻢ‬

‫‪١- Create Data Block Wizard‬‬

‫ﻣﺜﺎل‪:‬‬
‫ﺳﻮف ﻧﻘﻮم اﻻن ﺑﺎﻧﺸﺎء ‪ Data Block Wizard‬ﻋﻠﻰ ﺟﺪول اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬
‫‪ -١‬ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ‪ Data Block‬ﻣﻦ ‪ Object Navigator‬ﻳﺘﻢ ﻇﻬﻮر اﻟﺮﺳﺎﻟﺔ‬
‫اﻟﺴﺎﺑﻘﺔ وﻳﺘﻢ اﺧﺘﻴﺎر ‪ Use the data block wizard‬ﺑﻌﺪ ذﻟﻚ ﻳﻈﻬﺮ ﻟﻨﺎ‬
‫رﺳﺎﻟﺔ ﺗﺮﺣﻴﺐ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬
‫ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Next‬ﻳﻈﻬﺮ ﺑﻌﺪ ذﻟﻚ‪:‬‬

‫و ﻳﻮﺟﺪ ﺑﻬﺬة اﻟﺸﺎﺷﺔ اﺧﺘﻴﺎرﻳﻦ و ﻳﻌﺒﺮ آﻼ ﻣﻨﻬﻤﺎ ﻋﻠﻰ اﻣﻜﺎﻧﻴﺔ ﻋﻤﻞ ‪ Block‬ﻋﻠﻰ‬
‫)‪ Table‬او ‪ ( View‬او ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام ‪. Procedure‬‬
‫ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Next‬ﻓﺘﻈﻬﺮ ﻟﻨﺎ اﻟﺸﺎﺷﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫وهﺬة اﻟﺸﺎﺷﺔ ﺗﺴﺘﺨﺪم ﻻﻣﻜﺎﻧﻴﺔ ﺗﺤﺪﻳﺪ ‪ Table‬او ‪ View‬اﻟﻤﺮاد اﻧﺸﺎء‬
‫‪ Block‬ﻟﺔ وذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Browse‬ﻟﻜﻰ ﻳﺘﻢ ﻋﺮض ‪Object‬‬
‫اﻟﺨﺎﺻﺔ ﺑﺎﻟﻤﺴﺘﺨﺪم او اﻟﺘﻰ ﻟﺔ ﺻﻼﺣﻴﺔ ﻓﻰ اﺳﺘﺨﺪاﻣﻬﺎ‪.‬‬
‫وﻓﻰ اﻟﺮﺳﻢ اﻟﺴﺎﺑﻖ ﻳﻮﺟﺪ ‪ Check Box‬ﺑﺎﺳﻢ ‪ Enforce data integrity‬ﻓﺎذا ﺗﻢ‬
‫اﺳﺘﺨﺪاﻣﺔ ﻳﻘﻮم ﺑﺎدراج آﻞ اﻟﻘﻴﻮد )‪ (Constraint‬اﻟﺨﺎﺻﺔ ﺑﺎﻟﺠﺪول ﺑﺪاﺧﻞ ‪. Block‬‬
‫وﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ‪ Browse‬ﺗﻈﻬﺮ ﻟﻨﺎ اﻟﺸﺎﺷﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫هﻨﺎك اآﺜﺮ ﻣﻦ ‪ Check Box‬ﺗﺴﺘﺨﺪم آﻞ واﺣﺪة ﻓﻰ‪:‬‬


‫• ‪ Current User‬ﻳﻌﺒﺮ هﺬا ﻋﻠﻰ اﻟﻤﺴﺘﺨﺪم اﻟﺤﺎﻟﻰ‪.‬‬
‫• ‪ Other_User‬اﻣﻜﺎﻧﻴﺔ اﺳﺘﺨﺪام اى ‪ Object‬ﻣﻦ ﻣﺴﺘﺨﺪم اﺧﺮ ﻳﻜﻮن ﻟﻚ‬
‫اﻟﺼﻼﺣﻴﺔ ﻓﻰ اﺳﺘﺨﺪام ﺗﻠﻚ ‪.Object‬‬
‫ﺗﻌﺮض آﻞ اﻟﺠﺪاول اﻟﺘﻰ ﻟﻠﻤﺴﺘﺨﺪم اﻟﺼﻼﺣﻴﺔ ﻟﻬﺎ‪.‬‬ ‫• ‪Table‬‬
‫ﺗﻌﺮض آﻞ ‪ Views‬اﻟﺘﻰ ﻟﻠﻤﺴﺘﺨﺪم اﻟﺼﻼﺣﻴﺔ ﻟﻬﺎ‪.‬‬ ‫• ‪Views‬‬
‫ﺗﻌﺮض آﻞ ‪ Synonyms‬اﻟﺘﻰ ﻟﻠﻤﺴﺘﺨﺪم اﻟﺼﻼﺣﻴﺔ ﻟﻬﺎ‪.‬‬ ‫• ‪Synonyms‬‬

‫ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﺧﺘﻴﺎر ‪ Object‬اﻟﻤﺮاد اﻧﺸﺎء ‪ Block‬ﻟﺔ ﺛﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪. OK‬‬
‫ﻓﻴﺘﻢ ﻋﺮض اﻟﺸﺎﺷﺔ اﻟﺴﺎﺑﻖ ﻋﺮﺿﻬﺎ وﺗﻢ ادراج ﺑﻬﺎ اﻻﻋﻤﺪة اﻟﺨﺎﺻﺔ ﺑﻬﺎ‬
‫آﻤﺎ ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬

‫ﻳﺘﻢ ادراج اﻻﻋﻤﺪة اﻟﺘﻰ ﺗﺮﻳﺪ ان ﻳﺘﻀﻤﻨﻬﺎ ‪ Block‬وذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﺳﺘﺨﺪام‬


‫اﻻﺳﻬﻢ >> او > ﻻﺣﻆ أن‪:‬‬
‫> ﻳﻘﻮم ﺑﺎدراج ﻋﻤﻮد واﺣﺪ ﻓﻘﻂ‪.‬‬
‫>> ﻳﻘﻮم ﺑﺎدراج آﻞ اﻻﻋﻤﺪة ﺑﺎﻟﺠﺪول‪.‬‬
‫ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Next‬ﻟﺘﻈﻬﺮ ﺷﺎﺷﺔ ﺑﻬﺎ اﺳﻢ ‪ Block‬و ﻳﻘﻮم اﻻوراآﻞ‬
‫ﺑﺎﻋﻄﺎء اﺳﻢ اﻓﺘﺮاﺿﻰ ﻟﺔ ﺑﻨﻔﺲ اﺳﻢ اﻟﺠﺪول اﻟﻤﺴﺘﺨﺪم و ﻳﻤﻜﻦ ان ﺗﻘﻮم ﺑﺘﻐﻴﺮ‬
‫ﺗﻠﻚ اﻻﺳﻢ‪.‬‬
‫ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Next‬ﻟﺘﻈﻬﺮ اﻟﺸﺎﺷﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫و ﺑﻬﺬة اﻟﺸﺎﺷﺔ اﺧﺘﻴﺎرﻳﻦ‪:‬‬
‫¾ اﻧﺸﺎء ‪ Block‬و ﺑﻌﺪ ذﻟﻚ اﻧﺸﺎء )‪ (Lay out‬ﻋﻦ ﻃﺮﻳﻖ ‪.Wizard‬‬
‫¾ اﻧﺸﺎء ‪ Block‬ﺑﺪون اﻧﺸﺎء اﻟﺸﻜﻞ اﻟﺘﺼﻤﻴﻤﻰ)‪ (Lay out‬ﻋﻦ ﻃﺮﻳﻖ ‪.Wizard‬‬

‫ﻋﻨﺪ اﺧﺘﻴﺎر ‪ Create the data block, then call the layout Wizard‬ﺛﻢ اﻟﻀﻐﻂ‬
‫ﻋﻠﻰ ‪ Finish‬ﻳﺘﻢ ﻇﻬﻮر ﺷﺎﺷﺔ ﺗﺮﺣﻴﺐ ﺧﺎﺻﺔ ‪ Layout Wizard‬ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ‬
‫‪ Next‬ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬
‫وﺑﻬﺬا اﻟﺸﻜﻞ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﺳﻢ و ﻧﻮع ال ‪ Canvas‬اﻟﺨﺎص ﺑﺎل‪. Block‬‬
‫)‪ Canvas‬ﺳﻮف ﻳﺘﻢ ﺷﺮﺣﺔ ﻓﻴﻤﺎ ﺑﻌﺪ( ‪.‬ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪. Next‬‬
‫ﻟﺘﻈﻬﺮ اﻟﺸﺎﺷﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫و ﻓﻰ هﺬة اﻟﺸﺎﺷﺔ ﻳﺘﻢ ﺗﺤﺪﻳﺪ ‪ Items‬اﻟﺘﻰ ﺳﻮف ﻳﺘﻢ ﻋﺮﺿﻬﺎ ﻋﻠﻰ ‪Layout‬‬
‫ﻋﻦ ﻃﺮﻳﻖ اﻻﺳﻬﻢ ) >‪ ( >>،‬اﻟﺴﺎﺑﻖ ﺷﺮﺣﻬﺎ ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ‬
‫‪ Next‬ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬
‫واﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ ﻳﻮﺿﺢ اﺷﻜﺎل ﻇﻬﻮر ‪ Items‬ﻋﻠﻰ ‪ Layout‬ﻣﻦ ﺣﻴﺚ اﻟﻄﻮل و‬
‫اﻟﻌﺮض و ﻳﻤﻜﻦ ﺗﻐﻴﺮ آﻼ ﻣﻦ ﻃﻮل او ﻋﺮض اى ‪ Item‬ﺛﻢ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪Next‬‬
‫ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬

‫واﻟﺸﺎﺷﺔ اﻟﺴﺎﺑﻘﺔ ﺑﻬﺎ اﺧﺘﻴﺎرﻳﻦ ‪:‬‬


‫¾ ‪ : Form‬و ﺗﺴﺘﺨﺪم داﺋﻤﺎ ﻟﻌﺮض ﺻﻒ واﺣﺪ ﻣﻦ ‪ Block‬و ﺗﺴﺘﺨﺪم ﻣﻊ‬
‫)‪. (Primary Key‬‬
‫¾ ‪ :Tabular‬و ﺗﺴﺘﺨﺪم داﺋﻤﺎ ﻟﻌﺮض اآﺜﺮ ﻣﻦ ﺻﻒ ﻓﻰ ال ‪ Block‬و ﺗﺴﺘﺨﺪم‬
‫ﻣﻊ )‪. (Foreign Key‬‬
‫ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Next‬ﻟﺘﻈﻬﺮ ﺷﺎﺷﺔ ﻳﺘﻢ ﺗﺤﺪﻳﺪ اﺳﻢ ‪Frame‬‬
‫و ﻋﺪد اﻟﺼﻔﻮف اﻟﺘﻰ ﺳﻮف ﻳﺘﻢ ﻋﺮﺿﻬﺎ و اﻟﻤﺴﺎﻓﺎت ﺑﻴﻦ اﻟﺼﻔﻮف و اﻣﻜﺎﻧﻴﺔ‬
‫ﻋﺮض )‪.( Scrollbar‬وﺗﻜﻮن ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬

‫ﻳﻤﻜﻨﻚ اﻟﻘﻴﺎم ﺑﺎﻧﺸﺎء اآﺜﺮ ﻣﻦ ‪ Block‬و ﺑﻴﻨﻬﻢ رﺑﻂ اذا آﺎن آﻼ ﻣﻨﻬﻢ ﻳﺴﻤﺢ ﺑﻬﺬا‬
‫اﻟﺮﺑﻂ ﻓﻔﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﺑﺎﺗﺒﺎع اﻟﺨﻄﻮات اﻟﺴﺎﺑﻘﺔ ﺗﻢ اﻧﺸﺎء ‪Block Wizard‬‬
‫وﻻﺣﻆ اﻧﻚ اذا ﻗﻤﺖ ﻣﺜﻼ ﺑﺎﻧﺸﺎء ‪ Block‬اﺧﺮ ﻋﻠﻰ ﻧﻔﺲ ‪ Module‬ﻓﺎن اﻻورآﻞ ﻓﻰ‬
‫هﺬة اﻟﺤﺎﻟﺔ ﻳﻘﺪم ﻟﻚ ﺳﺆال وهﻮ هﻞ ﺗﺮﻳﺪ اﻧﺸﺎء ﻋﻼﻗﺔ ﺑﻴﻦ ‪ Old Block‬و ‪New‬‬
‫‪ Block‬وﻳﻜﻮن ﺑﺎﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬
‫ﻓﻔﻰ اﻟﻤﺜﺎل اﻟﺴﺎﺑﻖ ﻗﻤﻨﺎ ﺑﺎﻧﺸﺎء ‪ Block‬ﻟﺠﺪول اﻟﻤﻮﻇﻔﻴﻦ‪.‬‬
‫وﺳﻮف ﻧﻘﻮم اﻻن ﺑﺎﻧﺸﺎء ‪ Block‬ﻟﺠﺪول اﻻﻗﺴﺎم )‪ (Department‬وﺳﻮف ﻳﻜﻮن‬
‫ﺑﻨﻔﺲ اﻟﺨﻄﻮات اﻟﺴﺎﺑﻘﺔ اﻟﺘﻰ ﺗﻢ ﺑﻬﺎ اﻧﺸﺎء ‪ Block‬اﻟﻤﻮﻇﻔﻴﻦ وﻟﻜﻦ ﺑﺎﺧﺘﻼف‬
‫واﺣﺪ وهﻮ اﻧﺸﺎء )‪ (Relation‬وﻓﻴﻬﺎ ﻳﺘﻢ ﻇﻬﻮر اﻟﺸﺎﺷﺔ اﻟﺴﺎﺑﻘﺔ ﻣﺒﺎﺷﺮة وﻳﺘﻢ‬
‫اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Create Relationship‬ﻟﻴﻈﻬﺮ ﻟﻚ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ اﻟﺬى ﻳﻮﺿﺢ‬
‫‪ Block‬اﻟﺬى ﻳﻤﻜﻦ اﻧﺸﺎء ‪ Relationship‬ﻟﺔ ﻣﻊ ‪ Block‬اﻟﺠﺪﻳﺪ و ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ‬
‫‪ OK‬ﻟﻴﺘﻢ اﻧﺸﺎء ‪. Relationship‬‬
‫وﻟﻜﻰ ﻳﺘﻢ ذﻟﻚ ﺑﻨﺠﺎح ﻻﺑﺪ ﻣﻦ‪:‬‬
‫‪ -١‬ان ﻳﻜﻮن هﻨﺎك ﻋﻼﻗﺔ ‪ One To Many‬ﺳﻠﻴﻤﺔ ﺑﻴﻦ اﻟﺠﺪوﻟﻴﻦ‪.‬‬
‫‪ -٢‬ان ﻳﺘﻢ اﻧﺸﺎء ‪ Block‬اﻟﺨﺎص ﺑﺎﻟﺠﺪول اﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ ‪Primary Key‬‬
‫اوﻻ ﻗﺒﻞ اﻧﺸﺎء ‪ Block‬اﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ ‪. Foreign key‬‬
‫)اى ﻳﺘﻢ اﻧﺸﺎء ‪ DEPT‬ﻗﺒﻞ ‪.( EMP‬‬
‫ﻳﻄﻠﻖ ﻋﻠﻰ ‪ Block‬اﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ ‪ Primary Key‬اﺳﻢ )‪. (Master‬‬
‫ﻳﻄﻠﻖ ﻋﻠﻰ ‪ Block‬اﻟﺬى ﻳﺤﺘﻮى ﻋﻠﻰ ‪ Foreign Key‬اﺳﻢ )‪. (Details‬‬

‫واذا ﺣﺪث ﻣﺸﺎآﻞ ﻣﺜﻞ ﻇﻬﻮر ﺗﻠﻚ اﻟﺮﺳﺎﻟﺔ‪:‬‬


‫وﻳﻜﻮن ﺳﺒﺐ اﻟﺮﺳﺎﻟﺔ اﻟﺴﺎﺑﻘﺔ ﻋﻜﺲ اﻟﺸﺮﻃﻴﻦ اﻟﺴﺎﺑﻘﻴﻦ ﻻﺗﻤﺎم ﻋﻤﻠﻴﺔ‬
‫‪ Relationship‬ﺑﻨﺠﺎح‪.‬وﻟﻌﻼج ذﻟﻚ ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ OK‬ﻟﻠﺮﺟﻮع اﻟﻰ‬
‫اﻟﺸﺎﺷﺔ اﻟﺘﻰ ﺑﻬﺎ ﻋﻤﻠﻴﺔ ‪. Relationship‬‬
‫وﻳﺘﻢ اﺗﺒﺎع اﻟﺘﺎﻟﻰ‪:‬‬
‫‪ -١‬ﻳﺘﻢ ازاﻟﺔ اﻟﻌﻼﻣﺔ ﻣﻦ اﻣﺎم ‪. Auto-Join data block‬‬
‫‪ -٢‬اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Create Relationship‬و ﻳﻢ ﻇﻬﻮر اﻟﺮﺳﺎﻟﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫‪ -٣‬ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ OK‬ﻓﻴﻈﻬﺮ اﻟﺸﻜﻞ اﻟﺘﺎﻟﻰ‪:‬‬

‫‪ -٤‬ﻳﺘﻢ اﻟﻀﻐﻂ ﻋﻠﻰ ‪ Ok‬ﻓﻴﻈﻬﺮ ﻟﻚ اﻟﺸﺎﺷﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬


‫وﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ ﺗﺤﺪﻳﺪ ‪ Primary Key‬و ‪ Foreign Key‬ﻣﻦ اﻻﺛﻨﺎن ‪List Item‬‬
‫وهﻢ ‪ Master Item‬و ‪. Details Item‬‬
‫وﻳﺘﻢ اﺧﺘﻴﺎر ‪ Deptno‬ﻓﻰ آﻼ ﻣﻨﻬﻢ‪.‬‬

‫اﻧﺸﺎء ‪ Relationship Manual‬وذﻟﻚ ﻋﻦ ﻃﺮﻳﻖ اﻟﺘﺎﻟﻰ‪:‬‬ ‫ﻳﻤﻜﻦ‬


‫اﻧﺸﺎء ‪ Block‬اﻻﻗﺴﺎم ‪.‬‬ ‫‪-١‬‬
‫اﻧﺸﺎء ‪ Block‬اﻟﻤﻮﻇﻔﻴﻦ وﻋﻨﺪ ﻇﻬﻮر اﻟﺸﺎﺷﺔ اﻟﺘﻰ ﺗﺮﻳﺪ اﻧﺸﺎء‬ ‫‪-٢‬‬
‫‪Relationship Wizard‬‬
‫اﺿﻐﻂ ﻋﻠﻰ ‪ Delete Relation‬و ﺑﺬﻟﻚ ﻳﺘﻢ اﻧﺸﺎء آﻼ ﻣﻦ ‪ Dept‬و ‪Emp‬‬
‫ﺑﺪون رﺑﻂ ﺑﻴﻨﻬﻢ‪.‬‬
‫ﻳﺘﻢ اﻟﺪﺧﻮل ﻣﻦ ﻋﻠﻰ ‪ Object Navigator‬ﻋﻠﻰ ‪ Master Block‬اﻟﺬى‬ ‫‪-٣‬‬
‫ﻳﺤﺘﻮى ﻋﻠﻰ ‪ Primary Key‬و ﻳﻌﺒﺮ ﻋﻨﺔ ﻓﻰ هﺬا اﻟﻤﺜﺎل ‪ Dept‬و ﻳﺘﻢ‬
‫اﻧﺸﺎء ‪ Relationship‬ﻟﺔ ﻋﻦ ﻃﺮﻳﻖ اﻟﻀﻐﻂ ﻋﻠﻴﻬﺎ ﻣﺮﺗﻴﻦ ﻟﻴﻈﻬﺮ اﻟﺸﻜﻞ‬
‫اﻟﺘﺎﻟﻰ‪:‬‬

‫و ﻳﺘﻢ ادﺧﺎل اﺳﻢ ‪ Detail Block‬ﻓﻰ اول ‪ Item‬اى ﻳﺘﻢ ادﺧﺎل ‪. EMP‬‬
‫ﺛﻢ ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ آﺘﺎﺑﺔ ‪ Condition‬ﻓﻰ اﻟﻤﺴﺎﺣﺔ اﻟﺨﺎﻟﻴﺔ اﻟﻜﺒﻴﺮة اﻟﺘﻰ اﻣﺎﻣﻚ‪.‬‬

‫ﺑﻌﺾ اﻻﺧﺘﻴﺎرات اﻟﻤﺘﺎﺣﺔ ﻟﻚ ﻓﻰ اﻧﺸﺎء ‪: Condition‬‬

‫¾ ‪ Cascading‬ﺗﻌﺒﺮ ﻋﻦ اﻣﻜﺎﻧﻴﺔ ﺣﺬف ‪ Primary Key‬ﻣﻦ ‪ Master‬وﻓﻰ ﻧﻔﺲ‬


‫اﻟﻮﻗﺖ ﻳﺘﻢ ﺣﺬف ‪ Foreign Key‬ﻣﻦ ‪. Details‬‬

‫ﺗﻌﺒﺮ ﻋﻦ اﻣﻜﺎﻧﻴﺔ ﺣﺬف ‪ Primary Key‬ﻣﻦ ‪ Master‬ﺑﺪون ﺣﺬف‬ ‫¾ ‪Isolated‬‬


‫‪ Foreign Key‬ﻣﻦ ‪. Details‬‬
‫¾ ‪ Non-Isolated‬ﺗﻌﺒﺮ ﻋﻦ ﻋﺪم اﻣﻜﺎﻧﻴﺔ ﺣﺬف ‪ Primary Key‬ﻣﻦ ‪ Master‬اوﻻ‬
‫ﺑﺪون ﺣﺬف ‪ Foreign Key‬اﻟﺨﺎص ﺑﺔ ﻣﻦ ‪. Details‬‬

‫¾ ‪ Object REF‬و ﻳﺘﻢ ﺑﻬﺎ ﺗﺤﺪﻳﺪ ‪ Foreign Key‬ﻻﻣﻜﺎﻧﻴﺔ اﻻﺷﺎرة اﻟﻴﺔ‪.‬‬

‫ﺗﻌﻨﻰ ﻓﺼﻞ ﻋﻤﻠﻴﺔ اﺳﺘﺮﺟﺎع اﻟﺒﻴﺎﻧﺎت ﻣﻦ اﻻﺛﻨﺎن ‪ Block‬ﻣﻌﺎ‪.‬‬ ‫¾ ‪Deferred‬‬


‫ﻓﺎذا ﻗﻤﺖ ﺑﺎﺧﺘﻴﺎرهﺎ ﻓﺎﻧﺖ ﺑﺬﻟﻚ ﻣﻦ ﻋﻠﻰ ‪ Run time‬ﻋﻨﺪ‬
‫اﻟﻘﻴﺎم ﺑﺎﻟﻀﻐﻂ ﻋﻠﻰ ‪ Execute‬ﻳﺘﻢ اﺳﺘﺮﺟﺎع اﻟﺒﻴﺎﻧﺎت ﻟﻞ ‪DEPT‬‬
‫ﻓﻘﻂ ﺑﺪون ال ‪. EMP‬‬
‫وﻟﻜﻰ ﻳﻤﻜﻨﻚ اﺳﺘﺮﺟﺎع اﻟﺒﻴﺎﻧﺎت ﻣﻦ ال ‪ EMP‬ﻻﺑﺪ ان ﺗﻘﻮم‬
‫ﺑﺎﻟﻮﻗﻮف ﻋﻠﻰ ال ‪ . EMP‬وذﻟﻚ اذا آﺎﻧﺖ اﻟﻌﻼﻣﺔ اﻣﺎم ‪Auto-Query‬‬
‫واذا ﺗﻢ ازاﻟﺔ اﻟﻌﻼﻣﺔ ﻓﺎﻧﺖ ﻻﺑﺪ ان ﺗﻘﻮم ﺑﺎﻟﻀﻐﻂ ﻣﺮة ﺛﺎﻧﻴﺔ ﻋﻠﻰ‬
‫‪. Execute Query‬‬

‫¾ ‪ :Prevent Masterless Operation‬و ﺗﻌﻨﻰ ﻋﺪم اﻣﻜﺎﻧﻴﺔ اﺟﺮاء أى ﻋﻤﻠﻴﺔ‬


‫‪ DML‬ﻣﺜﻞ )‪ (Insert, Update, Delete‬ﺑﺪاﺧﻞ ‪ Details‬ﺑﺪون ان ﻳﻜﻮن رﻗﻢ‬
‫اﻟﻘﺴﻢ ﻣﻮﺟﻮد ﻓﻰ اﻟﻌﻤﻮد اﻟﺨﺎص ﺑﺎرﻗﺎم اﻻﻗﺴﺎم‪.‬‬

You might also like