workersclassbrowse.pas
来自「用户名:SYSTEM 密码:空 第一次运行请先恢复数据库 DATABAS」· PAS 代码 · 共 190 行
PAS
190 行
unit WorkersClassBrowse;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseChildForm, ExtCtrls, Grids, Wwdbigrd, Wwdbgrid, ComCtrls,
StdCtrls, Buttons,AdoDb,DataMod, ImgList, DB,DateUtils;
type
TfWorkersClassBrowse = class(TfBaseChildForm)
Panel1: TPanel;
TreeView: TTreeView;
wwDBGrid1: TwwDBGrid;
Splitter1: TSplitter;
Label2: TLabel;
DateTimePicker1: TDateTimePicker;
Label3: TLabel;
DateTimePicker2: TDateTimePicker;
ImageList: TImageList;
BitBtn1: TBitBtn;
ADOStoredProc1: TADOStoredProc;
DataSource: TDataSource;
ADOStoredProc1cYear: TStringField;
ADOStoredProc1cMonth: TStringField;
ADOStoredProc1cWorkerNo: TStringField;
ADOStoredProc1cWorkerName: TStringField;
ADOStoredProc1cDepartMentNo: TStringField;
ADOStoredProc1cDepartMentName: TStringField;
ADOStoredProc1cDay1: TStringField;
ADOStoredProc1cDay2: TStringField;
ADOStoredProc1cDay3: TStringField;
ADOStoredProc1cDay4: TStringField;
ADOStoredProc1cDay5: TStringField;
ADOStoredProc1cDay6: TStringField;
ADOStoredProc1cDay7: TStringField;
ADOStoredProc1cDay8: TStringField;
ADOStoredProc1cDay9: TStringField;
ADOStoredProc1cDay10: TStringField;
ADOStoredProc1cDay11: TStringField;
ADOStoredProc1cDay12: TStringField;
ADOStoredProc1cDay13: TStringField;
ADOStoredProc1cDay14: TStringField;
ADOStoredProc1cDay15: TStringField;
ADOStoredProc1cDay16: TStringField;
ADOStoredProc1cDay17: TStringField;
ADOStoredProc1cDay18: TStringField;
ADOStoredProc1cDay19: TStringField;
ADOStoredProc1cDay20: TStringField;
ADOStoredProc1cDay21: TStringField;
ADOStoredProc1cDay22: TStringField;
ADOStoredProc1cDay23: TStringField;
ADOStoredProc1cDay24: TStringField;
ADOStoredProc1cDay25: TStringField;
ADOStoredProc1cDay26: TStringField;
ADOStoredProc1cDay27: TStringField;
ADOStoredProc1cDay28: TStringField;
ADOStoredProc1cDay29: TStringField;
ADOStoredProc1cDay30: TStringField;
ADOStoredProc1cDay31: TStringField;
procedure FormCreate(Sender: TObject);
procedure TreeViewGetImageIndex(Sender: TObject; Node: TTreeNode);
procedure TreeViewGetSelectedIndex(Sender: TObject; Node: TTreeNode);
procedure BitBtn1Click(Sender: TObject);
procedure TreeViewClick(Sender: TObject);
procedure wwDBGrid1CalcCellColors(Sender: TObject; Field: TField;
State: TGridDrawState; Highlight: Boolean; AFont: TFont;
ABrush: TBrush);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fWorkersClassBrowse: TfWorkersClassBrowse;
implementation
{$R *.dfm}
procedure TfWorkersClassBrowse.FormCreate(Sender: TObject);
begin
self.WindowState :=wsMaximized;
fdatamod.PersonnelTreeIni(Treeview,true);
DateTimepicker1.Date :=Date;
DateTimepicker2.Date:=incMonth(date);
adoStoredproc1.Close;
AdoStoredproc1.Parameters.ParamByName('@StartDate').Value :=formatdateTime('yyyy/mm/dd',DateTimepicker1.Date);
AdoStoredproc1.Parameters.ParamByName('@EndDate').Value :=formatdateTime('yyyy/mm/dd',DateTimepicker2.Date);
AdoStoredproc1.Parameters.ParamByName('@DepartMentNo').Value :='';
AdoStoredproc1.Parameters.ParamByName('@pWorkerNo').Value :='';
AdoStoredproc1.Open;
end;
procedure TfWorkersClassBrowse.TreeViewGetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
inherited;
if Node.HasChildren then begin
if Node.Expanded then
Node.ImageIndex :=3
else
Node.ImageIndex :=0;
end else
Node.ImageIndex :=1
end;
procedure TfWorkersClassBrowse.TreeViewGetSelectedIndex(Sender: TObject;
Node: TTreeNode);
begin
inherited;
Node.SelectedIndex:=Node.ImageIndex ;
end;
procedure TfWorkersClassBrowse.BitBtn1Click(Sender: TObject);
begin
AdoStoredProc1.Close;
AdoStoredProc1.Parameters.ParamByName('@StartDate').Value :=formatdateTime('yyyy/mm/dd',dateTimepicker1.Date);
AdoStoredProc1.Parameters.ParamByName('@EndDate').Value :=formatdateTime('yyyy/mm/dd',dateTimepicker2.Date);
if Treeview.Selected <>nil then begin
if TreeView.Selected.Level=1 then
AdoStoredProc1.Parameters.ParamByName('@DepartMentNo').Value :=TItem(Treeview.Selected.Data).ItemID
else
AdoStoredProc1.Parameters.ParamByName('@DepartMentNo').Value :='';
if TreeView.Selected.Level=2 then
AdoStoredProc1.Parameters.ParamByName('@pWorkerNo').Value :=TItem(Treeview.Selected.Data).ItemID
else
AdoStoredProc1.Parameters.ParamByName('@pWorkerNo').Value :='';
end;
AdoStoredproc1.Open;
end;
procedure TfWorkersClassBrowse.TreeViewClick(Sender: TObject);
begin
inherited;
bitbtn1.Click ;
end;
procedure TfWorkersClassBrowse.wwDBGrid1CalcCellColors(Sender: TObject;
Field: TField; State: TGridDrawState; Highlight: Boolean; AFont: TFont;
ABrush: TBrush);
var
temYearMonth:String;
i:Integer;
temDate:TDateTime;
IsOK:Boolean;
strDay:String;
begin
inherited;
if ADoStoredproc1.IsEmpty then exit;
IsOk:=True;
temyearMonth:= AdoStoredProc1.FieldbyName('cYear').asstring+'/'+AdoStoredProc1.FieldbyName('cMonth').asString;
if (AdoStoredProc1.FieldByName('cYear').asString<>'') and (AdoStoredProc1.FieldbyName('cMonth').asString<>'') then begin
for I:=1 to 31 do begin
strDay:=intTostr(i);
if Length(strDay)=1 then
strDay:='0'+strDay;
if IsValidDate(strToint(AdoStoredProc1.FieldbyName('cYear').asstring),strToint(AdoStoredProc1.FieldbyName('cMonth').asString),i) then begin
temDate:=strToDate(temYearMonth+'/'+ strDay);
if (temDate>=DateTimepicker1.Date) and (temDate<=DateTimepicker2.date) then begin
if (AdoStoredProc1.FieldbyName('cDay'+intTostr(i)).asstring='') then begin
IsOk:=False;
end;
end;
end ;
end;
end;
If Not IsOK then
ABrush.Color :=clfuchsia;
if Copy(Uppercase(Field.FieldName),1,4)='CDAY' then Begin
strDay:=Copy(Field.FieldName,5,Length(Field.FieldName)-4);
if Length(strDay)=1 then
strDay:='0'+strDay;
if Not IsValidDate(strToint(AdoStoredProc1.FieldbyName('cYear').asstring),strToint(AdoStoredProc1.FieldbyName('cMonth').asString),strToint(strDay)) then
ABrush.Color :=clGradientActiveCaption
else begin
temDate:=strToDate(temYearMonth+'/'+ strDay);
if (formatdateTime('yyyy/mm/dd',temDate)<formatdateTime('yyyy/mm/dd',DateTimepicker1.Date)) or (formatdateTime('yyyy/mm/dd',temDate)>formatdateTime('yyyy/mm/dd',DateTimepicker2.date)) then
ABrush.Color :=clGradientActiveCaption;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?