You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
4.4 KiB
156 lines
4.4 KiB
#ifndef INITIALIZATIONUTILS_H
|
|
#define INITIALIZATIONUTILS_H
|
|
|
|
#include <QObject>
|
|
#include <typeinfo>
|
|
#include <QString>
|
|
|
|
#include "model/databaseManager/core/DatabaseManagerNames.h"
|
|
|
|
#define INIT_SINGLE(objectName, tableModel, fieldName, type, q) \
|
|
do \
|
|
{ \
|
|
objectName.fieldName = tableModel->record(q).value(#fieldName).to ## type(); \
|
|
} \
|
|
while(0)
|
|
|
|
#define INIT_SINGLE_STR(objectName, tableModel, fieldName, q) \
|
|
do \
|
|
{ \
|
|
objectName.fieldName = tableModel->record(q).value(#fieldName); \
|
|
} \
|
|
while(0) \
|
|
|
|
#define INIT_SINGLE_STR_TO_ENUM(objectName, tableModel, fieldName, convertorFunction, q) \
|
|
do \
|
|
{ \
|
|
objectName.fieldName = \
|
|
convertorFunction(tableModel->record(q).value(#fieldName).toString()); \
|
|
} \
|
|
while(0) \
|
|
|
|
#define INIT_LIST(objectName, tableModel, fieldName, Type, q) \
|
|
do \
|
|
{ \
|
|
auto _ ## fieldName = tableModel->record(q).value(#fieldName).toString().split(',', \
|
|
QString::SkipEmptyParts); \
|
|
for(int i = 0; i < _ ## fieldName.length(); ++i) \
|
|
{ \
|
|
objectName.fieldName.append(_ ## fieldName[i].to ## Type()); \
|
|
} \
|
|
} \
|
|
while(0)
|
|
|
|
#define INIT_LIST_STR(objectName, tableModel, fieldName, q) \
|
|
do \
|
|
{ \
|
|
auto _ ## fieldName = tableModel->record(q).value(#fieldName).toString().split(',', \
|
|
QString::SkipEmptyParts); \
|
|
for(int i = 0; i < _ ## fieldName.length(); ++i) \
|
|
{ \
|
|
objectName.fieldName.append(_ ## fieldName[i]); \
|
|
} \
|
|
} \
|
|
while(0) \
|
|
|
|
#define INTI_LIST_LIST(objectName, tableModel, fieldName, type, Type, q) \
|
|
do { \
|
|
auto _ ## fieldName = tableModel->record(q).value(#fieldName).toString().split(';', \
|
|
QString::SkipEmptyParts); \
|
|
for(int i = 0; i < _ ## fieldName.length(); ++i){ \
|
|
auto __ ## fieldName = _ ## fieldName[i].split(',', QString::SkipEmptyParts); \
|
|
QList<type> temp; \
|
|
for(int j = 0; j < __ ## fieldName.length(); ++j) \
|
|
{ \
|
|
temp.append(__ ## fieldName[j].to ## Type()); \
|
|
} \
|
|
objectName.fieldName.append(temp); \
|
|
temp.clear(); \
|
|
} \
|
|
} while(0)
|
|
|
|
#define GET_DATA(dbName, databaseDriver, objectName, funcName, var) \
|
|
do { \
|
|
auto databaseName = createDbName(dbName); \
|
|
databaseDriver.setDatabaseName(databaseName); \
|
|
databaseDriver.open(); \
|
|
QSqlTableModel* tableModel = new QSqlTableModel(this, databaseDriver); \
|
|
tableModel->clear(); \
|
|
Dbm ## objectName ins ## objectName; \
|
|
DbmDto ## objectName objectName ## Data; \
|
|
if(ins ## objectName.funcName(tableModel, objectName ## Data)) \
|
|
{ \
|
|
var.setValue(objectName ## Data); \
|
|
result = true; \
|
|
} \
|
|
else \
|
|
{ \
|
|
result = false; \
|
|
} \
|
|
delete tableModel; \
|
|
} while(0)
|
|
|
|
#define GET_DATA_PARAM(dbName, databaseDriver, objectName, funcName, param, var) \
|
|
do { \
|
|
auto databaseName = createDbName(dbName); \
|
|
databaseDriver.setDatabaseName(databaseName); \
|
|
databaseDriver.open(); \
|
|
QSqlTableModel* tableModel = new QSqlTableModel(this, databaseDriver); \
|
|
tableModel->clear(); \
|
|
Dbm ## objectName ins ## objectName; \
|
|
DbmDto ## objectName objectName ## Data; \
|
|
if(ins ## objectName.funcName(param, tableModel, objectName ## Data)) \
|
|
{ \
|
|
var.setValue(objectName ## Data); \
|
|
result = true; \
|
|
} \
|
|
else \
|
|
{ \
|
|
result = false; \
|
|
} \
|
|
delete tableModel; \
|
|
} while(0)
|
|
|
|
#define GET_DATA_LIST_PARAM(dbName, databaseDriver, objectName, funcName, param, var) \
|
|
do { \
|
|
auto databaseName = createDbName(dbName); \
|
|
databaseDriver.setDatabaseName(databaseName); \
|
|
databaseDriver.open(); \
|
|
QSqlTableModel* tableModel = new QSqlTableModel(this, databaseDriver); \
|
|
tableModel->clear(); \
|
|
Dbm ## objectName ins ## objectName; \
|
|
QList<DbmDto ## objectName> objectName ## Data; \
|
|
if(ins ## objectName.funcName(param, tableModel, objectName ## Data)) \
|
|
{ \
|
|
var.setValue(objectName ## Data); \
|
|
result = true; \
|
|
} \
|
|
else \
|
|
{ \
|
|
result = false; \
|
|
} \
|
|
delete tableModel; \
|
|
} while(0)
|
|
|
|
#define GET_DATA_LIST(dbName, databaseDriver, objectName, funcName, var) \
|
|
do { \
|
|
auto databaseName = createDbName(dbName); \
|
|
databaseDriver.setDatabaseName(databaseName); \
|
|
databaseDriver.open(); \
|
|
QSqlTableModel* tableModel = new QSqlTableModel(this, databaseDriver); \
|
|
tableModel->clear(); \
|
|
Dbm ## objectName ins ## objectName; \
|
|
QList<DbmDto ## objectName> objectName ## Data; \
|
|
if(ins ## objectName.funcName(tableModel, objectName ## Data)) \
|
|
{ \
|
|
var.setValue(objectName ## Data); \
|
|
result = true; \
|
|
} \
|
|
else \
|
|
{ \
|
|
result = false; \
|
|
} \
|
|
delete tableModel; \
|
|
} while(0)
|
|
|
|
#endif //INITIALIZATIONUTILS_H
|
|
|