請問如何在一張紙上印出「三聯單」? |
尚未結案
|
zenjohn
一般會員 發表:5 回覆:16 積分:4 註冊:2002-12-10 發送簡訊給我 |
恭禧hahalin榮任本版的版主,相信本版的素質會在版主與眾位先進的參與下,更能造福大家。 小弟有一個關於QuickReport列印的問題敘述如下,想請各位先進能為我解答,謝謝。 1) 我想在80*25的連續報表紙上,印出Master/Detail的格式,目前已經做出,可是麻煩的是,這些資料必須另外再同一張上再印出二份(第二聯、第三聯),格式描述如下: 客戶名稱:張三 第一聯:客戶留存
購買項目 單價 數量 ======== ==== ==== 牛奶 10 1 餅乾 5 1 ==================== 總計:--------------------------------------------------- 裁剪線 客戶名稱:張三 第二聯:會計留存 購買項目 單價 數量 ======== ==== ==== 牛奶 10 1 餅乾 5 1 ==================== 總計:--------------------------------------------------- 裁剪線 客戶名稱:張三 第三聯:存檔備查 購買項目 單價 數量 ======== ==== ==== 牛奶 10 1 餅乾 5 1 ==================== 總計:可以看出以上的資料全都是一模一樣的,只是 第一聯、第二聯、第三聯幾個字不同而已, 我使用QuickReport,其中第一聯我已順利產生, 可是再加上一個header或detail或subDetail後, 相同的detail會靠在一起,並無法產生預期的成果, 請問各位先進,QuickReport可不可以在同一張紙上 印出類似三聯單的格式,謝謝您的熱心。 |
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
被點名了... > 有個做法參考看看,也歡迎大家提供意見.. 報表不連到後端資料庫,透過一個報表資料庫, 將篩選過後的資料塞入這個報表資料庫, 這麼一來,你的客戶留存,會計留存,存檔備查這三串字可以使用 一個 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8812841&CC=197099">
Fear is the path to the dark side.
Fear leads to anger.Anger leads to hate.Hate leads to suffering....
|
zenjohn
一般會員 發表:5 回覆:16 積分:4 註冊:2002-12-10 發送簡訊給我 |
Dear Mr. chih, 我試過您所講的方法,每一種多加了二個child,並將其ParentBand設到對應的Band,可是這樣做的話還是
會把相同type的靠在一起,並沒有印成三聯單,我設的方法及產生的結果如下,請問是不是我設錯了嗎?謝謝您。 QRBand1->BandType = rbDetail; // Master的資料
QRBand2->BandType = rbGroupHeader; // Detail的欄位抬頭
QRBand3->BandType = rbSubDetail; // Detail的資料
QRChildBand1->ParentBand = QRBand1;
QRChildBand2->ParentBand = QRChildBand1;
QRChildBand3->ParentBand = QRBand2;
QRChildBand4->ParentBand = QRChildBand3;
QRChildBand5->ParentBand = QRBand3;
QRChildBand6->ParentBand = QRChildBand5;
客戶名稱:張三 第一聯:客戶留存 客戶名稱:張三 第一聯:客戶留存 客戶名稱:張三 第一聯:客戶留存 購買項目 單價 數量 購買項目 單價 數量 購買項目 單價 數量 ======== ==== ==== ======== ==== ==== ======== ==== ==== 牛奶 10 1 牛奶 10 1 牛奶 10 1 餅乾 5 1 餅乾 5 1 餅乾 5 1 ==================== ==================== ==================== 總計: 總計: 總計: |
zenjohn
一般會員 發表:5 回覆:16 積分:4 註冊:2002-12-10 發送簡訊給我 |
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
對的...沒錯...報表資料庫的做法應用在這種情況蠻方便的... 不過...三聯單已經碰過的情況是套表,已經有印好的 三張紙疊在一起的報表紙,上面已經印好表格跟文字了,
只需要填入資料而已。雖然,那也很費力的,而且報表紙疊這麼 厚更容易讓列印的定位跑掉。 可不可以直接稱呼 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=8812841&CC=197099">
Fear is the path to the dark side.
Fear leads to anger.Anger leads to hate.Hate leads to suffering....
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
1.QRBand3,QRChildBand3,,QRChildBand4,,QRChildBand5,,QRChildBand6都拿掉.
2.QRChildBand只要在放兩各就可以了另外
在DetailBand上面上放一各QrLabel.caption:='第一聯:客戶留存';
QRChildBand1上面上放一各QrLabel.caption:='第二聯:會計留存';
QRChildBand2上面上放一各QrLabel.caption:='第三聯:存檔備查';
3.這裡有一篇M_D報表,可以參考一下基本寫法..因為我有看到你用SubDetail..
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26567
TRY TRY SEE
發表人 - chih 於 2003/04/15 18:01:54
|
cmj
高階會員 發表:15 回覆:242 積分:226 註冊:2002-06-12 發送簡訊給我 |
1.DetailBand之DataSet,每筆各複製成三筆.
2.用一QRDbLabel元件來印出,第一聯:客戶留存,第二聯:會計留存,第三聯:存檔備查
3.
在HeaderBeforePrint(Sender: TQRCustomBand;var PrintBand: Boolean);
begin
Case Report.PageNumber mod 3 of
1: QRDbLabel.Caption:='第一聯:客戶留存';
2: QRDbLabel.Caption:='第二聯:會計留存';
0: QRDbLabel.Caption:='第三聯:存檔備查';
end;
end;
|
hahalin
版主 發表:295 回覆:1698 積分:823 註冊:2002-04-14 發送簡訊給我 |
引言: 在HeaderBeforePrint(Sender: TQRCustomBand;var PrintBand: Boolean); begin Case Report.PageNumber mod 3 of 1: QRDbLabel.Caption:='第一聯:客戶留存'; 2: QRDbLabel.Caption:='第二聯:會計留存'; 0: QRDbLabel.Caption:='第三聯:存檔備查'; end; end;這一招漂亮...大家給cmj鼓掌鼓掌... Fear is the path to the dark side. Fear leads to anger.Anger leads to hate.Hate leads to suffering.... |
zenjohn
一般會員 發表:5 回覆:16 積分:4 註冊:2002-12-10 發送簡訊給我 |
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |