📄 logon_un.pas
字号:
unit logon_un;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, bsSkinBoxCtrls, StdCtrls, bsSkinCtrls, Mask, ExtCtrls,
BusinessSkinForm, bsMessages,StrUtils,DateUtils;
type
Tlogon = class(TForm)
bsBusinessSkinForm1: TbsBusinessSkinForm;
bsSkinGroupBox1: TbsSkinGroupBox;
Image1: TImage;
bsSkinPanel1: TbsSkinPanel;
bsSkinXFormButton1: TbsSkinXFormButton;
bsSkinXFormButton2: TbsSkinXFormButton;
bsSkinEdit1: TbsSkinEdit;
bsSkinStdLabel1: TbsSkinStdLabel;
bsSkinStdLabel2: TbsSkinStdLabel;
bsSkinEdit2: TbsSkinEdit;
bsSkinStdLabel3: TbsSkinStdLabel;
bsSkinMaskEdit1: TbsSkinMaskEdit;
bsSkinMessage1: TbsSkinMessage;
procedure bsSkinXFormButton1Click(Sender: TObject);
procedure bsSkinXFormButton2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bsSkinEdit1KeyPress(Sender: TObject; var Key: Char);
procedure bsSkinEdit1Exit(Sender: TObject);
procedure bsSkinMaskEdit1KeyPress(Sender: TObject; var Key: Char);
procedure FormKeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
logon: Tlogon;
implementation
uses dm_un,main_un,globe;
{$R *.dfm}
procedure Tlogon.bsSkinXFormButton1Click(Sender: TObject);
var
mm_date:tdatetime;
begin
DM:=TDM.Create(NIL);
with dm do
begin
q_a.Close;
q_a.SQL.Clear;
q_a.SQL.Add('select * from tuser where USER_ID=:id and USER_PASS=:pass');
q_a.Parameters.ParamByName('id').Value:=trim(bsskinedit1.Text);
q_a.Parameters.ParamByName('pass').Value:=trim(bsskinmaskedit1.Text);
q_a.Prepared;
q_a.Open;
end;
if dm.q_a.RECORDCOUNT>0 then
begin
with dm do
begin
q_b.Close;
q_b.SQL.Clear;
q_b.SQL.Add('update tuser set USER_LOG_TIME=:sj1 where user_id=:user_id1');
q_b.Parameters.ParamByName('sj1').Value:=now;
q_b.Parameters.ParamByName('user_id1').Value:= dm.q_a.FieldValues ['user_id'];
q_b.Prepared;
q_b.ExecSQL;
q_c.Close;
q_c.SQL.Clear;
q_c.SQL.Add('select * from system_set') ;
q_c.Prepared;
q_c.Open;
end;
self.ModalResult:=mryes;
user_name:=dm.q_a.FieldValues ['user_name'];
user_pass:=dm.q_a.FieldValues ['user_pass'];
user_qx:=dm.q_a.FieldValues ['user_qx'];
user_id:= dm.q_a.FieldValues ['user_id'];
if dm.q_c.Recordset.RecordCount >0 then
begin
system_dw:=dm.q_c.FieldValues ['sys_name'];
sys_end_date:=dm.q_c.FieldValues ['sys_end'];
sys_end:=datetostr(dm.q_c.FieldValues ['sys_end_date']);
if not varisnull(dm.q_c.FieldValues ['sys_memo2']) then
system_ime:=dm.q_c.FieldValues ['sys_memo2']
else
bsskinmessage1.MessageDlg('还没有进行系统输入法设置,请到系统设置中进行设置!',mtinformation,[mbok],0);
SYS_OPER:='登录';
if sys_end_date=trim(inttostr(dayof(now))) then
//如果今天是结帐日,那么更换系统中的结帐日期
with dm do
begin
q_e.Close;
q_e.SQL.Clear;
q_e.SQL.Add('update system_set set sys_end_date=:end_date ') ;
q_e.Parameters.ParamByName('end_date').Value:=date;
q_e.Prepared;
q_e.ExecSQL;
end
else
//如果今天不是结帐日,进行日期的比较,从而算出当前的日期是不是已过过了结帐日
begin
if abs(monthof(date)-monthof(dm.q_c.FieldValues ['sys_end_date']))>=0 then
begin
if (dayof(date)-strtoint(sys_end_date))>0 then
begin
mm_date:=date;
while dayof(dateof(mm_date))-strtoint(sys_end_date)<>0 do mm_date:=mm_date-1;
with dm do
begin
q_e.Close;
q_e.SQL.Clear;
q_e.SQL.Add('update system_set set sys_end_date=:end_date ') ;
q_e.Parameters.ParamByName('end_date').Value:=datetostr(mm_date);
q_e.Prepared;
q_e.ExecSQL;
end ;
end;
with dm do
begin
q_c.Close;
q_c.SQL.Clear;
q_c.SQL.Add('select * from system_set') ;
q_c.Prepared;
q_c.Open;
end;
if (monthof(date)-monthof(dm.q_c.FieldValues ['sys_end_date']))>0 then
begin
mm_date:=dm.q_c.FieldValues ['sys_end_date'];
while monthof(date)-monthof(dateof(mm_date))>1 do mm_date:=dateof(mm_date)+1;
while strtoint(sys_end_date)-dayof(dateof(mm_date))<>0 do mm_date:=dateof(mm_date)+1;
with dm do
begin
q_e.Close;
q_e.SQL.Clear;
q_e.SQL.Add('update system_set set sys_end_date=:end_date ') ;
q_e.Parameters.ParamByName('end_date').Value:=datetostr(mm_date);
q_e.Prepared;
q_e.ExecSQL;
end
end;
end;
end;
dm.q_c.Close;
dm.q_c.Prepared;
dm.q_c.Open;
system_dw:=dm.q_c.FieldValues ['sys_name'];
sys_end_date:=dm.q_c.FieldValues ['sys_end'];
sys_end:=datetostr(dm.q_c.FieldValues ['sys_end_date']);
writetolog('0.00');
end
else
bsskinmessage1.MessageDlg('系统还没有进行单位及结帐日的设置...请进入系统后到<设置>菜单进行相关的设置!!',mtinformation,[mbok],0);
end
else
begin
BSSKINMESSAGE1.MessageDlg('用户名或密码有误,请检查..',mterror,[mbyes],0);
BSSKINEDIT1.SetFocus;
end;
end;
procedure Tlogon.bsSkinXFormButton2Click(Sender: TObject);
begin
self.ModalResult:=mrcancel;
end;
procedure Tlogon.FormShow(Sender: TObject);
begin
TRY
BEGIN
dm:=tdm.Create(nil);
DM.sj.Connected :=TRUE;
END
except
BEGIN
BSSKINMESSAGE1.MessageDlg('不能连接到系统数据库...请检查数据库是否正常'+chr(13)+'系统将退出....',mterror,[mbyes],0);
// bsskinxformbutton2.OnClick(sender);
// self.ModalResult:=mrcancel;
application.Terminate;
// dm:=tdm.Create(nil);
// dm.sj.Connected:=true;
END;
end;
end;
procedure Tlogon.bsSkinEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bsskinmaskedit1.SetFocus;
end;
procedure Tlogon.bsSkinEdit1Exit(Sender: TObject);
begin
with dm do
begin
q_a.Close;
q_a.SQL.Clear;
q_a.SQL.Add('select * from tuser where user_id=:tmpid');
q_a.Parameters.ParamByName('tmpid').Value:=trim(bsskinedit1.Text);
q_a.Prepared;
q_a.Open;
end;
if dm.q_a.Recordset.RecordCount >0 then
bsskinedit2.Text:=dm.q_a.FieldValues['user_name']
else
begin
BSSKINMESSAGE1.MessageDlg('输入的工号不存在,请重新输入。',mterror,[mbyes],0);
bsskinedit1.Text:='';
bsskinedit1.SetFocus;
end;
end;
procedure Tlogon.bsSkinMaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
bsskinxformbutton1click(nil);
if key=#27 then
application.Terminate;
end;
procedure Tlogon.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#27 then
application.Terminate;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -