⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 daypas.pas

📁 DELPHI 编写个人工作计划事务管理软件
💻 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 + -