📄 main.pas
字号:
procedure TMainForm.FormActivate(Sender: TObject);
begin
if (not Maxs)and(IsMax=1) then begin
MainForm.WindowState:=wsMaximized;
Maxs:=true;
end;
if not LogoIn then begin
LoadForm.RzEdit1.Clear;
LoadForm.ShowModal;
if Not LogoIn then
Application.Terminate
else begin
LoadPower;
TestOverdueData;
end;
end;
end;
procedure TMainForm.Timer1Timer(Sender: TObject);
var
NDate, NTime, NSecond, ZT, SJ:String;
begin
//在每分钟开始时,进行检测
if OptionForm.Information.ItemIndex=1 then Exit;
NSecond:=FormatDateTime('ss',now);
if Nsecond<>'00' then Exit;
//检查有没有到期的提醒记录
NDate:=FormatDateTime(ShortDateFormat,now);
NTime:=FormatDateTime(ShortTimeFormat,now);
with DM1.TestRe do try
Close;
SQL.Clear;
SQL.Add('Select * from ClientBespeak where Dates =:Date and Times =:Time');
Parameters.ParamByName('Date').Value:=NDate;
Parameters.ParamByName('Time').Value:=NTime;
Open;
ZT:=FieldByName('Motif').AsString;
SJ:=FieldByName('Times').AsString;
if RecordCount>0 then begin
if Messagebox(handle,'现在已经有要联系的客户,您现在就要打开所在联系的客户列表吗?','询问',MB_OKCANCEL+MB_ICONQUESTION)=IDOK then begin
ShowWindows(53);
//定位现在需要联系的客户所在的行
DM1.ADODataSet9.Locate('Motif',ZT,[]);
DM1.ADODataSet9.Locate('Times',SJ,[]);
end;
end;
except
end;
end;
procedure TMainForm.ToolButton1Click(Sender: TObject);
begin
//重新登陆系统
//记录用户退出时间
LoadForm.UserExitDate;
LogoIn:=false;
RzStatusPane2.Caption:='';
FormActivate(sender);
end;
procedure TMainForm.LoadPower;
begin
//导入权限分配
PowerChange.Enabled:=power;
ChangePassword.Enabled:=Password;
SystemLog.Enabled:=Log;
BackUpdata.Enabled:=BackUp;
Option.Enabled:=BackUp;
LogReport.Enabled:=Log;
EXCEL1.Enabled:=DataOut;
end;
procedure TMainForm.PrintReport(ID: Integer);
begin
DataSet:=TDataSet.Create(self);
//打印报表
RMGridReport1.Clear;
try
//配置数据源
case ID of
1 : DataSet:=DM1.ADODataSet1;
2 : DataSet:=DM1.LinkManList;
3 : DataSet:=DM1.ADODataSet10;
4 : DataSet:=DM1.ADODataSet9;
5 : DataSet:=DM1.SellList;
6 : DataSet:=DM1.ADODataSet5;
7 : DataSet:=DM1.LogData;
//单位联系人
211: DataSet:=DM1.ADODataSet2;
//单位拜访记录
212: DataSet:=DM1.ADODataSet4;
// 单位销售记录
213: DataSet:=DM1.ADODataSet6;
//单位预约记录
214: DataSet:=DM1.ADODataSet8;
end;
if DataSet.IsEmpty then begin
Messagebox(handle,'没有可打印的报表数据!','错误',MB_Ok+MB_ICONWARNING);
Exit;
end else RMDBDataSet1.DataSet:=DataSet;
if (ID=5)or(ID=213) then
RMDBDataSet2.DataSet:=DM1.ADODataSet7
else RMDBDataSet2.DataSet:=nil;
//从资源文件中导入报表数据流
case ID of
1 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Client','REP'));
211, 2 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LinkMan','REP'));
212, 3 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Visit','REP'));
214, 4 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Bespeak','REP'));
213, 5 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'SELL','REP'));
6 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'Product','REP'));
7 : RMGridReport1.LoadFromStream(TResourceStream.Create(HINSTANCE,'LOG','REP'));
end;
RMGridReport1.ReportInfo.Title:='四川廖氏重庆分公司客户系管理系统';
RMGridReport1.ShowReport;
except
end;
end;
procedure TMainForm.ClientListReportExecute(Sender: TObject);
begin
PrintReport(TAction(sender).Tag);
end;
procedure TMainForm.ShowWindows(ID: Integer);
begin
//分配窗口显示
case ID of
51 : OpenForm(TClientListForm, ClientListForm , self);//全部客户列表
52 : OpenForm(TVisitForm, VisitForm, self); //全部客户拜访记录
53 : OpenForm(TBespeakForm, BespeakForm , self); //显示所有客户预约信息
54 : OpenForm(TProducts, Products, Self); //显示产品信息
55 : PowerSetForm.ShowModal; //权限管理
56 : PasswordForm.ShowModal;//更改密码
57 : LogForm.ShowModal;//系统日志
58 : EditAreaForm.ShowModal;//区域设置
59 : BackUpForm.ShowModal;//备份数据库
60 : OptionForm.ShowModal;//数据备份设置
61 : CompressDataForm.ShowModal;//ACCESS数据压缩
62 : OpenForm(TLinkManForm, LinkManForm, Self);//联系人列表
63 : OpenForm(TSellListForm, SellListForm, Self);//产品销售列表
64 : SortSetForm.ShowModal; //设置数据库类别
end;
end;
procedure TMainForm.ClientListExecute(Sender: TObject);
begin
ShowWindows(TAction(sender).Tag);
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//记录用户退出时间
LoadForm.UserExitDate;
DataSet.Free;
end;
procedure TMainForm.OClickSort(sender: TObject);
var
Captions : String;
begin
//今日要事响应
with sender as TRzgroupItem do begin
Captions := Copy(Caption,4,100);
DM1.ADODataSet9.Locate('ClientName',Captions,[]);
ShowWindows(53);
case TRzgroupItem(sender).Tag of
100 : BespeakForm.RadioGroup.ItemIndex:=0;
200 : BespeakForm.RadioGroup.ItemIndex:=3;
end;
end;
end;
procedure TMainForm.ToolButton5Click(Sender: TObject);
begin
//更新全部数据
with DM1 do try
ADODataSet1.Requery;
ADODataSet2.Requery;
ADODataSet3.Requery;
ADODataSet4.Requery;
ADODataSet5.Requery;
ADODataSet6.Requery;
ADODataSet7.Requery;
ADODataSet8.Requery;
ADODataSet9.Requery;
ADODataSet10.Requery;
ADOTable1.Requery;
LinkManList.Requery;
SellList.Requery;
ADODataSet11.Requery;
LogData.Requery;
except
Messagebox(handle,'数据库刷新失败!','错误',MB_OK+MB_ICONERROR);
end;
end;
procedure TMainForm.ToolButton6Click(Sender: TObject);
begin
SearchForm.ShowModal;
end;
procedure TMainForm.FormDestroy(Sender: TObject);
begin
//保存窗口信息
ini.WriteInteger('WindowsState','Left',Left);
ini.WriteInteger('WindowsState','Top',Top);
ini.WriteInteger('WindowsState','Width',Width);
ini.WriteInteger('WindowsState','Height',Height);
if MainForm.WindowState=wsMaximized then
Ini.WriteInteger('MaxWindow','Max',1)
else Ini.WriteInteger('MaxWindow','Max',0);
Ini.Free;
productList.Free;
end;
procedure TMainForm.ToolButton8Click(Sender: TObject);
begin
if RzSizePanel1.HotSpotClosed then
RzSizePanel1.RestoreHotSpot
else RzSizePanel1.CloseHotSpot;
end;
procedure TMainForm.EMailExecute(Sender: TObject);
begin
//发送电子邮件
ShellExecute(handle,nil,'mailto:skymouser@163.com?subject=关于“四川廖氏重庆分公司客户系管理系统”',nil,nil,SW_SHOWNORMAL);
end;
procedure TMainForm.TestOverdueData;
var
Index : Integer;
begin
//检测过期记录
with DM1.ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('select * from ClientBespeak where Dates<:PM');
Parameters.ParamByName('PM').Value:=FormatDateTime(ShortDateFormat,Now);
Open;
if RecordCount>0 then begin
Index:=Messagebox(handle,Pchar('您的预约记录中有 '+IntToStr(RecordCount)+' 条已经过期的记录,请单击“是”来删除这些记录,单击“否”来对这些记录进行转化!'),'警告',MB_YESNOCANCEL+MB_ICONWARNING+MB_DEFBUTTON2+MB_TOPMOST);
if index=idyes then begin
Close;
SQL.Clear;
SQL.Add('Delete From ClientBespeak where Dates<:PM');
Parameters.ParamByName('PM').Value:=FormatDateTime(ShortDateFormat,Now);
ExecSQL;
end else if index=idno then begin
ShowWindows(53);
BespeakForm.RadioGroup.ItemIndex:=4;
end;
end;
Close;
except
end;
end;
function TMainForm.OutToStarAndEnd: String;
var
I : Integer;
Before,
After : String;
begin
//返回本星期的起止日期的SQL语句
if ini.ReadInteger('SetWeek','Set',0)=0 then
i := DayOfWeek(Now)
else I := DayOfWeek(Now)-1;
Before := FormatDateTime(ShortDateFormat,Now-(I-1));
After := FormatDateTime(ShortDateFormat,now+(7-I));
Result:='Between '+''''+Before+''''+'and'+''''+After+'''';
end;
procedure TMainForm.StatProductSell;
var
I : Integer;
S : String;
begin
//统计销售量
productList.Clear;
with DM1.ADODataSet5 do try
First;
for i:=0 to RecordCount-1 do begin
productList.Add(FieldByName('ProductName').AsString);
Next;
end;
except
Exit;
end;
//将统计的销售量记录到产品目录中
S:=DM1.ADODataSet5.CommandText;
for i:=0 to ProductList.Count-1 do begin
with DM1.ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('Select SUM(Number) as [PAM] from SellDetail where ProductName='+''''+ProductList.Strings[i]+'''');
Open;
DM1.ADODataSet5.Close;
DM1.ADODataSet5.CommandText:='Select * from ProductInfo where ProductName='+''''+ProductList.Strings[i]+'''';
DM1.ADODataSet5.Open;
DM1.ADODataSet5.Edit;
DM1.ADODataSet5.FieldByName('SellNumber').AsInteger:=FieldByName('PAM').AsInteger;
DM1.ADODataSet5.Post;
Except
end;
end;
DM1.ADODataSet5.Close;
DM1.ADODataSet5.CommandText:=S;
DM1.ADODataSet5.Open;
end;
procedure TMainForm.HelpExecute(Sender: TObject);
begin
//打开帮助文件
try
ShellExecute(Handle, 'open', 'Help.pdf', nil, nil, SW_SHOWNORMAL);
except
Messagebox(handle,'无法打开帮助文档,请检查Adobe Reader 6.0 或更高版本是否安装','错误',MB_OK+MB_ICONWARNING);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -