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

📄 baseformunit.pas

📁 用delphi+intraweb写的简单报表系统(activeform使用技术)
💻 PAS
字号:
unit BaseFormUnit;

interface

uses
  Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, Controls,
  Forms, IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, dateutils,
  IWControl, IWCompRectangle, IWExtCtrls, IWVCLBaseContainer, IWContainer,
  IWHTMLContainer, IWRegion, IWVCLComponent, IWBaseLayoutComponent,
  IWBaseContainerLayout, IWContainerLayout, IWTemplateProcessorHTML,
  IWCompListbox, IWCompLabel, IWCompEdit;

type
  TFormBase = class(TIWAppForm)
    Top: TIWRectangle;
    Bottom: TIWRectangle;
    pnllogin: TIWRegion;
    edtNickname: TIWEdit;
    edtPassword: TIWEdit;
    tphLogin: TIWTemplateProcessorHTML;
    tphVarInput: TIWTemplateProcessorHTML;
    userstat: TIWRectangle;
    VarInput: TIWRegion;
    edtStartDate: TIWEdit;
    edtEndDate: TIWEdit;
    btnLogin: TIWImageFile;
    procedure IWAppFormRender(Sender: TObject);
    procedure IWAppFormDestroy(Sender: TObject);
    procedure IWAppFormCreate(Sender: TObject);
    procedure btnLoginClick(Sender: TObject);
    procedure pnlloginRender(Sender: TObject);
  private
    procedure SetShow;
    procedure ShowLogin;
    procedure GetInput;
    procedure ShowUserStat;
    procedure ShowClientInfo;
    function SaveClientInfo: Boolean;
    function CheckInput: Boolean;
    procedure ShowVarInput;
  public
    FListBottom, FListTop: TStrings;
    FDate: TDateTime;
    FProv, FCity: string;
    procedure ShowLucky(flag: Integer = 0);
    function ProcessClientInfo: Boolean;
    procedure DisableInputEdit;
  end;

implementation

uses GlobalVar, ServerController, DataModuleUnit, GlobalUnit, adofuncs, xfunc;

{$R *.dfm}

procedure TFormBase.IWAppFormRender(Sender: TObject);
begin
  AddLog(logs, AppDir, 'baseform render start.');

  Self.SetShow;
  Self.ShowLogin;
  Self.ShowUserStat;
  Self.ShowVarInput;
  edtPassword.Clear;
  edtNickname.Clear;

  if (UserSession.LoginUser.checkin) and (UserSession.LoginUser.name <> '') then
  begin
    DisableInputEdit;
    Self.ShowClientInfo;
  end;
        
  try
    FListBottom.LoadFromFile(AppDir + '/files/end.html');
    FListTop.LoadFromFile(AppDir + '/files/header.html');
    Bottom.Text := FListBottom.Text;
    Top.Text := FListTop.Text;
  except
  end;
  AddLog(logs, AppDir, 'baseform render finish.');
end;

procedure TFormBase.IWAppFormDestroy(Sender: TObject);
begin
  FListBottom.Free;
  FListTop.Free;
end;

procedure TFormBase.IWAppFormCreate(Sender: TObject);
begin
  AddLog(logs, AppDir, 'baseform create start.');

  FListBottom := TStringList.Create;
  FListTop := TStringList.Create;
  AddLog(logs, AppDir, 'baseform create finish.');
end;

procedure TFormBase.GetInput;
begin

end;

//========================================
procedure TFormBase.SetShow;
begin

end;

function TFormBase.CheckInput: Boolean;
begin

end;

procedure TFormBase.btnLoginClick(Sender: TObject);
var
  sql, connstr, nickname, password: string;

  procedure CleanEdit;
  begin
    edtNickname.Text := '';
    edtPassword.Text := '';
    edtNickname.SetFocus;
  end;

begin
//  LDB := ReadDbLinks(AppDir, 'userdb');
//  connstr := GetConnStr('MDB', LDB.name, LDB.Server, LDB.Pass, LDB.User);

  if ConnectADO(FDM.DYConn, connstr) <> 1 then
  begin
    WebApplication.ShowMessage('数据连接参数有错误,请联系管理员解决...');
    WebApplication.Terminate('数据连接参数有错误,请联系管理员解决...');
  end;

  nickname := trim(edtNickname.Text);
  password := trim(edtPassword.Text);

  if (nickname = '') or (password = '') then
  begin
    WebApplication.ShowMessage('嗯, 你没有输入会员信息.');
    exit;
  end;

  if (Pos(' or ', nickname) > 0) or (Pos(')or(', nickname) > 0) then
  begin
    WebApplication.ShowMessage('嗯, 用户名中有非法字符!');
    CleanEdit;
    exit;
  end;

  sql := 'select * from [webuser] where nickname=''' + nickname + ''''; // and password='''+password+'''';

  if OpenQuery(FDM.aqLogin, sql) = 1 then
  begin
    if FDM.aqLogin.Locate('password', password, []) then
    begin
      UserSession.LoginUser.name := nickname;
      UserSession.LoginUser.truename := trim(FDM.aqLogin.FieldByName('truename').AsString);
      UserSession.LoginUser.flag := FDM.aqLogin.FieldByName('userflag').AsInteger;
      UserSession.LoginUser.audit := FDM.aqLogin.FieldByName('auditing').AsInteger;
    end else
    begin
      WebApplication.ShowMessage('登陆失败! 请检查用户名密码!');
      CleanEdit;
      exit;
    end;
  end
  else
  begin
    WebApplication.ShowMessage('对不起! 你可能没有注册哦!');
    CleanEdit;
    exit;
  end;

  FDM.DYConn.Close;

  if (UserSession.LoginUser.audit = 0) then
  begin
    WebApplication.ShowMessage('登陆失败! 此用户资料尚未被管理员审核启用!');
    CleanEdit;
    exit;
  end;

  //载入用户状态信息模板
  ShowUserStat;
  Self.ShowLogin;

  //UserSession.LoginUser.checkin := FDM.CheckInHaveNickName(UserSession.LoginUser.name);
  //  VarInput.Enabled := not UserSession.LoginUser.checkin;
  if UserSession.LoginUser.checkin then
  begin
    DisableInputEdit;
    
    Self.ShowClientInfo;
  end;
end;


procedure TFormBase.pnlloginRender(Sender: TObject);
begin
  //btnLogin.ImageFile.Filename := ReadFileNameText(AppDir, 'skinoption', 'btnlogin');
end;

procedure TFormBase.ShowUserStat;
var
  S, sName: string;
begin
  S := IIF(UserSession.LoginUser.flag = 1, '正式会员', '免费会员');
  sName := IIF(UserSession.LoginUser.truename <> '', UserSession.LoginUser.truename, UserSession.LoginUser.name);
  LoadHtml(AppDir, 'skinoption', 'userstat', FListBottom);
  FListBottom.Text := StringReplace(FListBottom.Text, '%username%', sName, []);
  userstat.Text := StringReplace(FListBottom.Text, '%userstat%', S, []);
end;

procedure TFormBase.ShowLogin;
begin
  pnllogin.Visible := (UserSession.LoginUser.flag = 0);
end;

procedure TFormBase.ShowLucky(flag: Integer);
begin

end;

procedure TFormBase.ShowClientInfo;
begin

end;

function TFormBase.SaveClientInfo: Boolean;
begin

end;

function TFormBase.ProcessClientInfo: Boolean;
begin

end;

procedure TFormBase.DisableInputEdit;
begin

end;

procedure TFormBase.ShowVarInput;
begin
//  VarInput.Visible:=(UserSession.LoginUser.name<>'');
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -