線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1660
推到 Plurk!
推到 Facebook!

Rave--如何用欄位 LookUp 後的值來運算?

尚未結案
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-20 23:34:13 IP:210.201.xxx.xxx 未訂閱
各位大大, 搞好久都搞不出來,麻煩大家了,環境是 Rave Report。 假如有個[訂單明細表]的欄位如下 自動編號 商品編號 訂購數量 單位價格 在印報表時想在單位價格的右邊印上項目金額, [訂購數量]* [單位價格] 這樣不行問題,在單位價格右邊多放個 DataText5,把它的資料來源指向使用者自訂變數 MyParam。再放個 CalcOp 來計算 訂購數量 * 單位價格,CalcOp1 的 DestParam 設為 MyParam,這樣 DataText5 就能顯示出兩者的相乘的結果,這是一般正確做法。 但想想看,訂單明細表怎麼可能存放單位價格呢?如果商品的單位價格常常變動的話,那光是在明細表中更新單位價格的動作,就夠輸入人員累了。 合理的做法是再設立一個[商品]資料表,其實一般都這樣做,連Access的範例資料庫都如此。報表中放單位價格的 DataText5 改用 Lookup的方法,關連為 訂單明細.商品編號 => 商品.商品編號,DisplayedField 為[單位價格]。 報表變成這樣 (LookUp) (想在這裡算出金額) 自動編號 商品編號 訂購數量 單位價格 項目金額 (DataText5) (DataText6) 我搞了很久都搞不出來,原因有幾個: 1. CalcOp1不接受 DataText5 做為運算來源 2. CalcOp1無法自己以 LookUp 方法找出商品的單位價格 3. DataText5無法把自己的內容值送到任何使用者自訂參數中, 否則,CalcOp1 就可以以該參數做為運算來源。 4. DataText5 的 BeforePrint 事件中,不能把資料傳給使用者自訂 參數,不然,CalcOp1就有運算來源了。 無論如何,CalcOp1 就是拿不到商品資料表的單位價格來運算,而 Rave 也只 有 TCalcOp 元件能做這樣的事情。是我剛開始學報表,不了解 Rave,還是 Rave 的先天缺陷 ? 但是,但是,如果改用 Quick Report 就很好處理了,因為在 Quick Report 中,資料感知元件的事件函式裡可以把資料傳給使用者自定的參數,這樣就差很多了,以上的問題在 Quick Report 中根本就不是問題。 我覺得 Rave 很難學,不過,它有自己獨特的一套,比方 DataMirrorSection <---海市蜃樓幻影對映區,彈性很大。 Page.GotoMode <---可以印單頁時偏右,印雙頁時偏左。 FontMaster <---好用不用講。 Rave 和 Quick 似乎各有優劣,不過都有共同的優點---Delphi 內附不用錢 所以兩者我都學,希望各位看看是不是有些 Rave 的特性我還不知道,才會走入如此的困境。 謝謝
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-24 12:27:37 IP:210.201.xxx.xxx 未訂閱
我已經找出解決的方法,直接的方法用 Rave 沒辦法, 但間接的方法倒是有,行得通。 先結案。
webber
初階會員


發表:54
回覆:76
積分:26
註冊:2004-04-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-07-20 00:33:25 IP:61.31.xxx.xxx 未訂閱

有可能是順序問題

CalcOp的順序要在dataedit之前

dataedit才能顯示出calcop計算後的結果

系統時間:2024-04-28 6:44:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!