6i ربولفيد لكاروأ في تارضامح...start programs oracle forms 6i-orantf form...

115
ديفلوبر أوراكل ضرات ا 6i 1 ن الرحيم الرحم بسم ا/ [email protected]

Upload: others

Post on 27-Jan-2021

10 views

Category:

Documents


0 download

TRANSCRIPT

  • 6iحماضرات يف أوراكل ديفلوبر

    1

    بسم اهلل الرحمن الرحيم

    /

    [email protected]

  • 6iحماضرات يف أوراكل ديفلوبر

    2

    Developer 6iفهرس حماضرات

    1

    ٍيـمـذيـت عـ(SQL , PL/SQL) ........................................................... 1

    انـًـسـتـخـذيـىٌ وانـصـالحـيـاث وعـاللـتـهـًـا بانـ(Role) .............................. 1

    إَـشـاء يـسـتـخـذو خـذيـذ ويـُـحـه انـصـالحـيـاث ..........................................2

    إَـشـاء انـدـذاول وانـمـيـىد انـتـابـعـت نـهـا ....................................................3

    2

    تـشـغـيـمForm Builder ......................................................................4

    انـشـاشـاث انـشئـيـسـيـت نهـ(From Builder) .............................................. 7

    َـبـزة ُيـبـسـطـت عـٍ يـحـتـىيـاثObject Navigator ................................. 7

    انـحـفـظ وانـتـُـفـيـز فـي بـشايـحDeveloper 6i ..................................... 8

    3

    يـٍ خـصـائـصMODULE ................................................................ 9

    األحـذاثTriggers ............................................................................. 10

    انـشسـائـم(Message & Alert) ...........................................................10

    ُكـتـم انـبـيـاَـاثData Blocks .............................................................. 12

    انـخـصـائـص انـًـشئـيـتVisual Attribute .............................................. 13

    انـعـُـاصـش Items(Input & Non_Input) ............................................. 13

    4

    انـتـحـكـى بـانـخـصـائـص بـشيـدـيـًا(Window & Block & Item) ..............15

    انـًـتـحـىالث انـعـايـت وانـًـتـحـىالث انـًـحـهـيـت ..........................................16

    انـتـحـكـى بـانـخـصـائـص بـشيـدـيـًا عـٍ طـشيـك انـًـتـحـىالث انـعـايـت ...............16

    5 - 6

    انـعـاللـاثRelations ......................................................................... 18

    انـحـمـىل انحـسـابـيـت(Formula & Summary)....................................... 20

    سبـط انـدـذاول ....................................................................................22

    انـىحـذاث انـبـشيـدـيـتProgram Units(Procedure & Function)............ 23

  • 6iحماضرات يف أوراكل ديفلوبر

    3

    7 عـُصـشList Item(Static & Dynamic) .............................................

    25

    انـمـائـًت انـًـشكـبـتLOVs(Static & Dynamic _ Manually & Wizrad) 27

    8

    عـصـش اإلخـتـيـاس انـفـشيـذRadio Group(Radio Buttons) ......................32

    عـُـصـش اإلخـتـيـاس انـًـتـعـذدCheck Box ..............................................33

    أَـىاع انـمـًـاشـيـتCanvases ................................................................ (Content & Stacked & Tab & Vertical _ Horizontal Toolbar)

    34

    9

    تـشـغـيـمReport Builder ..................................................................37

    انـشـاشـاث انـشئـيـسـيـت نهـ(Report Builder) ............................................ 40

    َـبـزة ُيـبـسـطـت عـٍ يـحـتـىيـاثObject Navigator ................................. 40

    َـًـىرج انـبـيـاَـاثData Model(System Parameters & User Parameters) 41

    َـًـىرج انـُـسـكLayout Editor(Header & Body & Footer).................. 44

    10

    انـًـدـايـيـعGroups............................................................................ 45

    حـمـم صـيـغـت )اإلضـافـت بـإسـتـخـذاوFormula ........................................ ) 46

    سـتـعالو اإل)اإلضـافـت بـإسـتـخـذاوSQL Query........................................ ) 47

    حـمـىل انـتـدـًـيـعSummary............................................................... 48

    11

    انـمـىائـىMenu .................................................................................. 49

    ٍانـمـىائـى انـًـُـبـثـمـت بـزس انـفـأسة األيـًـPopup Menu .............................. 51

    ٍطـشق انـشبـط بـيـٍ أكـثـش يـ((Formsأو بـيـٍ انـ ((Formوانـ ((Report ....... 52

    انـًعـايـالثParameters ..................................................................... 53

    12

    انـتـعـايـم يـع يـهـفـاث انـصـىسة ..............................................................55

    انـتـعـايـم يـع يـهـفـاث انـصـىث ..............................................................57

    اإلسـتـيـشاد وانتـصـذيـش .........................................................................58

    ..................................................................................... SQLيـهـحـك انـصـيـغ انـعـايـت نـدـًـم

  • 6iحماضرات يف أوراكل ديفلوبر

    4

    احملاضرة األوىل

    ،Developer 6i ٕٜ اىُثْٞح األعاعٞح ىثشّاٍح PL/SQL (SQL ,)ذؼرثش اىـ

    ىغح ٍؼاىسح اىثٞاّاخDML : ٚاٌزٟ رزؼبًِ ِغ ِؾز٠ٛبد اٌغذاٚي ٌزٌه ٠ّىٓ اٌزشاعغ ػٕٙب ثؼذ رٕف١ز رؼ١ٍّبرٙب ألٔٙب ال رزؼبًِ ِغ

    ا١ٌٙىً ٔفغٗ ،

    ، ( ٌؾزفٙبdelete- ٌزؼذ٠ٍٙب update- إلدخبٌٙب insert- إلعزؼشاك اٌج١بٔبد select)ٚرؾٛٞ اٌزؼ١ٍّبد

    ىغح ذؼشٝف اىثٞاّاخDDL :

    ٌزٌه ال ٠ّىٓ اٌزشاعغ ثؼذ رٕف١ز رؼ١ٍّبرٙب ، (Database)ٚاٌزٟ رزؼبًِ ِغ ُث١ٕخ اٌـ

    ، ( ٌؾزف اٌىبئٓ ٔٙبئ١ًبdrop- ٌزؼذ٠ً ِٛاففبد اٌىبئٓ alter- إلٔؾبء اٌىبئٓ create)ٚرؾٛٞ اٌزؼ١ٍّبد

    ىغح اىرسنٌ تاىثٞاّاخDCL : . ( ٌغؾت اٌقالؽ١خrevoke- ٌّٕؼ اٌقالؽ١خ grant)ٚرؾٛٞ اٌزؼ١ٍّبد

    Functions

    اىذٗاه اىسغاتٞح: Sum( ) – Max( ) – Min( ) – Avg ( ) – Count( ) –

    Abs( ) – Mod( ) – Sqrt( ) – Power( ) – Floor( ) – Ceil( ) – Round( ) –

    Nvl( , )

    اىذٗاه اىَسشفٞح: Lower( ) – Upper( ) – Initcap( ) – Concat( , ) – Substar( , , ) –

    Length( ) – Instr( , ) – Lpad( , , ) – Rpad( , , ) – Ltrim( ) – Rtrim(

    )

    دٗاه اىراسٝخ ٗاى٘قد : Sysdate – Months_Between( , ) – Add_Months( ) – Next_Day( , ) –

    Last_Day( )

    * , / , + , - , Not , And , Or , = , != , > , >= , < ,

  • 6iحماضرات يف أوراكل ديفلوبر

    5

    ػٍٝ ئفزشاك أْ أسثؼخ ِؾبعج١ٓ ٠ؼٍّْٛ فٟ ِغبٌُٙ ثؾجىخ ػًّ ِٛؽذح فأٗ ِٓ األفنً ػذَ ئػيبئُٙ

    ٚؽ١ذ ٚوٍّخ اٌّشٚس اٌزبثؼخ ٌٗ ٚرٌه ثغشك ِؼشفخ األخيبء ِّٓ ئسرىجذ ِٚٓ ٘ٛ اٌّغئٛي Userع١ّؼًب ئعُ

    ٚوٍّخ ِشٚس خبفخ ثٗ ٚإِٔؾٗ وزٌه اٌقالؽ١بد رارٙب ، Userاٌّجبؽش ػٕٙب ٌزٌه ٔؾذد ٌىً ؽخـ ئعُ

    ٚاؽذح ٔمَٛ ثأؾبئٙب ٠ٛفش ػ١ٍٕب اٌىض١ش ِٓ اٌغٙذ (Role)ٌزٌه ٔغذ أْ رغ١ّغ فالؽ١بد اٌّغزخذ١ِٓ داخً

    ... ٚاٌٛلذ اٌالص١ِٓ ػٕذ رىشاس ٔفظ اٌؼًّ

    عذٚي ٚأسدٔب ِٕؼ وً عذٚي 20فؼٍٝ افزشاك أٔٗ ٠ٛعذ ٌذ٠ٕب

    فالؽ١خ اٌؾزف - updateفالؽ١خ اٌزؼذ٠ً - insertفالؽ١خ اإلدخبي - selectفالؽ١خ اإلعزؼشاك )

    delete) 320 ٌٍّغزخذَ اٌٛاؽذ ، أٞ طالزٞح80= خذٗه 20* طالزٞاخ ٠4ؼٕٟ إٔٔب عٕؾزبط ئٌٝ ِٕؼ

    .... ٌٍّغزخذ١ِٓ األسثؼخ ،طالزٞح

    ٚاؽذح فإٔب عٕؾزبط فمو ئٌٝ ِٕؼ (Role)ػٍٝ اٌغذاٚي داخً ( اىظالزٞح80)ٌٚىٓ ئرا لّٕب ثزغ١ّغ ٘زٖ اٌـ

    ( Role)ِٕؼ فالؽ١خ اٌـ) فالؽ١بد ٌٍّغزخذ١ِٓ 4ِٚٓ صُ (Role) فالؽ١خ ئٌٝ داخً 80ثٛالغ طالزٞح 84

    . ، ٚاٌزفبف١ً ٔفغٙب رٕيجك ػٕذ ػ١ٍّخ عؾت اٌقالؽ١بد (ٌىً ِغزخذَ

    =======================================================================

    =========

    PL / SQLٌٟٚؽىً اٌجشٔبِظ ف١ٙب وبٌزب :Declare

    ٚ اٌضٛاثذ ٚٔالؽظ ٕ٘ب ػٕذ اعزخذإِب Cursor ٚفٟ ٘زا اٌغضء ٠زُ اإلػالْ ػٓ اٌّزؾٛالد ٚاٌّإؽشاد

    ألْ ىج١ؼخ ػًّ اٌّإؽشاد ٠ؼزّذ ػٍٝ into ػٍٝ ِؼبًِ اإلعٕبد ٞ ٘زٖ ال رؾزSelectٌٍّٛإؽشاد أْ عٍّخ

    . ِٚٓ صُ ِؼبٌغزٙب ػٍٝ عغً عغً (ثذْٚ رضآِ)ئؽنبس ع١ّغ اٌغغالد دفؼخ ٚاؽذح

    Begin

    ػٍٝ ٞ ٘زٖ رؾزSelectٛٚٔالؽظ ٕ٘ب أْ عٍّخ (SQL, PL/SQL)ٚفٟ ٘زا اٌغضء ٠زُ وزبثخ اٌجشٔبِظ ثأٚاِش اٌـ

    . إلسعبع عغً ٚؽ١ذ Where ٠ٚؾزشه ف١ٙب وزبثخ ؽشٚه اٌشثو ث١ٓ اٌغذاٚي intoِؼبًِ اإلعٕبد

    Exception

    ٚفٟ ٘زا اٌغضء رزُ ِؼبٌغخ األخيبء اٌّزٛلغ ؽذٚصٙب أصٕبء رٕف١ز اٌجشٔبِظ ٟٚ٘ رٍه األخيبء اٌزٟ ال رىزؾف

    : (االعزضٕبءاد)ِٚٓ ٘زٖ األخيبء ( ١ٌSyntaxغذ أخيبء ف١غخ ) Compileأصٕبء اٌزشعّخ

    no_data_found : ٟاإلعزؼالَ أٞ ث١بٔبد ؽغت اٌؾشه ،دٚرغزخذَ ػٕذِب ال ٠ؼ too_many_rows : ، ٚرغزخذَ ػٕذِب ٠ؼ١ذ اإلعزؼالَ أوضش ِٓ عغً ؽغت اٌؾشه zero_devided : ، ٚرغزخذَ ػٕذِب رزُ اٌمغّخ ػٍٝ ففش cursor_already_open : ، ٗٚرغزخذَ ػٕذِب ٠ىْٛ اٌّإؽش ِفزٛؽًب ِشح أخشٜ دْٚ ئغالل others : ْاٌّفزشك وزبثزٙب دائًّب)ٚرغزخذَ ِٓ أعً أال ٠زُ ئ٠مبف اٌجشٔبِظ ألٞ خيأ وب ِٓ) . End ;

    Start Programs Oracle - oracle

    Application Development SQL Plus

  • 6iحماضرات يف أوراكل ديفلوبر

    6

    ؽغت اٌخيٛاد اٌغبثمخ ٌٕالؽظ ظٙٛس ؽبؽخ ريبٌت SQL Plusٌٚؼًّ رٌه ٔمَٛ أٚاًل ثبٌذخٛي ئٌٝ ثشٔبِظ

    ٗميَح SYSTEMزاىًٞا ّنرة ئعٌ اىَغرخذً )ثادخبي ئعُ ٌٍّغزخذَ ٚوٍّخ اٌّشٚس اٌخبفخ ثٗ ،

    ( MANAGERاىَشٗس

    ٔمَٛ ثىزبثخ ٘زا األِش أِبَ ِؾشSQL ٌٍَزأوذ ِٓ اٌّغزخذَ اٌؾبٌٟ ٘ٛ ِذ٠ش إٌظب SYSTEM SQL> show user ;

    user is "SYSTEM"

    ّٗٔمَٛ ثأؾبء ِغزخذَ عذ٠ذ اعUST ٚوٍّخ اٌغش TAIZ SQL> create user ust identified by taiz ;

    User created.

    ّٕٔؼ اٌـ(Role [connect , resource]) ٌٍَّغزخذ UST SQL> grant connect , resource to ust ;

    Grant succeeded.

    ّٕٔؼ اٌـ(Role [exp_full_database , imp_full_database]) ٌٍَّغزخذ UST SQL> grant exp_full_database , imp_full_database to ust ;

    Grant succeeded.

    َٔمَٛ ا٢ْ ثبالرقبي ثبٌّغزخذUST SQL> connect ust ;

    Enter password : ****

    Connected.

    َٔزأوذ ِٓ إٔٔب داخً اٌّغزخذUST فؼ١ًٍب SQL> show user ;

    user is "UST"

  • 6iحماضرات يف أوراكل ديفلوبر

    7

    َٔمَٛ ثأؾبء اٌغذاٚي اٌزب١ٌخ ٌٍّغزخذUST (ًثؾغت اٌّٛاففبد ٚاٌم١ٛد اٌّزوٛسح ٌىً ؽم)

    Table name

    Fields Name

    Section Sec_No

    number(2)

    (P. K)

    Sec_Name varchar2(50)

    (Not Null)

    Lvl Lvl_No

    number(1)

    (P. K)

    Lvl_Name varchar2(50)

    (Not Null)

    Stu

    Stu_No number(3)

    (P. K)

    Stu_Name varchar2(50)

    (Not Null)

    Stu_Sec number(2)

    (F.K)

    Stu_Lvl number(1)

    (F.K)

    Stu_Add varchar2(50)

    Stu_BrthDt date

    Stu_Avg number(5,2)

    Stu_CertType

    number(1)

    Subject Sub_No

    number(3)

    (P. K)

    Sub_Name varchar2(50)

    (Not Null)

    Sub_Sec number(2)

    (F.K)

    Sub_Lvl number(1)

    (F.K)

    Mark

    Mark_Sec number(2)

    (F.K)

    Mark_Lvl number(1)

    (F.K)

    Mark_Stu number(3)

    (F.K)

    Mark_Sub number(3)

    (F.K)

    Mark_Yj number(5,2)

    (Check 0 .. 20)

    Mark_Ht number(5,2)

    (Check 0 .. 20)

    Mark_Ft

    number(5,2)

    (Check 0 .. 60)

    SQL> create table Section(Sec_No number(2) primary key ,

    Sec_Name varchar2(50) not null) ;

    Table created.

    SQL> create table Lvl(Lvl_No number(1) primary key ,

    Lvl_Name varchar2(50) not null) ;

    Table created.

  • 6iحماضرات يف أوراكل ديفلوبر

    8

    SQL> create table Stu(Stu_No number(3) primary key ,

    Stu_Name varchar2(50) not null ,

    Stu_Sec number(2) constraint stusecfk references Section(Sec_no) ,

    Stu_Lvl number(1) constraint stulvlfk references Lvl(Lvl_no) ,

    Stu_Add varchar2(50) , Stu_BrthDt date ,

    Stu_Avg number(5,2) , Stu_CertType number(1)) ;

    Table created.

    SQL> create table Subject(Sub_No number(2) primary key ,

    Sub_Name varchar2(50) not null ,

    Sub_Sec number(2) constraint subsec references Section(Sec_No) ,

    Sub_Lvl number(1) constraint sublvl references Lvl(Lvl_No) ,

    Sub_Stu number(3) constraint substu references stu(Stu_No) ) ;

    Table created.

    SQL> create table Mark(

    Mark_Sec number(2) constraint marksec references Section(Sec_No) ,

    Mark_Lvl number(1) constraint marklvl references Lvl(Lvl_No) ,

    Mark_Stu number(3) constraint markstu references stu(Stu_No) ,

    Mark_Sub number(2) constraint marksub references subject(Sub_No) ,

    Mark_Yj number(5,2) constraint chkYj check(Mark_Yj between 0 and 20)

    ,

    Mark_Ht number(5,2) constraint chkHt check(Mark_Ht between 0 and 20)

    ,

    Mark_Ft number(5,2) constraint chkFt check(Mark_Ft between 0 and 60))

    ;

    Table created.

  • 6iحماضرات يف أوراكل ديفلوبر

    9

    =======================================================================

    =========

    ٍالزظاخ ٕاٍح :

    a. َػٕذ ئٔؾبء أٞ ِغزخذَ عذ٠ذ فاْ رٌه ٠ىْٛ ِٓ داخً اٌّغزخذSYSTEM ٍٝٚرٌه ألٔٗ لبدس ػ .اٌزٟ ٠ّزٍىٙب ([Role [DBA)اإلٔؾبء ِٓ خالي فالؽ١خ اٌـ

    b. ٌَٕزّىٓ ِٓ ئرّبَ ػ١ٍّخ اإلرقبي ثبٌّغزخذUST ثٕغبػ ٠غت ِٕؾٗ فالؽ١خ ئٔؾبء اٌغٍغخ

    Create Sessionخالي اٌـ ِٓ (Role [connect]) ألْ ٘زٖ اٌقالؽ١خ ِنّٕخ ف١ٙب . c. َػٕذ ئٔؾبء اٌغذاٚي فإٔب ٔمَٛ ثبإلرقبي ثبٌّغزخذUST ٚرٌه ِٓ أعً أْ رىْٛ اٌغذاٚي إٌّؾئخ

    . ربثؼخ ٌٗ

  • 6iحماضرات يف أوراكل ديفلوبر

    10

    احملاضرة الثانية

    Developer 6i : ٘ٛ اٌٛاعٙخ اٌزٟ رّىٕٕب ِٓ ػًّ ثشاِظ ٠زخبىت ثٙب

    ِغ لبػذح اٌج١بٔبد ٚ٘ٛ ٠ؾزٛٞ اٌؼذ٠ذ ِٓ (User)اٌـ

    :اٌّغبػذح فٟ أٚساوً ِضً (األدٚاد)اٌجشاِظ

    Form Builder – Report Builder – Graphics Builder

    . ئٌخ ...

    =====================================

    =========

    Form Builder : ( User)أداح رغزخذَ ٌجٕبء إٌّبرط اٌزٟ ٠غزخذِٙب اٌـ

    . ثىً ػٕبفش٘ب

    ==============================================

    Form Builder Start Programs Oracle Forms 6i-orantf Form Builder

    فبٌزق١ُّ فزظٙش أٚاًل ؽبؽخ رشؽ١ج١خ ٠ّىٓ ِٓ خالٌٙب رؾذ٠ذ ِب ئرا وبْ اٌّيٍٛة اٌجذء ثبٌزق١ُّ أٚ ثبٌزؼ١ٍُ ،

    :أسثغ خ١بساد ٟٚ٘

    ئعزخذاَ ِؼبٌظ وزٍخ اٌج١بٔبدData Block ،

    ، ثٕبء ّٔٛرط عذ٠ذ ٠ذ٠ًٚب ، فزؼ ّٔٛرط ِٛعٛد ِغجمًب ثٕبء ّٔٛرط ٠ؼزّذ ػٍٝ لبٌت .

    :ٌٍٚزؼ١ٍُ خ١بساْ ّٚ٘ب

    ِفب١ُ٘)ػشك اٌغٌٛخ اٌغش٠ؼخ) ، ِٙبَ)ئعزىؾبف وشٚد اٌز١ٍّؾبد)

    .

    زاىًٞا عْخراس اىثذء تاىرظٌَٞ )

    Dataتاعرخذاً ٍؼاىح مريح اىثٞاّاخ

    Block ثٌ ّؼغط OK )

    ٌزظٙش ثؼذ رٌه ؽبؽخ رشؽ١ج١خ خبفخ ثّؼبٌظ

    (فْؼغط اىراىٜ) Data Blockوزٍخ اٌج١بٔبد

    :ً٘ ٟ٘ صُ رظٙش ؽبؽخ رؾذ٠ذ ٔٛع وزٍخ اٌج١بٔبد

    ، عذٚي أٚ ِؾٙذ

  • 6iحماضرات يف أوراكل ديفلوبر

    11

    ْئعشاء ِخض. زاىًٞا عْخراس خذٗه أٗ ٍشٖذ ثٌ )

    (ّؼغط اىراىٜ

    ثؼذ رٌه ٠يٍت ئعُ اٌغذٚي أٚ اٌّؾٙذ

    Dataاٌزٞ عزإخز ِٕٗ وزٍخ اٌج١بٔبد

    Block ،

    ٌٚؼًّ رٌه الثذ ِٓ اإلسرجبه أٚاًل ثمبػذح

    ٗرىل تاىؼغط ػيٚ اىضس اٌج١بٔبد

    Browse…

    ( Password)ٚاٌـ (User)ٚوزبثخ ئعُ اٌـ

    ٍِٗ ثٌ اىؼغط ػيٚ اىضس ثؾىً فؾ١ؼ

    connect

    :فزؾذ٠ذ ىش٠مخ اٌؼشك

    عزىْٛ ٌّب ٠زؼٍك ً٘اٌزٞ رُ )ثبٌّغزخذَ اٌؾبٌٟ

    أَ (اإلسرجبه ِٓ خالٌٌّٗغزخذ١ِٓ آخش٠ٓ أَ ٌى١ٍّٙب ،

    ِٓ ٕٗٚرؾذ٠ذ ِب ٔش٠ذ رن١ّ اٌغذاٚي ٚاٌّؾب٘ذ ٚاٌّشادفبد ،

    ٚفاخز١بس اٌغذٚي أٚ اٌّؾٙذ أ

    .اٌّشادف اٌّيٍٛة ، TAIZ ٗميَح اىغش USTزاىًٞا عْخراس ئعٌ اىَغرخذً )

    ( STUٍِٗ خذاٗه ٕزا اىَغرخذً اىساىٜ ّخراس اىدذٗه

    فٕخزبس ِٕٙب اٌؾمٛي (List)ٚثبٌزبٌٟ رظٙش اٌؾمٛي فٟ اٌـ

    ( ثٌ ّؼغط اىراىٜ ، > ،

  • 6iحماضرات يف أوراكل ديفلوبر

    12

    ٌزؼٍٓ congratulationsرظٙش ؽبؽخ اٌزٙبٟٔ ٚاٌزجش٠ىبد

    ثٕغبػ ، ٚلجً أْ Data Blockػٓ ئرّبَ ِؼبٌظ وزٍخ اٌج١بٔبد

    :اٌخ١بس٠ٓ اٌزب١١ٌٓ ٔشٜ ٚعٛد Finishٔنغو

    ئٔؾبء وزٍخ اٌج١بٔبدData Block ثؼذ اإلرقبي ، (Layoutاٌّخيو )ثّؼبٌظ اٌزق١ُّ

    ئٔؾبء وزٍخ اٌج١بٔبد فمو .زاىًٞا عْخراس ئّشاء مريح اىثٞاّاخ تؼذ اإلذظاه )

    ( ثٌ ّؼغط ّٖاٝحLayoutتَؼاىح اىرظٌَٞ

    ٌزظٙش ثؼذ رٌه ؽبؽخ رشؽ١ج١خ خبفخ ثّؼبٌظ اٌزق١ُّ

    اٌّخيو )

    Layout )

    فْؼغط )

    (اىراىٜ

    فزظٙش ؽبؽخ

    )رؾذ٠ذ ٔٛع اٌـ

    اٌٛسلخ أٚ

    اٌمّبػ

    Canvas) ٕٚ٘بن

    خّغخ أٔٛاع

    ٟ٘ٚ :

    ( ]اٌّؾبمشح اٌضبِٕخ[عٕذسعٙب الؽمًب ثبٌزفق١ً )

    Content Stacked Vertical Toolbar Horizontal Toolbar

    Tab ( ثٌ ّؼغط اىراىContentٜزاىًٞا ّدؼيٖا ػيٚ اىْ٘ع اإلفرشاػٜ )

    فٕخزبس ِٕٙب اٌؾمٛي اٌّيٍٛة ئظٙبس٘ب فٟ إٌّٛرط (List)فٟ اٌؾبؽخ اٌزب١ٌخ ٌٙب رظٙش اٌؾمٛي فٟ اٌـ

    ٝفؼو ) >> ، > ،

  • 6iحماضرات يف أوراكل ديفلوبر

    13

    ٠ّىٕٕب فٟ ٘زٖ اٌؾبؽخ رغ١١ش اٌؼٕب٠ٚٓ

    ٚوزٌه Promptاٌظب٘شح ألعّبء اٌؾمٛي

    (ثٌ ّؼغط اىراىٜ) H ٚىٌٛٙب Wػشمٙب

    رظٙش ؽبؽخ رؾذ٠ذ ىش٠مخ ػشك وزٍخ

    :ً٘ عزىْٛ اٌج١بٔبد

    Form : ٞٛػٕذِب ٔش٠ذ أْ ٠ؾزإٌّٛرط ػٍٝ ػذد ِٓ اٌىبئٕبد ِضً

    Text ، Display item ، List item ، Image item ، Radio Group ، ...

    ئٌخ

    Tabular : ػٕذِب ٔش٠ذ أْ رظٙش .اٌج١بٔبد ػٍٝ ؽىً عغالد

    ثٌ ّؼغط Tabularزاىًٞا عْخراس )

    (اىراىٜ

    :ٔؾذد فٟ ٘زٖ اٌؾبؽخ

    ئعُ ٌٍـ(Frame) ،

    1اإلفزشامٟ )ٚػذد اٌغغالد اٌظب٘شح) ، ًٚاٌّغبفخ ث١ٓ اٌغغالد ِمذسح ثبٌج١ىغPixcel ( ٟ0اإلفزشام. )

    ماعٌ ىإلطاس ، Studentsزاىًٞا عْقً٘ تنراتح )ًٚ٘ ٔش٠ذ ػشك ؽش٠و اٌزّش٠ش ثغٛاس اٌج١بٔبد أَ ال ؟

    تٞنغو ، ٗذْشٞط ( 2 )، ٗذسذٝذ اىَغافح تِٞ اىغدالخ تـ ( 5 )ٗذسذٝذ ػذد عدالخ ظإشج تـ

    ػشع ششٝط اىرَشٝش ، ثٌ ّؼغط

    (اىراىٜ

    ثؼذ٘ب رظٙش ؽبؽخ اٌزٙبٟٔ ٚاٌزجش٠ىبد

    congratulations ٌزؼٍٓ ػٓ ئرّبَ ِؼبٌظ

    فْؼغط )ثٕغبػ ، (اٌّخيو)اٌزق١ُّ

    (ّٖاٝح

    Formٗتزىل ّنُ٘ قذ قَْا ترشغٞو

    Builder.

  • 6iحماضرات يف أوراكل ديفلوبر

    14

    Form

    Builder1. Object Navigator:

    ٚوزٌه اٌىبئٕبد ٠ٚFormؾزٛٞ ػٕبفش إٌّٛرط وبٍِخ

    Objects ِٓ اٌّّىٓ اٌؾقٛي ػٍٝ ٘زٖ اٌؾبؽخ ِٓٚ ،

    ٔخزبس Toolsأٚ ِٓ اٌمبئّخ F3خالي اٌنغو ػٍٝ اٌضس

    . Object Navigatorاألِش

    2. Layout Editor: ٚاٌؼٕبفش اٌّزٛمؼخ ٠ٚCanvasؾزٛٞ اٌٛسلخ أٚ اٌمّبػ

    ػ١ٍٗ ، ِٚٓ اٌّّىٓ اٌؾقٛي ػٍٝ ٘زٖ اٌؾبؽخ ِٓ

    ٔخزبس Tools أٚ ِٓ اٌمبئّخ F2خالي اٌنغو ػٍٝ اٌضس

    .Layout Editorاألِش

    3. Property Palette: ، ِٚٓ اٌّّىٓ اٌؾقٛي ػٍٝ ٘زٖ اٌؾبؽخ ِٓ خالي اٌنغو Objectsٚرؾزٛٞ خقبئـ اٌؼٕبفش ٚاٌىبئٕبد

    . Property Palette ٔخزبس األِش Tools أٚ ِٓ اٌمبئّخ F4ػٍٝ اٌضس

    =======================================================================

    =========

    Object

    Navigator

    Forms

    اإلفزشامٟ ٠ٚأخز ئعُ ((Formئعُ اٌـ : ] MODULE1زاىًٞا [ .1اٌجشٔبِظ دًِٚب ،

    2. Triggers: ٓػجبسح ػ ٟ٘ٚ (, PL/SQL (SQL ٠ٕفز ػٕذ ؽذس ِؼ١ٓ ،

    3. Alerts: ، ًػجبسح ػٓ اٌشعبئ ٟ٘ٚ 4. Attached Libraries: ػجبسح ػٓ ِىزجبد ٟ٘ٚ PL/SQL ، 5. Data block: ْٛرؾزٛٞ اٌىزً ٚاٌزٟ ئِب أْ رى ٟ٘ٚ DB ٟ٘ٚ

    أٚ لذ رىْٛ (Database)اٌزٟ رؼزّذ ػٍٝ عذاٚي أٚ ِؾب٘ذ ِٓ اٌـ

    NonDBوزً اٌزؾىُ اٌزٟ ال رؼزّذ ػٍٝ اٌـ ٟ٘ٚ (Database) ،6. Canvases: اٌٛسلخ اٌزٟ رشعُ ػ١ٍٙب ) أٚ اٌمّبؽ١خ ٟٚ٘ اٌخٍف١خ

    ، (اٌؼٕبفش7. Editor: ٠ّٚىٕه ِٓ خالٌٗ ئخز١بس ِؾشس إٌقٛؿ اٌزٞ رش٠ذ

    ئعزخذاِٗ ،

    8. LOVs: ِٓ ٓػجبسح ػٓ لبئّخ ِشوجخ رم١ُ ؽمً ِؼ١ ٟ٘ٚ ، (Database)اٌـ

    9. Object Groups: ػجبسح ػٓ رغ١ّغ ٌٍىبئٕبد فٟ ِغّٛػخ ٟ٘ٚ ٚاؽذح ٌٕزغٕت ثزٌه اٌزىشاس أصٕبء اٌؼًّ خبفخ فٟ ػ١ٍّبد إٌغخ

    ٚاٌٍقك ، 10. Parameters: إٌّٛرط ) ُِٙ عذًا ػٕذ ئسعبي ل١ُ ِغForm) ٌٝئ

    ّٔٛرط آخش ، 11. Popup Menus: ، ِّٓخقـ ٌٍمٛائُ إٌّجضمخ ثضس اٌفأسح األ٠

    12. Programs Units: ْٛئِب أْ رى ٟ٘ٚ Procedure ٚأ Function ٚأ Package ، 13. Property Classes: ، ػجبسح ػٓ رغ١ّغ ٌٍخقبئـ فٟ ِغّٛػخ ٚاؽذح ٟ٘ٚ

  • 6iحماضرات يف أوراكل ديفلوبر

    15

    14. Record Groups: ٔؾزبط إلعزخذاِٙب ِغ LOVs ، 15. Reports: ، إلٔؾبء اٌزمبس٠ش 16. Visual Attributes: ، ٠غزخذَ إلٔؾبء ِغّٛػخ خقبئـ ِشئ١خ 17. Windows: ، ٠غزخذَ ٌٍزؾىُ ثبٌٕٛافز

    Menus ُؽ١ش رخضْ فٟ ٍِف ِغزمً) ٔؾزبعٙب ػٕذ اٌزؼبًِ ِغ اٌمٛائ) ،

    PL/SQL Libraries ػجبسح ػٓ ِىزجبد ٟ٘ٚPL/SQL ،

    Object Libraries ٟػجبسح ػٓ ِىزجبد رزجغ اٌىبئٕبد اٌّٛعٛدح ف ٟ٘ٚ Oracle ،

    Built–in Packagesػجبسح ػٓ اٌؾضَ اٌّذِغخ ِغ اٌـ ٟ٘ٚ(Oracle) ،

    Database Objects ؽ١ش رمَٛ ثؼشك ع١ّغ ِغزخذِٟ لبػذح اٌج١بٔبد

    Developer 6i

    Forms اىَْارجSave اٌؾفظ Source ِٞقذس*.FMB Form Builder

    Compile اٌزشعّخExecute ٞرٕف١ز*.FMX Forms Runtime

    Menu ٌاىق٘ائSave اٌؾفظ Source ِٞقذس*.MMB Form Builder

    Compile اٌزشعّخExecute ٞرٕف١ز*.MMX Forms Runtime

    Reports اىرقاسٝش Save اٌؾفظ Source ِٞقذس*.RDF Report Builder

    Compile اٌزشعّخExecute ٞرٕف١ز*.REP Reports Runtime

    ِغ اٌّجشِظ ، Source ٠ٚجمٝ اٌٍّف اٌّقذسٞ Executeىجؼًب ٠ؼيٝ اٌضثْٛ اٌٍّف اٌزٕف١زٞ

    . اٌزؼذ٠ً فٟ اٌزٕف١زٞ عؽ١ش ٠غزي١غ اٌزؼذ٠ً فٟ اٌجشٔبِظ ٚال ٠غزيٟ

  • 6iحماضرات يف أوراكل ديفلوبر

    16

    ٍالزظاخ ٕاٍح :

    a. الُثذ أْ ٠ٛمغ ػٍٝ (وبئٓ)ػٕذ سعُ أٞ أداحCanvas ٚئال فاْ اٌّزشعُ ع١ؼيٟ سعبٌخ خيأ ثأٔٗ غ١ش . لبدس ػٍٝ اٌزٕف١ز

    b. ٔالؽظ ٚعٛد ؽبؽز١ٓ ػٕذ رٕف١ز اٌجشٔبِظ: Forms Runtime،

    WINDOW1 . c. ٚاٌزٕمً ث١ٓ اٌغغالد (رٕف١ز اإلعزؼالَ)ٚوزٌه (ئدخبي اإلعزؼالَ)فٟ ٚمغ اٌزٕف١ز ٠ّىٓ ئعشاء. d. ٌزشعّخ اٌجشٔبِظ ٔزجغ اٌخيٛاد اٌزب١ٌخ :

    File Administration Compile File

    . ](FMX.*)ٍِفبد اٌـ[ٚثبٌزبٌٟ ٠زُ اٌؾقٛي ػٍٝ إٌغخخ اٌزٕف١ز٠خ

  • 6iحماضرات يف أوراكل ديفلوبر

    17

    احملاضرة الثالثة

    MODULE1. Menu Module :

    رؾذ٠ذ اٌمبئّخ اٌشئ١غ١خ اٌزٟ رش٠ذ ئعزخذاِٙب ػٕذ ٚرؼٕٟ

    رأخز Oracleفّٓ اٌّؼٍَٛ أْ اٌمٛائُ فٟ )رٕف١ز اٌجشٔبِظ ،

    ، ٚاٌم١ّخ اإلفزشام١خ (ٍِفًب ِغزماًل وّب روشٔب رٌه عبثمًب

    أٞ اٌمبئّخ DEFAULT&SMARTBARٌٙزٖ اٌخبف١خ ٟ٘

    . Forms Runtimeاٌزٟ رظٙش فٟ ؽبؽخ

    2. Defer Required Enforcement : فأٙب رمَٛ Yes ٚػٕذ عؼٍٙب Noٚرأخز اٌم١ّخ اإلفزشام١خ

    . Itemsثزغبٚص اٌم١ٛد إٌّؾئخ ػٍٝ اٌؾمٛي

    3. Direction : ٚرأخز Formٚرؼٕٟ رؾذ٠ذ ئرغبٖ اٌمشاءح ٚاٌىزبثخ ٌٍّٕٛرط

    :٘زٖ اٌخبف١خ اٌم١ُ اٌضالس ا٢ر١خ

    a. Default : ٟٚرىْٛ ؽغت اٌٍغخ اٌّؾذدح فRegistry .

    Start Run RegEdit

    ٔزجغ اٌزغٍغً ا٢رٟ (Registry)ٚثؼذ اٌذخٛي ئٌٝ ِؾشس اٌـ

    :

    HKEY_LOCAL_MACHINE

    SOFTWARE

    ORACLE

  • 6iحماضرات يف أوراكل ديفلوبر

    18

    HOME0

    NLS_LANG

    [National Language

    Standard_LANG]

    اٌزبثؼخ (Value Data)فـم١ّخ اٌـ

    عزأخز أؽذ ( NLS_LANG)ٌٍـ

    :اٌم١ّز١ٓ اٌزب١ٌز١ٓ

    ARABIC_UNITED ARAB

    EMIRATES.AR8MSWIN1256

    ARABIC_SAUDI ARABIA.AR8MSWIN1

    256

    ، (Right To Left)ِّب ٠ؼٕٟ أْ اٌٍغخ اإلفزشام١خ ٟ٘ اٌؼشث١خ ٚثبٌزبٌٟ رقجؼ اٌم١ّخ اإلفزشام١خ ٟ٘

    ، Oracleأصٕبء ػ١ٍّخ رضج١ذ (ئٌخ... عؼٛدٞ –ئِبسارٟ )ِغ ِالؽظخ أٔٗ ٠زُ رؾذد ٔٛع اٌٍغخ اٌؼشث١خ إٌّزمبح

    :أٚ اٌم١ّخ اٌزب١ٌخ

    AMERICAN_AMERICA.WE8ISO8859PI

    ( . Left To Right)ِّب ٠ؼٕٟ أْ اٌٍغخ اإلفزشام١خ ٟ٘ اإلٔغ١ٍض٠خ ٚثبٌزبٌٟ رقجؼ اٌم١ّخ اإلفزشام١خ ٟ٘

    b. Left To Right : ٓا١ٌغبس ئٌٝ ا١ّ١ٌ ِٓ. c. Right To Left : ا١ّ١ٌٓ ئٌٝ ا١ٌغبس ِٓ.

    Triggers : ٚػٍٝ صالصخ ِغز٠ٛبد PL/SQL (SQL ;)رىزت ثـ Codeٟٚ٘ ػجبسح ػٓ ؽفشح ِقذس٠خ

    :ِٕٙب ( Moduleٍغر٘ٙ اىَْ٘رج .1

    WHEN-NEW-FORM-INSTANCE : ٠ٕفز ػٕذ ثذا٠خ رؾ١ًّ اٌـ(Form) ئٌٝ اٌزاوشح . : ِٕٙب ( Data Blockٍغر٘ٙ مريح اىثٞاّاخ .2 WHEN-NEW-BLOCK-INSTANCE : ٠ٕفز ػٕذ ثذا٠خ اٌذخٛي ػٍٝ اٌـ(Block) ، WHEN-NEW-RECORD-INSTANCE : ، ً٠ٕفز ػٕذ ثذا٠خ اٌذخٛي ػٍٝ وً عغ PRE-BLOCK : ٠ٕفز لجً اٌذخٛي ػٍٝ اٌـ(Block) ، POST-BLOCK : ٠ٕفز ثؼذ اٌذخٛي ػٍٝ اٌـ(Block. ) :ِٕٙب ( Itemٍغر٘ٙ اىؼْظش .3 WHEN-NEW-ITEM-INSTANCE : ٠ٕفز ػٕذ ثذا٠خ اٌذخٛي ػٍٝ اٌـ(Item) ،

    WHEN-BUTTON-PRESSED : ٠ٕفز ػٕذ إٌمش ػٍٝ اٌؼٕقشPUSH BUTTON، WHEN_LIST_CHANGED : ٠ٕفز ػٕذ اٌزؼذ٠ً ػٍٝ اٌؼٕقشList Item، WHEN_IMAGE_PRESSED: ٠ٕفز ػٕذ إٌمش ػٍٝ اٌؼٕقشImage .

    =======================================================================

    =========

  • 6iحماضرات يف أوراكل ديفلوبر

    19

    : ثبٌيجغ ١ٌظ اٌُّٙ أْ ٔىزت اٌشعبٌخ ٌٚىٓ اٌُّٙ ِؼشفخ

    ٌزؾذ٠ذ ٔٛػٙب ً٘ ٘ٛ )ِب ٘ٛ غشك اٌشعبٌخmessage ٚأ Alert) ، فٟ أٞ ؽذس )ٚأ٠ٓ عٕىزجٙبTrigger. ) أّ٘اع اىشعائو :1. message) ٚرأخز اٌق١غخ (ؽش٠و اٌؾبٌخ) ٟٚ٘ اٌشعبئً اٌزٟ رخزـ ثبٌظٙٛس ػٍٝ ؽش٠و اٌّؼٍِٛبد ،

    اٌؼبِخ اٌزب١ٌخ message(' ّض اىشعاىح ') ;

    اىؼْظش اٌزٞ ٔش٠ذ رٕف١ز أِش ئظٙبس اٌشعبٌخ ػٕذٖ فجؼذ رؾذ٠ذ (Trigger)ٌٚؼًّ رٌه ٔؾزبط أٚاًل ٌّؼشفخ اٌـ

    STU_NAME ٔمَٛ ثبٌٕمش ػٍٝ صس اٌفأسح األ٠ّٓ ٌٕخزبس األِش Smart Trigger اٌؾذس ِٕٗٚ WHEN-NEW-

    ITEM-INSTANCE ٌٕىزت ف١ٗ أِش اٌشعبٌخ message(' Please… Enter Name of Student?

    ٌٕزأوذ ِٓ أٔٗ رُ رشعّخ األِش ثؾىً فؾ١ؼ ٌٙزا اٌؾذس ، Compileصُ ٔنغو ػٍٝ اٌضس ; ('

    ِشر١ٓ أٔٗ لذ رُ رؾ٠ًٛ اٌشعبٌخ اٌضب١ٔخ رٍمبئ١ًب ئٌٝ ِب (message)ٚٔالؽظ ػٕذ رىشاس ػًّ اٌشعبٌخ اٌخبفخ ثبٌـ

    ( . Alert)٠غّٝ ثبٌـ

    2. Alert ) اٌشعبئً اٌزٟ رظٙش ثؾىً فٕذٚق ؽٛاس ٟ٘ٚ

    ( Note أٚ ِالؽظخ Caution أٚ رؾز٠ش Stopئ٠مبف )ٚاٌزٟ لذ رىْٛ سعبٌخ ِٓ إٌٛع

    ٚوّضبي ػٍٝ ... ئٌٝ غ١ش رٌه ِٓ خقبئـ فٕبد٠ك اٌؾٛاس (صس أٚ صس٠ٓ أٚ صالصخ ػٍٝ األوضش )ٚلذ رؾزٛٞ ػٍٝ

    : رٌه

  • 6iحماضرات يف أوراكل ديفلوبر

    20

    :ٌٚىٓ ػٍٝ ِشؽٍز١ٓ ٠ّىٓ ػًّ ِضً ٘زٖ اٌشعبئً Oracleٚفٟ

    a. ٍشزيح ئّشاء اىشعاىح : ١ٌٕؾئ ٌٕب ئعًّب Createصُ (Object Navigator)اٌّٛعٛد فٟ ؽبؽخ اٌـ (Alert)ؽ١ش ٔمَٛ ثزؾذ٠ذ اٌـ

    : ٌٍزؾىُ ثم١ُ اٌخقبئـ اٌٙبِخ اٌزبثؼخ ٌٙب ٚوبٌزبٌٟ F4ئفزشام١ًب ٌٍشعبٌخ إٌّؾئخ فٕؾذد٘ب صُ ٔنغو

    Property Value

    1 Name Del

    2 Title ًؽزف عغ

    3 Message رش٠ذ ؽزف اٌغغً ثبٌزأو١ذ ؟ ً٘

    4 Alert Style Stop

    5 Button 1 Label ِٛافك

    6 Button 2 Label ئٌغبء األِش

    7 Default Alert Button Button2

    b. ٍشزيح طية اىشعاىح ٗاىَؼاىدح: Data)اىـ اٌزٞ ٔش٠ذ رٕف١ز أِش ئظٙبس اٌشعبٌخ ػٕذٖ فجؼذ رؾذ٠ذ (Trigger)ٌٚؼًّ رٌه ٔؾزبط ٌّؼشفخ اٌـ

    Block )STU ألٔٗ ٚوّب ٘ٛ ِؼٍَٛ أْ ػ١ٍّخ ؽزف اٌغغً رىْٛ ػٍٝ ِغزٜٛ وزٍخ اٌج١بٔبد Data Block ،

    ٌٕىزت ف١ٗ أٚاِش KEY-DELREC ِٕٚٗ اٌؾذس Smart Triggerٔمَٛ ثبٌٕمش ػٍٝ صس اٌفأسح األ٠ّٓ ٌٕخزبس األِش

    : ِؼبٌغخ اٌشعبٌخ ٚوبٌزبٌٟ

    Declare

    N Number ;

    Begin

    N := Show_Alert('Del') ;

    If N = Alert_Button1 Then

    Delete_Record ;

    Commit ;

    Else

    Null ;

    End If ;

    End ;

  • 6iحماضرات يف أوراكل ديفلوبر

    21

    ٌٕزأوذ ِٓ أٔٗ رُ رشعّخ األِش ثؾىً فؾ١ؼ ٌٙزا اٌؾذس ، ١ٌٚزُ اٌزٕف١ز ِٓ Compileصُ ٔنغو ػٍٝ اٌضس

    صس ، ٌٚىٓ ئرا أسدٔب رٕف١ز أِش اٌؾزف ٘زا ِٓ خالي Form Runtimeخالي اٌمبئّخ اٌزٟ رظٙش فٟ ؽبؽخ

    : فٕزجغ اٌخيٛاد اٌزب١ٌخ ٝقً٘ تؼَيٞح اىسزف

    : ٚٔؼي١ٗ اٌخقبئـ (Canvas)ٕٔؾئ صس ١ٌمَٛ ثؼ١ٍّخ اٌؾزف ٚرٌه ثشعّٗ ػٍٝ اٌـ .1

    Property Value

    1 Name DL

    2 Label ؽزف

    3 Number of item displayed 1

    ػٓ ىش٠ك (Push-Button) ئٌٝ اٌؾذس اٌخبؿ ثبٌـKEY-DELRECٔمَٛ ثٕغخ ِب وزجٕبٖ فٟ اٌؾذس .2 : ِٓ خالي WHEN-BUTTON-PRESSED ِٕٚٗ اٌؾذس Smart Triggerئخز١بس األِش

    a. رؾذ٠ذ اٌؼٕقشDL ؽبؽخ ِٓ Object Navigator ، ّٓٚإٌمش ػٍٝ صس اٌفأسح األ٠

    b. رؾذ٠ذ اٌضس ؽزف فٟ ؽبؽخLayout Editor، ّٓٚإٌمش ػٍٝ صس اٌفأسح األ٠ c. ػٕذ رؾذ٠ذ اٌؼٕقشDL أٚ رؾذ٠ذ اٌضس ؽزف ِٓ اٌمبئّخ Program.

    Data Blocks ٍنّ٘اخ اىـ(Data Block) األعاعٞح :a. Triggers : األؽذاس اٌّزؼٍمخ ثبٌـ ٟ٘ٚ(Data Block )]اٌّغزٜٛ اٌضبٟٔ ِٓ اٌـ[(Triggers) ،

    b. Items : ٚرّضً اٌؼٕبفش اٌزبثؼخ ٌٙزا اٌـ(Data Block )] ؽمٛي اٌغذٚي ٚػٕبفش اٌزؾىُ اٌزبثؼخ ٌٗ: ِضاًل[ ، c. Relations : ٌشثو ٘زا اٌـ(Data Block) ِٞغ أ(Data Block) سثو عذٚي ِغ عذٚي آخش: ِضاًل [آخش[. خـظـائـض اىـ( Data Block: )

    : ِٛعٛد ٌذ٠ٕب فٟ اٌجشٔبِظ ٚرٌه Block Dataِٓ اٌنشٚسٞ رؾذ٠ذ خقبئـ أٞ

    ، ٌَزؾذ٠ذ فالؽ١خ وً ِغزخذ

  • 6iحماضرات يف أوراكل ديفلوبر

    22

    ١ٌٚىْٛ اٌؼًّ أوضش أ١ِٕخ .

    1 Name ٚاٌزٞ ع١زُ اٌزؼبًِ ِٓ خالٌٗ ِغ اٌـ(Data Block) ثشِغ١ًب

    2 Navigation Style

    :رؾذ٠ذ و١ف١خ ئٔزمبي اٌّإؽش ٌٚٙب صالصخ ل١ُ

    (A Same Record :

    ٚرؼٕٟ اٌزٕمً ث١ٓ ؽمٛي ٔفظ اٌغغً ِٓ أٚي ؽمً ئٌٝ آخش

    ؽمً

    ثؾ١ش ٠ظً اٌّإؽش ػٍٝ ٔفظ اٌغغً ١ٌٚزُ اٌزٕمً ث١ٓ ؽمٛي

    ، Enter٘زا اٌغغً ثنغو

    B )Change Record : ٌٟٚرؼٕٟ رغ١ش اٌغغً اٌؾب

    ثؾ١ش ٠زُ أزمبي اٌّإؽش ِٓ آخش ؽمً ٌٍغغً اٌؾبٌٟ ئٌٝ

    ،Enterأٚي ؽمً ٌٍغغً اٌزبٌٟ ثنغو

    C )Change Data Block : ٚرؼٕٟ رغ١ش اٌـ(Block) ٌٟاٌؾب

    ثؾ١ش ٠زُ أزمبي اٌّإؽش ِٓ أخش ؽمً ٌٍغغً اٌؾبٌٟ فٟ

    . اٌزبٌٟ (Block)اٌؾبٌٟ ئٌٝ أٚي ؽمً فٟ اٌـ (Block)اٌـ

    3 Previous Navigation Data

    Block

    اٌغبثك (Block)رؾذ٠ذ اٌـ

    4 Next Navigation Data Block رؾذ٠ذ اٌـ(Block) ٌٟاٌزب

    5 Number of Record display رؾذ٠ذ ػذد اٌغغالد اٌّؼشٚمخ ػٍٝ اٌـ(Canvas )

    6 Records Orientation ٟاإلفزشامٟ ػّٛدٞ)رؾذ٠ذ ئرغبٖ اٌغغالد ػّٛدٞ أَ أفم)

    7 Database Data Block

    (Yes , No)ٚرّزٍه اٌم١ُ (Data Block)رؾذ٠ذ ٔٛع اٌـ

    1. Database( : Yes)

    اٌغذاٚي ٚاٌّؾب٘ذ ٚاٌّشادفبد )أٞ اٌّشرجو ِغ لبػذح اٌج١بٔبد

    ، (ئٌخ...

    2. Non Database( : No) ػٍٝ لبػذح دأٞ اٌّؼزّذ ػٍٝ ػٕبفش اٌزؾىُ فمو ٚ ال ٠ؼزُ

    ( .DUMMY )داٌج١بٔب

    8 Query Allowed عّبؽ١خ اإلعزؼالَ ػٓ اٌج١بٔبد أصٕبء اٌزٕف١ز ٚرّزٍه اٌم١ُ

    (Yes , No)

    F3اٌزشر١ت اإلفزشامٟ ؽغت ؽبؽخ

  • 6iحماضرات يف أوراكل ديفلوبر

    23

    9 Insert Allowed , Yes)عّبؽ١خ اإلدخبي ٌٍج١بٔبد أصٕبء اٌزٕف١ز ٚرّزٍه اٌم١ُ

    No)

    10 Update Allowed Yes)عّبؽ١خ اٌزؼذ٠ً ػٍٝ اٌج١بٔبد أصٕبء اٌزٕف١ز ٚرّزٍه اٌم١ُ

    , No)

    11 Delete Allowed

    , Yes)عّبؽ١خ اٌؾزف ِٓ اٌج١بٔبد أصٕبء اٌزٕف١ز ٚرّزٍه اٌم١ُ

    No)

    ٍالزظح ٕاٍح :

    ٚوّضبي ػٍٝ Developerألٜٛ ِٓ فالؽ١خ (SQL)فالؽ١خ اٌـ

    :رٌه

    SQL> revoke delete on STU.Lvl from UST ;

    ٘زٖ عزغؾت فالؽ١خ اٌؾزف ػٍٝ اٌغذٚي (SQL)رؼ١ٍّخ اٌـ

    Lvl َاٌّغزخذ ِٓ ust ٟفٟ أٞ ثشٔبِظ ، أِب ف Developer

    Delete Allowed ٌٍخبف١خ Noفأٗ ئرا رُ ئػيبء اٌم١ّخ

    مّٓ اٌجشٔبِظ اٌؾبٌٟ فمو Lvlفغزّٕغ اٌؾزف ِٓ اٌغذٚي

    ئرا ِب Lvlٚػٕذ ئٔؾبء ثشٔبِظ آخش فأٗ ٠ّىٓ اٌؾزف ِٓ اٌغذٚي

    ِب ٌُ رىزت Delete Allowed ٌٍخبف١خ Yesرُ ئػيبء اٌم١ّخ

    أػالٖ ٚئال فال عذٜٚ ِٓ ل١ُ ٘زٖ اٌخبف١خ ِٓ (SQL)رؼ١ٍّخ اٌـ

    ( . No)أٚ ِٕؼٙب ثـ (Yes)عّبؽ١خ ٌٍؾزف ثـ

    12 WHERE Clause ؽشه عٍت اٌغغالد ِٓ اٌغذاٚي

    13 ORDER BY Clause

    أِضٍخ رؾذ٠ذ اٌؾمً اٌّشاد اٌزشر١ت ِٓ خالٌٗ ٚو١ف١خ اٌزشر١ت ،

    :رٌه

    Lvl_Name : ٠زُ اٌزشر١ت ؽغت اٌؾمً ئعُ اٌّغزٜٛ رقبػذ٠ًب

    (اإلفزشامٟ)

    Lvl_Name desc :

    ٠زُ اٌزشر١ت ؽغت اٌؾمً ئعُ اٌّغزٜٛ رٕبص١ًٌب

    Lvl_Name Asc : ٠زُ اٌزشر١ت ؽغت اٌؾمً ئعُ اٌّغزٜٛ رقبػذ٠ًب

  • 6iحماضرات يف أوراكل ديفلوبر

    24

    Visual Attribute Current RecordStu

    Cyan Arial12Red

    : ١ٌٚزُ رٌه ال ثذ ِٓ اٌّشٚس ثّشؽٍز١ٓ

    a. ٍشزيح ئّشاء اىخظائض اىَشئٞح : ١ٌٕؾئ ٌٕب Createصُ (Object Navigator)اٌّٛعٛد فٟ ؽبؽخ اٌـ (Visual Attribute)ؽ١ش ٔمَٛ ثزؾذ٠ذ اٌـ

    : ٌٍزؾىُ ثم١ُ اٌخقبئـ اٌّيٍٛثخ ٚوبٌزبٌٟ F4ئعًّب ئفزشام١ًب ٌٍخقبئـ اٌّشئ١خ إٌّؾئخ فٕؾذد٘ب صُ ٔنغو

    Property Value

    1 Name VA1

    2 Visual Attribute Type Common

    3 Foreground Color Red

    4 Background Color Cyan

    5 Font Name Arial

    6 Font Size 12

    b. ٍشزيح طية اىخظائض اىَشئٞح: : ٌٕزؾىُ ثبٌخقبئـ اٌّشئ١خ ٚوبٌزبٌٟ F4 صُ ٔنغو Data Block )STU)اىـٌٚؼًّ رٌه ٔؾذد

    Property Value

    Current Record Visual Attribute Group VA1

    =======================================================================

    =========

    Items : ٚرٕمغُ ئٌٝ ٔٛػ١ٓ

    a Input Items ًِض :Text_item ، List_Item ، Check_box ، Radio_Group .

    b Non_Input Items ًِض :Display_Item ، Push_Button ، Images .

    ذشرشك ٕزٓ اىؼْاطش تثؼغ اىخظائض ٗذخريف فٜ اىخظائض األخشٙ

  • 6iحماضرات يف أوراكل ديفلوبر

    25

    Text_Item

    1 Name ٚاٌزٞ ع١زُ اٌزؼبًِ ِٓ خالٌٗ ِغ اٌـ(Text_item) ثشِغ١ًب

    2 Item Type رؾذ٠ذ ٔٛع اٌؼٕقش اٌّؼشٚك

    3 Enabled ِٕؾو أَ ِجٙذ(Yes , No)

    4 Justification ِٛلغ ظٙٛس اٌىزبثخ(Left ,Right ,Center ,Start ,End)

    5 Data Type ٔٛع اٌج١بٔبد

    6 Maximum Length ىٛي اٌج١بٔبد

    7 Initial Value اٌم١ّخ اإلثزذائ١خ ٌٍؼٕقش

    8 Required ئعجبسٞ)ل١ّخ اٌؼٕقش ِيٍٛة ئدخبٌٙب)

    9 Format Mask 999.99: ِضاًل )رٕغ١ك اٌؼٕقش اٌشلّٟ ؽغبث١ًب )

    10 Database Item اٌؼٕقش ِشرجو ثمبػذح اٌج١بٔبد أَ غ١ش ِشرجو ً٘(Yes , No)

    11 Query Allowed َاٌغّبؽ١خ ثبإلعزؼال(Yes , No)

    12 Insert Allowed اٌغّبؽ١خ ثبإلمبفخ(Yes , No)

    13 Update Allowed ًاٌغّبؽ١خ ثبٌزؼذ٠(Yes , No)

    14 Visible ِٟشئٟ أَ ِخف ٛ٘ ً٘(Yes , No)

    15 Canvas رؾذ٠ذ اٌمّبؽ١خ اٌّزٛمغ ػ١ٍٙب اٌؼٕقش

    16 X Position ٟرؾذ٠ذ ِٛلغ اٌؼٕقش األفم

    17 Y Position ٞرؾذ٠ذ ِٛلغ اٌؼٕقش اٌؼّٛد

    18 Width رؾذ٠ذ اٌؼشك

    19 Height رؾذ٠ذ اإلسرفبع

    20 Font & Color ْاٌزؾىُ ثبٌخو ٚاألٌٛا

    21 Prompt اٌزؾىُ ثبٌـ(Label)اٌخبؿ ثبٌـ (Text_item)

    21 Prompt Font & Color اٌزؾىُ ثأٌٛاْ ٚخيٛه اٌـ(Label)اٌخبؿ ثبٌـ (Text_item)

    23 Hint ئظٙبس ٔـ أعفً اٌـ(Form) ػٕذ رفؼ١ً اٌؼٕقش

    24 Tooltip ٗئظٙبس ٔـ مّٓ ئىبس ػٕذ ٚفٛي ِإؽش اٌّبٚط ئ١ٌ

  • 6iحماضرات يف أوراكل ديفلوبر

    26

    List_Item

    1 Element in List ٌزؾذ٠ذ اٌؼٕبفش اٌّؾزٛاح ِغ ل١ّٙب

    2 Mapping of Other Values ػٕذ ٚعٛد ل١ّخ ِغب٠شح ٌم١ُ اٌؼٕبفش اٌّؾزٛاح

    ثم١خ اٌخقبئـ وّب ِش عبثمًب

    =======================================================================

    =========

    Check_Box

    1 Value When Checked ِٕؾو)ل١ّخ اٌؼٕقش ػٕذِب ٠ىْٛ ِؾذد)

    2 Value When Unchecked ل١ّخ اٌؼٕقش ػٕذِب ال ٠ىْٛ ِؾذدًا

    3 Check box Mapping of Other Value ٓػٕذ ٚعٛد ل١ّخ ِغب٠شح ٌم١ّز١ٓ اٌغبثمز١

    Initial Valueٚرىْٛ اٌم١ّخ اٌّغب٠شح ػبدح ِٛمٛػخ فٟ

    ثم١خ اٌخقبئـ وّب ِش عبثمًب

    =======================================================================

    =========

    Radio_Group ىيخٞاساخ اىَفشدج Container أٛ أّٖا تَثاتح اىساٗٝح Radio_Buttonٕٜٗ ذس٘ٛ اىؼذٝذ ٍِ

    1 Mapping of Other Values ػٕذ ٚعٛد ل١ّخ ِغب٠شح ٌم١ُ اٌؼٕبفش اٌّؾزٛاح

    2 Initial Value اٌم١ّخ اإلثزذائ١خ ٌٍؼٕقش

    ثم١خ اٌخقبئـ وّب ِش عبثمًب

    Radio_Button

    1 Label َاٌؼٕٛاْ اٌظب٘ش أِبَ اٌّغزخذ

  • 6iحماضرات يف أوراكل ديفلوبر

    27

    2 Radio Button Value اٌم١ّخ اٌخبفخ ثبٌؼٕقش

    ثم١خ اٌخقبئـ وّب ِش عبثمًب

    =======================================================================

    =========

    Display_Itemوً اٌخقبئـ لذ ِشد عبثمًب ٌٚىٓ ٔغزف١ذ ِٓ ٘زا اٌؼٕقش أٔٗ ال ٠ّىٓ اٌزؼذ٠ً ف١ٗ ٚال ٠ٕزمً ئ١ٌٗ اٌزشو١ض

    Focus

    =======================================================================

    =========

    Push_Button

    1 Label َاٌؼٕٛاْ اٌظب٘ش أِبَ اٌّغزخذ

    2 Iconic رؾذ٠ذ رٕؾ١و ٚعٛد األ٠مٛٔبد ػٍٝ اٌضس (Yes , No)

    3 Icon Filename رؾذ٠ذ اٌٍّف اٌزٞ عزىْٛ أ٠مٛٔزٗ ػٍٝ اٌضس

    ثم١خ اٌخقبئـ وّب ِش عبثمًب

    =======================================================================

    =========

    Image

    1 Image Format ٔٛع اٌقٛسح

    2 Image Depth ػّك اٌقٛسح

    3 Sizing Style ُِالئّخ–ليغ )رؾذ٠ذ ّٔو اٌزؾغ١ )

    ثم١خ اٌخقبئـ وّب ِش عبثمًب

  • 6iحماضرات يف أوراكل ديفلوبر

    28

    احملاضرة الرابعة

    أصٕبء رٕف١ز اٌجشٔبِظ (Item) أٚ اٌـ(Block) أٚ اٌـ(Window) ٔغزي١غ اٌزؾىُ ثخقبئـ اٌـSetػٓ ىش٠ك اٌزؼ١ٍّخ

    ث١ّٕب

    . ٔغزي١غ اٌزؾىُ ثبٌخقبئـ فٟ ِشؽٍخ رق١ُّ اٌجشٔبِظ Property Palette فٟ ٌٛؽخ اٌخقبئـ

    : ٚاٌق١غخ اٌؼبِخ وّب ٠ٍٟ

    Set_Window_Property(ل١ّخ اٌخبف١خ , ئعُ اٌخبف١خ , ئعٌ اىْافزج)

    ;

    ٌٍزؾىُ ثخقبئـ إٌبفزح

    ثشِغ١ًب

    Set_Block_Property( ٌٍزؾىُ ثخقبئـ اٌىزٍخ ثشِغ١ًب ; (ل١ّخ اٌخبف١خ , ئعُ اٌخبف١خ ,ئعٌ اىنريح

    Set_Item_Property(ل١ّخ اٌخبف١خ , ئعُ اٌخبف١خ , ئعٌ اىؼْظش) ; ٌٍزؾىُ ثخقبئـ اٌؼٕقش

    ثشِغ١ًب

    : ثبٌيجغ ٘زٖ اٌخقبئـ رؼذي فٟ اٌؾذس إٌّبعت اٌزٞ ٠ؾذدٖ اٌيٍت ٚاٌؾبعخ فّضاًل

    ؽذس : ػٕذ رؾ١ًّ اٌجشٔبِظ ؟WHEN_NEW_FORM_INSTANCE ، ؽذس : ؟ ... فٟ صسWHEN_BUTTON_PRESSED ... ئٌخ.

    1 Window :ٗمأٍثيح ػيٚ رىل

    (Forms Runtime)Set_Window_Property(Forms_Mdi_Window , Window_State , Maximize);

    ِٚٓ غ١ش ئؽبساد Forms_Mdi_Window ئعُ صبثذ دائًّب فٙٛ ٠ىزت (Forms Runtime)الؽظ أْ ئعُ ٔبفزح اٌـ

    . اإللزجبط

    (Forms Runtime)Set_Window_Property('Window1' , Window_State , Maximize);

    الؽظ أْ ئعُ ٔبفزح اٌجشٔبِظ ئعُ ِزغ١ش فٙٛ ٠ىزت ؽغت ئعُ إٌبفزح اٌجشِغٟ ِٚغ ٚعٛد ئؽبساد اإللزجبط

    .

    600800Set_Window_Property('Window1' , Height , 600 , Width , 800);

    . اٌّشعً (argument)الؽظ ٚعٛد ٘زٖ اٌؾبٌخ اٌخبفخ ٌٍيٛي ٚاٌؼشك فٟ ػذد اٌـ

  • 6iحماضرات يف أوراكل ديفلوبر

    29

    ''(Forms Runtime)Set_Window_Property(Forms_Mdi_Window , Title , 'ثشٔبِظ اٌيالة');

    . الؽظ أْ اٌخقبئـ ػٕذِب ٠ىْٛ ٌذ٠ٙب ل١ُ ِؾشف١خ فال ثذ ِٓ ٚعٛد ئؽبساد اإللزجبط

    ''Set_Window_Property('Window1' ,Title , 'ٜٛث١بٔبد اٌّغز');

    (Forms Runtime)Set_Window_Property('Window1' , Window_State, Minimize);

    Set_Window_Property(Forms_Mdi_Window , Window_State, Minimize);

    2 Block :ٗمأٍثيح ػيٚ رىل

    LvlSet_Block_Property('Lvl' , Query_Allowed , Property_True);

    . Yes ػٕذِب رىْٛ ل١ّخ اٌخبف١خ property_Trueالؽظ ئػيبء اٌم١ّخ

    LvlSet_Block_Property('Lvl' , Query_Allowed , Property_False);

    . No ػٕذِب رىْٛ ل١ّخ اٌخبف١خ property_Falseالؽظ ئػيبء اٌم١ّخ

    LvlSet_Block_Property('Lvl' , Order_By , 'Lvl_No');

    LvlSet_Block_Property('Lvl' , Order_By, 'Lvl_Name');

    : ٍثو Blockٗمزىل اىساه تاىْغثح ىثقٞح خظائض اىنريح

    Insert_Allowed : ، اٌخبفخ ثبإلمبفخ

    Update_Allowed : ، ًاٌخبفخ ثبٌزؼذ٠

    Delete_Allowed : ، اٌخبفخ ثبٌؾزف

    Defalut_Where : اٌخبفخ ثبٌؾشهWhere Set_Block_Property('Stu' , Defalut_Where , 'Stu_Sec >= 1');

    Current_Record_Attribute : ثبٌخقبئـ اٌّشئ١خ ٌٍىزٍخ اٌخبفخVisual Attribute Set_Block_Property('Stu' , Current_Record_Attribute , 'VA1');

    . ئٌخ .. .

    3 Item :ٗمأٍثيح ػيٚ رىل

  • 6iحماضرات يف أوراكل ديفلوبر

    30

    LvlSet_Item_Property('Lvl_Name' , Visible , Property_True);

    LvlSet_Item_Property('Lvl_Name' , Visible , Property_False);

    LvlSet_Item_Property('Lvl_Name' , Enabled , Property_True);

    LvlSet_Item_Property('Lvl_Name' , Enabled , Property_False);

    : ٍثو Blockٗمزىل اىساه تاىْغثح ىثقٞح خظائض اىنريح

    Position : اٌؼٕقش ػٍٝ ٔبفزح اٌجشٔبِظ ثـاٌخبفخ ثزؾذ٠ذ ِٛلغ(X , Y) Set_Item_Property('MyButton' , Position , 100 , 100);

    Visual_Attribute : ثبٌخقبئـ اٌّشئ١خ ٌٍؼٕقش اٌخبفخ Set_Item_Property('Stu_No' , Visual_Attribute , 'VA1');

    . ئٌخ .. .

    =======================================================================

    =========

    1 Global Variables ( .Global:)رجذأ ثـ

    Function أٚ أٞ Procedure أٚ أٞ Triggerٌٚزؼش٠ف ِزؾٛالد ػبِخ ثؾ١ش ٔغزي١غ اٌزؼبًِ ِؼٙب ثأٞ

    ٚؽزٝ ٠قجؼ ِؼشٚفًب ٌىبًِ WHEN_NEW_FORM_INSTANCEٔؼشف اٌّزؾٛي اٌؼبَ فٟ اٌؾذس

    ( . Forms)اٌـ

    : ٚاٌق١غخ اٌؼبِخ ٌٍزؼش٠ف وّب ٠ٍٟ

    :global.Variable := Value ; ػٕذِب رىْٛ اٌم١ّخ اإلثزذائ١خ سلًّب

    :global.Variable := 'Value' ; ػٕذِب رىْٛ اٌم١ّخ اإلثزذائ١خ ٔقًب ِؾشف١ًب

    تاىطثغ ٝفؼو دائًَا أُ ّؼطٜ قًَٞا ئترذائٞح ىيَرس٘الخ ذالفًٞا ىسذٗز أٝح ٍشامو

    : ٚوأِضٍخ ػٍٝ رٌه

    :Global.MyNo := 1 ;

    :Global.MyName := 'Amerah';

    2 Local Variable اٌزٞ ػشفذ ثذاخٍٗ فمو (Function) أٚ اٌـ(Procedure) أٚ اٌـ(Trigger)رىْٛ ٘زٖ اٌّزؾٛالد ِؼشفخ مّٓ اٌـ

  • 6iحماضرات يف أوراكل ديفلوبر

    31

    . اٌّؼشف مّٕٙب (End) ٚاٌـ(Begin)٠ؼٕٟ مّٓ اٌـ

    : ٚاٌق١غخ اٌؼبِخ ٌٍزؼش٠ف وّب ٠ٍٟ

    Variable DataType := Value ; ػٕذِب رىْٛ اٌم١ّخ اإلثزذائ١خ سلًّب

    Variable DataType := 'Value' ; ػٕذِب رىْٛ اٌم١ّخ اإلثزذائ١خ ٔقًب ِؾشف١ًب

    تاىطثغ ٝفؼو دائًَا أُ ّؼطٜ قًَٞا ئترذائٞح ىيَرس٘الخ ذالفًٞا ىسذٗز أٝح ٍشامو

    : ٚوأِضٍخ ػٍٝ رٌه

    MyNo Number := 2 ;

    MyName Varchar2(20) := 'Gawaher';

    =======================================================================

    =========

    ''

    '

    '

    ''

    ''''

    : ر١ٍّؼ

    (لُ ثشثو ل١ُ اٌخقبئـ اٌجشِغ١خ ثّزؾٛالد ػبِخ)

    : ٗىؼَو رىل ال تذ ٍِ

    َػٍٝ ِغزٜٛ إٌّٛرط )رؼش٠ف ِزؾٛي ػبForm) ٓ١ٌٚىX ئ١ٌٗ وم١ّخ ' ئخفبء' ؽ١ش ٔمَٛ ثاعٕبد اٌم١ّخ

    ئثزذائ١خ ٚٔزؾىُ ثىزبثخ ػٕٛاْ اٌضس ِٓ خالي ل١ّخ اٌّزؾٛي اٌؼبَ ،

    خالي عٍّخ (اٌنغو ػٍٝ اٌضس)ٔفؾـ ل١ّخ اٌّزؾٛي اٌؼبَ فٟ ؽذس ِٓIF اٌؾشى١خ فارا وبٔذ ل١ّخ ئٌٝ ' ئظٙبس' ٚٔغٕذ اٌم١ّخ اٌّغب٠شح Visible فإٔب عٕخفٟ ٘زا اٌؼٕقش ثخبف١خ ' ئخفبء'اٌّزؾٛي

    . صُ ٔزؾىُ ثىزبثخ ػٕٛاْ اٌضس ِٓ خالي ل١ّخ اٌّزؾٛي اٌؼبَ اٌغذ٠ذح اٌّزؾٛي اٌؼبَ ٚاٌؼىظ فؾ١ؼ

    1. WHEN_NEW_FORM_INSTANCE

  • 6iحماضرات يف أوراكل ديفلوبر

    32

    :Global.X := 'ئخفبء' ;

    Set_Item_Property('MyButton' , Label , :Global.X) ;

    2. WHEN_BUTTON_PRESSED If :Global.X = 'ئخفبء' then

    Set_Item_Property('Lvl_Name' , Visible , Property_False);

    :Global.X := 'ئظٙبس' ;

    Else

    Set_Item_Property('Lvl_Name' , Visible , Property_True);

    :Global.X := 'ئخفبء' ;

    End if ;

    Set_Item_Property('MyButton' , Label , :Global.X);

    =======================================================================

    =========

    ٍالزظاخ ٕاٍح :

    رغزخذَ ٌٍزخق١ـ ، =:

    رغزخذَ ٌٍّمبسٔخ ، =

    . رغزخذَ لجً اٌؼٕقش ٌزؼٕٟ أٔٙب ل١ّزٗ :

    =======================================================================

    =========

    Stu_NoSTUTrigger

    : ر١ٍّؼ

    ؟ (٠زُ ئفزشاك أْ ل١ّخ اٌؾمً ٌٍغغً األٚي ١ِٙئخ ثم١ّخ ِذخٍخ ِٓ اٌّغزخذَ)

    : زو اىَطي٘ب

    : ٌٚزىٓ اٌؾفشح اٌّقذس٠خ وبٌزبٌٟ Numberِٓ اٌّؼٍَٛ أٔٗ ٠ّىٓ ػًّ رشل١ُ رٍمبئٟ ػٍٝ ؽمً ِٓ ٔٛع

  • 6iحماضرات يف أوراكل ديفلوبر

    33

    (Trigger : KEY_CREREC)

    زذز ئّشاء اىغدو

    Declare

    Counter number ;

    تؼشف يتحىل انؼذاد يٍ َىع سقًً

    Begin

    Select Max(Stu_No) into Counter From Stu ;

    إختٍاس انقًٍت انؼظًى يٍ حقم انطانب وإسُادها إىل يتحىل انؼذاد

    :Stu_No := Counter + 1 ;

    تشقٍى حقم انطانب بقًٍت املتحىل يضافًا إنٍه واحذ

    End ;

  • 6iحماضرات يف أوراكل ديفلوبر

    34

    احملاضرة اخلامسة والسادسة

    Relations ٚا٢خش ٘ٛ اٌغذٚي Masterٟ٘ رؼج١ش ٠يٍك ػٍٝ ػاللخ ث١ٓ عذ١ٌٚٓ أؽذّ٘ب ٘ٛ اٌغذٚي اٌشئ١غٟ

    ، Detailsاٌزفق١ٍٟ

    ، Details ٚاٌغذٚي اٌزفق١ٍٟ Masterرؾذ٠ذ اٌغذٚي اٌشئ١غٟ .1

    ، (ٚرغّٝ اٌؾمٛي اٌّخف١خ)رؾذ٠ذ ؽمٛي اٌشثو ث١ٓ اٌغذ١ٌٚٓ .2 .Join Conditionرؾذ٠ذ ؽشٚه اٌشثو ث١ٓ اٌغذ١ٌٚٓ .3

    ----------------------------------------------------------------------------------------------------------------------

    --------------

    Master

    Details

    ٔالؽظ ِٓ خالٌّٙب أْ ع١ّغ ؽمٛي اٌغذٚي اٌشئ١غٟ ِزٛفشح فٟ عذٚيSTU ، . MARKث١ّٕب ٔغذ أْ ع١ّغ ؽمٛي اٌغذٚي اٌزفق١ٍٟ ِزٛفشح فٟ عذٚي

    سقٌ اىَغر٘ٙ– سقٌ اىقغٌ –سقٌ اىطاىة )٠زُ اٌشثو ِٓ خالي اٌؾمٛي ) ، ؽشٚه سثو اٌغذ١ٌٚٓ ٠ؾذد ِٓ خالي ػذد اٌغذاٚي ٌزٌه عٕؾزبط ئٌٝ ؽشه سثو ٚاؽذ ػٍٝ ألً رمذ٠ش(

    n-1 ) ٟ٘ ٌٚىٕٕب ٕ٘ب ٔغذ أْ ؽشٚه اٌشثو : Mark.Mark_Sec = Stu.Stu_Sec And

    Mark.Mark_Lvl = Stu.Stu_Lvl And

    Mark.Mark_Stu = Stu.Stu_No

    :Data Block Wizardطشٝقح ٍؼاىح .1 Data رىْٛ ف١ٗ اٌـFormؽ١ش ٔمَٛ ثأؾبء

    Block ِؼزّذح ػٍٝ اٌغذٚي STU ٓ١ٌٚى

    ٠ؾٛٞ عغاَل ٚؽ١ذًا ، ٚ Tabularثؾىً

    ِؼزّذح ػٍٝ Data Blockوزٌه ئٔؾبء

    Tabular ١ٌٚىٓ ثؾىً MARKاٌغذٚي

    ٠Dataؾٛٞ خّغخ عغالد ، ٚأصٕبء ئٔؾبء

    Block اٌخبؿ ثبٌـ MARK ػٓ ىش٠ك ِؼبٌظ

  • 6iحماضرات يف أوراكل ديفلوبر

    35

    : ٔالؽظ ظٙٛس اٌؾبؽخ اٌزب١ٌخ Data Block Wizardوزٍخ اٌج١بٔبد

    فٕمَٛ أٚاًل ثاٌغبء اٌشثو اٌزٍمبئٟ ث١ٓ اٌغذ١ٌٚٓ

    Auto-join Data Blocks

    أِب اٌغذٚي اٌزفق١ٍٟ STU ٌٕؾذد ِٓ خالٌٗ اٌغذٚي اٌشئ١غٟ …Create Relationshipصُ ٔز٘ت ٌٍضس

    MARK فٙٛ ِؾذد رٍمبئ١ًب ثغجت إٔٔب لّٕب ثزؾذ٠ذ اٌؼاللخ ِٓ خالٌٗ ٚٔؾذد ؽشٚه اٌشثو ِٓ خالي ئٔزمبء ػٕقش

    Master Item ِٚب اٌؼٕقش اٌزٞ ٠مبثٍٗ ِٓ اٌغذٚي اٌشئ١غٟ Detail Itemِٓ اٌغذٚي اٌزفق١ٍٟ

    . ٌٕشٜ اٌؾشٚه رىزت ِجبؽشح أصٕبء ػ١ٍّخ اٌزؾذ٠ذ

    ( Data Block Wizardّؼغط اىراىٜ ّٗنَو تقٞح ٍرطيثاخ اىَؼاىح اىخاص تـ )

    ششذ ٍثغط :

    (غبٌجًب ٠ٕؾئ ثاعُ ئفزشامٟ ٠أخز ف١ٗ ئعُ اٌغذ١ٌٚٓ) Relationٌٛ لّٕب ثزؾذ٠ذ ػٕقش اٌؼاللخ اٌغذ٠ذ

    : ٌٕشٜ أُ٘ اٌخقبئـ عٕغذ أٔٙب F4صُ مغيٕب

    خبف١خ ؽشه اٌشثوJoin Condition : ِٕٚٙب رغزي١غ اٌزؼذ٠ً ػٍٝ ؽشه اٌشثو اٌزٞ لذ أٔؾئ ف١ّبعجك ،

    خبف١خ عٍٛن ؽزف اٌغغالدDelete Record Behavior ٚاٌزٟ رّزٍه اٌضالصخ اٌم١ُ ا٢ر١خ:

    1. Non_Isolated : (ٟاٌال ػضي ٚ٘ٛ اإلفزشام) ،Details ئال ثؼذ ؽزف وً ِب ٠زؼٍك ثٗ فٟ اٌغذٚي اٌـ ٠ٚMasterؼٕٟ أٔٗ ٌٓ ٔغزي١غ اٌؾزف ِٓ اٌغذٚي اٌـ

    2. Isolated: ثؾ١ش ٠ّىٓ اٌؾزف ِٓ أؽذ اٌغذ١ٌٚٓ دْٚ رأصش Details ٚاٌغذٚي اٌـ ٠ٚMasterؼٕٟ ٚعٛد ػضي ث١ٓ اٌغذٚي اٌـ

    ا٢خش ،

    3. Cascading :

    . Details فأٗ ع١ؾزف وً ِب ٠زؼٍك ثٙزا اٌغغً ِٓ اٌغذٚي اٌـ Masterفارا ؽزفٕب عغً ِٓ اٌغذٚي اٌـ

  • 6iحماضرات يف أوراكل ديفلوبر

    36

    : اىطشٝقح اىٞذٗٝح .2 Data رىْٛ ف١ٗ اٌـFormؽ١ش ٔمَٛ ثأؾبء

    Block ِؼزّذح ػٍٝ اٌغذٚي STU ٓ١ٌٚى

    ٠ؾٛٞ عغاَل ٚؽ١ذًا ، ٚ Tabularثؾىً

    ِؼزّذح ػٍٝ Data Blockوزٌه ئٔؾبء

    Tabular ١ٌٚىٓ ثؾىً MARKاٌغذٚي

    ٠ؾٛٞ خّغخ عغالد ،

    اٌّٛعٛد (Relations)ٔمَٛ ثزؾذ٠ذ اٌـصُ

    ٗاىراتغ ( Object Navigator)فٟ ؽبؽخ اٌـ

    Createصُ STUىيدذٗه اىشئٞغٜ

    : ٌزظٙش اٌؾبؽخ اٌزب١ٌخ

    ؽ١ش ٔؾب٘ذ ف١ٙب أْ اٌغذٚي اٌشئ١غٟ

    STU ِؾذد رٍمبئ١ًب ثغجت إٔٔب لّٕب ثزؾذ٠ذ

    اٌؼاللخ ِٓ خالٌٗ ، ث١ّٕب رزُ اٌّيبٌجخ

    ثاخز١بس اٌغذٚي اٌزفق١ٍٟ ِٓ خالي اٌضس

    Select… ِٓ ٌٕخزبسLOVs اٌزٟ رظٙش

    : ؽ١ش ٔغذ اٌضالس اٌخ١بساد Master Deletes ؛ ٌٕٚالؽظ عٍٛن ؽزف اٌغغالد ِٓ خالي MARKاٌغذٚي

    a) Non_Isolated ، b) Isolated ، c) Cascading .

    ٚاٌزٟ رُ ؽشؽٙب فٟ اٌفمشح اٌغبثمخ ؛

    Join Conditionٚٔىزت ؽشٚه اٌشثو فٟ

    . ٚاٌزٟ لذ لّٕب ثزوش٘ب لجً رٌه

    ىرسذٝثاخ ػيٚ اىثشّاٍح تؼذ ئّشاء ا

    :Relationاىؼالقح

    Form ػٍٝ ِغزٜٛ اٌـ ٠ُTriggerنبف .1.

    ػٍٝ ِغزٜٛ (Triggers 2 )٠ُنبف .2 ٌٍغذٚي Data Blockوزٍخ اٌج١بٔبد

    .Masterاٌشئ١غٟ ئٌٝ وزٍخ Relationُرنبف ػاللخ .3

    اٌج١بٔبد

    Data Block ٌٍٟغذٚي اٌشئ١غ Master.

    . Program Units ئٌٝ ٚؽذاد اٌجشٔبِظ ( Procedure 3 )٠ُنبف .4

  • 6iحماضرات يف أوراكل ديفلوبر

    37

    ٍالزظح ٕاٍح :

    ٚرٌه ِٓ خالي (ٗرىل ىؼذً ٍ٘اخٖح ٍشنيح ذنشاس اىثٞاّاخ)ال ٕٔغٝ ئخفبء ؽمٛي اٌشثو ث١ٓ اٌغذ١ٌٚٓ

    ٌىً ػٕقش سثو ٌٚزخفٟ اٌؼٕبفش أصٕبء اٌزق١ُّ ٚاٌزٕف١ز ، أِب ئرا لّٕب Canvas ٌٍخبف١خ NULLئػيبء اٌم١ّخ

    . فأٙب عزخفٟ اٌؼٕبفش أصٕبء اٌزٕف١ز فمو Visible ٌٍخبف١خ Noثاػيبء اٌم١ّخ

    ، Sec_NOسقٌ اىقغٌ .1 ، Lvl_Noسقٌ اىَغر٘ٙ .2 ، Stu_Noسقٌ اىطاىة .3

  • 6iحماضرات يف أوراكل ديفلوبر

    38

    رىْٛ اٌؾمٛي اٌؾغبث١خ ػبدح ػٓ ىش٠ك

    a) ػٕقشItem غ١ش ِشرجو ثمبػذح اٌج١بٔبد Non_DB ٍٝػ DataBlock ِشرجو ثمبػذح اٌج١بٔبد DB، b) ػٕقشItem غ١ش ِشرجو ثمبػذح اٌج١بٔبد Non_DB ٍٝػ DataBlock غ١ش ِشرجو ثمبػذح اٌج١بٔبد Non_DB

    . (Dummy)ٚاٌزٞ ػبدح ِب ٠غّٝ ثبٌـ

    3 Formula .ٟٚ٘ ف١غخ س٠بم١خ رٕزظ ػٕٙب ل١ّخ ػذد٠خ

    Mark

    ثبٌخقبئـ ا٢ر١خ Mark ػٍٝ عذٚي اٌذسعبد TDeg ١ٌٚىٓ Non_DBٕٔؾئ ػٕقش غ١ش ِشرجو ثمبػذح اٌج١بٔبد

    :

    Property Value

    1 Name TDeg

    2 Item Type Text Item

    3 Enabled No

    4 Data Type Number

    5 Calculation Mode Formula

    6 Formula NVL(:Mark_Yj , 0) + NVL(:Mark_Ht , 0) + NVL(:Mark_Ft , 0)

    7 Database Item No

    8 Canvas Canvas2

    9 Prompt اٌذسعخ إٌٙبئ١خ

    4 Summary

    a. ٔمَٛ ثأؾبءBlock غ١ش ِشرجو ثمبػذح اٌج١بٔبد Non_DB ٓ١ٌٚى (Dummy) ثبٌخقبئـ ا٢ر١خ :

    Property Value

    1 Name Dummy

    2 Database Data Block No

    b. صُ ٕٔؾئ ػٕقش غ١ش ِشرجو ثمبػذح اٌج١بٔبدNon_DB ٓ١ٌٚى Total ثبٌخقبئـ ا٢ر١خ :

    Property Value

    1 Name Total

    2 Item Type Text Item

    3 Enabled No

    4 Data Type Number

    5 Calculation Mode Summary

  • 6iحماضرات يف أوراكل ديفلوبر

    39

    6 Summarized Block Stu

    7 Summarized Item TDeg

    8 Summary Function Sum

    9 Database Item No

    10 Canvas Canvas2

    11 Prompt ِزٛعو اٌذسعبد

    c. ١ٌٚزُ اٌزٕف١ز ثزغٕت أٞ سعبٌخ خيأ ، Markثبٌذسعبد (Block) اٌزبثؼخ ٌٍـQuery All Recordٔمَٛ ثزغ١ش ل١ّخ اٌخبف١خ

    . Single Record ٔغ١ش ل١ّخ اٌخبف١خ Dummy اٌزؾىّٟ اٌزٞ ٠ؾٛٞ ػٕقش اٌزغ١ّغ (Block)ِٚٓ اٌـ

    Data Block Property Value

    1 Mark Query All Record Yes

    2 Dummy Single Record Yes

  • 6iحماضرات يف أوراكل ديفلوبر

    40

    a) ٔمَٛ ثأؾبء ػٕقش فٟ وزٍخ اٌج١بٔبدMARK ٌٟخقبئقٗ وبٌزب :

    Property Value

    1 Name VALUATION

    2 Database Item No

    3 Canvas Canvas2

    4 Prompt اٌزمذ٠ش

    5 Prompt Justification Center 6 Prompt Attachment Edge Top

    7 Prompt Alignment Center

    b) ِٓ ٞٚثّب أْ اٌزمذ٠ش ٠ؼزّذ ػٍٝ ِؼذي اٌذسعبد ٌزٌه ٠غت أْ ٠زأصش ٘زا اٌزمذ٠ش ئرا لّٕب ثزؼذ٠ً أأػَاه ) ٌٚىً ِٓ Post_Change فٟ ؽذس Codeاٌذسعبد ٌزٌه ٔمَٛ ثىزبثخ ٘زٖ اٌؾفشح اٌّقذس٠خ

    : ٚوبٌزبٌٟ ( اىْٖائٜ– اىْظفٜ –اىغْح

    Declare

    N Number;

    Begin

    N := NVL(:Mark_Yj , 0) + NVL(:Mark_Ht , 0) + NVL(:Mark_Ft , 0);

    If N Between 90 And 100 Then

    :Mark_Valuation := 'ممتاص';

    Elsif N Between 80 And 89 Then

    :Mark_Valuation := 'جٍذجذًا';

    Elsif N Between 70 And 79 Then

    :Mark_Valuation := 'جٍذ';

    Elsif N Between 50 And 69 Then

    :Mark_Valuation := 'يقبىل';

    Else

  • 6iحماضرات يف أوراكل ديفلوبر

    41

    :Mark_Valuation := 'ضؼٍف';

    End If ;

    End ;

  • 6iحماضرات يف أوراكل ديفلوبر

    42

    ٚئّٔب ثؾىً سثو ىج١ؼٟ ِٓ Master & Detailsٔؾزبط فٟ وض١ش ِٓ األؽ١بْ اٌشثو ث١ٓ عذ١ٌٚٓ ١ٌظ ثؾىً

    ٚاٌزٞ ٠ؼزجش (Stu_Secسلُ اٌمغُ ) ٠ؾزٛٞ ػٍٝ STUأعً ئعزخالؿ ِؼٍِٛبد ِؼ١ٕخ فّضاًل عذٚي اٌيالة

    ٚػٓ ىش٠ك ػ١ٍّخ اٌشثو ٘زٖ ٔش٠ذ SECTION ربثغ ٌغذٚي األلغبَ Foreign Keyؽماًل ِّضاًل ٌّفزبػ غش٠ت

    ِٓ خالي ؽمً سلُ اٌمغُ STUعٍت أعّبء األلغبَ أٞ إٔٔب ٔش٠ذ ئظٙبس أعّبء األلغبَ فٟ وزٍخ اٌج١بٔبد

    Stu_Sec ٚثؾشه أٔٗ ئرا رُ ئدخبي ل١ّخ خبىئخ فاْ اٌجشٔبِظ ٠زٛلف ؽزٝ ٠ذخً اٌّغزخذَ اٌم١ّخ اٌقؾ١ؾخ .

    : ٗىؼَو رىل عْسراج ئىٚ

    a. ئٔؾبء ػٕقش فٟ وزٍخ اٌج١بٔبدSTU ٌٟخقبئقٗ وبٌزب :

    Property Value

    1 Name SEC_NAME

    2 Database Item No

    3 Canvas Canvas2

    4 Prompt ُئعُ اٌمغ

    5 Prompt Justification Center

    6 Prompt Attachment Edge Top

    7 Prompt Alignment Center

    b. خالي اٌؾذس ثؼذ اٌزؼذ٠ً (ئعُ اٌمغُ)سثو ٘زا اٌؼٕقش ِٓPost_Change اٌزبثغ ٌشلُ اٌمغُ اٌخبؿ :ٚوبٌزبٌٟ STU_SEC أٞ اٌؾمً STUثىزٍخ اٌج١بٔبد

    Declare

    Begin

    Select Sec_Name Into :Sec_Name From Section

    Where Sec_No = :Stu_Sec;

    Exception

    When No_Data_Found Then

  • 6iحماضرات يف أوراكل ديفلوبر

    43

    Message('انشقى غري صحٍح');

    Raise Form_Trigger_Failure;

    End ;

    . ئٌخ ... ٚثٕفظ اٌيش٠مخ ٠زُ ئ٠غبد ئعُ اٌّغزٜٛ اٌّؼزّذ ػٍٝ سلُ اٌّغزٜٛ

    =======================================================================

    =========

    ذيَٞر :

    : خقبئقٙب وبٌزبٌٟ ٌٚزىٓ Message ثذاًل ِٓ سعبٌخ Alertسعبٌخ ِٓ اٌّّىٓ ئٔؾبء

    Property Value

    1 Name Msgbox

    2 Title ٗرٕج١

    3 Message اٌشلُ غ١ش فؾ١ؼ

    4 Alert Style Caution

    5 Button 1 Label ِٛافك 6 Default Alert Button Button1

    : ٚوبٌزبٌٟ Exceptionصُ ثؼذ رٌه ٔمَٛ ثاعزذػبء اٌشعبٌخ أصٕبء ِؼبٌغخ األخيبء

    N := Show_Alert('Msgbox') ;

    : ٚوبٌزبٌٟ Declareف اٌّزؾٛي فٟ عضء ٞٚرٌه ثؼذ رؼش

    N Number ;

    . ِٓ أعً أْ األٚساوً رزيٍت ئعٕبد اٌذٚاي ٌّزؾٛي أصٕبء ئعزذػبئٙب

  • 6iحماضرات يف أوراكل ديفلوبر

    44

    ٍالزظح ٕاٍح :

    Non_DB ثؾ١ش رىْٛ آر١خ ِٓ وزٍخ ث١بٔبد Non_DB ػٓ ىش٠ك ػٕبفش ٠DBفنً دًِٚب اٌزؾىُ ثىزٍخ ث١بٔبد

    أٞ وزٍخ رؾىُ ، ٚفٟ ِضبي سثو اٌغذاٚي اٌغبثك فأٗ ٠فنً أْ ٕٔؾئ Dummyٚاٌزٟ ِب ٔشِض ٌٙب ػبدح ثبٌشِض

    : ٚاٌزٞ ِٓ خقبئقٗ Dummy ٌٚزىٓ Non_DB فٟ وزٍخ ث١بٔبد SEC_Nameػٕقش ئعُ اٌمغُ

    Property Value

    Database Data Block No

    ساعغ و١ف رٕؾئ اٌمبئّخ ) List_Item_Sec ١ٌٚىٓ ئعّٗ List Itemٚئرا أٔؾئٕب ئعُ اٌمغُ ٘زا ِٓ ٔٛع

    STUٚأسدٔب أْ رىْٛ اٌج١بٔبد اٌّؼشٚمخ ف١ٗ رإصش ػٍٝ ِب ٠ؼشك فٟ وزٍخ اٌج١بٔبد (ِٓ اٌّؾبمشح اٌغبثؼخ

    : ٚوبٌزبٌٟ (رؼذ٠ً اٌمبئّخ)ثؾىً فؼبي فإٔب ٔمَٛ ثىزبثخ اٌؾفشح اٌّقذس٠خ فٟ ؽذس

    (Trigger : WHEN_LIST_CHANGED)

    Set_Block_Property('Stu' , 'Default_Where' , 'Stu_Sec =

    :Dummy.List_Item_Sec') ;

    ٌزٕف١ز STU صُ ٔنيش ئٌٝ اٌز٘بة ئٌٝ وزٍخ اٌج١بٔبد List_Item_SECِٚٓ أعً أال ٔخزبس ػٕقش ِٓ اٌمبئّخ

    فٕن١ف List_Item_SEC ِشرجيًب ثاخز١بس اٌم١ّخ ِٓ STUاإلعزؼالَ أٞ ٔغؼً ظٙٛس اٌج١بٔبد فٟ وزٍخ اٌج١بٔبد

    : ثؼذ اٌزؼ١ٍّخ اٌغبثمخ ِب ٠ٍٟ (رؼذ٠ً اٌمبئّخ)فٟ ؽذس

    Go_Block('Stu') ;

    Execute_Query ;

    =======================================================================

    =========

    Program Units أٚ اٌذٚاي Procedureرغزخذَ اٌٛؽذاد اٌجشِغ١خ إلٔؾبء اإلعشاءاد

    Function أٚ اٌؾضَ اٌجشِغ١خ Package Spec ٚرٌه ِٓ خالي ،

    Object)اٌّٛعٛد فٟ ؽبؽخ اٌـ (Program Units)ثزؾذ٠ذ اٌـ

    Navigator) ُصCreate ٌزظٙش اٌؾبؽخ اٌزب١ٌخ :

    (Name)فٕىزت ئعُ اٌٛؽذح اٌجشِغ١خ اٌّشاد ئٔؾبئٙب داخً اٌـ

    : صُ ٔخزبس ٔٛع اٌٛؽذح اٌجشِغ١خ ً٘ ٟ٘

    ئخشاءProcedure ، داىحFunction ، زضٍح تشٍدٞحPackage Spec، ( ٔؾذد ف١ٙب أعّبء

    (اٌٛؽذاد اٌجشِغ١خ خغٌ اىسضٍحPackage Body ،

    ( .Package Spec ٌإلعشاءاد ٚاٌذٚاي اٌزٟ رُ رغ١ّؼٙب فٟ Codeٚاٌزٞ ٠زُ ف١ٗ وزبثخ اٌؾفشح اٌّقذس٠خ )

    ----------------------------------------------------------------------------------------------------------------------

    --------------

  • 6iحماضرات يف أوراكل ديفلوبر

    45

    a Mark

    Procedureb StuFunction

    ----------------------------------------------------------------------------------------------------------------------

    --------------

    حـل الـمـطـلـوب األول

    : ثبٌخقبئـ ا٢ر١خ TDeg ١ٌٚىٓ Non_DB ٕٔؾئ ػٕقش غ١ش ِشرجو ثمبػذح اٌج١بٔبد (أٗاًل

    Property Value

    1 Name TDeg

    2 Item Type Text Item

    3 Enabled No

    4 Data Type Number

    5 Database Item No 6 Canvas Canvas2

    7 Prompt ِغّٛع اٌذسعبد

    ٌزظٙش ؽبؽخ Createصُ (Object Navigator)اٌّٛعٛد فٟ ؽبؽخ اٌـ (Program Units)ٔؾذد اٌـ (ثاًّٞا

    ٚع اٌٛؽذح اٌجشِغ١خ ئعشاء ٚٔخزبس ProTDegْ ئعُ اإلعشاء ١ٌٚىٓ Nameاٌٛؽذاد اٌجشِغ١خ فـٕىزت فٟ اٌـ

    Procedure صُ ٔنغوOk ٌٟف١ظٙش ِؾشس وزبثخ اٌؾفشح اٌّقذس٠خ ٌٕىزت اٌزب ، :

    PROCEDURE ProTDeg IS

    BEGIN

    :Tdeg := NVL(:Mark_Yj , 0) + NVL(:Mark_Ht , 0) + NVL(:Mark_Ft , 0);

    END;

    ِٓ Procedureٚثّب أْ اٌّغّٛع ٠زأصش ئرا لّٕب ثزؼذ٠ً أٞ ِٓ اٌذسعبد ٌزٌه ٔمَٛ ثاعزذػبء اإلعشاء (ثاىثًأ

    اىْظفٜ –أػَاه اىغْح ) ٌٚىً ِٓ Post_Change فٟ ؽذس Codeخالي وزبثخ ٘زٖ اٌؾفشح اٌّقذس٠خ

    : ٚوبٌزبٌٟ ( اىْٖائٜ–

    ProTDeg ;

    ----------------------------------------------------------------------------------------------------------------------

    --------------

    حـل الـمـطـلـوب الثاني

    . : ثبٌخقبئـ ا٢ر١خ SEC_NAME ١ٌٚىٓ Non_DB ٕٔؾئ ػٕقش غ١ش ِشرجو ثمبػذح اٌج١بٔبد (أٗاًل

  • 6iحماضرات يف أوراكل ديفلوبر

    46

    Property Value

    1 Name SEC_NAME

    2 Item Type Text Item

    3 Enabled No 4 Data Type Char

    5 Database Item No

    6 Canvas Canvas2

    7 Prompt ُئعُ اٌمغ

    ٌزظٙش ؽبؽخ Createصُ (Object Navigator)اٌّٛعٛد فٟ ؽبؽخ اٌـ (Program Units)ٔؾذد اٌـ (ثاًّٞا

    ٚع اٌٛؽذح اٌجشِغ١خ ئعشاء ٚٔخزبس FunSecْ ئعُ اإلعشاء ١ٌٚىٓ Nameاٌٛؽذاد اٌجشِغ١خ فـٕىزت فٟ اٌـ

    Function صُ ٔنغوOk ٌٟف١ظٙش ِؾشس وزبثخ اٌؾفشح اٌّقذس٠خ ٌٕىزت اٌزب ، :

    FUNCTION FunSec RETURN Char IS

    X Varchar2(50);

    BEGIN

    Select Sec_Name Into X From Section

    Where Sec_No = :Stu_Sec ;

    Return X ;

    END;

    فٟ ؽذس ثذا٠خ Codeِٓ خالي وزبثخ ٘زٖ اٌؾفشح اٌّقذس٠خ Functionصُ ٔمَٛ ثاعزذػبء اٌذاٌخ (ثاىثًأ

    : اٌذخٛي ػٍٝ اٌغغً ٚوبٌزبٌٟ

    (Trigger : WHEN_NEW_RECORD_INSTANCE)

    :Sec_Name := FunSec ;

    =======================================================================

    ٍالزظاخ ٕاٍح :

    ِٓ ٗٔ٠ّىٓ ئعزذػبء اإلعشاء ثىزبثزٗ ِجبؽشح ، أِب اٌذاٌخ ف١غت أْ رغٕذ ٌّزؾٛي أصٕبء ئعزذػبئٙب ألاٌّّىٓ أْ ٠غزخذَ ئعُ اٌذاٌخ ِغ اٌؼ١ٍّبد اٌؾغبث١خ ،

    ال ٠زيٍت ِٓ اإلعشاء ئسعبع أٞ ل١ّخ ث١ّٕب ٠غت أْ رؼ١ذ اٌذاٌخ ل١ّخ ٌزٌه فأٗ ػٕذ رؾش٠ش اٌؾفشح: اٌّقذس٠خ ٌٍذٚاي عٕشٜ ثذا٠خ ِؾشس اٌؾفشح اٌّقذس٠خ ثٙزٖ اٌيش٠مخ

    FUNCTION FunSec RETURN _ IS

    : فٕمَٛ ثىزبثخ ِب رشعؼٗ اٌذاٌخ ثؾ١ش ٔؼذي ِؾشس اٌؾفشح اٌّقذس٠خ ٚثٙزٖ اٌيش٠مخ

    FUNCTION FunSec RETURN Char IS

    احملاضرة السابعة

  • 6iحماضرات يف أوراكل ديفلوبر

    47

    List Item: ٠غت ِؼشفخ ً٘ ٔش٠ذ أْ رىْٛ اٌم١ُ اٌظب٘شح ف١ٙب List Itemلجً ئٔؾبء

    ئعراذٞنٞح)ثاترح) Static: ٚثبٌزبٌٟ فٟٙ رّزٍه ل١ُ صبثزخ ال ٠ّىٓ رؼذ٠ٍٙب ؛ دْٝاٍٞنٞح)ٍرغٞشج) Dynamic: ٚثبٌزبٌٟ فٟٙ رّزٍه ل١ُ ِزغ١شح رؼىظ فٛسح اٌغغالد فٟ لبػذح

    .Queryاٌج١بٔبد ٚعٍت اٌج١بٔبد ف١ٙب ع١ىْٛ ثٛاعيخ اإلعزؼالَ .ٝذٗٛ دائًَا ٠ىْٛ (List Item)ِغ ِالؽظخ أْ ئٔؾبء اٌـ

    ----------------------------------------------------------------------------------------------------------------------

    --------------

    List ItemStu

    a

    b

    ----------------------------------------------------------------------------------------------------------------------

    --------------

    حـل الـمـطـلـوب األول

    :ٔالؽظ رٛفش اٌؾمٛي Stu ِؼزّذح ػٍٝ اٌغذٚي Data Block رىْٛ ف١ٗ اٌـFormثؼذ ئٔؾبء

    ، اٌّؼذي Stu_Lvl ، سلُ اٌّغزٜٛ Stu_Sec ، سلُ اٌمغُ Stu_Name ، ئعُ اٌيبٌت Stu_Noسلُ اٌيبٌت )

    Stu_Avg ٔٛع اٌؾٙبدح ، Stu_Certtype )

    : خقبئقٗ وّب ٠ٍٟ Itemِّب ٠غزٛعت رٛف١ش ؽمً ئعُ اٌّغزٜٛ ٚرٌه ِٓ خالي ئٔؾبء ػٕقش عذ٠ذ

    Property Value

    1 Name LVL_NAME

    2 Item Type List Item

    3 Element in List More…

    4 Mapping of Other Values 4

    5 Initial Value 2

    6 Copy Value from Item STU_LVL

    7 Synchronize with Item STU_LVL

    8 Database Item No

    9 Canvas Canvas2

  • 6iحماضرات يف أوراكل ديفلوبر

    48

    :ِٓ خالٌٙب ٌزظٙش اٌؾبؽخ أػالٖ ٚاٌزٟ

    ًٔذخً ل١ُ اٌؾمLVL_Name ٟف List Elements

    ُٔؾذد اٌم١ُ اٌّمبثٍخ ٌٙب فٟ ؽمً سل ، List Item Valuesاٌّغزٜٛ

    ِغ ٚعٛة أْ ٠ىْٛ ئدخبي اٌم١ُ ِزٕبظش فٟ

    : فّضاًل (اٌؾمٛي)ع١ّغ األػّذح

    ٠مبثٍٙب List Elements فٟ األٗهاٌم١ّخ

    . List Item Values فٟ 1اٌم١ّخ

    =======================================================================

    =========

    ششذ ٍثغط :

    الؽظ ػًّ خبف١خ ٔغخ اٌم١ّخ ٌٍؼٕقش ئٌٝ داخً لبػذح اٌج١بٔبدCopy Value from Item ( ٌٝئSTU_LVL)

    Canvasثٛاعيخ اٌخبف١خ STU_LVLغبٌجًب ِب ٠زُ ئخفبء ؽمً ) ٗرىل ٍفٞذ خذًا ػْذ ئػافح عدو خذٝذ

    ، ( وّذخالد ِؼيبح ِٓ اٌّغزخذَ ٕٚ٘ب رأرٟ اٌفبئذح اٌؼظّٝ ٌٙزٖ اٌخبف١خLVL_NAMEٚاإلػزّبد ػٍٝ

    الؽظ ػًّ خبف١خ اٌزضآِ ِغ اٌؼٕقشSynchronize with Itemٚاٌزٟ رؼًّ ػٍٝ ئظٙبس ل١ُ اٌـ List Item

    : Trigger)ؽج١ٙخ فٟ ىش٠مخ اٌؼًّ ٌـ ) STU_LVLثؼذ اٌزؼذ٠ً ػٍٝ ل١ّخ ؽمً سلُ اٌّغزٜٛ

    Post_Change)

    ، (STU_LVLػٍٝ ؽمً

    ْالؽظ أList Item ؽج١ٙخ فٟ ىش٠مخ اٌؼًّ ٌٍذاٌخ Decode فٟ ث١ئخ SQL PLUS .

    حـل الـمـطـلـوب الـثـانـي

  • 6iحماضرات يف أوراكل ديفلوبر

    49

    : خقبئقٗ وّب ٠ٍٟ Item رٛف١ش ؽمً ئعُ اٌمغُ ٚرٌه ِٓ خالي ئٔؾبء ػٕقش عذ٠ذ (أٗاًل

    Property Value

    1 Name LVL_NAME

    2 Item Type List Item

    3 Element in List More…

    4 Mapping of Other Values

    5 Initial Value

    6 Copy Value from Item STU_SEC

    7 Synchronize with Item STU_SEC

    8 Database Item No

    9 Canvas Canvas2

    : الزظ مٞف قَْا ترفشٝغ مًو ٍِ

    a) ِٓ ُع١ّغ اٌم١Element In List ، b) ٟخبف١زMapping of Other Values & Initial Value.

    Record)ؽ١ش ٔمَٛ ثزؾذ٠ذ اٌـ Dynamic (د٠ٕب١ِى١خ) ِزغ١شح Record Group ٕٔؾئ ِغّٛػخ عغً (ثاًّٞا

    Group) اٌّٛعٛد فٟ ؽبؽخ اٌـ(Object Navigator) ُصCreate ٌزظٙش اٌؾبؽخ اٌزب١ٌخ فٕخزبس خ١بسBased

    on the Query Below… ٚٔىزت اإلعزؼالَ صُ ٔنغو ػٍٝ اٌضس OK

    select Sec_Name , to_char(Sec_No) from section ;

    ئرْ ٔمَٛ ثغٍت اٌج١بٔبد اٌخبفخ ثاعُ

    ثؼذ رؾ٠ٍٛٗ ِٓ سلُ )اٌمغُ ٚسلُ اٌمغُ

    ٚرٌه ١ٌىْٛ ()to_charئٌٝ ٔـ ػجش اٌذاٌخ

    لبدسًا ػٍٝ Record Groupِغّٛػخ عغً

    ، ٠ٚغت أ٠نًأ أْ ٔغؼً ٔٛع (اإلعزؼالَ

    ٌٚززُ ػ١ٍّخ Charاٌج١بٔبد ٌشلُ اٌمغُ

    اٌزيبثك ،

    Property Value

    Data Type Char

    ثشِغ١ًب (Record Group)اٌـٌٕٚغّٟ ٘زا

    ٚرؾذ٠ذ ل١ّخ F4ِٓ خالي اٌنغو ػٍٝ

    RG_SEC_DYNAMIC ثـNameاٌخبف١خ

    .

    َ ثىزبثخ اٌؾفشح اٌّقذس٠خ ٚٔك (ثاىثًا Code Form ػٕذ ؽذس رؾ١ًّ إٌّٛرط List Item ١ٌٚزُ ٍِئ اٌـ ِٓ

    :لبػذح اٌج١بٔبد

    (Trigger : WHEN_NEW_FORM_INSTANCE)

  • 6iحماضرات يف أوراكل ديفلوبر

    50

    Declare

    N Number;

    Begin

    N := Populate_Group('RG_SEC_DYNAMIC');

    Populate_List('Sec_Name','RG_SEC_DYNAMIC');

    End ;

    LOVs (List Of Values)ٚرز١ّض ، (Form)ٟ٘ ػجبسح ػٓ لبئّخ رؾزٛٞ ِغّٛػخ ل١ُ ٔمَٛ ثأزمبء ئؽذا٘ب ٚئػبدرٙب ئٌٝ ؽمٛي فٟ اٌـ

    :ثأٔٙب

    a) ٟرظٙش فForm ٗٔئٌخ ؛ ... عذ٠ذ ٌٕغزي١غ اٌزؾىُ ثبٌؼذ٠ذ ِٓ خقبئقٗ ِضً ِىبْ ظٙٛسٖ ٚؽغّٗ ٚػٕٛاb) رظٙش أوضش ِٓ ػّٛد ؛

  • 6iحماضرات يف أوراكل ديفلوبر

    51

    c) ئِىب١ٔخ اٌجؾشSearch اٌفٍزشح)ٚاٌزقف١خ) Filter . =======================================================================

    =========

    LOVs (List Of Values) : ٠غت ِؼشفخ ً٘ ٔش٠ذ أْ رىْٛ اٌم١ُ اٌظب٘شح ف١ٙب LOVsلجً ئٔؾبء لبئّخ ِشوجخ

    ئعراذٞنٞح)ثاترح) Static: ٚثبٌزبٌٟ فٟٙ رّزٍه ل١ُ صبثزخ ال ٠ّىٓ رؼذ٠ٍٙب ؛ دْٝاٍٞنٞح)ٍرغٞشج) Dynamic: ٚثبٌزبٌٟ فٟٙ رّزٍه ل١ُ ِزغ١شح رؼىظ فٛسح اٌغغالد فٟ لبػذح

    .Queryاٌج١بٔبد ٚعٍت اٌج١بٔبد ف١ٙب ع١ىْٛ ثٛاعيخ اإلعزؼالَ ، Text Item ال ريجك ػبدح ئال ػٍٝ ػٕقش (LOVs)ِغ ِالؽظخ أْ اٌـ

    . ](( Form Builder 6i عذ٠ذ [ LOVs Wizard أٚ ػٓ ىش٠ك اٌّؼبٌظ اٌخبؿ ثٙب ٝذًٗٝاٚئٔؾبئٙب ئِب أْ ٠ىْٛ

    Record Group ٝرطية ئّشاء ٍدَ٘ػح عدو LOVsٗتشنو ػاً فاُ ئّشاء أٛ

    LOVs ٝرسذد ّ٘ع اىـRecord Groupٗتسغة ّ٘ع ٍدَ٘ػح عدو

    ----------------------------------------------------------------------------------------------------------------------

    --------------

    LOVsMark

    c Manually

    d Wizard ----------------------------------------------------------------------------------------------------------------------

    --------------

    حـل الـمـطـلـوب األول

    :ٔالؽظ رٛفش اٌؾمٛي Mark ِؼزّذح ػٍٝ اٌغذٚي Data Block رىْٛ ف١ٗ اٌـFormثؼذ ئٔؾبء

    ، Mark_Sub ، سلُ اٌّبدح Mark_Stu ، سلُ اٌيبٌت Mark_Lvl ، سلُ اٌّغزٜٛ Mark_Secسلُ اٌمغُ )

    : ِّب ٠غزٛعت ( Mark_Ft ، إٌٙبئٟ Mark_Ht ، إٌقفٟ Mark_Yjأػّبي اٌغٕخ

    : خقبئقٗ وّب ٠ٍٟ Item رٛف١ش ؽمً ئعُ اٌّغزٜٛ ٚرٌه ِٓ خالي ئٔؾبء ػٕقش عذ٠ذ ( أٗاًل

    Property Value

    1 Name Lvl_Name

    2 Database Item No

    3 Canvas Canvas2

    4 Prompt ٜٛئعُ اٌّغز

    Record)ؽ١ش ٔمَٛ ثزؾذ٠ذ اٌـ Static (ئعزبر١ى١خ) صبثزخ Record Group ٕٔؾئ ِغّٛػخ عغً (ثاًّٞا

    Group) اٌّٛعٛد فٟ ؽبؽخ اٌـ(Object Navigator) ُصCreate ٌزظٙش اٌؾبؽخ اٌزب١ٌخ فٕخزبس خ١بسStatic

    Values صُ ٔنغو ػٍٝ اٌضس OK ٟخالٌٙب ٌزظٙش ؽبؽخ ئدخبي اٌج١بٔبد اٌضبثزخ ٚاٌز ِٓ:

  • 6iحماضرات يف أوراكل ديفلوبر

    52

    أِب ىٌٛٗ Data Type فٟ Number ٚٔؾذد ٔٛػٗ Column Names فٟ LVL_NOٔذخً ئعُ اٌؾمً )

    Lengthً1,2,3,4] فٙٛ ِؾذد رٍمبئ١ًب ٌألسلبَ ِٚٓ صُ ٔذخً ع١ّغ اٌم١ُ اٌّّىٕخ ٌٙزا اٌؾم] Column

    Values ) ،

    :ؽ١ش ٚٔىشس رٌه ِغ ؽمً ئعُ اٌّغزٜٛ

    ٚىٌٛٗ Data Type فٟ Cheterar ٚٔؾذد ٔٛػٗ Column Names فٟ LVL_NAMEٔذخً ئعُ اٌؾمً )

    Length ٛ٘ 30ًاألٚي,اٌضبٟٔ,اٌضبٌش, اٌشاثغ[ ِٚٓ صُ ٔذخً ع١ّغ اٌم١ُ اٌّّىٕخ ٌٙزا اٌؾم[ Column

    Values ) ِغ ٚعٛة أْ ٠ىْٛ ئدخبي ،

    (اٌؾمٛي)اٌم١ُ ِزٕبظش فٟ ع١ّغ األػّذح

    فٟ �