📄 profmove.pas
字号:
//********************************************************************//
//异动界面的功能包括提升,降职,部门调动,它们指的是同一个表adoadvance//
//根据filter让dbgrid显示对应的记录, 提供在表中直接新增,修改,删除等作业
unit profmove;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls, ImgList,
ToolWin, Menus,Adodb, Mask,db, wwdblook, RxLookup;
type
TFormprofmove = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
ImageList1: TImageList;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N3: TMenuItem;
Panel1: TPanel;
Splitter1: TSplitter;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
Label3: TLabel;
DBEdit3: TDBEdit;
Label4: TLabel;
DBEdit4: TDBEdit;
Label5: TLabel;
DBEdit5: TDBEdit;
Label6: TLabel;
DBEdit6: TDBEdit;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
DBEdit9: TDBEdit;
Label10: TLabel;
DBEdit10: TDBEdit;
Label11: TLabel;
DBEdit11: TDBEdit;
DateTimePicker1: TDateTimePicker;
ToolBar1: TToolBar;
ToolButton3: TToolButton;
tbnsort: TToolButton;
tbnfind: TToolButton;
tbnprint: TToolButton;
tbnexit: TToolButton;
DBNavigator1: TDBNavigator;
wwDBLookupCombo1: TwwDBLookupCombo;
wwDBLookupCombo2: TwwDBLookupCombo;
Panel3: TPanel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label43: TLabel;
Edit2: TEdit;
MaskEdit1: TMaskEdit;
DateTimePicker2: TDateTimePicker;
MaskEdit2: TMaskEdit;
DateTimePicker5: TDateTimePicker;
Panel2: TPanel;
Label13: TLabel;
Label15: TLabel;
Edit1: TEdit;
MaskEdit3: TMaskEdit;
DateTimePicker3: TDateTimePicker;
MaskEdit4: TMaskEdit;
DateTimePicker4: TDateTimePicker;
Panel4: TPanel;
Label17: TLabel;
Label19: TLabel;
Edit3: TEdit;
MaskEdit5: TMaskEdit;
DateTimePicker6: TDateTimePicker;
MaskEdit6: TMaskEdit;
DateTimePicker7: TDateTimePicker;
Label14: TLabel;
Label18: TLabel;
Label16: TLabel;
Label20: TLabel;
DBEdit8: TDBEdit;
Label21: TLabel;
wwDBLookupCombo3: TwwDBLookupCombo;
procedure PageControl1Change(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure DBGrid3KeyPress(Sender: TObject; var Key: Char);
procedure ToolButton6Click(Sender: TObject);
procedure tbnexitClick(Sender: TObject);
procedure tbnfindClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure tbnsortClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
procedure FormKeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbnprintClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure wwDBLookupCombo1Exit(Sender: TObject);
procedure wwDBLookupCombo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure FormCreate(Sender: TObject);
procedure Edit2Exit(Sender: TObject);
procedure MaskEdit2Exit(Sender: TObject);
procedure MaskEdit4Exit(Sender: TObject);
procedure MaskEdit6Exit(Sender: TObject);
procedure DateTimePicker2CloseUp(Sender: TObject);
procedure DateTimePicker5CloseUp(Sender: TObject);
procedure DateTimePicker3CloseUp(Sender: TObject);
procedure DateTimePicker4CloseUp(Sender: TObject);
procedure DateTimePicker6CloseUp(Sender: TObject);
procedure DateTimePicker7CloseUp(Sender: TObject);
private
{ Private declarations }
manyfield:boolean;
findex:array[1..5] of integer;
fsort:array[1..5] of string;
fcount:0..5;
db:0..3;
f:string;
public
{ Public declarations }
end;
var
Formprofmove: TFormprofmove;
implementation
uses datamol,publicfunction, main, personalreport, reportforpeople,
reportforprofmove, canfind;
{$R *.DFM}
procedure TFormprofmove.PageControl1Change(Sender: TObject);
begin
(Sender as TPageControl).ActivePage.highlighted:=true;
with datamod.adoadvance do
begin
filtered:=false; //根据选择的pagecontrol显示
case pagecontrol1.ActivePageIndex of
0:Filter:='movekind=0'; //提升
1:filter:='movekind=1'; //降职
2:filter:='movekind=2'; //部门调动
end;
filtered:=true;
end;
end;
procedure TFormprofmove.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
setdbgridwidth(dbgrid1,'p'+'profmove');
setdbgridwidth(dbgrid2,'p'+'profmove');
setdbgridwidth(dbgrid3,'p'+'profmove');
if not (datamod.Adoadvance.eof and datamod.Adoadvance.Bof) then
if not (isdate(datamod.Adoadvance.FieldByName('usefuldate').text)) then
begin
if messagedlg('日期可能有误,确定退出吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
datamod.Adoadvance.CancelUpdates //当用户输入一条不符合要求的记录时,在
else
exit;
end;
action:=cafree; //关闭窗体时,取消它
formprofmove:=nil;
end;
procedure TFormprofmove.DBGrid3KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then //dbgrid中的回车键的处理
begin
with sender as twincontrol do
postmessage(handle,wm_keydown,vk_tab,0);
key:=#0;
end;
end;
procedure TFormprofmove.ToolButton6Click(Sender: TObject);
begin
datamod.Adoadvance.Cancel;
end;
procedure TFormprofmove.tbnexitClick(Sender: TObject);
begin
close;
end;
procedure TFormprofmove.tbnfindClick(Sender: TObject);
begin
if assigned(formcanfind) then formcanfind.close;
findrecorder(datamod.adoadvance,'Adoadvance','per21010'); //调用publicfuction中的查询功能
end;
procedure TFormprofmove.DBGrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.ADOadvance.Sort :=column.FieldName+' '+f;
end;
procedure TFormprofmove.tbnsortClick(Sender: TObject);
var i:1..5;
begin
if manyfield then
begin
manyfield:=false;
tbnsort.hint:='设定多字段排序';
popupmenu1.Items[0].Enabled :=false;
popupmenu1.Items[1].Enabled :=false;
popupmenu1.Items[2].Enabled :=false;
popupmenu1.Items[3].Enabled :=false;
end
else begin
manyfield:=true;
tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
f:='';
popupmenu1.Items[0].Enabled :=true;
popupmenu1.Items[1].Enabled :=true;
popupmenu1.Items[2].Enabled :=true;
popupmenu1.Items[3].Enabled :=true;
fcount:=0;
for i:=1 to 5 do
begin
findex[i]:=0;
fsort[i]:='';
end;
end;
end;
procedure TFormprofmove.N1Click(Sender: TObject);
var i:integer;
dbgrid:Tdbgrid;
begin
if fcount>0 then
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
db:=pagecontrol1.ActivePageIndex;
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
if dbgrid.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid.selectedindex;
fsort[fcount]:='ASC';
dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
end;
end;
end;
procedure TFormprofmove.N2Click(Sender: TObject);
var i:integer;
dbgrid:Tdbgrid;
begin
if fcount>0 then
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -