📄 cx_u.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 + -