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

📄 untmain.pas

📁 销售软件
💻 PAS
📖 第 1 页 / 共 2 页
字号:
    PN_SAVECOMPUTERINFO,
    PN_DELETECOMPUTERINFO,
    actMComputer );
end;

procedure TfrmMain.actMEmployeeExecute( Sender: TObject );
begin
  { 雇员管理 }

  pLoadManagerForm(
    m_bEmployeeLoaded,
    TForm( frmEmployeeManager ),
    TfrmEmployeeManager,
    VN_EMPLOYEE,
    KFN_EMPLOYEE,
    PN_SAVEEMPLOYEEINFO,
    PN_DELETEEMPLOYEEINFO,
    actMEmployee );
end;

procedure TfrmMain.actMInAccessoryExecute( Sender: TObject );
begin
  { 进货管理 }

  pLoadManagerForm(
    m_bInAccessoryLoaded,
    TForm( frmInAccessoryManager ),
    TfrmInAccessoryManager,
    VN_INACCESSORY,
    KFN_INACCESSORY,
    PN_SAVEINACCESSORYINFO,
    PN_DELETEINACCESSORYINFO,
    actMInAccessory );
end;

procedure TfrmMain.actMIncomeExpensesExecute( Sender: TObject );
begin
  { 收支管理 }

  pLoadManagerForm(
    m_bIncomeExpensesLoaded,
    TForm( frmIncomeExpensesManager ),
    TfrmIncomeExpensesManager,
    VN_INCOMEEXPENSES,
    KFN_INCOMEEXPENSES,
    PN_SAVEINCOMEEXPENSESINFO,
    PN_DELETEINCOMEEXPENSESINFO,
    actMIncomeExpenses );
end;

procedure TfrmMain.actMMerchantExecute( Sender: TObject );
begin
  { 供货商管理 }

  pLoadManagerForm(
    m_bMerchantLoaded,
    TForm( frmMerchantManager ),
    TfrmMerchantManager,
    VN_MERCHANT,
    KFN_MERCHANT,
    PN_SAVEMERCHANTINFO,
    PN_DELETEMERCHANTINFO,
    actMMerchant );
end;

procedure TfrmMain.actMOutAccessoryExecute( Sender: TObject );
begin
  { 出货管理 }

  pLoadManagerForm(
    m_bOutAccessoryLoaded,
    TForm( frmOutAccessoryManager ),
    TfrmOutAccessoryManager,
    VN_OUTACCESSORY,
    KFN_OUTACCESSORY,
    PN_SAVEOUTACCESSORYINFO,
    PN_DELETEOUTACCESSORYINFO,
    actMOutAccessory );
end;

procedure TfrmMain.actMStartPageExecute( Sender: TObject );
begin
  { 起始页管理 }

  pLoadManagerForm( m_bStartPageLoaded, TForm( frmMainStartPage ),
    TfrmMainStartPage, EmptyStr, EmptyStr, EmptyStr, EmptyStr, actMStartPage );
end;

procedure TfrmMain.actMTCalcExecute( Sender: TObject );
begin
  { 启动计算器 }

  WinExec( PChar( STR_CALCEXEFILENAME ), 1 );
end;

procedure TfrmMain.actMTIEDBFilesExecute( Sender: TObject );
begin
  { 启动导出导入数据库 }

  WinExec( PChar( STR_IEDBFILESEXEFILENAME ), 1 )
end;

procedure TfrmMain.FormCreate( Sender: TObject );
begin
  Caption := STR_APPMAINTITLE;

  // TODO: 设置管理窗体是否显示的初始值
  m_bMerchantLoaded := False;
  m_bBrandLoaded := False;
  m_bInAccessoryLoaded := False;
  m_bComputerLoaded := False;
  m_bOutAccessoryLoaded := False;
  m_bAfterServiceLoaded := False;
  m_bEmployeeLoaded := False;
  m_bIncomeExpensesLoaded := False;
end;

function TfrmMain.GetCurrentPageAddr: Pointer;
begin
  Result := tabMainContainer.Tabs[ tabMainContainer.TabIndex ].Data;
end;

function TfrmMain.GetCurrentPageIndex: Integer;
begin
  Result := tabMainContainer.TabIndex;
end;

function TfrmMain.GetStatusItemsCount: string;
begin
  Result := stpItemsCount.Caption;
end;

function TfrmMain.GetStatusRemark: string;
begin
  Result := stpRemark.Caption;
end;

function TfrmMain.GetStatusSelectedCount: string;
begin
  Result := stpSelectedCount.Caption;
end;

function TfrmMain.GetStatusSelectedIndex: string;
begin
  Result := stpSelectedIndex.Caption;
end;

procedure TfrmMain.imgLogoClick( Sender: TObject );
begin
  OpenURL( STR_APPHOMEPAGEURL );
end;

procedure TfrmMain.pACTInfoExecute( Sender: TObject );
var
  pfrmCurrent: PForm;
  frmManagerForm: TfrmJCAMManagerForm;
begin
  if Sender is TAction then
  begin
    pfrmCurrent := tabMainContainer.Tabs[ tabMainContainer.TabIndex ].Data;
    if ( pfrmCurrent <> @frmMainStartPage ) then
    begin
      frmManagerForm := TfrmJCAMManagerForm( pfrmCurrent^ );
      if Sender = actInfoAdd then
        frmManagerForm.TableViewEditorForm.ActionAdd.Execute;
      if Sender = actInfoDelete then
        frmManagerForm.TableViewEditorForm.ActionDelete.Execute;
      if Sender = actInfoEdit then
        frmManagerForm.TableViewEditorForm.ActionEdit.Execute;
      if Sender = actInfoSave then
        frmManagerForm.TableViewEditorForm.ActionSave.Execute;
      if Sender = actInfoCancel then
        frmManagerForm.TableViewEditorForm.ActionCancel.Execute;
      if Sender = actInfoSelectAll then
        frmManagerForm.SelectAllInfo;
      if Sender = actInfoSimpleSearch then
        frmManagerForm.FocusSimpleSearch;
    end;
  end;
end;

procedure TfrmMain.pLoadMainStartPage;
begin
  { 载入起始页面 }

  actMStartPageExecute( Self );
  tabMainContainer.Tabs.Delete( 0 );
end;

procedure TfrmMain.pLoadManagerForm( var bFormLoaded: Boolean; var
  frmManagerForm: TForm; clsManagerForm: TFormClass; sTableViewName,
  sKeyFieldName, sSaveInfoProcName, sDeleteInfoProcName: string;
  actManagerControl: TAction );
var
  n: Integer;
begin
  { 载入管理窗体 }

  if bFormLoaded and ( frmManagerForm <> nil ) then
  begin
    frmManagerForm.Show;

    // TODO: 切换到对应窗体的Tab
    for n := 0 to tabMainContainer.Tabs.Count - 1 do
      if tabMainContainer.Tabs[ n ].Data = @frmManagerForm then
      begin
        tabMainContainer.TabIndex := n;
        Break;
      end;
  end
  else
  begin
    // TODO: 创建窗体
    frmManagerForm := clsManagerForm.Create( Self );
    with frmManagerForm do
    begin
      Parent := pnlMainParent;
      Show;
    end;

    // TODO: 判断是否为管理窗体
    if frmManagerForm is TfrmJCAMManagerForm then
      with TfrmJCAMManagerForm( frmManagerForm ) do
      begin
        Connection := g_cnJCAMIS;
        TableViewName := sTableViewName;
        KeyFieldName := sKeyFieldName;
        SaveInfoProcName := sSaveInfoProcName;
        DeleteInfoProcName := sDeleteInfoProcName;
        StartSurf;
      end;

    // TODO: 添加选项卡
    with tabMainContainer.Tabs.Add do
    begin
      Caption := actManagerControl.Caption;
      ImageIndex := actManagerControl.ImageIndex;
      Data := @frmManagerForm;
      tabMainContainer.TabIndex := Index;
    end;
    bFormLoaded := True;
  end;
end;

procedure TfrmMain.SetCurrentPageIndex( const Value: Integer );
begin
  tabMainContainer.TabIndex := Value;
end;

procedure TfrmMain.SetLoginName( const Value: string );
begin
  m_sLoginName := Value;
end;

procedure TfrmMain.SetStatusItemsCount( const Value: string );
begin
  stpItemsCount.Caption := Value;
end;

procedure TfrmMain.SetStatusRemark( const Value: string );
begin
  stpRemark.Caption := Value;
end;

procedure TfrmMain.SetStatusSelectedCount( const Value: string );
begin
  stpSelectedCount.Caption := Value;
end;

procedure TfrmMain.SetStatusSelectedIndex( const Value: string );
begin
  stpSelectedIndex.Caption := Value;
end;

procedure TfrmMain.StartSurf;
var
  te: TTableEmployee;
begin
  // TODO: 载入起始页
  pLoadMainStartPage;

  // TODO: 显示相关管理员信息
  lblLoginName.Caption := LoginName;
  lblLoginTime.Caption := RSTR_MAIN_NBLOGINTIME + DateTimeToStr( Now );
  te := TTableEmployee.Create;
  with te do
  begin
    Connection := g_cnJCAMIS;
    LoginName := Self.LoginName;
    lblRealName.Caption := RSTR_MAIN_NBLOGINNAME + EmployeeName;
  end;
  FreeAndNil( te );
end;

procedure TfrmMain.tabMainContainerChange( Sender: TObject );
begin
  try
    with tabMainContainer.Tabs[ tabMainContainer.TabIndex ] do
    begin
      StatusItemsCount := EmptyStr;
      StatusSelectedCount := EmptyStr;
      StatusSelectedIndex := EmptyStr;
      StatusRemark := EmptyStr;

      PForm( Data )^.Show;
      if Data <> @frmMainStartPage then
        PfrmJCAMManagerForm( Data )^.UpdateStatusCaption;

      // TODO: 设置工作区域状态
      stpWorkArea.Caption := Caption;
      stpWorkArea.ImageIndex := ImageIndex;
    end;
  except

  end;
end;

procedure TfrmMain.tabMainContainerClose( Sender: TObject;
  var AllowClose: Boolean );
var
  pfrmCurrent: PForm;
begin
  { 选项卡关闭 }

  pfrmCurrent := tabMainContainer.Tabs[ tabMainContainer.TabIndex ].Data;
  if pfrmCurrent = @frmMainStartPage then
    AllowClose := False
  else
  begin
    AllowClose := True;

    // TODO: 设置相应的是否已载入窗体变量
    if pfrmCurrent^ = frmAfterServiceManager then
      m_bAfterServiceLoaded := False;
    if pfrmCurrent^ = frmBrandManager then
      m_bBrandLoaded := False;
    if pfrmCurrent^ = frmComputerManager then
      m_bComputerLoaded := False;
    if pfrmCurrent^ = frmEmployeeManager then
      m_bEmployeeLoaded := False;
    if pfrmCurrent^ = frmInAccessoryManager then
      m_bInAccessoryLoaded := False;
    if pfrmCurrent^ = frmMerchantManager then
      m_bMerchantLoaded := False;
    if pfrmCurrent^ = frmOutAccessoryManager then
      m_bOutAccessoryLoaded := False;

    // TODO: 卸载窗体
    FreeAndNil( pfrmCurrent^ );
  end;
end;

procedure TfrmMain.tabMainContainerDblClick( Sender: TObject );
var
  bAllowClosed: Boolean;
begin
  tabMainContainerClose( Self, bAllowClosed );
  if bAllowClosed then
  begin
    tabMainContainer.Tabs.Delete( tabMainContainer.TabIndex );
    tabMainContainerChange( Self );
  end;
end;

procedure TfrmMain.tbrMainResize( Sender: TObject );
var
  ctl: TControl;
  n, nTotalWidth: Integer;
begin
  nTotalWidth := 0;
  for n := 0 to tbrMain.ControlCount - 1 do
  begin
    ctl := tbrMain.Controls[ n ];
    if ctl <> sprLogo then
      Inc( nTotalWidth, ctl.Width );
  end;
  sprLogo.Width := tbrMain.ClientWidth - nTotalWidth - 4;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -