?? cardupdate.pas
unit CardUpdate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls;
type
TFrm_CardUpdate = class(TForm)
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label7: TLabel;
Lb_kysj: TLabel;
Lb_ZS: TLabel;
Lb_X: TLabel;
Lb_Y: TLabel;
Label4: TLabel;
Picker_CardDate: TDateTimePicker;
Picker_CardTime: TDateTimePicker;
Bevel1: TBevel;
Label2: TLabel;
Label3: TLabel;
edt_Gname: TEdit;
edt_IdentityNo: TEdit;
edt_Tele: TEdit;
Btn_Read: TButton;
Btn_Modi: TButton;
Btn_Close: TButton;
Bevel2: TBevel;
LB_CardType: TLabel;
Lb_Deposit: TLabel;
LB_Payment: TLabel;
Label10: TLabel;
Label9: TLabel;
LB_Gift: TLabel;
LB_JSSS: TLabel;
Label11: TLabel;
LB_SYJE: TLabel;
Btn_Save: TButton;
Btn_Cancel: TButton;
procedure Btn_ReadClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Btn_ModiClick(Sender: TObject);
procedure Btn_CancelClick(Sender: TObject);
procedure Btn_SaveClick(Sender: TObject);
procedure edt_IdentityNoExit(Sender: TObject);
private
procedure disa ;
procedure enab ;
{ Private declarations }
public
{ Public declarations }
end;
var
Frm_CardUpdate: TFrm_CardUpdate;
implementation
uses sys_dm, sys_global, DllDef ;
{$R *.dfm}
procedure TFrm_CardUpdate.disa ;
var
i: integer ;
begin
for i := 0 to Controlcount-1 do begin
if Controls[i].ClassType = TEdit then
TEdit(Controls[i]).Enabled := false ;
if Controls[i].ClassType = TDateTimePicker then
TDateTimePicker(Controls[i]).Enabled := false ;
end;
Btn_Read.Enabled := true ; Btn_Modi.Enabled := true ; Btn_Close.Enabled := true ;
Btn_Save.Enabled := false ; Btn_Cancel.Enabled := false ;
end;
procedure TFrm_CardUpdate.enab ;
var
i: integer ;
begin
for i := 0 to Controlcount-1 do begin
if Controls[i].ClassType = TEdit then
TEdit(Controls[i]).Enabled := true ;
if Controls[i].ClassType = TDateTimePicker then
TDateTimePicker(Controls[i]).Enabled := true ;
end;
Btn_Read.Enabled := false ; Btn_Modi.Enabled := false ; Btn_Close.Enabled := false ;
Btn_Save.Enabled := true ; Btn_Cancel.Enabled := true ;
edt_Gname.SetFocus ;
end;
procedure TFrm_CardUpdate.FormShow(Sender: TObject);
begin
LB_CardType.Caption := '' ;
Lb_Deposit.Caption := '' ;
LB_Payment.Caption := '' ;
LB_Gift.Caption := '' ;
LB_JSSS.Caption := '' ;
LB_SYJE.Caption := '' ;
Picker_CardDate.Date := date ;
Picker_CardTime.Time := time ;
if ChkCard(m_com) = 0 then frm_CardUpdate.Btn_Read.Click ;
end;
procedure TFrm_CardUpdate.Btn_ReadClick(Sender: TObject);
var
p: array[0..32] of char;
I:INTEGER;
begin
if ChkCard(m_com) <> 0 then begin
messagebox(handle,' 請插入IC卡 ', '提示', mb_ok+MB_ICONWARNING);
exit ;
end;
// 檢查IC卡是否是新卡
I:=GETNO(m_com, p);
if I<>0 then begin
messagebox(handle,PCHAR(GETMSG(I)), '提示', mb_ok+MB_ICONWARNING);
exit;
end;
if CardInfo(m_ICtype, m_ICno, m_ICmoney, m_ICdate)= 0 then // 讀卡成功
begin
if m_ICtype='4' then begin // 計時卡
Lb_kysj.Visible := true ;
LB_JSSS.visible := true ; //顯示可用時間
Lb_X.Visible := true ;
Lb_ZS.Visible := false ;
LB_Gift.Visible := false ; //不顯示贈送
Lb_Y.Visible := false ;
end else begin
Lb_kysj.Visible := false ;
Lb_JSSS.visible := false ; //不顯示可用時間
Lb_X.Visible := false ;
Lb_ZS.Visible := true ;
LB_Gift.Visible := true ; //顯示贈送
Lb_Y.Visible := true ;
end;
end;
with frm_sys_dm.Qr_tmp1 do
begin
close;
sql.clear;
sql.text := 'select * from card where Icno='+intTostr(strToint(m_ICno)) ;
open;
LB_CardType.Caption := fieldbyname('icType').AsString ;
Lb_Deposit.Caption := floatTostr(fieldbyname('Deposit').AsFloat);
LB_Payment.Caption := floatTostr(fieldbyname('Payment').AsFloat);
LB_Gift.Caption := floatTostr(fieldbyname('Gift').AsFloat);
LB_JSSS.Caption := floatTostr(fieldbyname('JSSS').AsFloat /60) ;
if m_ICtype='4' then // 計時卡
LB_SYJE.caption := GetHourMinute(Trunc(m_ICmoney))
else
LB_SYJE.caption := floatTostr(m_ICmoney)+' 元' ;
Picker_CardDate.Date := m_ICdate ;
Picker_CardTime.Time := m_ICdate ;
edt_Gname.Text := fieldbyname('Gname').AsString ;
edt_IdentityNo.Text := fieldbyname('IdentityNo').AsString ;
edt_Tele.Text := fieldbyname('Tele').AsString ;
end;
Btn_Read.Tag := 1 ;
end;
procedure TFrm_CardUpdate.Btn_ModiClick(Sender: TObject);
begin
if Btn_Read.Tag = 0 then begin
messagebox(handle, '請先讀卡, 再修改', '提示', mb_ok+mb_iconstop);
exit ;
end;
enab ;
end;
procedure TFrm_CardUpdate.Btn_SaveClick(Sender: TObject);
var
No, Info: string ; // 寫卡函數需要的二個變量
s1, s2: string ;
begin
s1 := formatdatetime('yyyy"-"mm"-"dd', Picker_CardDate.Date) ;
s2 := formatdatetime('hh":"nn":"ss', Picker_CardDate.time) ;
info := MoneyString(m_ICmoney)+copy(s1,3,2)+copy(s1,6,2)+copy(s1,9,2)+copy(s2,1,2)+copy(s2,4,2);
no := m_ICtype+m_ICno ;
// 寫卡不成功, 再寫一次
if change(m_com, pchar(No), pchar(info)) <> 0 then
if messagebox(handle,'寫卡時出錯, 是否再寫一次?','提示', MB_YESNO+MB_ICONQUESTION+MB_DEFBUTTON1)=IDYES then begin
if change(m_com, pchar(No), pchar(info)) <> 0 then begin
messagebox(handle,' 卡已損壞, 請再換一張卡 ', '提示', mb_ok+MB_ICONWARNING);
exit ;
end
end else begin
messagebox(handle,' 卡已損壞, 請再換一張卡 ', '提示', mb_ok+MB_ICONWARNING);
exit ;
end ;
with frm_sys_dm.Qr_tmp1 do
begin
close;
sql.clear;
sql.Text := 'update Card set Gname='''+edt_Gname.Text+''', IdentityNo='''+edt_IdentityNo.text
+''', Tele='''+edt_Tele.text+''' where Icno='+intTostr(strToint(m_ICno)) ;
try
execsql;
except
messagebox(handle, '卡片更改不成功!','提示',mb_ok+mb_iconstop);
exit;
end;
end;
messagebox(handle, '卡片更改成功!','提示',mb_ok+MB_ICONINFORMATION);
disa ;
Btn_Read.Tag := 0 ;
end;
procedure TFrm_CardUpdate.Btn_CancelClick(Sender: TObject);
begin
disa ;
end;
procedure TFrm_CardUpdate.edt_IdentityNoExit(Sender: TObject);
begin
edt_IdentityNo.Text := trim(edt_IdentityNo.Text);
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -