changesche.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 338 行
PAS
338 行
unit changesche;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, DBCtrls, StdCtrls, Mask, ExtCtrls, ComCtrls, ADODB,
ImgList, ToolWin, Menus;
type
TFormchangesche = class(TForm)
DBGrid1: TDBGrid;
Panel4: TPanel;
ToolBar1: TToolBar;
DBNavigator1: TDBNavigator;
ToolButton3: TToolButton;
Tbnsort: TToolButton;
ToolButton5: TToolButton;
tbnprint: TToolButton;
ToolButton7: TToolButton;
ImageList1: TImageList;
Splitter1: TSplitter;
Panel1: TPanel;
DBGrid2: TDBGrid;
Label2: TLabel;
Edit1: TEdit;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N3: TMenuItem;
Panel2: TPanel;
Label1: TLabel;
MaskEdit1: TMaskEdit;
DateTimePicker1: TDateTimePicker;
Label12: TLabel;
MaskEdit2: TMaskEdit;
DateTimePicker2: TDateTimePicker;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure ToolButton7Click(Sender: TObject);
procedure DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
procedure DBGrid1TitleClick(Column: TColumn);
procedure DBGrid2TitleClick(Column: TColumn);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure TbnsortClick(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure tbnprintClick(Sender: TObject);
procedure ToolButton3Click(Sender: TObject);
procedure MaskEdit2Exit(Sender: TObject);
procedure DateTimePicker1CloseUp(Sender: TObject);
procedure DateTimePicker2CloseUp(Sender: TObject);
private
{ Private declarations }
manyfield:boolean;
findex:array[1..5] of integer;
fsort:array[1..5] of string;
fcount:0..5;
f:string;
public
{ Public declarations }
fm:string; //看formchangsche窗体是否存在
end;
var
Formchangesche: TFormchangesche;
implementation
uses datamol,main,publicfunction, changetime, reportofchangesche;
{$R *.DFM}
procedure TFormchangesche.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Datamod.Adobc.close;
Datamod.Adochangesche.close;
formchangesche:=nil;
action:=cafree;
end;
procedure TFormchangesche.FormShow(Sender: TObject);
begin
left:=10;
top:=5;
end;
procedure TFormchangesche.ToolButton7Click(Sender: TObject);
begin
close;
end;
procedure TFormchangesche.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
case button of
nbinsert,
nbedit:begin
formchangetime:=Tformchangetime.create(application);
if button=nbinsert then
datamod.ADOchangesche.Insert
else if button=nbedit then
datamod.adochangesche.edit;
try
formchangetime.showModal;
fm:='free';
finally
formchangetime.free;
end;
end;
end;
end;
procedure TFormchangesche.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
dbgrid_keypress(sender,key);
end;
procedure TFormchangesche.DBGrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.adochangesche.Sort := column.FieldName +' '+f;
end;
procedure TFormchangesche.DBGrid2TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.adobc.Sort := column.FieldName +' '+f;
end;
procedure TFormchangesche.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if not datamod.ADObc.Locate('scheno',edit1.text,[]) then
application.messagebox('对不起,没有这个班次','Warning',mb_ok+mb_iconwarning);
key:=#0;
end;
end;
procedure TFormchangesche.FormActivate(Sender: TObject);
begin
with datamod do
begin
adochangesche.close;
Adochangesche.open;
adobc.close;
Adobc.open;
datetimepicker1.DateTime:=date;
datetimepicker2.DateTime:=date;
maskedit1.Text:=datetostr(date);
maskedit2.text:=datetostr(date);
datamod.adochangesche.Filtered:=false;
datamod.adochangesche.filter:='cdate>='''+maskedit1.Text+''' and cdate<='''+maskedit2.Text+''' ';
datamod.adochangesche.Filtered:=true;
end;
end;
procedure TFormchangesche.DBGrid1DblClick(Sender: TObject);
begin
dbnavigator1.BeforeAction (dbnavigator1,nbedit);
end;
procedure TFormchangesche.FormCreate(Sender: TObject);
begin
fm:='active';
end;
procedure TFormchangesche.ToolButton5Click(Sender: TObject);
begin
findrecorder(DataMod.Adochangesche,'Adochangesche','atd01011');
end;
procedure TFormchangesche.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 TFormchangesche.N1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to fcount do
if dbgrid1.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid1.selectedindex;
fsort[fcount]:='ASC';
dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
end;
end;
procedure TFormchangesche.N2Click(Sender: TObject);
var i:integer;
begin
for i:=1 to fcount do
if dbgrid1.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid1.selectedindex;
fsort[fcount]:='DESC';
dbgrid1.Columns[dbgrid1.selectedindex].Color :=clgray;
end;
end;
procedure TFormchangesche.N4Click(Sender: TObject);
var i:1..5;
sortexp:string;
begin
sortexp:='';
for i:=1 to fcount do
begin
if dbgrid1.Columns[findex[i]].Color=clgray then
begin
sortexp :=sortexp+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then sortexp:=sortexp+',';
end;
end;
if sortexp<>'' then datamod.ADOchangesche.Sort :=sortexp;
end;
procedure TFormchangesche.N3Click(Sender: TObject);
var i:1..5;
begin
for i:=1 to fcount do
dbgrid1.Columns[findex[i]].Color :=clwindow;
fcount:=0;
end;
procedure TFormchangesche.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_f1 then
begin
Application.HelpFile :=extractfilepath(application.exename) +'help\pasahelp.hlp';
application.helpjump('shm_contents0019');
end;
end;
procedure TFormchangesche.tbnprintClick(Sender: TObject);
begin
if not assigned(changeschereport) then
changeschereport:=tchangeschereport.create(self);
changeschereport.show;
end;
procedure TFormchangesche.ToolButton3Click(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
datamod.ADOchangesche.Filtered:=false;
datamod.ADOchangesche.Filter:='';
datamod.ADOchangesche.Filtered:=true;
maskedit1.text:=fmat1;
maskedit2.Text:=fmat1;
end;
procedure TFormchangesche.MaskEdit2Exit(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
if (maskedit1.text<>fmat1) or (maskedit2.text<>fmat1) then
begin
datamod.ADOchangesche.Filtered:=false;
datamod.ADOchangesche.filter:='cdate>='''+maskedit1.text+''' and cdate<='''+maskedit2.Text+''' ';
datamod.ADOchangesche.filtered:=true;
end;
end;
procedure TFormchangesche.DateTimePicker1CloseUp(Sender: TObject);
begin
maskedit1.Text:=datetostr(datetimepicker1.datetime);
end;
procedure TFormchangesche.DateTimePicker2CloseUp(Sender: TObject);
begin
maskedit2.Text:=datetostr(datetimepicker2.datetime);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?