?? cardissue.pas
字號:
unit CardIssue;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, DB, Grids, DBGrids;
type
TFrm_CardIssue = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Lb_kysj: TLabel;
edt_Gname: TEdit;
edt_IdentityNo: TEdit;
edt_Tele: TEdit;
edt_Deposit: TEdit;
edt_Payment: TEdit;
edt_JSSS: TEdit;
CmbBx_CardType: TComboBox;
Bevel1: TBevel;
Btn_Issue: TButton;
Btn_Close: TButton;
edt_Gift: TEdit;
Lb_ZS: TLabel;
Label9: TLabel;
Label10: TLabel;
Lb_X: TLabel;
Lb_Y: TLabel;
Label4: TLabel;
Btn_Read: TButton;
Picker_CardDate: TDateTimePicker;
Picker_CardTime: TDateTimePicker;
Bevel2: TBevel;
procedure FormCreate(Sender: TObject);
procedure CmbBx_CardTypeChange(Sender: TObject);
procedure Btn_IssueClick(Sender: TObject);
procedure Btn_ReadClick(Sender: TObject);
procedure Picker_CardDateChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_IdentityNoExit(Sender: TObject);
private
procedure ValidCheck(Sender: TObject);
procedure EditClear(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_CardIssue: TFrm_CardIssue;
implementation
uses sys_dm, sys_global, DllDef ;
{$R *.dfm}
var
checkFlag: char;
procedure TFrm_CardIssue.FormCreate(Sender: TObject);
begin
Picker_CardDate.Date := date ;
Picker_CardTime.time := time ;
CmbBx_CardType.ItemIndex := CmbBx_CardType.Items.IndexOf(m_CardType) ; //缺省的卡型
Picker_CardDate.Date := Picker_CardDate.Date + m_sxrq ;
edt_Deposit.text := intTostr(M_yj); // 缺省的押金
if CmbBx_CardType.items[CmbBx_CardType.ItemIndex]='計時卡' then begin
Lb_kysj.Visible := true ;
edt_JSSS.visible := true ; //顯示可用時間
Lb_X.Visible := true ;
Lb_ZS.Visible := false ;
edt_Gift.Visible := false ; //不顯示贈送
Lb_Y.Visible := false ;
end;
end;
procedure TFrm_CardIssue.CmbBx_CardTypeChange(Sender: TObject);
begin
if CmbBx_CardType.items[CmbBx_CardType.ItemIndex]='計時卡' then
begin
Lb_kysj.Visible := true ;
edt_JSSS.visible := true ; // 顯示可用時間
Lb_X.Visible := true ;
Lb_ZS.Visible := false ;
edt_Gift.Visible := false ; // 不顯示贈送
Lb_Y.Visible := false ;
end else
begin
Lb_kysj.Visible := false ;
edt_JSSS.visible := false ; // 關閉可用時間
Lb_X.Visible := false ;
Lb_ZS.Visible := true ;
edt_Gift.Visible := true ; // 顯示贈送
Lb_Y.Visible := true ;
end;
if CmbBx_CardType.items[CmbBx_CardType.ItemIndex]='管理卡' then begin
edt_Deposit.text := '' ;
edt_Payment.text := '' ;
edt_Gift.Text := '' ;
edt_JSSS.Text := '' ;
end;
end;
procedure TFrm_CardIssue.Picker_CardDateChange(Sender: TObject);
begin
if Picker_CardDate.Date < date then begin
messagebox(handle, ' 失效日期不能小于今天!','提示',mb_ok+mb_iconstop);
Picker_CardDate.SetFocus ;
end;
end;
procedure TFrm_CardIssue.EditClear(Sender: TObject);
begin
if edt_Deposit.text = '0' then edt_Deposit.text := '' ;
if edt_Payment.text = '0' then edt_Payment.text := '' ;
if edt_Gift.Text = '0' then edt_Gift.Text := '' ;
if edt_JSSS.Text = '0' then edt_JSSS.Text := '' ;
end;
Function IcNumber: integer;
begin
with frm_sys_dm.Qr_tmp1 do
begin
close;
sql.Clear;
sql.Add('declare @MaxVal int');
sql.Add('execute GETMAXNUM @MaxVal output');
sql.add('select @MaxVal');
try
open;
result := fields[0].AsInteger ;
except
m_Stop := '9' ; // 9=提示請檢查電腦網絡
result := 0 ;
end;
close;
end;
end;
procedure TFrm_CardIssue.ValidCheck(Sender: TObject);
var
p: array[0..32] of char;
I:INTEGER;
begin
// 檢查有無IC卡插入
if ChkCard(m_com) <> 0 then begin
messagebox(handle,' 請插入IC卡 ', '提示', mb_ok+MB_ICONWARNING);
checkFlag :='0' ;
exit ;
end;
I:=getno(m_com, p);
if I <> 7 then begin
IF I=0 THEN I:=6;
messagebox(handle,PCHAR(GETMSG(I)), '提示', mb_ok+MB_ICONWARNING);
checkFlag :='0' ;
exit ;
end;
// 檢查網絡是否正常
m_Stop := '0' ;
ServerDateTime ;
if m_Stop = '9' then begin
messagebox(handle,' 網絡不通, 該卡不能發行! ', '提示', mb_ok+MB_ICONWARNING);
checkFlag :='0' ;
exit ;
end;
if Trim(edt_Deposit.text)='' then edt_Deposit.text := '0' ;
if Trim(edt_Payment.text)='' then edt_Payment.text := '0' ;
if Trim(edt_Gift.text) ='' then edt_Gift.text := '0' ;
if Trim(edt_JSSS.text) ='' then edt_JSSS.text := '0' ;
try
strTofloat(edt_Deposit.text)
except
MessageBox(handle, ' 押金有錯!','提示', mb_ok+mb_iconstop);
edt_Deposit.SetFocus ;
checkFlag :='0' ;
exit;
end;
try
strTofloat(edt_Payment.text)
except
MessageBox(handle, ' 預付金額有錯!','提示', mb_ok+mb_iconstop);
edt_Payment.SetFocus ;
checkFlag :='0' ;
exit;
end;
try
strTofloat(edt_Gift.text)
except
MessageBox(handle, ' 贈送金額有錯!','提示', mb_ok+mb_iconstop);
edt_Gift.SetFocus ;
checkFlag :='0' ;
exit;
end;
if strTofloat(edt_Payment.text)+strTofloat(edt_Gift.text)>9999.99 then begin
MessageBox(handle, ' 金額有錯!','提示', mb_ok+mb_iconstop);
edt_Payment.SetFocus ;
checkFlag :='0' ;
exit;
end;
try
strTofloat(edt_JSSS.text)
except
MessageBox(handle, ' 可上機時間有錯!','提示', mb_ok+mb_iconstop);
edt_JSSS.SetFocus ;
checkFlag :='0' ;
exit;
end;
if strTofloat(edt_JSSS.text)*60>9999.99 then begin
MessageBox(handle, ' 可上機時間有錯!','提示', mb_ok+mb_iconstop);
edt_JSSS.SetFocus ;
checkFlag :='0' ;
exit;
end;
if edt_Gname.text='' then begin
MessageBox(handle, '請填寫姓名','提示', mb_ok+mb_iconstop);
edt_Gname.SetFocus ;
checkFlag :='0' ;
exit;
end;
end;
// 回退操作
procedure RecallOPT(ICno: integer; issDateTime: Tdatetime);
begin
with frm_sys_dm.Qr_tmp2 do begin
close;
sql.clear;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -