📄 grxx_u.pas
字号:
unit grxx_u;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, Mask, DBCtrls, ADODB, Buttons, ExtCtrls, ExtDlgs,StrUtils;
type
Tfrm_grxx = class(TForm)
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
DataSource2: TDataSource;
ADOTable1bh: TAutoIncField;
ADOTable1xm: TWideStringField;
ADOTable1xb: TWideStringField;
ADOTable1sfzh: TWideStringField;
ADOTable1mz: TWideStringField;
ADOTable1csrq: TDateTimeField;
ADOTable1dz: TWideStringField;
ADOTable1gzdw: TWideStringField;
ADOTable1bzrq: TDateTimeField;
ADOTable1zyxq: TDateTimeField;
ADOTable1bz: TWideMemoField;
ADOTable1xp: TWideStringField;
GroupBox1: TGroupBox;
Label1: TLabel;
kh_DBEdit: TDBEdit;
Label2: TLabel;
xm_DBEdit: TDBEdit;
Label3: TLabel;
Label4: TLabel;
sfzh_DBEdit: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
DBEdit7: TDBEdit;
Label8: TLabel;
DBEdit8: TDBEdit;
Label9: TLabel;
DBEdit9: TDBEdit;
Label10: TLabel;
DBEdit10: TDBEdit;
GroupBox2: TGroupBox;
DBMemo1: TDBMemo;
xp_Image: TImage;
xb_DBComboBox: TDBComboBox;
ADOTable1kh: TWideStringField;
ADOTable1jkzk: TWideStringField;
Label11: TLabel;
Label12: TLabel;
DBEdit1: TDBEdit;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Shape1: TShape;
OpenPictureDialog1: TOpenPictureDialog;
clear_tupian: TSpeedButton;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
ADOTable1jdr: TWideStringField;
ADOTable1jdrq: TDateTimeField;
Label24: TLabel;
DBEdit3: TDBEdit;
Label25: TLabel;
DBEdit11: TDBEdit;
kxdh_ComboBox: TComboBox;
Label23: TLabel;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure xp_ImageDblClick(Sender: TObject);
procedure ADOTable1AfterScroll(DataSet: TDataSet);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
procedure clear_tupianClick(Sender: TObject);
procedure ADOTable1BeforePost(DataSet: TDataSet);
procedure kh_DBEditExit(Sender: TObject);
procedure xm_DBEditExit(Sender: TObject);
procedure sfzh_DBEditExit(Sender: TObject);
procedure kxdh_ComboBoxChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_grxx: Tfrm_grxx;
implementation
uses public_u, surehope_api, sfsb_u, DES, LOGIN_U;
{$R *.dfm}
procedure Tfrm_grxx.ADOTable1BeforePost(DataSet: TDataSet);
begin
adotable1.FieldByName('jdr').AsString:=userxm_v;
adotable1.FieldByName('jdrq').AsDateTime:=now;
end;
procedure Tfrm_grxx.BitBtn1Click(Sender: TObject);
var
Buf_ascii:array[0..16] of char; // 250个字符串缓冲区
buf_hex:array[0..300] of char; //300个HEX数据缓冲区
kh_length:integer;
kh_des,en_strhex:string;
begin
if kh_dbedit.Text='' then
begin
messagebox(0,'请输入卡号','个人信息',mb_iconerror+mb_ok);
exit;
end;
if openport()=1 then exit; //操作失败则退出
kh_length:=length(trim(kh_dbedit.Text));
kh_length_filter_xk(kh_length,buf_hex); //判断卡号的长度数,如果不满10则取第2位数,否则两位数都取.
kh_DES:='sunrise'; //DES密钥
en_strhex:=encrystrhex(kh_dbedit.Text,kh_des); //返回卡号加密8字节的16个HEX字符
strpcopy(buf_ascii,en_strhex); //把加密卡号写入IC卡1区0-7位置(8字节)字符串数组缓冲区
if (Wr_asc(1,0,8,Buf_ascii)=SURE_HOPE_OK) and (wr_asc(1,13,1,buf_hex)=sure_hope_ok) then
begin
MessageBox(0,'写卡成功!',pchar('卡号:'+kh_dbedit.text),mb_iconinformation+mb_ok);
end
else
MessageBox(0,'写卡失败!','写卡',mb_iconerror+mb_ok);
Close_com; //关闭串口
end;
procedure Tfrm_grxx.BitBtn2Click(Sender: TObject);
begin
close;
end;
procedure Tfrm_grxx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if (datasource2.DataSet.State=dsedit) or (datasource2.DataSet.State=dsinsert) then
begin
if messagebox(0,'是否保存数据?','提示信息',mb_iconquestion+MB_YESNO)=IDYES then
datasource2.DataSet.Post;
end;
self.Free;
end;
procedure Tfrm_grxx.FormCreate(Sender: TObject);
begin
adoconnection1.ConnectionString:=format(frm_sfsb.connstr,[frm_sfsb.dbfilename,'tjz929']);
if not datasource2.DataSet.Active then
datasource2.DataSet.Open;
kxdh_combobox.Text:=cardtype_str(cardtype_num_v);
end;
procedure Tfrm_grxx.kh_DBEditExit(Sender: TObject);
begin
if kh_dbedit.Text='' then
begin
messagebox(0,'请输入卡号!','个人信息录入',mb_iconwarning+mb_ok);
kh_dbedit.SetFocus;
end;
end;
procedure Tfrm_grxx.kxdh_ComboBoxChange(Sender: TObject);
begin
cardtype_num_v:=cardtype_num(kxdh_combobox.Text);
frm_sfsb.ADOTable1.Edit; //把卡型代码字符提交到数据库
frm_sfsb.ADOTable1.FieldByName('cardtype').AsString:=kxdh_combobox.Text;
frm_sfsb.ADOTable1.Post;
end;
procedure Tfrm_grxx.xm_DBEditExit(Sender: TObject);
begin
if xm_dbedit.Text='' then
begin
messagebox(0,'请输入姓名!','个人信息录入',mb_iconwarning+mb_ok);
xm_dbedit.SetFocus;
end;
end;
procedure Tfrm_grxx.sfzh_DBEditExit(Sender: TObject);
begin
if sfzh_dbedit.Text='' then
begin
messagebox(0,'请输入身份证号!','个人信息录入',mb_iconwarning+mb_ok);
sfzh_dbedit.SetFocus;
end;
end;
procedure Tfrm_grxx.clear_tupianClick(Sender: TObject);
begin
datasource2.DataSet.Edit;
adotable1.FieldByName('xp').Value:='';
//datasource2.DataSet.Post;
xp_image.Picture.Graphic:=nil;
end;
procedure Tfrm_grxx.xp_ImageDblClick(Sender: TObject);
var
xp_path,filename_str:string;
begin
if openpicturedialog1.execute then
begin
xp_path:=openpicturedialog1.FileName;
xp_image.Picture.LoadFromFile(xp_path);
//取出图片的文件名
filename_str:=extractfilename(openpicturedialog1.FileName);
xp_path:=extractfilepath(application.ExeName)+'images\'+filename_str;
try
xp_image.Picture.SaveToFile(xp_path);
datasource2.DataSet.Edit;
adotable1.FieldByName('xp').Value:='images\'+filename_str;
except on E: Exception do
showmessage(e.Message);
end;
end;
end;
procedure Tfrm_grxx.ADOTable1AfterScroll(DataSet: TDataSet);
var
xp_path:string;
begin
xp_path:=adotable1.FieldByName('xp').AsString;
if xp_path<>'' then
begin
try
xp_path:=extractfilepath(application.ExeName)+xp_path;
xp_image.Picture.LoadFromFile(xp_path);
except
on E: Exception do
begin
showmessage(e.Message);
xp_image.Picture.Graphic:=nil;
datasource2.DataSet.Edit;
adotable1.FieldByName('xp').AsString:='';
end;
end;
end
else
xp_image.Picture.Graphic:=nil;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -