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

請問如何在一張紙上印出「三聯單」?

尚未結案
zenjohn
一般會員


發表:5
回覆:16
積分:4
註冊:2002-12-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-14 15:32:33 IP:211.75.xxx.xxx 未訂閱
恭禧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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-14 15:38:43 IP:211.74.xxx.xxx 未訂閱
放兩個QRChildBand1 QRChildBand1.ParentBand:=QRBand5;//QRBand5<-DetailBand QRChildBand2.ParentBand:=QRChildBand1; 上面擺QrDBText跟DetailBand的完全一樣 TRY TRY SEE 發表人 - chih 於 2003/04/14 15:50:25
hahalin
版主


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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-14 17:50:41 IP:210.243.xxx.xxx 未訂閱
  被點名了... > 有個做法參考看看,也歡迎大家提供意見.. 報表不連到後端資料庫,透過一個報表資料庫, 將篩選過後的資料塞入這個報表資料庫, 這麼一來,你的客戶留存,會計留存,存檔備查這三串字可以使用 一個 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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-04-15 08:49:52 IP:211.75.xxx.xxx 未訂閱
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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-15 09:00:12 IP:211.75.xxx.xxx 未訂閱
Dear hahalin版主, 謝謝您的回覆,您的意思是不是說,我另外再將資料萃取出來, 每筆各複製成三筆,再存入一資料庫做為報表的資料來源, 接著我只要設計出第一聯,剩下的用程式代換掉 第X聯幾個字,用 QuickRep1->Print, QuickRep1->Print, QuickRep1->Print, 這樣印三次,請問我這樣說對不對呢?
hahalin
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-15 17:45:19 IP:210.243.xxx.xxx 未訂閱
  對的...沒錯...報表資料庫的做法應用在這種情況蠻方便的...      不過...三聯單已經碰過的情況是套表,已經有印好的      三張紙疊在一起的報表紙,上面已經印好表格跟文字了,     只需要填入資料而已。雖然,那也很費力的,而且報表紙疊這麼     厚更容易讓列印的定位跑掉。 可不可以直接稱呼 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

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-15 17:55:28 IP:61.216.xxx.xxx 未訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-15 23:57:21 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-16 00:00:13 IP:203.203.xxx.xxx 未訂閱
引言: 在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

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-21 09:02:29 IP:211.75.xxx.xxx 未訂閱
謝謝各位先進的指導,這幾天一直在嘗試大家教我的方式, 所以一直擔擱到現在才回,很抱歉... 我二個方式都試了, > 現在使用 >)的方式,做了暫存檔 來配合 >
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-04-21 11:51:41 IP:211.74.xxx.xxx 未訂閱
hi..zenjohn..可以參考一下這一篇..我上面所寫的做法.. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=29090
系統時間:2024-05-03 19:13:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!