全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1521
推到 Plurk!
推到 Facebook!

出單機列印資料該如何設計對齊

答題得分者是:bestlong
jacike
一般會員


發表:17
回覆:22
積分:7
註冊:2003-11-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-08-04 16:08:10 IP:111.252.xxx.xxx 訂閱
想請教有設計過類似餐廳pos系統的大大
小弟問題是列印點餐明細單內的
餐品名稱 及數量 單價 的排列都很整齊
這是如何辦到的因為餐品字元有長有短
後面的位子也會跟著跑掉
列如
[餐品名稱] [數量] [單價]
紅茶 1 15
珍珠奶茶 10 300

不知道有經驗的大大作法有哪些呢?
是套表再丟出單機?
還是直接用EPSON指令丟出單機?

bestlong
站務副站長


發表:125
回覆:734
積分:506
註冊:2002-10-19

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-08-04 16:44:43 IP:210.242.xxx.xxx 訂閱
每個欄位都有固定的寬度就補上空白就可以了
例如品名為 Char 10 數量為 Char 5

sProdName := LeftStr( (sProdName StrSpace(10)), 10); //靠左對齊
sQty := RightStr( (StrSpace(5) IntToStr(iQty)), 5); //靠右對齊

其中 StrSpace() 是自己寫的工具函數
這樣您應該可以理解吧

比較麻煩的狀況是中文是雙位元會有切半個字造成亂碼的狀況
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
jacike
一般會員


發表:17
回覆:22
積分:7
註冊:2003-11-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2011-08-05 15:24:14 IP:111.252.xxx.xxx 訂閱
感謝大大指導~
小弟已有個方向~

===================引 用 bestlong 文 章===================
每個欄位都有固定的寬度就補上空白就可以了
例如品名為 Char 10 數量為 Char 5

sProdName := LeftStr( (sProdName StrSpace(10)), 10); //靠左對齊
sQty := RightStr( (StrSpace(5) IntToStr(iQty)), 5); //靠右對齊

其中 StrSpace() 是自己寫的工具函數
這樣您應該可以理解吧

比較麻煩的狀況是中文是雙位元會有切半個字造成亂碼的狀況
cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-08-16 08:54:08 IP:220.128.xxx.xxx 未訂閱
Hi 您好,請使用等寬字型,例如細明體。
系統時間:2017-10-24 19:33:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!