#include "zxLogInstance.h" #include "ZxDataProject.h" #include "ZxDataWell.h" #include "nmDataDemo.h" #include "nmDataUtils.h" nmDataUtils::nmDataUtils() { } nmDataUtils::~nmDataUtils() { } bool nmDataUtils::extendChildrenOfProj(ZxDataProject* pDataProj) { Q_ASSERT (NULL != pDataProj); /* 如下代码只是参照,请根据具体需求咨询框架负责人员后进行处理 pDataObj->clearChildren(iDataModelType::sTypePvtInfo); // load Job PVTs QString sSql = "Select PvtID, PvtName, JobID from V_PVT_INFO"; sSql += QString(" order by PvtID"); VVecVariant vvec; QString sLog = ""; if (_load(sSql, vvec, sLog, false, true)) { for (int i = 0; i < vvec.count(); i++) { ZxDataPvtInfo* p = new ZxDataPvtInfo(); Q_ASSERT (NULL != p); p->setCode(vvec.at(i).at(0).toString()); p->setName(vvec.at(i).at(1).toString()); p->setJobID(vvec.at(i).at(2).toString()); p->createChildren(); appendChild(p); p->setLoaded(false); } } else if (!sLog.isEmpty()) { zxLogRunW(QObject::tr("Failed to load PVTInfo with \r\n '%1'").arg(sLog)); return false; }//*/ return true; } bool nmDataUtils::extendChildrenOfWell(ZxDataWell* pDataWell) { Q_ASSERT (NULL != pDataWell); // 此处仅仅以获取样表举例 Alias="n数值样例数据表" Name="N_DATA_DEMO" QString sWellCode = pDataWell->getCode(); QString sSql = "Select distinct ID from N_DATA_DEMO"; sSql += QString(" where WellCode = '%1'").arg(sWellCode); sSql += QString(" order by ID"); VVecVariant vvec; QString sLog = ""; if (pDataWell->loadData(sSql, vvec, sLog, false)) { for (int i = 0; i < vvec.count(); i++) { nmDataDemo* p = new nmDataDemo(); Q_ASSERT (NULL != p); p->setCode(vvec.at(i).at(0).toString()); p->setWellCode(sWellCode); pDataWell->appendChild(p); } } else if (!sLog.isEmpty()) { zxLogRunW(QObject::tr("Failed to load nmDataDemo with \r\n '%1'").arg(sLog)); return false; } return true; } bool nmDataUtils::convertVP2Ba(QVector &points, QByteArray& byteArray) { // 创建一个 QDataStream,用于将数据写入 QByteArray QDataStream stream(&byteArray, QIODevice::WriteOnly); // 写入 QVector 的大小 stream << points.size(); // 将 QVector 的每个 QPointF 写入到 QDataStream for (int i = 0; i < points.size(); i++) { stream << points[i]; } return true; } bool nmDataUtils::convertBa2VP(QByteArray &byteArray, QVector& points) { QDataStream stream(&byteArray, QIODevice::ReadOnly); int size; stream >> size; for (int i = 0; i < size; ++i) { QPointF point; stream >> point; points.append(point); } // 现在 points 包含了反序列化的数据 return true; }