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

Crstal Report9之formula

尚未結案
yuchen
一般會員


發表:7
回覆:5
積分:2
註冊:2003-12-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-02-27 10:53:58 IP:202.145.xxx.xxx 未訂閱
我想用一個formula將一個table中的一些欄位(float)值相加 但有些欄位(float)可能是空值 當我使用formula fields時,如下 formula={table1.fd1} {table1.fd2} {table1.fd3} 若fd1,fd2,fd3有一為空值時,則formula為空 請問我該如何才能將欄位為空值轉換成0? Thanks!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-02-27 11:36:30 IP:210.65.xxx.xxx 未訂閱
Hi:    Sorry,Crystal Report 我沒有用過,所以不知是否可以直接在Crystal Report 中用以下語法 formula={table1.fd1.AsInteger}+{table1.fd2.AsInteger}+{table1.fd3.AsInteger} 或是 formula={isnull(table1.fd1,0)}+{isnull(table1.fd2)}+{isnull(table1.fd3,0)} 因此只好提供以下幾種方法供你參考:
1.Calculated Field OnCalcFields Event
Table.FieldByName('Formula').AsInteger := Table.FieldByName('Field1').AsInteger   Table.FieldByName('Field2').AsInteger    Table.FieldByName('Field2').AsInteger;    2.
Select 時即將該欄位做轉換
select  isnull(field1,0) as field1,
        isnull(field2,0) as field2,
        isnull(field2,0) as field2        
        .....
from    table
where   .....    3.
Select 時即將該欄位做轉換並計算該 Formula
select  isnull(field1,0) as field1,
        isnull(field2,0) as field2,
        isnull(field2,0) as field2        
        (isnull(field1,0)   isnull(field2,0)  isnull(field3,0)) as Formula
from    table
where   .....
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
hahalin
版主


發表:295
回覆:1698
積分:823
註冊:2002-04-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-02-27 12:41:20 IP:61.222.xxx.xxx 未訂閱
如果一定要用formula 可以建立一個formula if [tb1.fd1]='' formula=0; 用這個formula來作為報表欄位
babyfish4
一般會員


發表:2
回覆:40
積分:18
註冊:2003-08-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-01 11:12:53 IP:61.63.xxx.xxx 未訂閱
您好: 我想到的解決方式有二 1.如果您在一開始從資料庫拉欄位時是使用Command方式的話,那就可以直接用SQL語法轉換NULL值成你要的值(不同Database不同語法,請自行參考資料庫的Help) 2.另一個方式 formula=(if IsNull({table1.fd1}) then 0 else {table1.fd1}) +(if IsNull({table1.fd2}) then 0 else {table1.fd2}) +(if IsNull({table1.fd3}) then 0 else {table1.fd3})    試試看吧
引言: 我想用一個formula將一個table中的一些欄位(float)值相加 但有些欄位(float)可能是空值 當我使用formula fields時,如下 formula={table1.fd1} {table1.fd2} {table1.fd3} 若fd1,fd2,fd3有一為空值時,則formula為空 請問我該如何才能將欄位為空值轉換成0? Thanks!
發表人 - babyfish4 於 2004/03/01 11:21:41
yuchen
一般會員


發表:7
回覆:5
積分:2
註冊:2003-12-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-01 21:53:14 IP:218.164.xxx.xxx 未訂閱
3q!
系統時間:2024-05-18 12:40:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!