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

📄 cx_u.pas

📁 delphi7.0+SQl server 2000开发的,对于初学者有较好的参考价值
💻 PAS
字号:
unit cx_u;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, Mask, ExtCtrls, DB, ADODB,
  DBTables;

type
  Tfrm_cx = class(TForm)
    Panel1: TPanel;
    tj_CmB: TComboBox;
    zi_MaskEdit: TMaskEdit;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    ADOConnection1: TADOConnection;
    ComboBox1: TComboBox;
    BitBtn3: TBitBtn;
    ADOQuery1: TADOQuery;
    kxdh_ComboBox: TComboBox;
    Label1: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure kxdh_ComboBoxChange(Sender: TObject);
  private
    { Private declarations }

  public
    { Public declarations }
  end;

var
  frm_cx: Tfrm_cx;

function tj_CmB_fieldname(tj_cmb_itemindex:integer):string;

implementation

uses public_u, surehope_api,grxx_u,DES, sfsb_u;

var
   cmb_item:string;

{$R *.dfm}

procedure Tfrm_cx.BitBtn1Click(Sender: TObject);
var
  Buf_ascii:array[0..15] of char; //定义动态数组字符串缓冲区
  //buf_hex:array[0..300] of char;  //300个HEX数据缓冲区
  kh_length:integer;
  dstr,zi_medit,filterstr,undes_source:string;
  kh_des,des_strhex:string;
begin
  if openport()=1 then exit;  //操作失败则退出
  if kh_length_filter_dk(kh_length)=1 then exit;  //处理卡片里长度的值
  zi_maskedit.text:='';
  //setlength(Buf_ascii,kh_length);  //重新定义动态数组长度
  if rd_asc(1,0,8,Buf_ascii)=SURE_HOPE_OK then
  begin
     kh_des:='sunrise';
     des_strhex:=decrystrhex(buf_ascii,kh_des);  //返回解密的卡号
     undes_source:=des_strhex;
     zi_maskedit.text:=undes_source;
     zi_medit:=trim(undes_source);
     dstr:='卡号:'+undes_source;
     MessageBox(0,'读卡成功!',pchar(dstr),mb_iconinformation+mb_ok);
     close_com();//关闭串口
     application.createform(tfrm_grxx,frm_grxx);
     cmb_item:=tj_CmB_fieldname(tj_cmb.ItemIndex);  //取查询条件字段名
     filterstr:=format(cmb_item+' '+combobox1.Text+'''%s''',[zi_medit]);
     frm_grxx.ADOTable1.Filter:=filterstr;
     frm_grxx.ADOTable1.Filtered:=true;
     if frm_grxx.ADOTable1.RecordCount=0 then
     begin
       MessageBox(0,'无相关记录!','查询错误提示',mb_iconerror+mb_ok);
       frm_grxx.Free;
       exit;
     end;
     frm_grxx.Show;
  end
  else
     MessageBox(0,'读卡失败!','读取卡号',mb_iconerror+mb_ok);
end;

function tj_CmB_fieldname(tj_cmb_itemindex:integer):string;
begin
  case tj_cmb_itemindex of
    0:tj_CmB_fieldname:='kh';
    1:tj_CmB_fieldname:='xm';
    2:tj_CmB_fieldname:='sfzh';
  end;
end;

procedure Tfrm_cx.BitBtn2Click(Sender: TObject);
var
  zi_medit:string;
begin
  cmb_item:=tj_CmB_fieldname(tj_cmb.ItemIndex);  //取查询条件字段名
  if trim(tj_cmb.Text)<>'' then  //查询条件不能为空
  begin
      with adoquery1 do
      begin
        Close;
        SQL.Clear;
        zi_medit:=trim(zi_maskedit.text);
        if zi_medit<>'' then   //查询条件的值不能为空
        begin
          {
           wherestr:='where '+combobox1.Text+combobox2.text+':name';
           SQL.Add('select * from 问询记录');
           SQL.Add(wherestr);
           ParamByName('name').AsString:=trim(edit1.Text);
          }
          sql.Add('select * from grxx');
          sql.add(format('where '+cmb_item+' '+combobox1.Text+'''%s''',[zi_medit]));
          //showmessage(sql.Text);
        end
        else
        begin
          SQL.Add('select * from grxx');
        end;
        //if datasource1.DataSet.State=dsinactive then datasource1.DataSet.Open;
        Open;
        if adoquery1.recordcount=0 then   //如果查询无记录,则提示无记录。
           messagebox(0,'无相关记录','查询错误提示',mb_iconerror+mb_ok);
      end;
  end
  else
    messagebox(0,'请选择查询条件!','查询警告提示',mb_iconwarning+mb_ok);
end;

procedure Tfrm_cx.BitBtn3Click(Sender: TObject);
begin
  close;
end;

procedure Tfrm_cx.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   self.Free;
end;

procedure Tfrm_cx.FormCreate(Sender: TObject);
begin
  adoconnection1.ConnectionString:=format(frm_sfsb.connstr,[frm_sfsb.dbfilename,'tjz929']);
  kxdh_combobox.Text:=cardtype_str(cardtype_num_v);
end;

procedure Tfrm_cx.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;

end.

⌨️ 快捷键说明

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