Rave--如何用欄位 LookUp 後的值來運算? |
尚未結案
|
cancer
高階會員 發表:58 回覆:319 積分:190 註冊:2004-07-31 發送簡訊給我 |
各位大大, 搞好久都搞不出來,麻煩大家了,環境是 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 發送簡訊給我 |
|
webber
初階會員 發表:54 回覆:76 積分:26 註冊:2004-04-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |