⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tfrmadds.pas

📁 IC卡饭堂售饭管理系统源码,内有相关说明,
💻 PAS
字号:
unit TfrmAddS;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ICCTRL, TFlatEditUnit, ExtCtrls, TFlatSpinEditUnit,
  TFlatButtonUnit,Inifiles;

type
  PClockInfo=^TClockInfo;
  TClockInfo=record
  ID: WORD;
  ClockNo: String;
  ClockName: String;
  Port: WORD;
  BaudRate: DWORD;
end;

type
  TFrmAdd = class(TForm)
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    FlatEdit1: TFlatEdit;
    FlatEdit2: TFlatEdit;
    FlatEdit3: TFlatEdit;
    FlatEdit4: TFlatEdit;
    FlatEdit5: TFlatEdit;
    Label6: TLabel;
    FlatSpinEditInteger1: TFlatSpinEditInteger;
    Bevel1: TBevel;
    FlatButton1: TFlatButton;
    FlatButton2: TFlatButton;
    FlatButton3: TFlatButton;
    procedure FlatButton3Click(Sender: TObject);
    procedure FlatButton1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FlatButton2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmAdd: TFrmAdd;

implementation

uses DTConnects, MainFRMS;

{$R *.dfm}
function IntToStrLen(Value : Integer; ResultLength :Byte):String;
begin
  Result:=IntToStr(Value);
  while Length(Result) < Resultlength do
    Result:='0'+Result;
  Result:=Copy(Result, Length(Result)-ResultLength+1, ResultLength);
end;

procedure TFrmAdd.FlatButton3Click(Sender: TObject);
begin
  self.Release;
end;

procedure TFrmAdd.FlatButton1Click(Sender: TObject);
var   hPort: THandle;
      pclk: PClockInfo;
      CardInfo: TCardInfo;
      ReadInfo: TIniFile;
      FileName:String;
      CardNoStr: String;
      Right:boolean;
      UserID:Integer;
begin
  FileName:=ExtractFilePath(Application.ExeName)+'CardInfo.ini';
  ReadInfo:=TIniFile.Create(FileName);
  with ReadInfo do begin
      new(pclk);
      pclk.ID:=StrToIntDef(ReadString('NewCard','ID',''),1);
      pclk.ClockNo:=ReadString('NewCard','DeviceNo','');
      pclk.ClockName:=ReadString('NewCard','Devicena','');
      pclk.Port:=StrToIntDef(ReadString('NewCard','Port',''),4);
      pclk.BaudRate:= StrToIntDef(ReadString('NewCard','Speed','') , 9600);
  end;
  MainFRM.StatusBar1.Panels[0].Text:='链接到发卡机上...';
  hPort:=OpenCommPort(pclk.Port, pclk.BaudRate);
  Right:=ReadCardInfo(hPort, @CardInfo);
  MainFRM.StatusBar1.Panels[0].Text:='正在读卡上的信息...';
  if right then begin
    FlatEdit1.Text:=IntToStrLen(CardInfo.CardNo, 5);
    FlatEdit5.Text:=PChar(@CardInfo.Name[1]);
    FlatEdit2.Text:=floattostr(CardInfo.Money/10);
    FlatEdit3.Text:=inttostr(CardInfo.Times);
    FlatEdit4.Text:=datetostr(date);
    Application.MessageBox('读IC卡信息成功!','操作提示',0+32);
    MainFRM.StatusBar1.Panels[0].Text:='读IC卡信息成功!';
  end else begin
    Application.MessageBox('读IC卡信息失败!','操作提示',0+16);
    MainFRM.StatusBar1.Panels[0].Text:='读IC卡信息失败!';
  end;
  Windows.Beep(2500, 150);
  CloseCommPort(hPort);
end;

procedure TFrmAdd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  self.Release;
end;

procedure TFrmAdd.FlatButton2Click(Sender: TObject);
var   hPort: THandle;
      pclk: PClockInfo;
      CardInfo: TCardInfo;
      ReadInfo: TIniFile;
      FileName:String;
      CardNoStr: String;
      Right:boolean;
      UserID:Integer;
begin
  FileName:=ExtractFilePath(Application.ExeName)+'CardInfo.ini';
  ReadInfo:=TIniFile.Create(FileName);
    CardInfo.CardNo:=StrToIntDef(FlatEdit1.Text, 0);
    CardInfo.Times:=StrToIntDef(FlatEdit3.Text, 0)+1;
    CardInfo.Money:=Round((StrToFloat(FlatEdit2.Text)+FlatSpinEditInteger1.Value)*10);
    StrPCopy(@CardInfo.Name[1],FlatEdit5.Text);
  with ReadInfo do begin
    new(pclk);
    pclk.ID:=StrToIntDef(ReadString('NewCard','ID',''),1);
    pclk.ClockNo:=ReadString('NewCard','DeviceNo','');
    pclk.ClockName:=ReadString('NewCard','Devicena','');
    pclk.Port:=StrToIntDef(ReadString('NewCard','Port',''),4);
    pclk.BaudRate:= StrToIntDef(ReadString('NewCard','Speed','') , 9600);
  end;
  MainFRM.StatusBar1.Panels[0].Text:='链接到发卡机上...';
  hPort:=OpenCommPort(pclk.Port, pclk.BaudRate);
  Right:=WriteCardInfo(hPort, @CardInfo);
  if Right then begin
    Application.MessageBox('充值完成. ','操作提示',0+32);
    MainFRM.StatusBar1.Panels[0].Text:='充值完成.';
    with DTConnect do begin
      ADOCommand1.CommandText:='Execute AddMoneyR '+chr(39)+FlatEdit1.Text+chr(39)+','
                                +chr(39)+FlatEdit5.Text+chr(39)+','
                                +inttostr(FlatSpinEditInteger1.Value);
      ADOCommand1.Execute;

    end;
  end else begin
    Application.MessageBox('充值过程失败. ','操作提示',0+16);
    MainFRM.StatusBar1.Panels[0].Text:='充值过程失败.';
  end;
  Windows.Beep(2500, 150);
  FlatSpinEditInteger1.Value:=0;
  CloseCommPort(hPort);
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -