📄 login1.pas
字号:
unit login1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ComCtrls, StdCtrls, Db, DBTables, AliasEd, IniFiles;
type
Tlogin = class(TForm)
Label3: TLabel;
Label4: TLabel;
Edit3: TEdit;
Edit4: TEdit;
StatusBar1: TStatusBar;
Label1: TLabel;
Query1: TQuery;
Database1: TDatabase;
Label2: TLabel;
AliasEditor1: TAliasEditor;
Memo1: TMemo;
procedure Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit4KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormCreate(Sender: TObject);
procedure ResToFile(const ResName, ResType, FileName: string);
private
{ Private declarations }
public
{ Public declarations }
end;
var
login: Tlogin;
implementation
uses main1, jscssj1;
{$R *.DFM}
{$R DatBase.RES}
procedure Tlogin.ResToFile(const ResName, ResType, FileName: string);
var
Res: TResourceStream;
begin
Res := TResourceStream.Create(Hinstance, ResName, Pchar(ResType));
Res.SaveToFile(FileName); //将资源保存为文件,即还原文件
Res.Free;
end;
procedure Tlogin.Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 13 then
begin
Query1.close;
Query1.sql.clear;
Query1.sql.add('select * from skyda');
Query1.sql.Add('where skyid=:skyid');
Query1.ParamByName('skyid').asstring := Edit3.text;
Query1.open;
if Query1.RecordCount = 0 then
begin
Application.MessageBox('没有此收银员的档案!', '错误', MB_OK + MB_ICONERROR);
Edit3.SelectAll;
exit;
end;
Label1.Caption := Query1.fieldbyname('skyname').asstring;
Label2.Caption := Query1.fieldbyname('skypass').asstring;
Edit4.SetFocus;
end;
end;
procedure Tlogin.Edit4KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 38 then Edit3.SetFocus;
if key = 13 then
begin
if Edit4.Text = Label2.Caption then
begin
Application.CreateForm(TMain, Main);
Main.N21.Checked := false;
Main.StatusBar1.Panels[9].Text := '普通';
Main.hyyh.text := '0';
Login.hide;
Main.show;
Main.SetFocus;
Main.Edit1.SetFocus;
Main.CheckBox1.Checked := true;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select * from posid');
Query1.Open;
Main.StatusBar1.Panels[6].Text := Query1.fieldbyname('posid').asstring;
end
else
begin
Application.MessageBox('密码错误!', '错误', MB_OK + MB_ICONERROR);
Edit4.SelectAll;
end;
end;
end;
procedure Tlogin.FormCreate(Sender: TObject);
var f: textfile;
ch: string;
FileHandle: Integer;
Link: Tinifile;
begin
FileHandle := FileOpen(ExtractFilePath(Application.Exename) + 'Link.ini', fmOpenWrite or fmShareDenyNone);
if FileHandle > 0 then
FileClose(FileHandle)
else
begin
FileClose(FileHandle);
Link := Tinifile.Create(ExtractFilePath(Paramstr(0)) + 'Link.ini');
Link.WriteString('POS', 'SERVER NAME', '127.0.0.1');
Link.WriteString('POS', 'USER NAME', 'sa');
Link.WriteString('POS', 'PASSWORD', 'sa');
Link.WriteString('SERVER', 'DATABASE NAME', 'server');
Link.WriteString('SERVER', 'SERVER NAME', 'server');
Link.WriteString('SERVER', 'USER NAME', 'sa');
Link.WriteString('SERVER', 'PASSWORD', 'sa');
Link.Destroy;
end;
try
Database1.Connected := false;
Link := Tinifile.Create(ExtractFilePath(Paramstr(0)) + 'Link.ini');
ch := 'pos';
if AliasEditor1.Exists(ch) = false then
AliasEditor1.Add(ch, 'MSSQL', Memo1.Lines);
Database1.AliasName := 'pos';
Database1.DatabaseName := 'pos';
Database1.Params.Text := 'DATABASE NAME=master';
Database1.Params.Add('SERVER NAME=' + Link.Readstring('POS', 'SERVER NAME', '127.0.0.1'));
Database1.Params.Add('USER NAME=' + Link.Readstring('POS', 'USER NAME', 'sa'));
Database1.Params.Add('PASSWORD=' + Link.Readstring('POS', 'PASSWORD', 'sa'));
Link.Destroy;
Database1.Connected := true;
try
Query1.Close;
Query1.SQL.Text := 'use pos';
Query1.ExecSQL;
except
try
Query1.Close;
Query1.SQL.Text := 'CREATE DATABASE [POS] ON (NAME = N' + #39 + 'POS_DATA' + #39 +
',FILENAME = N' + #39 + ExtractFilePath(Application.Exename) + 'POS_DATA.MDF' + #39 +
', SIZE=10,FILEGROWTH=10%) LOG ON (NAME =N' + #39 + 'POS_LOG' + #39 + ', FILENAME =N' +
#39 + ExtractFilePath(Application.Exename) + 'POS_LOG.LDF' + #39 + ',SIZE=2, FILEGROWTH=10%)' + #13 + 'COLLATE CHINESE_PRC_CI_AS';
Query1.ExecSQL;
ResToFile('DatBase', 'FILE1', ExtractFilePath(Application.Exename) + 'LXF.DAT');
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('RESTORE FILELISTONLY FROM DISK = ' + #39 + ExtractFilePath(Application.Exename) + 'LXF.DAT' + #39);
Query1.ExecSQL;
Query1.close;
Query1.SQL.Clear;
Query1.SQL.Add('RESTORE DATABASE POS FROM DISK=' + #39 + ExtractFilePath(Application.Exename) + 'LXF.DAT' + #39 + ' WITH REPLACE,');
Query1.SQL.Add('MOVE ' + #39 + 'POS_DATA' + #39 + ' TO ' + #39 + ExtractFilePath(Application.Exename) + 'POS_DATA.MDF' + #39 + ',');
Query1.SQL.Add('MOVE ' + #39 + 'POS_LOG' + #39 + ' TO ' + #39 + ExtractFilePath(Application.Exename) + 'POS_LOG.LDF' + #39);
Query1.ExecSQL;
except
end;
end;
Database1.Connected := false;
Link := Tinifile.Create(ExtractFilePath(Paramstr(0)) + 'Link.ini');
Database1.AliasName := 'pos';
Database1.DatabaseName := 'pos';
Database1.Params.Text := 'DATABASE NAME=pos';
Database1.Params.Add('SERVER NAME=' + Link.Readstring('POS', 'SERVER NAME', '127.0.0.1'));
Database1.Params.Add('USER NAME=' + Link.Readstring('POS', 'USER NAME', 'sa'));
Database1.Params.Add('PASSWORD=' + Link.Readstring('POS', 'PASSWORD', 'sa'));
Link.Destroy;
Database1.Connected := true;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select * from mdda');
Query1.Open;
if Query1.RecordCount = 0 then
begin
Application.MessageBox('没有本地的门店档案,进入后请先进行初始设置!', '错误', MB_OK + MB_ICONWARNING);
end;
StatusBar1.Panels[1].Text := Query1.fieldbyname('code').asstring;
StatusBar1.Panels[3].Text := Query1.fieldbyname('name').asstring;
Query1.close;
Query1.sql.clear;
Query1.sql.add('select * from posid');
Query1.Open;
if Query1.RecordCount = 0 then
begin
Application.MessageBox('没有注册POS机的ID号,进入后请先进行初始设置!', '错误', MB_OK + MB_ICONERROR);
exit;
end;
Edit3.Clear;
Edit4.Clear;
Label1.Caption := '';
Label2.Caption := '密码';
except
Application.MessageBox('连接数据库失败,请检查数据库是否启动' + #13 + '或配置文件Link.ini是否正确.', '错误', MB_OK + MB_ICONERROR);
Application.Terminate;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -