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

📄 zcfzlogin.pas

📁 本程序功能是将银行系统的月计表转换为所需要的资产负债表
💻 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 + -