ОИ для работы с внешними атрибутами (в. 711)

База знаний

Модераторы: m0p3e, edward_K, Модераторы

Ответить
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

ОИ для работы с внешними атрибутами (в. 711)

Сообщение Max_Fin »

Код: Выделить всё

/*
 ╔═══════════════════════════════════════════════════════════════════════════╗
 ║                     (c) 1994,2002 корпорация ГАЛАКТИКА                    ║
 ║ Проект        : ГАЛАКТИКА                                                 ║
 ║ Система       : Общая функциональность                                    ║
 ║ Версия        : 5.8                                                       ║
 ║ Назначение    : Функции для работы с внешними атрибутами документов       ║
 ║ Ответственный : Пстыга Михаил Васильевич                                  ║
 ╚═══════════════════════════════════════════════════════════════════════════╝
  Параметры:
    _wTable      - co-код Таблицы
    _Name        - наименование атрибута
    _cAttrNam    -  код аттрибута
    _cRec        - ссылка на запись в таблице
    _AttrType    - Тип значения атрибута
	  доступны типы
       cgAttrType_Str    = 0;   // 0 -  STRING [80]
       cgAttrType_Dbl    = 1;   // 1 -  DOUBLE
       cgAttrType_Date   = 2;   // 2 -  DATE
       cgAttrType_Time   = 3;   // 3 -  TIME
       cgAttrType_Memo   = 4;   // 4 -  MEMO

    _NeedMessage - выдавать сообщение об ошибке

  //////////////////////// ВНЕШНИЕ АТРИБУТЫ ///////////////////////////
  // для получения значения внешнего атрибута можно использовать Паскалевские функции
  // xTxoGetExtAttr, где x = {s -string,do -double, d -date, t -time},
  // не забывая заключать их в скобки InitServTXO/DoneServTXO

  Могут пригодиться:
    aAttrCm.vpp - обработка событий cmPickAttr, cmPickClass
    aAttrMn.vpp - пункты локального меню
*/


#ifndef _ExtAttr_Func
#define _ExtAttr_Func

//**************************************************************
// атрибуты документов
ObjInterface objExtAttr;

!------------------------------------------------------------------------------
!   Набор функций для создания атрибута, получения ID, показа ошибки
 // Возвращает ссылку на внешний аттрибут если существует, если не найден - создает
  Function CreateAttr ( _wTable : word; _Name : string; _Type : word ) : comp ;
 // Возвращает ID (NRec) атрибута по коду таблицы и нименованию. 0 - не найден
  Function AttrID  ( _wTable : word;  _Name : string ) : comp ;
 // Возвращает тип атрибута по коду таблицы и нименованию. 13 - не найден
  Function AttrType  ( _wTable : word;  _Name : string ) : word ;
  // Возвращает true, если у записи с номером _cRec таблицы с кодом _wTable
  // существует значение внешнего атрибута с именем _Name
  function ValueExists(_wTable : word; _cRec: comp; _Name: string): boolean;
  // Возвращает true, если у записи с номером _cRec таблицы с кодом _wTable
  // существует значение внешнего атрибута с номером _cAttrNam
  function ValueExistsID(_wTable : word; _cRec: comp; _cAttrNam: comp): boolean;
  // Удалить значение внешнего атрибута с именем _Name у у записи с номером _cRec
  // таблицы с кодом _wTable
  function DeleteValue(_wTable : word; _cRec: comp; _Name: string): integer;
  // Удалить значение внешнего атрибута с номером _cAttrNam у записи с номером _cRec
  // таблицы с кодом _wTable
  function DeleteValueID(_wTable : word; _cRec: comp; _cAttrNam: comp): integer;
 // Установить требование автоматического выдачи сообщения при ошибке; Возвращает предыдущее значение
  Function SetNeedMessage ( _NeedMessage : boolean ) : boolean;
 // Выдать сообщение об ошибке
  Procedure ShowError (_err : word);
 // получить номер последней ошибки
  Function LastError : word ;


!------------------------------------------------------------------------------
!   Набор функций для извлечения содержания внешних аттрибутов для различных типов
// Функции возвращают значение внешнего аттрибута по коду таблицы, имени атрибута и nRec-ку записи
// для разных типов атрибута.
// sGetAttr - возвращает строку для всех типов, преобразовав тип в строку
  function sGetAttr (_wTable : word; _cRec : comp; _Name : string) : string;
  function doGetAttr(_wTable : word; _cRec : comp; _Name : string) : double;
  function dGetAttr (_wTable : word; _cRec : comp; _Name : string) : date;
  function tGetAttr (_wTable : word; _cRec : comp; _Name : string) : time;
  function mGetAttr (_wTable : word; _cRec : comp; _Name : string) : string;   // извлечь из мемо-поля строку

// Функции возвращают значение внешнего аттрибута по коду таблицы, коду атрибута и nRec-ку записи
// для разных типов атрибута.
// sGetAttrID - возвращает строку для всех типов, преобразовав тип в строку
  function sGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : string;
  function doGetAttrID(_wTable : word;  _cRec : comp; _cAttrNam : comp) : double;
  function dGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : date;
  function tGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : time;
  function mGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : string;  // извлечь из мемо-поля строку


!------------------------------------------------------------------------------
!   Набор функций для установки содержания внешних аттрибутов для различных типов
// Функции устанавливает значение внешнего аттрибута по коду таблицы, имени атрибута и nRec-ку записи
// для разных типов атрибута.
// !!! Если атрибут не найден, то он создается !!!
// Возвращает true - успешно, false - ошибка
  function sSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : string) : boolean;
  function doSetAttr(_wTable : word; _cRec : comp; _Name : string; _Val : double) : boolean;
  function dSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : date)   : boolean;
  function tSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : time)   : boolean;
  function mSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : string) : boolean;  // записать в мемо-поле строку

// Функции устанавливает значение внешнего аттрибута по коду таблицы, ID атрибута и nRec-ку записи
// для разных типов атрибута.  Возвращает true - успешно, false - ошибка
  function sSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : string) : boolean;
  function doSetAttrID(_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : double) : boolean;
  function dSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : date)   : boolean;
  function tSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : time)   : boolean;
  function mSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : string) : boolean;  // записать в мемо-поле строку


//------------------------------------------------------------------------------
//   Набор функций для удаления, перемещения и копирования атрибутов

 // копирование атрибутов
  Function CopyAllAttr ( _wTableFrom: word; _cRecFrom: comp;  _cRecTo: comp ) : boolean;

 // копирование атрибутов, возможно для разных таблиц. Если атрибут для цели в AttrNam не существует, то он создается.
  Function CopyAllAttrEx ( _wTableFrom: word; _cRecFrom: comp; _wTableTo: word; _cRecTo: comp ) : boolean;

  // удаление всех значений внеш.атрибутов (при удалении записи в таблице)
  function DeleteAllAttr (_wTable: word; _cRec: comp) : boolean;

  // перенос от старой записи к новой (откуда-куда)
  function MoveAllAttr (_wTable: word; _cRecFrom: comp; _cRecTo : comp): boolean;

  // просмотр/редактирование значения внешнего атрибута в интерфейсе
  function Pick (_CanEdit: boolean; _wTable: word; _cRec: comp): boolean;

End;


VipInterface iExtAttr implements objExtAttr;

#end
Max_Fin
На пенсии
Сообщения: 797
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г. Тюмень
Контактная информация:

GAL8.00 oper02fix02

Сообщение Max_Fin »

Код: Выделить всё

/*
 ╔═══════════════════════════════════════════════════════════════════════════╗
 ║                     (c) 1994,2002 корпорация ГАЛАКТИКА                    ║
 ║ Проект        : ГАЛАКТИКА                                                 ║
 ║ Система       : Общая функциональность                                    ║
 ║ Версия        : 5.8                                                       ║
 ║ Назначение    : Функции для работы с внешними атрибутами документов       ║
 ║ Ответственный : Пстыга Михаил Васильевич                                  ║
 ╚═══════════════════════════════════════════════════════════════════════════╝
  Параметры:
    _wTable      - co-код Таблицы
    _Name        - наименование атрибута
    _cAttrNam    - код аттрибута
    _cRec        - ссылка на запись в таблице
    _AttrType    - Тип значения атрибута
    доступны типы
       cgAttrType_Str    = 0;   // 0 -  STRING [80]
       cgAttrType_Dbl    = 1;   // 1 -  DOUBLE
       cgAttrType_Date   = 2;   // 2 -  DATE
       cgAttrType_Time   = 3;   // 3 -  TIME
       cgAttrType_Memo   = 4;   // 4 -  MEMO
       cgAttrType_Comp   = 5;   // 5 -  COMP

    _NeedMessage - выдавать сообщение об ошибке

  //////////////////////// ВНЕШНИЕ АТРИБУТЫ ///////////////////////////
  // для получения значения внешнего атрибута можно использовать Паскалевские функции
  // xTxoGetExtAttr, где x = {s -string,do -double, d -date, t -time},
  // не забывая заключать их в скобки InitServTXO/DoneServTXO

  Могут пригодиться:
    aAttrCm.vpp - обработка событий cmPickAttr, cmPickClass
    aAttrMn.vpp - пункты локального меню
*/


#ifndef _ExtAttr_Func
#define _ExtAttr_Func

#ifdef ComponentVersion
#component "C_ExtClass"
#end

//**************************************************************
// атрибуты документов
ObjInterface objExtAttr;

!------------------------------------------------------------------------------
!   Набор функций для создания атрибута, получения ID, показа ошибки
 // Возвращает ссылку на внешний аттрибут если существует, если не найден - создает
  Function CreateAttr ( _wTable : word; _Name : string; _Type : word ) : comp ;
 // Возвращает ID (NRec) атрибута по коду таблицы и нименованию. 0 - не найден
  Function AttrID  ( _wTable : word;  _Name : string ) : comp ;
 // Возвращает тип атрибута по коду таблицы и нименованию. 13 - не найден
  Function AttrType  ( _wTable : word;  _Name : string ) : word ;
  // Возвращает наименование аттрибута по его ID (NRec)
  Function AttrName(_cRec: comp): string;
  // Возвращает true, если у записи с номером _cRec таблицы с кодом _wTable
  // существует значение внешнего атрибута с именем _Name
  function ValueExists(_wTable : word; _cRec: comp; _Name: string): boolean;
  // Возвращает true, если у записи с номером _cRec таблицы с кодом _wTable
  // существует значение внешнего атрибута с номером _cAttrNam
  function ValueExistsID(_wTable : word; _cRec: comp; _cAttrNam: comp): boolean;
  // Удалить значение внешнего атрибута с именем _Name у у записи с номером _cRec  таблицы с кодом _wTable
  function DeleteValue(_wTable : word; _cRec: comp; _Name: string): integer;
  // Удалить значение внешнего атрибута с номером _cAttrNam у записи с номером _cRec таблицы с кодом _wTable
  function DeleteValueID(_wTable : word; _cRec: comp; _cAttrNam: comp): integer;
 // Установить требование автоматического выдачи сообщения при ошибке; Возвращает предыдущее значение
  Function SetNeedMessage ( _NeedMessage : boolean ) : boolean;
 // Выдать сообщение об ошибке
  Procedure ShowError (_err : word);
 // получить номер последней ошибки
  Function LastError : word ;

#ifdef _AttrValComp_
 // Создает внешний аттрибут с типом Comp. Если существует - возвращает ссылку.
  Function CreateAttrComp ( _wTable : word; _Name : string; _Type : word; _SysNumKau : word; _KodKau : word) : comp;
//  параметры:
// *** _SysNumKau  - системный номер аналитики. Доступны константы
//  cgKatKau_Table    = 0;      // системные
//  cgKatKau_User     = 1;      // пользовательские
//  cgKatKau_System   = 100;    // системные каталоги не являющиеся аналитикой (любая таблица Галактики)
// *** _KodKau - код аналитики для _SysNumKau=0 или 1. Или код таблицы для _SysNumKau=100

// Возвращает код КАУ(или код таблицы) по ID атрибута
  Function AttrCompKodKau ( _cAttrNam: comp) : word;
// Возвращает системный номер КАУ по ID атрибута
  Function AttrCompSysNumKau ( _cAttrNam: comp) : word;
#end

!------------------------------------------------------------------------------
!   Набор функций для извлечения содержания внешних аттрибутов для различных типов
// Функции возвращают значение внешнего аттрибута по коду таблицы, имени атрибута и nRec-ку записи
// для разных типов атрибута.
// sGetAttr - возвращает строку для всех типов, преобразовав тип в строку
  function sGetAttr (_wTable : word; _cRec : comp; _Name : string) : string;
  function doGetAttr(_wTable : word; _cRec : comp; _Name : string) : double;
  function dGetAttr (_wTable : word; _cRec : comp; _Name : string) : date;
  function tGetAttr (_wTable : word; _cRec : comp; _Name : string) : time;
  function mGetAttr (_wTable : word; _cRec : comp; _Name : string) : string;   // извлечь из мемо-поля строку
#ifdef _AttrValComp_
  function coGetAttr(_wTable : word; _cRec : comp; _Name : string) : comp;
#end

// Функции возвращают значение внешнего аттрибута по коду таблицы, коду атрибута и nRec-ку записи
// для разных типов атрибута.
// sGetAttrID - возвращает строку для всех типов, преобразовав тип в строку
  function sGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : string;
  function doGetAttrID(_wTable : word;  _cRec : comp; _cAttrNam : comp) : double;
  function dGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : date;
  function tGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : time;
  function mGetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp) : string;  // извлечь из мемо-поля строку
#ifdef _AttrValComp_
  function coGetAttrID(_wTable : word;  _cRec : comp; _cAttrNam : comp) : comp;
#end


!------------------------------------------------------------------------------
!   Набор функций для установки содержания внешних аттрибутов для различных типов
// Функции устанавливает значение внешнего аттрибута по коду таблицы, имени атрибута и nRec-ку записи
// для разных типов атрибута.
// !!! Если атрибут не найден, то он создается !!!
// Возвращает true - успешно, false - ошибка
  function sSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : string) : boolean;
  function doSetAttr(_wTable : word; _cRec : comp; _Name : string; _Val : double) : boolean;
  function dSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : date)   : boolean;
  function tSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : time)   : boolean;
  function mSetAttr (_wTable : word; _cRec : comp; _Name : string; _Val : string) : boolean;  // записать в мемо-поле строку
#ifdef _AttrValComp_
  function coSetAttr(_wTable : word; _cRec : comp; _Name : string; _Val : comp; _ValStr : string) : boolean;
#end

// Функции устанавливает значение внешнего аттрибута по коду таблицы, ID атрибута и nRec-ку записи
// для разных типов атрибута.  Возвращает true - успешно, false - ошибка
  function sSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : string) : boolean;
  function doSetAttrID(_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : double) : boolean;
  function dSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : date)   : boolean;
  function tSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : time)   : boolean;
  function mSetAttrID (_wTable : word;  _cRec : comp; _cAttrNam : comp; _Val : string) : boolean;  // записать в мемо-поле строку
#ifdef _AttrValComp_
  function coSetAttrID(_wTable : word; _cRec : comp; _cAttrNam : comp; _Val : comp; _ValStr : string) : boolean;
#end


//------------------------------------------------------------------------------
//   Набор функций для удаления, перемещения и копирования атрибутов

 // копирование атрибутов
  Function CopyAllAttr ( _wTableFrom: word; _cRecFrom: comp;  _cRecTo: comp ) : boolean;

 // копирование атрибутов, возможно для разных таблиц. Если атрибут для цели в AttrNam не существует, то он создается.
  Function CopyAllAttrEx ( _wTableFrom: word; _cRecFrom: comp; _wTableTo: word; _cRecTo: comp ) : boolean;

  // удаление всех значений внеш.атрибутов (при удалении записи в таблице)
  function DeleteAllAttr (_wTable: word; _cRec: comp) : boolean;

  // перенос от старой записи к новой (откуда-куда)
  function MoveAllAttr (_wTable: word; _cRecFrom: comp; _cRecTo : comp): boolean;

  // просмотр/редактирование значения внешнего атрибута в интерфейсе
  function Pick (_CanEdit: boolean; _wTable: word; _cRec: comp): boolean;

#ifdef _AttrValComp_
  // Модификация названия внешнего атрибута (для _isCreateAttr=True: если не найден - создаст)
  function ReNameAttr (_wTable : word; _Name : string; _Type : word; _SysNumKau : word; _KodKau : word; _NameNew : string; _isCreateAttr : boolean) : comp ;
#end
  // удаление внеш.атрибута по его имени и типу
  function DeleteAttr (_wTable: word; _Name : string; _Type : word) : boolean;

End;


VipInterface iExtAttr implements objExtAttr;

#end

Жду выхода Вселенная 2.12!
Ответить