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

QRCompositeReport交叉合併再次詢問

缺席
lasterliu
一般會員


發表:38
回覆:57
積分:19
註冊:2007-11-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-06-23 15:13:17 IP:60.251.xxx.xxx 訂閱
請問各位大大,這問題之前已有 jasonma168大大提出,但都沒人回覆,所以小弟再詢問一次。
小弟使用ADOQuery進行查詢,資料須以兩個頁面來呈現,因此小弟使用了兩個QuickReport與QRCompositeReport元件,
但現在碰到一個問題,即其顯示方式不是我想要的,例子如下:

第一筆資料 A
第二筆資料 B

英文數字表示第幾筆資料,數字表示其顯示在第幾個QuickReport
想要顯示方式:A1 A2 B1 B2 以此類推下來(因為一筆資料有兩個頁面)
目前顯示方式:A1 B1 A2 B2 她不會進行分類(意即將QuickReport2直接接在QuickReport1的後面)。

所以想詢問大大這問題有解決的方法嗎?
編輯記錄
lasterliu 重新編輯於 2009-06-23 16:11:48, 註解 無‧
lasterliu 重新編輯於 2009-06-24 08:30:28, 註解 無‧
lasterliu
一般會員


發表:38
回覆:57
積分:19
註冊:2007-11-05

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-06-26 08:16:26 IP:60.251.xxx.xxx 訂閱
無人回覆此問題,小弟把自己最後解決的方法PO上來,看大家是否能有其他更好的答案。

1、首先,將預覽功能取消(意即按下列印時,會直接列印,沒有預覽功能了)。
2、利用兩個ADOQuery(命名為1與2),2首先進行查詢某個範圍類的所有資料,1也是進行同樣查詢,但其範圍只限一個(意即2將KEY直傳給1進行比對),查到即利用QRCompositeReport1進行列印,2再跳到下一筆資料,如此反覆,直到2中的資料列印完畢為止。

程式舉例如下:
ADOQuery2.Close;
ADOQuery2.SQL.Text:='select * from tablename where key between :P1 and :P2';
ADOQuery2.Parameters.ParamValues['P1']:=X;
ADOQuery2.Parameters.ParamValues['P2']:=Y;
ADOQuery2.Open;

while NOT ADOQuery2.Eof do
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text:='select * from tablename where key = :A1';
ADOQuery1.Parameters.ParamValues['A1']:=ADOQuery2['KeyFieldName'];
ADOQuery1.Open;

QRCompositeReport1.Reports.Clear;
QRCompositeReport1.Prepare;
QRCompositeReport1.Print;

ADOQuery2.Next;
end;

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