【正文】
sql中查看保存結(jié)果: 下載文件的實例: 創(chuàng)建一個interactive report名為downlaod file,配置其Sourceo: SELECT , , , , () file_size, () download FROM jjl_file jf 創(chuàng)建OK后雙擊report:download file,配置列download為blob如圖: 運行效果如圖: 下面做一個頁面Report數(shù)據(jù)的下載鏈接 1) Classic Report 的下載鏈接配置 在Report的Attribute里做如下配置 運行效果如圖: 2) Interactiive Report的下載鏈接配置 URL: /f?p=::: app_id is the application id page_id is the page id session_id is the session id : CSV or HTMLD 創(chuàng)建Interactive report region下的一個Display Only項,Settings配置如下: 運行效果如圖: . Wait for . 使用CSS與JS 在做相對比較復(fù)雜或比較個性化的APEX頁面時還是需要用到一些JavaScript腳本和CSS。如P_FILE_ID對應(yīng)JJL_FILE中的ID。 創(chuàng)建相應(yīng)的region item,type:hidden分別為p_file_id,p_file_name,p_file_charset,p_file_memetype 創(chuàng)建processes:fetch row from jjl_file。 配置頁面Tabular Form數(shù)據(jù)源 創(chuàng)建一個RegionButton:Apply Change 為Apply Change創(chuàng)建Process: 運行效果如圖: 當(dāng)class_name不存在于jjl_class表中時 當(dāng)輸入的class name存在時,運行的效果與結(jié)果如圖: 把BBB更改為DDD 點擊Apply Change后 . 文件上傳下載 真是麻雀雖小,五臟俱全, 文件上至數(shù)據(jù)庫 Create table create table JJL_FILE ( id NUMBER, file_nmae VARCHAR2(50), file_memetype VARCHAR2(50), file_blob BLOB, file_ments VARCHAR2(200), file_charset VARCHAR2(20), last_update_date DATE) 創(chuàng)建Page:updown load file,在該page中創(chuàng)建html區(qū)域:upload file 由于數(shù)據(jù)文件是上傳至數(shù)據(jù)庫表,需要在頁面上傳文件之前,可以在加載完head后去表里 Fetch Row from jjl_file,然后在頁面上創(chuàng)建相應(yīng)的hidden項與表jjl_file中相字段相應(yīng)。 下面實例開發(fā)一個Form,當(dāng)更改用戶的class_name與login_name時,更新用戶的login_name,然后在另一張表校驗class_name是否存在,若不存在報錯,若存在則把當(dāng)前勾選的記錄插入另一張表jjl_test3 數(shù)據(jù)庫中先創(chuàng)建APEX頁面的Tabular Form的View,同時創(chuàng)建一個APEX頁面并創(chuàng)建Tabular Form create table jjl_class(class_id number,class_name varchar2(50))。本節(jié)主要介紹如何在一個Tabular Form中不鏈接實現(xiàn)多行數(shù)據(jù)的增刪改和客戶化邏輯。 Condition Type:Dynamic Actoin Not conditional When Event:Page Load When Condition No Condition True Actions:Set Value Set Value/Settings/Set Type:SQL Statement Set Value/Settings/SQL Statement:select sysdate from dual。 When Event:Change When Selection Type:Item(s) When Item(s):P2_X_TEXT When Condition:is not null True Actions:Hide Region(new search2) False Actions:Show Region(new search2)。 P2_X_TEXT鼠標(biāo)右鍵創(chuàng)建相應(yīng)的Dynamic Actions: Name:Dynamic_action1。end。 end if。 在Page2中創(chuàng)建六個html region,對應(yīng)的Parent Regionn選擇Page Template Body(1) Search1,search2,search3 屬于同一個TABLE,屬性Column依次為1,2,2. 屬性Start New Grid依次為Yes,No,No. 屬性Start New Row依次為Yes,No,Yes. New Search1,new search2,new search3 屬于同一個TABLE,屬性Column依次為1,2,3. 屬性Start New Grid依次為Yes,No,No. 屬性Start New Row依次為Yes,No,No. 在search1中創(chuàng)建TextField:P1_X_TEXT,P2_X_TEXT,search2中創(chuàng)建Button :SEARCH2_BTN,search3中創(chuàng)建DatePick:DATA,new search2中創(chuàng)建子區(qū)域:newsearch_subpage1,new_search3_subpage2,new_search3_subpage3, 屬于同一個TABLE,屬性Column依次為1,2,1. 屬性Start New Grid依次為Yes,No,No. 屬性Start New Row依次為Yes,No,Yes P1_X_TEXT鼠標(biāo)右鍵創(chuàng)建相應(yīng)的Validation: Name:X_TEXT1 IS NOT NULL When Button Pressed:SEARCH2_BTN. Condition Type:Exists(SQL query returns at least one row) Condition Expression 1:select 1 from jjl_test jt where =’123’。 當(dāng)頁面加載完,DatePick:Data init值賦值為當(dāng)前日期 當(dāng)X_text2值不為空時,Region:new search2隱藏,否則顯示 最終效果圖: Step By Step操作 創(chuàng)建一個頁面命名為Page2 Pl/sql apps登錄創(chuàng)建table:jjl_test(user_id varchar2(50),resp_id varchar2(50),resp_appl_id varchar2(50),login_name varchar2(50),login_count number,login_date date)。 l WHEN Condition:事件發(fā)生后,執(zhí)行相應(yīng)的動作的判斷條件。 l Format Mask:控件值的格式掩碼 事件: 事件定義也是有屬性可配置的: l Condition Type:執(zhí)行事件的前提條件 l True Actions:事件發(fā)生后,對應(yīng)控件的校驗條件為真時執(zhí)行的動作。