180
Tài liệu đào tạo Tài liệu đào tạo Form Builder Form Builder

Oracle Form Builder VN

  • Upload
    viet-me

  • View
    155

  • Download
    26

Embed Size (px)

Citation preview

Page 1: Oracle Form Builder VN

Tài liệu đào tạoTài liệu đào tạoForm BuilderForm Builder

Page 2: Oracle Form Builder VN

Nội dung đào tạo

Chương 1: Giới thiệu chung

Chương 2: Các thành phần cơ bản của Form

Chương 3: Quy trình đăng ký Form

Chương 5: Tạo Form với history record

Chương 4: Quy trình tạo Form

Page 3: Oracle Form Builder VN

Nội dung đào tạo

Chương 7: Tạo Form với Descriptive Flexfield

Chương 8: Tạo Form mới màn hình tìm kiếm

Chương 6: Tạo Form với Folder Block

Page 4: Oracle Form Builder VN

Mục tiêu khóa học

Hiểu được khái niệm cơ bản và phương pháp cài đặt công cụ Oracle Form Builder.

Nắm rõ khái niệm và cách sử dụng các thành phần trong form:

o Data Block, Item.

o Canvases, Window, List of value, Record Group.

o Trigger, Program Unit, Library, Parameter.

o Descriptive Flexfield, Folder, Key Flexfield .

Page 5: Oracle Form Builder VN

Mục tiêu khóa học

Thực hiện được quy trình tạo form và đăng ký trên ứng dụng Oracle.

Có khả năng xây dựng và viết màn hình nhập liệu, thao tác, xử lý số liệu với công cụ Oracle Form Builder .

Page 6: Oracle Form Builder VN

Tài liệu tham khảo

Oracle Developer Document (115devg.pdf)

Oracle 9i Developer – Nhà xuất bản thống kê

(Phát triển ứng dụng Web với Form Builder)

Page 7: Oracle Form Builder VN

Chương 1: Giới thiệu chung

1. Oracle Form Builder

Oracle forms là một trong những sản phẩm quan trọng trong bộ Oracle Developer

Nó cung cấp các phương tiện phát triển giao diện, các xử lý, các thao tác với thông tin được lưu trữ trong cơ sở dữ liệu.

Có khả năng kết nối và trao đổi thông tin với các ứng dụng khác như Oracle reports, Oracle graphics.

Page 8: Oracle Form Builder VN

Chương 1: Giới thiệu chung

2. Oracle Form Module

Một ứng dụng Oracle Forms gồm nhiều Modules.

Oracle Form Modules gồm 3 loại chính:

Form: Đại diện cho các đối tượng và dữ liệu mà người sử dụng có thể nhìn thấy hoặc thực hiện các thao tác( *.fmb, *.fmt, *.fmx).

Menu: Là cấu trúc phân cấp các chức năng mà ta có thể chọn để thực hiện (*.mmb, *.mmt, *.mmx).

Library: Là tập hợp các đoạn mã chương trình PL/SQL như procedures, functions, pakages ...(*.pll, *.pld, *.plx).

Page 9: Oracle Form Builder VN

Chương 1: Giới thiệu chung

2. Oracle Form Module

Page 10: Oracle Form Builder VN

Chương 1: Giới thiệu chung

3. Các thành phần của Oracle Forms

Oracle Forms gồm 3 thành phần chính:

Page 11: Oracle Form Builder VN

Chương 1: Giới thiệu chung

Oracle Forms Runform: Là chương trình thực thi ứng dụng forms đã biên dịch và các module trong nó. Nó chỉ thực thi được các file được sinh bởi Oracle Form Generate.

Oracle Form Designer: Cho phép ta thiết kế (ví dụ như giao diện, các thư viện ... ) và lưu trữ các thông tin như form, menu, library mudules.

Oracle Form Generate: Biên dịch các file tạo bởi Oracle Form Designer thành các file mà Oracle Forms Runform có thể thực thi được.

3. Các thành phần của Oracle Forms

Page 12: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

Page 13: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

1. Form Object

Là một trong 3 thành phần quan trọng của Form Module.

Chứa các đối tượng và thuộc tính cấu thành form.

1.1 Khái niệm

Page 14: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

1. Form Object

Name: Tên của form.

Class: Lớp mà form thừa hưởng các thuộc tính.

First Navigation Data Block: Là tên của block mà Oracle Forms sẽ định hướng tới ngay khi khởi động và sau các thao tác CLEAR_FORM.

Console Window: Chỉ định tên của window mà sẽ được hiển thị bởi Oracle Forms. Console bao gồm dòng trạng thái và dòng message được hiển thị dưới đáy của window.

1.2 Một số thuộc tính cơ bản của Form

Page 15: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Khái niệm

Block là một khối có chứa các Item. Tất cả các Item dù có quan hệ tới các bảng hoặc không đều phải nằm trong các Block.

Base table blocks là khối có quan hệ tới các table ( hoặc view) trên cơ sở dữ liệu. Base table blocks có thể chứa các base table item và control item. Base table item sẽ tương ứng với column.

Control block là khối mà không có quan hệ tới các bảng trên cơ sở dữ liệu và nó chỉ gồm các control item.

Page 16: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Khái niệm (tt)

Tất cả Base table blocks có thể là single-record blocks hoặc multi-record blocks. Một single-record block chỉ hiển thị một bản ghi tại một thời điểm. Một multi-record block hiển thị nhiều bản ghi tại một thời điểm.

Một base table block có thể là master block hoặc detail block. Master block hiển thị các master record. Detail block hiển thị các detail record.

Page 17: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block

Ta có thể tạo thêm một block bằng cách chèn thêm đối tượng từ Object Navigator và có thể thay đổi các thuộc tính của block bằng cách thay đổi các giá trị tương ứng trong cửa sổ thuộc tính của block.

Sử dụng chức năng Data Block Wizard.

2 Phương pháp

Page 18: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 19: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 20: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 21: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 22: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 23: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 24: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 25: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 26: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 27: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 28: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 29: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 30: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 31: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 32: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.1 Tạo Block (tt)

Page 33: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.2 Một số thuộc tính cơ bản của Block

Name: Tên của Block.

Subclass Information: Lớp mà Block thừa hưởng các thuộc tính.

Navigation Style: Hành động khi chuyển đổi Tab qua hết các đối tượng trong Block.

Previous Navigation Data Block: Block trước.

Next Navigation Data Block: Block sau.

Page 34: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.2 Một số thuộc tính cơ bản của Block (tt)

Database Data Block: (Yes/No) Block có thuộc tính database hay không.

WHERE Clause: Mệnh đề điều kiện khi query Block

Insert Allowed: (Yes/No) Block cho phép insert.

Update Allowed: (Yes/No) Block cho phép update.

Delete Allowed: (Yes/No) Block cho phép delete.

Page 35: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

2. Blocks

2.2 Một số thuộc tính cơ bản của Block (tt)

Show Scroll Bar: (Yes/No) Cho phép Block có scroll bar hay không.

Scroll Bar Canvas: Canvas chứa scroll bar.

Scroll Bar Orientation: (Vertical/Horizontal) Loại scroll bar.

Scroll Bar X Position: Tọa độ ngang của scroll bar.

Scroll Bar X Position: Tọa độ đứng của scroll bar.

Page 36: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3. Items

3.1 Khái niệm

Items là các đối tượng giao diện mà hiển thị thông tin để thực hiện các thao tác và các tương tác với người sử dụng.

Oracle Forms cung cấp các kiểu giao diện item mà ta có thể sử dụng để xây dựng các giao diện ứng dụng. Gồm: button, chart item, check box, display item, image item, list item, radio group, text item, OLE container, VBX control.

Mỗi một item trong form đều thuộc vào một block nào đó. Các item trong một block có thể nằm trên các canvas-views khác nhau và có thể hiển thị trên các window khác nhau.

Page 37: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3. Items

3.1 Khái niệm

Page 38: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3. Items

3.2 Tạo Item

Tạo gián tiếp thông qua chức năng Data Block Wizard.

Tạo trực tiếp bằng thêm đối tượng item từ Object Navigator và có thể thay đổi các thuộc tính của item với các giá trị tương ứng trong cửa sổ thuộc tính của item.

Ta cũng có thể tạo thêm đối tượng item thông qua màn hình layout khi nhấp chuột vào biểu tượng của item tương ứng và kéo thả vào màn hình màn hình layout.

Một item chỉ có thể được hiển khi khi nằm trên một canvases, và canvases này phải được nằm trên một window được gọi.

Page 39: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3. Items

3.3 Lấy giá trị và gán giá trị cho item

Lấy giá trị item

<biến> := :<block_name>.<item_name>;

Gán giá trị item

:<block_name>.<item_name> := <giá trị>;

Page 40: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3.4 Một số thuộc tính cơ bản của Item

Name: Tên của Item.

Subclass Information: Lớp Item thừa hưởng các thuộc tính.

Item Type: Loại item.

Enable: (Yes/No) Sử dụng hay không sử dụng.

Previous Navigation Item: Item trước.

3. Items

Next Navigation Item: Item sau.

Page 41: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3.4 Một số thuộc tính cơ bản của Item (tt)

Required: (Yes/No) Bắt buộc hay không bắt buộc nhập.

Database Item: (Yes/No) Item có thuộc tính database.

Number of items Displayed: Số dòng mà item hiển thị

Column Name: Tên cột database tương ứng.

Primary Key: (Yes/No) Khóa chính.

3. Items

Query Only: (Yes/No) Chỉ cho phép query.

Page 42: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3.4 Một số thuộc tính cơ bản của Item (tt)

3. Items

Insert Allowed: (Yes/No) Item cho phép insert.

Update Allowed: (Yes/No) Item cho phép update.

Delete Allowed: (Yes/No) Item cho phép delete.

Canvas: Canvas mà item hiển thị.

X Position: Tọa độ ngang của Item (Trên Canvas).

Y Position: Tọa độ đứng của Item (Trên Canvas).

Page 43: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3.4 Một số thuộc tính cơ bản của Item (tt)

3. Items

Prompt: Tiêu đề hiển thị.

Prompt Display Style: Loại Prompt hiển thị.

Prompt Justification: Canh trái, phải, giữa, đều trong Prompt.

Prompt Attachment Edge: Vị trí so với item (Trái, phải, trên, dưới).

Prompt Alignment: Canh trên, dưới, giữa trong Prompt.

Page 44: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

3.4 Một số thuộc tính cơ bản của Item (tt)

3. Items

Prompt Attachment Offset: Khoảng cách (ngang) so với item.

Prompt Alignment Offset: Khoảng cách (dọc) so với item.

Value when Checked: Giá trị trả về khi checked (Chỉ đối với Item Type loại Check Box).

Value when Unchecked: Giá trị trả về khi Unchecked (Chỉ đối với Item Type loại Check Box).

Lov: Tên List of Value gắn với Item.

Page 45: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

4.1 Khái niệm

4. Canvases

Canvas là vùng sẽ được hiển thị lúc chạy ứng dụng.

Mọi đối tượng muốn được hiển thị đều phải đặt trên một Canvas nào đó.

Một Canvas phải được đặt trong một window nào đó. Ngược lại, một window có thể có nhiều Canvases

Canvases là nền dùng để đặt các đối tượng (item) cần được hiển thị.

Page 46: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

4.2 Phân loại Canvases (Canvas Type)

4. Canvases

Canvas Content: Canvas thông thường, chứa tất cả các đối tượng bao gồm item, canvas stacked.

Canvas Stacked: Mang tính chất tương tự như Canvas Content. Tuy nhiên loại Canvas này được dùng đặt trên một Canvas khác.

Page 47: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

4.2 Phân loại Canvases (Canvas Type) (tt)

4. Canvases

Phân loại Canvas Stacked (Sub Class)

o Canvas Stacked Fix: Canvas Stacked cố định, các đối tượng (item) trên Canvas không thể di chuyển được.

o Canvas Stacked: Canvas Stacked động, các đối tượng (item) trên Canvas này có để di chuyển thông qua sử dụng chức năng “Folder”.

Page 48: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

4.3 Tạo Canvas

Tạo gián tiếp thông qua chức năng Data Layout Wizard.

Tạo trực tiếp bằng thêm đối tượng item từ Object Navigator và có thể thay đổi các thuộc tính của Canvas với các giá trị tương ứng trong cửa sổ thuộc tính của Canvas.

4. Canvases

Page 49: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

4.4 Một số thuộc tính cơ bản của Canvases

Name: Tên của Canvas.

Subclass Information: Lớp Canvas thừa hưởng.

Canvas Type: Loại Canvas.

Visible: (Yes/No) Hiển thị hay không hiển thị.

Window: Window chứa Canvas.

4. Canvases

Page 50: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

5.1 Khái niệm

5. Window

Window là một cửa sổ màn hình giống như một khung bức tranh rỗng ( chưa có nội dung).

Window có các chức năng cho phép phóng to, thu nhỏ, cuốn lên-xuống, di chuyển vị chí.

Một form có thể có nhiều window. Tất cả các form khi tạo mới sẽ tự động tạo một window ngầm định với tên là WINDOW0. Có thể tạo các window bằng cách chèn thêm (insert) từ Object Navigator.

Page 51: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

5.1 Khái niệm (tt)

5. Window

Mỗi một window được tạo hầu như đồng thời với việc tạo một canvas.

Tại thời điểm chạy ứng dụng, window sẽ được hiển thị khi có lời gọi từ chương trình hoặc khi có sự định hướng xuất hiện (Navigation) của một item trên một canvas-view mà được gán tới window. Oracle Forms hiển thị window với nền canvas-view tương ứng.

Page 52: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

5.2 Tạo Window

Để tạo mới một window ta chuyển hộp chọn trên cửa sổ Object Navigator vào đối tượng windows sau đó nhấn vào biểu tượng Create.

Ta có thể nháy đúp chuột vào window để gọi cửa sổ thuộc tính để có thể thay đổi tên ngầm định của window hoặc các thuộc tính khác.

5. Window

Page 53: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

5.3 Một số thuộc tính cơ bản của Window

5. Window

Name: Tên của Window.

Subclass Information: Lớp Window thừa hưởng.

Title: Tiêu đề của Window.

Primary Canvas: Canvas chính của Window.

Close Allowed: (Yes/No) Nút phóng to, thu nhỏ.

Move Allowed: (Yes/No) Cho phép di chuyển.

Page 54: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

5.3 Một số thuộc tính cơ bản của Window (tt)

5. Window

Resize Allowed: (Yes/No) Cho phép thay đổi kích cỡ.

Maximize Allowed: (Yes/No) Cho phép phóng to.

Minimized Title: Tiêu đề khi thu nhỏ.

Minimize Allowed: (Yes/No) Cho phép thu nhỏ.

X Position: Tọa độ ngang của Window.

Y Position: Tọa độ đứng của Window.

Page 55: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.1 Khái niệm

6. Record Group & List of Value

Lov là một object trong form module cho phép tạo một danh sách các giá trị lấy từ record group, dùng để hỗ trợ cho các text item hoặc các biến trong bất kỳ một block nào của form module.

Record group là một object trong form module mà chứa mảng các giá trị gồm các hàng và cột giống như table. Nội dung dữ liệu của nó được lấy nhờ câu lệnh SQL tương ứng.

Page 56: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value

6. Record Group & List of Value

Tạo gián tiếp thông qua chức năng LOV Winzard khi nhấn vào biểu tượng Create trên của sổ Object Navigator.

Tạo gián tiếp từ chức năng LOV Wizard trên menu ngữ cảnh của text item

Tạo trực tiếp Record Group & List of Value khi nhấn vào biểu tượng Create (Record Group & List of Value) Trên của sổ Object Navigator.

Page 57: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 58: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 59: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 60: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 61: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 62: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 63: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 64: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 65: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 66: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 67: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6.2 Tạo Record Group & List of Value (tt)

6. Record Group & List of Value

Page 68: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6. Record Group & List of Value

Record Group

6.3 Một số thuộc tính cơ bản của Record Group & LOV

Name: Tên của Record Group.

Subclass Information: Lớp Record Group thừa hưởng.

Record Group Type: Loại Record Group.

Record Group Query: Câu truy vấn lấy dữ liệu của Record Group khi Record Group Type thuộc loại “Query”.

Page 69: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

6. Record Group & List of Value

List of Value

6.3 Một số thuộc tính cơ bản của Record Group & LOV (tt)

Name: Tên của List of Value.

Subclass Information: Lớp List of Value thừa hưởng.

Title: Tiêu đề List of Value.

Record Group: Tên Record Group.

Page 70: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

7. Alert

7.1 Khái niệm

Tuỳ theo trả lời mà có thể thực hiện các xử lý tiếp theo.

Hiển thị dưới dạng một modal window chứa các thông tin cần thông báo và đợi trả lời từ phía người sử dụng.

Page 71: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

7. Alert

7.2 Tạo một Alert

Đặt thuộc tính theo yêu cầu.

Trong cửa sổ Object Navigator chọn mục Alerts sau đó nhấn biểu tượng Create.

Page 72: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

7. Alert

7.3 Một số thuộc tính cơ bản của Alert

Name: Tên của Alert.

Subclass Information: Lớp mà Alert thừa hưởng các thuộc tính.

Title: Tiêu đề của Alert khi hiển thị.

Message: Nội dung thông báo cần hiển thị.

Alert Style: Loại Alert.

Page 73: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

7. Alert

7.3 Một số thuộc tính cơ bản của Alert (tt)

Button 1 Label: Nhãn hiển thị Button 1.

Button 2 Label: Nhãn hiển thị Button 2.

Default Alert Button: Button ngầm định.

Button 3 Label: Nhãn hiển thị Button 3.

Page 74: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

7. Alert

7.4 Thay đổi thuộc tính và hiển thị Alert

Thay đổi thuộc tính Alert

SET_ALERT_PROPERTIES(<alert_name>, <properties>, <message>);

Hiển thị Alert

<lp_result_alert> := SHOW_ALERT(<alert_name>);

Page 75: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

7. Alert

7.4 Thay đổi thuộc tính và hiển thị Alert (tt)

Ví dụ

Tạo một Alert có tên INSERT_ALERT

Câu lệnh trong sự kiện khi muốn gọi INSERT_ALERTDECLARE

lp_result_alert := NUMBER;BEGIN

SET_ALERT_PROPERTY(‘INSERT_ALERT asd’, TITLE, ‘Insert Transaction’);

SET_ALERT_PROPERTY(‘INSERT_ALERT’, ALERT_MESSAGE_TEXT,'Do you want to Insert?’);

lp_result_alert := SHOW_ALERT(‘INSERT_ALERT’);

IF lp_result_alert = ALERT_BUTTON1 THEN<Insert dữ liệu>;

END IF;

END;

Page 76: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.1 Khái niệm

Tất các các trigger đều có tên và chứa một hoặc nhiều dòng lệnh PL/SQL tương ứng với sự kiện mà nó phải xử lý.

Triggers là một khối chứa các mã lệnh nhằm thực hiện một chức năng nào đó trong chương trình ứng dụng.

Tên Trigger thường tương ứng với sự kiện.

Một trigger phải được gắn với một object xác định trên form: item, block hoặc chính trên form.

Page 77: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.2 Các mức level của Trigger

Page 78: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.2 Các mức level của Trigger (tt)

Mặt khác nếu định nghĩa các trigger ở các mức khác nhau cùng xử lý một sự kiện, mà xự kiện này đều nằm trong phạm vi của các trigger thì trigger ở mức thấp nhất sẽ được thực hiện.

Việc xác định mức level đặt các trigger là rất quan trọng bởi vì nó xác định phạm vi hoạt động của trigger ứng với các sự kiện (events).

Ở cùng một mức các trigger cũng xuất hiện và xử lý với các cách khác nhau. Có các loại trigger sau: Pre-, Post-,When-, On-, Key-.

Page 79: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.3 Phân loại Trigger

Phân loại theo mức level (phạm vi hoạt động) có 3 loại:

o Trigger ở mức Form.

o Trigger ở mực Block.

o Trigger ở mức Item.

Page 80: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.3 Phân loại Trigger (tt)

Phân loại theo thời điểm kích hoạt trigger có 5 loại:

o PRE – Trigger.

o WHEN – Trigger.

o ON – Trigger.

o POST – Trigger.

o KEY – Trigger.

Page 81: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.4 Tạo Trigger

Trên cửa sổ Object Navigator ứng với mỗi object (item, block, form) sẽ có mục Triggers. Ta chuyển hộp chọn vào Triggers sau đó nhấn vào biểu tượng Create để tạo mới và chọn sự kiện tương ứng (Ví dụ: when-button-pressed ) sau đó hiện lên cửa sổ viết mã.

Page 82: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

8. Trigger

8.5 Một số trigger cơ bản

PRE-FORM: Thực hiện tại thời điểm khởi động form.

PRE-BLOCK: Thực hiện tại thời điểm khởi động Block.

PRE-RECORD: Thực hiện tại thời điểm khởi động Record.

PRE-QUERY: Thực hiện trước sự kiện truy vấn.

PRE-TEXT-ITEM: Thực hiện trước khi nhập liệu.

Page 83: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

PRE-INSERT: Thực hiện trước khi Insert dữ liệu.

PRE-UPDATE: Thực hiện trước khi Update dữ liệu.

PRE-DELETE: Thực hiện trước khi Delete dữ liệu.

PRE-COMMIT: Thực hiện trước khi Commit giao dịch.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 84: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

WHEN-NEW-FORM-INSTANCE: Thực hiện khi mở Form.

WHEN-NEW-BLOCK-INSTANCE: Thực hiện khi mở Block.

WHEN-NEW-RECORD-INSTANCE: Thực hiện khi mở Record.

WHEN-CREATE-RECORD: Thực hiện khi tạo Record.

WHEN-VALIDATE-RECORD: Thực hiện khi Validate Record.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 85: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

WHEN-BUTTON-PRESSED: Thực hiện khi nhấn Button.

WHEN-CHECKBOX-CHANGED: Thực hiện khi nhấn Check Box.

WHEN-CLEAR-BLOCK: Thực hiện khi Clear Block.

WHEN-RADIO-CHANGED: Thực hiện khi thay đổi Radio.

WHEN-VALIDATE-ITEM: Thực hiện khi Validate Item.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 86: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

ON-UPDATE: Thực hiện khi Update dữ liệu.

ON-DELETE: Thực hiện khi Delete dữ liệu.

ON-COMMIT: Thực hiện khi Commit giao dịch.

ON-INSERT: Thực hiện khi Insert dữ liệu.

ON-ROLLBACK: Thực hiện khi Rollback giao dịch.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 87: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

ON-MESSAGE: Thực hiện khi hiện các Message.

ON-ERROR: Thực hiện khi có một lỗi nào đó xuất hiện.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 88: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

POST-UPDATE: Thực hiện sau khi dữ liệu được Update.

POST-DELETE: Thực hiện sau khi dữ liệu được Delete.

POST-CHANGE: Thực hiện sau khi dữ liệu được thay đổi(khác NULL).

POST-INSERT: Thực hiện sau khi dữ liệu được Insert.

POST-FORM: Thực hiện sau khi thoát khỏi Form.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 89: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

POST-RECORD: Thực hiện khi rời input forcus từ bản ghi này tới bản ghi khác.

POST-QUERY: Thực hiện sau dữ liệu được điền vào các Record.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 90: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

KEY-DOWN: Thực hiện khi nhấn phím Page-Down.

KEY-ENTER: Thực hiện khi nhấn phím Enter.

KEY-NEXT-ITEM: Thực hiện khi nhấn phím Tab.

KEY-UP: Khi nhấn phím Page-Up.

KEY-PREV-ITEM: Thực hiện khi nhấn phím Shift + Tab.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 91: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

KEY-DUPREC: Thực hiện khi nhập trung Record.

KEY-HELP: Thực hiện khi nhấn phím F1.

KEY-LISTVAL: Thực hiện khi mở List of Value.

KEY-DUP-ITEM: Thực hiện khi nhập trùng Item.

KEY-EXIT: Thực hiện khi Exit.

8. Trigger

8.5 Một số trigger cơ bản (tt)

Page 92: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.1 Khái niệm

Một nhóm các lệnh thực hiện chức năng nào đó.

Tăng khả năng xử lý, khả năng sử dụng chung, tăng tính bảo mật và an toàn dữ liệu, tiện ích trong phát triển.

Được lưu giữ ngay trên Form dưới dạng Program Units hoặc trong các thư viện (Attached Libraries) và Build-In-Packages.

Tương tự như trong Database, Procedure không mang giá trị trả về và ngược lại Function luôn trả về một giá trị nào đó.

Procedure vẫn có thể trả về giá trị thông qua các biến OUT.

Page 93: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.2 Phân loại

Thủ tục, hàm và biến do hệ thống quy định (xây dựng).

Thủ tục, hàm và biến do người lập trình viên quy định (xây dựng).

Page 94: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.3 Một số thủ tục và hàm của hệ thống gán liền với Trigger

Built-inBuilt-in Key-TriggerKey-TriggerAssociatedAssociated

Function KeyFunction KeyBLOCK_MENU Key-MENU [Block Menu]

CLEAR_BLOCK Key-CLRBLK [Clear Block]

CLEAR_FORM Key-CLRFRM [Clear Form]

CLEAR_RECORD Key-CLRREC [Clear Record]

COMMIT_FORM Key-COMMIT [Commit]

COUNT_QUERY Key-CQUERY [Count Query Hits]

CREATE_RECORD Key-CREREC [Insert Record]

DELETE_RECORD Key-DELREC [Delete Record]

DOWN Key-DOWN [Down]

Page 95: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

Built-inBuilt-in Key-TriggerKey-TriggerAssociatedAssociated

Function KeyFunction KeyDUPLICATE_ITEM Key-DUP-ITEM [Duplicate Item]

DUPLICATE_RECORD Key-DUPREC [Duplicate Record]

EDIT_TEXTITEM Key-EDIT [Edit]

ENTER Key-ENTER [Enter]

ENTER_QUERY Key-ENTQRY [Enter Query]

EXECUTE_QUERY Key-EXEQRY [Execute Query]

EXIT_FORM Key-EXIT [Exit/Cancel]

HELP Key-HELP [Help]

LIST_VALUES Key-LISTVAL [List]

9.3 Một số thủ tục và hàm của hệ thống gán liền với Trigger (tt)

Page 96: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

Built-inBuilt-in Key-TriggerKey-TriggerAssociatedAssociated

Function KeyFunction KeyLOCK_RECORD Key-UPDREC [Lock Record]

NEXT_BLOCK Key-NXTBLK [Next Block]

NEXT_ITEM Key-NEXT-ITEM [Next Item]

NEXT_KEY Key-NXTKEY [Next Primary Key Fld]

NEXT_RECORD Key-NXTREC [Next Record]

NEXT_SET Key-NXTSET [Next Set of Records]

PREVIOUS_BLOCK Key-PRVBLK [Previous Block]

PREVIOUS_ITEM Key-PREV-ITEM [Previous Item]

PREVIOUS_RECORD Key-PRVREC [Previous Record]

9.3 Một số thủ tục và hàm của hệ thống gán liền với Trigger (tt)

Page 97: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

Built-inBuilt-in Key-TriggerKey-TriggerAssociatedAssociated

Function KeyFunction KeyPRINT Key-PRINT [Print]

SCROLL_DOWN Key-SCRDOWN [Scroll Down]

SCROLL_UP Key-SCRUP [Scroll Up]

UP Key-UP [Up]

9.3 Một số thủ tục và hàm của hệ thống gán liền với Trigger (tt)

Page 98: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.3 Một số thủ tục và hàm của hệ thống gán liền với Trigger (tt)

Sử dụng thông qua cú pháp DO_KEY

BEGINDO_KEY(‘Built-in’);// DO_KEY(‘EXECUTE_QUERY’);

END;

Gọi trực tiếp

BEGIN‘Built-in’);// EXECUTE_QUERY;

END;

Page 99: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

TênTên Tham sốTham số Ý nghĩaÝ nghĩaEXECUTE_TRIGGER Trigger Name Thực thi Trigger

GO_BLOCK Block Name Thực hiện định hướng ra Block hiện tại (nếu có) và vào Block chỉ định.

GO_ITEM Item Name Thực hiện định hướng ra Item hiện tại (nếu có) và vào Item chỉ định.

SET_ITEM_PROPERTY Item Name, Property, Value

Gán thuộc tính chỉ định cho Item chỉ định.

GET_ITEM_PROPERTY Item Name, Property Lấy giá trị thuộc tính chỉ định của Item chỉ định.

9.4 Một số thủ tục và hàm của hệ thống hay dùng

Page 100: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

TênTên Tham sốTham số Ý nghĩaÝ nghĩaCALL_FORM Form Name Gọi Form.

GET_WINDOW_PROPERTY

Window Name, Property

Lấy giá trị thuộc tính chỉ định của Window chỉ định.

9.4 Một số thủ tục và hàm của hệ thống hay dùng (tt)

Page 101: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

Sử dụng thủ tục

BEGIN

GO_BLOCK(:<Block_name>.<Item_name>);// GO_BLOCK(:STUDENT.STUDENT_NAME);

END;

9.4 Một số thủ tục và hàm của hệ thống hay dùng (tt)

Page 102: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

Sử dụng hàm

DECLARE

lp_item_property VARCHAR2(250);

BEGIN

lp_item_property := GET_ITEM_PROPERTY(:<Block_name>.<Item_name>, <Property>);

// lp_item_property := GET_ITEM_PROPERTY(:STUDENT.STUDENT_NUMBER, ‘VISIBLE’);

END;

9.4 Một số thủ tục và hàm của hệ thống hay dùng (tt)

Page 103: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.5 Một số biến hệ thống hay dùng

TênTên Ý nghĩaÝ nghĩaSYSTEM.BLOCK_STATUS Trạng thái Block hiện tại

SYSTEM.CURRENT_BLOCK Block hiện tại.

SYSTEM.CURRENT_DATETIME Ngày, giờ hiện tại.

SYSTEM.CURRENT_ITEM Item hiện tại.

SYSTEM.CURRENT_FORM Form hiện tại.

SYSTEM.CURRENT_VALUE Giá trị hiện tại.

SYSTEM.CURSOR_BLOCK Cursor Block hiện tại.

SYSTEM.CURSOR_ITEM Cursor Item hiện tại.

SYSTEM.CURSOR_RECORD Cursor Record hiện tại.

SYSTEM.CURSOR_VALUE Giá trị Cursor hiện tại.

Page 104: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.5 Một số biến hệ thống hay dùng (tt)

TênTên Ý nghĩaÝ nghĩaSYSTEM.FORM_STATUS Trạng thái Form hiện tại.

SYSTEM.LAST_QUERY Câu Query hiện tại.

SYSTEM.LAST_RECORD Record hiện tại.

SYSTEM.MODE Mode hiện tại.

SYSTEM.MOUSE_BUTTON_PRESSED Trạng thái Mouse Button hiện tại.

SYSTEM.MOUSE_CANVAS Canvas Mouse hiện tại.

SYSTEM.MOUSE_FORM Form Mouse hiện tại.

SYSTEM.MOUSE_ITEM Item Mouse hiện tại.

SYSTEM.MOUSE_RECORD Record Mouse hiện tại.

SYSTEM.MOUSE_WINDOW Window Mouse hiện tại.

Page 105: Oracle Form Builder VN

Chương 2: Các thành phầncơ bản của Form

9. Thủ tục, hàm và biến

9.5 Một số biến hệ thống hay dùng (tt)

TênTên Ý nghĩaÝ nghĩaSYSTEM.MOUSE_X_POS Tọa độ X Mouse hiện tại.

SYSTEM.MOUSE_Y_POS Tọa độ Y Mouse hiện tại.

SYSTEM.RECORD_STATUS Trạng thái Record hiện tại.

$$DATE$$ Date

$$DATETIME$$ Date, Time.

$$TIME$$ Time.

Page 106: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

1. Tạo Form

Khi viết form mới nên bắt đầu từ form Template chuẩn của Oracle (APPSTAND.fmb) để thừa hưởng các thư viện và các chức năng chuẩn của Oracle.

Xây dựng Form theo tài liệu thiết kế Form với các đối tượng: Block, Item, Canvas, Window, Program Unit, Trigger, Alert.

Kiểm tra lại các ràng buộc khi xảy ra các sự kiện: Query, Insert, Update, Delete

Page 107: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

2. Chép Form lên Server

Copy Form từ máy developer lên Server tại thư mục Application Form cần đăng ký.

Page 108: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

3. Compile Form

Compile Form trực tiếp trên Server thông qua lệnh compile.sh (Fes Script)

Page 109: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

4. Đăng ký Form Trên Oracle Application EBS

Đường dẫn: (Resp) Application Developer Application Form

Page 110: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

4. Đăng ký Form Trên Oracle Application EBS (tt)

Đường dẫn: (Resp) Application Developer Application Form

Page 111: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form

Đường dẫn: (Resp) System Administrator Application Function

Page 112: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form (tt)

Đường dẫn: (Resp) System Administrator Application Function

Page 113: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form (tt)

Đường dẫn: (Resp) System Administrator Application Function

Page 114: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form (tt)

Đường dẫn: (Resp) System Administrator Application Function

Page 115: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form (tt)

Đường dẫn: (Resp) System Administrator Application Function

Page 116: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form (tt)

Đường dẫn: (Resp) System Administrator Application Function

Page 117: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

5. Đăng ký Function gọi Form (tt)

Đường dẫn: (Resp) System Administrator Application Function

Page 118: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

6. Đăng ký Menu

Đường dẫn: (Resp) System Administrator Security Responsibility Define

Page 119: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

6. Đăng ký Menu (tt)

Đường dẫn: (Resp) System Administrator Application Menu

Page 120: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

6. Đăng ký Menu (tt)

Đường dẫn: (Resp) System Administrator Application Menu

Page 121: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

6. Đăng ký Menu (tt)

Đường dẫn: (Resp) System Administrator Application Menu

Page 122: Oracle Form Builder VN

Chương 3: Quy trình tạo& đăng ký Form

7. Thực thi Form

Đường dẫn: <Responsibility_name> <Menu_name> <Function_name>

Page 123: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

1. Mở Form Template chuẩn (APPSTAND.fmb)

Copy từ thư viện au trên máy developer hoặc từ server.

Page 124: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

2. Tạo Block, Canvas, Window với Wizard

Page 125: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

3. Điều chỉnh Layout cho phù hợp

Page 126: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

4. Thay đổi các thông số ban đầu để gọi Form

Thay đổi APPSTAND thành <form_name>

Page 127: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

4. Thay đổi các thông số ban đầu để gọi Form (tt)

Trong sự kiện PRE-FORM, sửa câu lệnh app_window.set_window_position thay bằng <Window_name> đầu tiên cần hiển thị khi Form kích hoạt.

Page 128: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

4. Thay đổi các thông số ban đầu để gọi Form (tt)

Thay đổi thuộc tính “First Navigation Data Block” bởi <Block_name> đầu tiên cần hiển thị.

Page 129: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

4. Thay đổi các thông số ban đầu để gọi Form (tt)

Trong Package APP_CUSTOM (Program Unit), tại đoạn Close Window, sửa thành <window_name> cần close

Page 130: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

5. Thêm các điều kiện ràng buộc và các xử lý sự kiện

Thêm các điều kiện khi Query.

Xử lý các tác vụ khi xảy ra các sự kiện: Insert, Update, Delete.

Xuất thông báo trong các trường hợp cần thiết.

. . .

Page 131: Oracle Form Builder VN

Chương 4: Quy trình tạo Form

6. Compile Form & Lưu Form

Nhấn Ctrl + K để compile thử và kiểm tra lỗi code (nếu có).

Nhấn Ctrl + S để lưu Form.

Page 132: Oracle Form Builder VN

Chương 5: Tạo Form với history record

1. Khái niệm

History record là một chức năng đặc biệt của Oracle Form Application.

Lưu thông tin lược sử người dùng và tác động lên sự thay đổi dữ liệu.

Page 133: Oracle Form Builder VN

Chương 5: Tạo Form với history record

2. Tạo database

Để có thể lưu trữ history record cần tồn tại các trường trong cơ sở dữ liệu như sau.

o LAST_UPDATE_DATE DATE

o LAST_UPDATE_BY NUMBER

o CREATION_DATE DATE

o CREATION BY NUMBER

o LAST_UPDATE_LOGIN NUMBER

Page 134: Oracle Form Builder VN

Chương 5: Tạo Form với history record

3. Trigger

<Block_name> PRE-INSERT

FND_STANDARD.SET_WHO;

<Block_name> PRE-UPDATE

FND_STANDARD.SET_WHO;

Page 135: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

1. Khái niệm

Folder Block là một chức năng đặc biệt của Oracle Form Application.

Folder Block cho phép thay đổi độ rộng, vị trí, ẩn hoặc hiện các column ngay trên ứng dụng.

Ngoài ra Folder Block còn cho phép lưu lại các thay đổi này cho các đối tượng sử dụng khác nhau.

APPFLDR.pll library là thư viện Oracle xây dựng ra hỗ trợ cho việc xây dựng chức năng này trên Oracle Form Builder.

Page 136: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

1. Tạo Form từ Template chuẩn APPSTAND.fmb

Đảm bảo Form Template chuẩn đúng version ứng dụng cần xây dựng. (Nên chép trực tiếp từ au trên ứng dụng).

Đảm bảo thư viện APPFLDR.pll đã được attached trong Form Module

Page 137: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

2. Tạo biến

Tạo một biến <Block_name>_RECORD_COUNT kiểu Number và mang giá trị Default = 2

Page 138: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas

Tạo một Content Canvas chứa các đối tượng cần hiển thị chính trên window gọi là Main Content Canvas

Page 139: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas (tt)

Page 140: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas (tt)

Tạo một Stacked Fix Canvas chứa các đối tượng cố định (tĩnh).

Page 141: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas (tt)

Page 142: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas (tt)

Tạo một Stacked Canvas chứa các đối tượng động.

Page 143: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas (tt)

Page 144: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

3. Tạo Canvas (tt)

Lưu ý cả 3 Canvas này đều phải thuộc cùng một window.

Cả hai Stacked Canvas (Stacked Canvas & Stacked Fix Canvas) được tạo ra bằng cách vẽ trên Canvas chính (Main Content Canvas)

Page 145: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

4. Tạo Main Data Block & Prompt Data Block

Tạo Data Block chứa các database item và Block này được gọi là Main Data Block

Tạo Prompt Block chứa các item cần tạo Folder Block và được gọi là Prompt Block

Các item này được gán thuộc tính “Display Item” và thuộc Class “FOLDER_PROMPT_MULTIROW”

Chú ý các item này phải trùng tên với các item trong Main Data Block.

Các item trên Main Data Block thuộc Canvas nào thì các item trên Prompt Block cũng thuộc Canvas đó tương ứng.

Page 146: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

4. Tạo Main Data Block & Prompt Data Block (tt)

Tạo các item trên Prompt Block như sau

o Item Name: FOLDER_TITLE

Item Type: Display Item

Subclass Information: DYNAMIC_TITLE

Canvas: <Main_Content_Canvas>

o Item Name: ORDER_BY1

Item Type: Push Button

Subclass Information: FOLDER_ORDERBY

Canvas: <Main_Content_Canvas>

Page 147: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

4. Tạo Main Data Block & Prompt Data Block (tt)

Tạo các item trên Prompt Block như sau (tt)

o Item Name: ORDER_BY3

Item Type: Push Button

Subclass Information: FOLDER_ORDERBY

Canvas: <Main_Content_Canvas>

o Item Name: ORDER_BY2

Item Type: Push Button

Subclass Information: FOLDER_ORDERBY

Canvas: <Main_Content_Canvas>

Page 148: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

4. Tạo Main Data Block & Prompt Data Block (tt)

Tạo các item trên Prompt Block như sau (tt)

o Item Name: FOLDER_OPEN

Item Type: Push Button

Subclass Information: FOLDER_OPEN

Canvas: <Main_Content_Canvas>

o Item Name: ORDER_BY4

Item Type: Push Button

Subclass Information: FOLDER_ORDERBY

Canvas: <Main_Content_Canvas>

Page 149: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

4. Tạo Main Data Block & Prompt Data Block (tt)

Tạo các item trên Prompt Block như sau (tt)

o Item Name: FOLDER_DUMMY

Item Type: Text Item

Subclass Information: FOLDER_DUMMY

Canvas: <Stacked_Fix_Canvas>

Page 150: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

5. Trigger

<Form_name> WHEN-NEW-FORM-INSTANCE

app_folder.define_folder_block (<Form_name>,<Main_Data_Block>,<Prompt_Data_Block>,<Stacked_Canvas>,<Window_name>,NULL, -- Disable

FunctionNULL, -- Tab Canvas<Stacked_Fix_Canvas>);

Page 151: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

5. Trigger (tt)

<Form_name> FOLDER_ACTION

app_folder.event(:global.folder_action);

<Form_name> FOLDER_RETURN_ACTION

null;

Page 152: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

5. Trigger (tt)

<Main_Data_Block> WHEN-NEW-BLOCK-INSTANCE

app_folder.event('WHEN-NEW-BLOCK-INSTANCE');

<Main_Data_Block> KEY-PREV-ITEM

if (:parameter.<Main_Data_Block>_RECORD_COUNT = 1) thenprevious_item;

elseapp_folder.event('KEY-PREV-ITEM');

end if;

Page 153: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

5. Trigger (tt)

<Main_Data_Block> KEY-NEXT-ITEM

if (:parameter.<Main_Data_Block>_RECORD_COUNT = 1) thennext_item;

elseapp_folder.event('KEY-NEXT-ITEM');

end if;

<Main_Data_Block> PRE-BLOCK

app_folder.event('PRE-BLOCK');

Page 154: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

5. Trigger (tt)

<Main_Data_Block> POST-BLOCK

app_folder.event('POST-BLOCK');

<Main_Data_Block> POST-QUERY

app_folder.event('POST-QUERY');

<Main_Data_Block> PRE-QUERY

app_folder.event('PRE-QUERY');

<Main_Data_Block> KEY-EXEQRY

app_folder.event('KEY-EXEQRY');

Page 155: Oracle Form Builder VN

Chương 6: Tạo Form với Folder Block

5. Trigger (tt)

<Prompt_Data_Block>.FOLDER_OPEN

WHEN-BUTTON-PRESSED

copy('OPEN', 'global.folder_action');execute_trigger('folder_action');

Page 156: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

1. Khái niệm

Descriptive Flexfield là một chức năng đặc biệt của Oracle Form Application.

Descriptive Flexfield cho phép người dùng định nghĩa thêm những thông tin cần lưu trữ ngoài những trường có sẵn trên màn hình.

Descriptive Flexfield được xem như là những “khoảng trống” sẵn có mà người dùng có thể tùy biến theo nhu cầu lưu trữ riêng.

Page 157: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

1. Khái niệm (tt)

Page 158: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

2. Định nghĩa Descriptive Flexfield Database

Định nghĩa cấu trúc cho Desciptive Flexfield

ATTRIBUTE_CATEGORY(VARCHAR2(30), NULL ALLOWED)

Định nghĩa danh sách các cột lưu trữ cho Descriptive Flexfield

ATTRIBUTE1, ATTRIBUTE2, . . . , ATTRIBUTEn(VARCHAR2(250), NULL ALLOWED)

Page 159: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

2. Đăng ký Table & Column với Oracle Application

Đăng ký Table với Oracle Application Object Library sử dụng hàm Table Registration API.

EXECUTE ad_dd.register_table(<Application_short_name>, <Table_name>, 'T', 4096, 10, 40);

Đăng ký Clolumn với Oracle Application Object Library sử dụng hàm Column Registration API.

EXECUTE ad_dd.register_column(<Application_short_name>, <Table_name>, <Column_name>, <Column_ID>, <Data_type>, <Column_Length>, <Null (Y/N)>, 'N', NULL, NULL);

Page 160: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

2. Đăng ký Table & Column với Oracle Application (tt)

Ví dụ:

EXECUTE ad_dd.register_table('INV', 'NHANNH_CLASS', 'T', 4096, 10, 40);

EXECUTE ad_dd.register_column('INV', 'NHANNH_CLASS', 'CLASS_ID', 1, 'NUMBER', 30, 'N', 'N',15,0);

EXECUTE ad_dd.register_column('INV', 'NHANNH_CLASS', 'CLASS_NAME', 2, 'VARCHAR2', 250, 'N', 'N',NULL,NULL);

. . .

COMMIT;

Page 161: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

2. Đăng ký Table & Column với Oracle Application (tt)

Đường dẫn: (Resp) Application Developer Application Database Table

Page 162: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

2. Đăng ký Table & Column với Oracle Application (tt)

Xóa đăng ký Table với Oracle Application Object Library sử dụng hàm Table Registration API.

EXECUTE ad_dd.delete_table(<Application_short_name>, <Table_name>);

Xóa đăng ký Clolumn với Oracle Application Object Library sử dụng hàm Column Registration API.

EXECUTE ad_dd.delete_column(<Application_short_name>, <Table_name>, <Column_name>);

Page 163: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

2. Đăng ký Table & Column với Oracle Application (tt)

Ví dụ:

EXECUTE ad_dd.delete_column('INV', 'NHANNH_CLASS', 'CLASS_ID');

EXECUTE ad_dd.delete_column('INV', 'NHANNH_CLASS', 'CLASS_NAME');

. . .

EXECUTE ad_dd.delete_table('INV', 'NHANNH_CLASS);

COMMIT;

Page 164: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

3. Đăng ký Descriptive Flexfield với Application

Đường dẫn: (Resp) Application Developer Application Descriptive Register

Page 165: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

4. Tạo Descriptive Flexfield trên Form

Tạo Descriptive Flexfield Display Item

o Item Name: <DFF_name>

Item Type: Text Item

Subclass Information: TEXT_ITEM_DESC_FLEX

Database Item: No

Canvas: <Canvas_name>

Page 166: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

4. Tạo Descriptive Flexfield trên Form (tt)

Page 167: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

5. Trigger

<Form_name> WHEN-NEW-FORM-INSTANCE

fnd_descr_flex.define(block => <Block_name>,field => <DFF_name>,appl_short_name => <application_short_name>,desc_flex_name => <Descriptive Flexfield Name>);

<DFF_name> WHEN-NEW-ITEM-INSTANCE

FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');

<DFF_name> WHEN-VALIDATE-ITEM

FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

Page 168: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

6. Cài đặt Descriptive Flexfield trên Application

Đường dẫn: (Resp) System Administrator Application Descriptive Segment

Page 169: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

6. Cài đặt Descriptive Flexfield trên Application (tt)

Đường dẫn: (Resp) System Administrator Application Descriptive Segment

Page 170: Oracle Form Builder VN

Chương 7: Tạo Form vớiDescriptive Flexfield

7. Nhập liệu Descriptive Flexfield

Page 171: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

1. Tạo Find Block

Tạo Find Block manual với các thuộc tính

o Block Name: <Block_name>

Subclass Information: BLOCK

Previous Navigation Data Block: <Main_data_block>

Database Data Block: No

Query Allowed: No

Query Data Source Type: None

DML Data Targer Type: None

Page 172: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

2. Tạo Item tìm kiếm trên Find Block

Tạo Item tìm kiếm với các thuộc tính

o Name: <Item_name>

Item Type: Text Item

Subclass Information: TEXT_ITEM

List of Values: <List_of_value_name>

Canvas: <Find_Canvas>

Page 173: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

2. Tạo Item tìm kiếm trên Find Block (tt)

Tạo Button Clear (Nếu cần)

o Name: CLEAR

Item Type: Push Button

Subclass Information: BUTTON

Label: &Clear

Default Button: No

Canvas: <Find_Canvas>

Page 174: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

2. Tạo Item tìm kiếm trên Find Block (tt)

Tạo Button New (Nếu cần)

o Name: NEW

Item Type: Push Button

Subclass Information: BUTTON

Label: &New

Default Button: No

Canvas: <Find_Canvas>

Page 175: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

2. Tạo Item tìm kiếm trên Find Block (tt)

Tạo Button Find

o Name: FIND

Item Type: Push Button

Subclass Information: BUTTON

Label: &Find

Default Button: Yes

Canvas: <Find_Canvas>

Page 176: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

3. Trigger

<Main_Block> QUERY_FIND

APP_FIND.QUERY_FIND(‘<Block_window>’, ‘<Find_window>’, ‘<Find_Block>’);

<Main_Block> PRE_QUERY

IF (:parameter.G_query_find = 'TRUE') THENCOPY(:<Block_find>.<Item_name>,

‘<Main_Block_name>.<Item_name>’);[ . . . ]:parameter.G_query_find := 'FALSE';

END IF;

Page 177: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

3. Trigger (tt)

<Find_Block> KEY_NXTBLK

:parameter.G_query_find := 'TRUE';app_find.find(‘<Main_Block_name>’);:parameter.G_query_find := 'FALSE';

<Find_Block>.CLEAR WHEN-BUTTON-PRESSED

app_find.clear;

<Find_Block>.NEW WHEN-BUTTON-PRESSED

app_find.new(‘<Main_Block_name>’);

Page 178: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

3. Trigger (tt)

<Find_Block>.FIND WHEN-BUTTON-PRESSED

:parameter.G_query_find := 'TRUE';app_find.find(‘<Main_Block_name>’);:parameter.G_query_find := 'FALSE';

<Form> WHEN-NEW-FORM-INSTANCE

EXECUTE_TRIGGER('QUERY_FIND');

Page 179: Oracle Form Builder VN

Chương 8: Tạo Form vớimàn hình tìm kiếm

4. Chạy Form

Page 180: Oracle Form Builder VN

Trân trọng cảm ơn!Trân trọng cảm ơn!