unit DMU; interface uses System.SysUtils, IdGlobal,System.Classes, EhLibMTE, MemTableDataEh, Data.DB, windows, messages, MemTableEh, DataDriverEh, Data.Win.ADODB, MemDS, VirtualTable, Vcl.ImgList, Vcl.Controls, acAlphaImageList, Vcl.Menus, Vcl.Dialogs, sDialogs, ToolCtrlsEh, DBGridEhToolCtrls, ADODataDriverEh, DynVarsEh, sSkinManager, PrnDbgeh, frxClass, frxDBSet, frxExportPDF, Forms, RzCommon, IniFiles, frxExportXLS, frxExportRTF, frxExportHTML, System.Types; type TDM = class(TDataModule) VPT: TVirtualTable; VPS: TDataSource; AOSS: TDataSource; CabS: TDataSource; OSS: TDataSource; SotrS: TDataSource; DevS: TDataSource; CON: TADOConnection; ITT: TADOTable; CabT: TADOTable; OST: TADOTable; SotrT: TADOTable; DevT: TADOTable; DSD: TDataSetDriverEh; AOST: TMemTableEh; AOSTКод: TAutoIncField; AOSTCOD: TIntegerField; AOSTИНВ: TIntegerField; AOSTУстройство: TIntegerField; AOSTКабинет: TIntegerField; AOSTОС: TIntegerField; AOSTСотрудник: TIntegerField; AOSTДатаучета: TDateTimeField; AOSTUpgrade: TDateTimeField; AOSTSN: TWideStringField; AOSTКонфигурация: TWideMemoField; AOSTDev: TStringField; AOSTCab: TStringField; AOSTOS: TStringField; AOSTSotr: TStringField; VPTКод: TAutoIncField; VPTKabinet: TWideStringField; VPTINB: TWideStringField; VPTName: TWideStringField; VPTQRCOD: TBlobField; MImage: TsAlphaImageList; ITTКод: TAutoIncField; ITTCOD: TIntegerField; ITTИНВ: TIntegerField; ITTУстройство: TIntegerField; ITTКабинет: TIntegerField; ITTОС: TIntegerField; ITTСотрудник: TIntegerField; ITTДатаучета: TDateTimeField; ITTUpgrade: TDateTimeField; ITTSN: TWideStringField; ITTКонфигурация: TWideMemoField; CabTКод: TAutoIncField; CabTКабинет: TWideStringField; OSTКод: TAutoIncField; OSTОС: TWideStringField; SotrTКод: TAutoIncField; SotrTСотрудник: TWideStringField; DevTКод: TAutoIncField; DevTУстройство: TWideStringField; OpenDB: TsOpenDialog; sSkinManager1: TsSkinManager; SFile: TsSaveDialog; AImage: TsAlphaImageList; PGrid: TPrintDBGridEh; QRDS: TfrxDBDataset; QRPrint: TfrxReport; PDF: TfrxPDFExport; XLS: TfrxXLSExport; Export: TfrxDBDataset; Export1: TfrxReport; EPT: TVirtualTable; EPTКод: TAutoIncField; EPTCOD: TIntegerField; EPTИНВ: TIntegerField; EPTУстройство: TStringField; EPTКабинет: TStringField; EPTОС: TStringField; EPTСотрудник: TWideStringField; EPTДатаучета: TDateTimeField; EPTUpgrade: TDateTimeField; EPTSN: TWideStringField; EPTКонфигурация: TWideMemoField; RTF: TfrxRTFExport; HTML: TfrxHTMLExport; procedure DataModuleCreate(Sender: TObject); private { Private declarations } public { Public declarations } end; var DM: TDM; SetIni: Tinifile; Source: string; procedure Connect; procedure LoadIni; procedure SaveIni; implementation uses AOSU, SetU; { %CLASSGROUP 'Vcl.Controls.TControl' } {$R *.dfm} //Открытие, создание БД... procedure Connect; var FilePath: String; begin AOS.GRID.StartLoadingStatus('Загрузка БД...', -1); if FileExists(Source) then FilePath := Source else if DM.OpenDB.Execute then FilePath := DM.OpenDB.FileName else if Application.MessageBox (PChar('База Данных не найдена, хотите создать новую БД?'), 'Внимание!!!', MB_OKCANCEL + MB_ICONWARNING) = id_OK then begin DM.SFile.Filter := 'MDB|*.mdb'; DM.SFile.DefaultExt := 'MDB'; AOS.GRID.StartLoadingStatus('Создание БД...', -1); if DM.SFile.Execute then With DM.CON do begin CopyFile(PChar(ExtractFilePath(ParamStr(0)) + '\new.aos'), (PChar(DM.SFile.FileName)), true); FilePath := DM.SFile.FileName; AOS.GRID.FinishLoadingStatus; end; end else Application.Terminate; DM.CON.ConnectionString := ('Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;' + 'Data Source=' + FilePath + ';' + 'Mode=Share Deny None;Jet OLEDB:System database="";'); Source := FilePath; AOS.Caption := 'Инвентаризация оборудования'; DM.AOST.Active := true; DM.ITT.Active := true; DM.CabT.Active := true; DM.OST.Active := true; DM.SotrT.Active := true; DM.DevT.Active := true; DM.DSD.KeyFields := 'Код'; DM.AOST.Refresh; AOS.Show; AOS.GRID.Refresh; AOS.GRID.FinishLoadingStatus; end; //Действие при создание формы... procedure TDM.DataModuleCreate(Sender: TObject); begin LoadIni; CON.Connected := False; Connect; CON.Connected := true; end; // Сохранение параметров конфигурации... procedure SaveIni; begin SetIni := Tinifile.Create(ExtractFilePath(Application.ExeName) + '\aosit.aos'); SetIni.WriteBool('Grid', 'Find', AOS.GRID.STFilter.Visible); SetIni.WriteInteger('Grid', 'FindIco', AOS.Find.ImageIndex); SetIni.WriteString('Grid', 'FindHint', AOS.Find.Hint); SetIni.WriteString('Source', 'Source', Source); end; // Загрузкка параметров конфигурации... procedure LoadIni; begin SetIni := Tinifile.Create(ExtractFilePath(Application.ExeName) + '\aosit.aos'); AOS.GRID.STFilter.Visible := SetIni.ReadBool('Grid', 'Find', False); AOS.Find.ImageIndex := SetIni.ReadInteger('Grid', 'FindIco', 4); AOS.Find.Hint:= SetIni.ReadString('Grid', 'FindHint','Поиск Включить'); Source := SetIni.ReadString('Source', 'Source', ''); end;end; end.