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

📄 mainut.pas

📁 用delphi+access给单位做的实用,简单的.
💻 PAS
字号:
unit mainut;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ComCtrls, ToolWin, ExtCtrls, ImgList, Grids, DBGrids, DB,
  ADODB, XPMan,OleCtrls,comobj, GridsEh, DBGridEh, DBClient, PrnDbgeh,
  MemTableDataEh, DataDriverEh, ADODataDriverEh, DBSumLst;

type
  Tmainfm = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N10: TMenuItem;
    StatusBar1: TStatusBar;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    edit: TToolButton;
    index: TToolButton;
    ToolButton4: TToolButton;
    chang: TToolButton;
    pass: TToolButton;
    exit: TToolButton;
    Timer1: TTimer;
    N11: TMenuItem;
    ImageList1: TImageList;
    Panel1: TPanel;
    DataSource1: TDataSource;
    ADOQuery: TADOQuery;
    add: TToolButton;
    XPManifest1: TXPManifest;
    del: TToolButton;
    save: TToolButton;
    cancel: TToolButton;
    fresh: TToolButton;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    out: TToolButton;
    N19: TMenuItem;
    DBGridEh1: TDBGridEh;
    print: TToolButton;
    N9: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    ADOQuery1: TADOQuery;
    ADOQuery2: TADOQuery;
    PrintDBGridEh1: TPrintDBGridEh;
    procedure FormActivate(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
      procedure addClick(Sender: TObject);
    procedure editClick(Sender: TObject);
    procedure saveClick(Sender: TObject);
    procedure cancelClick(Sender: TObject);
    procedure delClick(Sender: TObject);
   // procedure freshClick(Sender: TObject);
    procedure k(Sender: TObject);
    procedure changClick(Sender: TObject);
    procedure passClick(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure indexClick(Sender: TObject);
    procedure exitClick(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure CopyDbDataToExcel(Args: array of const);
    procedure outClick(Sender: TObject);
    procedure DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
      Column: TColumnEh);
    procedure ToolButton1Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N22Click(Sender: TObject);
    private
    { Private declarations }
     public
    { Public declarations }

    logined:bool;
    yhxm:string;
    limt:string;
    xz:array[1..100] of boolean;
    zd:array[1..100] of string;
    vi:integer;
  end;

var
  mainfm: Tmainfm;

implementation

uses loginut, seachut, printut, modyut, userut, editut, listut, addut,
  dataut, backut, aboutut;


//导出到excel
procedure Tmainfm.CopyDbDataToExcel(Args: array of const);
var
iCount, jCount,vcount,v1count: Integer;
XLApp: Variant; 
Sheet: Variant; 
I: Integer; 
begin
v1count:=0;
Screen.Cursor := crHourGlass;
if not VarIsEmpty(XLApp) then 
begin 
XLApp.DisplayAlerts := False; 
XLApp.Quit; 
VarClear(XLApp); 
end; 
try
XLApp := CreateOleObject('Excel.Application');
except 
Screen.Cursor := crDefault; 
end;

XLApp.WorkBooks.Add; 
XLApp.SheetsInNewWorkbook := High(Args) + 1; 

for I := Low(Args) to High(Args) do 
begin
XLApp.WorkBooks[1].WorkSheets[I+1].Name := TDBGrid(Args[I].VObject).Name;
Sheet := XLApp.Workbooks[1].WorkSheets[TDBGrid(Args[I].VObject).Name];

if not TDBGridEh(Args[I].VObject).DataSource.DataSet.Active then 
begin 
Screen.Cursor := crDefault;
//Exit;
end;

vcount:=0;

TDBGridEh(Args[I].VObject).DataSource.DataSet.first;
for iCount := 0 to TDBGridEh(Args[I].VObject).Columns.Count - 1 do
if TDBGridEh(Args[I].VObject).Columns.Items[iCount].Visible=true then
begin
Sheet.Cells[1, iCount + 1] :=
TDBGridEh(Args[I].VObject).Columns.Items[iCount].Title.Caption;
//vcount:=vcount+1;
end;

jCount := 1;

while not (TDBGridEh(Args[I].VObject).DataSource.DataSet.Eof) do
begin
for iCount := 0 to TDBGridEh(Args[I].VObject).Columns.Count - 1 do
 if TDBGridEh(Args[I].VObject).Columns.Items[iCount].Visible=true then
 Sheet.Cells[jCount + 1, iCount+1] :=TDBGridEh(Args[I].VObject).Columns.Items[iCount].Field.AsString;
 Inc(jCount);

TDBGridEh(Args[I].VObject).DataSource.DataSet.Next;
end;
XLApp.activeworkbook.saveas(extractfilepath(paramstr(0))+'excel\职工信息.xls');
XlApp.Visible := True;
end;
Screen.Cursor := crDefault;
end;


{$R *.dfm}

procedure Tmainfm.FormActivate(Sender: TObject);
begin
if not logined then
loginfm.showmodal;
end;

procedure Tmainfm.Timer1Timer(Sender: TObject);
begin
StatusBar1.Panels[2].Text:='职工信息管理系统'+chr(10)+chr(10)+chr(10)+datetimetostr(now());
end;

procedure Tmainfm.FormCreate(Sender: TObject);
var
i,vn,vn1:integer;
year,month,day:word;
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:刷新信息';
vi:=0;

for i:=0 to mainfm.DBGridEh1.Columns.Count-1 do
 begin
   mainfm.DBGridEh1.Columns[i].Title.Alignment:=tacenter;
   mainfm.DBGridEh1.Columns[i].Title.TitleButton:=true;
   mainfm.DBGridEh1.Columns[i].Visible:=true;
 end;
 mainfm.DBGridEh1.ReadOnly:=true;

decodedate(now,year,month,day);

with adoquery1 do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 年表');
    open;
    first;
    vn:=fieldbyname('年').AsInteger;
    if year>vn then
    begin
    vn1:=year-vn;
    with adoquery2 do
     begin
     close;
      sql.Clear;
      sql.Add('update 职工信息表 set 年龄=年龄+1');
      execsql;
      sql.Clear;
      sql.Add('update 年表 set 年=年+1');
      execsql;
     end;
    end;
  end;

with adoquery do
  begin
    close;
    sql.Clear;
    sql.Add('select * from 职工信息表 order by 代号');
    open;
  end;

  ///

  DBGridEh1.Columns.Items[19].PickList.clear;
  DBGridEh1.Columns.Items[20].PickList.clear;

  DBGridEh1.Columns.Items[21].PickList.clear;

  DBGridEh1.Columns.Items[22].PickList.clear;

  DBGridEh1.Columns.Items[18].PickList.clear;

  with adoquery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select 职务 from 职务表');
      open;
      first;
       while not eof do
         begin
           DBGridEh1.Columns.Items[19].PickList.add(fieldbyname('职务').AsString);
           next;
         end;
    end;

    with adoquery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select 职称 from 职称表');
      open;
      first;
       while not eof do
         begin
           DBGridEh1.Columns.Items[21].PickList.Add(fieldbyname('职称').AsString);
           next;
         end;
    end;

    with adoquery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select 级别 from 级别表');
      open;
      first;
       while not eof do
         begin
           DBGridEh1.Columns.Items[20].PickList.Add(fieldbyname('级别').AsString);
           next;
         end;
    end;

    with adoquery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select 等级 from 等级表');
      open;
      first;
       while not eof do
         begin
           DBGridEh1.Columns.Items[22].PickList.Add(fieldbyname('等级').AsString);
           next;
         end;
    end;

    with adoquery1 do
    begin
      close;
      sql.Clear;
      sql.Add('select 班组 from 班组表');
      open;
      first;
       while not eof do
         begin
          DBGridEh1.Columns.Items[18].PickList.Add(fieldbyname('班组').AsString);
           next;
         end;


    end;




end;



procedure Tmainfm.addClick(Sender: TObject);
begin
//adoquery.Append;

//save.Enabled:=true;
//cancel.Enabled:=true;
mainfm.StatusBar1.Panels[1].Text:='当前操作:添加信息';
addfm:=taddfm.create(nil);
addfm.showmodal;
addfm.free;
end;

procedure Tmainfm.editClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:编辑信息';
adoquery.Edit;
DBGridEh1.ReadOnly:=false;
DBGridEh1.Columns[1].ReadOnly:=true;
save.Enabled:=true;
cancel.Enabled:=true;

end;

procedure Tmainfm.saveClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:保存信息';
adoquery.Post;
DBGridEh1.ReadOnly:=true;
save.Enabled:=false;
cancel.Enabled:=false;
fresh.Click;
end;

procedure Tmainfm.cancelClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:撤消操作';
adoquery.Cancel;
DBGridEh1.ReadOnly:=true;
cancel.Enabled:=false;
save.Enabled:=false;
fresh.Click;
end;

procedure Tmainfm.delClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:删除信息';
if messagedlg('确定删除职工代号为'+adoquery.Fields[1].AsString+'的所有资料吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
adoquery.Delete;
end;

procedure Tmainfm.indexClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:查询信息';
seachfm:=Tseachfm.create(self);
seachfm.showmodal;
seachfm.free;
end;

procedure Tmainfm.k(Sender: TObject);

begin
try
printfm:=Tprintfm.create(nil);
printfm.QuickRep1.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText2.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText3.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText4.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText5.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText6.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText7.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText8.DataSet := mainfm.DBGridEh1.DataSource.DataSet;
printfm.QRDBText1.DataSet := mainfm.DBGridEh1.DataSource.DataSet;

printfm.QRDBText1.DataField:=mainfm.DBGridEh1.Columns[0].FieldName;
printfm.QRDBText2.DataField:=mainfm.DBGridEh1.Columns[1].FieldName;
printfm.QRDBText3.DataField:=mainfm.DBGridEh1.Columns[2].FieldName;
printfm.QRDBText4.DataField:=mainfm.DBGridEh1.Columns[3].FieldName;
printfm.QRDBText5.DataField:=mainfm.DBGridEh1.Columns[4].FieldName;
printfm.QRDBText6.DataField:=mainfm.DBGridEh1.Columns[5].FieldName;
printfm.QRDBText7.DataField:=mainfm.DBGridEh1.Columns[6].FieldName;
printfm.QRDBText8.DataField:=mainfm.DBGridEh1.Columns[7].FieldName;
printfm.QRDBText1.Parent :=printfm.DetailBand1;
printfm.QRDBText2.Parent :=printfm.DetailBand1;
printfm.QRDBText3.Parent :=printfm.DetailBand1;
printfm.QRDBText4.Parent :=printfm.DetailBand1;
printfm.QRDBText5.Parent :=printfm.DetailBand1;
printfm.QRDBText6.Parent :=printfm.DetailBand1;
printfm.QRDBText7.Parent :=printfm.DetailBand1;
printfm.QRDBText8.Parent :=printfm.DetailBand1;
printfm.QuickRep1.PreView;
finally
printfm.Free;
end;
end;

procedure Tmainfm.changClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:注销用户';
loginfm.ShowModal;
end;

procedure Tmainfm.passClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:修改密码';
 modyfm:=Tmodyfm.create(nil);
 modyfm.showmodal;
 modyfm.free;
end;

procedure Tmainfm.N5Click(Sender: TObject);
begin
userfm:=Tuserfm.create(nil);
userfm.showmodal;
userfm.free;
end;

procedure Tmainfm.exitClick(Sender: TObject);
begin
if messagedlg('确定退出吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
application.Terminate;
end;

procedure Tmainfm.N19Click(Sender: TObject);
begin
out.Click;
end;

procedure Tmainfm.outClick(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:导出到excel';
//listfm:=Tlistfm.create(nil);
//listfm.showmodal;
//listfm.free;
CopyDbDataToExcel([DBGridEh1]);
end;


procedure Tmainfm.DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
  Column: TColumnEh);
begin
 if column.Title.SortMarker=smdowneh then
         adoQuery.Sort :=column.FieldName
   else
         adoQuery.Sort :=column.FieldName +' DESC';


end;

procedure Tmainfm.ToolButton1Click(Sender: TObject);
begin
mainfm.StatusBar1.Panels[1].Text:='当前操作:打印信息';
PrintDBGridEh1.Preview;
end;

procedure Tmainfm.N10Click(Sender: TObject);
begin
print.Click;
end;

procedure Tmainfm.N9Click(Sender: TObject);
begin
datafm:=Tdatafm.create(nil);
datafm.showmodal;
datafm.free;
end;

procedure Tmainfm.N8Click(Sender: TObject);
begin
backfm:=Tbackfm.create(nil);
backfm.showmodal;
backfm.free;
end;

procedure Tmainfm.N22Click(Sender: TObject);
begin
AboutBox.show;
end;

end.

⌨️ 快捷键说明

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