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

📄 fmain.pas

📁 财务报表系统,包括系统登陆
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit FMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ExtCtrls, Grids, DBGrids, StdCtrls, Buttons, FPBase, DB,
  ADODB, DateUtils, ComObj, AppEvnts;

type
  TfrmMain = class(TForm)
    pgc1: TPageControl;
    ts1: TTabSheet;
    ts2: TTabSheet;
    ts3: TTabSheet;
    ts4: TTabSheet;
    ts5: TTabSheet;
    ts6: TTabSheet;
    ts7: TTabSheet;
    ts8: TTabSheet;
    pnl1: TPanel;
    dbgrd5: TDBGrid;
    pnl2: TPanel;
    rg1: TRadioGroup;
    dbgrd1: TDBGrid;
    btn1: TSpeedButton;
    btn2: TSpeedButton;
    btn3: TSpeedButton;
    btn4: TSpeedButton;
    btn5: TSpeedButton;
    btn6: TSpeedButton;
    btn7: TSpeedButton;
    btn8: TSpeedButton;
    btn9: TSpeedButton;
    dbgrd2: TDBGrid;
    dbgrd3: TDBGrid;
    btn13: TSpeedButton;
    btn14: TSpeedButton;
    btn15: TSpeedButton;
    dbgrd7: TDBGrid;
    pnl3: TPanel;
    btn16: TSpeedButton;
    btn17: TSpeedButton;
    btn18: TSpeedButton;
    spl1: TSplitter;
    dbgrd6: TDBGrid;
    dbgrd8: TDBGrid;
    spl2: TSplitter;
    pnl4: TPanel;
    btn19: TSpeedButton;
    btn20: TSpeedButton;
    btn21: TSpeedButton;
    dbgrd9: TDBGrid;
    dbgrd10: TDBGrid;
    spl3: TSplitter;
    pnl5: TPanel;
    btn22: TSpeedButton;
    btn23: TSpeedButton;
    btn24: TSpeedButton;
    dbgrd11: TDBGrid;
    dbgrd12: TDBGrid;
    spl4: TSplitter;
    pnl6: TPanel;
    btn25: TSpeedButton;
    btn26: TSpeedButton;
    btn27: TSpeedButton;
    dbgrd13: TDBGrid;
    dbgrd4: TDBGrid;
    btn10: TSpeedButton;
    btn11: TSpeedButton;
    btn12: TSpeedButton;
    dbgrd14: TDBGrid;
    spl5: TSplitter;
    btn28: TSpeedButton;
    edt1: TEdit;
    lbl1: TLabel;
    cbb1: TComboBox;
    lbl2: TLabel;
    pnl7: TPanel;
    btn29: TSpeedButton;
    btn30: TSpeedButton;
    btn31: TSpeedButton;
    btn32: TSpeedButton;
    lbl3: TLabel;
    edt2: TEdit;
    dbgrd15: TDBGrid;
    edt3: TEdit;
    pb1: TProgressBar;
    pb2: TProgressBar;
    btn33: TButton;
    btn35: TSpeedButton;
    ApplicationEvents1: TApplicationEvents;
    lbl5: TLabel;
    procedure FormShow(Sender: TObject);
    procedure rg1Click(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
    procedure btn3Click(Sender: TObject);
    procedure btn4Click(Sender: TObject);
    procedure btn5Click(Sender: TObject);
    procedure btn6Click(Sender: TObject);
    procedure btn7Click(Sender: TObject);
    procedure btn8Click(Sender: TObject);
    procedure btn9Click(Sender: TObject);
    procedure btn10Click(Sender: TObject);
    procedure btn11Click(Sender: TObject);
    procedure btn12Click(Sender: TObject);
    procedure btn13Click(Sender: TObject);
    procedure btn14Click(Sender: TObject);
    procedure btn15Click(Sender: TObject);
    procedure btn16Click(Sender: TObject);
    procedure btn17Click(Sender: TObject);
    procedure btn18Click(Sender: TObject);
    procedure btn19Click(Sender: TObject);
    procedure btn20Click(Sender: TObject);
    procedure btn21Click(Sender: TObject);
    procedure btn22Click(Sender: TObject);
    procedure btn23Click(Sender: TObject);
    procedure btn24Click(Sender: TObject);
    procedure ts6Show(Sender: TObject);
    procedure btn25Click(Sender: TObject);
    procedure btn26Click(Sender: TObject);
    procedure btn27Click(Sender: TObject);
    procedure btn28Click(Sender: TObject);
    procedure ts7Show(Sender: TObject);
    procedure btn29Click(Sender: TObject);
    procedure btn30Click(Sender: TObject);
    procedure btn31Click(Sender: TObject);
    procedure btn32Click(Sender: TObject);
    procedure ApplicationEvents1Exception(Sender: TObject; E: Exception);
    procedure btn33Click(Sender: TObject);
    procedure btn34Click(Sender: TObject);
    procedure btn35Click(Sender: TObject);
    procedure btn36Click(Sender: TObject);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    procedure showGzbz(Index: Integer);
    function AddDbData(frm: TfrmPBase): Boolean;
    function ModifyDbData(frm: TfrmPBase; ds: TDataSet): Boolean;
    function DelDbData(ds: TDataSet): Boolean;
    function IsHaveRelation(ds: TDataSet; field1, table2, field2: string): Boolean;

    procedure CalcYgz();
    procedure CalcNzjj();
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

uses DataModule, Common, FLogin, Fgz, Fjblb, Fqqlb, Fygxx, Fndxy, Fkqxx, Fjtxx,
  Fylbx, FAdminLogin, FAbout;

{$R *.dfm}

procedure TfrmMain.showGzbz(Index: Integer);
  procedure showcontrol(Index: Integer; show: Boolean);
  begin
    case Index of
    0:begin
        dbgrd1.Visible := show;
        btn1.Visible   := show;
        btn2.Visible   := show;
        btn3.Visible   := show;
      end;
    1:begin
        dbgrd2.Visible := show;
        btn4.Visible   := show;
        btn5.Visible   := show;
        btn6.Visible   := show;
      end;
    2:begin
        dbgrd3.Visible := show;
        btn7.Visible   := show;
        btn8.Visible   := show;
        btn9.Visible   := show;
      end;
    3:begin
        dbgrd4.Visible := show;
        btn10.Visible  := show;
        btn11.Visible  := show;
        btn12.Visible  := show;
      end;
    end;
  end;
begin
  case Index of
  0:begin
      showcontrol(1, False);
      showcontrol(2, False);
      showcontrol(3, False);
      showcontrol(0, True);
    end;
  1:begin
      showcontrol(0, False);
      showcontrol(2, False);
      showcontrol(3, False);
      showcontrol(1, True);
    end;
  2:begin
      showcontrol(0, False);
      showcontrol(1, False);
      showcontrol(3, False);
      showcontrol(2, True);
    end;
  3:begin
      showcontrol(0, False);
      showcontrol(1, False);
      showcontrol(2, False);
      showcontrol(3, True);
      // 不能更改企业年度效益
      btn10.Visible := False;
      btn11.Visible := False;
      btn12.Visible := False;
    end;
  end;
end;

procedure TfrmMain.FormShow(Sender: TObject);
begin
  // 初始化界面
  dbgrd2.Top := dbgrd1.Top; dbgrd2.Left := dbgrd1.Left;
  btn4.Top   := btn1.Top;   btn4.Left   := btn1.Left;
  btn5.Top   := btn2.Top;   btn5.Left   := btn2.Left;
  btn6.Top   := btn3.Top;   btn6.Left   := btn3.Left;
  dbgrd3.Top := dbgrd1.Top; dbgrd3.Left := dbgrd1.Left;
  btn7.Top   := btn1.Top;   btn7.Left   := btn1.Left;
  btn8.Top   := btn2.Top;   btn8.Left   := btn2.Left;
  btn9.Top   := btn3.Top;   btn9.Left   := btn3.Left;
  dbgrd4.Top := dbgrd1.Top; dbgrd4.Left := dbgrd1.Left;
  btn10.Top  := btn1.Top;   btn10.Left  := btn1.Left;
  btn11.Top  := btn2.Top;   btn11.Left  := btn2.Left;
  btn12.Top  := btn3.Top;   btn12.Left  := btn3.Left;
  pb1.Visible := False;
  pb2.Visible := False;

  showGzbz(rg1.ItemIndex);

  // 打开数据库
  dm.con1.Connected := True;

  // 登录验证
  if (mrOk <> frmLogin.ShowModal) then begin
    Close;
    exit;
  end;

  // 继续打开数据库
  dm.qryGz.Active   := True;
  dm.qryJblb.Active := True;
  dm.qryQqlb.Active := True;
  dm.qryNdxy.Active := True;

  dm.qryYgxx.Active := True;
  dm.qryKqxx.Active := True;
  dm.qryJtxx.Active := True;
  dm.qryYlbx.Active := True;
  dm.qryYgz.Active  := True;
  dm.qryNzjj.Active := True;
end;

procedure TfrmMain.rg1Click(Sender: TObject);
begin
  showGzbz(rg1.ItemIndex);
end;

// 添加资料
function TfrmMain.AddDbData(frm: TfrmPBase): Boolean;
begin
  frm.strState := 'N';
  if mrOk = frm.ShowModal then
    Result := True
  else
    Result := False;
end;

// 修改资料
function TfrmMain.ModifyDbData(frm: TfrmPBase; ds: TDataSet): Boolean;
begin
  Result := False;
  if ds.RecordCount >0 then begin
    frm.strState := 'M';
    if mrOk = frm.ShowModal then
      Result := True;
  end
  else
    Application.MessageBox('没有可以修改的信息。', PChar(Application.Title),
      MB_OK + MB_ICONINFORMATION);
end;

// 删除资料
function TfrmMain.DelDbData(ds: TDataSet): Boolean;
begin
  Result := False;
  if ds.RecordCount >0 then begin
    if Application.MessageBox('是否要删除此信息?', PChar(Application.Title),
      MB_YESNO + MB_ICONQUESTION) = IDYES then
    begin
      ds.Delete;
      Result := True;
    end;
  end
  else
    Application.MessageBox('没有可以删除的信息。', PChar(Application.Title),
      MB_OK + MB_ICONINFORMATION);
end;

function TfrmMain.IsHaveRelation(ds: TDataSet; field1, table2, field2: string): Boolean;
var
  v: Variant;
  q: TADOQuery;
begin
  Result := False;
  if ds.RecordCount >0 then begin
    if ds[field1] <> null then begin
      v := ds[field1];
      q := TADOQuery.Create(nil);
      q.Connection := dm.con1;
      q.SQL.Text := 'select '+field2+' from '+table2+ ' where '+field2+' = :field2';
      q.Parameters.ParamByName('field2').Value := v;
      q.Prepared := True;
      q.Open;
      if q.RecordCount >0 then
        Result := True;
      q.Close;
      q.Free;
    end;
  end;
end;

// 添加工种
procedure TfrmMain.btn1Click(Sender: TObject);
begin
  AddDbData(frmGz);
end;

// 修改工种
procedure TfrmMain.btn2Click(Sender: TObject);
begin
  ModifyDbData(frmGz, dm.qryGz);
end;

// 删除工种
procedure TfrmMain.btn3Click(Sender: TObject);
var
  msg: string;
begin
  // 员工资料是否有此工种
  msg := '';
  if IsHaveRelation(dm.qryGz, 'gz_id', 'ygxx', 'gz_id') then begin
    msg := '员工资料中有此信息' +#13+#13+ '不能删除此工种!';
    Application.MessageBox(PChar(msg), PChar(Application.Title), MB_OK +
      MB_ICONWARNING);
    exit;
  end;
  DelDbData(dm.qryGz);
end;

// 添加加班类别
procedure TfrmMain.btn4Click(Sender: TObject);
begin
  AddDbData(frmJblb);
end;

// 修改加班类别
procedure TfrmMain.btn5Click(Sender: TObject);
begin
  ModifyDbData(frmJblb, dm.qryJblb);
end;

// 删除加班类别
procedure TfrmMain.btn6Click(Sender: TObject);
var
  msg: string;
begin
  // 津贴信息是否有此加班类别
  msg := '';
  if IsHaveRelation(dm.qryJblb, 'jblb_id', 'jtxx', 'jblb_id') then begin
    msg := '津贴信息中有此信息' +#13+#13+ '不能删除此加班类别!';
    Application.MessageBox(PChar(msg), PChar(Application.Title), MB_OK +

⌨️ 快捷键说明

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