FR2 二聯單 |
尚未結案
|
stracy
一般會員 發表:3 回覆:5 積分:1 註冊:2006-08-30 發送簡訊給我 |
請問大大們~~
我在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 發送簡訊給我 |
|
stracy
一般會員 發表:3 回覆:5 積分:1 註冊:2006-08-30 發送簡訊給我 |
客戶要的二聯單的格式如下:
公司 ----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 發送簡訊給我 |
|
stracy
一般會員 發表:3 回覆:5 積分:1 註冊:2006-08-30 發送簡訊給我 |
|
stracy
一般會員 發表:3 回覆:5 積分:1 註冊:2006-08-30 發送簡訊給我 |
|
mflyy
初階會員 發表:3 回覆:44 積分:44 註冊:2002-08-13 發送簡訊給我 |
最近我也碰到這個問題
公司不想再用點陣印表機,所以要用雷射印表機 在一張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 發送簡訊給我 |
|
mflyy
初階會員 發表:3 回覆:44 積分:44 註冊:2002-08-13 發送簡訊給我 |
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 發送簡訊給我 |
其實你的問題很類似我之前的回覆
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |