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

FR2 二聯單

尚未結案
stracy
一般會員


發表:3
回覆:5
積分:1
註冊:2006-08-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-11-17 12:11:40 IP:61.222.xxx.xxx 未訂閱
請問大大們~~
我在FR2 做二聯單~~如:
xxxx公司 -----page head
貨名 單價 ------master head
a 1000 ------master data
b 3000
c 4000
: (這裡每六筆換一頁)
:
第一聯:客戶留 ------master foot
------------------------
xxxx公司 -----page head
貨名 單價 -----master head
a 1000 -----master data
b 3000
c 4000
:
:(這裡每六筆換一頁)--------master foot
第二聯:店內留
ps:爬了一下文~有看別的大大在QR是用迴圈。我在FR2也試了一下~~不論是放在 pagehead還是在maindata都不行~~
小女子愚笨真的不知要把語法放那~~~還是我的報表設計的格式不對~~~
請大大們指點~~~~~~~~ (快被fr2搞死~~的新手 )
chinyu
高階會員


發表:12
回覆:157
積分:153
註冊:2002-06-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-11-17 15:00:43 IP:220.140.xxx.xxx 訂閱
SORRY, 看不出你要問什麼問題呀???
stracy
一般會員


發表:3
回覆:5
積分:1
註冊:2006-08-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-11-17 15:49:30 IP:61.222.xxx.xxx 未訂閱
客戶要的二聯單的格式如下:
公司 ----page head
A 10 -----master data
C 30
:
-------------------------------( Xxxx A-----------------------------
貨名 單價
B 20 -------master data 2
:
第二聯: 公司存根 -------master foot2
所有的資料都一樣,只是差在第一聯跟第二聯的字樣。
目前我做得出第一聯~~也可以換頁~~。但如果在master foot 後再加page head 2、master data2、master foot2,就會變成把第一聯的資料整個印完後在印第二聯,無法產生客戶所要格式。Fr2可以在同一張a4上印出二聯單的格式~~~~~
chinyu
高階會員


發表:12
回覆:157
積分:153
註冊:2002-06-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-11-17 20:45:25 IP:220.140.xxx.xxx 訂閱
在A4紙張上印兩張A5的嗎? 這是沒辦法的,我知道 Fastreport 4.0可以。
===================引 用 文 章===================
Fr2可以在同一張a4上印出二聯單的格式~~~~~
stracy
一般會員


發表:3
回覆:5
積分:1
註冊:2006-08-30

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-11-21 10:39:57 IP:61.222.xxx.xxx 未訂閱

如何用 Fr2 讓同一張a4上印出二聯單的格式~~~~~
stracy
一般會員


發表:3
回覆:5
積分:1
註冊:2006-08-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2006-11-24 16:19:57 IP:61.222.xxx.xxx 未訂閱
各位大大~~sos:
我還是只能印出一聯單,不能印出二聯單!!
爬了一些文,但還是無法順利印出第二聯單,
是該用迴圈跑出第二聯,還是有類似copy的指令,可以重複印出masterdata的資料~~~
(T.T)~~sos
mflyy
初階會員


發表:3
回覆:44
積分:44
註冊:2002-08-13

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-10-23 14:59:01 IP:59.120.xxx.xxx 訂閱
最近我也碰到這個問題
公司不想再用點陣印表機,所以要用雷射印表機
在一張A4紙出二聯單,我試著用showband 來處理

在PageFooter1 的 (OnBeforePrint)事件寫入
if nCopy < 2 then begin
nCount:=0;
DetailFirst();
ShowBand(MasterHeader1);
ShowBand(MasterData1);
ShowBand(DetailData1);
ShowBand(MasterFooter1);
end;
p.s. DetailFirst 是呼叫自定函數將DetailData 的 ADOQuery Go First;
第一個段落正常,可是第二段
結果資料有出來,只是出現了一個問題 DetailData1 只會出現一筆資料,無法印出多筆記錄
可能是沒有由FastReport控制 Eof 的迴圈,,不知各位有無更好的解決方法
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2008-10-28 11:03:07 IP:61.67.xxx.xxx 未訂閱
其實大家都太鑽牛角尖了, 你的目的是要解決這個問題, 而不是去探討有什麼方法對吧!

FastReport 做不出一式兩聯的功能, 換個角度來看, 你只是 聯數的資料不同嘛
1.只寫一聯, 用點陣 複寫兩張方式, footer 寫 白聯 xxxxx 黃聯 ....
2.如果是以無法複寫打印的印表機, 把你要列印的資料轉到另一個temp資料庫, 但寫入兩次
再用 FR 去讀這兩組, 不就達成一張兩聯了嗎?
mflyy
初階會員


發表:3
回覆:44
積分:44
註冊:2002-08-13

發送簡訊給我
#9 引用回覆 回覆 發表時間:2008-10-28 11:32:18 IP:59.120.xxx.xxx 訂閱
P.D. 版主講的沒錯其實解決的方法很多..只差在大家都在看有什麼最偷懶的方法

因為我要修改的表單很多..我最後還是用 SHOWBAND 來處理..在PAGEFOOT -> ONBEFOREPRINT 放入

if nCopy < 2 then begin
ShowBand(MasterHeader1);
DetailFirst();
for i:=1 to LastCount do begin
ShowBand(DetailData1);
DetailNext();
end;
ShowBand(MasterFooter1);
end;

ncopy 是自定變數 在MasterHead-> onbeforeprint 有一行 ncopy :=ncopy 1;
LastCount 也是自定變數 在MasterFooter -> onbeforeprint 取detail 到底有幾筆記錄


DetailFirst 及 DetailNext 是自定函數 寫在 UserFuntion
procedure frReport1UserFunction(const Name: String; p1, p2,
p3: Variant; var Val: Variant);
begin
if AnsiCompareText('DetailFirst', Name) = 0 then begin
P2.First;
exit;
end;
if AnsiCompareText('DetailNext', Name) = 0 then begin
P2.Next;
exit;
end;
end;

其餘原報表格式就沒有去動它..目前我是用這種方法來處理..大家參考看看


===================引 用 P.D. 文 章===================
其實大家都太鑽牛角尖了, 你的目的是要解決這個問題, 而不是去探討有什麼方法對吧!

FastReport 做不出一式兩聯的功能, 換個角度來看, 你只是 聯數的資料不同嘛
1.只寫一聯, 用點陣 複寫兩張方式, footer 寫 白聯 xxxxx 黃聯 ....
2.如果是以無法複寫打印的印表機, 把你要列印的資料轉到另一個temp資料庫, 但寫入兩次
再用 FR 去讀這兩組, 不就達成一張兩聯了嗎?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2008-12-09 22:16:19 IP:61.67.xxx.xxx 未訂閱
其實你的問題很類似我之前的回覆
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=94948

雖然有一點點的差異, 但換個方向看一下, 也不難達成, 只要你確定第一聯與第二聯都是6筆
那就把第一聯的6筆存入一個temp db, 然後 master foot 的資料也當成Detail data 變成第七筆存入
再來存入第二聯的6筆, 第二聯的 master foot 如法泡製,
拿掉 master foot band, 全部用 detail data band 來做即可

ps:我回完才發現我上面已經回過了, 真是老了!
編輯記錄
P.D. 重新編輯於 2008-12-09 22:18:53, 註解 無‧
Jeffrey
初階會員


發表:10
回覆:58
積分:38
註冊:2002-04-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2009-01-02 00:49:33 IP:210.64.xxx.xxx 訂閱
有個方法可以試試!
在DataSet上讀入二次資料,並加入一個聯數的欄位,然在在報表上加入Group band即可
例:
Select 1 as pg, *
From xxx
union
Select 2 as pg, *
From xxx
order By pg
系統時間:2024-04-26 7:07:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!