ТМС:Менеджер — различия между версиями
Материал из wiki.standart-n.ru
Vlasova (обсуждение | вклад) (→cfFileUtils) |
Avo (обсуждение | вклад) |
||
(не показано 7 промежуточных версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | == | + | == Полезный функционал для написания ТМС и работы со справочниками == |
− | + | <pre> | |
− | + | //Основные uses для ТМС | |
− | + | uses | |
− | + | Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, | |
− | + | ToolWin, ImgList, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, | |
− | + | DB, IBQuery, IBDatabase, unDM, DBTables, cfdxUtils, Menus, | |
− | + | Buttons, ExtCtrls, StdCtrls, cfSelectEdit, Forms, Dialogs, need, sysutils, | |
− | + | gb_table, Mask, unFrameCustomDict, unMain,SysUtils,need,undmReports,unFrameWarebase, | |
− | + | Messages, ShellAPI, cfUtils, System, undmdocs, unFrameCustomDoc, | |
− | + | unFrameCustomDict, unMain, dxDBGrid, dxDBCtrl, cfSelectEdit, | |
− | + | unfrmContainer,db, ibquery, ibdatabase, menus, Classes, Graphics, Controls; | |
− | + | </pre> | |
− | + | <pre> | |
− | + | //Базовый SQL запрос | |
− | + | var | |
− | + | q_work: TIBquery; | |
− | + | ||
− | + | //Создаем подключение | |
− | + | q_work:=dm.TempQuery; | |
− | + | try | |
− | + | //Выполнение действий | |
− | + | finally | |
− | + | //закрываем и уничтожаем за собой | |
− | + | q_work.transaction.commit; | |
− | + | q_work.free; | |
− | + | end; | |
− | + | </pre> | |
− | + | //Обновляем сетку | |
− | + | gsender.qList.Refresh; | |
− | + | ||
− | + | ||
− | + | //Заменить значение текущего SQL справочника на нужное, используется динамического построения запросов | |
− | + | gSender.SelectSQLText:=''; | |
− | + | //Измененное значение функцией gSender.SelectSQLText применятся коммандой | |
− | + | gSender.ImmediateSelect; | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | === | + | //Получаем значение поля |
− | === | + | переменная:=gsender.qList.FieldByName('название поля').AsString (тип AsInteger AsFloat и т.п.); |
− | === | + | |
− | === | + | //Ставим курсор на запись |
− | === | + | gsender.LocateByKey(tek_doc_id); |
− | === | + | |
− | === | + | //Реинициализация активных документов |
− | === | + | frmManagerXP2.InitActiveDocs; |
− | = | + | |
− | + | //Обновление текущего активного локумента | |
− | + | dmDocs.ActiveDoc.RefreshData; | |
− | + | ||
− | + | //Получить значение текущего пользователя | |
− | + | frmManagerxp2.GetUserID; | |
− | + | ||
− | + | //Запустить ТМС из справочника, gsender - для передачи значения вызова, например значение поля или объекта | |
− | + | frmManagerXP2.RunTms(847,gsender); | |
− | + | ||
− | + | //Выполнить событие на сетки, например на событие нажатие клавишь OnKeyPress | |
+ | gsender.PgbList.OnKeyPress:='название функции обработки'; | ||
+ | |||
+ | //??? Установить текущий справочник с котрого идет вызов ??? (пока не уверен) | ||
+ | gsender.SetDictPosRect; | ||
+ | |||
+ | <pre> | ||
+ | //Вывести сообщение | ||
+ | application.MessageBox(Text - string, Caption - string ,Type- код иконки и кнопок); | ||
+ | Text - сообщение для пользователя | ||
+ | Caption - Заголовок сообщения | ||
+ | |||
+ | Type: | ||
+ | $00000010 - Иконка Ошибка и кнопка ОК | ||
+ | $00000020 - Иконка Вопрос и кнопка ОК | ||
+ | $00000030 - Иконка Внимание и кнопка ОК | ||
+ | $00000040 - Иконка Ошибка и кнопка ОК | ||
+ | |||
+ | $00000001 - Кнопки Ок и Отмена | ||
+ | $00000002 - Кнопки Прервать, Повтор и Пропустить | ||
+ | $00000003 - Кнопки Да, Нет и Отмена | ||
+ | $00000004 - Кнопки Да и Нет | ||
+ | $00000005 - Кнопки Повтор и Отмена | ||
+ | $00000006 - Кнопки Отмена, Повторить и Продолжить | ||
+ | |||
+ | Можно компоновать, например для вопроса | ||
+ | $00000020+$00000004 - Иконка Вопрос + Кнопки Да и Нет | ||
+ | |||
+ | mr_res := application.MessageBox('Текст вопроса',' ',$00000004+$00000020); | ||
+ | if mr_res<>6 then - если не нажата ДА | ||
+ | exit; | ||
+ | </pre> | ||
+ | |||
+ | USES | ||
+ | cfDB | ||
+ | '''function MakeCreateTableQueryByFields(fields: TFields; tablename: string): string;''' | ||
+ | '''function FieldTypeIsString(field: TField): boolean;''' | ||
+ | '''function FieldTypeIsIntOrFloat(field: TField): boolean;''' | ||
+ | '''function FieldTypeIsDateTime(field: TField): boolean;''' | ||
+ | '''function FieldTypeIsBoolean(field: TField): boolean;''' | ||
+ | '''function FieldTypeIsBlob(field: TField): boolean;''' | ||
+ | '''function FieldValue2Txt(fld: TField; StringEscapeBy: string = '"'; MySQLReplace: boolean = false): string;''' | ||
+ | '''function FieldValue2TxtB(sValue: string; StringEscapeBy: string = '"'; MySQLReplace: boolean = false): string;''' | ||
+ | '''function FieldValue2TxtA(fld: TField): string;''' | ||
+ | '''function FieldValue2TxtZ(Value: string; StringEscapeBy: string = '"'; MySQLReplace: boolean = false; ReplaceCLRF: string = #13#10): string;''' | ||
+ | '''function GetIBWhere(fieldname, searchCondition: string; bAnd: boolean = true; insertUPPER: boolean = true): string;''' | ||
+ | '''function cfADOFilter(fieldname, source: string): string;''' | ||
+ | '''function GetDefaultValueByIBType(itype: integer): string;''' | ||
+ | '''function ParseSelect4From(sqltext: string): string;''' | ||
+ | '''function ParseSelect4Where(sqltext: string): string;''' | ||
+ | '''function PrepareForFind(s: string): string; // обрезает окончания...''' | ||
+ | '''procedure cfCSV2DBF(csvFileName, dbfFileName: string; createbeforesqltext: string = '');''' | ||
+ | '''function inserttowhere(sqltext, clause: string): string;''' | ||
+ | '''function EkranWhere(SQLText: string): string;''' | ||
+ | '''function InsertWhere(const S: string; SQLText: string): string;''' | ||
+ | '''function GetPosOfStatement(const SQLText, Statement: string; var NextPos: integer): integer;''' | ||
+ | '''procedure ExportcfDataSet(dataset: TDataSet; stream: TStream; DateTimeCallBackProcedure: TDateTimeCallBackProcedure = nil);''' | ||
+ | '''procedure ExportcfDataSetWithCallBack(dataset: TDataSet; stream: TStream; CallBack: TExportCallBackProcedure = nil; tag: integer = 0);''' | ||
+ | '''function CheckWhereForNode(Node: TdxTreeListNode; WhereClause: string; PreparedFieldList: TStringList; ibQuery: TIBSQL): boolean;''' | ||
+ | '''function PrepareFieldListForCheck(gb: TCustomdxDBTreeListControl; sqlText: string; PreparedFieldList: TStringList): string;''' | ||
+ | '''function XReplace(S, OldPattern, NewPattern: string; chars: string = '{ ()=<>!|"}'): string;''' | ||
+ | '''procedure cfAssignFields(Source, Dest: TDataSet; XFields: string = '');''' | ||
+ | '''procedure cfAssignIBParams(Source, Dest: TIBQuery; var InsertText, UpdateText: string; XFields: string = '');''' | ||
+ | '''procedure SyncParams(source:TParams; dest: TIBXSQLDA); overload;''' | ||
+ | '''procedure SyncParams(source:TParams; dest: TParams); overload;''' | ||
+ | '''procedure SyncParams(source:TParams; dest: TDataSet); overload;''' | ||
+ | '''procedure cfAssignParamsValues(source:TParams; dest: TParams);''' | ||
+ | '''procedure FieldValuesToParamValuesByNames(Source, Dest: TIBQuery; XFields: string = '');''' | ||
+ | '''function FieldExists(ibdb: TIBDatabase; tablename, fieldname: string): boolean;''' | ||
+ | '''procedure CreateAccessDatabase(FileName: string);''' | ||
+ | '''function FieldTypeToStr(fieldtype: TFieldType): string;''' | ||
+ | |||
+ | cfFileUtils | ||
+ | '''procedure GetFileListWithSubFolders_(sPath: string; sl: TStringList);''' | ||
+ | Процедура заполняет sl списком файлов из заданного каталога по заданной маске, включая подкаталоги. Например sPath='C:\temp\*.dbf' | ||
+ | |||
+ | '''procedure GetFileListWithSubFolders(sPath: string; sl: TStringList);''' | ||
+ | Процедура заполняет sl списком файлов из заданного каталога по заданной маске, включая подкаталоги. Например sPath='C:\temp\*.dbf' | ||
+ | |||
+ | '''procedure GetFileList(sPath: string; sl: TStrings; IncludePath: boolean = false; excludeext: boolean = false);''' | ||
+ | Процедура заполняет sl списком имен файлов из заданного каталога по заданной маске. Если IncludePath = true, то в именах файлов будут присутствовать каталог. | ||
+ | Например sPath='C:\temp\*.dbf' | ||
+ | |||
+ | '''procedure GetFileListEx(sPath: string; sl: TStringList);''' | ||
+ | Процедура заполняет sl списком имен файлов и датой изменения файла из заданного каталога по заданной маске. | ||
+ | Например sPath='C:\temp\*.dbf' | ||
+ | |||
+ | '''function GetUniqueFileName(Path: string; Delimiter: string = ''): string;''' | ||
+ | '''function GetUniqueFileNameX(Path: string; Delimiter: string = ''): string;''' | ||
+ | '''function CreateUniqueDir(Path: string; Delimiter: string = ''): string;''' | ||
+ | '''function GetLastModFile(sPath: string): string;''' | ||
+ | '''function FilesCountWithSubFolders_(sPath: string; bExitIFinded: boolean = false): integer;''' | ||
+ | '''function FilesCount(sPath: string): integer;''' | ||
+ | '''procedure DelFiles(sPath: string; DelDirs: boolean = false; RaiseOnError: boolean = true);''' | ||
+ | '''procedure DelFileList(sl: TStrings);''' | ||
+ | '''function GetFileSize_(namefile: string): Integer;''' | ||
+ | '''function GetFileDateTime(FileName: string): TDateTime;''' | ||
+ | '''function GetCreateFileDateTime(filename: string): TDateTime;''' | ||
+ | '''procedure CreateDirIfNotExists(path: string);''' | ||
+ | '''function GetFirstFile(sPath: string; var sResult: string; IncludePath: boolean = false): boolean;''' | ||
+ | '''function GetFilesearchRec(namefile: string):TSearchRec;''' | ||
+ | '''function FileExistsInSubDirs(FileName: string; Directory: string; var path: string): boolean;''' | ||
+ | '''procedure GZFile(res, dest: string);''' | ||
+ | '''procedure UnGZFile(res, dest: string);''' | ||
+ | '''function SelectDir(handle: THandle; var dir: string; title: string = 'Выберите папку'; StatusText: string = 'Укажите папку'): boolean;''' | ||
+ | '''procedure WriteLog(msg: string; appfilename: string);''' | ||
+ | '''function cfGetTempPath: string;''' | ||
+ | '''function GetFileVersionMajorMinor(FileName: string): double;''' | ||
+ | '''function GetFileVersionCF(FileName: string): string;''' | ||
+ | '''function GetFileVersionMajorMinorText(FileName: string): string;''' | ||
+ | '''function cfCleanFileName(FileName: string; replacestr: string = '_'): string;''' | ||
+ | '''function CheckFileName(FileName: string): boolean;''' | ||
+ | '''function TestDir(ADir: string; testfilename: string = 'try.tst'): boolean;''' | ||
+ | '''function GetSpecialPath(CSIDL: word): string;''' | ||
+ | '''function cfGetSystemDrive: string;''' | ||
+ | '''function FirstMaskMatchedFile(mask: string): string;''' | ||
+ | '''function GetDriveList(coldelimiter: string = #9; rowdelimiter: string = #13#10): string;''' | ||
+ | '''function GetFolderContent(path: string; coldelimiter: string = #9; rowdelimiter: string = #13#10): string;''' | ||
+ | '''function GetFileAttrsLine(path: string; coldelimiter: string = #9): string;''' | ||
+ | '''Function SetFileDate(Const FileName : String; Const FileDate : TDateTime): Boolean; overload;''' | ||
+ | '''Function SetFileDate(Const FileName : String; Const FileDate : integer): Boolean; overload;''' | ||
+ | '''function GetPrevFolder(path: string): string;''' | ||
+ | '''procedure SetRegisteredIcons(ilSmall, ilLarge: TImageList; mask: string = '*.*');''' | ||
+ | '''function GetIconIndex(ext: string): integer;''' | ||
+ | '''function LoadSystemIcons(SmallIcons: Boolean; var il: TImageList): Boolean;''' | ||
+ | '''function FileIconSysIdxOffline( const Path: String ): Integer;''' | ||
+ | '''function GetPrettyFileSize(v: integer): string;''' | ||
+ | '''procedure GetSubDirectories(const directory : string; list : TStringList) ;''' | ||
+ | |||
+ | cfTMSIDERegAdvTMSPallete | ||
+ | cfTMSIDERegcfPallete | ||
+ | cfTMSIDERegdxPallete | ||
+ | cfTMSIDERegEmbeddedWBPallete | ||
+ | cfTMSIDERegGBPallete | ||
+ | cfTMSIDERegIBPallete | ||
+ | сfTMSIDERegStandartPalletes | ||
+ | dxCntner | ||
+ | dxDBCtrl | ||
+ | dxDBGrid | ||
+ | dxDBTL | ||
+ | dxExEdtr | ||
+ | dxTL | ||
+ | dxTLClms | ||
+ | IDERegAdoPalette | ||
+ | IDERegDBPalette | ||
+ | NEED | ||
+ | UnDeclare | ||
+ | UnDM | ||
'''function InitMGN: boolean;''' | '''function InitMGN: boolean;''' | ||
Инициализация глобального справочника | Инициализация глобального справочника | ||
Строка 419: | Строка 537: | ||
Инициализация макро-параметров. Определяются в таблице SP$PARAMS. В менеджере не используется. | Инициализация макро-параметров. Определяются в таблице SP$PARAMS. В менеджере не используется. | ||
− | + | unDmDocs | |
− | + | UndmReports | |
− | + | UnFrameAgents | |
− | + | UnFrameCustomDict | |
− | + | UnFrameCustomDoc | |
− | + | UnFrameCustomParams | |
− | + | UnFrameDocArchive | |
− | + | UnFrameDocContainer | |
− | + | UnFrameMake | |
− | + | UnFrameMoney | |
− | + | UnFramePrihodDoc | |
− | + | UnFramePrihodDocTreb | |
− | + | UnFrameUsers | |
− | + | UnFrameWareBase | |
− | + | UnfrmContainer | |
− | + | UnfrmDocManager | |
− | + | UnfrmGetCustomValue | |
− | + | UnfrmHint | |
− | + | UnfrmNotice | |
− | + | UnfrmReg | |
− | + | unMain | |
− | + | UnMain | |
− | + | UnViewUtils | |
− | + | unWindows | |
− | + | XmlDoc |
Текущая версия на 13:08, 19 марта 2020
Полезный функционал для написания ТМС и работы со справочниками
//Основные uses для ТМС uses Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ToolWin, ImgList, dxExEdtr, dxCntner, dxTL, dxDBCtrl, dxDBGrid, DB, IBQuery, IBDatabase, unDM, DBTables, cfdxUtils, Menus, Buttons, ExtCtrls, StdCtrls, cfSelectEdit, Forms, Dialogs, need, sysutils, gb_table, Mask, unFrameCustomDict, unMain,SysUtils,need,undmReports,unFrameWarebase, Messages, ShellAPI, cfUtils, System, undmdocs, unFrameCustomDoc, unFrameCustomDict, unMain, dxDBGrid, dxDBCtrl, cfSelectEdit, unfrmContainer,db, ibquery, ibdatabase, menus, Classes, Graphics, Controls;
//Базовый SQL запрос var q_work: TIBquery; //Создаем подключение q_work:=dm.TempQuery; try //Выполнение действий finally //закрываем и уничтожаем за собой q_work.transaction.commit; q_work.free; end;
//Обновляем сетку gsender.qList.Refresh;
//Заменить значение текущего SQL справочника на нужное, используется динамического построения запросов gSender.SelectSQLText:=; //Измененное значение функцией gSender.SelectSQLText применятся коммандой gSender.ImmediateSelect;
//Получаем значение поля переменная:=gsender.qList.FieldByName('название поля').AsString (тип AsInteger AsFloat и т.п.); //Ставим курсор на запись gsender.LocateByKey(tek_doc_id); //Реинициализация активных документов frmManagerXP2.InitActiveDocs;
//Обновление текущего активного локумента dmDocs.ActiveDoc.RefreshData;
//Получить значение текущего пользователя frmManagerxp2.GetUserID;
//Запустить ТМС из справочника, gsender - для передачи значения вызова, например значение поля или объекта frmManagerXP2.RunTms(847,gsender);
//Выполнить событие на сетки, например на событие нажатие клавишь OnKeyPress gsender.PgbList.OnKeyPress:='название функции обработки';
//??? Установить текущий справочник с котрого идет вызов ??? (пока не уверен) gsender.SetDictPosRect;
//Вывести сообщение application.MessageBox(Text - string, Caption - string ,Type- код иконки и кнопок); Text - сообщение для пользователя Caption - Заголовок сообщения Type: $00000010 - Иконка Ошибка и кнопка ОК $00000020 - Иконка Вопрос и кнопка ОК $00000030 - Иконка Внимание и кнопка ОК $00000040 - Иконка Ошибка и кнопка ОК $00000001 - Кнопки Ок и Отмена $00000002 - Кнопки Прервать, Повтор и Пропустить $00000003 - Кнопки Да, Нет и Отмена $00000004 - Кнопки Да и Нет $00000005 - Кнопки Повтор и Отмена $00000006 - Кнопки Отмена, Повторить и Продолжить Можно компоновать, например для вопроса $00000020+$00000004 - Иконка Вопрос + Кнопки Да и Нет mr_res := application.MessageBox('Текст вопроса',' ',$00000004+$00000020); if mr_res<>6 then - если не нажата ДА exit;
USES cfDB
function MakeCreateTableQueryByFields(fields: TFields; tablename: string): string; function FieldTypeIsString(field: TField): boolean; function FieldTypeIsIntOrFloat(field: TField): boolean; function FieldTypeIsDateTime(field: TField): boolean; function FieldTypeIsBoolean(field: TField): boolean; function FieldTypeIsBlob(field: TField): boolean; function FieldValue2Txt(fld: TField; StringEscapeBy: string = '"'; MySQLReplace: boolean = false): string; function FieldValue2TxtB(sValue: string; StringEscapeBy: string = '"'; MySQLReplace: boolean = false): string; function FieldValue2TxtA(fld: TField): string; function FieldValue2TxtZ(Value: string; StringEscapeBy: string = '"'; MySQLReplace: boolean = false; ReplaceCLRF: string = #13#10): string; function GetIBWhere(fieldname, searchCondition: string; bAnd: boolean = true; insertUPPER: boolean = true): string; function cfADOFilter(fieldname, source: string): string; function GetDefaultValueByIBType(itype: integer): string; function ParseSelect4From(sqltext: string): string; function ParseSelect4Where(sqltext: string): string; function PrepareForFind(s: string): string; // обрезает окончания... procedure cfCSV2DBF(csvFileName, dbfFileName: string; createbeforesqltext: string = ); function inserttowhere(sqltext, clause: string): string; function EkranWhere(SQLText: string): string; function InsertWhere(const S: string; SQLText: string): string; function GetPosOfStatement(const SQLText, Statement: string; var NextPos: integer): integer; procedure ExportcfDataSet(dataset: TDataSet; stream: TStream; DateTimeCallBackProcedure: TDateTimeCallBackProcedure = nil); procedure ExportcfDataSetWithCallBack(dataset: TDataSet; stream: TStream; CallBack: TExportCallBackProcedure = nil; tag: integer = 0); function CheckWhereForNode(Node: TdxTreeListNode; WhereClause: string; PreparedFieldList: TStringList; ibQuery: TIBSQL): boolean; function PrepareFieldListForCheck(gb: TCustomdxDBTreeListControl; sqlText: string; PreparedFieldList: TStringList): string; function XReplace(S, OldPattern, NewPattern: string; chars: string = '{ ()=<>!|"}'): string; procedure cfAssignFields(Source, Dest: TDataSet; XFields: string = ); procedure cfAssignIBParams(Source, Dest: TIBQuery; var InsertText, UpdateText: string; XFields: string = ); procedure SyncParams(source:TParams; dest: TIBXSQLDA); overload; procedure SyncParams(source:TParams; dest: TParams); overload; procedure SyncParams(source:TParams; dest: TDataSet); overload; procedure cfAssignParamsValues(source:TParams; dest: TParams); procedure FieldValuesToParamValuesByNames(Source, Dest: TIBQuery; XFields: string = ); function FieldExists(ibdb: TIBDatabase; tablename, fieldname: string): boolean; procedure CreateAccessDatabase(FileName: string); function FieldTypeToStr(fieldtype: TFieldType): string;
cfFileUtils
procedure GetFileListWithSubFolders_(sPath: string; sl: TStringList); Процедура заполняет sl списком файлов из заданного каталога по заданной маске, включая подкаталоги. Например sPath='C:\temp\*.dbf'
procedure GetFileListWithSubFolders(sPath: string; sl: TStringList); Процедура заполняет sl списком файлов из заданного каталога по заданной маске, включая подкаталоги. Например sPath='C:\temp\*.dbf'
procedure GetFileList(sPath: string; sl: TStrings; IncludePath: boolean = false; excludeext: boolean = false); Процедура заполняет sl списком имен файлов из заданного каталога по заданной маске. Если IncludePath = true, то в именах файлов будут присутствовать каталог. Например sPath='C:\temp\*.dbf'
procedure GetFileListEx(sPath: string; sl: TStringList); Процедура заполняет sl списком имен файлов и датой изменения файла из заданного каталога по заданной маске. Например sPath='C:\temp\*.dbf'
function GetUniqueFileName(Path: string; Delimiter: string = ): string; function GetUniqueFileNameX(Path: string; Delimiter: string = ): string; function CreateUniqueDir(Path: string; Delimiter: string = ): string; function GetLastModFile(sPath: string): string; function FilesCountWithSubFolders_(sPath: string; bExitIFinded: boolean = false): integer; function FilesCount(sPath: string): integer; procedure DelFiles(sPath: string; DelDirs: boolean = false; RaiseOnError: boolean = true); procedure DelFileList(sl: TStrings); function GetFileSize_(namefile: string): Integer; function GetFileDateTime(FileName: string): TDateTime; function GetCreateFileDateTime(filename: string): TDateTime; procedure CreateDirIfNotExists(path: string); function GetFirstFile(sPath: string; var sResult: string; IncludePath: boolean = false): boolean; function GetFilesearchRec(namefile: string):TSearchRec; function FileExistsInSubDirs(FileName: string; Directory: string; var path: string): boolean; procedure GZFile(res, dest: string); procedure UnGZFile(res, dest: string); function SelectDir(handle: THandle; var dir: string; title: string = 'Выберите папку'; StatusText: string = 'Укажите папку'): boolean; procedure WriteLog(msg: string; appfilename: string); function cfGetTempPath: string; function GetFileVersionMajorMinor(FileName: string): double; function GetFileVersionCF(FileName: string): string; function GetFileVersionMajorMinorText(FileName: string): string; function cfCleanFileName(FileName: string; replacestr: string = '_'): string; function CheckFileName(FileName: string): boolean; function TestDir(ADir: string; testfilename: string = 'try.tst'): boolean; function GetSpecialPath(CSIDL: word): string; function cfGetSystemDrive: string; function FirstMaskMatchedFile(mask: string): string; function GetDriveList(coldelimiter: string = #9; rowdelimiter: string = #13#10): string; function GetFolderContent(path: string; coldelimiter: string = #9; rowdelimiter: string = #13#10): string; function GetFileAttrsLine(path: string; coldelimiter: string = #9): string; Function SetFileDate(Const FileName : String; Const FileDate : TDateTime): Boolean; overload; Function SetFileDate(Const FileName : String; Const FileDate : integer): Boolean; overload; function GetPrevFolder(path: string): string; procedure SetRegisteredIcons(ilSmall, ilLarge: TImageList; mask: string = '*.*'); function GetIconIndex(ext: string): integer; function LoadSystemIcons(SmallIcons: Boolean; var il: TImageList): Boolean; function FileIconSysIdxOffline( const Path: String ): Integer; function GetPrettyFileSize(v: integer): string; procedure GetSubDirectories(const directory : string; list : TStringList) ;
cfTMSIDERegAdvTMSPallete cfTMSIDERegcfPallete cfTMSIDERegdxPallete cfTMSIDERegEmbeddedWBPallete cfTMSIDERegGBPallete cfTMSIDERegIBPallete сfTMSIDERegStandartPalletes dxCntner dxDBCtrl dxDBGrid dxDBTL dxExEdtr dxTL dxTLClms IDERegAdoPalette IDERegDBPalette NEED UnDeclare UnDM
function InitMGN: boolean; Инициализация глобального справочника
function ExtractFileNameWithoutExt(const FileName: string): string; Возвращает имя файла без расширений и каталога
procedure LoadSettings; Загрузка настроек интеллектуальной заявки ZAutoXP
procedure DoLocalSettings(bRead: boolean); Установка локальных параметров. Например, параметры подключения к интеллектуальной заявке, сведения о регистрации программы, параметры подключения к интернету и прочее.
procedure SendInfoM; Процедура собирает информацию о клиенте: параметры организации, имя компьютера, адрес организации о отправляет разработчикам.
procedure InitGDB; Инициализация подключения к базе Общего Заказа. PARAMS.PARAM_ID='GDB_CONNSTR'
procedure InitOzDb; Инициализация подключения к базе Общего Заказа. PARAMS.PARAM_ID='OZ_CONNSTR'
function GetFolder: string; Возвращает код выбранной группы (PARTS.FOLDERS). 0 - если не выбрано.
procedure SelectsCheck; Проверяет наличие всех необходимых режимов в SELECTS, если нет, то добавляет. Проверяемые коды: -14, -10, -11, -12, -13
function TempQuery(trn: TIBTransaction = nil; db: TIBDatabase = nil): TIBQuery; Возвращает созданный TIBQuery, подключенный к текущей базе данных.
function Init(var sMsg: string): boolean; Инициализация программы Менеджер
function InitAfter(var sMsg: string): boolean; Выполняет следующие шаги запуска менеджера: -Проверка набора системных запросов -Инициализация менеджера форм -Инициализация меню отчетов -Инициализация Внешних справочников -Инициализация клиента Интеллектуальной заявки -Инициализация подпрограмм -Инициализация фильтров архива документов -Инициализация SpacePro справочников -Инициализация принтеров -Инициализация основной подпрограммы TMS (-400) -Инициализация фрейма "Касса" -Инициализация фрейма "Комплекты" -Инициализация стилей -Проверка индексов -Загрузка настроек автонаценки
procedure SaveEncryptedSettings; Сохранение зашифрованных настроек в файл params.stn. К таки параметрам относятся параметры подключения к базе данных, последний вошедший пользователь и прочее
function Autorisation: boolean; Вызывается окно авторизации пользователя, загружаются параметры пользователя из users.userdata
procedure LogIt(s: string); Выводит сообщение в панели сообщений отладки
procedure LogException(s: string); В файл exceptions.log (логирование исключений) добавляет строку s
procedure Display(s: string); Выводит сообщение s в строке состояния (левом нижнем углу)
function startsession(user_id: int64; forcecreate: boolean; var ws_name: string): boolean; Создание новой сессии SESSOINS. Работает хранимая процедура PR_NEWSESSION
procedure endsession(CLOSESESSION_ID: int64 = 0; ENDFLAG: integer = 0; DOEVENT: boolean = false); Завершение работы текущей сессии. CLOSESESSION_ID - Код сессии, ENDFLAG - флаг закрытия, DOEVENT - признак наличия события. Работает хранимая процедура PR_CLOSESESSION
procedure SetDBVER; Формирование заголовка программы. Название версия, зарегистрирована или нет.
function NewWinBtn(caption: string; icon: TIcon): TSpeedButton; Создает новую кнопку TSpeedButton и размещает ее на pnWindows. У меня эта процедура, почему то не работает...
procedure initimagelist; Инициализация картинок, которые хранятся в таблице imagelist поле DATA. Данные картинки используются для картинок групп.
procedure SaveUserDataFile; Сохранение параметров пользователя в USERS.USERDATA. Настройки сеток, настройки программы кассир на пользователя
procedure SaveSettings; Сохранение настроек интеллектуальной заявки ZAutoXP
procedure SaveMngrWindowsSettings; Сохранение положения и размера окна для окна истории товаров.
procedure gbKeyPress(Key: Char; ed: TEdit; DoDigits: boolean = False); В ed выводит код нажатой клавиши.
function SessionByID(id: int64): rSession; Возвращает параметры сессии по коду сессии. Возвращаемые значения: id,username,user_id,ws_id,wsname,ws_ip. Доступ к результату функции через точку. Например: dm.SessionByID.wsname - имя компьютера с которого была запущена сессия с кодом 0.
function SessionID: int64; Возвращает код текущей сессии
function GetCustomDrawText(sField: string; AText: string): string; Пока нет описания
function DelFromGroup(CurMembership: TCurMembership): boolean; В TMS нет типа TCurMembership, по этому функция не используется. А вообще, удаляет запись из членства в группе.
function CheckMembership(grouptablename: string; table_id: int64; checkgroup_ids: string): boolean; Возвращает признак принадлежности к группе
procedure ShowPartHistory(part_id: int64; ScreenRect, MaxRect: TRect); Открыть историю товара для указанной партии
procedure InitGridParamView(gb: TCustomdxDBTreeListControl; gbName: string; filename: string; LoadAllRecordsMode: integer = 0); Инициализация внешнего вида сетки для заданной сетки из USERS.USERDATA
procedure gbCtrl(edcfSelect: TcfSelectEdit; Key: Word; Shift: TShiftState); Послать нажатие клавиши Ctrl в определенную сетку. По умолчанию, очищает поле поиска.
procedure CancelgbCtrl(gb: TWinControl); После запуска данной процедуры клавиша Ctrl не будет очищать поиск.
function IsAdmin: boolean; Если код текущего пользователя 0 или у текущего пользователя есть права администратора, то возвращает Истину, иначе ложь
function IsManager: boolean; Если код текущего пользователя 0 или у текущего пользователя есть права менеджера или администратора, то возвращает Истину, иначе ложь
procedure DoDates(ANode: TdxTreeListNode; fieldname: string; var AText: string; var AColor: TColor; AFont: TFont); Применяет раскраску ячеек в колонках срок годности, дата окончания, дата вставки, дата обновления на основании настроек программы для интерактивной подкраски.
procedure CheckSession; Проверяет наличие открытой активной сессии для текущего пользователя и программы, если такой, нет - завершается работа программы.
function GetCash: double; Обновление суммы наличности в кассе в журнале документов кассы.
procedure CompleteCurParams(filename: string); Загрузить профиль интерфейса из файла (*.asni) USERS.USERDATA
function GetDocFrameById(id: int64): TFrameCustomDoc; Возвращает фрейм (форму) активного документа по коду документа.
procedure DrawImage_Folder(il: TImageList; ImageIndex: integer; AText: string; ACanvas: TCanvas; ARect: TRect; AColor: TColor; AFont: TFont); Прорисовать картинку с кодом ImageIndex из il у ARect с надписью AText
procedure ToolButtonDropDownMenuClick(btn: TToolButton); Пустая процедура, ничего не делает
procedure ExecScript(group_id: int64; program_data: TStringList = nil); overload; Запустить скрипт (подпрограммы) на выполнение с кодом group_id, где program_data входящие параметры, доступные в самом скрипте.
procedure ExecScript(group_id: int64; program_data: TStringList; Sender: TObject); overload; Запустить скрипт (подпрограммы) на выполнение с кодом group_id, где program_data входящие параметры, доступные в самом скрипте.
procedure ExecScript(PartGroup: TPartGroup; program_data: TStringList; Sender: TObject); overload; Запустить скрипт (подпрограммы) на выполнение PartGroup, где program_data входящие параметры, доступные в самом скрипте.
procedure ExecScript(group_sid: string; program_data: TStringList; Sender: TObject); overload; Запустить скрипт (подпрограммы) на выполнение с sid=group_sid, где program_data входящие параметры, доступные в самом скрипте.
procedure InitScriptsMenu(MenuItems: TMenuItem); Инициализация меню подпрограмм. То, что будет выходить по кнопке "Выполнить": список скриптов, список TMS скриптов, "Обновить список подпрограмм"
function InitScripts_AddChilds_recur(ParentMI: TMenuItem): boolean; Инициализация подменю подпрограмм
procedure UpdKritK(name_id: string; value: integer); Установить критическое количество (минимальный остаток) для указанного наименования. update vals set intvalue=:value where id=:name_id function EditImageList(id: integer): boolean; Открыть окно с выбором иконки. При изменении содержимого набора картинок, данные пере пишутся в базу.
procedure SetInitParams; Устанавливает значения параметров, доступных в программе на протяжении всей сессии. После знака равенства указаны значения по умолчанию,в случае отсутствия параметра в таблице PARAMS PARAMS.PARAMS_FORMSPART='forms' PARAMS.PARAMS_ENAKLBACKPATH='enakl\enakl_back' PARAMS.PARAMS_ENAKLPATH='enakl\enakl_ok' PARAMS.PATH_PICTS='picts' PARAMS.PATH_ENAKL_CORRECTQUANT_MASK='enakl\enakls\*.dbf' PARAMS.PATH_ENAKL_RASHOD_MASK='enakl\enakls\d*.dbf' PARAMS.PATH_ENAKL_PRIHOD_MASK='enakl\enakls\*.dbf'
function InitScales: boolean; Инициализация электронных весов в менеджере, работает если PARAMS.INIT_SCALES=1
function InitMgnCustomDicts: boolean; Инициализация внешнего справочника или глобального справочника при редактировании наименования. Визуально находится справа от основного справочника выбора наименования. В список внешних справочников попадают все справочники из WDICTS со status=0
procedure InitDataSet(var IBQuery:TIBQuery); Создает IBQuery подключенного к текущей базе данных с активной транзакцией.
function GetStringFromClipboard: WideString; Возвращает строку. находящуюся в буфере обмена.
procedure RefreshGrid(Grid: TdxDBGrid; UniqueField: String); Обновляет все содержимое сетки TdxDBGrid. UniqueField - ключ сетки.
procedure CustomParamsInit; Инициализация параметров в текущей сессии: PARAMS.ACTIVE_DOC_HIGHLIGHT PARAMS.NAMES_FIRST_UP PARAMS.HIDE_MINUS PARAMS.PRICE_EDIT_ACTION PARAMS.BCODE_EDITOR PARAMS.ALLOW_RASHOD_NOPARTID PARAMS.TREE_LIST_VIEW PARAMS.AGENTS_DICT_MODE PARAMS.MAKE_ENABLE PARAMS.STRING_VAL_FIELDS PARAMS.ENAKL_NUM_MODE PARAMS.AUTO_GROUP_FIELDS PARAMS.MAKETYPES PARAMS.STYLE PARAMS.GEN_BARCODE PARAMS.ACTION_PRIHOD PARAMS.ACTION_RASHOD PARAMS.COMMITDATE PARAMS.EDIT_SEARCH_FIELDS PARAMS.PARAMS_EMAIL PARAMS.EMAIL PARAMS.PARAMS_SMTP PARAMS.PARAMS_PORT PARAMS.PARAMS_PSW PARAMS.PARAMS_TEMP_PATH PARAMS.PARAMS_AUTOTLS PARAMS.PARAMS_FULLSSL PARAMS.ORG_NAME_NAKL PARAMS.SEND_METHOD PARAMS.ELNAKLDIALOG PARAMS.ARCHIVE_AGENTS_LIMIT PARAMS.INDEX_CHECK PARAMS.SHOW_OBSOLETE PARAMS.GET_HISTORY PARAMS.MAKE_STATES PARAMS.OZ_CONNSTR PARAMS.OZ_PATH PARAMS.ELNAKLS_UPDATE PARAMS.ACTIVEDOC_PRINT_METHOD PARAMS.ORDER_VIEW PARAMS.ORDER_SETTINGS PARAMS.GDB_CONNSTR PARAMS.USE_AUTORASHOD_SCRIPTS PARAMS.AUTONAC PARAMS.AUTORASHOD_METHOD
procedure CustomDictsInit; Добавляет в меню справочники - дополнительные возможности список SP$WDISTS где status=0 Добавляет в основном окне закладки со справочниками SP$WDISTS где status=2
procedure ShowSplash; пустая процедура, ничего не делает.
procedure InitPrinters; В поле param_type_data таблицы PARAMS в строке с кодом -43 (PARAm_ID='DEF_PRINTER') записывается список принтеров из системы
function PrepareForFind(s: string): string; Подготавливает строку s к поиску. Из строки s вырезаются все значения из таблицы NAME_RULES. Если type=0, вырезать все значения Если type=1, вырезать значения слева Если type=2, вырезать значения справа
function IsDigit(s: char): boolean; Возвращает Истина, если s является числом, Ложь - иначе.
function RemoveLeft(s, val: string): string; Подготавливает строку к поиску, обрезая слева все цифры, находящиеся до val
function RemoveRight(s, val: string): string; Подготавливает строку к поиску, обрезая справа все цифры, находящиеся от val
function IsReg: boolean; Возвращает Истина если программа зарегистрирована, Ложь - иначе
function ConvertFSelect(svalue: string): string; Преобразует строку svalue (типа selected_ids ' 1 2 3 4 ') к виду '1,2,3,4' для последующего использования в зпросе
procedure bLocate(qD: TIBQuery; UniqueField: String; id: Variant); Позиционирует запись в запросе qD по значению id в поле UniqueField
function CreatePreviewFile(pict_id: int64): boolean; Выгружает картинку предварительного просмотра из поля PREVIEW таблицы
procedure UpdateUserMMBSH; Для текущей сессии заполняет значение mmbsh по grouptabele='USERS'и текущему пользователю Не используется в ТМС
function GetGoodNameID(sname: string): int64; При подключенном глобальном справочнике возвращает код позиции приведенного наименования в глобальном прайсе по sname
function UserParamsByID(UserID: integer): TcfZip; Возвращает профиль у пользователя с кодом UserID
function CopyGridParams(gb: TCustomdxDBTreeListControl; gbName, gbFileName: String; LoadAll: integer = 0): boolean; Вызывается операция копирования сетки у пользователя для текущего пользователя.
function GetGoodName(svalue: string): string; При подключенном глобальном справочнике возвращает приведенное наименование из глобального прайса по sname
procedure CheckFields; Проверяет наличие колонки doc_pay_date в таблице docs, если ее нет, то создает Проверяет наличие колонки credit_depth в таблице agents, если ее нет, то создает
procedure InitDocArchiveView; Инициализация журнала документов
procedure CreateTrayIcon(n: Integer); Создается значок менеджера и размещается в области уведомлений (трей)
procedure DeleteTrayIcon(n: Integer); Удаляется значок менеджера из области уведомлений (трей)
procedure IconRepaint(index: integer; cp: string); Обновление отображения значка менеджера в области уведомлений (трей)
function GetTmsParams: String; передача параметров в тмс текст структурированный в stringlist
procedure CheckIndices; Процедура проверки активности индекса WARES_IDX1 для WARES В случае отсутствия запускается хранимая процедура UPDPR_REPARWARES для исправления WARES. Делает индекс активным.
Procedure FillPartAttributes; Инициализирует список полей, заполняемых через атрибуты
procedure FreeEvent(id: string = ); Освобождение всех событий
procedure RefreshMacroParams; Инициализация макро-параметров. Определяются в таблице SP$PARAMS. В менеджере не используется.
unDmDocs UndmReports UnFrameAgents UnFrameCustomDict UnFrameCustomDoc UnFrameCustomParams UnFrameDocArchive UnFrameDocContainer UnFrameMake UnFrameMoney UnFramePrihodDoc UnFramePrihodDocTreb UnFrameUsers UnFrameWareBase UnfrmContainer UnfrmDocManager UnfrmGetCustomValue UnfrmHint UnfrmNotice UnfrmReg unMain UnMain UnViewUtils unWindows XmlDoc