mainpas.pas
来自「DELPHI 编写个人工作计划事务管理软件」· PAS 代码 · 共 1,690 行 · 第 1/5 页
PAS
1,690 行
//==== 新建个人计划的过程代码 ====//
FlushListView(TRUE); //==== 刷新信息显示控件 ====//
FlushResultInfo(FALSE);
FlushSortBox(FALSE); //==== 隐藏排序操作控件 ====//
FlushWeekParle(FALSE); //==== 隐藏周统计面板件 ====//
StatusBar.Panels[0].Text := '新建';
StatusBar.Panels[1].Text := '';
StatusBar.Panels[2].Text := '';
//---------------- 创建新建窗口 ----------------//
FNC_Str := TStringList.Create; //==== 创建字符串内存空间 ====//
NewsForm := TNewsForm.Create(Application);
Try
Share_SqlStr := ''; //==== 清空全局查询字串 ====//
Share_Str.Clear; //==== 全局字串列表清空 ====//
NewsForm.ShowModal;
if NewsForm.ModalResult = mrOK then begin
FileOutput.Enabled := TRUE;
FNC_SqlStr := Share_SqlStr;
Share_SqlStr := ''; //==== 清空全局查询字串 ====//
for I := 0 to Share_Str.Count - 1 do begin
FNC_CheckOk := DataBaseSearch(Trim(Share_Str[I]), 2);
if FNC_CheckOk = FALSE then begin
StatusBar.Panels[1].Text := '总任务数 : ' + IntToStr(Share_DateCount);
StatusBar.Panels[2].Text := '新任务未保存';
//Application.MessageBox('插入数据库记录时出错啦!!!', '提示', MB_OK);
end else begin
Inc(Share_DateCount);
StatusBar.Panels[1].Text := '总任务数 : ' + IntToStr(Share_DateCount);
StatusBar.Panels[2].Text := '新添加任务 : ' + IntToStr(I+1) + ' 条';
{---- 增加数据显示 ----}
FNC_SqlStr := UnLineString(FNC_SqlStr, ':=', FNC_TempStr);
DecodeString(FNC_TempStr, ';', FNC_Str);
DataInsToView(FNC_Str); //==== 把数组记录输入列表 ====//
end;
end;
end;
Finally
FNC_Str.Free; //==== 释放字符串内存空间 ====//
NewsForm.Free; //==== 释放新建控件内存 ====//
end;
end;
procedure TMainForm.FileModifyClick(Sender: TObject);
var FMC_CheckOk : Boolean;
begin
//==== 修改个人工作计划的过程代码 ====//
if Share_Str.Count = 11 then begin
StatusBar.Panels[0].Text := '修改';
ModifyForm := TModifyForm.Create(Application);
Try
Share_SqlStr := ''; //==== 清空全局查询变量 ====//
ModifyForm.ShowModal; //==== 显示修改控件面板 ====//
if ModifyForm.ModalResult = mrOK then begin
FMC_CheckOk := DataBaseSearch(Share_SqlStr, 2);
if FMC_CheckOk = FALSE then begin
StatusBar.Panels[2].Text := '修改任务 : ' + Trim(Share_Str[0]) + ' 出错';
//Application.MessageBox('修改数据库记录时出错啦!!!', '提示', MB_OK);
end else begin
StatusBar.Panels[2].Text := '修改记录 : ' + Trim(Share_Str[0]);
{--------- 显示更新数据 --------}
ModifyListView(Share_Str); //==== 用全局字串列表显示 ====//
end;
end;
Finally
ModifyForm.Free;
end;
end;
end;
procedure TMainForm.FileDeleteClick(Sender: TObject);
var FDC_SqlStr : String;
FDC_CheckOk : Boolean;
begin
//---- 删除记录菜单单击代码 -----//
if Share_Str.Count = 11 then begin
StatusBar.Panels[0].Text := '删除';
FDC_SqlStr := 'DELETE FROM JihuaTable WHERE ID=''';
FDC_SqlStr := FDC_SqlStr + Trim(Share_Str[0]) + ''' AND JihuaName=''';
FDC_SqlStr := FDC_SqlStr + Trim(Share_Str[2]) + ''' AND CreateDate=''';
FDC_SqlStr := FDC_SqlStr + Trim(Share_Str[4]) + '''';
FDC_CheckOk := DataBaseSearch(FDC_SqlStr, 2);
if FDC_CheckOk = FALSE then begin
StatusBar.Panels[2].Text := '删除任务 : ' + Trim(Share_Str[0]) + ' 出错';
//Application.MessageBox('删除任务记录时出错啦!!!', '提示', MB_OK);
end else begin
//Share_DateCount := Share_DateCount - 1;
StatusBar.panels[1].Text := '总任务数 : ' + IntToStr(Share_DateCount - 1) + ' 条';
StatusBar.Panels[2].Text := '删除记录 : ' + Trim(Share_Str[0]);
JihuaListView.Selected.Delete;
end;
end;
end;
procedure TMainForm.OutputTextClick(Sender: TObject);
var OTC_Str : TStringList;
begin
//==== 当输出数据为文本数据时的代码 ====//
StatusBar.Panels[0].Text := '保存';
OTC_Str := TStringList.Create;
SaveFileDialog.DefaultExt := 'txt';
SaveFileDialog.Filter := '文本文档(*.txt)|*.txt|所有格式文档(*.*)|*.*';
if SaveFileDialog.Execute = TRUE then begin
Try
//==== 加入保存文本文档的过程代码 ====//
if JihuaListView.Visible = TRUE then begin
if JihuaListView.Items.Count > 0 then begin
ListViewToString(JihuaListView,OTC_Str);
OTC_Str.SaveToFile(SaveFileDialog.FileName);
end;
end else begin
{------------- 保存统计数据表格中数据 ------------}
if PageControl.TabIndex = 0 then begin
DateRecordToStr(OTC_Str);
OTC_Str.SaveToFile(SaveFileDialog.FileName);
end else begin
/////////// 加入如显示为信息面板中信息时的存盘 //////
if ResultListView.Items.Count > 0 then begin
ListViewToString(ResultListView,OTC_Str);
OTC_Str.SaveToFile(SaveFileDialog.FileName);
end;
end;
end;
Except
StatusBar.Panels[2].Text := SaveFileDialog.FileName + '文件未保存';
Application.MessageBox('保存文本文档时出错啦!!!', '警告', MB_OK);
Abort();
end;
StatusBar.Panels[2].Text := '文件保存成功';
Application.MessageBox('文本文档保存成功!!!', '提示', MB_OK);
end;
OTC_Str.Free;
end;
procedure TMainForm.OutputExcelClick(Sender: TObject);
var OEC_Str : TStringList;
I : Integer;
begin
//==== 当输出数据为EXCEL格式数据时的代码 ====//
OEC_Str := TStringList.Create;
SaveFileDialog.DefaultExt := 'xls';
SaveFileDialog.Filter := 'EXCEL文档(*.xls)|*.xls|所有格式文档(*.*)|*.*';
if SaveFileDialog.Execute = TRUE then begin
Try
//==== 加入保存EXCEL文档的过程代码 ====//
if JihuaListView.Visible = TRUE then begin
if JihuaListView.Items.Count > 0 then begin
ListViewToString(JihuaListView,OEC_Str); //==== 取得信息字中列表 ====//
For I := 0 to OEC_Str.Count - 1 do begin
{---------------- 加入保存为EXCEL 文档记录 ---------------}
ShowMessage('此功能还未做');
Exit;
end;
end;
end else begin
{--------------- 保存数据表格中数据 ---------------}
end;
Except
Application.MessageBox('保存EXCEL文档时出错啦!!!', '警告', MB_OK);
Abort();
end;
Application.MessageBox('EXCEL文档保存成功!!!', '提示', MB_OK);
end;
OEC_Str.Free;
end;
procedure TMainForm.FileExitClick(Sender: TObject);
begin
//==== 当单击退出命令菜单时的代码 ====//
MainForm.Close;
end;
procedure TMainForm.ManageViewClick(Sender: TObject);
var MVC_SqlStr : String;
MVC_CheckOk : Boolean;
MVC_Str : TStringList;
begin
//==== 当单击显示个人计划时的代码 ====//
Share_Str.Clear; //==== 清空全局字串列表变量 ====//
FlushListView(TRUE); //==== 刷新信息显示控件 ====//
FlushResultInfo(FALSE);
FlushSortBox(FALSE); //==== 隐藏排序操作控件 ====//
FlushWeekParle(FALSE); //==== 隐藏周统计面板件 ====//
JihuaListView.Clear;
{------------ 加入用户权限设置 ----------}
StatusBar.Panels[0].Text := '查询';
StatusBar.Panels[1].Text := '#Record : 0 条';
StatusBar.Panels[2].Text := '#Select Row : 0 行';
if Share_Level < 2 then begin
MVC_SqlStr := 'SELECT JihuaName FROM JihuaTable Group by JihuaName ORDER BY JihuaName';
MVC_CheckOk := DataBaseSearch(MVC_SqlStr, 1);
if MVC_CheckOk = FALSE then begin
StatusBar.Panels[2].Text := '提取姓名出错';
//Application.MessageBox('查询数据库记录时出错啦!!!', '提示', MB_OK);
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;
{-------------------- 显示查询选择的子窗体 ------------------}
MVC_Str := TStringList.Create; //==== 开设数组内存空间 ====//
SearchForm := TSearchForm.Create(Application);
Try
Share_SqlStr := ''; //==== 全局查询语名变量清空 ====//
SearchForm.ShowModal;
if SearchForm.ModalResult = mrOK then begin
MVC_CheckOk := DataBaseSearch(Share_SqlStr, 1);
if MVC_CheckOk = FALSE then begin
FileOutput.Enabled := FALSE;
StatusBar.Panels[0].Text := '错误';
StatusBar.Panels[2].Text := '查询任务出错';
//Application.MessageBox('查询数据库记录时出错啦!!!', '提示', MB_OK);
end else begin
With ADOQuery do begin
//Share_DateCount := RecordCount;
StatusBar.Panels[1].Text := '#Record : ' + IntToStr(RecordCount) + ' 条';
First;
While(Not Eof) do begin
DataToString(MVC_Str); //==== 把单行记录输入数组 ====//
DataInsToView(MVC_Str); //==== 把数组记录输入列表 ====//
Next;
Application.ProcessMessages;
end;
end;
FileOutput.Enabled := TRUE;
end;
end;
Finally
SearchForm.Free; //==== 释放窗体内存空间 ====//
MVC_Str.Free; //==== 释放数组内存空间 ====//
end;
end;
procedure TMainForm.CountDayClick(Sender: TObject);
var CDC_CheckOk : Boolean;
CDC_Str : TStrings;
CDC_SqlStr : String;
begin
//==== 菜单一日统计 ====//
Share_Str.Clear; //==== 清空全局字串列表 ====//
StatusBar.Panels[0].Text := '统计';
StatusBar.Panels[1].Text := '';
StatusBar.Panels[2].Text := '日统计';
if Share_Level < 2 then begin
CDC_SqlStr := 'SELECT JihuaName FROM JihuaTable Group by JihuaName ORDER BY JihuaName';
CDC_CheckOk := DataBaseSearch(CDC_SqlStr, 1);
if CDC_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;
CDC_Str := TStringList.Create; //==== 记录数据字段名称 ====//
SelDayForm:= TSelDayForm.Create(Application);
Try
Share_SqlStr:= ''; //==== 清空全局查询变量 ====//
SelDayForm.ShowModal;
if SelDayForm.ModalResult= mrOK then begin
CDC_CheckOk := DataBaseSearch(Share_SqlStr, 1);
if CDC_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(CDC_Str);
CB_RecordSort.Items.AddStrings(CDC_Str);
end;
end;
Finally
SelDayForm.Free;
CDC_Str.Free; //==== 释放字段名称字串 ====//
end;
end;
procedure TMainForm.CountWeekClick(Sender: TObject);
var CWC_CheckOk : Boolean;
CWC_Str : TStrings;
CWC_SqlStr : String;
StartDate, EndDate : TDate; //==== 用于标记两极端天数 ====//
begin
//==== 周统计过程代码 ====//
Share_Str.Clear; //==== 清空全局字串列表 ====//
StatusBar.Panels[0].Text := '统计';
StatusBar.Panels[1].Text := '';
StatusBar.Panels[2].Text := '本周统计';
if Share_Level < 2 then begin
CWC_SqlStr := 'SELECT JihuaName FROM JihuaTable Group by JihuaName ORDER BY JihuaName';
CWC_CheckOk := DataBaseSearch(CWC_SqlStr, 1);
if CWC_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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?