Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
95
Добавлен:
12.06.2015
Размер:
85 Кб
Скачать
//Основной модуль приложения
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BoldHandle, BoldPersistenceHandle, BoldPersistenceHandleFile,
  BoldPersistenceHandleFileXML, BoldAbstractModel, BoldModel, BoldHandles,
  BoldRootedHandles, BoldAbstractListHandle, BoldCursorHandle,
  BoldListHandle, BoldSubscription, BoldSystemHandle, BoldUMLModelLink,
  BoldUMLRose98Link, data, ComCtrls, ToolWin, XPMan, Menus, StdCtrls,
  ImgList, BoldEdit, Buttons, ExtCtrls, jpeg, Grids, BoldGrid, Mask,
  BoldComboBox, BoldQueue, BoldListBox, BoldMemo, BusinessClasses,
  BoldNavigatorDefs, BoldNavigator, NewBase, BoldTreeView, BoldSortingGrid,
  Spin, BoldStringControlPack, BoldElements, BoldControlPack,
  BoldNumericControlPack, comobj, BoldLabel, ShellAPI;

type
  TMainform = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    XPManifest1: TXPManifest;
    StatusBar1: TStatusBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    N2: TMenuItem;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    N3: TMenuItem;
    N4: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    ToolButton6: TToolButton;
    ToolButton7: TToolButton;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    ImageList1: TImageList;
    N8: TMenuItem;
    N9: TMenuItem;
    TabSheet2: TTabSheet;
    GroupBox1: TGroupBox;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Bevel1: TBevel;
    SpeedButton1: TSpeedButton;
    SpeedButton2: TSpeedButton;
    GroupBox3: TGroupBox;
    BoldEdit4: TBoldEdit;
    Label15: TLabel;
    BoldListBox2: TBoldListBox;
    Label16: TLabel;
    BoldGrid2: TBoldGrid;
    SpeedButton3: TSpeedButton;
    SpeedButton4: TSpeedButton;
    SpeedButton5: TSpeedButton;
    SpeedButton6: TSpeedButton;
    SpeedButton7: TSpeedButton;
    SpeedButton8: TSpeedButton;
    SpeedButton9: TSpeedButton;
    SpeedButton10: TSpeedButton;
    TabSheet3: TTabSheet;
    GroupBox5: TGroupBox;
    BoldListBox1: TBoldListBox;
    GroupBox7: TGroupBox;
    BoldListBox3: TBoldListBox;
    SpeedButton16: TSpeedButton;
    SpeedButton17: TSpeedButton;
    GroupBox8: TGroupBox;
    Label26: TLabel;
    BoldEdit6: TBoldEdit;
    Label27: TLabel;
    BoldEdit7: TBoldEdit;
    BoldListBox4: TBoldListBox;
    SpeedButton20: TSpeedButton;
    GroupBox6: TGroupBox;
    Label18: TLabel;
    Edit4: TEdit;
    GroupBox10: TGroupBox;
    Label20: TLabel;
    Label21: TLabel;
    Label23: TLabel;
    Label22: TLabel;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    MaskEdit1: TMaskEdit;
    SpeedButton14: TSpeedButton;
    SpeedButton15: TSpeedButton;
    GroupBox9: TGroupBox;
    Label25: TLabel;
    SpeedButton18: TSpeedButton;
    SpeedButton19: TSpeedButton;
    Edit8: TEdit;
    Label19: TLabel;
    BoldEdit8: TBoldEdit;
    SpeedButton21: TSpeedButton;
    SpeedButton22: TSpeedButton;
    SpeedButton23: TSpeedButton;
    N11: TMenuItem;
    GroupBox11: TGroupBox;
    BoldListBox5: TBoldListBox;
    BoldComboBox2: TBoldComboBox;
    BoldSortingGrid1: TBoldSortingGrid;
    Label28: TLabel;
    Label29: TLabel;
    Label30: TLabel;
    BoldComboBox3: TBoldComboBox;
    N12: TMenuItem;
    N13: TMenuItem;
    TabSheet4: TTabSheet;
    BoldSortingGrid2: TBoldSortingGrid;
    TabSheet5: TTabSheet;
    GroupBox4: TGroupBox;
    Label17: TLabel;
    SpeedButton24: TSpeedButton;
    SpeedButton25: TSpeedButton;
    SpeedButton26: TSpeedButton;
    SpeedButton27: TSpeedButton;
    SpeedButton28: TSpeedButton;
    Label24: TLabel;
    BoldGrid3: TBoldGrid;
    BoldMemo1: TBoldMemo;
    BoldEdit9: TBoldEdit;
    N14: TMenuItem;
    TabSheet6: TTabSheet;
    GroupBox12: TGroupBox;
    BoldComboBox4: TBoldComboBox;
    GroupBox13: TGroupBox;
    Label31: TLabel;
    Label32: TLabel;
    Edit9: TEdit;
    Edit10: TEdit;
    Label33: TLabel;
    SpinEdit1: TSpinEdit;
    Label34: TLabel;
    SpinEdit2: TSpinEdit;
    GroupBox14: TGroupBox;
    BoldSortingGrid3: TBoldSortingGrid;
    SpeedButton29: TSpeedButton;
    SpeedButton30: TSpeedButton;
    SpeedButton31: TSpeedButton;
    GroupBox15: TGroupBox;
    BoldListBox6: TBoldListBox;
    SpeedButton32: TSpeedButton;
    TabSheet7: TTabSheet;
    SpeedButton33: TSpeedButton;
    GroupBox16: TGroupBox;
    BoldSortingGrid4: TBoldSortingGrid;
    GroupBox17: TGroupBox;
    BoldComboBox5: TBoldComboBox;
    GroupBox18: TGroupBox;
    BoldListBox7: TBoldListBox;
    BoldAsStringRenderer1: TBoldAsStringRenderer;
    SpeedButton34: TSpeedButton;
    SpeedButton35: TSpeedButton;
    SpeedButton36: TSpeedButton;
    ProgressBar1: TProgressBar;
    GroupBox19: TGroupBox;
    Edit11: TEdit;
    Label35: TLabel;
    SpeedButton37: TSpeedButton;
    SpeedButton38: TSpeedButton;
    SaveExcel: TSaveDialog;
    N15: TMenuItem;
    GroupBox20: TGroupBox;
    Label36: TLabel;
    SpeedButton39: TSpeedButton;
    Edit12: TEdit;
    GroupBox21: TGroupBox;
    Label37: TLabel;
    SpeedButton40: TSpeedButton;
    Edit13: TEdit;
    SpeedButton41: TSpeedButton;
    SpeedButton42: TSpeedButton;
    Prodazha: TPopupMenu;
    N16: TMenuItem;
    N17: TMenuItem;
    SpeedButton43: TSpeedButton;
    RenderProdazha: TBoldAsStringRenderer;
    SpeedButton44: TSpeedButton;
    SpeedButton45: TSpeedButton;
    ProgressBar2: TProgressBar;
    TabSheet8: TTabSheet;
    N18: TMenuItem;
    GroupBox22: TGroupBox;
    BoldComboBox6: TBoldComboBox;
    BoldListBox8: TBoldListBox;
    Label38: TLabel;
    Label39: TLabel;
    GroupBox23: TGroupBox;
    GroupBox24: TGroupBox;
    GroupBox25: TGroupBox;
    Label40: TLabel;
    Label41: TLabel;
    BoldLabel1: TBoldLabel;
    BoldLabel2: TBoldLabel;
    Label42: TLabel;
    Label43: TLabel;
    BoldLabel3: TBoldLabel;
    BoldLabel4: TBoldLabel;
    Label44: TLabel;
    Label45: TLabel;
    BoldLabel5: TBoldLabel;
    BoldLabel6: TBoldLabel;
    BoldLabel7: TBoldLabel;
    Label46: TLabel;
    Label47: TLabel;
    BoldLabel8: TBoldLabel;
    Label48: TLabel;
    BoldLabel9: TBoldLabel;
    GroupBox26: TGroupBox;
    Label49: TLabel;
    Label50: TLabel;
    DateTimePicker1: TDateTimePicker;
    Label51: TLabel;
    DateTimePicker2: TDateTimePicker;
    Label52: TLabel;
    Label53: TLabel;
    Label54: TLabel;
    Label55: TLabel;
    Label56: TLabel;
    Label57: TLabel;
    SpeedButton46: TSpeedButton;
    SpeedButton47: TSpeedButton;
    TabSheet9: TTabSheet;
    GroupBox27: TGroupBox;
    Label58: TLabel;
    SpeedButton48: TSpeedButton;
    Edit14: TEdit;
    Label59: TLabel;
    Label60: TLabel;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    SpeedButton49: TSpeedButton;
    TabSheet10: TTabSheet;
    GroupBox28: TGroupBox;
    Label61: TLabel;
    SpeedButton50: TSpeedButton;
    Label62: TLabel;
    Label63: TLabel;
    SpeedButton51: TSpeedButton;
    Edit15: TEdit;
    DateTimePicker5: TDateTimePicker;
    DateTimePicker6: TDateTimePicker;
    GroupBox29: TGroupBox;
    BoldGrid4: TBoldGrid;
    Label64: TLabel;
    Bevel2: TBevel;
    BoldLabel10: TBoldLabel;
    BoldLabel11: TBoldLabel;
    BoldLabel12: TBoldLabel;
    BoldLabel13: TBoldLabel;
    GroupBox30: TGroupBox;
    BoldGrid5: TBoldGrid;
    Label65: TLabel;
    BoldLabel14: TBoldLabel;
    BoldLabel15: TBoldLabel;
    Bevel3: TBevel;
    SpeedButton52: TSpeedButton;
    SpeedButton53: TSpeedButton;
    SpeedButton54: TSpeedButton;
    SpeedButton55: TSpeedButton;
    Bevel4: TBevel;
    Label66: TLabel;
    BoldLabel16: TBoldLabel;
    BoldLabel17: TBoldLabel;
    BoldLabel18: TBoldLabel;
    BoldLabel19: TBoldLabel;
    CheckBox1: TCheckBox;
    CheckBox2: TCheckBox;
    CheckBox3: TCheckBox;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    ToolButton10: TToolButton;
    ToolButton11: TToolButton;
    ToolButton12: TToolButton;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    BoldLabel20: TBoldLabel;
    BoldLabel21: TBoldLabel;
    BoldLabel22: TBoldLabel;
    BoldEdit10: TBoldEdit;
    BoldEdit11: TBoldEdit;
    BoldEdit12: TBoldEdit;
    Label4: TLabel;
    BoldEdit13: TBoldEdit;
    Label5: TLabel;
    BoldEdit14: TBoldEdit;
    Label6: TLabel;
    BoldEdit15: TBoldEdit;
    Label67: TLabel;
    BoldMemo2: TBoldMemo;
    SaveWord: TSaveDialog;
    Vremya: TTimer;
    N10: TMenuItem;
    Timer1: TTimer;
    CheckBox4: TCheckBox;
    TabSheet11: TTabSheet;
    GroupBox2: TGroupBox;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    SpeedButton11: TSpeedButton;
    SpeedButton12: TSpeedButton;
    SpeedButton13: TSpeedButton;
    BoldGrid1: TBoldGrid;
    BoldComboBox1: TBoldComboBox;
    BoldEdit1: TBoldEdit;
    BoldEdit2: TBoldEdit;
    BoldEdit3: TBoldEdit;
    BoldEdit5: TBoldEdit;
    N25: TMenuItem;
    SpeedButton56: TSpeedButton;
    Image1: TImage;
    procedure N2Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormCanResize(Sender: TObject; var NewWidth,
      NewHeight: Integer; var Resize: Boolean);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure N9Click(Sender: TObject);
    procedure N10Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    procedure BoldGrid1DblClick(Sender: TObject);
    procedure BoldGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure SpeedButton8Click(Sender: TObject);
    procedure SpeedButton9Click(Sender: TObject);
    procedure SpeedButton10Click(Sender: TObject);
    procedure SpeedButton12Click(Sender: TObject);
    procedure SpeedButton13Click(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure SpeedButton6Click(Sender: TObject);
    procedure SpeedButton7Click(Sender: TObject);
    procedure BoldGrid2SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    procedure SpeedButton4Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure Edit4KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton15Click(Sender: TObject);
    procedure SpeedButton14Click(Sender: TObject);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure MaskEdit1KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton17Click(Sender: TObject);
    procedure Edit8KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton20Click(Sender: TObject);
    procedure SpeedButton19Click(Sender: TObject);
    procedure SpeedButton18Click(Sender: TObject);
    procedure TabSheet3Hide(Sender: TObject);
    procedure SpeedButton21Click(Sender: TObject);
    procedure SpeedButton22Click(Sender: TObject);
    procedure SpeedButton23Click(Sender: TObject);
    procedure SpeedButton26Click(Sender: TObject);
    procedure SpeedButton28Click(Sender: TObject);
    procedure SpeedButton27Click(Sender: TObject);
    procedure SpeedButton24Click(Sender: TObject);
    procedure SpeedButton25Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure SpeedButton29Click(Sender: TObject);
    procedure Edit10KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton30Click(Sender: TObject);
    procedure Edit9KeyPress(Sender: TObject; var Key: Char);
    procedure SpeedButton31Click(Sender: TObject);
    procedure SpeedButton32Click(Sender: TObject);
    procedure N14Click(Sender: TObject);
    procedure BoldAsStringRenderer1SetColor(Element: TBoldElement;
      var AColor: TColor; Representation: Integer; Expression: String);
    procedure BoldSortingGrid4DblClick(Sender: TObject);
    procedure SpeedButton34Click(Sender: TObject);
    procedure SpeedButton34MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure Clear_status;
    procedure TabSheet7MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton36MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton35MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton35Click(Sender: TObject);
    function FindTovarBase(name: string): boolean;
    function FindTovarShop(name: string; Gr:string; var tov_index: integer): boolean;
    procedure SpeedButton37MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton37Click(Sender: TObject);
    procedure SpeedButton38MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton38Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton39Click(Sender: TObject);
    procedure SpeedButton40Click(Sender: TObject);
    procedure SpeedButton16MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton41Click(Sender: TObject);
    procedure SpeedButton42Click(Sender: TObject);
    procedure SpeedButton42MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton41MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure RenderProdazhaSetColor(Element: TBoldElement;
      var AColor: TColor; Representation: Integer; Expression: String);
    procedure SpeedButton44MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton44Click(Sender: TObject);
    procedure SpeedButton45MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton45Click(Sender: TObject);
    procedure SpeedButton16Click(Sender: TObject);
    procedure SpeedButton46Click(Sender: TObject);
    procedure SpeedButton46MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure GroupBox26MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton47Click(Sender: TObject);
    procedure TabSheet8MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton49MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton48MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton48Click(Sender: TObject);
    procedure SpeedButton49Click(Sender: TObject);
    procedure SpeedButton50Click(Sender: TObject);
    procedure SpeedButton51Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure SpeedButton52Click(Sender: TObject);
    procedure SpeedButton53Click(Sender: TObject);
    procedure SpeedButton54Click(Sender: TObject);
    procedure SpeedButton55Click(Sender: TObject);
    procedure SpeedButton33Click(Sender: TObject);
    procedure SpeedButton29MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton30MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton32MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton31MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton43MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton8MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton9MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton10MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton11MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton12MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton13MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton4MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton5MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton6MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton7MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton14MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton15MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton21MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton22MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton23MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton20MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton18MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure SpeedButton19MouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    procedure CheckBox1Click(Sender: TObject);
    procedure CheckBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure CheckBox2Click(Sender: TObject);
    procedure CheckBox3Click(Sender: TObject);
    procedure N12Click(Sender: TObject);
    procedure N15Click(Sender: TObject);
    procedure N19Click(Sender: TObject);
    procedure N18Click(Sender: TObject);
    procedure N20Click(Sender: TObject);
    procedure N21Click(Sender: TObject);
    procedure ToolButton1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton3MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton4MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton5MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton6MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton7MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton8MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton9MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton11MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton12MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton14MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure SpeedButton43Click(Sender: TObject);
    procedure N24Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure VremyaTimer(Sender: TObject);
    procedure ToolBar1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure Timer1Timer(Sender: TObject);
    procedure ToolButton15MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure ToolButton16MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    procedure CheckBox4Click(Sender: TObject);
    procedure ToolButton14Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N25Click(Sender: TObject);
    procedure SpeedButton56Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }

  end;

var Mainform: TMainform;
    TekOtdel: TOtdel;
    TekGroup: TGroup;
    TekBase: TBase;
    TekBTov: TTov_base;
    TekZTov, NewZTov: TZakaz;
    TekMTov: TTov_mag;
    ProdTov: TProdazha;
    FlagZakaz: Boolean;
    TekShop: TShop;
    Kol: integer;
    E, W: Variant;
    DirApplication: string;
    procedure NewTovar(name: string; price: real; Garant, Col: integer;
                      Zakaz: boolean; Zakazcount: integer; Hranitsya: TBase; Prinadlezhit: TGroup;
                      var NewTov: TTov_base);
    procedure NewMagTovar(name: string; price: real; Garant, Col: integer;
                      Prinadlezhit: TGroup; var NewMTov: TTov_mag);
    function PoiskTovarBase(name: String; nach: boolean; var index: integer): boolean;

   implementation

uses BoldSystem, EditTovarBase, ZakazTov, About, Ad_change_pass, Ad_reg,
  Sc_trial;

{$R *.dfm}

//*****************************************************************************
//***************************Мои процедуры и функции***************************
//*****************************************************************************
//Расчет экономических показателей
procedure rasschet(begindate, enddate: TDate);
var i,n: integer;
    ksum, prib, viruch: real;
    d: TDate;

begin
n:=DataShop.ListProdazha.Count;
ksum:=0;
prib:=0;
viruch:=0;
for i:=0 to n-1 do
    begin
    ProdTov:=DataShop.ListProdazha.ObjectList.Elements[i] as TProdazha;
    d:=ProdTov.Pdate;
    if (d<=trunc(enddate))and(d>=trunc(begindate)) then
      begin
      viruch:=viruch+ProdTov.PRprice*ProdTov.Pcount;
      prib:=prib+ProdTov.Pprice*ProdTov.Pcount;
      ksum:=ksum+ProdTov.Pcount;
      end;
    end;
prib:=viruch-prib;
Mainform.Label55.Caption:=FloatToStr(ksum);
Mainform.Label56.Caption:=FloatToStr(viruch);
Mainform.Label57.Caption:=FloatToStr(prib);
end;

//Добавлнение нового товара в базу
procedure NewTovar(name: string; price: real; Garant, Col: integer;
    Zakaz: boolean; Zakazcount: integer; Hranitsya: TBase; Prinadlezhit: TGroup;
    var NewTov: TTov_base);
begin
NewTov:=TTov_base.Create(nil);
NewTov.Tname:=name;
NewTov.Tprice:=price;
NewTov.Tgarant:=Garant;
NewTov.TBcount:=Col;
NewTov.ZakazCount:=Zakazcount;
NewTov.Hranitsya:=Hranitsya;
NewTov.BPrinadlezhit:=Prinadlezhit;
end;

//Добавление нового товара в магазин
procedure NewMagTovar(name: string; price: real; Garant, Col: integer;
                      Prinadlezhit: TGroup; var NewMTov: TTov_mag);
var flag: boolean;
    s: String;
    pricereal: real;
begin
flag:=true;
S:='';
while flag do
 begin
 s:=InputBox('Цена реализации','Укажите цену реализации (руб. за ед.) товара "'+
 name+'" с закупочной ценой:'+floattostr(price),'0');
 if s<>'' then
   begin
     try
      pricereal:=StrToFloat(s);
     except
      ShowMessage('Неверно указана цена реализации товара!'+#13+'Повторите ввод цены!');
     end;
   if pricereal>price then
      flag:=false
   else
     ShowMessage('Цена реализации товара должна быть выше закупочной!'+#13+
     'Повторите ввод цены реализации');
   end
  else
    ShowMessage('Укажите цену реализации товара (руб. за ед.)!');
 end; // while
NewMTov:=TTov_mag.Create(nil);
NewMTov.Tname:=name;
NewMTov.Tprice:=price;
NewMTov.Tgarant:=Garant;
NewMTov.TMcount:=Col;
NewMTov.Prodcount:=0;
NewMTov.TMprice:=pricereal;
NewMTov.Prinadlezhit:=Prinadlezhit;
end;

//Добавление записи в журнал продаж
procedure NewProdazha(Np: integer; Pname: string; Kol: integer; Zprisce, Rprice: real; var New: TProdazha);
begin
New:=TProdazha.Create(nil);
New.Pdate:=now;
New.PZtov_name:=Pname;
New.Pcount:=Kol;
New.Pprice:=Zprisce;
New.PRprice:=Rprice;
New.Pnumber:=Np;
end;

//Поиск товара по закупочным базам для добавление
function TMainform.FindTovarBase(name: string): boolean;
var  ExTov: TTov_base;
     fi,n: integer;
begin
  result:=false;
  n:=DataShop.ListBaseGroupTovar.Count-1;
  for fi:=0 to n do
    begin
    ExTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[fi] as TTov_base;
    if name=ExTov.Tname then
       result:=true;
    end;
end;

//Поиск товара по закупочным базам для отображения
function PoiskTovarBase(name: String; nach: boolean; var index: integer): boolean;
var  ExTov: TTov_base;
     fi,n, p: integer;
begin
  result:=false;
  if nach then
    fi:=0
  else
    fi:=DataShop.ListBaseGroupTovar.CurrentIndex+1;
  n:=DataShop.ListBaseGroupTovar.Count;
  while fi<>n do
    begin
    ExTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[fi] as TTov_base;
    p:=pos(name,ExTov.Tname);
    if p<>0 then
      begin
      index:=fi;
      fi:=n;
      Result:=true;
      end
    else
      inc(fi)
    end;
end;

//Поиск товара по журналу продаж
function PoiskTovarProd(name: String; nach: boolean; var index: integer): boolean;
var  ExTov: TProdazha;
     fi,n, p1,p2: integer;
begin
  result:=false;
  if nach then
    fi:=0
  else
    fi:=DataShop.ListProdazha.CurrentIndex+1;
  n:=DataShop.ListProdazha.Count;
  while fi<>n do
    begin
    ExTov:=DataShop.ListProdazha.ObjectList.Elements[fi] as TProdazha;
    p1:=pos(name,ExTov.PZtov_name);
    p2:=pos(name,inttostr(ExTov.Pnumber));
    if (p1<>0)or(p2<>0) then
      begin
      index:=fi;
      fi:=n;
      Result:=true;
      end
    else
      inc(fi)
    end;
end;

//Поиск товара по журналу закупок
function PoiskTovarZakaz(name: String; nach: boolean; var index: integer): boolean;
var  ExTov: TZakaz;
     fi,n, p1: integer;
begin
  result:=false;
  if nach then
    fi:=0
  else
    fi:=DataShop.ListZakupka.CurrentIndex+1;
  n:=DataShop.ListZakupka.Count;
  while fi<>n do
    begin
    ExTov:=DataShop.ListZakupka.ObjectList.Elements[fi] as TZakaz;
    p1:=pos(name,ExTov.Zname);
    if (p1<>0) then
      begin
      index:=fi;
      fi:=n;
      Result:=true;
      end
    else
      inc(fi)
    end;
end;

//Поиск товара по магазину
function PoiskTovarShop(name: String; nach: boolean; var index: integer): boolean;
var  ExTov: TTov_mag;
     fi,n, p: integer;
begin
  result:=false;
  if nach then
    fi:=0
  else
    fi:=DataShop.ListTovar.CurrentIndex+1;
  n:=DataShop.ListTovar.Count;
  while fi<>n do
    begin
    ExTov:=DataShop.ListTovar.ObjectList.Elements[fi] as TTov_mag;
    p:=pos(name,ExTov.Tname);
    if p<>0 then
      begin
      index:=fi;
      fi:=n;
      Result:=true;
      end
    else
      inc(fi)
    end;
end;

//Поиск товара по магазину для добавления с учетом группы
function PoiskTovarShopGroup(name: String; nach: boolean; var index: integer): boolean;
var  ExTov: TTov_mag;
     fi,n, p: integer;
begin
  result:=false;
  if nach then
    fi:=0
  else
    fi:=DataShop.ListOtdelsGroupTovar.CurrentIndex+1;
  n:=DataShop.ListOtdelsGroupTovar.Count;
  while fi<>n do
    begin
    ExTov:=DataShop.ListOtdelsGroupTovar.ObjectList.Elements[fi] as TTov_mag;
    p:=pos(name,ExTov.Tname);
    if p<>0 then
      begin
      index:=fi;
      fi:=n;
      Result:=true;
      end
    else
      inc(fi)
    end;
end;

//Поиск товара по магазину для добавления
function TMainform.FindTovarShop(name: string; Gr: String; var tov_index: integer): boolean;
var  ExTov: TTov_mag;
     fi: integer;
begin
  result:=false;
  for fi:=0 to DataShop.ListTovar.Count-1 do
    begin
    ExTov:=DataShop.ListTovar.ObjectList.Elements[fi] as TTov_mag;
    if (name=ExTov.Tname)and(ExTov.Prinadlezhit.Gname=Gr) then
       begin
       result:=true;
       tov_index:=fi;
       exit;
       end;
    end;
end;

//Отмена заказа
procedure OtmenaZakaza;
var i,n: integer;
begin
n:=DataShop.ListBaseTovar.Count;
for i:=0 to n-1 do
  begin
  TekBTov:=DataShop.ListBaseTovar.ObjectList.Elements[i] as TTov_base;
  if TekBTov.ZakazCount>0 then
    begin
    TekBTov.ZakazCount:=0;
    Mainform.BoldSortingGrid4.Repaint;
    Mainform.SpeedButton35.Enabled:=false;
    end;
  end;
end;

//Отмена продажи
procedure OtmenaProdazhi;
var i, n: integer;
begin
  n:=DataShop.ListTovar.Count;
  for i:=0 to n-1 do
    begin
    TekMTov:=DataShop.ListTovar.ObjectList.Elements[i] as TTov_mag;
    if TekMTov.Prodcount>0 then
      begin
      TekMTov.Prodcount:=0;
      Mainform.BoldSortingGrid1.Repaint;
      Mainform.SpeedButton45.Enabled:=false;
      Kol:=0;
      end;
    end;
end;

//Экспорт в Excel остатков товара в магазине
procedure ExportOstatki(FileName: string);
var Wbook, Sheet, MySh, Range, Border: variant;
    i, j, n, m, r, col: integer;
begin
E:=CreateOleObject('Excel.Application');
E.Workbooks.Add;
Wbook:=E.Workbooks.Item[E.Workbooks.Count];
Sheet:=Wbook.Sheets;
Sheet.Item[2].delete;
Sheet.Item[2].delete;
MySh:=Sheet.Item[1];
MySh.name:='Остатки товара в магазине';
Range:=MySh.Range['A1:E1'];
Range.MergeCells:=true;
Range.Font.Bold:=true;
Range.Font.Italic:=true;
Range.Font.UnderLine:=true;
Range.Font.Size:=16;
Range.Font.Color:=clRed;

Range.value:='Остатки товара в магазине';
Range:=MySh.Range['A1'];
Range.ColumnWidth:=37;
Range:=MySh.Range['B1']; Range.ColumnWidth:=10.5;
Range:=MySh.Range['C1']; Range.ColumnWidth:=8;
Range:=MySh.Range['D1']; Range.ColumnWidth:=12.15;
Range:=MySh.Range['E1']; Range.ColumnWidth:=15.86;

MySh.Range['A3'].value:='Точка актуальности остатков: '+ datetostr(now);
MySh.Range['A5'].value:='Наименование товара';
MySh.Range['B5'].value:='Количество';
MySh.Range['C5'].value:='Гарантия';
MySh.Range['D5'].value:='Цена закупки';
MySh.Range['E5'].value:='Цена реализации';
Range:=MySh.Range['A5:E5'];

Range.Font.Bold:=true;
Border:=Range.Borders;
Border.Color:=clBlack;
Border.Weight:=2;

n:=DataShop.ListGroups.Count;
r:=6;
Col:=0;
for i:=0 to n-1 do
  begin
  TekGroup:=DataShop.ListGroups.ObjectList.Elements[i] as TGroup;
  DataShop.ListGroups.CurrentIndex:=i;
  m:=DataShop.ListGroupTovar.Count;
  if m<>0 then
    begin
    MySh.Cells[r,1]:=TekGroup.Gname;
    Range:=MySh.Range['A'+inttostr(r)+':E'+inttostr(r)];
    Range.Font.Italic:=true;
    Range.Font.Size:=14;
    Range.Interior.color:=$77FFFF{clYellow};
    r:=r+1;
    Range:=MySh.Range['A'+inttostr(r)+':E'+inttostr(r+m-1)];
    Border:=Range.Borders;
    Border.Color:=clBlack;
    Border.Weight:=2;
    for j:=0 to m-1 do
       begin
       TekMTov:=DataShop.ListGroupTovar.ObjectList.Elements[j] as TTov_mag;
       MySh.Cells[r,1]:=TekMTov.Tname;
       MySh.Cells[r,2]:=TekMTov.TMcount;
       MySh.Cells[r,3]:=TekMTov.Tgarant;
       MySh.Cells[r,4]:=TekMTov.Tprice;
       MySh.Cells[r,5]:=TekMTov.TMprice;
       r:=r+1;
       col:=col+TekMTov.TMcount;
       end;
    end;
  end;
MySh.Cells[r,1]:='Итого: ';
MySh.Cells[r,2]:=col;
MySh.cells[r,1].font.bold:=true;
MySh.cells[r,1].font.size:=16;
MySh.cells[r,2].font.bold:=true;
MySh.cells[r,2].font.size:=16;
Wbook.SaveAs(FileName,1);
E.visible:=true;
end;

//Экспорт в Excel остатков товара на базах
procedure ExportOstatkiBase(FileName: string);
var Wbook, Sheet, MySh, Range, Border: variant;
    i, j, n, m, l, k, r, col: integer;
begin
E:=CreateOleObject('Excel.Application');
E.Workbooks.Add;
Wbook:=E.Workbooks.Item[E.Workbooks.Count];
Sheet:=Wbook.Sheets;
Sheet.Item[2].delete;
Sheet.Item[2].delete;
MySh:=Sheet.Item[1];
MySh.name:='Остатки товара на базах';
Range:=MySh.Range['A1:D1'];
Range.MergeCells:=true;
Range.Font.Bold:=true;
Range.Font.Italic:=true;
Range.Font.UnderLine:=true;
Range.Font.Size:=16;
Range.Font.Color:=clRed;

Range.value:='Остатки товара на базах';
Range:=MySh.Range['A1'];
Range.ColumnWidth:=37;
Range:=MySh.Range['B1']; Range.ColumnWidth:=10.5;
Range:=MySh.Range['C1']; Range.ColumnWidth:=8;
Range:=MySh.Range['D1']; Range.ColumnWidth:=12.15;

MySh.Range['A3'].value:='Точка актуальности остатков: '+ datetostr(now);
MySh.Range['A5'].value:='Наименование товара';
MySh.Range['B5'].value:='Количество';
MySh.Range['C5'].value:='Гарантия';
MySh.Range['D5'].value:='Цена закупки';

Range:=MySh.Range['A5:D5'];
Range.Font.Bold:=true;
Border:=Range.Borders;
Border.Color:=clBlack;
Border.Weight:=2;

n:=DataShop.ListBases.Count;
r:=6;
Col:=0;
for i:=0 to n-1 do
  begin
  TekBase:=DataShop.ListBases.ObjectList.Elements[i] as TBase;
  DataShop.ListBases.CurrentIndex:=i;
  m:=DataShop.ListBaseGroup.Count;
  if (m<>0) then
    begin
    MySh.Cells[r,1]:='                                                  '+TekBase.Bname;
    Range:=MySh.Range['A'+inttostr(r)+':D'+inttostr(r)];
    Range.Font.Italic:=true;
    Range.Font.Size:=14;
    Range.Interior.color:=$FFFF99;
    r:=r+1;
    for j:=0 to m-1 do
       begin
       TekGroup:=DataShop.ListBaseGroup.ObjectList.Elements[j] as TGroup;
       DataShop.ListBaseGroup.CurrentIndex:=j;
       l:=DataShop.ListBaseGroupTovar.Count;
       if l<>0 then
         begin
         MySh.Cells[r,1]:=TekGroup.Gname;
         Range:=MySh.Range['A'+inttostr(r)+':D'+inttostr(r)];
         Range.Font.Italic:=true;
         Range.Font.Size:=14;
         Range.Interior.color:=$77FFFF;
         r:=r+1;
         Range:=MySh.Range['A'+inttostr(r)+':D'+inttostr(r+l-1)];

         Border:=Range.Borders;
         Border.Color:=clBlack;
         Border.Weight:=2;
         for k:=0 to l-1 do
            begin
            TekBTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[k] as TTov_base;
            MySh.Cells[r,1]:=TekBTov.Tname;
            MySh.Cells[r,2]:=TekBTov.TBcount;
            MySh.Cells[r,3]:=TekBTov.Tgarant;
            MySh.Cells[r,4]:=TekBTov.Tprice;
            r:=r+1;
            col:=col+TekBTov.TBcount;
            end; //for k
         end; //if l<>0
       end; //for j
    end; //if m<>0
  end; //for i
MySh.Cells[r,1]:='Итого: ';
MySh.Cells[r,2]:=col;
MySh.cells[r,1].font.bold:=true;
MySh.cells[r,1].font.size:=16;
MySh.cells[r,2].font.bold:=true;
MySh.cells[r,2].font.size:=16;
Wbook.SaveAs(FileName,1);
E.visible:=true;
end;

//Поиск в Word-документе текста и замена на другой текст
function FindAndInsert(FindText, ReplacementText: string): boolean;
const dwReplaceAll=2;
begin
W.Selection.Find.Text:=FindText;
W.Selection.Find.Replacement.Text:=ReplacementText;
FindAndInsert:=W.Selection.Find.Execute(Replace:=dwReplaceAll);
end;

//Создание накладной продажи
procedure NakladnayaProdazha(FileName: string; Np: integer);
var Doc, Tabl: variant;
    i,n: integer;
    sum: real;
begin
if FileExists(ExtractFileDir(Application.ExeName)+'\Накладная продажи.dot') then
  begin
  W:=CreateOleObject('Word.Application');
  W.Documents.Add(ExtractFileDir(Application.ExeName)+'\Накладная продажи.dot');
  Doc:=W.ActiveDocument;
  TekShop:=DataShop.ListShop.ObjectList.Elements[0] as TShop;
  FindAndInsert('###номер магазина&',TekShop.Shnumber);
  FindAndInsert('###название магазина&',TekShop.Shname);
  FindAndInsert('###адрес магазина&',TekShop.ShAddress);
  FindAndInsert('###инн&',TekShop.ShINN);
  FindAndInsert('###телефон&',TekShop.ShPhone);
  FindAndInsert('###мыло&',TekShop.ShMail);
  FindAndInsert('###номер продажи&',inttostr(Np));
  DataShop.ListProdazhaOtchet.Expression:='Prodazha.allInstances->Select(pnumber='+inttostr(Np)+')';
  ProdTov:=DataShop.ListProdazhaOtchet.ObjectList.Elements[0] as TProdazha;
  FindAndInsert('###дата продажи&',DateToStr(ProdTov.Pdate));
  FindAndInsert('###дата оплаты&',DateToStr(ProdTov.Pdate)+' 20:00');

  i:=Doc.Tables.Count;
  Tabl:=Doc.Tables.Item(i);
  n:=DataShop.ListProdazhaOtchet.Count;
  sum:=0;
  for i:=0 to n-1 do
    begin
    ProdTov:=DataShop.ListProdazhaOtchet.ObjectList.Elements[i] as TProdazha;
    Tabl.Cell(i+2,1).Range.Text:=inttostr(i+1);
    Tabl.Cell(i+2,2).Range.Text:=ProdTov.PZtov_name;
    Tabl.Cell(i+2,2).Range.ParagraphFormat.Alignment:=0;
    Tabl.Cell(i+2,3).Range.Text:=inttostr(ProdTov.Pcount);
    Tabl.Cell(i+2,4).Range.Text:=floattostr(ProdTov.PRprice);
    Tabl.Cell(i+2,5).Range.Text:=floattostr(ProdTov.PRprice*ProdTov.Pcount);
    sum:=sum+ProdTov.PRprice*ProdTov.Pcount;
    if i<>n-1 then
      Tabl.Rows.Add;
    end;
  FindAndInsert('###сумма&',FloatToStr(sum)+' руб.');
  DataShop.ListProdazhaOtchet.Expression:='Prodazha.allInstances';
  Doc.SaveAs(FileName+'.doc',1);
  W.visible:=true;
  end; //if
end;

//Создание накладной заказа
procedure NakladnayaZakaz(FileName: string; zak: integer);
var Doc, Tabl: variant;
    i,n: integer;
    sum: real;
begin
if FileExists(ExtractFileDir(Application.ExeName)+'\Накладная заявки.dot') then
  begin
  W:=CreateOleObject('Word.Application');
  W.Documents.Add(ExtractFileDir(Application.ExeName)+'\Накладная заявки.dot');
  Doc:=W.ActiveDocument;
  TekShop:=DataShop.ListShop.ObjectList.Elements[0] as TShop;
  FindAndInsert('###номер магазина&',TekShop.Shnumber);
  FindAndInsert('###название магазина&',TekShop.Shname);
  FindAndInsert('###адрес магазина&',TekShop.ShAddress);
  FindAndInsert('###инн&',TekShop.ShINN);
  FindAndInsert('###телефон&',TekShop.ShPhone);
  FindAndInsert('###мыло&',TekShop.ShMail);
  DataShop.ListZakupkaOtchet.Expression:='Zakaz.allInstances->select(znumber='+inttostr(zak)+')';
  TekZTov:=DataShop.ListZakupkaOtchet.ObjectList.Elements[0] as TZakaz;
  FindAndInsert('###номер заказа&',inttostr(Zak));
  FindAndInsert('###дата заказа&',DateToStr(TekZTov.Zdate));

  i:=Doc.Tables.Count;
  Tabl:=Doc.Tables.Item(i);
  n:=DataShop.ListZakupkaOtchet.Count;
  sum:=0;
  for i:=0 to n-1 do
    begin
    TekZTov:=DataShop.ListZakupkaOtchet.ObjectList.Elements[i] as TZakaz;
    Tabl.Cell(i+2,1).Range.Text:=inttostr(i+1);
    Tabl.Cell(i+2,2).Range.Text:=TekZTov.Zname;
    Tabl.Cell(i+2,2).Range.ParagraphFormat.Alignment:=0;
    Tabl.Cell(i+2,3).Range.Text:=inttostr(TekZTov.Zcount);
    Tabl.Cell(i+2,4).Range.Text:=floattostr(TekZTov.Zprice);
    Tabl.Cell(i+2,5).Range.Text:=floattostr(TekZTov.Zprice*TekZTov.Zcount);
    sum:=sum+TekZTov.Zprice*TekZTov.Zcount;
    if i<>n-1 then
      Tabl.Rows.Add;
    end;
  FindAndInsert('###сумма&',FloatToStr(sum)+' руб.');
  DataShop.ListZakupkaOtchet.Expression:='Zakaz.allInstances';
  Doc.SaveAs(FileName+'.doc',1);
  W.visible:=true;
  end; //if
end;

//*****************************************************************************
//*****************************************************************************
//*****************************************************************************

//Закрытие формы
procedure TMainform.N2Click(Sender: TObject);
begin
Mainform.Close;
end;

//Активизация формы
procedure TMainform.FormActivate(Sender: TObject);
begin
PageControl1.Width:=Mainform.Width-8;
PageControl1.Height:=Mainform.Height-167;
PageControl1.Top:=96;
PageControl1.Left:=0;
DirApplication:=ExtractFileDir(Application.ExeName)+'\shop.xml';
Application.HelpFile:=ExtractFileDir(Application.ExeName)+'\help\help.hlp';
DataShop.BoldPersistenceHandleFileXMLShop.FileName:=DirApplication;
DataShop.BoldSystemHandleShop.Active:=true;
DateTimePicker2.Date:=now;
DateTimePicker4.Date:=now;
DateTimePicker6.Date:=now;
StatusBar1.Panels[1].Text:='Сегодня: '+DateTimeToStr(now);
StatusBar1.Panels[2].Text:='© ALEXX      "Магазин бытовой техники"   2009';
end;

//Изменение размера
procedure TMainform.FormCanResize(Sender: TObject; var NewWidth,
  NewHeight: Integer; var Resize: Boolean);
begin
PageControl1.Width:=Mainform.Width-8;
PageControl1.Height:=Mainform.Height-167;
end;

//При закрытии формы
procedure TMainform.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if SpeedButton45.Enabled then
  OtmenaProdazhi;
if SpeedButton35.Enabled then
  OtmenaZakaza;
DataShop.BoldPersistenceHandleFileXMLShop.FileName:=DirApplication;
DataShop.BoldSystemHandleShop.UpdateDatabase;
registr.Close;
main_sc.Close;
Vremya.Enabled:=false;
Application.Terminate;
end;

procedure TMainform.N9Click(Sender: TObject);
begin
TabSheet2.TabVisible:=true;
TabSheet2.PageIndex:=0;
PageControl1.ActivePage:=TabSheet2;
SpeedButton8.Enabled:=true;
SpeedButton9.Enabled:=false;
SpeedButton10.Enabled:=false;
end;

//Вызов формы смены пароля
procedure TMainform.N10Click(Sender: TObject);
begin
ChangePass.ShowModal;
end;


procedure TMainform.SpeedButton2Click(Sender: TObject);
begin
TabSheet2.TabVisible:=false;
SpeedButton10Click(nil);
SpeedButton13Click(nil);
SpeedButton7Click(nil);
SpeedButton28Click(nil);
end;

procedure TMainform.BoldGrid1DblClick(Sender: TObject);
begin
BoldEdit1.Enabled:=true;
BoldEdit2.Enabled:=true;
BoldEdit3.Enabled:=true;
BoldEdit5.Enabled:=true;
SpeedButton11.Enabled:=false;
SpeedButton12.Enabled:=true;
SpeedButton13.Enabled:=true;
BoldComboBox1.Enabled:=true;
end;

procedure TMainform.BoldGrid1SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
SpeedButton13Click(Mainform);
end;

procedure TMainform.SpeedButton8Click(Sender: TObject);
begin
BoldEdit10.Enabled:=true;
BoldEdit11.Enabled:=true;
BoldEdit12.Enabled:=true;
BoldEdit13.Enabled:=true;
BoldEdit14.Enabled:=true;
BoldEdit15.Enabled:=true;
BoldMemo2.Enabled:=true;;
SpeedButton9.Enabled:=true;
SpeedButton10.Enabled:=true;
SpeedButton8.Enabled:=false;
end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton9Click(Sender: TObject);
begin
if (messagedlg('Подтвердите сохранение изменений!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
   TBoldQueueable.ApplyAll;
SpeedButton8.Enabled:=true;
SpeedButton9.Enabled:=false;
SpeedButton10.Enabled:=false;
BoldEdit10.Enabled:=false;
BoldEdit11.Enabled:=false;
BoldEdit12.Enabled:=false;
BoldEdit13.Enabled:=false;
BoldEdit14.Enabled:=false;
BoldEdit15.Enabled:=false;
BoldMemo2.Enabled:=false;;

end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton10Click(Sender: TObject);
begin
SpeedButton8.Enabled:=true;
SpeedButton9.Enabled:=false;
SpeedButton10.Enabled:=false;
BoldEdit10.Enabled:=false;
BoldEdit11.Enabled:=false;
BoldEdit12.Enabled:=false;
BoldEdit13.Enabled:=false;
BoldEdit14.Enabled:=false;
BoldEdit15.Enabled:=false;
BoldMemo2.Enabled:=false;;
end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton12Click(Sender: TObject);
begin
if (messagedlg('Подтвердите сохранение изменений!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
   TBoldQueueable.ApplyAll;
SpeedButton11.Enabled:=true;
SpeedButton12.Enabled:=false;
SpeedButton13.Enabled:=false;
BoldEdit1.Enabled:=false;
BoldEdit2.Enabled:=false;
BoldEdit3.Enabled:=false;
BoldEdit5.Enabled:=false;
BoldComboBox1.Enabled:=false;
end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton13Click(Sender: TObject);
begin
SpeedButton11.Enabled:=true;
SpeedButton12.Enabled:=false;
SpeedButton13.Enabled:=false;
BoldEdit1.Enabled:=false;
BoldEdit2.Enabled:=false;
BoldEdit3.Enabled:=false;
BoldEdit5.Enabled:=false;
BoldComboBox1.Enabled:=false;
end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton5Click(Sender: TObject);
begin
BoldEdit4.Enabled:=true;
SpeedButton6.Enabled:=true;
SpeedButton7.Enabled:=true;
SpeedButton3.Enabled:=false;
SpeedButton4.Enabled:=false;
SpeedButton5.Enabled:=false;
end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton6Click(Sender: TObject);
begin
if (messagedlg('Подтвердите сохранение изменений!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
  TBoldQueueable.ApplyAll;
SpeedButton6.Enabled:=false;
SpeedButton7.Enabled:=false;
SpeedButton3.Enabled:=true;
SpeedButton4.Enabled:=true;
SpeedButton5.Enabled:=true;
BoldEdit4.Enabled:=false;
end;

//Возврат в исходное состояние
procedure TMainform.SpeedButton7Click(Sender: TObject);
begin
SpeedButton6.Enabled:=false;
SpeedButton7.Enabled:=false;
SpeedButton3.Enabled:=true;
SpeedButton4.Enabled:=true;
SpeedButton5.Enabled:=true;
BoldEdit4.Enabled:=false;
end;

procedure TMainform.BoldGrid2SelectCell(Sender: TObject; ACol,
  ARow: Integer; var CanSelect: Boolean);
begin
SpeedButton7Click(Mainform);
end;

//Удаление отдела
procedure TMainform.SpeedButton4Click(Sender: TObject);
var i:integer;
begin
i:= DataShop.ListOtdels.CurrentIndex;
if i<>-1 then
  begin
  tekOtdel:=DataShop.ListOtdels.ObjectList.Elements[i] as TOtdel;
    if (messagedlg('Подтвердите удаление отдела "'+tekOtdel.Oname+'"'+
       #13+'Вместе с отделом будет удален администратор и все группы товара!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
      tekOtdel.Delete;
   end;   
end;


procedure TMainform.SpeedButton3Click(Sender: TObject);
begin
TabSheet3.TabVisible:=true;
TabSheet2.PageIndex:=0;
PageControl1.ActivePage:=TabSheet2;
TabSheet3.Show;
end;

procedure TMainform.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['A'..'я','0'..'9',#8,' ']) then
  key:=#0;
if (key=#8)and (Length(Edit4.Text)<=1) then
  begin
  SpeedButton14.Enabled:=false;
  SpeedButton15.Enabled:=false;
  Edit5.Enabled:=false;
  Edit6.Enabled:=false;
  Edit7.Enabled:=false;
  MaskEdit1.Enabled:=false;
  end;
if (key in ['A'..'я','0'..'9']) then
  begin
  SpeedButton14.Enabled:=true;
  SpeedButton15.Enabled:=true;
  Edit5.Enabled:=true;
  Edit6.Enabled:=true;
  Edit7.Enabled:=true;
  MaskEdit1.Enabled:=true;
  end;
end;

procedure TMainform.SpeedButton15Click(Sender: TObject);
begin
SpeedButton14.Enabled:=false;
SpeedButton15.Enabled:=false;
Edit5.Enabled:=false;
Edit6.Enabled:=false;
Edit7.Enabled:=false;
MaskEdit1.Enabled:=false;
Edit4.Clear;
Edit5.Clear;
Edit6.Clear;
Edit7.Clear;
MaskEdit1.Clear;
end;

//Создание нового отдела
procedure TMainform.SpeedButton14Click(Sender: TObject);
var NewOtdel, ExOtdel: TOtdel;
    i: integer;
    dr: TDate;
    ExAdmin, NewAdmin: TAdmin;
    botdelexist, badminexsist, flag: Boolean;
begin
if (Edit5.Text<>'')and(Edit6.Text<>'')and(Edit7.Text<>'')and(MaskEdit1.Text<>'  .  .    ') then
  begin
  botdelexist:=false;
  badminexsist:=false;
  flag:=False;
  for i:=0 to DataShop.ListOtdels.Count-1 do
    begin
    ExOtdel:=DataShop.ListOtdels.ObjectList.Elements[i] as TOtdel;
    if ExOtdel.Oname=Edit4.Text then
      botdelexist:=true
    end;
  if not botdelexist then
    begin
    for i:=0 to DataShop.ListAdmin.Count-1 do
      begin
      ExAdmin:=DataShop.ListAdmin.ObjectList.Elements[i] as TAdmin;
      if (ExAdmin.Afam=Edit5.Text)and(ExAdmin.Aname=Edit6.Text)and
      (ExAdmin.Asname=Edit7.Text)and(ExAdmin.Adr=StrToDate(MaskEdit1.Text)) then
        badminexsist:=true;
      end;
    if not(badminexsist) then
      begin
      if (messagedlg('Подтвердите добавление отдела "'+Edit4.Text+'"',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
        begin
        try
          dr:=StrToDate(MaskEdit1.Text);
        Except
          MessageDlg('Неверно введена дата рождения!'+#13+'Попробуйте еще раз!',mtError,[mbOK],0);
          MaskEdit1.Clear;
          flag:=true;
        end;
        if not(flag) then
          begin
          NewOtdel:=TOtdel.Create(nil);
          NewOtdel.Oname:=Edit4.Text;
          NewAdmin:=TAdmin.Create(nil);
          NewAdmin.Afam:=Edit5.Text;
          NewAdmin.Aname:=Edit6.Text;
          NewAdmin.Asname:=Edit7.Text;
          NewAdmin.Adr:=dr;
          NewAdmin.Zaveduet:=NewOtdel;
          NewOtdel.Prinadlezhit:=DataShop.BoldSystemHandleShop.System.ClassByExpressionName['Shop'].BoldObjects[0] as TShop;
          DataShop.ListOtdels.Last;
          SpeedButton15Click(Mainform);
          end;
        end;
      end
    else
      ShowMessage('Администратор с такими данными уже существует!');
    end
  else
    ShowMessage('Отдел '+Edit4.Text+ ' уже существует!');
  end;
end;

procedure TMainform.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['A'..'я',#8]) then
  key:=#0;
end;

procedure TMainform.MaskEdit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8]) then
  key:=#0;
end;

procedure TMainform.SpeedButton17Click(Sender: TObject);
begin
TabSheet3.TabVisible:=false;
SpeedButton15Click(nil);
SpeedButton19Click(nil);
end;

procedure TMainform.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['A'..'я','0'..'9',#8,' ']) then
  key:=#0;
if (key=#8)and (Length(Edit8.Text)<=1) then
  begin
  SpeedButton18.Enabled:=false;
  SpeedButton19.Enabled:=false;
  BoldComboBox3.Enabled:=false;
  end;
if (key in ['A'..'я','0'..'9']) then
  begin
  SpeedButton18.Enabled:=true;
  SpeedButton19.Enabled:=true;
  BoldComboBox3.Enabled:=true;
  end;

end;

//Удаление группы
procedure TMainform.SpeedButton20Click(Sender: TObject);
var i,j:integer;
begin
i:= DataShop.ListOtdelGroups.CurrentIndex;
j:= DataShop.ListOtdels.CurrentIndex;
if (i<>-1)and(j<>-1) then
  begin
  TekGroup:=DataShop.ListOtdelGroups.ObjectList.Elements[i] as TGroup;
  TekOtdel:=DataShop.ListOtdels.ObjectList.Elements[j] as TOtdel;
  if (messagedlg('Подтвердите удаление группы "'+TekGroup.Gname+'" '+'из отдела "'+tekOtdel.Oname+'"!'+
     #13+'Вместе с отделом будут удалены все товары данного отдела!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
     TekGroup.Delete;
  end;   
end;

procedure TMainform.SpeedButton19Click(Sender: TObject);
begin
Edit8.Clear;
SpeedButton18.Enabled:=false;
SpeedButton19.Enabled:=false;
end;

//Создание новой группы
procedure TMainform.SpeedButton18Click(Sender: TObject);
var NewGroup, ExGropup: TGroup;
    i: integer;
    Bgroupexsist: Boolean;
begin
Bgroupexsist:=false;
TekOtdel:=DataShop.ListOtdels.ObjectList.Elements[DataShop.ListOtdels.CurrentIndex] as TOtdel;
for i:=0 to DataShop.ListGroups.Count-1 do
  begin
  ExGropup:=DataShop.ListGroups.ObjectList.Elements[i] as TGroup;
  if Edit8.Text=ExGropup.Gname then
    Bgroupexsist:=true;
  end;
  if not(Bgroupexsist) then
    begin
    if (messagedlg('Подтвердите добавление группы "'+Edit8.Text+'" в отдел '+TekOtdel.Oname,mtConfirmation,[mbYes,mbNo],0)=mrYes) then
      begin
      NewGroup:=TGroup.Create(nil);
      NewGroup.Gname:=Edit8.Text;
      NewGroup.Prinadlezhit:=TekOtdel;
      NewGroup.Zakupaetsya:=DataShop.ListBases.ObjectList.Elements[DataShop.ListBases.CurrentIndex] as TBase;
      Edit8.Clear;
      SpeedButton18.Enabled:=false;
      SpeedButton19.Enabled:=false;
      end;
    end
  else
    begin
    ShowMessage('Группа с таким названием уже существует!'+#13+
    'Введите другое название группы!');
    Edit8.Clear;
    end;
end;

procedure TMainform.TabSheet3Hide(Sender: TObject);
begin
SpeedButton15Click(Mainform);
Edit8.Clear;
end;

procedure TMainform.SpeedButton21Click(Sender: TObject);
begin
SpeedButton21.Enabled:=false;
SpeedButton22.Enabled:=true;
SpeedButton23.Enabled:=true;
SpeedButton20.Enabled:=false;
BoldEdit8.Enabled:=true;
end;

procedure TMainform.SpeedButton22Click(Sender: TObject);
begin
if (messagedlg('Подтвердите сохранение изменений!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
  TBoldQueueable.ApplyAll;
SpeedButton23Click(Mainform);
end;

procedure TMainform.SpeedButton23Click(Sender: TObject);
begin
SpeedButton23.Enabled:=false;
SpeedButton22.Enabled:=false;
SpeedButton20.Enabled:=true;
SpeedButton21.Enabled:=true;
BoldEdit8.Enabled:=false;
end;

procedure TMainform.SpeedButton26Click(Sender: TObject);
begin
BoldEdit9.Enabled:=true;
BoldMemo1.Enabled:=true;
SpeedButton24.Enabled:=false;
SpeedButton25.Enabled:=false;
SpeedButton26.Enabled:=false;
SpeedButton27.Enabled:=true;
SpeedButton28.Enabled:=true;

end;

procedure TMainform.SpeedButton28Click(Sender: TObject);
begin
BoldEdit9.Enabled:=false;
BoldMemo1.Enabled:=false;
SpeedButton24.Enabled:=true;
SpeedButton25.Enabled:=true;
SpeedButton26.Enabled:=true;
SpeedButton27.Enabled:=false;
SpeedButton28.Enabled:=false;
end;

procedure TMainform.SpeedButton27Click(Sender: TObject);
begin
if (messagedlg('Подтвердите сохранение изменений!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
  TBoldQueueable.ApplyAll;
SpeedButton28Click(Mainform);
end;

procedure TMainform.SpeedButton24Click(Sender: TObject);
begin
AddBase.Showmodal;
end;

//Удаление товарной базы
procedure TMainform.SpeedButton25Click(Sender: TObject);
var i: integer;
begin
i:=DataShop.ListBases.CurrentIndex;
if i<>-1 then
   begin
   TekBase:=DataShop.ListBases.ObjectList.Elements[i] as TBase;
   if (messagedlg('Подтвердите удаление товарной базы "'+TekBase.Bname+'"'+
     #13+'Вместе с базой будут удалены все товары, хранящиеся на ней!',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
     TekBase.Delete;
   end;
end;

procedure TMainform.N11Click(Sender: TObject);
begin
TabSheet1.TabVisible:=true;
PageControl1.ActivePage:=TabSheet1;
end;

//Добавление нового товара
procedure TMainform.SpeedButton29Click(Sender: TObject);
var i, j: integer;
   flag: Boolean;
    ExTov, NewTov: TTov_base;
    Price: real;
begin
if (Edit9.Text<>'')and(Edit10.Text<>'') then
  begin

  i:=DataShop.ListBases.CurrentIndex;
  j:=DataShop.ListBaseGroup.CurrentIndex;
  TekBase:=DataShop.ListBases.ObjectList.Elements[i] as TBase;
  TekGroup:=DataShop.ListBaseGroup.ObjectList.Elements[j] as TGroup;
  flag:=false;
  if not(FindTovarBase(Edit9.Text)) then
    begin
    if (messagedlg('Подтвердите добавление товара "'+Edit9.Text+'" в группу "'+TekGroup.Gname+'" '+
        'базы "'+TekBase.Bname+'"',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
      begin
       try
        Price:=StrToFloat(Edit10.Text);
       Except
        flag:=true;
        ShowMessage('Неверно указана цена!'+#13+'Проверьте правильность ввода!');
        Edit10.Clear;
       end;
      if not flag then
        begin
        NewTovar(Edit9.Text, Price, SpinEdit1.Value, SpinEdit2.Value,
        false, 0, TekBase, TekGroup, NewTov);
        SpeedButton30Click(nil);
        end;
      end;
    end
  else
    begin
    ShowMessage('Данный товар уже существует!'+#13+
    'Введите другое название товара!');
    Edit8.Clear;
    end;
  end
else
  ShowMessage('Введены не все данные!');
end;

procedure TMainform.Edit10KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8,',']) then
  key:=#0;
end;

procedure TMainform.SpeedButton30Click(Sender: TObject);
begin
Edit9.Clear;
Edit10.Clear;
SpinEdit1.Value:=0;
SpinEdit2.Value:=1;
SpeedButton29.Enabled:=false;
SpeedButton30.Enabled:=false;
SpeedButton31.Enabled:=true;
SpeedButton32.Enabled:=true;
end;

procedure TMainform.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#8)and (Length(Edit9.Text)<=1) then
  begin
  SpeedButton29.Enabled:=false;
  SpeedButton30.Enabled:=false;
  SpeedButton31.Enabled:=true;
  SpeedButton32.Enabled:=true;
  end
else
  begin
  SpeedButton29.Enabled:=true;
  SpeedButton30.Enabled:=true;
  SpeedButton31.Enabled:=false;
  SpeedButton32.Enabled:=false;
  end
end;

//Удаление товара
procedure TMainform.SpeedButton31Click(Sender: TObject);
var i: integer;
begin
i:=DataShop.ListBaseGroupTovar.CurrentIndex;
if i<>-1 then
  begin
  TekBTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[i] as TTov_base;
    if (messagedlg('Подтвердите удаление товара "'+TekBTov.Tname+'"',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
       TekBTov.Delete;
  end;
end;

procedure TMainform.SpeedButton32Click(Sender: TObject);
begin
EditTovBase.showmodal;
end;

procedure TMainform.N14Click(Sender: TObject);
begin
TabSheet6.TabVisible:=true;
PageControl1.ActivePage:=TabSheet6;
end;

//Пометка на заказ товара
procedure TMainform.BoldAsStringRenderer1SetColor(Element: TBoldElement;
  var AColor: TColor; Representation: Integer; Expression: String);
var st: string;
begin
st:=Element.EvaluateExpressionAsString('zakazCount.asString',1);
if st<>'0' then AColor:=$77FFFF{clLime};
end;

//Заказ товара
procedure TMainform.BoldSortingGrid4DblClick(Sender: TObject);
begin
TekBTov:=DataShop.ListBaseGroupTovar.ObjectList.Elements[DataShop.ListBaseGroupTovar.CurrentIndex] as TTov_base;
if TekBTov.TBcount>0 then
   if TekBTov.TBcount<>1 then
      ZakazForm.ShowModal
   else
     begin
     if (messagedlg('Заказать товар "'+TekBTov.Tname+'"'+#13+
        'в количестве 1 единицы?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
        begin
        TekBTov.ZakazCount:=1;
        SpeedButton35.Enabled:=true;
        FlagZakaz:=true;
        BoldSortingGrid4.Repaint;
        end;
     end
else
  MessageDlg('Невозможно заказать товар с нулевым остатком!',mtError,[mbOK],0);   
end;

//Отмена заказа
procedure TMainform.SpeedButton34Click(Sender: TObject);
begin
if MessageDlg('Отменить заказ товара?',mtInformation,[mbYes, mbNo],0)=mrYes then
   OtmenaZakaza;
end;

procedure TMainform.SpeedButton34MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Отменить заказ товара';
end;

procedure Tmainform.Clear_status;
begin
StatusBar1.Panels[0].Text:='';
end;

procedure TMainform.TabSheet7MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
Clear_status;
end;

procedure TMainform.SpeedButton36MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Пометить товар на заказ';
end;

procedure TMainform.SpeedButton35MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Заказать в магазин выбранный товар';
end;

//Заказ товара
procedure TMainform.SpeedButton35Click(Sender: TObject);
var i,j,n,step, t_index, zak, number,gr: integer;
    NewMTovar: TTov_mag;
begin
n:=DataShop.ListBaseTovar.Count-1;
j:=0;
for i:=0 to n do
  begin
  TekBTov:=DataShop.ListBaseTovar.ObjectList.Elements[i] as TTov_base;
  if TekBTov.ZakazCount>0 then
    inc(j);
  end;
step:=ProgressBar1.Max div j;
DataShop.ListZakupkaOtchet.Last;
i:=DataShop.ListZakupkaOtchet.CurrentIndex;
if i<>-1 then
  begin
  TekZTov:=DataShop.ListZakupkaOtchet.ObjectList.Elements[i] as TZakaz;
  number:=TekZTov.Znumber;
  end;
if i<>-1 then
  zak:=number+1
else
  zak:=1;
for i:=0 to n do
  begin
  TekBTov:=DataShop.ListBaseTovar.ObjectList.Elements[i] as TTov_base;
  if TekBTov.ZakazCount>0 then
    begin
    NewZTov:=TZakaz.Create(nil);
    NewZTov.Znumber:=zak;
    NewZTov.Zdate:=Now;
    NewZTov.Zname:=TekBTov.Tname;
    NewZTov.Zprice:=TekBTov.Tprice;
    NewZTov.Zcount:=TekBTov.ZakazCount;
    TekGroup:=TekBTov.BPrinadlezhit;
    if FindTovarShop(NewZTov.Zname,TekGroup.gname,t_index) then
      begin
      TekMTov:=DataShop.ListTovar.ObjectList.Elements[t_index] as TTov_mag;
      TekMTov.TMcount:=TekMTov.TMcount+NewZTov.Zcount;
      end
    else
      begin
      NewMagTovar(TekBTov.Tname,TekBTov.Tprice,TekBTov.Tgarant,TekBTov.ZakazCount,TekBTov.BPrinadlezhit,NewMTovar);
      end;
    TekBTov.TBcount:=TekBTov.TBcount-TekBTov.ZakazCount;
    TekBTov.ZakazCount:=0;
    BoldSortingGrid4.Repaint;
    if i<>j then
      ProgressBar1.Position:=ProgressBar1.Position+step
    else
      ProgressBar1.Position:=ProgressBar1.Max;
    end;
  end;
  if ProgressBar1.Position=ProgressBar1.Max then
    begin
    MessageDlg('Заказ товара успешно завершен!',mtInformation,[mbOK],0);
    if MessageDlg('Создать накладную заказа?',mtInformation,[mbYes, mbNo],0)=mrYes then
      if SaveWord.Execute then
        begin
        DataShop.BoldSystemHandleShop.UpdateDatabase;
        DataShop.BoldSystemHandleShop.Active:=false;
        DataShop.BoldPersistenceHandleFileXMLShop.FileName:=DirApplication;
        DataShop.BoldSystemHandleShop.Active:=true;
        if not FileExists(SaveWord.FileName) then
           begin
           NakladnayaZakaz(SaveWord.FileName,zak);
           end
        else
          MessageDlg('Файл с таким именем уже существует!'+#13+'Введите другое имя файла!',mtError,[mbOK],0);
        end;
    end
  else
    MessageDlg('При заказе товара произошла ошибка!',mtError,[mbOK],0);
  ProgressBar1.Position:=ProgressBar1.Min;
  SpeedButton35.Enabled:=false;
  FlagZakaz:=false;
end;

procedure TMainform.SpeedButton37MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Найти товар';
end;

procedure TMainform.SpeedButton37Click(Sender: TObject);
var p: integer;
begin
if Edit11.Text<>'' then
  if PoiskTovarBase(Edit11.Text,False,p) then
     DataShop.ListBaseGroupTovar.CurrentIndex:=p
  else
    if (MessageDlg('Просмотр данных завершен! Повторить поиск сначала?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      if PoiskTovarBase(Edit11.Text,true,p) then
        DataShop.ListBaseGroupTovar.CurrentIndex:=p;
end;

procedure TMainform.SpeedButton38MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Закрыть окно';
end;

procedure TMainform.SpeedButton38Click(Sender: TObject);
begin
if SpeedButton35.Enabled then
  begin
  if (MessageDlg('Заказанный товар не проведен. Если закрыть окно, заказ пропадет'+#13+
      'Хотите закрыть окно?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      begin
      SpeedButton34Click(nil);
      Edit11.Clear;
      SpeedButton35.Enabled:=false;
      SpeedButton34.Enabled:=true;
      SpeedButton36.Enabled:=true;
      TabSheet7.TabVisible:=False;
      CheckBox3.Checked:=false;
      DataShop.ListBaseGroupTovar.Expression:='bHranit';
      end;
   end
else
   begin
   Edit11.Clear;
   SpeedButton35.Enabled:=false;
   SpeedButton34.Enabled:=true;
   SpeedButton36.Enabled:=true;
   TabSheet7.TabVisible:=False;
   CheckBox3.Checked:=false;
   DataShop.ListBaseGroupTovar.Expression:='bHranit';
   end;
end;

procedure TMainform.FormCreate(Sender: TObject);
begin
FlagZakaz:=false;
end;

procedure TMainform.SpeedButton39Click(Sender: TObject);
var p: integer;
begin
if Edit12.Text<>'' then
  if PoiskTovarShop(Edit12.Text,False,p) then
     DataShop.ListTovar.CurrentIndex:=p
  else
    if (MessageDlg('Просмотр данных завершен! Повторить поиск сначала?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      if PoiskTovarShop(Edit12.Text,true,p) then
        DataShop.ListTovar.CurrentIndex:=p;
end;

procedure TMainform.SpeedButton40Click(Sender: TObject);
var p: integer;
begin
if Edit13.Text<>'' then
  if PoiskTovarShopGroup(Edit13.Text,False,p) then
     DataShop.ListOtdelsGroupTovar.CurrentIndex:=p
  else
    if (MessageDlg('Просмотр данных завершен! Повторить поиск сначала?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      if PoiskTovarShopGroup(Edit13.Text,true,p) then
        DataShop.ListOtdelsGroupTovar.CurrentIndex:=p;
end;

procedure TMainform.SpeedButton16MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Закрыть окно';
end;

procedure TMainform.SpeedButton41Click(Sender: TObject);
var s: string;
    flag: boolean;
begin
flag:=true;
S:='';
TekMTov:=DataShop.ListOtdelsGroupTovar.ObjectList.Elements[DataShop.ListOtdelsGroupTovar.CurrentIndex] as TTov_mag;
if MessageDlg('Продать товар "'+TekMTov.Tname+'"',mtInformation,[mbYes, mbNo],0)=mrYes then
while flag do
 begin
 s:=InputBox('Продажа товара','Укажите количество продаваемого товара "'+
 TekMTov.Tname+'" с ценой реализации:'+floattostr(TekMTov.TMprice)+
 #13+'Количество товара в магазине: '+inttostr(TekMTov.TMcount)+' (ед.)','0');
 if s<>'' then
   begin
     try
      Kol:=StrToInt(s);
     except
      ShowMessage('Неверно указано количество продаваемого товара!'+#13+'Повторите ввод количества товара!');
     end;
   if ((kol>0)and(kol<=TekMTov.TMcount))or(kol=0) then
      flag:=false
   else
     ShowMessage('Количество товара должно быть больше нуля, но не больше общего количества!'+#13+
     'Повторите ввод цены реализации');
   end
   else
     ShowMessage('Укажите количество продаваемого товара (ед.)!');
 end; // while
 if kol<>0 then
    begin
    TekMTov.Prodcount:=TekMTov.Prodcount+kol;
    BoldSortingGrid1.Repaint;
    SpeedButton45.Enabled:=true;
    end;
end;

procedure TMainform.SpeedButton42Click(Sender: TObject);
var flag: boolean;
    s: String;
    pricereal: real;
begin
flag:=true;
S:='';
TekMTov:=DataShop.ListOtdelsGroupTovar.ObjectList.Elements[DataShop.ListOtdelsGroupTovar.CurrentIndex] as TTov_mag;
if MessageDlg('Редактировать цену реализации товара "'+TekMTov.Tname+'"',mtInformation,[mbYes, mbNo],0)=mrYes then
  begin
  while flag do
    begin
    s:=InputBox('Редактирование цены реализации','Укажите цену реализации (руб. за ед.) товара "'+
    TekMTov.Tname+'" с закупочной ценой:'+floattostr(TekMTov.Tprice),floattostr(TekMTov.Tprice));
    if s<>'' then
      begin
        try
          pricereal:=StrToFloat(s);
        except
          ShowMessage('Неверно указана цена реализации товара!'+#13+'Повторите ввод цены!');
        end;
      if (pricereal>=TekMTov.Tprice)or(pricereal=0) then
        flag:=false
      else
        ShowMessage('Цена реализации товара должна быть выше закупочной!'+#13+
        'Повторите ввод цены реализации');
      end
    else
      ShowMessage('Укажите цену реализации товара (руб. за ед.)!');
    end; // while
  if pricereal<>0 then
    TekMTov.TMprice:=pricereal;
  end;
end;

procedure TMainform.SpeedButton42MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton42.Hint;
end;

procedure TMainform.SpeedButton41MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton41.Hint;
end;

procedure TMainform.RenderProdazhaSetColor(Element: TBoldElement;
  var AColor: TColor; Representation: Integer; Expression: String);

var st: string;
begin
st:=Element.EvaluateExpressionAsString('prodcount.asString',1);
if st<>'0' then AColor:=$77FFFF{clLime};

end;

procedure TMainform.SpeedButton44MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton44.Hint;
end;

procedure TMainform.SpeedButton44Click(Sender: TObject);
begin
if MessageDlg('Отменить продажу товара?',mtInformation,[mbYes, mbNo],0)=mrYes then
  OtmenaProdazhi;
end;

procedure TMainform.SpeedButton45MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton45.Hint;
end;

//Провод продажи
procedure TMainform.SpeedButton45Click(Sender: TObject);
var i, j, n, step, prod, number: integer;
begin
if MessageDlg('Провести продажу помеченного товара?',mtInformation,[mbYes, mbNo],0)=mrYes then
  begin
  n:=DataShop.ListTovar.Count-1;
  j:=0;
  for i:=0 to n do
    begin
    TekMTov:=DataShop.ListTovar.ObjectList.Elements[i] as TTov_mag;
    if TekMTov.Prodcount>0 then
      inc(j);
    end;
  step:=ProgressBar2.Max div j;
  DataShop.ListProdazhaOtchet.Last;
  i:=DataShop.ListProdazhaOtchet.CurrentIndex;
  if i<>-1 then
    begin
    ProdTov:=DataShop.ListProdazhaOtchet.ObjectList.Elements[i] as TProdazha;
    number:=ProdTov.Pnumber;
    end;
  if i<>-1 then
    prod:=number+1
  else
    prod:=1;
  for i:=0 to n do
    begin
    TekMTov:=DataShop.ListTovar.ObjectList.Elements[i] as TTov_mag;
    if TekMTov.Prodcount>0 then
      begin
      NewProdazha(prod, TekMTov.Tname, TekMTov.Prodcount, TekMTov.Tprice, TekMTov.TMprice, ProdTov);
      TekMTov.TMcount:=TekMTov.TMcount-kol;
      TekMTov.Prodcount:=0;
      BoldSortingGrid1.Repaint;
      if i<>j then
        ProgressBar2.Position:=ProgressBar2.Position+step
      else
        ProgressBar2.Position:=ProgressBar2.Max;
      end;
    end;
  if MessageDlg('Создать накладную продажи?',mtInformation,[mbYes, mbNo],0)=mrYes then
    if SaveWord.Execute then
      begin
      DataShop.BoldSystemHandleShop.UpdateDatabase;
      DataShop.BoldSystemHandleShop.Active:=false;
      DataShop.BoldPersistenceHandleFileXMLShop.FileName:=DirApplication;
      DataShop.BoldSystemHandleShop.Active:=true;
      if not FileExists(SaveWord.FileName) then
         begin
         NakladnayaProdazha(SaveWord.FileName,prod);
         end
      else
         MessageDlg('Файл с таким именем уже существует!'+#13+'Введите другое имя файла!',mtError,[mbOK],0);
      end;
  if ProgressBar2.Position=ProgressBar2.Max then
     MessageDlg('Продажа товара прошла успешно!',mtInformation,[mbOK],0);
  ProgressBar2.Position:=ProgressBar2.Min;
  SpeedButton45.Enabled:=false;
  Kol:=0;
  end;
end;

procedure TMainform.SpeedButton16Click(Sender: TObject);
begin
if SpeedButton45.Enabled then
  begin
  if (MessageDlg('Проданный товар не проведен. Если закрыть окно, продажа пропадет'+#13+
      'Хотите закрыть окно?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      begin
      OtmenaProdazhi;
      SpeedButton45.Enabled:=false;
      TabSheet1.TabVisible:=False;
      CheckBox2.Checked:=false;
      DataShop.ListOtdelsGroupTovar.Expression:='soderzhit->select(tMcount<>0)';
      end;
   end
else
   TabSheet1.TabVisible:=False;
   CheckBox2.Checked:=false;
   DataShop.ListOtdelsGroupTovar.Expression:='soderzhit->select(tMcount<>0)';
end;

procedure TMainform.SpeedButton46Click(Sender: TObject);
begin
if DateTimePicker1.Date<=DateTimePicker2.Date then
   rasschet(DateTimePicker1.Date, DateTimePicker2.Date)
else
  begin
  MessageDlg('Неверно указан диапазон дат!'+#13+'Попробуйте еще раз!',mtError,[mbOK],0);
  Label55.Caption:='0';
  Label56.Caption:='0';
  Label57.Caption:='0';
  end;
end;

procedure TMainform.SpeedButton46MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton46.Hint;
end;

procedure TMainform.GroupBox26MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='';
end;

procedure TMainform.SpeedButton47Click(Sender: TObject);
begin
TabSheet8.TabVisible:=false;
Label55.Caption:='0';
Label56.Caption:='0';
Label57.Caption:='0';
end;
procedure TMainform.TabSheet8MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='';
end;

procedure TMainform.SpeedButton49MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton49.Hint;
end;

procedure TMainform.SpeedButton48MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton48.Hint;
end;

procedure TMainform.SpeedButton48Click(Sender: TObject);
var p: integer;
begin
if Edit14.Text<>'' then
  if PoiskTovarProd(Edit14.Text,False,p) then
     DataShop.ListProdazha.CurrentIndex:=p
  else
    if (MessageDlg('Просмотр данных завершен! Повторить поиск сначала?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      if PoiskTovarProd(Edit14.Text,true,p) then
        DataShop.ListProdazha.CurrentIndex:=p;
end;

//Фильтрация по дате
procedure TMainform.SpeedButton49Click(Sender: TObject);
var bdate,edate: TDate;
    BYear, BMonth, BDay, EYear, EMonth, EDay: Word;
    Bs, Es, BMs, EMs, BDs, EDs: string;
begin
bdate:=trunc(DateTimePicker3.Date);
edate:=trunc(DateTimePicker4.Date);
DecodeDate(bdate,BYear, BMonth, BDay);
DecodeDate(edate,EYear, EMonth, EDay);
if BMonth in [1..9] then
   BMs:='0'+inttostr(BMonth)
else
   BMs:=inttostr(BMonth);

if EMonth in [1..9] then
   EMs:='0'+inttostr(EMonth)
else
   EMs:=inttostr(EMonth);

if BDay in [1..9] then
   BDs:='0'+inttostr(BDay)
else
   BDs:=inttostr(BDay);

if EDay in [1..9] then
   EDs:='0'+inttostr(EDay)
else
   EDs:=inttostr(EDay);
Bs:='#'+inttostr(BYear)+'-'+BMs+'-'+BDs;
Es:='#'+inttostr(EYear)+'-'+EMs+'-'+EDs;
if bdate<=edate then
   DataShop.ListProdazha.Expression:='Prodazha.allInstances->select((pdate>='+Bs+') and (pdate<='+Es+'))';
end;

procedure TMainform.SpeedButton50Click(Sender: TObject);
var p: integer;
begin
if Edit15.Text<>'' then
  if PoiskTovarZakaz(Edit15.Text,False,p) then
     DataShop.ListZakupka.CurrentIndex:=p
  else
    if (MessageDlg('Просмотр данных завершен! Повторить поиск сначала?',mtInformation,[mbYes,mbNo],0)=mrYes) then
      if PoiskTovarZakaz(Edit15.Text,true,p) then
        DataShop.ListZakupka.CurrentIndex:=p;
end;

procedure TMainform.SpeedButton51Click(Sender: TObject);
var bdate,edate: TDate;
    BYear, BMonth, BDay, EYear, EMonth, EDay: Word;
    Bs, Es, BMs, EMs, BDs, EDs: string;
begin
bdate:=trunc(DateTimePicker5.Date);
edate:=trunc(DateTimePicker6.Date);
DecodeDate(bdate,BYear, BMonth, BDay);
DecodeDate(edate,EYear, EMonth, EDay);
if BMonth in [1..9] then
   BMs:='0'+inttostr(BMonth)
else
   BMs:=inttostr(BMonth);

if EMonth in [1..9] then
   EMs:='0'+inttostr(EMonth)
else
   EMs:=inttostr(EMonth);

if BDay in [1..9] then
   BDs:='0'+inttostr(BDay)
else
   BDs:=inttostr(BDay);

if EDay in [1..9] then
   EDs:='0'+inttostr(EDay)
else
   EDs:=inttostr(EDay);
Bs:='#'+inttostr(BYear)+'-'+BMs+'-'+BDs;
Es:='#'+inttostr(EYear)+'-'+EMs+'-'+EDs;
if bdate<=edate then
   DataShop.ListZakupka.Expression:='Zakaz.allInstances->select((zdate>='+Bs+') and (zdate<='+Es+'))';
end;

procedure TMainform.N7Click(Sender: TObject);
begin
my.ShowModal;
end;

procedure TMainform.SpeedButton52Click(Sender: TObject);
begin
Edit14.Clear;
TabSheet9.TabVisible:=false;
end;

procedure TMainform.SpeedButton53Click(Sender: TObject);
begin
Edit15.Clear;
TabSheet10.TabVisible:=false;
end;

procedure TMainform.SpeedButton54Click(Sender: TObject);
begin
Edit12.Clear;
CheckBox1.Checked:=false;
DataShop.ListTovar.Expression:='Tov_mag.allInstances->select(tMcount<>0)';
TabSheet4.TabVisible:=false;
end;

procedure TMainform.SpeedButton55Click(Sender: TObject);
begin
SpeedButton28Click(nil);
TabSheet5.TabVisible:=false;
end;

procedure TMainform.SpeedButton33Click(Sender: TObject);
begin
SpeedButton30Click(nil);
TabSheet6.TabVisible:=false;
end;

procedure TMainform.SpeedButton29MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton29.Hint;
end;

procedure TMainform.SpeedButton30MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton30.Hint;
end;

procedure TMainform.SpeedButton32MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton32.Hint;
end;

procedure TMainform.SpeedButton31MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton31.Hint;
end;

procedure TMainform.SpeedButton43MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton43.Hint;
end;

procedure TMainform.SpeedButton8MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton8.Hint;
end;

procedure TMainform.SpeedButton9MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton9.Hint;
end;

procedure TMainform.SpeedButton10MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton10.Hint;
end;

procedure TMainform.SpeedButton11MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton11.Hint;
end;

procedure TMainform.SpeedButton12MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton12.Hint;
end;

procedure TMainform.SpeedButton13MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton13.Hint;
end;

procedure TMainform.SpeedButton3MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton3.Hint;
end;

procedure TMainform.SpeedButton4MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton4.Hint;
end;

procedure TMainform.SpeedButton5MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton5.Hint;
end;

procedure TMainform.SpeedButton6MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton6.Hint;
end;

procedure TMainform.SpeedButton7MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton7.Hint;
end;

procedure TMainform.SpeedButton14MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton14.Hint;
end;

procedure TMainform.SpeedButton15MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton15.Hint;
end;

procedure TMainform.SpeedButton21MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton21.Hint;
end;

procedure TMainform.SpeedButton22MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton22.Hint;
end;

procedure TMainform.SpeedButton23MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton23.Hint;
end;

procedure TMainform.SpeedButton20MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton20.Hint;
end;

procedure TMainform.SpeedButton18MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton18.Hint;
end;

procedure TMainform.SpeedButton19MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=SpeedButton19.Hint;
end;

procedure TMainform.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked then
  DataShop.ListTovar.Expression:='Tov_mag.allInstances'
else
  DataShop.ListTovar.Expression:='Tov_mag.allInstances->select(tMcount<>0)';
end;

procedure TMainform.CheckBox1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
StatusBar1.Panels[0].Text:=CheckBox1.Hint;
end;

procedure TMainform.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked then
  DataShop.ListOtdelsGroupTovar.Expression:='soderzhit'
else
  DataShop.ListOtdelsGroupTovar.Expression:='soderzhit->select(tMcount<>0)';
end;

procedure TMainform.CheckBox3Click(Sender: TObject);
begin
if CheckBox3.Checked then
  DataShop.ListBaseGroupTovar.Expression:='bHranit'
else
  DataShop.ListBaseGroupTovar.Expression:='bHranit->select(tBcount<>0)';
end;

procedure TMainform.N12Click(Sender: TObject);
begin
TabSheet4.TabVisible:=true;
PageControl1.ActivePage:=TabSheet4;
end;

procedure TMainform.N15Click(Sender: TObject);
begin
TabSheet5.TabVisible:=true;
PageControl1.ActivePage:=TabSheet5;
end;

procedure TMainform.N19Click(Sender: TObject);
begin
TabSheet7.TabVisible:=true;
PageControl1.ActivePage:=TabSheet7;
end;

procedure TMainform.N18Click(Sender: TObject);
begin
TabSheet8.TabVisible:=true;
PageControl1.ActivePage:=TabSheet8;
end;

procedure TMainform.N20Click(Sender: TObject);
begin
TabSheet9.TabVisible:=true;
PageControl1.ActivePage:=TabSheet9;
end;

procedure TMainform.N21Click(Sender: TObject);
begin
TabSheet10.TabVisible:=true;
PageControl1.ActivePage:=TabSheet10;
end;

procedure TMainform.ToolButton1MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Просмотр основных сведений о магазине';
end;

procedure TMainform.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
StatusBar1.Panels[0].Text:='';
end;

procedure TMainform.ToolButton3MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Просмотр статистических данных по магазину';
end;

procedure TMainform.ToolButton4MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Добавление в магазин нового отдела или группы в одел';
end;

procedure TMainform.ToolButton5MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Добавить новую закупочную базу';
end;

procedure TMainform.ToolButton6MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Выполнение различных оперций с товаром (продажа, редактирование...)';
end;

procedure TMainform.ToolButton7MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Посмотреть все остатки товара магазина';
end;

procedure TMainform.ToolButton8MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Добавление товара в закупочные базы';
end;

procedure TMainform.ToolButton9MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Заказ товара в магазин';
end;

procedure TMainform.ToolButton11MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Просмотр всех продаж магазина';
end;

procedure TMainform.ToolButton12MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Просмотр всех закупок магазина';
end;

procedure TMainform.ToolButton14MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Руководство пользователя';
end;

procedure TMainform.SpeedButton43Click(Sender: TObject);
begin
if SaveExcel.Execute then
  begin
  DataShop.BoldSystemHandleShop.UpdateDatabase;
  DataShop.BoldSystemHandleShop.Active:=false;
  DataShop.BoldPersistenceHandleFileXMLShop.FileName:=DirApplication;
  DataShop.BoldSystemHandleShop.Active:=true;
  if not(FileExists(SaveExcel.FileName)) then
     ExportOstatki(SaveExcel.FileName)
  else
     MessageDlg('Файл с таким именем уже существует!'+#13+'Введите другое имя файла!',mtError,[mbOK],0);
  end;
end;

procedure TMainform.N24Click(Sender: TObject);
begin
if SaveExcel.Execute then
  begin
  DataShop.BoldSystemHandleShop.UpdateDatabase;
  DataShop.BoldSystemHandleShop.Active:=false;
  DataShop.BoldPersistenceHandleFileXMLShop.FileName:=DirApplication;
  DataShop.BoldSystemHandleShop.Active:=true;
  if not(FileExists(SaveExcel.FileName)) then
     ExportOstatkiBase(SaveExcel.FileName)
  else
     MessageDlg('Файл с таким именем уже существует!'+#13+'Введите другое имя файла!',mtError,[mbOK],0);
  end;
end;

procedure TMainform.BitBtn1Click(Sender: TObject);
begin
NakladnayaProdazha('primer.doc',9);
end;

procedure TMainform.VremyaTimer(Sender: TObject);
begin
StatusBar1.Panels[1].Text:='Сегодня: '+DateTimeToStr(now);
end;

procedure TMainform.ToolBar1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='';
end;

procedure TMainform.Timer1Timer(Sender: TObject);
begin
if Mainform.AlphaBlendValue>250 then
   begin
   Timer1.Enabled:=false;
   MainForm.AlphaBlend:=false;
   end
else
   Mainform.AlphaBlendValue:=Mainform.AlphaBlendValue+5
end;

procedure TMainform.ToolButton15MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Экспорт остатков товара в магазине в Excel';
end;

procedure TMainform.ToolButton16MouseMove(Sender: TObject;
  Shift: TShiftState; X, Y: Integer);
begin
StatusBar1.Panels[0].Text:='Экспорт остатков товара на базах в Excel';
end;

procedure TMainform.CheckBox4Click(Sender: TObject);
begin
if CheckBox4.Checked then
  DataShop.ListBaseGroupTovar.Expression:='bHranit'
else
  DataShop.ListBaseGroupTovar.Expression:='bHranit->select(tBcount<>0)';
end;

procedure TMainform.ToolButton14Click(Sender: TObject);
begin
Application.HelpCommand(HelpContext,1);
end;

procedure TMainform.N6Click(Sender: TObject);
begin
Application.HelpCommand(HelpContext,1);
end;

procedure TMainform.N25Click(Sender: TObject);
begin
TabSheet11.TabVisible:=True;
PageControl1.ActivePage:=TabSheet11;
end;

procedure TMainform.SpeedButton56Click(Sender: TObject);
begin
SpeedButton13Click(nil);
TabSheet11.TabVisible:=false;
end;

end.

Соседние файлы в папке Магазин бытовой техники
  • #
    12.06.201541 Кб95EditTovarBase.dfm
  • #
    12.06.20153 Кб95EditTovarBase.pas
  • #
    12.06.201594 Кб95Main.dcu
  • #
    12.06.201551 б95Main.ddp
  • #
    12.06.20153 Мб95Main.dfm
  • #
    12.06.201585 Кб95Main.pas
  • #
    12.06.20157 Кб96NewBase.dcu
  • #
    12.06.201551 б95NewBase.ddp
  • #
    12.06.201561 Кб95NewBase.dfm
  • #
    12.06.20153 Кб95NewBase.pas
  • #
    12.06.20157 б95password.psw