全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1424
推到 Plurk!
推到 Facebook!

如何在一個QuickRep中使用兩個dataset??

答題得分者是:Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-16 09:49:28 IP:203.70.xxx.xxx 未訂閱
若我想要在同一個報表中顯示多筆在同一TABLE中,不同條件的資料,因此我用兩個QUERY去下不同SQL,可是這樣卻無法使報表能同時使用兩個QUERY而沒用。之前我想過用OnNeedData的方法塞資料,可是卻越搞越複雜,因為其中還要用到sum的函數,所以我才直接用DBText的方法去抓,本來想先搜尋先前的文章,可是不知道關鍵字如何下,找不到相關資料,請各位大大指點迷津!謝謝!
Fishman
尊榮會員


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-16 10:06:18 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,    也許你可以使用一個 Query 其中用 Union 的方式來聯集兩個 DataSet 資料,至於Union 的用法請參考 http://delphi.ktop.com.tw/topic.php?topic_id=46127 搜尋的方法,請參考各位大大的心得 http://delphi.ktop.com.tw/topic.php?topic_id=45740 發表人 -
------
Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-16 17:00:29 IP:61.219.xxx.xxx 未訂閱
恩..謝謝漁夫大大的教導... 這個方法的確對我助益良多... 那可以在請教一個問題嗎? 就是如果我要使用QRExpr,是不是一定得把QUERY擺在那個FORM上,否則他抓不到期他已經USE的FORM內的QUERY,不曉得為什麼?謝謝!
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-17 08:45:54 IP:203.70.xxx.xxx 未訂閱
不好意思... 我用了漁夫大大的方法,可是因為一個 Query 雖然可以用 Union 的方式來聯集兩個 DataSet 資料,可是聯集出來的資料卻無法因不同條件給不同的DBTEXT,也就是說資料是有篩選出來,可是DBTEXT還是只能秀出同樣條件的資料.. 因為我的QRDETAIL上面的DBTEXT有兩種不同條件的部分,不曉得如何能作出這樣的效果???
Fishman
尊榮會員


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-17 08:52:51 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,    我試了一下,正如你所言,QRExpr 抓不到其他已 Uses Form 上的 DataSet,以下有篇討論,不過似乎還沒有結論    http://delphi.ktop.com.tw/topic.php?TOPIC_ID=46369 也許你可以先行使用 QRLabel 並在 OnPrint 事件,自己寫程式碼去控制它的 Value 來達到與 QRExpr 相同功能,只能說,山不轉路轉 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
Fishman
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-17 09:18:11 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,
引言: 不好意思... 我用了漁夫大大的方法,可是因為一個 Query 雖然可以用 Union 的方式來聯集兩個 DataSet 資料,可是聯集出來的資料卻無法因不同條件給不同的DBTEXT,也就是說資料是有篩選出來,可是DBTEXT還是只能秀出同樣條件的資料.. 因為我的QRDETAIL上面的DBTEXT有兩種不同條件的部分,不曉得如何能作出這樣的效果???
很抱歉,不太清楚你的需求,可否再解釋清楚一點? ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-17 09:38:52 IP:211.23.xxx.xxx 未訂閱
希望這樣圖示法能讓大大們了解... 如有疑問我可以在詳加說明... 謝謝!
Fishman
尊榮會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-17 10:27:07 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,    你的意思是說,該報表只有一筆資料?    不同院區間的關連是?    你的 DB 是?     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-17 11:06:40 IP:203.70.xxx.xxx 未訂閱
不好意思..我在解釋一下...
引言: Hi aj0724, 你的意思是說,該報表只有一筆資料? 是有多筆資料,上圖的意思是我用QRBand其中屬性BandType為rbDetail將DBText放在裡面,所以可以顯示多筆資料。 不同院區間的關連是? SELECT * FROM TABLE WHERE LOCA='1'(LOCA即為院區的欄位).. 假設台中為1,大里為2 你的 DB 是? ORACLE ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica">
Fishman
尊榮會員


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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-03-17 11:21:04 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,    這個 Case 中,假設你的院區資料是固定的,可以使用以下語法即可
SELECT  Q1.FIELD1,
        Q1.FIELD2,
        Q1.FIELD3,
        Q1.FIELD4,
        Q1.XXXXX,
        Q2.FIELD1,
        Q2.FIELD2,
        Q2.FIELD3,
        Q2.FIELD4,
        Q2.XXXXX        
FROM   (SELECT  FILED1,
                FIELD2,
                FIELD3,
                FIELD4,
                ....
        FROM    YOURTABLE
        WHERE   LOCA = 1
        AND     YOUT OTHER STATEMENT) Q1,
       (SELECT  FILED1,
                FIELD2,
                FIELD3,
                FIELD4,
                ....
        FROM    YOURTABLE
        WHERE   LOCA = 2
        AND     YOUT OTHER STATEMENT) Q2
WHERE   Q1.XXX = Q2.XXX --Q1 與 Q2 之關聯欄位,須注意 Outter Join 問題
若是院區資料不固定,則須
SELECT  FILED1,
        FIELD2,
        FIELD3,
        FIELD4,
        ....
FROM    YOURTABLE
WHERE   LOCA = 1
AND     YOUT OTHER STATEMENT
UNION ALL
SELECT  FILED1,
        FIELD2,
        FIELD3,
        FIELD4,
        ....
FROM    YOURTABLE
WHERE   LOCA = 2
AND     YOUT OTHER STATEMENT
再參考以下文章做法 http://delphi.ktop.com.tw/topic.php?topic_id=46268 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-03-18 09:05:40 IP:203.70.xxx.xxx 未訂閱
恩...謝謝漁夫大大的指導... 的確是我的要方法... 想不到有這麼多還沒用過的語法.... 看來真的學的越多...不懂的越多....
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-03-31 09:53:47 IP:61.219.xxx.xxx 未訂閱
不好意思...上次的問題已圓滿解決了...可是遇到的新問題與上次有關,所以繼續在此發問,希望不會造成困擾... 上次使用漁夫大大的方法,成功以sql聯集的方式解決同時使用兩個相同的table,但是當這兩個table隸屬於不同的DataBaseName時,卻就無法下聯集的語法了,因為table前面必須要加其隸屬的DataBaseName,在一個query中只能設定一個DataBaseName,所以想請問遇到這樣奇怪的需求時,該如何解決??? 謝謝!
Fishman
尊榮會員


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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-03-31 10:21:51 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,    如果該 DataBase 皆為 Oracle,使用 DBLink 再用 Union 指令即可,若為異質資料庫,到是可以考慮用 ClientDataSet 來做該動作     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-03-31 12:00:47 IP:61.59.xxx.xxx 未訂閱
引言: Hi aj0724, 如果該 DataBase 皆為 Oracle,使用 DBLink 再用 Union 指令即可,若為異質資料庫,到是可以考慮用 ClientDataSet 來做該動作 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ---------------------------------- < face="Verdana, Arial, Helvetica"> 請教使用DBLink的意思是.... 可否提示清楚一點...謝謝!
Fishman
尊榮會員


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

發送簡訊給我
#15 引用回覆 回覆 發表時間:2004-03-31 12:30:14 IP:210.65.xxx.xxx 未訂閱
Hi aj0724,    所謂 DBLink(DataBase Links) 即資料庫之關連,就如同 Client 端連結資料庫一樣    假設 DB1 與 DB2 皆為 Oracle,而於 DB1 上建立一個 DBLink,名稱為 DB2,如此一來即可對 DB1 下以下指令, select * from   TableName@DB2 意即,由 DB1 當為 DB2 之 Client,DB2 會將 TableName 上之資料回傳給 DB1,再由 DB1 回傳給前端,來達到兩個不同 DataBase 的關連    至於 BDLink 的設定,可使用 Oracle Enterprise Manager 中的 Schema Manager 進行設定     ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
aj0724
一般會員


發表:11
回覆:41
積分:10
註冊:2003-04-18

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