?? 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 + -