📄 frm_c_yhfkpas.pas
字号:
unit frm_c_yhfkpas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ModalForm, Menus, StdCtrls, ExtCtrls, ComCtrls, ChangeImage,
YLabelButton, UErrDisplay, ImgList, ModalForm1;
type
Tfrm_c_yhfk = class(TMyModalForm1)
GroupBox2: TGroupBox;
TvJglist: TTreeView;
stb: TStatusBar;
GroupBox1: TGroupBox;
lvYhxx: TListView;
GroupBox4: TGroupBox;
rb3: TRadioButton;
edtyhbh: TEdit;
rb4: TRadioButton;
Label2: TLabel;
GroupBox3: TGroupBox;
Label1: TLabel;
cb1: TCheckBox;
cb2: TCheckBox;
cb4: TCheckBox;
cb3: TCheckBox;
cb6: TCheckBox;
cb5: TCheckBox;
cb8: TCheckBox;
cb7: TCheckBox;
DateTimePicker1: TDateTimePicker;
edtSydate: TEdit;
Button1: TButton;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DateTimePicker1Change(Sender: TObject);
procedure rb3Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure TvJglistClick(Sender: TObject);
procedure edtyhbhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cb1Click(Sender: TObject);
procedure lvYhxxClick(Sender: TObject);
procedure lvYhxxColumnClick(Sender: TObject; Column: TListColumn);
procedure FormShow(Sender: TObject);
procedure edtsxfKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
procedure InitValue; //初始化窗体数据
function Fk(sYhbh: string): boolean;
public
{ Public declarations }
end;
var
frm_c_yhfk: Tfrm_c_yhfk;
iCardType: Byte;
implementation
uses DM_DataModal, UGeneralFunc, UPublicFunc, UGlobal, UTYhxx;
{$R *.dfm}
procedure Tfrm_c_yhfk.FormCreate(Sender: TObject);
begin
inherited;
LoadOrganTree(WindData.AdoConn, TvJglist, 4);
with WindData.PublicQuery do
begin
close;
sql.Clear;
sql.Add('select * from zx_s_cardtype order by klbh');
open;
if not eof then
begin
cb1.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
begin
cb2.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
begin
cb3.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
begin
cb4.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
begin
cb5.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
begin
cb6.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
begin
cb7.Caption := fieldbyname('klmc').asstring;
next;
end;
if not eof then
cb8.Caption := fieldbyname('klmc').asstring;
close;
end;
end;
procedure Tfrm_c_yhfk.FormDestroy(Sender: TObject);
begin
inherited;
frm_c_yhfk := nil;
end;
procedure Tfrm_c_yhfk.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
Action := Cafree;
end;
procedure Tfrm_c_yhfk.InitValue;
begin
edtSydate.Text := '';
DateTimePicker1.DateTime := now;
cb1.Checked := True;
cb2.Checked := False;
cb3.Checked := False;
cb4.Checked := False;
cb5.Checked := False;
cb6.Checked := False;
cb7.Checked := False;
cb8.Checked := False;
cb1Click(application);
rb3.Checked := True;
GroupBox1.Enabled := False;
GroupBox2.Enabled := False;
edtyhbh.Text := '';
Label2.Enabled := True;
edtyhbh.Enabled := True;
edtyhbh.SetFocus;
lvYhxx.Items.Clear;
stb.Panels[3].Text := '0';
stb.Panels[5].Text := '0';
stb.Panels[1].Text := '选择用户后点击[发卡] 或 输入预发卡用户编号后按[ENTER]键'
end;
procedure Tfrm_c_yhfk.DateTimePicker1Change(Sender: TObject);
begin
inherited;
edtSydate.Text := datetostr(DateTimePicker1.Date);
end;
procedure Tfrm_c_yhfk.rb3Click(Sender: TObject);
begin
inherited;
GroupBox1.Enabled := rb4.Checked;
GroupBox2.Enabled := rb4.Checked;
Label2.Enabled := rb3.Checked;
edtyhbh.Enabled := rb3.Checked;
if edtyhbh.Enabled then
begin
edtyhbh.SetFocus;
edtyhbh.SelectAll;
end;
end;
procedure Tfrm_c_yhfk.FormActivate(Sender: TObject);
begin
inherited;
// InitValue;
end;
procedure Tfrm_c_yhfk.TvJglistClick(Sender: TObject);
var
TempNode: TTreeNode;
sBjbh: string;
sNodeValue: string;
tlItem: TListItem;
sSql: string;
begin
inherited;
if TvJgList.Selected = nil then exit;
TempNode := TvJgList.Selected;
if TempNode.Level = 1 then
begin
sNodeValue := ptTreeNode(TVJglist.selected.data)^.NodeValue;
if copy(sNodeValue, 1, 1) = 'd' then
begin
Lvyhxx.Clear;
sBjbh := copy(sNodeValue, 2, length(sNodeValue) - 1);
with WindData.PublicQuery do
begin
close;
sql.Clear;
sSql := 'select * from vzx_s_yhxx where bjbh=''' + sBjbh + ''' and sybz=0 order by yhbh';
sql.Add(sSql);
open;
last;
if RecordCount > 0 then
begin
stb.Panels[1].Text := '选择用户后点击[发卡] 或 输入预发卡用户编号后按[ENTER]键';
Stb.Panels[3].Text := inttostr(RecordCount);
Stb.Panels[5].Text := '0';
first;
while not eof do
begin
tlItem := LvYhxx.Items.Add;
tlItem.Caption := fieldbyname('yhbh').asstring;
tlItem.SubItems.Add(fieldbyname('yhxm').asstring);
tlItem.SubItems.Add(fieldbyname('bjmc').asstring);
tLitem.Checked := True;
next;
end;
close;
end
else
begin
LvYhxx.Items.Clear;
stb.Panels[1].Text := '无符合条件的记录';
Stb.Panels[3].Text := '0';
Stb.Panels[5].Text := '0';
end;
lvYhxxClick(application);
end;
end;
end;
end;
procedure Tfrm_c_yhfk.edtyhbhKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
if key = 13 then Button1Click(application);
end;
procedure Tfrm_c_yhfk.cb1Click(Sender: TObject);
var
sStr: string;
begin
inherited;
if cb1.Checked then
sStr := '1'
else
sStr := '0';
if cb2.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
if cb3.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
if cb4.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
if cb5.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
if cb6.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
if cb7.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
if cb8.Checked then
sStr := sStr + '1'
else
sStr := sStr + '0';
iCardType := BstrtoInt(sStr);
end;
function Tfrm_c_yhfk.Fk(sYhbh: string): boolean;
var
yhxx: Tyhxx;
sShowStr: string;
dSxf: double;
begin
result := False;
yhxx := Tyhxx.create;
try
yhxx.GetYhxx(sYhbh);
if yhxx.RetVal = 0 then
begin
if yhxx.Sybz > 0 then
stb.Panels[1].Text := '用户[' + yhxx.Yhxm + ']已发过卡'
else
begin
sShowStr := ' 用户编号:' + yhxx.Yhbh + #10#13 +
' 用户姓名:' + yhxx.Yhxm + #10#13 +
' 所属单位:' + yhxx.Bjmc + #10#13 +
'将ID卡放在发器上后按[确认]键继续';
if application.MessageBox(pchar(sShowStr), '用户发卡', mb_OkCancel + mb_iconquestion) = id_ok then
begin
yhxx.SyDate := strtodate(edtsydate.Text);
yhxx.CardType := iCardType;
yhxx.Cardpwd := sCsPassWord;
stb.Panels[1].Text := '[' + inttostr(yhxx.RetVal) + ']' + yhxx.RetMsg;
if yhxx.Retval = 0 then result := True;
end
else
stb.Panels[1].Text := '用户[' + yhxx.Yhxm + ']取消发卡';
end;
end
else
stb.Panels[1].Text := yhxx.RetMsg;
finally
yhxx.Free;
end;
// ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
end;
procedure Tfrm_c_yhfk.lvYhxxClick(Sender: TObject);
var
i, iCount: integer;
begin
inherited;
iCount := 0;
for i := 0 to lvyhxx.Items.Count - 1 do
begin
if lvyhxx.Items[i].Checked then
inc(iCount);
end;
stb.Panels[3].Text := inttostr(iCount);
stb.Panels[5].Text := '0';
end;
procedure Tfrm_c_yhfk.lvYhxxColumnClick(Sender: TObject;
Column: TListColumn);
var
i: integer;
begin
inherited;
if Column.Index = 0 then
begin
for i := 0 to lvyhxx.Items.Count - 1 do
lvyhxx.Items[i].Checked := not lvyhxx.Items[i].Checked;
lvYhxxClick(application);
end;
end;
procedure Tfrm_c_yhfk.FormShow(Sender: TObject);
begin
inherited;
InitValue;
end;
procedure Tfrm_c_yhfk.edtsxfKeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if key = char(vk_back) then exit;
if ((length(Tedit(sender).text) - pos('.', Tedit(sender).text)) = 2) and (pos('.', Tedit(sender).text) <> 0) then
begin
key := #0;
exit;
end;
//
if (length(Tedit(sender).Text) = 0) or (pos('.', Tedit(sender).text) <> 0) then
begin
if not (key in ['0'..'9']) then key := #0
end
else
begin
if not (key in ['0'..'9', '.']) then key := #0;
end;
end;
procedure Tfrm_c_yhfk.Button1Click(Sender: TObject);
var
i: integer;
begin
inherited;
if trim(edtsydate.text) = '' then
begin
stb.Panels[1].Text := '请选择卡的使用期限';
//ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
exit;
end;
if rb3.Checked then
begin
if trim(edtyhbh.Text) = '' then
begin
stb.Panels[1].Text := '用户编号不能为空';
// ErrDisplay.ErrPrompt(stb.Panels[1].Text, '');
edtyhbh.SetFocus;
exit;
end;
stb.Panels[3].Text := '1';
stb.Panels[5].Text := '0';
if Fk(edtyhbh.Text) then stb.Panels[5].Text := '1';
end;
if rb4.Checked then
begin
for i := 0 to lvyhxx.Items.Count - 1 do
begin
if not lvyhxx.Items[i].Checked then continue;
if not FK(lvyhxx.Items[i].Caption) then
begin
if application.MessageBox('是否继续发卡?', '用户发卡', mb_YesNo + mb_iconquestion) = id_NO then
break;
end
else
stb.Panels[5].Text := inttostr(strtoint(stb.Panels[5].Text) + 1);
end;
if i = lvyhxx.Items.Count then
stb.Panels[1].Text := '发卡结束'
else
stb.Panels[1].Text := '发卡被取消';
lvyhxx.Items.Clear;
end;
end;
procedure Tfrm_c_yhfk.Button2Click(Sender: TObject);
begin
inherited;
InitValue;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -