📄 main.~pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, ComCtrls, Buttons, ExtCtrls, StdCtrls,IniFiles,ADODB,unit_main_dm, base;
type
//TfrmMain = class(TfrmBase)
TfrmMain = class(TForm)
Label3: TLabel;
PCMain: TPageControl;
TB_Main: TTabSheet;
Splitter1: TSplitter;
Panel1: TPanel;
LeftImg: TImage;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
TBSell: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton21: TSpeedButton;
StatusBar1: TStatusBar;
PCSub: TPageControl;
TBMaster: TTabSheet;
TBStock: TTabSheet;
TBSeller: TTabSheet;
TBStore: TTabSheet;
TBSys: TTabSheet;
TabSheet2: TTabSheet;
MainMenu1: TMainMenu;
N1: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
ImageList1: TImageList;
SBMaster: TSpeedButton;
SB_Customers: TSpeedButton;
SB_Stock: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SB_Sell: TSpeedButton;
SB_Storege_Check: TSpeedButton;
SB_Storege: TSpeedButton;
SB_UserMgr: TSpeedButton;
SB_BackupDatabase: TSpeedButton;
SpeedButton8: TSpeedButton;
SB_Gross_Profit: TSpeedButton;
SB_SellSum: TSpeedButton;
SB_StockSum: TSpeedButton;
N7: TMenuItem;
N2: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N21: TMenuItem;
Button1: TButton;
N22: TMenuItem;
N23: TMenuItem;
procedure FormShow(Sender: TObject);
procedure SBMasterClick(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure SB_StockClick(Sender: TObject);
procedure SB_SellClick(Sender: TObject);
procedure SB_StoregeClick(Sender: TObject);
procedure SB_StockSumClick(Sender: TObject);
procedure SB_SellSumClick(Sender: TObject);
procedure SB_BackupDatabaseClick(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure TBSellClick(Sender: TObject);
procedure SpeedButton21Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SB_Gross_ProfitClick(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure LinkDataBase();
procedure LoadTabSheet(ChildForm: TForm;sCaption:String;sName:String);
function CreateChildForm(ParentControl: TWinControl; ChildForm: TForm): boolean;
procedure SystemLogin();
public
Procedure CloseActivePage(var msg :TMessage);message CloseForm;
end;
var
frmMain: TfrmMain;
implementation
uses unit_master, login, cover, unit_stock_in,
sell, storege, stock_sumqry, sell_sumqry, gross_profit, customer;
{$R *.dfm}
Procedure TfrmMain.CloseActivePage(var msg :TMessage);
begin
PCMain.ActivePage.Free;
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
inherited;
frmCover.ShowModal;
LinkDataBase();
SystemLogin();
end;
procedure TfrmMain.SystemLogin();
var frmLogin :TfrmLogin;
begin
frmlogin:=TfrmLogin.Create(self);
frmlogin.ShowModal;
end;
procedure TfrmMain.LinkDataBase();//连接数据库
var sPath,sServerName,sDBName,sUserName,sPwd:string;
myIni:TiniFile;
begin
main_DM.ADOConn.Close;
sPath:=ExtractFilePath(Application.ExeName)+'Settings.ini';
myIni:=TiniFile.Create(sPath);
sServerName:=myIni.ReadString('DBConnection','servername',sServerName);
sDBName:=myIni.ReadString('DBConnection','dbname',sDBName);
sUserName:=myIni.ReadString('DBConnection','username',sUserName);
sPwd:=myIni.ReadString('DBConnection','password',sPwd);
main_DM.ADOConn.ConnectionString:='Provider=SQLOLEDB.1;Password='+sPwd+';Persist Security Info=True;User ID='+sUserName+';Initial Catalog='+sDBName+';Data Source='+sServerName+';';
try
main_DM.ADOConn.Open;
except
ShowMessage('连接数据库失败,请检查数据连接INI文件!');
end;
end;
//////////动态加载新的页面,通用函数////////////
procedure TfrmMain.LoadTabSheet(ChildForm: TForm;sCaption:String;sName:String);
var newtab:TTabSheet;
i:Integer;
created: boolean;
begin
created:= false;
for i:=0 to pcmain.ControlCount - 1 do
begin
if pcmain.Controls[i].Name = sName then
begin
created:= true;
break;
end
else
begin
created:= false;
end;
end;
if created then
begin
pcmain.ActivePage:= TTabSheet(pcmain.Controls[i]);
end
else
begin
newtab:=TTabSheet.Create(self);
newtab.PageControl:=PCMain;
newtab.Caption:=sCaption;
newtab.Name:=sName;
newtab.Show;
CreateChildForm(newtab,ChildForm);
end;
end;
/////////////////////////////////////////////////////////////////
function TfrmMain.CreateChildForm(ParentControl: TWinControl; ChildForm: TForm): boolean;
var
i:integer;
ok: boolean;
begin
ok:= false;
for i:=0 to ParentControl.ControlCount - 1 do
begin
if ParentControl.Controls[i].ClassName = ChildForm.ClassName then
begin
ok:= true;
end;
end;
if not ok then
begin
ChildForm.Visible := False;
ChildForm.BorderStyle := bsNone;
ChildForm.SetBounds(0, 0, ParentControl.Width, ParentControl.Height);
ChildForm.Parent:= ParentControl;
ChildForm.Visible := True;
end;
Result := True;
end;
procedure TfrmMain.SBMasterClick(Sender: TObject);
var frmMaster:TfrmMaster;
begin
frmMaster:=TfrmMaster.Create(self);
LoadTabSheet(frmMaster,'基本资料','TBaseInfo');
end;
procedure TfrmMain.SpeedButton8Click(Sender: TObject);
var frmCustomer:TfrmCustomer;
begin
frmCustomer:=TfrmCustomer.Create(self);
LoadTabSheet(frmCustomer,'客户信息','TfrmCustomer');
end;
procedure TfrmMain.N6Click(Sender: TObject);
begin
if PCMain.ActivePage<>TB_Main then
begin
PCMain.ActivePage.Free;
end;
end;
procedure TfrmMain.N4Click(Sender: TObject);
begin
frmCover.Timer1.Enabled:=false;
frmCover.AlphaBlendValue:=255;
frmCover.BorderStyle:=bsDialog;
frmCover.ShowModal;
end;
procedure TfrmMain.SB_StockClick(Sender: TObject);
var frmStock_In:TfrmStock_In;
begin
frmStock_In:=TfrmStock_In.Create(self);
LoadTabSheet(frmStock_In,'采购进货','TfrmStock_In');
end;
procedure TfrmMain.SB_SellClick(Sender: TObject);
var frmSell:TfrmSell;
begin
frmSell:=TfrmSell.Create(self);
LoadTabSheet(frmSell,'销售管理','TfrmSell');
end;
procedure TfrmMain.SB_StoregeClick(Sender: TObject);
var frmStorege:TfrmStorege;
begin
frmStorege:=TfrmStorege.Create(self);
LoadTabSheet(frmStorege,'库存查询','TfrmStorege');
end;
procedure TfrmMain.SB_StockSumClick(Sender: TObject);
var frmStocksumQry:TfrmStocksumQry;
begin
frmStocksumQry:=TfrmStocksumQry.Create(self);
LoadTabSheet(frmStocksumQry,'进货分析','TfrmStocksumQry');
end;
procedure TfrmMain.SB_SellSumClick(Sender: TObject);
var frmSellSumQry:TfrmSellSumQry;
begin
frmSellSumQry:=TfrmSellSumQry.Create(self);
LoadTabSheet(frmSellSumQry,'销售分析','TfrmSellSumQry');
end;
procedure TfrmMain.SB_Gross_ProfitClick(Sender: TObject);
var frmGrossProfit:TfrmGrossProfit;
begin
frmGrossProfit:=TfrmGrossProfit.Create(self);
LoadTabSheet(frmGrossProfit,'毛利核算','TfrmGrossProfit');
end;
procedure TfrmMain.SB_BackupDatabaseClick(Sender: TObject);
var tmp:TADOQuery;_sql:string;
begin
tmp:=TADOQuery.Create(self);
tmp.Connection:=Main_DM.ADOConn;
tmp.Close;
tmp.SQL.Clear;
if MessageDlg('是否确定把数据库备份到C:\coffeebak?',mtConfirmation, [mbYes, mbNo], 0) = mrYes
then
begin
_sql:='backup database coffe to disk=''c:\coffeebak''';
tmp.SQL.Add(_sql);
tmp.ExecSQL;
ShowMessage('备份数据库成功!');
end;
tmp.Free;
end;
procedure TfrmMain.SpeedButton2Click(Sender: TObject);
begin
PCSub.ActivePageIndex:=0;
end;
procedure TfrmMain.SpeedButton3Click(Sender: TObject);
begin
LockWindowUpdate(self.Handle);
PCSub.ActivePageIndex:=1;
LockWindowUpdate(0);
end;
procedure TfrmMain.SpeedButton4Click(Sender: TObject);
begin
PCSub.ActivePageIndex:=2;
end;
procedure TfrmMain.TBSellClick(Sender: TObject);
begin
PCSub.ActivePageIndex:=3;
end;
procedure TfrmMain.SpeedButton21Click(Sender: TObject);
begin
PCSub.ActivePageIndex:=5;
end;
procedure TfrmMain.SpeedButton7Click(Sender: TObject);
begin
PCSub.ActivePageIndex:=4;
end;
procedure TfrmMain.N5Click(Sender: TObject);
begin
if MessageDlg('确定退出系统吗?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Close();
end;
procedure TfrmMain.Button1Click(Sender: TObject);
begin
if Main_DM.MyQuestion('退出吗?') then exit;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -