From 118e3346ef3b41000c7d2518f688719708c49f7d Mon Sep 17 00:00:00 2001 From: knorr Date: Tue, 9 Dec 2008 01:45:55 +0800 Subject: [PATCH] =?utf8?q?=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D1=8B=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D1=8B=20GetAttrType=20=D0=B2=20=D1=80=D0=B0=D1=81=D1=88=D0=B8=D0=B8=D1=80=D0=B5=D0=BD=D0=B8=D0=B5=20Meta?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/extensions/meta/aext_meta.cpp | 59 +++++++++++++++++++++++++++++++++++++ src/extensions/meta/aext_meta.h | 4 ++- 2 files changed, 62 insertions(+), 1 deletions(-) diff --git a/src/extensions/meta/aext_meta.cpp b/src/extensions/meta/aext_meta.cpp index 09cc1b7..d848dce 100644 --- a/src/extensions/meta/aext_meta.cpp +++ b/src/extensions/meta/aext_meta.cpp @@ -377,5 +377,64 @@ QStringList AExtMeta::GetUserFields( aObject * aobj, QString table ) return GetUserFields( db->cfg.attr(aobj->obj, mda_name), table ); } +/** + * \en + * \_en + * \ru + * \brief Возвращает тип пользовательского поля объекта + * + * \param name - Полное имя объекта, см описание GetId() + * \param attr - название атрибута + * \param table - необязательный, таблица объекта (для документов) + * \return тип атрибута, например "O 115" + * + * Пример использования + * \code + * meta = new Meta(); + * type = meta.GetAttrType("Catalogue.Товары", "Наименование"); + * \endcode + * \_ru + */ +QString AExtMeta::GetAttrType(QString name, QString attr, QString table) +{ + aCfgItem obj; + if( !GetId(name) ) return ""; + obj = db->cfg.find( GetId(name) ); + if(!table.isEmpty()) + { + obj = db->cfg.objTable( obj, db->cfg.id(db->cfg.findName(obj, md_table, table)) ); + } + else + { + obj = db->cfg.objTable( GetId(name), 0 ); + } + obj = db->cfg.findName(obj, "fake", attr); + return db->cfg.attr(obj, mda_type); +} + +/** + * \en + * \_en + * \ru + * \brief Возвращает тип пользовательского поля объекта + * + * \param obj - объект, тип атрибута которого надо получить + * \param attr - название атрибута + * \param table - необязательный, таблица объекта (для документов) + * \return тип атрибута, например "O 115" + * + * Пример использования + * \code + * cat = new Catalogue("Номенклатура"); + * meta = new Meta(); + * type = meta.GetAttrType(cat, "Наименование"); + * \endcode + * \_ru + */ +QString AExtMeta::GetAttrType(aObject * aobj, QString attr, QString table) +{ + return GetAttrType( db->cfg.attr(aobj->obj, mda_name), attr, table ); +} + typedef AExtensionPlugin AExtMetaPlugin; A_EXPORT_PLUGIN( AExtMetaPlugin ) diff --git a/src/extensions/meta/aext_meta.h b/src/extensions/meta/aext_meta.h index 67cd990..150808c 100644 --- a/src/extensions/meta/aext_meta.h +++ b/src/extensions/meta/aext_meta.h @@ -77,7 +77,9 @@ public slots: int GetId( QString& name ); int GetId( aObject * obj ); QStringList GetUserFields( QString name, QString table = QString::null ); - QStringList GetUserFields( aObject * obj, QString table = QString::null ); + QStringList GetUserFields( aObject * obj, QString table = QString::null ); + QString GetAttrType(QString name, QString attr, QString table = QString::null); + QString GetAttrType(aObject *obj, QString attr, QString table = QString::null); }; -- 1.7.1