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

📄 grxx_u.pas

📁 delphi7.0+SQl server 2000开发的,对于初学者有较好的参考价值
💻 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 + -