mainpas.pas

来自「DELPHI 编写个人工作计划事务管理软件」· PAS 代码 · 共 1,690 行 · 第 1/5 页

PAS
1,690
字号
    Share_Str.Add(Share_LogName);
  end;
  CWC_Str := TStringList.Create;            //==== 创建字段名称字串 ====//
  CountSelForm := TCountSelForm.Create(Application);
  Try
    Share_SqlStr:= '';                         //==== 清空全局查询变量 ====//
    StartDate := Date() - GetWeekDiffDay(FormatDateTime('ddd', Date()));
    EndDate := Date() + (7- GetWeekDiffDay(FormatDateTime('ddd', Date())));
    CountSelForm.ShowModal;
    if CountSelForm.ModalResult = mrOK then begin
      Share_SqlStr := Share_SqlStr + ' AND CreateDate>=''';
      Share_SqlStr := Share_SqlStr + FormatDateTime('yyyyMMdd', StartDate) + ''' AND CreateDate<''';
      Share_SqlStr := Share_SqlStr + FormatDateTime('yyyyMMdd', EndDate) + '''';
      CWC_CheckOk := DataBaseSearch(Share_SqlStr, 1);
      if CWC_CheckOk = FALSE then begin
        FileOutput.Enabled := FALSE;
        NWeekSpeedBut.Enabled := FALSE;           //==== 本周按钮不可操作 ====//
        StatusBar.Panels[1].Text := '本周统计统计出错';
      end else begin
        FlushListView(FALSE);                     //==== 刷新信息显示控件 ====//
        FlushResultInfo(FALSE);
        FlushSortBox(TRUE);                       //==== 隐藏排序操作控件 ====//
        FlushWeekParle(TRUE);                    //==== 隐藏周统计面板件 ====//
        FlushDBGridWith();
        FileOutput.Enabled := TRUE;
        StatusBar.Panels[1].Text := '#Recode : ' + IntToStr(ADOQuery.RecordCount) + ' 条';
        ADOQuery.Fields.GetFieldNames(CWC_Str);
        CB_RecordSort.Items.AddStrings(CWC_Str);
      end;
    end;
  Finally
    CountSelForm.Free;
    CWC_Str.Free;                           //==== 释放字段名称字串 ====//
  end;
end;

procedure TMainForm.CountMonthClick(Sender: TObject);
var CMC_CheckOk : Boolean;
    CMC_Str : TStrings;
    CMC_SqlStr : String;
begin
  //==== 一个月统计时的过程代码 ====//
  Share_Str.Clear;                            //==== 清空全局字串列表 ====//
  StatusBar.Panels[0].Text := '统计';
  StatusBar.Panels[1].Text := '';
  StatusBar.Panels[2].Text := '月统计';

  if Share_Level < 2 then  begin
    CMC_SqlStr := 'SELECT JihuaName FROM JihuaTable Group by JihuaName ORDER BY JihuaName';
    CMC_CheckOk := DataBaseSearch(CMC_SqlStr, 1);
    if CMC_CheckOk = FALSE then begin
      StatusBar.Panels[2].Text := '提取姓名出错';
      Exit;
    end else begin
      With ADOQuery do begin
        First;
        While(Not Eof) do begin
          Share_Str.Add(Trim(FieldByName('JihuaName').AsString));
          Next;
        end;
        Share_Str.Add('ALL USES');
        Close;
      end;
    end;
  end else begin
    Share_Str.Add(Share_LogName);
  end;

  CMC_Str := TStringList.Create;                //==== 记录数据字段名称 ====//
  SelDayForm:= TSelDayForm.Create(Application);
  Try
    Share_SqlStr:= '';                          //==== 清空全局查询变量 ====//
    SelDayForm.ED_Day.Text := GetMonthDay(Date);
    SelDayForm.ED_Day.Enabled := FALSE;
    SelDayForm.ShowModal;
    if SelDayForm.ModalResult= mrOK then begin
      CMC_CheckOk := DataBaseSearch(Share_SqlStr, 1);
      if CMC_CheckOk = FALSE then begin
        FileOutput.Enabled := FALSE;
        StatusBar.Panels[1].Text := '月统计出错';
        //Application.MessageBox('月统计数据库记录时出错啦!!!', '提示', MB_OK);
      end else begin
        FlushListView(FALSE);                     //==== 刷新信息显示控件 ====//
        FlushResultInfo(FALSE);
        FlushSortBox(TRUE);                       //==== 隐藏排序操作控件 ====//
        FlushWeekParle(FALSE);                    //==== 隐藏周统计面板件 ====//
        FlushDBGridWith();
        FileOutput.Enabled := TRUE;
        StatusBar.Panels[1].Text := '#Recode : ' + IntToStr(ADOQuery.RecordCount) + ' 条';
        ADOQuery.Fields.GetFieldNames(CMC_Str);
        CB_RecordSort.Items.AddStrings(CMC_Str);
      end;
    end;
  Finally
    SelDayForm.Free;
    CMC_Str.Free;                                 //==== 释放字段名称字串 ====//
  end;
end;

procedure TMainForm.CountYearClick(Sender: TObject);
var CYC_CheckOk : Boolean;
    CYC_Str : TStrings;
    CYC_SqlStr : String;
begin
  //==== 一年统计时的过程代码 ====//
  Share_Str.Clear;                            //==== 清空全局字串列表 ====//
  StatusBar.Panels[0].Text := '统计';
  StatusBar.Panels[1].Text := '';
  StatusBar.Panels[2].Text := '年统计';

  if Share_Level < 2 then  begin
    CYC_SqlStr := 'SELECT JihuaName FROM JihuaTable Group by JihuaName ORDER BY JihuaName';
    CYC_CheckOk := DataBaseSearch(CYC_SqlStr, 1);
    if CYC_CheckOk = FALSE then begin
      StatusBar.Panels[2].Text := '提取姓名出错';
      Exit;
    end else begin
      With ADOQuery do begin
        First;
        While(Not Eof) do begin
          Share_Str.Add(Trim(FieldByName('JihuaName').AsString));
          Next;
        end;
        Share_Str.Add('ALL USES');
        Close;
      end;
    end;
  end else begin
    Share_Str.Add(Share_LogName);
  end;

  CYC_Str := TStringList.Create;                //==== 记录数据字段名称 ====//
  SelDayForm:= TSelDayForm.Create(Application);
  Try
    Share_SqlStr:= '';                          //==== 清空全局查询变量 ====//
    SelDayForm.ED_Month.Text := '1-12';
    SelDayForm.ED_Month.Enabled := FALSE;
    SelDayForm.ED_Day.Text := '1-31';
    SelDayForm.ED_Day.Enabled := FALSE;
    SelDayForm.ShowModal;
    if SelDayForm.ModalResult= mrOK then begin
      CYC_CheckOk := DataBaseSearch(Share_SqlStr, 1);
      if CYC_CheckOk = FALSE then begin
        FileOutput.Enabled := FALSE;
        StatusBar.Panels[1].Text := '年统计出错';
        //Application.MessageBox('年统计数据库记录时出错啦!!!', '提示', MB_OK);
      end else begin
        FlushListView(FALSE);                     //==== 刷新信息显示控件 ====//
        FlushResultInfo(FALSE);
        FlushSortBox(TRUE);                       //==== 隐藏排序操作控件 ====//
        FlushWeekParle(FALSE);                    //==== 隐藏周统计面板件 ====//
        FlushDBGridWith();
        FileOutput.Enabled := TRUE;
        StatusBar.Panels[1].Text := '#Recode : ' + IntToStr(ADOQuery.RecordCount) + ' 条';
        ADOQuery.Fields.GetFieldNames(CYC_Str);
        CB_RecordSort.Items.AddStrings(CYC_Str);
      end;
    end;
  Finally
    SelDayForm.Free;
    CYC_Str.Free;                                 //==== 释放字段名称字串 ====//
  end;
end;

procedure TMainForm.ManageOptionClick(Sender: TObject);
begin
  //==== 程式工具选项的过程代码 ====//
  OptionForm := TOptionForm.Create(Application);      //==== 创建选项面板 ====//
  Try
    OptionForm.ShowModal;
    if OptionForm.ModalResult = mrOK then begin
      StatusBar.Panels[2].Text := '创建用户成功';
    end;
  Finally
    OptionForm.Free;                                  //==== 释放选项面板 ====//
  end;
end;

{****************************************}
{******** 工具条命令的过程与代码 ********}
{****************************************}
procedure TMainForm.NewsToolButClick(Sender: TObject);
begin
  //==== 单击新建过程代码 ====//
  FileNewsClick(FileNews);
end;

procedure TMainForm.ModifyToolButClick(Sender: TObject);
begin
  //==== 修改命令按钮单击时的过程代码 ====//
  FileModifyClick(FileModify);
end;

procedure TMainForm.DeleteToolButClick(Sender: TObject);
begin
  //---- 删除按钮单击时代码 ----//
  FileDeleteClick(FileDelete);
end;

procedure TMainForm.ViewToolButClick(Sender: TObject);
begin
  //==== 显示命令按钮时的过程代码 ====//
  ManageViewClick(ManageView);
end;

procedure TMainForm.CountToolButClick(Sender: TObject);
begin
  //==== 统计命令按钮单击时的过程代码 ====//
  CountWeekClick(CountWeek);
end;

procedure TMainForm.OptionToolButClick(Sender: TObject);
begin
  //==== 选项工具命令时的过程代码 ====//
  ManageOptionClick(ManageOption);
end;

{**************************************}
{******** 快击键菜单的过程代码 ********}
{**************************************}
procedure TMainForm.PopuNewsClick(Sender: TObject);
begin
  //==== 新建工件记划快捷键的过程代码 ====//
  FileNewsClick(FileNews);
end;

procedure TMainForm.PopuModifyClick(Sender: TObject);
begin
  //==== 修改快捷键单击时的过程代码 ====//
  FileModifyClick(FileModify);
end;

procedure TMainForm.PopuDeleteClick(Sender: TObject);
begin
  //---- 弹出删除按钮单击时代码 ----//
  FileDeleteClick(FileDelete);
end;

procedure TMainForm.PopuCountDayClick(Sender: TObject);
begin
  //==== 右键弹出菜单日统计 ====//
  CountDayClick(CountDay);
end;

procedure TMainForm.PopuCountWeekClick(Sender: TObject);
begin
  //==== 一周统计快捷键单击时的过程代码 ====//
  CountWeekClick(CountWeek);
end;

procedure TMainForm.PopuCountMonthClick(Sender: TObject);
begin
  //==== 一月统计快捷键单击时的过程代码 ====//
  CountMonthClick(CountMonth);
end;

procedure TMainForm.PopuCountYearClick(Sender: TObject);
begin
  //==== 一年统计快捷键单击时的过程代码 ====//
  CountYearClick(CountYear);
end;

procedure TMainForm.DownPopuDayClick(Sender: TObject);
begin
  //==== 下拉一日统记 ====//
  CountDayClick(CountDay);
end;

procedure TMainForm.DownPopuWeekClick(Sender: TObject);
begin
  //==== 工具弹出命令一周统计的过程代码 ====//
  CountWeekClick(CountWeek);
end;

procedure TMainForm.DownPopuMonthClick(Sender: TObject);
begin
  //==== 工具弹出命令一月统计的过程代码 ====//
  CountMonthClick(CountMonth);
end;

procedure TMainForm.DownPopuYearClick(Sender: TObject);
begin
  //==== 工具弹出命令一年统计的过程代码 ====//
  CountYearClick(CountYear);
end;

{****************************************}
{******** 显示列表框操作时的过程 ********}
{****************************************}
procedure TMainForm.JihuaListViewDblClick(Sender: TObject);
begin
  //==== 信息列表框双击时的过程代码 ====//
  FileModifyClick(FileModify);
end;

procedure TMainForm.JihuaListViewSelectItem(Sender: TObject;
  Item: TListItem; Selected: Boolean);
begin
  if Selected = TRUE then begin
    StatusBar.Panels[0].Text := '选择';
    StatusBar.Panels[2].Text := '#Select Row : ' + IntToStr(Item.Index + 1) + ' 行';
    Share_Str.Clear;                       //---- 清空字串列表全局变量 ----//
    FlushResultBut(TRUE);
    Share_Str.Add(Trim(Item.Caption));
    Share_Str.AddStrings(Item.SubItems);
  end else begin
    StatusBar.Panels[0].Text := '就绪';
    StatusBar.Panels[2].Text := '#Select Row : 0 行';
    Share_Str.Clear;                       //---- 清空字串列表全局变量 ----//
    FlushResultBut(FALSE);
  end;
end;

{**************************************}
{******** 新增统计控件过程代码 ********}
{**************************************}
procedure TMainForm.CB_RecordSortChange(Sender: TObject);
var RSC_SqlStr : String;
    RSC_CheckOk : Boolean;
begin
  //==== 排序选择控件改变时代码 ====//
  if (Share_SqlStr <> '') and (Trim(CB_RecordSort.Text)<>'')then begin //and
    //(CompareText('JihuaMain', Trim(CB_RecordSort.Text))<> 0)and
    //(CompareText('JihuaRemark', Trim(CB_RecordSort.Text))<> 0)then begin
    RSC_SqlStr := Share_SqlStr + ' ORDER BY ' + Trim(CB_RecordSort.Text);
    RSC_CheckOk := DataBaseSearch(RSC_SqlStr, 1);
    if RSC_CheckOk = FALSE then begin
      FileOutput.Enabled := FALSE;
      //Application.MessageBox('排序时出错啦!!!!', '提示', MB_OK);
    end else begin
      FlushListView(FALSE);                     //==== 刷新信息显示控件 ====//
      FlushDBGridWith();
      FileOutput.Enabled := TRUE;
    end;
  end;
end;
 
procedure TMainForm.FWeekSpeedButClick(Sender: TObject);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?