⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 login1.pas

📁 思微POS连锁超市管理系统 (商业代码),几年前的东西了
💻 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 + -