📄 zcfzlogin.pas
字号:
unit ZCFZLogin;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComObj, Mask, ComCtrls, DB, variants, ExtCtrls,
bsSkinBoxCtrls, bsSkinCtrls, BusinessSkinForm, Registry;
type
TZCFZPass = class(TForm)
DateTimePicker1: TDateTimePicker;
bsBusinessSkinForm1: TbsBusinessSkinForm;
Button1: TbsSkinButton;
Label1: TbsSkinStdLabel;
Edit3: TbsSkinEdit;
Label4: TbsSkinStdLabel;
Label2: TbsSkinStdLabel;
Label3: TbsSkinStdLabel;
Label5: TbsSkinStdLabel;
Button2: TbsSkinButton;
Edit1: TbsSkinEdit;
Edit4: TbsSkinEdit;
bsSkinButton1: TbsSkinButton;
Edit2: TbsSkinPasswordEdit;
Button3: TbsSkinButton;
Label6: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure FormCreate(Sender: TObject);
procedure Edit3Exit(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure bsSkinButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
procedure LoadSkin(AFileName: string);
public
{ Public declarations }
end;
var
ZCFZPass: TZCFZPass;
j: integer;
implementation
uses ZCFZ_DataModel, ZCFZ_BS, FunctionModel, ZCFZRJZC, ZCFZMain;
{$R *.DFM}
procedure TZCFZPass.Button1Click(Sender: TObject);
var
s, s1: string;
RegistryZcfz: TRegistry;
begin
if Edit1.Text = '' then
begin
Edit1.SetFocus;
Exit;
end;
if Edit2.Text = '' then
begin
Edit2.SetFocus;
Exit;
end;
if Edit3.Text = '' then
begin
Edit3.SetFocus;
Exit;
end;
if Edit4.Text = '' then
begin
Edit4.SetFocus;
Exit;
end;
WorkName := Edit1.text;
WorkDwm := edit4.text;
workId := edit3.text;
WorkDate := trunc(DateTimePicker1.Date);
workPath := ExtractFilePath(application.ExeName);
DecodeDate(WorkDate, Year, Month, Day);
with ZCFZ_DM do
begin
ZCFZ_Qry.SQL.Clear;
s := Format('select * from zcfzgzrq where yhbh=''%s''',
[Edit3.Text]);
ZCFZ_Qry.SQL.Add(s);
ZCFZ_Qry.Active := True;
if ZCFZ_Qry.Eof then
begin
bsSkinMessage1.MessageDlg('无此用户编号,请重新输入。',
mtConfirmation, [mbYes], 0);
Edit3.Text := '';
Edit3.SetFocus;
Exit;
end
else
begin
if ZCFZ_Qry['yhkl'] <> edit2.text then
begin
j := j + 1;
if j > 3 then application.Terminate;
bsSkinMessage1.MessageDlg('用户的口令错误,请重新输入。',
mtConfirmation, [mbYes], 0);
Edit2.SetFocus;
edit2.SelectAll;
exit;
end;
end;
ZCFZ_Qry.SQL.Clear;
s1 := FormatDateTime('yyyy-mm-dd', DateTimePicker1.Date);
s := 'select QUARTER(''' + s1 + ''') as jd ';
ZCFZ_Qry.SQL.Add(s);
ZCFZ_Qry.Active := True; //求出工作日期的季度数
jd := ZCFZ_Qry['jd'];
s := Format(' 本程序利用核算系统生成的月计表和国库' + #13#10 +
'月计表生成会计报表系统所需的月计表和资产' + #13#10 +
'负债表所需要的数据。请确认您现在要处理是' + #13#10 +
'%d年%2.2d月,第%s季度的数据吗?', [Year, month, JDStr[jd - 1]]);
if bsSkinMessage1.MessageDlg(s, mtConfirmation, [mbYes, mbNo], 0)
= mrNo then
begin
DateTimePicker1.SetFocus;
Exit;
end;
ZCFZ_QryEdit.SQL.Clear;
s := Format('select * from zcfzgzrq where yhbh=''%s''', [Edit3.Text]);
ZCFZ_QryEdit.SQL.Add(s);
ZCFZ_QryEdit.Active := True;
ZCFZ_QryEdit.Edit;
ZCFZ_QryEdit['yhmc'] := Edit1.Text;
ZCFZ_QryEdit['sydw'] := Edit4.Text;
ZCFZ_QryEdit['gzrq'] := FormatDateTime('yyyy-mm-dd', WorkDate);
ZCFZ_QryEdit.Post;
hide;
ZCFZMainFrm := TZCFZMainFrm.Create(Application);
ZCFZMainFrm.ShowModal;
ZCFZMainFrm.Free;
close;
end;
end;
procedure TZCFZPass.Button2Click(Sender: TObject);
begin
Close;
ModalResult := mrCancel;
end;
procedure TZCFZPass.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if (Key <> Char(VK_RETURN)) and (Key <> Char(VK_BACK)) and
((Key < Char($30)) or (Key > Char($39))) then
Key := #0;
if Key = #13 then Edit2.SetFocus;
end;
procedure TZCFZPass.FormCreate(Sender: TObject);
var
fileLj1, s: string;
begin
DateTimePicker1.Date := Now;
with ZCFZ_DM do
begin
try
REFRESH;
ZCFZ0.Connected := false;
ZCFZ0.Database := 'zcfz0';
ZCFZ0.Connected := true;
except
screen.Cursor := crHourGlass;
try
//创建数据库和建立表程序
ModalResult := mrOk;
ZCFZ0.Database := 'mysql';
ZCFZ0.Connected := true;
ZCFZ_SQLPrc.Script.Text := 'create database if not exists zcfz0';
ZCFZ_SQLPrc.Execute;
ZCFZ0.Connected := false;
ZCFZ0.Database := 'zcfz0';
ZCFZ0.Connect; // .Connected:=true;
screen.Cursor := crDefault;
except
bsSkinMessage1.MessageDlg('数据库服务尚未启动,本系统无法运行!',
mtConfirmation, [mbYes], 0);
ModalResult := mrCancel;
Application.Terminate;
end;
end;
FileLj := ExtractFilePath(application.ExeName);
ZCFZ_SQLPrc.LoadFromFile(FileLj + 'ZCFZ_CreateTable.sql');
ZCFZ_SQLPrc.Execute;
ZCFZ_Qry.SQL.Clear;
s := 'select * from zcfzgzrq';
ZCFZ_Qry.SQL.Add(s);
ZCFZ_Qry.Active := True;
if ZCFZ_Qry.Eof then
begin
s :=
'INSERT INTO zcfzgzrq values (''1'', ''默认用户'', ''111'', ''人行朝阳市中心支行'',''2006-07-11'')';
ZCFZ_SQLPrc.Script.Text := s;
ZCFZ_SQLPrc.Execute;
try
{$I-}
MkDir('c:\zcfzTmpData');
filelj1 := 'c:\zcfzTmpData\'; //临时路径名
CopyFile(PChar(FileLj + 'zcfzxmb.txt'), pchar(FileLj1 +
'zcfzxmb.txt'), True);
s := replacesub(
format('LOAD DATA LOCAL INFILE ''%s'' INTO TABLE zcfzxmb FIELDS TERMINATED BY ''%s''',
[FileLj1 + 'zcfzxmb.txt', ',']), '\', '/');
s := s + ' LINES TERMINATED BY ''\r\n''';
ZCFZ_SQLPrc.Script.Text := s;
ZCFZ_SQLPrc.Execute;
CopyFile(PChar(FileLj + 'zcfzgbb.txt'), pchar(FileLj1 +
'zcfzgbb.txt'), True);
s := replacesub(
format('LOAD DATA LOCAL INFILE ''%s'' INTO TABLE zcfzgbb FIELDS TERMINATED BY ''%s''',
[FileLj1 + 'zcfzgbb.txt', ',']), '\', '/');
s := s + ' LINES TERMINATED BY ''\r\n''';
ZCFZ_SQLPrc.Script.Text := s;
ZCFZ_SQLPrc.Execute;
CopyFile(PChar(FileLj + 'xkmb.txt'), pchar(FileLj1 +
'xkmb.txt'), True);
s := replacesub(
format('LOAD DATA LOCAL INFILE ''%s'' INTO TABLE xkmb ',
[FileLj1 + 'xkmb.txt']), '\', '/');
s := s + ' FIELDS TERMINATED BY ''\t'' LINES TERMINATED BY ''\r\n''';
ZCFZ_SQLPrc.Script.Text := s;
ZCFZ_SQLPrc.Execute;
refresh;
finally
Deletefile(FileLj1 + 'zcfzgbb.txt');
Deletefile(FileLj1 + 'zcfzxmb.txt');
Deletefile(FileLj1 + 'xkmb.txt');
RmDir('c:\cwfxTmpData');
end;
end;
end;
if bolRegisted then
begin
Label6.Visible := bolISExpire or (not bolRegisted);
Button3.Visible := bolISExpire or (not bolRegisted);
Height := 210;
end
else
begin
Height := 245;
Label6.Caption := Format('本软件还可以自由使用%d天!', [Trunc(ExpireDate -
now)]);
end;
end;
procedure TZCFZPass.Edit3Exit(Sender: TObject);
begin
with ZCFZ_DM do
begin
if Edit3.Text = '' then exit;
ZCFZ_Qry.SQL.Clear;
s := Format('select * from zcfzgzrq where yhbh=''%s''', [Edit3.Text]);
ZCFZ_Qry.SQL.Add(s);
ZCFZ_Qry.Active := True;
if ZCFZ_Qry.Eof then
begin
bsSkinMessage1.MessageDlg('用户编号错误,请重新输入。',
mtConfirmation, [mbYes], 0);
edit3.SelectAll;
exit;
end;
Edit1.Text := ZCFZ_Qry['yhmc'];
Edit4.Text := ZCFZ_Qry['sydw'];
end;
end;
procedure TZCFZPass.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #13 then Button1.SetFocus;
end;
procedure TZCFZPass.bsSkinButton1Click(Sender: TObject);
begin
if ZCFZ_DM.OD.Execute then LoadSkin(ZCFZ_DM.OD.FileName);
end;
procedure TZCFZPass.LoadSkin(AFileName: string);
var
Dir: string;
Ext: string;
begin
Ext := ExtractFileExt(AFileName);
if LowerCase(Ext) = '.ini' then
ZCFZ_DM.bsSkinData1.LoadFromFile(AFileName)
else
if LowerCase(Ext) = '.skn' then
ZCFZ_DM.bsSkinData1.LoadFromCompressedFile(AFileName);
Dir := ExtractFilePath(AFileName);
end;
procedure TZCFZPass.FormShow(Sender: TObject);
begin
j := 0;
with ZCFZ_DM do
begin
try
ZCFZ_Qry.SQL.Clear;
s := 'select * from zcfzgzrq';
ZCFZ_Qry.SQL.Add(s);
ZCFZ_Qry.Active := True;
if ZCFZ_Qry.eof then
edit4.Enabled := true
else
begin
edit4.Text := ZCFZ_Qry['sydw'];
DateTimePicker1.DateTime := ZCFZ_Qry['gzrq'];
end;
except
MessageBox(Handle,
'数据库服务尚未启动!',
'错误提示', MB_OK or MB_ICONERROR);
application.Terminate;
end;
end;
Edit3.SetFocus;
end;
procedure TZCFZPass.Button3Click(Sender: TObject);
begin
ZCFZRJZCFrm := TZCFZRJZCFrm.Create(Self);
try
ZCFZRJZCFrm.ShowModal;
if ZCFZRJZCFrm.ModalResult = mrOk then
begin
RegistrySetString('\Software\Haichang\报表处理', 'Registration',
ZCFZRJZCFrm.RzMaskEdit2.Text);
Button3.Visible := False;
Label6.Visible := False;
Height := 210;
bolRegisted := True;
end;
finally
ZCFZRJZCFrm.Free;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -