在石二鍋看到IISTUDIO的取單叫號系統,覺得還蠻不錯的,打算這次連假也使用Delphi 10.2 Tokyo來刻一個試試。
技術上主要是搭配WebAPI以及Delphi 10.2的FMX來達成:
1 設定店別、人數與桌型,號碼起訖對應(WEB介面)
2 Delphi 撰寫iOS/Android/Win版的畫面,透過WEBAPI取得上述資料
3 候位確認時,呼叫印單程式印單
4 WEBAPI回寫,方便使用者連線確認
行動開發.APP開發教學.PHP Laravel開發..net core C# 開發.架構師之路.Delphi開發.資料庫程式.進銷存.餐飲POS系統
在石二鍋看到IISTUDIO的取單叫號系統,覺得還蠻不錯的,打算這次連假也使用Delphi 10.2 Tokyo來刻一個試試。
技術上主要是搭配WebAPI以及Delphi 10.2的FMX來達成:
1 設定店別、人數與桌型,號碼起訖對應(WEB介面)
2 Delphi 撰寫iOS/Android/Win版的畫面,透過WEBAPI取得上述資料
3 候位確認時,呼叫印單程式印單
4 WEBAPI回寫,方便使用者連線確認
內部代號為「AzureDragon」(青龍)的餐飲POS系統,是一個以全新概念推出的餐飲業POS系統。不同於以往坊間的POS只能支援單一作業系統,AzureDragon同時支援Windows/Android/iOS/Web平台。而AzureDragon的目標是打造出全世界最優秀的POS系統,以模組化方式盡可能支援各種餐飲業態,更結合雲端技術以及無線傳輸等優點,讓POS系統更穩定、操作更便利。
Azure Dragon/White Tiger/Vermilion bird/Black Tortoise
許多朋友選擇自己創業做老闆時,最常見的創業就是餐飲業為主的方式。無論是自行創業或是加盟,都需要軟硬體設備及架構,當然也有許多人會評估使用餐飲POS系統。
餐飲POS系統依結帳流程不同主要分為先結帳及後結帳二種版本。先結帳版本常見於飲料店或一般早餐店;而後結帳版本主要於餐廳為主。而使用POS系統主要的原因除了提高點餐的正確性、便利性,也可以方便以電腦做管理以及瞭解營業狀況等分析。
目前POS系統價格平均一套在50,000元上下,一套系統大約包含1、POS主機一部 2、出單機 3、標籤機 4、發票機 5、錢櫃 6、餐飲系統軟體。而除了買斷外,亦有每月3000元月租方案的POS系統商。當然除了期初的硬體成本外,出單機、標籤機、發票機也會有耗材(紙張、碳粉)的成本。以及每年與系統廠商的維護合約。
在設計餐飲程式時,會遇到外接第二螢幕做為客戶顯示或展示廣告。在Delphi如何撰寫?
判斷系統螢幕數量
[pascal]
screen.MonitorCount
[/pascal]
將畫面移至第N螢幕(第一螢幕為0、第二螢幕為1…..)
[pascal]
self.Top := screen.Monitors[0].Top;
self.left := screen.Monitors[0].left;
[/pascal]
好久沒更新部落格了!最近正陷入結案地獄中,不過在網路上看到之前曾提過的取餐叫號器的廠商,引進了新的雲端叫號系統。對於餐飲POS系統的服務又更加升級了,可以先電話預約訂購後,再透過網路知道目前的叫號,在接近時再繞過去拿就行了!這也可以運用在醫療系統上,在預約掛號後,知道目前的叫號號碼。分享給大家!
許多餐飲或是快餐POS系統都會提供拖曳去更改按鈕排序!
在Delphi可不可以做得到呢?當然是簡單的~
1)MouseDown事件加上
(sender as tbutton).BeginDrag(false);
2)DragOver事件加上
if source is TButton then
Accept:=true;
3)DragDrop事件加上 >> 互換對方的caption
if Sender is TButton then begin
TempCaption := TButton(Source).Caption;
TButton(Source).Caption := TButton(Sender).Caption;
TButton(Sender).Caption := TempCaption;
end;
準備開站的JOHAPPY(揪HAPPY)先在連鎖加盟展活動暖身囉!
只要在第15屆台北國際連鎖加盟大展-春季展展覽現場用
JOHAPPY! 玩遊戲!拿獎品!揪HAPPY!
官方網站:http://johappy.com/
官方粉絲頁:揪Happy了沒
展覽時間:2月21日~24日 上午10點~下午6點
展覽地點:台北世貿一館(台北市信義路五段五號)
門票資訊:全票250元、半票150元、優待票200元
主辦單位:社團法人台灣連鎖加盟促進協會(Facebook粉絲頁)
洽詢電話:02-2523-5118
2014第15屆台北國際連鎖加盟展 平面位置圖
開發餐飲POS或是其他系統,如果想打入國際市場的話,都會考量多國語系的問題,大部份就是使用mapping的方式。
在Delphi裡面的做法也很簡單~
先取得form上面的元件數(ComponentCount)
接下來用一個迴圈去比對即可。
資料表也可以開成一個
表單名稱、元件名稱、語言1、語言2、語言3的欄位…
不過因為裡面使用了infopower的wwdbgrid元件,寫在formcreate或formshow都抓不到值,後來是放到FormActivate才順利抓到
以下提供簡單的範例
[pascal]
var
sFormName:String;
i:integer;
begin
sFormName:= Self.Name; // 表單名稱
for i:=0 to self.ComponentCount -1 do begin
if Components[i] is TLabel then begin
if (TLabel(components[i]).Caption <>”) then begin
TLabel(components[i]).Caption := 取得語系….;
end;
end;
if Components[i] is TButton then begin
if (TButton (components[i]).Caption <>”) then begin
TButton (components[i]).Caption := 取得語系….;
end;
end;
end;
end;
[/pascal]
wwDBGrid的話關鍵有:
s:= TwwDBGrid(Components[i]).DataSource.DataSet.Fields[j].FieldName;
TwwDBGrid(Components[i]).ColumnByName(s).DisplayLabel
TwwDBGrid(Components[i]).ColumnByName(s).GroupName
在餐廳、飲料、簡餐等餐飲業的pos系統,常常可以如上圖的畫面。在Delphi如何實踐呢?提出幾個重點:
1.取得.ClientWidth、ClientHeight
2.如果是Scrollbox這類會出現捲軸的元件,記得再透過GetSystemMetrics(SM_CXVSCROLL)、GetSystemMetrics(SM_CYHSCROLL)取得捲軸的寬度、高度,扣除掉才能取得正確可佈置的寬、高
3.透過Ceil記算頁數
4.Create元件時記得設定Parent
5.清空元件利用
while xxx.ControlCount > 0 do begin
xxx.Controls[0].Free;
end;