数据接口
接口函数列表如下:
dataSourceName#
virtual QString dataSourceName() = 0
数据源名称。系统允许存在多个数据接口插件,每个数据接口插件以数据源名称标识,名称不允许重复,相同名称的数据接口插件只保留一个。
apps#
virtual QList<APP_INFO> apps() = 0
获取表空间(应用)信息。
tables#
virtual QList<TABLE_INFO> tables(int appID) = 0
通过表空间号(应用号)获取表信息。
tables#
virtual QList<TABLE_INFO> tables(const QString& appName) = 0
通过表空间名称(应用名称)获取表信息。
fields#
virtual QList<FIELD_INFO> fields(int appID, int tableID) = 0
通过表空间号(应用号)和表号获取域信息。
fields#
virtual QList<FIELD_INFO> fields(const QString& appName, const QString& tableName) = 0
通过表空间名称(应用名称)和表名获取域信息。
records#
virtual QList<QStringList> records(int appID, int tableID, const QList<int>& fieldIdList, const QString& filter) = 0
通过给定的应用号、表号及域ID号获取表格数据。filter为过滤条件,用来实现表格数据的过滤,类似SQL的where语句。
records#
virtual QList<QStringList> records(const QString& appName, const QString& tableName, const QStringList& fieldNames, const QString& filter) = 0
通过给定的应用名、表名及域名来获取表格数据。filter为过滤条件,用来实现表格数据的过滤,类似SQL的where语句。
records#
virtual QList<QStringList> records(const QString& appName, const QString& selectSql) = 0
通过给定的应用名及SELECT语句来获取数据。
measurementValue#
virtual QString measurementValue(const QString& keyId) = 0
通过给定的关键字获取指定的量测值。此接口函数会被频繁调用,因此在实现上需尽可能提高性能。
xmlDocument#
virtual QDomDocument xmlDocument(const QString& keyId) = 0
获取给定的XML文档。
treeDocument#
virtual QDomDocument treeDocument(const QMap<int, QPair<QString, QString> >& dataSource) = 0
根据给定的信息生成XML文档。映射表中 KEY为层号,从0开始。VALUE为数据对,分别是应用名称及select语句。select检索出的结果集为2列或3列,分别为项目名、项目值、父对象项目值。
setMeasurementValue#
virtual bool setMeasurementValue(const QString& keyId, const QString& newValue) = 0
设置量测值。
pluginName#
virtual QString pluginName() = 0
插件名称
pluginVersion#
virtual QString pluginVersion() = 0
插件版本号
pluginInfo#
virtual QString pluginInfo() = 0
插件功能说明
接口开发示例
保存如下代码到头文件中,并命名为sgd_data_interface.h。
#ifndef _SGD_DATA_INTERFACE_
#define _SGD_DATA_INTERFACE_
class SGDDataInterface
{
public:
virtual ~SGDDataInterface() {}
typedef struct app_info
{
int app_id;
QString app_name_eng;
QString app_name_chn;
} APP_INFO;
typedef struct table_info
{
int appId;
QString appName;
int table_id;
QString table_name_eng;
QString table_name_chn;
} TABLE_INFO;
typedef struct field_info
{
int table_id;
int field_id;
int field_no;
QString field_name_eng;
QString field_name_chn;
} FIELD_INFO;
virtual QString dataSourceName() = 0;
virtual QList<APP_INFO> apps() = 0;
virtual QList<TABLE_INFO> tables(int appID) = 0;
virtual QList<TABLE_INFO> tables(const QString& appName) = 0;
virtual QList<FIELD_INFO> fields(int appID, int tableID) = 0;
virtual QList<FIELD_INFO> fields(const QString& appName, const QString& tableName) = 0;
virtual QList<QStringList> records(int appID, int tableID, const QList<int>& fieldIdList, const QString& filter) = 0;
virtual QList<QStringList> records(const QString& appName, const QString& tableName, const QStringList& fieldNames, const QString& filter) = 0;
virtual QList<QStringList> records(const QString& appName, const QString& selectSql) = 0;
virtual QString measurementValue(const QString& keyId) = 0;
virtual QDomDocument xmlDocument(const QString& keyId) = 0;
virtual QDomDocument treeDocument(const QMap< int, QPair<QString, QString> >& dataSource) = 0;
virtual bool setMeasurementValue(const QString& keyId, const QString& newValue) = 0;
virtual QString pluginName() = 0;
virtual QString pluginVersion() = 0;
virtual QString pluginInfo() = 0;
};
Q_DECLARE_INTERFACE(SGDDataInterface, "ePowerGraph.Plugin.SGDDataInterface/1.0");
#endif