📄 main.pas
字号:
unit Main;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,
StdCtrls, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,
ActnList, ToolWin, ImgList, RzStatus, RzPanel, RzGroupBar, DB, iniFiles,
cxEditRepositoryItems, cxEdit, XPMan, RM_Dataset, RM_Common, RM_Class,
RM_GridReport, XPMenu, RzSplit, RM_e_main, RM_e_Xls, RM_System;
type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
File1: TMenuItem;
Help1: TMenuItem;
N1: TMenuItem;
FileExitItem: TMenuItem;
HelpAboutItem: TMenuItem;
ActionList1: TActionList;
FileExit1: TAction;
WindowCascade1: TWindowCascade;
WindowTileHorizontal1: TWindowTileHorizontal;
WindowMinimizeAll1: TWindowMinimizeAll;
HelpAbout1: TAction;
WindowTileVertical1: TWindowTileVertical;
RzStatusBar1: TRzStatusBar;
RzStatusPane1: TRzStatusPane;
RzClockStatus1: TRzClockStatus;
RzKeyStatus1: TRzKeyStatus;
RzKeyStatus2: TRzKeyStatus;
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
ToolButton1: TToolButton;
RzSizePanel1: TRzSizePanel;
RzGroupBar1: TRzGroupBar;
RzGroup1: TRzGroup;
RzGroup2: TRzGroup;
RzGroup3: TRzGroup;
RzGroup5: TRzGroup;
ImageList2: TImageList;
ToolButton2: TToolButton;
ToolButton3: TToolButton;
ToolButton4: TToolButton;
Exit5: TToolButton;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
Image1: TImage;
ImageList1: TImageList;
W1: TMenuItem;
C1: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
RzGroup4: TRzGroup;
RzGroup6: TRzGroup;
Timer1: TTimer;
N5: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
RzStatusPane2: TRzStatusPane;
ClientList: TAction;
Visit: TAction;
Bespeak: TAction;
Reserve: TAction;
PowerChange: TAction;
ChangePassword: TAction;
SystemLog: TAction;
Area: TAction;
BackUpdata: TAction;
Option: TAction;
N20: TMenuItem;
N21: TMenuItem;
N22: TMenuItem;
EXCEL1: TMenuItem;
N23: TMenuItem;
ClientListReport: TAction;
LinkManReport: TAction;
VisitReport: TAction;
BespokeReport: TAction;
SellReport: TAction;
ProductReport: TAction;
LogReport: TAction;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N32: TMenuItem;
RMGridReport1: TRMGridReport;
RMDBDataSet1: TRMDBDataSet;
RMDBDataSet2: TRMDBDataSet;
LinkManList: TAction;
N33: TMenuItem;
SellList: TAction;
N34: TMenuItem;
ToolButton5: TToolButton;
ToolButton6: TToolButton;
ToolButton7: TToolButton;
XPManifest1: TXPManifest;
ToolButton8: TToolButton;
EMail: TAction;
N35: TMenuItem;
N36: TMenuItem;
cxEditRepository1: TcxEditRepository;
DateEdit: TcxEditRepositoryDateItem;
TimeEdit: TcxEditRepositoryTimeItem;
MoneyEdit: TcxEditRepositoryCurrencyItem;
ClientData: TAction;
LinkMan: TAction;
VisitData: TAction;
BespokeData: TAction;
ProductData: TAction;
N37: TMenuItem;
N38: TMenuItem;
N39: TMenuItem;
N40: TMenuItem;
N41: TMenuItem;
N42: TMenuItem;
Sort: TAction;
N44: TMenuItem;
N45: TMenuItem;
RMXLSExport1: TRMXLSExport;
Tomorrow: TRzGroup;
Compress: TAction;
N43: TMenuItem;
IntegerEdit: TcxEditRepositorySpinItem;
N46: TMenuItem;
N47: TMenuItem;
H1: TMenuItem;
Help: TAction;
RzGroup7: TRzGroup;
Label1: TLabel;
Label2: TLabel;
procedure FileExit1Execute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure HelpAbout1Execute(Sender: TObject);
//日程安排
procedure ShowCalendar;
//检测过期记录
procedure TestOverdueData;
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ToolButton1Click(Sender: TObject);
//导入权限分配
procedure LoadPower;
//打印报表
procedure PrintReport(ID : Integer);
procedure ClientListReportExecute(Sender: TObject);
//分配窗口显示
procedure ShowWindows(ID :Integer);
procedure ClientListExecute(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
//今日要事
procedure OClickSort(sender: TObject);
procedure ToolButton5Click(Sender: TObject);
procedure ToolButton6Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ToolButton8Click(Sender: TObject);
procedure EMailExecute(Sender: TObject);
//返回本星期起止日期的SQL语句
function OutToStarAndEnd:String;
//统计销售量
procedure StatProductSell;
procedure HelpExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
LogoIn :Boolean;
//*******权限部分*****************
power : Boolean; //权限管理
password : Boolean; //密码
print : Boolean; //打印
DataOut : Boolean; //数据导出
BackUp : Boolean; //备份还原
Log : Boolean; //查看日志
end;
var
MainForm : TMainForm;
IsMax : integer=-1;
Maxs : Boolean=false;
DataSet : TDataSet; //数据源
Ini : TiniFile;
productList: TStringList;
implementation
{$R *.dfm}
uses ClientList, Reserve, Welcome, DM, EditArea, Bespeak, Areas, PowerSet,
Load, Option, progress, WaitPas1, ChangePassword, BackUp, Log, ShellApi,
LinkManlist, SellList, Search, SortForm, CompressData;
procedure OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
{根据传递过来的参数,打开相应的窗体}
var
i: integer;
Child:TForm;
begin
for i := 0 to Screen.FormCount -1 do
if Screen.Forms[i].ClassType=FormClass then
begin
{检查窗体是否已经打开,如果没有打开,打开它,
如果已经打开,让它正常显示即可}
Child:=Screen.Forms[i];
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
Child.Create(AOwner);
end;
procedure TMainForm.FileExit1Execute(Sender: TObject);
begin
Close;
end;
procedure TMainForm.FormCreate(Sender: TObject);
var
L, T, W ,H : Integer;
begin
//读取INI文件以判断窗口位置
ini:=TiniFile.Create(ExtractFilePath(paramstr(0))+'CRM.ini');
IsMax := ini.ReadInteger('MaxWindow','Max',-1);
L := ini.ReadInteger('WindowsState','Left',0);
T := Ini.ReadInteger('WindowsState','Top',0);
W := Ini.ReadInteger('WindowsState','Width',0);
H := Ini.ReadInteger('WindowsState','Height',0);
if IsMax<>0 then
MainForm.Position:=poScreenCenter
else begin
Left := L;
Top := T;
Width := W;
Height := H;
end;
productList:=TStringList.Create;
if FileExists('MainGroup.bmp') then
Image1.Picture.Bitmap.LoadFromFile('MainGroup.bmp');
RzGroup6.DoubleBuffered:=true;
LogoIn:=false;
end;
procedure TMainForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Messagebox(handle,'您确定要退出当前系统吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then begin
CanClose:=true;
end
else CanCLose:=false;
end;
procedure TMainForm.HelpAbout1Execute(Sender: TObject);
begin
WelComeForm.ShowModal;
end;
procedure TMainForm.ShowCalendar;
var
Dates, S, S1 : String;
I : Integer;
begin
//显示今日要事、本周安排
Dates:=FormatDateTime('yyyy-MM-dd',NOW);
With DM1.ADOQuery1 do try
Close;
SQL.Clear;
SQL.Add('Select * From ClientBespeak where Dates =:PM');
Parameters.ParamByName('PM').Value:=Dates;
Open;
RzGroup6.Items.Clear;
RzGroup6.Items.Add;
if RecordCount <1 then begin
RzGroup6.Items[0].Caption:='今天没有事务安排';
end else if RecordCount >=1 then begin
RzGroup6.Items[0].Caption:='今天有 '+IntToStr(RecordCount)+' 个联系客户';
First;
for I:=0 to RecordCount-1 do begin
with RzGroup6.Items.Add do begin
Caption:=IntToStr(i+1)+'、'+FieldByName('ClientName').AsString;
Tag:=100;
OnClick:=OClickSort;
end;
Next;
end;
end;
Close;
SQL.Clear;
//近期安排
S := FormatDateTime(ShortDateFormat,Now);
S1:= FormatDateTime(ShortDateFormat,Now+Ini.ReadInteger('TermSet','Set',7));
SQL.Add('Select * From ClientBespeak where Dates between '+''''+S+''''+' and '+''''+S1+'''');
Open;
Tomorrow.Items.Clear;
Tomorrow.Items.Add;
if RecordCount <1 then begin
Tomorrow.Items[0].Caption:='近期没有事务安排';
end else if RecordCount >=1 then begin
Tomorrow.Items[0].Caption:='近期有 '+IntToStr(RecordCount)+' 个联系客户';
First;
for I:=0 to RecordCount-1 do begin
with Tomorrow.Items.Add do begin
Caption:=IntToStr(i+1)+'、'+FieldByName('ClientName').AsString;
Tag:=200;
OnClick:=OClickSort;
end;
Next;
end;
end;
Close;
SQL.Clear;
except
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -