📄 mainut.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 + -