2017-07-31 72 views
1

該計劃的基本目標是檢索記錄和處理的一些領域和頂點顯示的是靜態內容區域的文本框5頁面加載事件時Oracle APEX 5動態操作不起作用。我究竟做錯了什麼?

我的數據庫:LCD_MONItOR表

enter image description here

接口:

enter image description here

應該在頁面加載事件中執行的PLSQL代碼。

Declare 

    lcd_id LCD_Monitor.LCD__NO%TYPE; 
    tag  LCD_Monitor.ASSET_TAG%TYPE; 
    pp  LCD_Monitor.PURCHASE_PRICE%TYPE; 
    sal  LCD_Monitor.SALVAGE%TYPE; 
    ls  LCD_Monitor.LIFE_SPAN%TYPE; 
    accm LCD_Monitor.ACCUMULATED_DEP%TYPE; 
    netbook Number; 
    currDep Number; 
    Begin 
    select LCD__NO, ASSET_TAG, PURCHASE_PRICE,SALVAGE, LIFE_SPAN, 
    ACCUMULATED_DEP into lcd_id, tag, pp, sal, ls, accm from LCD_MONITOR 
    where LCD__No='40'; 

    :LCD_NO:=lcd_id; 
    :CURR_DEP:= (pp-sal)*(1/ls); 
    :TOT_DEP:= (pp-sal)*(1/ls)+accm; 
    :NBV:=pp-(pp-sal)*(1/ls)+accm; 

    End; 

PS:我已將這些值返回給屬性中「受影響的元素」部分中的文本框。

enter image description here

但加載頁面時,沒有值出現在文本框中。任何幫助,將不勝感激。

+0

不確定它的'LCD__No'或'LCD_No'。檢查是否有另外一個'_' – XING

+0

是的,它的LCD__No(雙下劃線) – Far

+0

你的動態行爲的類型是什麼?用戶是否需要將任何數據發送到服務器進行計算? – Dmitry

回答

0

我不確定我是否正確理解你到底在做什麼。如果您只需要填充數據項目,請創建一個before頁眉過程(在頁面設計器模式下,它位於Pre-rendering - >Before Header。在此處寫入代碼,應該足夠了)

如果您想在Dynamic行動(我不推薦這種方式),你需要創建一個動態操作與Event - Page Load,其中將包含與性能的真正的行動:Action - Execute PL/SQL CodePL/SQL Code - 你的代碼和Items to Return - LCD_NO,CURR_DEP,TOT_DEP,NBV
但要確保你的項目真的有這樣的名稱,因爲默認情況下,APEX會創建名稱爲P10_LCD_NO的項目,其中10(例如)是第e頁。

+0

不,實際上我打算從LCD的購買價格(表格記錄)計算折舊,然後將其顯示在頁面項目(文本框)上。是的,我已經完成了與動態操作相同的方式,但它沒有顯示任何值 – Far

0

而不是在文本框的項目直接分配的計算值,我賦予他們一個變量第一,然後分配變量的項目,即

之前

:CURR_DEP:= (pp-sal)*(1/ls); 
    :TOT_DEP:= (pp-sal)*(1/ls)+accm; 
    :NBV:=pp-(pp-sal)*(1/ls)+accm; 

更正

currDep:= (pp-sal)*(1/ls); 
    :CURR_DEP:= currDep; 
    tot:= (pp-sal)*(1/ls)+accm; 
    :TOT_DEP:=tot; 
    netbook:=pp-((pp-sal)*(1/ls)+accm); 
    :NBV:=netbook; 
相關問題