亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? addmoneyform.pas

?? 高校餐飲銀卡系統,源代碼中有詳細說明,如有問題請與我聯系.
?? PAS
字號:
unit AddMoneyForm;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Buttons, OleCtrls, MSCommLib_TLB, Db, ADODB;

type
  TfrmAddMoney = class(TForm)
    Panel1: TPanel;
    edtCardId: TEdit;
    Label1: TLabel;
    edtMoney: TEdit;
    Label2: TLabel;
    bbnAddMoney: TBitBtn;
    bbnExit: TBitBtn;
    MSComm1: TMSComm;
    Timer1: TTimer;
    ADOQuery1: TADOQuery;
    procedure Timer1Timer(Sender: TObject);
    procedure bbnAddMoneyClick(Sender: TObject);
    procedure edtMoneyKeyPress(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
    function AddMoney(ACardId:string;AMoney:double):integer;
    function QueryMoney(ACardId:string):double;
  public
    { Public declarations }
  end;

var
  frmAddMoney: TfrmAddMoney;

implementation
uses
    FunctionUnit,
    CardDM;

{$R *.DFM}

function TfrmAddMoney.AddMoney(ACardId: string; AMoney: double):integer;
begin
    Result := 1;
    with ADOQuery1 do
    begin
        Close;
        Connection := DMMain.cnnMain ;
        SQL.Clear;
        SQL.Add('update card set money = money + :AMoney ');
        SQL.Add('where card_id = :ACardId');
        Parameters.ParamByName('ACardId').Value := ACardId;
        Parameters.ParamByName('AMoney').Value := AMoney;
        try
            ExecSQL;
            //數據庫中沒有該卡號
            if RowsAffected < 1 then Result := -100;
        except
            Result := -1;
        end;
    end;
end;

procedure TfrmAddMoney.Timer1Timer(Sender: TObject);
var
    mByteAry: array of Byte;
    mIn :array of Byte ;
begin
    if MSComm1.PortOpen = False then
    begin
        try
            MSComm1.CommPort := ComStrToInt(Port);
            MSComm1.Settings := Speed + ','
                               + CheckBit[1] + ','
                               + DataBit + ','
                               + StopBit;
            MSComm1.PortOpen := True;
        except
            ShowMessage('串口不能打開,請檢查串口的配置!');
            Exit;
        end;
    end;
    //構造上位機報文
    SetLength(mByteAry,5);
    mByteAry[0] := $0f;
    mByteAry[1] := $f0;
    mByteAry[2] := $5;
    mByteAry[3] := $1;
    mByteAry[4] := CalCheck(mByteAry,0,3);
    //發讀第一區的命令
    MSComm1.Output := mByteAry;
    //等待讀卡機的應答信息
    Sleep(60);
    if MSComm1.InBufferCount <> 13 then
    begin
        //下位機不應答,表示沒有卡放入
        edtCardId.Text := '00000';
        Exit;
    end;

    //將下位機報文接受到緩沖區
    SetLength(mIn,MSComm1.inBufferCount);
    mIn := MSComm1.Input;
    if not IsArrayValid(mIn) then Exit;
    //在用戶界面中顯示卡號
    edtCardId.Text := Chr(mIn[4])
                     +Chr(mIn[5])
                     +Chr(mIn[6])
                     +Chr(mIn[7])
                     +Chr(mIn[8]);
     edtCardId.SetFocus;

end;

procedure TfrmAddMoney.bbnAddMoneyClick(Sender: TObject);
var
    mByteAry: array of Byte;
    mIn :array of Byte ;
    mMoney : Integer;
    mMoneyFloat : double;
    mB:array[0..5] of Byte;
    mRet,i:Integer;
begin
    try
        mMoneyFloat := StrToFloat(edtMoney.Text);
    except
        ShowMessage('數據轉換錯誤,請輸入正確的金額!');
        edtMoney.SetFocus;
        Exit;
    end;
    mRet := AddMoney(edtCardId.Text,mMoneyFloat);
    if mRet = -100 then
    begin
        ShowMessage('數據庫中沒有該卡號,請核查!');
        Exit;
    end;
    if mRet < 0 then
    begin
        ShowMessage('數據庫出錯,該加卡程序無法完成!');
        Exit;
    end;
    //從數據庫中取出加入后的金額
    mMoneyFloat := QueryMoney(edtCardId.Text);
    if mMoneyFloat < 0 then
    begin
        ShowMessage('數據庫出錯,該加卡程序無法完成!');
        Exit;
    end;
    mMoney := Round(mMoneyFloat * 100);
    //取出金額中的每一位
    for i:=0 to 5 do
    begin
        mB[i] := mMoney mod 10;
        mMoney := mMoney div 10;
    end;
    Timer1.Enabled := False;
    //等待Timer時間函數執行完成
    Sleep(200);

    if MSComm1.PortOpen = False then
    begin
        try
            MSComm1.CommPort := ComStrToInt(Port);
            MSComm1.Settings := Speed + ','
                               + CheckBit[1] + ','
                               + DataBit + ','
                               + StopBit;
            MSComm1.PortOpen := True;
        except
            ShowMessage('串口不能打開,請檢查串口的配置!');
            Exit;
        end;
    end;
    //構造上位機報文
    SetLength(mByteAry,13);
    mByteAry[0] := $0f;
    mByteAry[1] := $f0;
    mByteAry[2] := $03;  //寫命令
    mByteAry[3] := $03;  //第3區
    //金額數據加密寫入
    mByteAry[4] := Encrypt(mB[0]);
    mByteAry[5] := Encrypt(mB[1]);
    mByteAry[6] := Encrypt(mB[2]);
    mByteAry[7] := Encrypt(mB[3]);
    mByteAry[8] := Encrypt(mB[4]);
    mByteAry[9] := Encrypt(mB[5]);
    mByteAry[10] := CalMoneyCheck(mByteAry,4,9);
    mByteAry[11] := $FF;//數據區以$FF結尾
    mByteAry[12] := CalCheck(mByteAry,0,11);
    //發寫第3區的命令
    MSComm1.Output := mByteAry;
    //等待讀卡機的應答信息
    Sleep(60);
    if MSComm1.InBufferCount <> 6 then
    begin
        ShowMessage('寫入數據時出錯,請重試!');
        Exit;
    end;
    //將下位機報文接受到緩沖區
    SetLength(mIn,MSComm1.inBufferCount);
    mIn := MSComm1.Input;
    if not IsArrayValid(mIn) or (mIn[4] <> $0f) then
    begin
        ShowMessage('寫入數據時出錯,請重試!');
        Exit;
    end;
    ModalResult := mrOk;

end;

procedure TfrmAddMoney.edtMoneyKeyPress(Sender: TObject; var Key: Char);
begin
    if Key = #13 then bbnAddMoney.SetFocus;
    if not (Key in ['0'..'9'])
         and (Key <> '.') then
        Key := #0;
end;

procedure TfrmAddMoney.FormClose(Sender: TObject; var Action: TCloseAction);
begin
    //關閉串口,釋放資源
    Timer1.Enabled := False;
    if MSComm1.PortOpen then MSComm1.PortOpen := False;
end;

function TfrmAddMoney.QueryMoney(ACardId: string): double;
begin
    with ADOQuery1 do
    begin
        Close;
        Connection := DMMain.cnnMain ;
        SQL.Clear;
        SQL.Add('select money from card ');
        SQL.Add('where card_id = :ACardId');
        Parameters.ParamByName('ACardId').Value := ACardId;
        try
            Open;
            //數據庫中沒有該卡號
            if RecordCount <> 1 then Result := -100.0
            else Result := FieldByName('money').AsFloat;
        except
            Result := -1.0;
        end;
    end;
end;

procedure TfrmAddMoney.FormShow(Sender: TObject);
begin
    Timer1.Enabled := True;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品视频网| 国产一区二区三区久久久| 精品一区二区三区在线播放视频| 国产一区二区三区在线观看免费 | 欧美性大战久久久久久久蜜臀| 欧美一级黄色片| 亚洲综合在线免费观看| 国产一区二区视频在线播放| 884aa四虎影成人精品一区| 一区免费观看视频| 国产寡妇亲子伦一区二区| 91精品麻豆日日躁夜夜躁| 亚洲国产视频a| 91成人看片片| 综合久久综合久久| 国产99久久精品| 久久久久久电影| 美国欧美日韩国产在线播放| 欧美伦理影视网| 亚洲一区二区在线免费观看视频| av动漫一区二区| 国产精品网友自拍| 成人爽a毛片一区二区免费| 久久综合九色综合97_久久久 | 欧美一级生活片| 亚洲一区影音先锋| 在线观看一区二区精品视频| 国产精品免费观看视频| 成人性生交大片免费看视频在线 | 亚洲美女免费在线| 成人午夜视频福利| 国产精品电影院| 91女人视频在线观看| 亚洲婷婷在线视频| 日本黄色一区二区| 午夜免费久久看| 日韩一级欧美一级| 国产一区二区91| 国产精品久久看| 9l国产精品久久久久麻豆| 亚洲精品乱码久久久久久久久| 色8久久人人97超碰香蕉987| 一片黄亚洲嫩模| 国产精品成人免费| 一本色道a无线码一区v| 亚洲一级在线观看| 日韩欧美国产一区二区在线播放 | 精品国产伦理网| 国产成人精品三级麻豆| 国产精品久久久久久久久快鸭| 不卡av在线网| 性做久久久久久免费观看| 日韩一区二区三区在线视频| 国产一区二区三区精品视频| 国产精品麻豆一区二区| 欧美午夜精品久久久| 久久99精品久久久| 亚洲人一二三区| 欧美一区二区在线免费观看| 国产在线精品视频| 一区二区在线免费| 精品久久久久久久久久久久包黑料| 国产精品一区二区三区99| 亚洲免费电影在线| 日韩亚洲欧美成人一区| 高清免费成人av| 亚洲成av人影院| 国产色综合一区| 欧美理论电影在线| 国产成人aaa| 日韩极品在线观看| 国产精品国产三级国产普通话蜜臀| 欧美日韩国产综合久久| 国产成人亚洲精品狼色在线 | 欧美日韩1234| 高清不卡在线观看av| 亚洲v中文字幕| 国产精品你懂的| 精品国产在天天线2019| 色呦呦网站一区| 福利一区在线观看| 免费看日韩a级影片| 亚洲综合久久av| 中文字幕第一区二区| 日韩欧美中文字幕一区| 欧美影院午夜播放| 不卡av在线免费观看| 精品一区二区三区久久| 亚洲18色成人| 成人欧美一区二区三区| 久久久www成人免费无遮挡大片| 在线观看不卡视频| 成人在线视频首页| 国产一区二区导航在线播放| 免费av成人在线| 偷窥少妇高潮呻吟av久久免费| 亚洲欧洲日韩av| 国产精品久久久久三级| 久久久精品日韩欧美| 精品欧美一区二区三区精品久久| 欧美日韩免费高清一区色橹橹| 高清不卡一区二区| 国产.欧美.日韩| 国产呦萝稀缺另类资源| 极品少妇xxxx偷拍精品少妇| 免费观看一级欧美片| 日韩中文字幕1| 五月天婷婷综合| 午夜精品一区二区三区免费视频 | 国产一区二区三区蝌蚪| 蜜桃av一区二区| 麻豆国产精品官网| 日韩av网站在线观看| 蜜桃精品视频在线观看| 狠狠色综合色综合网络| 国产主播一区二区| 国产乱码精品1区2区3区| 精品系列免费在线观看| 国产精品伊人色| 成人免费va视频| 91久久人澡人人添人人爽欧美| 色综合色综合色综合 | 婷婷亚洲久悠悠色悠在线播放 | 久久草av在线| 国产制服丝袜一区| 国产成人免费在线| www.亚洲免费av| 欧美写真视频网站| 91精品国产综合久久久久久漫画| 日韩欧美国产成人一区二区| 久久综合999| 亚洲色图欧洲色图婷婷| 亚洲综合丝袜美腿| 男女激情视频一区| 国产**成人网毛片九色 | 日韩电影免费在线看| 精品一区二区影视| 国产v日产∨综合v精品视频| 成人免费毛片aaaaa**| 91国产免费看| 精品国产污污免费网站入口 | 日韩色视频在线观看| 久久久久久久久一| 亚洲美女视频在线观看| 奇米一区二区三区av| 国产 日韩 欧美大片| 欧美日韩一级二级三级| 久久久久亚洲蜜桃| 亚洲国产裸拍裸体视频在线观看乱了| 美女性感视频久久| 成人av在线一区二区| 欧美猛男超大videosgay| 久久蜜臀精品av| 亚洲国产一二三| 成人午夜激情视频| 日韩一级免费一区| 一区二区三区欧美| 国内精品视频666| 欧美午夜一区二区| 亚洲国产精品二十页| 日本在线观看不卡视频| yourporn久久国产精品| 亚洲精品一区在线观看| 亚洲综合视频在线| www.欧美日韩国产在线| 日韩三级免费观看| 亚洲成a人v欧美综合天堂| 高清不卡一区二区在线| 日韩精品一区二| 丝袜亚洲另类欧美| 91免费在线看| 中文字幕一区二区三区在线不卡| 日本午夜精品一区二区三区电影 | 亚洲一区二区3| 成人ar影院免费观看视频| 欧美tickling网站挠脚心| 亚洲国产一区在线观看| 一本大道久久a久久精二百 | 精品免费视频.| 亚洲高清免费一级二级三级| 99久久99久久精品免费观看| 国产欧美精品一区二区色综合 | 国产精品的网站| 国产69精品久久久久777| 337p日本欧洲亚洲大胆精品 | 欧美tickling挠脚心丨vk| 天堂蜜桃91精品| 欧美日韩国产免费一区二区| 亚洲免费在线视频一区 二区| 不卡一二三区首页| 国产午夜精品一区二区 | 中文字幕在线免费不卡| 国产成人aaa| 久久久777精品电影网影网 | 精品一区精品二区高清| 欧美一区二区黄色| 麻豆freexxxx性91精品| 精品久久久久久久久久久久包黑料| 日本va欧美va欧美va精品| 欧美一区中文字幕|