透過mysql資料庫動態產生資料的方式

在MySQL透過SQL語法

SHOW FULL COLUMNS FROM Table_NAME

可以取得資料表的欄位、型態

 

field 欄位名稱

type 欄位型態(varchar、text….)

extra 附加(auto_increment)

comment 備註

如此一來就可以動態根據備註、型態、名稱去產生對應的程式了 🙂  動腦想想可以發揮許多創意

Delphi 安裝次數超過解決方案!

購買 Embarcadero的Delphi XE3之後,因為硬碟操掛的原因!陸續重新安裝過幾次,昨天換了新的電腦後,發現無法線上註冊成功。

登入 https://reg.codegear.com/srs6/activation.do ,註入註冊碼以及登入EDN帳號後。

registrationcount01

 

 

 

 

點選 View extended serial number details

registrationcount02

 

接著發現已經超過預設的三次了

registrationcount

因為我是換電腦不是亂七八糟多安裝的,所以就到客服 http://www.embarcadero.com/support 然後點選”Registration & Installation”

support1

 

 

接著點選 Request a registration limit increase,接著點選原因送出就可以了。

support2

 

原本台灣捷康的Lucy告訴我說需要3~5個工作天,不過早上九點多提出後下午二點多就收到mail回覆了!

registrationcount09

這次要感謝台灣捷康科技(Qcom)的Lucy協助,雖然當初XE3是跟已經收掉的興德資訊買的,不過Lucy不厭其煩的幫忙解答 🙂  才能很快的解決

 

捷康科技股份有限公司 www.qcomgroup.com.tw

許玉香  Lucy Hsu
電話:886-2-2365-0238傳真:886-2-2365-0196
E-mail: Lucyhsu@qcomgroup.com

地址:10647台北市羅斯福路三段 149 號10樓

 

Delphi寫餐飲硬體標準ESC/POS與醫療檢驗儀器連線ASTM通訊有感

下午到舊公司討論電子發票格式相關問題,跟舊同事聊天聊到電子發票支援的硬體時,舊同事也抱怨到POS相關的硬體廠商雖然”宣稱”支援”標準的ESC/POS指令”,但實測起來每台機器還是會呈現出不同的結果。

突然想到之前在做醫療檢驗儀器連線時,即使設備商提到是使用ASTM格式傳輸,但不管是尿液、血液…..適用什麼immuLite、AXSYM、Alastat….最後在做連線通訊時也是不一樣。

這也是做軟硬體結合時,寫程式的悲哀吧XDDD不過寫出來時又是另一種雀躍的心情了~~

Delphi 電子發票開發

業務上的需求要開發電子發票的模組,前同事給了Delphi 6的範例程式,經過了一番修改後,終於在 Delphi XE3能正確使用了。
6337-1

主要的問題如下:

1) Char改 AnsiChar

2) PChar改 PAnsiChar

3) String 改 AnsiString

4) XE3 Length取長度時,也需要先以AnsiString才會正確。
主要加密元件宣告

[pascal]
procedure QRCodeINV(a_InvoiceNumber: AnsiString;
a_InvoiceDate: AnsiString;
a_InvoiceTime: AnsiString;
a_RandomNumber: AnsiString;
af_SalesAmount: Double;
af_TaxAmount: Double;
af_TotalAmount: Double;
a_BuyerIdentifier: AnsiString;
a_RepresentIdentifier: AnsiString;
a_SellerIdentifier: AnsiString;
a_BusinessIdenti: AnsiString;
a_AESKey: AnsiString;
a_output: pAnsiChar;
var ai_errorCode : Integer) STDCALL; external ‘QRDLL.DLL’;

[/pascal]

附上電子發票開發需要文件:

二代電子發票加解密API文件下載

Delphi下載網路圖片且顯示Image

把網路上的圖片顯示在Image如何做到?

[pascal]
var
MS: TMemoryStream;
JPEG: TJPEGImage;
Url: String;
I: Integer;
begin
ProgressBar1.Visible := True;
MS := TMemoryStream.Create;
try
JPEG := TJPEGImage.Create;
try
Url := edit1.text;
MS.Clear;
try
IdHTTP1.Get(Url, MS);
except
end;
MS.Position := 0;
JPEG.LoadFromStream(MS);
Image1.Picture.Assign(JPEG);
Application.ProcessMessages;
finally
JPEG.Free;
end;
finally
MS.Free;
end;
end;
[/pascal]

Delphi撰寫縮小到系統列程式

在畫面上放置
1 ApplicationEvents
2 TrayIcon
3 PopupMenu

然後在ApplicationEvents1Minimize寫上
[pascal]
Hide();
WindowState := wsMinimized;
TrayIcon1.Visible := True;
TrayIcon1.Animate := True;
TrayIcon1.ShowBalloonHint;
[/pascal]
接著在TrayIcon的Click事件讓popupmenu顯示
[pascal]
var
p : TPoint;
begin
GetCursorPos(p);
popupmenu1.Popup(p.X,p.Y);
end;
[/pascal]
最後在popupmenu上的onclick加上
[pascal]
Show;
WindowState := wsMaximized;
trayicon1.Visible := False;
[/pascal]