---
title: "SetAttrType - Установить описание типа атрибута"
type: guide
api: [api7]
tags: [guide, api7, setattrtype]
sources:
  - setattrtype.html
---

*API экспортных функций > Функции работы с прикладной библиотекой  > Функции работы с атрибутами *


## SetAttrType - Установить описание типа атрибута

Пример...
Функция устарела, рекомендуется использовать ksSetAttrType.
Синтаксис:
```
int SetAttrType (double attrID,
char *libname,
AttributeType * attrType,
char * password);
Входные параметры:
attrID    - уникальный номер типа атрибута,
libName    - имя библиотеки типов атрибутов, если libname = NULL, то обрабатывается локальный атрибут текущего документа.
attrType    - Структура типа атрибута,
password    - пароль типа атрибута.
Возвращаемое значение:
уникальный номер типа атрибута    - в случае удачного завершения,
0    - в случае неудачи.
```


## SetAttrType - Пример использования

{
//создадим тип атрибута - строка
AttributeType attrType, NewAttrType; //структура типа атрибута
char nameFile[128];
reference pCol; //указатель на массив колонок
ColumnInfo parStruct; //структура для колонки
//создали массив колонок типа атрибута
pCol = CreateArray(ATTR_COLUMN_ARR,0);
//опишем единственную колонку типа STRING_ATTR_TYPE
strcpy(parStruct.header, "строка"); // заголовoк-комментарий столбца
parStruct.type = STRING_ATTR_TYPE; // тип данных в столбце - см.ниже
// дополнительный признак, который позволит отличить две переменные с одинаковым типом
parStruct.key = 0;
strcpy(parStruct.def,"линия"); // значение по умолчанию
parStruct.flagEnum =0; // режим заполнения
parStruct.fieldEnum = 0; // массив неопределенной длины перечислений (строки)
parStruct.columns = 0; / массив неопределенной длины информации о колонках для записи
AddArrayItem(pCol, -1, &parStruct, sizeof(parStruct)); //добавили колонку
//заполним структуру типа атрибута
strcpy(attrType.header,"тип строка"); // заголовoк-комментарий типа
attrType.rowsCount = 1; // кол-во строк в таблице
attrType.flagVisible = 1; // видимый/невидимый
strcpy(attrType.password,""); // пароль
attrType.columns = pCol; // массив неопределенной длины информации о колонках
//запросить имя библиотеки
if(!ChoiceFile("lta", NULL, nameFile, 128))
nameFile[0]='\0'; //будем создавать в документе
//создать тип атрибута
double numbType = CreateAttrType(&attrType, // информация о типе атрибута
nameFile); // имя библиотеки типов атрибутов
if (numbType > 1) {
char buf[128];
sprintf(buf, "numbType=%f ",numbType);
Message(buf);
}
else MessageBoxResult(); // ошибка
//заполним структуру нового типа атрибута
strcpy(attrType.header,"тип строка"); // заголовoк-комментарий типа
attrType.rowsCount = 1; // кол-во строк в таблице
attrType.flagVisible = 1; // видимый/невидимый
strcpy(attrType.password,"pass"); // пароль
attrType.columns = pCol; // массив неопределенной длины информации о колонках
SetAttrType (numbType, nameFile, &attrType, «pass»);
//удалим массив колонок
DeleteArray(pCol);
}
