| Acknowledgments |
|
xv | |
| Introduction |
|
xvii | |
| 1 Introduction to Oracle Application Express |
|
1 | (26) |
|
A Native Web Tool for Developing Web Applications |
|
|
2 | (3) |
|
|
|
3 | (1) |
|
Client-Side Platform Independent |
|
|
4 | (1) |
|
Effortless Deployment to Clients |
|
|
5 | (1) |
|
|
|
5 | (2) |
|
Oracle Database Data-Centric Applications Tool |
|
|
7 | (1) |
|
|
|
7 | (1) |
|
Data-Centric Applications |
|
|
8 | (1) |
|
|
|
8 | (14) |
|
|
|
11 | (6) |
|
|
|
17 | (5) |
|
Installation, Configuration, and Upgrade |
|
|
22 | (3) |
|
|
|
22 | (2) |
|
|
|
24 | (1) |
|
|
|
25 | (2) |
| 2 Getting Ready |
|
27 | (24) |
|
Recommended Prerequisite Knowledge |
|
|
28 | (2) |
|
|
|
28 | (1) |
|
HTML/HTML5, CSS, and JavaScript |
|
|
29 | (1) |
|
|
|
29 | (1) |
|
|
|
29 | (1) |
|
|
|
30 | (9) |
|
|
|
31 | (8) |
|
Best Practice: Document Your Work |
|
|
39 | (1) |
|
The Book Demo Application: Contacts in the Cloud |
|
|
40 | (9) |
|
Application Business Logic and QA Scenarios |
|
|
41 | (2) |
|
Designing the Data Structures |
|
|
43 | (3) |
|
|
|
46 | (3) |
|
|
|
49 | (2) |
| 3 APEX IDE: Quick Tour and Basic Concepts |
|
51 | (30) |
|
Working with the APEX IDE |
|
|
52 | (11) |
|
|
|
54 | (1) |
|
Developer Navigation Tools |
|
|
55 | (6) |
|
Other Elements on the Workspace Home Page |
|
|
61 | (2) |
|
Major Modules of the APEX IDE |
|
|
63 | (17) |
|
|
|
63 | (10) |
|
|
|
73 | (4) |
|
|
|
77 | (2) |
|
|
|
79 | (1) |
|
Instance Administration Module |
|
|
79 | (1) |
|
|
|
80 | (1) |
| 4 APEX Applications: Concepts and Building Blocks |
|
81 | (62) |
|
|
|
82 | (1) |
|
|
|
82 | (5) |
|
|
|
86 | (1) |
|
|
|
87 | (8) |
|
|
|
87 | (3) |
|
|
|
90 | (1) |
|
Application-Level Features and Shared Components |
|
|
90 | (1) |
|
|
|
91 | (4) |
|
|
|
95 | (6) |
|
APEX Themes: Evolution and Revolution |
|
|
95 | (3) |
|
|
|
98 | (3) |
|
|
|
101 | (7) |
|
|
|
102 | (4) |
|
|
|
106 | (2) |
|
|
|
108 | (3) |
|
|
|
111 | (25) |
|
|
|
111 | (2) |
|
|
|
113 | (23) |
|
|
|
136 | (6) |
|
|
|
136 | (6) |
|
|
|
142 | (1) |
| 5 The Page Designer |
|
143 | (32) |
|
Installing the Sample Database Application |
|
|
144 | (1) |
|
Navigating the New Page Designer |
|
|
144 | (23) |
|
|
|
145 | (7) |
|
|
|
152 | (15) |
|
Laying Out Items on a Page |
|
|
167 | (3) |
|
|
|
167 | (3) |
|
|
|
170 | (3) |
|
|
|
173 | (2) |
| 6 APEX Wizards |
|
175 | (78) |
|
|
|
176 | (6) |
|
|
|
182 | (4) |
|
|
|
186 | (6) |
|
|
|
190 | (2) |
|
|
|
192 | (6) |
|
|
|
194 | (2) |
|
|
|
196 | (2) |
|
Creating a Contact Record |
|
|
198 | (3) |
|
Creating Interactive Reports |
|
|
201 | (19) |
|
|
|
202 | (1) |
|
|
|
203 | (14) |
|
Behind the Interactive Report Properties |
|
|
217 | (2) |
|
Behind the Interactive Report Columns |
|
|
219 | (1) |
|
|
|
220 | (22) |
|
Create an Interactive Grid |
|
|
220 | (6) |
|
The Interactive Grid Toolbar |
|
|
226 | (7) |
|
|
|
233 | (2) |
|
|
|
235 | (1) |
|
Other Features of Interactive Grids |
|
|
235 | (1) |
|
Editing Data with the Interactive Grid |
|
|
236 | (1) |
|
Interactive Grid Validations |
|
|
237 | (1) |
|
Advanced Interactive Grid Options |
|
|
238 | (2) |
|
Allowed Row Operations Column |
|
|
240 | (2) |
|
Master Detail Form and User Interface Defaults |
|
|
242 | (9) |
|
Creating a Master Detail Form |
|
|
243 | (5) |
|
User Interface Defaults for a Table |
|
|
248 | (3) |
|
|
|
251 | (2) |
| 7 Computations, Validations, Processes, and Branches |
|
253 | (32) |
|
|
|
254 | (8) |
|
|
|
254 | (1) |
|
|
|
255 | (1) |
|
|
|
256 | (6) |
|
|
|
262 | (9) |
|
|
|
262 | (3) |
|
|
|
265 | (1) |
|
Interactive Grid Validations |
|
|
266 | (5) |
|
|
|
271 | (6) |
|
|
|
271 | (2) |
|
|
|
273 | (4) |
|
|
|
277 | (6) |
|
|
|
277 | (1) |
|
|
|
278 | (1) |
|
|
|
279 | (4) |
|
|
|
283 | (2) |
| 8 Crafting a Powerful UI |
|
285 | (70) |
|
|
|
286 | (28) |
|
User Interface Attributes |
|
|
286 | (9) |
|
|
|
295 | (4) |
|
|
|
299 | (15) |
|
Using the Universal Theme in Your Application |
|
|
314 | (35) |
|
|
|
314 | (2) |
|
|
|
316 | (7) |
|
|
|
323 | (12) |
|
|
|
335 | (6) |
|
|
|
341 | (1) |
|
|
|
342 | (4) |
|
|
|
346 | (3) |
|
|
|
349 | (4) |
|
|
|
353 | (1) |
|
|
|
354 | (1) |
| 9 Dynamic Actions |
|
355 | (28) |
|
|
|
356 | (6) |
|
Benefits of Dynamic Actions |
|
|
356 | (1) |
|
|
|
356 | (1) |
|
|
|
357 | (3) |
|
|
|
360 | (1) |
|
Anatomy of a Dynamic Action |
|
|
361 | (1) |
|
Creating a Dynamic Action |
|
|
362 | (19) |
|
|
|
362 | (3) |
|
Dynamic Actions Affecting Multiple Items |
|
|
365 | (5) |
|
Dynamic Actions Using PL/SQL |
|
|
370 | (3) |
|
Advanced Dynamic Actions-Putting It All Together |
|
|
373 | (8) |
|
|
|
381 | (2) |
| 10 APEX Security |
|
383 | (50) |
|
Application Attack Points |
|
|
384 | (1) |
|
|
|
385 | (9) |
|
|
|
386 | (1) |
|
|
|
387 | (1) |
|
|
|
388 | (1) |
|
Workspace Isolation Section |
|
|
388 | (1) |
|
Region and Web Service Excluded Domains Section |
|
|
389 | (1) |
|
Authentication Control Section |
|
|
389 | (3) |
|
|
|
392 | (1) |
|
REST Administration Interface Section |
|
|
392 | (2) |
|
|
|
394 | (6) |
|
|
|
396 | (1) |
|
|
|
397 | (3) |
|
Application-Level Security |
|
|
400 | (7) |
|
Application-Level Authentication and Authorization Sections |
|
|
400 | (2) |
|
|
|
402 | (2) |
|
Session State Protection Section |
|
|
404 | (1) |
|
|
|
404 | (3) |
|
|
|
407 | (2) |
|
|
|
407 | (1) |
|
|
|
408 | (1) |
|
|
|
408 | (1) |
|
Region and Item-Level Security |
|
|
409 | (2) |
|
|
|
409 | (1) |
|
|
|
409 | (2) |
|
|
|
411 | (3) |
|
|
|
414 | (2) |
|
|
|
416 | (2) |
|
|
|
418 | (2) |
|
|
|
420 | (12) |
|
|
|
421 | (2) |
|
Session State Protection and Item Encryption |
|
|
423 | (3) |
|
|
|
426 | (1) |
|
Application Context and Views |
|
|
426 | (6) |
|
|
|
432 | (1) |
|
|
|
432 | (1) |
| 11 Packaging and Deployment |
|
433 | (24) |
|
|
|
434 | (9) |
|
|
|
434 | (9) |
|
|
|
443 | (4) |
|
Copy Your Application in the Same Workspace |
|
|
443 | (1) |
|
Move to a New Workspace that Uses the Same or a Different Schema |
|
|
444 | (3) |
|
Application Import/Export Strategies |
|
|
447 | (8) |
|
|
|
447 | (4) |
|
Importing an Application or Component |
|
|
451 | (4) |
|
|
|
455 | (2) |
| Index |
|
457 | |