📄 daypas.pas
字号:
unit Daypas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ExtCtrls;
type
TSelDayForm = class(TForm)
ED_Year: TEdit;
Year_Label: TLabel;
ED_Month: TEdit;
Month_Label: TLabel;
ED_Day: TEdit;
SelDayOkBut: TBitBtn;
Day_Label: TLabel;
RB_LoginName: TRadioButton;
RB_AllUseName: TRadioButton;
Top_Down_Bevel: TBevel;
CB_UseName: TComboBox;
LabelLoginName: TLabel;
LabelAllUseName: TLabel;
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure ED_YearKeyPress(Sender: TObject; var Key: Char);
procedure ED_YearKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ED_YearExit(Sender: TObject);
procedure ED_MonthKeyPress(Sender: TObject; var Key: Char);
procedure ED_MonthKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ED_MonthExit(Sender: TObject);
procedure ED_DayKeyPress(Sender: TObject; var Key: Char);
procedure ED_DayKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ED_DayEnter(Sender: TObject);
procedure ED_MonthEnter(Sender: TObject);
procedure ED_DayExit(Sender: TObject);
procedure SelDayOkButClick(Sender: TObject);
procedure RB_LoginNameClick(Sender: TObject);
procedure RB_AllUseNameClick(Sender: TObject);
private
{ Private declarations }
Function DelHeadZero(DHZ_Str : String; DHZ_Tag : Integer) : String;
public
{ Public declarations }
end;
var
SelDayForm: TSelDayForm;
implementation
uses Share_Date;
{$R *.dfm}
Function TSelDayForm.DelHeadZero(DHZ_Str : String; DHZ_Tag : Integer) : String;
var DHZ_Result : String;
I : Integer;
begin
For I := 1 to Length(DHZ_Str) do begin
if (DHZ_Str[I] <> '0')and(DHZ_Str[I] <> '') then begin
DHZ_Result := Copy(DHZ_Str, I, Length(DHZ_Str));
Break;
end;
end;
if DHZ_Tag = 2 then begin
if DHZ_Result = '' then Result := '1'
else Result := DHZ_Result;
end else begin
if DHZ_Result = '' then Result := '2000'
else begin
Case Length(DHZ_Result) of
1 : Result := '200' + DHZ_Result;
2 : Result := '20' + DHZ_Result;
3 : Result := '2' + DHZ_Result;
4 : Result := DHZ_Result;
end;
end;
end;
end;
procedure TSelDayForm.FormCreate(Sender: TObject);
var FC_Year, FC_Month, FC_Day : Word;
begin
//==== 窗体创建时代码 ====//
RB_LoginName.Checked;
LabelLoginName.Enabled := TRUE;
LabelAllUseName.Enabled := FALSE;
CB_UseName.Clear;
CB_UseName.Items.AddStrings(Share_Str);
CB_UseName.ItemIndex := 0;
CB_UseName.Enabled := FALSE;
CB_UseName.Color := clMenu;
DecodeDate(Date(), FC_Year, FC_Month, FC_Day);
ED_Year.Text:= IntToStr(FC_Year);
ED_Month.Text:= IntToStr(FC_Month);
ED_Day.Text:= IntToStr(FC_Day);
end;
procedure TSelDayForm.FormActivate(Sender: TObject);
begin
//==== 窗体成为焦点窗体时 ====//
ED_Year.SetFocus;
end;
procedure TSelDayForm.RB_LoginNameClick(Sender: TObject);
begin
LabelLoginName.Enabled := TRUE;
LabelAllUseName.Enabled := FALSE;
CB_UseName.Enabled := FALSE;
CB_UseName.Color := clMenu;
end;
procedure TSelDayForm.RB_AllUseNameClick(Sender: TObject);
begin
LabelLoginName.Enabled := FALSE;
LabelAllUseName.Enabled := TRUE;
CB_UseName.ItemIndex := 0;
CB_UseName.Enabled := TRUE;
CB_UseName.Color := clWindow;
end;
procedure TSelDayForm.ED_YearKeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
'0'..'9', #8, #46 : ;
#13 : if ED_Month.Enabled = TRUE then ED_Month.SetFocus
else SelDayOkBut.SetFocus;
else Key := #21;
end;
end;
procedure TSelDayForm.ED_YearKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Length(Trim(ED_Year.Text))= 4 then
if ED_Month.Enabled = TRUE then ED_Month.SetFocus
else SelDayOkBut.SetFocus;
end;
procedure TSelDayForm.ED_YearExit(Sender: TObject);
begin
ED_Year.Text := DelHeadZero(Trim(ED_Year.Text), 4);
end;
procedure TSelDayForm.ED_MonthKeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
'0'..'9', #8, #46 : ;
#13 : if ED_Day.Enabled = TRUE then ED_Day.SetFocus
else SelDayOkBut.SetFocus;
else Key := #21;
end;
end;
procedure TSelDayForm.ED_MonthKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Length(Trim(ED_Month.Text))= 2 then
if ED_Day.Enabled = TRUE then ED_Day.SetFocus
else SelDayOkBut.SetFocus;
end;
procedure TSelDayForm.ED_MonthEnter(Sender: TObject);
begin
ED_Month.Clear;
end;
procedure TSelDayForm.ED_MonthExit(Sender: TObject);
var ED_MonDate : TDate;
begin
ED_Month.Text := DelHeadZero(Trim(ED_Month.Text), 2);
if StrToInt(ED_Month.Text)> 12 then ED_Month.Text := '12';
if ED_Day.Enabled = FALSE then begin
ED_MonDate := EncodeDate(StrToInt(Trim(ED_Year.Text)), StrToInt(Trim(ED_Month.Text)), 1);
ED_Day.Text := GetMonthDay(ED_MonDate);
end;
end;
procedure TSelDayForm.ED_DayKeyPress(Sender: TObject; var Key: Char);
begin
Case Key of
'0'..'9', #8, #46 : ;
#13 : begin
SelDayOkButClick(SelDayOkBut);
SelDayForm.Close;
end;
else Key := #21;
end;
end;
procedure TSelDayForm.ED_DayKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Length(Trim(ED_Day.Text))= 2 then SelDayOkBut.SetFocus;
end;
procedure TSelDayForm.ED_DayEnter(Sender: TObject);
begin
ED_Day.Clear;
end;
procedure TSelDayForm.ED_DayExit(Sender: TObject);
var ED_MaxDay : Word;
ED_InputDate : TDate;
begin
ED_Day.Text := DelHeadZero(Trim(ED_Day.Text), 2);
ED_InputDate := EncodeDate(StrToInt(Trim(ED_Year.Text)), StrToInt(Trim(ED_Month.Text)), 1);
ED_MaxDay := GetMonthMaxDay(ED_InputDate);
if StrToInt(Trim(ED_Day.Text)) > ED_MaxDay then ED_Day.Text := IntToStr(ED_MaxDay);
end;
procedure TSelDayForm.SelDayOkButClick(Sender: TObject);
var StartDate, EndDate : TDate;
MKey_Str, MValue_Str, DKey_Str, DValue_Str : String;
MonMaxDay : Word;
begin
//==== 单击确定按钮时的代码 ====//
if ED_Month.Enabled = FALSE then
MValue_Str := UnLineString(Trim(ED_Month.Text), '-', MKey_Str)
else begin
MValue_Str := Trim(ED_Month.Text);
MKey_Str := Trim(ED_Month.Text);
end;
if ED_Day.Enabled = FALSE then
DValue_Str := UnLineString(Trim(ED_Day.Text), '-', DKey_Str)
else begin
DValue_Str := Trim(ED_Day.Text);
DKey_Str := Trim(ED_Day.Text);
end;
StartDate := EncodeDate(StrToInt(ED_Year.Text), StrToInt(MKey_Str), StrToInt(DKey_Str));
MonMaxDay := GetMonthMaxDay(StartDate);
if StrToInt(DValue_Str) + 1 > MonMaxDay then begin
if StrToInt(MValue_Str) + 1 > 12 then
EndDate := EncodeDate(StrToInt(ED_Year.Text) + 1, 1, 1)
else
EndDate := EncodeDate(StrToInt(ED_Year.Text), StrToInt(MValue_Str) + 1, 1)
end else
EndDate := EncodeDate(StrToInt(ED_Year.Text), StrToInt(MValue_Str), StrToInt(DValue_Str)) + 1;
Share_SqlStr := 'SELECT * From JihuaTable WHERE CreateDate>=''';
Share_SqlStr := Share_SqlStr + FormatDateTime('yyyyMMdd', StartDate) + ''' AND CreateDate<''';
Share_SqlStr := Share_SqlStr + FormatDateTime('yyyyMMdd', EndDate) + '''';
if RB_LoginName.Checked = TRUE then begin
Share_SqlStr := Share_SqlStr + ' AND JihuaName=''';
Share_SqlStr := Share_SqlStr + Share_LogName + '''';
end else if RB_AllUseName.Checked = TRUE then begin
if CompareText('ALL USES', Trim(CB_UseName.Text)) <> 0 then begin
Share_SqlStr := Share_SqlStr + ' AND JihuaName=''';
Share_SqlStr := Share_SqlStr + Trim(CB_UseName.Text) + '''';
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -