На главную   На главную   Форумы Новости Документация Скачать Купить  
Регистрация  
Система Allegro
Oб Allegro Характеристики Пример конфигурации Документация База ошибок Развитие
Версия для печати К списку книг Вернуться к оглавлению Предыдущий параграф Следующий параграф
Поиск по книге

Глава 12. РАЗРАБОТКА ОКОННОГО ИНТЕРФЕЙСА

Встроенные специализированные процедуры и функции

В программе имеется ряд встроенных специализированных процедур и функций, которые можно использовать в оконных модулях:


function CallDocument(var doc_type_id, doc_id, dir_id: integer;
     const params: string): TModalResult;
     //вызывает документ на экран, если у того имеется проект оконного интерфейса.

function CallDocumentEx(var doc_type_id, doc_id, dir_id: integer;
     const params: string; parent_doc_type_id, parent_doc_id: integer): TModalResult;
     //вызывает документ на экран, если у того имеется проект оконного интерфейса.
     //имеет два дополнительных параметра для передачи информации
procedure MakeEntries(const MainTableName: string; doc_id: integer;
     ATransaction: TIBTransaction);
     //перепроводит документ в бухгалтерской системе
     //с помощью вызова хранимой процедуры
     //_CHANGED(doc_id) на сервере
procedure MakeRegEntries(const MainTableName: string;
     doc_id, doc_n, reg_template_id: integer; ATransaction: TIBTransaction);
     //перепроводит документ в регистрах с помощью вызова хранимой процедуры
     //_R_CHANGE(doc_id, doc_n, reg_template_id) на сервере
procedure RefreshExplorer;
     //освежает «Проводник документов», если тот на экране
procedure RefreshBalance;
     //освежает «Баланс», если тот на экране
function SimpleEditDocument(doc_type_id: integer; var doc_id: integer): boolean;
     // вызывает универсальное системное окно редактирования документов
function GetLayerMask(Layer_ID: integer): boolean;
     //возвращает значение маски слоя
procedure SetLayerMask(Layer_ID: integer; Enabled: boolean);
     //устанавливает новое значение маски слоя
procedure StatusBarDisplay(LedColor: TColor; ProgressPosition,
     ProgressMin, ProgressMax: integer; const Text1, Text2, Text3: string);
     //управляет статусной строкой в главном окне
procedure TestTemplateBalance(Template_Id: integer; ShowErrFormPrompt: boolean);
     //запускает виртуальную операцию шаблона для проверки равенства дебета кредиту
function IsAllegroSystemObject(const Name: string): boolean;
     //возвращает True, если Name является именем системного объекта ядра базы данных
function GetEditFormat(const DisplayFormat: string): string;
     //возвращает переданную строку,
     //исключая из нее любые символы кроме #, 0 и точки
function UpdateTurnovers(RefreshBalance: boolean): boolean;
     //вызывает перепроведение всех бухгалтерских
     //шаблонов, у которых установлен флаг IS_CHANGED
function DocTypeSelectDlg(EnableSysDocs: boolean; var Doc_Type_Id: integer): boolean;
     //вызывает диалог выбора типа документа
function NameOfRefObject(Object_ID: integer; const NameType: string): string;
     //возвращает отформатированное наименование объекта из таблицы OBJECT_NAMES
function NameOfDocument(const MainTableName: string; Doc_Id: integer;
     ATransaction: TIBTransaction): string;
     //возвращает наименование документа, получая его вызовом
     //процедуры форматирования имени документа XXX_GET_NAMES
function UserHasGlobalPrivileges: boolean;
     // Возвращает True, если пользователь SYSDBA или
     // владелец (OWNER) текущей базы данных
function GetDocumentContext(Adoc_id: integer): TRunContext;
     //возвращает контекст документа,
     //если тот присуствует на экране и nil, если это не так.
function GetDocumentForm(Adoc_id: integer): TCustomForm;
     //возвращает указатель на форму
     //документа, если она присуствует на экране или nil, если это не так;
     //позволяет получить доступ к объектам любого активного документа.
function AlgExpandRelativePath(const FileName: string): string;
     //прибавляет к FileName путь к файлам текущей конфигурации
procedure PrepareToChangeConfiguration(OwnerRequired: boolean);
     //проверяет готовность к внесению изменений в метаданные
function ExtractSubstring(const S: string; var p: Integer; Ch: Char): string;
     //выделяет подстроку, начиная с позиции p и до того,
     //как встретится символ Ch или конец строки
procedure ResetCurrentTime;
     //сбрасывает счетчик времени, используется совместно с
     //GetCurrentTimeStr
function GetCurrentTimeStr: string;
     //отображает значение счетчика времени, используется для
     // измерения времени SQL-запросов совместно с ResetCurrentTime
function GetLocalFilePath(const S: string): string;
     //возвращает локальный путь (начиная с диска)
     //к файлу на сервере, выделяя его из сетевого пути
function StrToVarcharFilter(const FieldName, CollateStr, S: string): string;
     //преобразует строку слов, разделенных пробелами,
     //в условие поиска «по одновременному вхождению», например
     //StrToVarcharFilter('TABLE1.NAME','COLLATE PXW_CYRL','Вася Пупкин')
     //вернет такой результат:
     // 'UPPER(TABLE1.NAME COLLATE PXW_CYRL) LIKE %ВАСЯ% AND'#13'+
     // 'UPPER(TABLE1.NAME COLLATE PXW_CYRL) LIKE %ПУПКИН%'
function FileVersion(const FileName: string): string;
     //возвращает версию Allegro в виде строки.

procedure DeleteDocument(const TableName: string; Doc_Id: integer);
     //удаляет документ и все его проводки из таблицы проводок и многомерных регистров.
function GetRowCount(const TableName: string): integer;
     //возвращает количество строк в таблице.
function GetDbVersion(ADatabase: TIBDatabase): integer;
     //возвращает номер версии ядра базы.
function ForceSaldoToReg(acc_id: integer): integer;
     //возвращает счет регистра для счета развернутого
     //сальдо и сам счет для обычного счета.

procedure ConnectAndCheckVersion(ADatabase: TIBDatabase; const DatabaseCaption: string);
     //проверяет версию ядра базы данных и вызывает апдейт ядра до нужной версии.
     //Следует всегда вызывать эту функцию прежде, чем работать
     //с внешней базой данных формата Allegro.
function GetUserRole(ADatabase: TIBDatabase): string;
     //возвращает роль текущего пользователя.
procedure ReconnectIfUserHasRole(ADatabase: TIBDatabase);
     //если у пользователя имеется роль, переподключается к базе с этой ролью.
function CompatibleRoots(acc_id: integer): string;
     //возвращает в виде строки перечисленные через
     //запятую внутренние номера всех регистров счетов,
     //не нарушающих баланс в корреспонденции со счетом acc_id.
function GetFilterExpression(Rubric_id: integer; ATransaction: TIBTransaction;
     InitialValues: TStrings; var rubric_class_id: integer): string;
     //возвращает условие фильтрации
     //и идентификатор id класса по внутреннему идентификатору id рубрики.


function StoredProcedureExists(const AName: string): boolean;
     //возвращает True, если хранимая процедура с именем AName
     //существует в текущей базе данных
function TableIsEmpty(const TableName: string; ATransaction: TIBTransaction): boolean;
     //возвращает True, если таблица с именем TableName пуста
     //в контексте транзакции ATransaction
procedure ViewRelatedDocuments(const main_table_name: string; Adoc_id: integer);
    //вызывает системное окно «Документов, ссылающихся на данный документ»
function ExecuteFile(const Operation, FileName, Parameters, Directory: string; ShowCmd: Integer): integer;
   //запускает файл средствами операционной системы, (вызывает функцию ShellExecute).


Система Allegro. Руководство разработчика Наверх