201 lines
6.4 KiB
C
201 lines
6.4 KiB
C
|
#pragma once
|
|||
|
|
|||
|
#include "DPData.h"
|
|||
|
#include "ExcelOP.h"
|
|||
|
|
|||
|
#define RELATION_MN 4 //m:n<><6E>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD>
|
|||
|
#define RELATION_11 1
|
|||
|
#define RELATION_1N 2
|
|||
|
#define RELATION_N1 3
|
|||
|
#define FK_11 1 //1:1
|
|||
|
#define FK_1N 2 //1:N
|
|||
|
|
|||
|
#include <QStack>
|
|||
|
|
|||
|
|
|||
|
//typedef struct FuncInfo
|
|||
|
//{
|
|||
|
// int paraCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// int paraType[20]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// QStringList paraName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// QString name; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
// QString nameAndParastr;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
// QString callParaStr; //<2F><><EFBFBD>ò<EFBFBD><C3B2><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
|
|||
|
// FuncInfo()
|
|||
|
// {
|
|||
|
// paraCount = 0;
|
|||
|
// name = "";
|
|||
|
// paraType[20] = { 0 };
|
|||
|
// }
|
|||
|
//}ByFunction;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
class Filter;
|
|||
|
class DataRow;
|
|||
|
class FindByInterface;
|
|||
|
class DelByInterface;
|
|||
|
class SceneInfo;
|
|||
|
|
|||
|
|
|||
|
class DataClass:public DPData
|
|||
|
{
|
|||
|
Q_OBJECT
|
|||
|
Q_PROPERTY(QString displayName READ getdisplayName WRITE setdisplayName)
|
|||
|
Q_PROPERTY(QString description READ getDescription WRITE setDescription)
|
|||
|
Q_PROPERTY(QString name READ getName WRITE setName) //<2F><><EFBFBD>Ʊ<EFBFBD>ʶ
|
|||
|
Q_PROPERTY(unsigned int createVersion READ getCreateVersion WRITE setCreateVersion)
|
|||
|
Q_PROPERTY(unsigned int deleteVersion READ getdeleteVersion WRITE setDeleteVersion)
|
|||
|
Q_PROPERTY(unsigned int countType READ getCountType WRITE setCountType)
|
|||
|
Q_PROPERTY(unsigned int type READ getType WRITE setType)
|
|||
|
Q_PROPERTY(QString interalName READ getInternalName WRITE setInternalName)
|
|||
|
public:
|
|||
|
DataClass();
|
|||
|
~DataClass();
|
|||
|
|
|||
|
QString getdisplayName() const { return _strDisplayName; }
|
|||
|
void setdisplayName(QString name) { _strDisplayName = name; }
|
|||
|
QString getDescription() const { return _strDescription; }
|
|||
|
void setDescription(QString des) { _strDescription = des; }
|
|||
|
unsigned int getCreateVersion() const { return _wCreateVersion; }
|
|||
|
void setCreateVersion(unsigned int cVersion) { _wCreateVersion = cVersion; }
|
|||
|
unsigned int getdeleteVersion() const { return _wDeleteVersion; }
|
|||
|
void setDeleteVersion(unsigned int dVersion) { _wDeleteVersion = dVersion; }
|
|||
|
unsigned int getCountType() const { return _wCountType; }
|
|||
|
void setCountType(unsigned int cType) { _wCountType = cType; }
|
|||
|
void setType(unsigned int type) { _type = type; }
|
|||
|
unsigned int getType() const { return _type; }
|
|||
|
QString getInternalName() const { return _strInternalName; }
|
|||
|
void setInternalName(QString strName) { _strInternalName = strName; }
|
|||
|
|
|||
|
//<2F>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʶ<EFBFBD>Ϸ<EFBFBD><CFB7><EFBFBD>
|
|||
|
bool checkNameillegal( QString& errMsg);
|
|||
|
bool checkNameSize(int min, int max, QString& errMsg);
|
|||
|
bool checkLetter(QString& errmsg, int index); //<2F>жϵڼ<CFB5><DABC><EFBFBD><EFBFBD>ַ<EFBFBD>
|
|||
|
|
|||
|
/*<2A><><EFBFBD>汾<EFBFBD><E6B1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
bool saveSelf();
|
|||
|
|
|||
|
void saveToDao();
|
|||
|
/*<2A><><EFBFBD><EFBFBD>child<6C><64><EFBFBD><EFBFBD>*/
|
|||
|
bool addChild(DPData* newData);
|
|||
|
/*ɾ<><C9BE>һ<EFBFBD><D2BB>child<6C><64><EFBFBD><EFBFBD>*/
|
|||
|
bool deleteChild(unsigned int id);
|
|||
|
|
|||
|
/*ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
// bool deleteSelf();
|
|||
|
bool deleteFromModel(QString& result );
|
|||
|
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>*/
|
|||
|
void loadData(DBPlatformSpace::DAO* pDao);
|
|||
|
/*<2A><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
void getAllChildren(DPData* pManager = nullptr);
|
|||
|
/*<2A><><EFBFBD><EFBFBD>map<61><70><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>child*/
|
|||
|
void removeChildinDPMap();
|
|||
|
/*<2A>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ*/
|
|||
|
void removeSceneinDPMap();
|
|||
|
|
|||
|
|
|||
|
// DPData* hasSameNameChild(QString propertyName, QString name, bool add);
|
|||
|
/*<2A><>ȡ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
void getNewProperty(json& parameter, QVariantMap& valueMap);
|
|||
|
void setNewData(json& parameter);
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʶ <20><><EFBFBD><EFBFBD>T_ǰ*/
|
|||
|
void reName();
|
|||
|
/*תjson*/
|
|||
|
void toJson(json& jsonObj, bool recursive = false);
|
|||
|
/*<2A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
void setFileData(FileGenerate* generator, QStringList flag);
|
|||
|
/*<2A>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3>*/
|
|||
|
bool moveData(json& parameter, DPData* pManager);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
bool importDict(QString& result);
|
|||
|
bool exportDict();
|
|||
|
int exportTemplate();
|
|||
|
void dictToJson(json& jsonObj);
|
|||
|
//<2F><><EFBFBD>ɴ<EFBFBD><C9B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
bool generateCode( QStringList& qfileList);
|
|||
|
bool getFindByInterface();
|
|||
|
bool addFindByInterface(FindByInterface* pNew);
|
|||
|
bool delFindByInterfaceById(int id);
|
|||
|
bool updateFindByInterfaceById(json& parameter);
|
|||
|
bool getDelByInterface();
|
|||
|
bool addDelByInterface(DelByInterface* pNew);
|
|||
|
bool delDelByInterfaceById(int id);
|
|||
|
bool updateDelByInterfaceById(json& parameter);
|
|||
|
QString getWhiteBoxType();
|
|||
|
bool setWhiteBoxType(json& parameter);
|
|||
|
//<2F><><EFBFBD><EFBFBD>.NET<45>ӿ<EFBFBD>
|
|||
|
bool generateCSharpCode(QStringList& qfileList);
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
bool addScene(DPData* pNew);
|
|||
|
bool deleteScene(int id);
|
|||
|
// bool moveScene(json& parameter);
|
|||
|
bool getScene(DPData* pMng);
|
|||
|
//<2F><><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>༭
|
|||
|
bool getAllDataToJson(json& jsonObj);
|
|||
|
bool saveTableData(json& jsonObj, DPData* pModel);
|
|||
|
bool delTableData(json& jsonObj);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
static bool buildRelationship(DPData* pClass1, DPData*pClass2, QString name1, QString name2, int type, DataClass*& pNewClass);
|
|||
|
//ɾ<><C9BE><EFBFBD><EFBFBD><EFBFBD>ݹ<EFBFBD>ϵ
|
|||
|
static bool deleteRelationship(DPData* pClass1, DPData* pClass2, QString& result);
|
|||
|
static bool deleteMNrealationship(DPData* pClass1, DPData* pClass2, QString& result);
|
|||
|
/*<2A><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ*/
|
|||
|
static bool resolveDeleteResult(QString deletedResult);
|
|||
|
|
|||
|
//ɸѡ<C9B8><D1A1><EFBFBD><EFBFBD>
|
|||
|
int filterData(QString filterStr, json& jsonObj);
|
|||
|
void doFilter( json& jsonRet);
|
|||
|
int getFieldType(QString field);
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>c#<23>ӿڴ<D3BF><DAB4>루2023.10<EFBFBD><EFBFBD>
|
|||
|
//bool generateCSharpCode(QStringList& qfileList);
|
|||
|
//bool generateHeadfile(QString& file, QString path);
|
|||
|
//bool generateSrcfile(QString& file, QString path);
|
|||
|
//void generateFindbyFunction(QString& con);
|
|||
|
//void generateDelbyFunction(QString& con);
|
|||
|
//void generateSaveDelselfFunc(QString& con);
|
|||
|
//void generateLoadFunc(QString& con);
|
|||
|
//void generateSavetoDaoFunc(QString& con);
|
|||
|
//DPData* getAttributeById(int id);
|
|||
|
|
|||
|
//QStringList _delbyParas;
|
|||
|
|
|||
|
//QList<ByFunction*> _findbyFuncs;
|
|||
|
//QList<ByFunction*> _delbyFuncs;
|
|||
|
|
|||
|
QString _tableName; //[20230915<31><35><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>༭ģ<E0BCAD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>]
|
|||
|
|
|||
|
QString _strDisplayName; //<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|||
|
QString _strDescription; //<2F><><EFBFBD><EFBFBD>
|
|||
|
unsigned int _wCreateVersion = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD>汾
|
|||
|
unsigned int _wDeleteVersion = 0; //ɾ<><C9BE><EFBFBD>汾
|
|||
|
QString _strInternalName; //<2F>ڲ<EFBFBD><DAB2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
unsigned int _wCountType = 0; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
int _type = 0; //1<><31>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2<><32>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QList<QString> _relTableName; //<2F><>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
|
|||
|
QList<QString> _fkTableName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD>
|
|||
|
QList<QString> _fkTypeName; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
|||
|
int _version = 0;
|
|||
|
// QList<QStringList> _dictionaryData; //<2F><><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QMap<int, FindByInterface*> _findByMap; //<2F><>ѯ<EFBFBD>ӿ<EFBFBD>list
|
|||
|
QMap<int, DelByInterface*> _delByMap;//ɾ<><C9BE><EFBFBD>ӿ<EFBFBD>list
|
|||
|
QMap<int, SceneInfo*> _sceneMap; //<2F><><EFBFBD><EFBFBD>map
|
|||
|
bool _initAttriute = false;
|
|||
|
bool _initScene = false;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QList<DataRow*> tableData;
|
|||
|
QStack<Filter*> filterItems; //<2F>洢ǰ<E6B4A2>˼<EFBFBD><CBBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
QStack<QString> opStack;
|
|||
|
QStack<bool> midResultStack; //<2F>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϽ<D0B6><CFBD><EFBFBD>
|
|||
|
int colnum = 0;
|
|||
|
QMap<QString, int> colType; //<2F>ֶ<EFBFBD><D6B6><EFBFBD>--<2D><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
protected:
|
|||
|
private:
|
|||
|
ExcelOP excel;
|
|||
|
|
|||
|
};
|