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

Chapter - 4 Create A Basic Form

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)
7 views14 pages

Chapter - 4 Create A Basic Form

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
You are on page 1/ 14

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