⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.~pas

📁 学习程序,用于初学进销存的参考代码学习程序,用于初学进销存的参考代码
💻 ~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 + -