919 lines
31 KiB
C++
919 lines
31 KiB
C++
// TdChannel.cpp: implementation of the CTdChannel class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#include "geomative.h"
|
|
#include "TdChannel.h"
|
|
|
|
#include "MediumQ.h"
|
|
#include "Rsp2DTdRecord.h"
|
|
#include "RspCETdRecord.h"
|
|
#include "Rsp3DTdRecord.h"
|
|
|
|
#include "Ipsp3DTdRecord.h"
|
|
#include "Ipsp2DTdRecord.h"
|
|
#include "IpspCETdRecord.h"
|
|
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[]=__FILE__;
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
|
|
//////////////////////////////////////////////////////////////////////
|
|
// Construction/Destruction
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
CTdChannel::CTdChannel(DWORD dwScID, int iChNum, _ConnectionPtr& pConnection)
|
|
{
|
|
this->m_dwScID = dwScID;
|
|
this->m_iChNum = iChNum;
|
|
|
|
m_dwID = (int)VAL_ZERO;
|
|
|
|
m_iEAmount = (int)VAL_ZERO;
|
|
m_iMaxLevel = (int)VAL_ZERO;
|
|
|
|
m_pConnection = pConnection;
|
|
m_pMedium = NULL;
|
|
m_tdRecArray.RemoveAll();
|
|
// m_tdRecArray.SetSize(20480);
|
|
m_fMaxR0 = (float)VAL_ZERO;
|
|
m_fMinR0 = (float)VAL_ZERO;
|
|
|
|
m_fScaleR0 = (float)VAL_ZERO;
|
|
|
|
m_fMaxDepth = (float)VAL_ZERO;
|
|
}
|
|
|
|
CTdChannel::~CTdChannel()
|
|
{
|
|
|
|
}
|
|
|
|
BOOL CTdChannel::Load3DScriptFromDB()
|
|
{
|
|
_RecordsetPtr pRecCh = NULL;
|
|
_RecordsetPtr pRecSpt3D = NULL;
|
|
|
|
CString szSql = _T("");
|
|
|
|
CRsp3DTdRecord* pRsp3DTdRecord = NULL;
|
|
|
|
DWORD dwChID = (DWORD)VAL_ZERO;
|
|
|
|
pRecCh.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select ID from channel where SCID = %u and CHnumber = %d"), m_dwScID, m_iChNum);
|
|
pRecCh->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
if ((long)VAL_ZERO != pRecCh->GetRecordCount())
|
|
{
|
|
dwChID = (DWORD)pRecCh->GetCollect(_T("ID")).ulVal;
|
|
}
|
|
pRecCh->Close();
|
|
|
|
pRecSpt3D.CreateInstance(_uuidof(Recordset));
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,C1,C2,P1,P2,K,N from Script3d where CHID = %u order by TSN"), dwChID);
|
|
|
|
pRecSpt3D->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecSpt3D->adoEOF)
|
|
{
|
|
pRsp3DTdRecord = new CRsp3DTdRecord(this->m_dwID, this->m_pConnection);
|
|
pRsp3DTdRecord->m_iTsn = (int)pRecSpt3D->GetCollect(_T("TSN")).lVal;
|
|
pRsp3DTdRecord->m_iC1 = (int)pRecSpt3D->GetCollect(_T("C1")).iVal;
|
|
pRsp3DTdRecord->m_iC2 = (int)pRecSpt3D->GetCollect(_T("C2")).iVal;
|
|
pRsp3DTdRecord->m_iP1 = (int)pRecSpt3D->GetCollect(_T("P1")).iVal;
|
|
pRsp3DTdRecord->m_iP2 = (int)pRecSpt3D->GetCollect(_T("P2")).iVal;
|
|
pRsp3DTdRecord->m_fK = (float)pRecSpt3D->GetCollect(_T("K")).fltVal;
|
|
pRsp3DTdRecord->m_iN = (int)pRecSpt3D->GetCollect(_T("N")).iVal;
|
|
pRsp3DTdRecord->m_fR0 = (float)VAL_ZERO;
|
|
pRsp3DTdRecord->m_fI = (float)VAL_ZERO;
|
|
pRsp3DTdRecord->m_fV = (float)VAL_ZERO;
|
|
pRsp3DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pRsp3DTdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pRsp3DTdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRsp3DTdRecord->m_iC1, pRsp3DTdRecord->m_iC2, pRsp3DTdRecord->m_iP1, pRsp3DTdRecord->m_iP2);
|
|
pRsp3DTdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRsp3DTdRecord->m_iC1, pRsp3DTdRecord->m_iC2, pRsp3DTdRecord->m_iP1, pRsp3DTdRecord->m_iP2);
|
|
this->m_tdRecArray.Add((void*)pRsp3DTdRecord);
|
|
pRecSpt3D->MoveNext();
|
|
}
|
|
pRecSpt3D->Close();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::Load2DScriptFromDB()
|
|
{
|
|
_RecordsetPtr pRecCh = NULL;
|
|
_RecordsetPtr pRecSpt2D = NULL;
|
|
|
|
CString szSql = _T("");
|
|
|
|
CRsp2DTdRecord* pRsp2DTdRecord = NULL;
|
|
|
|
DWORD dwChID = (DWORD)VAL_ZERO;
|
|
|
|
pRecCh.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select ID from channel where SCID = %u and CHnumber = %d"), m_dwScID, m_iChNum);
|
|
pRecCh->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
if ((long)VAL_ZERO != pRecCh->GetRecordCount())
|
|
{
|
|
dwChID = (DWORD)pRecCh->GetCollect(_T("ID")).ulVal;
|
|
}
|
|
pRecCh->Close();
|
|
|
|
pRecSpt2D.CreateInstance(_uuidof(Recordset));
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,C1,C2,P1,P2,K,N from Script2d where CHID = %u order by TSN"), dwChID);
|
|
|
|
pRecSpt2D->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecSpt2D->adoEOF)
|
|
{
|
|
pRsp2DTdRecord = new CRsp2DTdRecord(this->m_dwID, this->m_pConnection);
|
|
pRsp2DTdRecord->m_iTsn = (int)pRecSpt2D->GetCollect(_T("TSN")).lVal;
|
|
pRsp2DTdRecord->m_iC1 = (int)pRecSpt2D->GetCollect(_T("C1")).iVal;
|
|
pRsp2DTdRecord->m_iC2 = (int)pRecSpt2D->GetCollect(_T("C2")).iVal;
|
|
pRsp2DTdRecord->m_iP1 = (int)pRecSpt2D->GetCollect(_T("P1")).iVal;
|
|
pRsp2DTdRecord->m_iP2 = (int)pRecSpt2D->GetCollect(_T("P2")).iVal;
|
|
pRsp2DTdRecord->m_fK = (float)pRecSpt2D->GetCollect(_T("K")).fltVal;
|
|
pRsp2DTdRecord->m_iN = (int)pRecSpt2D->GetCollect(_T("N")).iVal;
|
|
pRsp2DTdRecord->m_fR0 = (float)VAL_ZERO;
|
|
pRsp2DTdRecord->m_fI = (float)VAL_ZERO;
|
|
pRsp2DTdRecord->m_fV = (float)VAL_ZERO;
|
|
pRsp2DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pRsp2DTdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pRsp2DTdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
pRsp2DTdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
this->m_tdRecArray.Add((void*)pRsp2DTdRecord);
|
|
pRecSpt2D->MoveNext();
|
|
}
|
|
pRecSpt2D->Close();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CTdChannel::SetColorToTdRec(CRsp2DTdRecord* pRsp2DTdRecord)
|
|
{
|
|
int iIndex = (int)VAL_ZERO;
|
|
int iColorIndex = (int)VAL_ZERO;
|
|
|
|
COLORREF aColor[15]={RGB(0,0,0xFF),RGB(0,0x33,0xFF),RGB(0,0x66,0xFF),RGB(0,0x88,0xFF),RGB(0,0xCF,0xFE),RGB(0,0xFE,0xFF),RGB(0,0xFE,0x99),RGB(0,0xFE,0x33),RGB(0x99,0xFE,0),RGB(0xFF,0xFE,0),RGB(0xFE,0xCC,0),RGB(0xFE,0x98,0),RGB(0xFE,0x66,0),RGB(0xFE,0x33,0),RGB(0xFF,0,0)};
|
|
|
|
pRsp2DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
if (0 == pRsp2DTdRecord->m_fR0)
|
|
{
|
|
return;
|
|
}
|
|
//在这里SetMaxR0AndMinR0的函数已经添加到LoadRsp2DTdData中去了,也就是在加载2D数据的时候就已经获取到
|
|
//这个任务的R0的最大值和最小值,所以此时再数据在去比较的时候就不会跳转到SetMaxR0AndMinR0为真的函数结构中去了
|
|
//实际就全部走下面的else的分支,如果其它的数据需要显示剖面图的话,那么也需要在加载数据的时候调用etMaxR0AndMinR0
|
|
//来预先获得RO的最大值和最小值
|
|
if (SetMaxR0AndMinR0(pRsp2DTdRecord->m_fR0) == TRUE)
|
|
{
|
|
//这里完全属于冗余切会导致运算N*N次,N为测点数,所以这里不应该跳转到
|
|
if (m_fMaxR0 == m_fMinR0)
|
|
{
|
|
((CRsp2DTdRecord*)this->m_tdRecArray.GetAt(iIndex))->m_colorREF = aColor[8];
|
|
}
|
|
else
|
|
{
|
|
m_fScaleR0 = (m_fMaxR0-m_fMinR0)/15;
|
|
}
|
|
|
|
iIndex = (int)VAL_ZERO;
|
|
while ((iIndex < this->m_tdRecArray.GetSize()) && ((int)VAL_ZERO != m_fScaleR0))
|
|
{
|
|
|
|
if (0 != ((CRsp2DTdRecord*)this->m_tdRecArray.GetAt(iIndex))->m_fR0)
|
|
{
|
|
iColorIndex = (int)floor((((CRsp2DTdRecord*)this->m_tdRecArray.GetAt(iIndex))->m_fR0-m_fMinR0)/m_fScaleR0);
|
|
if (iColorIndex > 14)
|
|
{
|
|
iColorIndex = 14;
|
|
}
|
|
((CRsp2DTdRecord*)this->m_tdRecArray.GetAt(iIndex))->m_colorREF = aColor[iColorIndex];
|
|
}
|
|
else
|
|
{
|
|
((CRsp2DTdRecord*)this->m_tdRecArray.GetAt(iIndex))->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
}
|
|
|
|
iIndex++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (m_fMaxR0 == m_fMinR0)
|
|
{
|
|
((CRsp2DTdRecord*)this->m_tdRecArray.GetAt(iIndex))->m_colorREF = aColor[8];
|
|
}
|
|
else
|
|
{
|
|
m_fScaleR0 = (m_fMaxR0-m_fMinR0)/15;
|
|
}
|
|
iColorIndex = (int)floor((pRsp2DTdRecord->m_fR0-m_fMinR0)/m_fScaleR0);
|
|
if (iColorIndex > 14)
|
|
{
|
|
iColorIndex = 14;
|
|
}
|
|
pRsp2DTdRecord->m_colorREF = aColor[iColorIndex];
|
|
}
|
|
}
|
|
|
|
BOOL CTdChannel::SetMaxR0AndMinR0(float fR0)
|
|
{
|
|
if ((0 == m_fMaxR0) && (0 == m_fMinR0))
|
|
{
|
|
m_fMaxR0 = fR0;
|
|
m_fMinR0 = fR0;
|
|
}
|
|
else if (fR0 > m_fMaxR0)
|
|
{
|
|
m_fMaxR0 = fR0;
|
|
}
|
|
else if (fR0 < m_fMinR0)
|
|
{
|
|
m_fMinR0 = fR0;
|
|
}
|
|
else
|
|
{
|
|
return FALSE;
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
void CTdChannel::Clear3DSptRecList()
|
|
{
|
|
int iListIndex = (int)VAL_ZERO;
|
|
|
|
iListIndex = (int)VAL_ZERO;
|
|
while (iListIndex < this->m_tdRecArray.GetSize())
|
|
{
|
|
if (this->m_tdRecArray.GetAt(iListIndex) != NULL)
|
|
{
|
|
delete (CRsp3DTdRecord*)m_tdRecArray.GetAt(iListIndex);
|
|
}
|
|
iListIndex++;
|
|
}
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
m_fMaxR0 = (float)VAL_ZERO;
|
|
m_fMinR0 = (float)VAL_ZERO;
|
|
|
|
m_fScaleR0 = (float)VAL_ZERO;
|
|
m_iMaxLevel = (int)VAL_ZERO;
|
|
}
|
|
|
|
void CTdChannel::Clear2DSptRecList()
|
|
{
|
|
int iListIndex = (int)VAL_ZERO;
|
|
|
|
iListIndex = (int)VAL_ZERO;
|
|
while (iListIndex < this->m_tdRecArray.GetSize())
|
|
{
|
|
if (this->m_tdRecArray.GetAt(iListIndex) != NULL)
|
|
{
|
|
delete (CRsp2DTdRecord*)m_tdRecArray.GetAt(iListIndex);
|
|
}
|
|
iListIndex++;
|
|
}
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
m_fMaxR0 = (float)VAL_ZERO;
|
|
m_fMinR0 = (float)VAL_ZERO;
|
|
|
|
m_fScaleR0 = (float)VAL_ZERO;
|
|
m_iMaxLevel = (int)VAL_ZERO;
|
|
}
|
|
|
|
void CTdChannel::ClearCESptRecList()
|
|
{
|
|
int iListIndex = (int)VAL_ZERO;
|
|
|
|
iListIndex = (int)VAL_ZERO;
|
|
while (iListIndex < this->m_tdRecArray.GetSize())
|
|
{
|
|
if (this->m_tdRecArray.GetAt(iListIndex) != NULL)
|
|
{
|
|
delete (CRspCETdRecord*)(m_tdRecArray.GetAt(iListIndex));
|
|
}
|
|
iListIndex++;
|
|
}
|
|
m_fMaxR0 = (float)VAL_ZERO;
|
|
m_fMinR0 = (float)VAL_ZERO;
|
|
this->m_tdRecArray.RemoveAll();
|
|
|
|
}
|
|
|
|
BOOL CTdChannel::SaveRsp3DTdData(DWORD dwScID)
|
|
{
|
|
CRsp3DTdRecord* pRsp3DTdRecord = NULL;
|
|
_RecordsetPtr pRecTdCha;
|
|
_CommandPtr pCmdIns;
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
pRecTdCha.CreateInstance(_uuidof(Recordset));
|
|
pCmdIns.CreateInstance(_uuidof(Command));
|
|
pCmdIns->ActiveConnection = m_pConnection;
|
|
|
|
try
|
|
{
|
|
szSql.Empty();
|
|
szSql.Format(_T("insert into tdchannel(TDID,CHnumber,AR) values(%u,%d,%d)"),
|
|
dwScID,
|
|
this->m_iChNum,
|
|
this->m_pMedium->m_iAR);
|
|
|
|
pCmdIns->CommandText = szSql.AllocSysString();
|
|
pCmdIns->Execute(NULL, NULL, adCmdText);
|
|
|
|
pRecTdCha->Open(_T("select max(ID) as ID from tdchannel"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
if ((long)VAL_ZERO != pRecTdCha->GetRecordCount())
|
|
{
|
|
this->m_dwID = (int)pRecTdCha->GetCollect(_T("ID")).ulVal;
|
|
}
|
|
pRecTdCha->Close();
|
|
|
|
iTdRecIndex = (int)VAL_ZERO;
|
|
while (iTdRecIndex < m_tdRecArray.GetSize())
|
|
{
|
|
pRsp3DTdRecord = NULL;
|
|
pRsp3DTdRecord = (CRsp3DTdRecord*)m_tdRecArray.GetAt(iTdRecIndex);
|
|
|
|
pRsp3DTdRecord->SaveData(m_dwID);
|
|
iTdRecIndex++;
|
|
}
|
|
}
|
|
catch(_com_error e)
|
|
{
|
|
throw e;
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::SaveRsp2DTdData(DWORD dwScID)
|
|
{
|
|
CRsp2DTdRecord* pRsp2DTdRecord = NULL;
|
|
_RecordsetPtr pRecTdCha;
|
|
_CommandPtr pCmdIns;
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
pRecTdCha.CreateInstance(_uuidof(Recordset));
|
|
pCmdIns.CreateInstance(_uuidof(Command));
|
|
pCmdIns->ActiveConnection = m_pConnection;
|
|
|
|
try
|
|
{
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("insert into tdchannel(TDID,CHnumber,AR) values(%u,%d,%d)"),
|
|
dwScID,
|
|
this->m_iChNum,
|
|
this->m_pMedium->m_iAR);
|
|
|
|
pCmdIns->CommandText = szSql.AllocSysString();
|
|
pCmdIns->Execute(NULL, NULL, adCmdText);
|
|
|
|
pRecTdCha->Open(_T("select max(ID) as ID from tdchannel"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
if ((long)VAL_ZERO != pRecTdCha->GetRecordCount())
|
|
{
|
|
this->m_dwID = (int)pRecTdCha->GetCollect(_T("ID")).ulVal;
|
|
}
|
|
pRecTdCha->Close();
|
|
|
|
iTdRecIndex = (int)VAL_ZERO;
|
|
while (iTdRecIndex < m_tdRecArray.GetSize())
|
|
{
|
|
pRsp2DTdRecord = NULL;
|
|
pRsp2DTdRecord = (CRsp2DTdRecord*)m_tdRecArray.GetAt(iTdRecIndex);
|
|
|
|
pRsp2DTdRecord->SaveData(m_dwID);
|
|
iTdRecIndex++;
|
|
}
|
|
}
|
|
catch(_com_error e)
|
|
{
|
|
throw e;
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::SaveRspCETdData(DWORD dwScID)
|
|
{
|
|
CRspCETdRecord* pRspCETdRecord = NULL;
|
|
_RecordsetPtr pRecTdCha;
|
|
_CommandPtr pCmdIns;
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
pRecTdCha.CreateInstance(_uuidof(Recordset));
|
|
pCmdIns.CreateInstance(_uuidof(Command));
|
|
pCmdIns->ActiveConnection = m_pConnection;
|
|
|
|
try
|
|
{
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("insert into tdchannel(TDID,CHnumber,AR) values(%u,%d,%d)"),
|
|
dwScID,
|
|
this->m_iChNum,
|
|
this->m_pMedium->m_iAR);
|
|
|
|
pCmdIns->CommandText = szSql.AllocSysString();
|
|
pCmdIns->Execute(NULL, NULL, adCmdText);
|
|
|
|
pRecTdCha->Open(_T("select max(ID) as ID from tdchannel"), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
if ((long)VAL_ZERO != pRecTdCha->GetRecordCount())
|
|
{
|
|
this->m_dwID = (int)pRecTdCha->GetCollect(_T("ID")).ulVal;
|
|
}
|
|
pRecTdCha->Close();
|
|
|
|
iTdRecIndex = (int)VAL_ZERO;
|
|
while (iTdRecIndex < m_tdRecArray.GetSize())
|
|
{
|
|
pRspCETdRecord = NULL;
|
|
pRspCETdRecord = (CRspCETdRecord*)m_tdRecArray.GetAt(iTdRecIndex);
|
|
|
|
pRspCETdRecord->SaveData(m_dwID);
|
|
iTdRecIndex++;
|
|
}
|
|
}
|
|
catch(_com_error e)
|
|
{
|
|
throw e;
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadRsp3DTdData()
|
|
{
|
|
CRsp3DTdRecord* pRsp3DTdRecord = NULL;
|
|
_RecordsetPtr pRecTdCon;
|
|
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
if ((int)VAL_ZERO == this->m_tdRecArray.GetSize())
|
|
{
|
|
pRecTdCon.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,C1,C2,P1,P2,N,K,I,V,R0,SP,bUse from td3dcon where TCHID = %u"), this->m_dwID);
|
|
pRecTdCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecTdCon->adoEOF)
|
|
{
|
|
if (pRecTdCon->GetCollect(_T("bUse")).boolVal != 0)//0为access数据库中的false
|
|
{
|
|
pRsp3DTdRecord = new CRsp3DTdRecord(this->m_dwID, this->m_pConnection);
|
|
pRsp3DTdRecord->m_iTsn = (int)pRecTdCon->GetCollect(_T("TSN")).lVal;
|
|
pRsp3DTdRecord->m_iC1 = (int)pRecTdCon->GetCollect(_T("C1")).iVal;
|
|
pRsp3DTdRecord->m_iC2 = (int)pRecTdCon->GetCollect(_T("C2")).iVal;
|
|
pRsp3DTdRecord->m_iP1 = (int)pRecTdCon->GetCollect(_T("P1")).iVal;
|
|
pRsp3DTdRecord->m_iP2 = (int)pRecTdCon->GetCollect(_T("P2")).iVal;
|
|
pRsp3DTdRecord->m_fK = (float)pRecTdCon->GetCollect(_T("K")).fltVal;
|
|
pRsp3DTdRecord->m_iN = (int)pRecTdCon->GetCollect(_T("N")).iVal;
|
|
pRsp3DTdRecord->m_fR0 = (float)pRecTdCon->GetCollect(_T("R0")).fltVal;
|
|
pRsp3DTdRecord->m_fI = (float)pRecTdCon->GetCollect(_T("I")).fltVal;
|
|
pRsp3DTdRecord->m_fV = (float)pRecTdCon->GetCollect(_T("V")).fltVal;
|
|
pRsp3DTdRecord->m_fSP = (float)pRecTdCon->GetCollect(_T("SP")).fltVal;
|
|
|
|
pRsp3DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pRsp3DTdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pRsp3DTdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRsp3DTdRecord->m_iC1, pRsp3DTdRecord->m_iC2, pRsp3DTdRecord->m_iP1, pRsp3DTdRecord->m_iP2);
|
|
pRsp3DTdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRsp3DTdRecord->m_iC1, pRsp3DTdRecord->m_iC2, pRsp3DTdRecord->m_iP1, pRsp3DTdRecord->m_iP2);
|
|
|
|
this->m_tdRecArray.Add((void*)pRsp3DTdRecord);
|
|
}
|
|
pRecTdCon->MoveNext();
|
|
}
|
|
pRecTdCon->Close();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadRsp2DTdData()
|
|
{
|
|
CRsp2DTdRecord* pRsp2DTdRecord = NULL;
|
|
_RecordsetPtr pRecTdCon;
|
|
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
//added by lsq 20160506
|
|
//初始化最大和最小的RO值
|
|
m_fMaxR0 = m_fMinR0 = (float)VAL_ZERO;
|
|
//////////////////////////end////////////////////////////////////////////////
|
|
if ((int)VAL_ZERO == this->m_tdRecArray.GetSize())
|
|
{
|
|
pRecTdCon.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,C1,C2,P1,P2,N,K,I,V,R0,SP,bUse from td2dcon where TCHID = %u"), this->m_dwID);
|
|
pRecTdCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecTdCon->adoEOF)
|
|
{
|
|
if (pRecTdCon->GetCollect(_T("bUse")).boolVal != 0)//0为access数据库中的false
|
|
{
|
|
pRsp2DTdRecord = new CRsp2DTdRecord(this->m_dwID, this->m_pConnection);
|
|
if (pRsp2DTdRecord == NULL)
|
|
{
|
|
ASSERT(pRsp2DTdRecord != NULL);
|
|
continue;
|
|
}
|
|
pRsp2DTdRecord->m_iTsn = (int)pRecTdCon->GetCollect(_T("TSN")).lVal;
|
|
pRsp2DTdRecord->m_iC1 = (int)pRecTdCon->GetCollect(_T("C1")).iVal;
|
|
pRsp2DTdRecord->m_iC2 = (int)pRecTdCon->GetCollect(_T("C2")).iVal;
|
|
pRsp2DTdRecord->m_iP1 = (int)pRecTdCon->GetCollect(_T("P1")).iVal;
|
|
pRsp2DTdRecord->m_iP2 = (int)pRecTdCon->GetCollect(_T("P2")).iVal;
|
|
pRsp2DTdRecord->m_fK = (float)pRecTdCon->GetCollect(_T("K")).fltVal;
|
|
pRsp2DTdRecord->m_iN = (int)pRecTdCon->GetCollect(_T("N")).iVal;
|
|
pRsp2DTdRecord->m_fR0 = (float)pRecTdCon->GetCollect(_T("R0")).fltVal;
|
|
pRsp2DTdRecord->m_fI = (float)pRecTdCon->GetCollect(_T("I")).fltVal;
|
|
pRsp2DTdRecord->m_fV = (float)pRecTdCon->GetCollect(_T("V")).fltVal;
|
|
pRsp2DTdRecord->m_fSP = (float)pRecTdCon->GetCollect(_T("SP")).fltVal;
|
|
////////////////////////////////added by lsq 20160506//////////////////////////////////////////
|
|
//在这里是为了在取数据库的过程中就直接得到RO的最大值和最小值
|
|
SetMaxR0AndMinR0(pRsp2DTdRecord->m_fR0);
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
pRsp2DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pRsp2DTdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
if (m_pMedium == NULL)
|
|
{
|
|
ASSERT(m_pMedium != NULL);
|
|
if (pRsp2DTdRecord)
|
|
{
|
|
delete pRsp2DTdRecord;
|
|
pRsp2DTdRecord = NULL;
|
|
}
|
|
continue;
|
|
}
|
|
pRsp2DTdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
pRsp2DTdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
|
|
this->m_tdRecArray.Add((void*)pRsp2DTdRecord);
|
|
}
|
|
pRecTdCon->MoveNext();
|
|
}
|
|
pRecTdCon->Close();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadRspCETdData()
|
|
{
|
|
CRspCETdRecord* pRspCETdRecord = NULL;
|
|
_RecordsetPtr pRecTdCon;
|
|
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
if ((int)VAL_ZERO == this->m_tdRecArray.GetSize())
|
|
{
|
|
pRecTdCon.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,a,b,x,y,N,K,I,V,R0,SP,bUse,dt from td1dcon where TCHID = %u"), this->m_dwID);
|
|
pRecTdCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecTdCon->adoEOF)
|
|
{
|
|
if (pRecTdCon->GetCollect(_T("bUse")).boolVal != 0)//0为access数据库中的false
|
|
{
|
|
pRspCETdRecord = new CRspCETdRecord(this->m_dwID, this->m_pConnection);
|
|
pRspCETdRecord->m_iTsn = (int)pRecTdCon->GetCollect(_T("TSN")).lVal;
|
|
pRspCETdRecord->m_fA = (float)pRecTdCon->GetCollect(_T("a")).fltVal;
|
|
pRspCETdRecord->m_fB = (float)pRecTdCon->GetCollect(_T("b")).fltVal;
|
|
pRspCETdRecord->m_fX = (float)pRecTdCon->GetCollect(_T("x")).fltVal;
|
|
pRspCETdRecord->m_fY = (float)pRecTdCon->GetCollect(_T("y")).fltVal;
|
|
pRspCETdRecord->m_fK = (float)pRecTdCon->GetCollect(_T("K")).fltVal;
|
|
pRspCETdRecord->m_iN = (int)pRecTdCon->GetCollect(_T("N")).iVal;
|
|
pRspCETdRecord->m_fR0 = (float)pRecTdCon->GetCollect(_T("R0")).fltVal;
|
|
pRspCETdRecord->m_fI = (float)pRecTdCon->GetCollect(_T("I")).fltVal;
|
|
pRspCETdRecord->m_fV = (float)pRecTdCon->GetCollect(_T("V")).fltVal;
|
|
pRspCETdRecord->m_fSP = (float)pRecTdCon->GetCollect(_T("SP")).fltVal;
|
|
pRspCETdRecord->m_Datetime = (VT_NULL == pRecTdCon->GetCollect(_T("dt")).vt) ? _T("") : (LPCTSTR)(_bstr_t)pRecTdCon->GetCollect(_T("dt"));
|
|
|
|
pRspCETdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pRspCETdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pRspCETdRecord->m_fDepth = this->m_pMedium->CalculateDepth(pRspCETdRecord->m_fA);
|
|
|
|
if ((((float)VAL_ZERO == this->m_fMaxR0) || (pRspCETdRecord->m_fR0 > this->m_fMaxR0)) && ((float)VAL_ZERO != pRspCETdRecord->m_fR0))
|
|
{
|
|
this->m_fMaxR0 = pRspCETdRecord->m_fR0;
|
|
}
|
|
|
|
if ((((float)VAL_ZERO == this->m_fMinR0) || (pRspCETdRecord->m_fR0 < this->m_fMinR0)) && ((float)VAL_ZERO != pRspCETdRecord->m_fR0))
|
|
{
|
|
this->m_fMinR0 = pRspCETdRecord->m_fR0;
|
|
}
|
|
|
|
if ((((float)VAL_ZERO == this->m_fMaxDepth) || (pRspCETdRecord->m_fDepth > this->m_fMaxDepth)) && ((float)VAL_ZERO != pRspCETdRecord->m_fDepth))
|
|
{
|
|
this->m_fMaxDepth = pRspCETdRecord->m_fDepth;
|
|
}
|
|
|
|
// pRspCETdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
// pRspCETdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
|
|
this->m_tdRecArray.Add((void*)pRspCETdRecord);
|
|
}
|
|
pRecTdCon->MoveNext();
|
|
}
|
|
pRecTdCon->Close();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadIpsp3DTdData()
|
|
{
|
|
CIpsp3DTdRecord* pIpsp3DTdRecord = NULL;
|
|
_RecordsetPtr pRecTdCon;
|
|
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
if ((int)VAL_ZERO == this->m_tdRecArray.GetSize())
|
|
{
|
|
pRecTdCon.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,C1,C2,P1,P2,N,K,I,V,R0,SP,bUse from td3dcon where TCHID = %u"), this->m_dwID);
|
|
pRecTdCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecTdCon->adoEOF)
|
|
{
|
|
if (pRecTdCon->GetCollect(_T("bUse")).boolVal != 0)//0为access数据库中的false
|
|
{
|
|
pIpsp3DTdRecord = new CIpsp3DTdRecord(this->m_dwID, this->m_pConnection);
|
|
pIpsp3DTdRecord->m_iTsn = (int)pRecTdCon->GetCollect(_T("TSN")).lVal;
|
|
pIpsp3DTdRecord->m_iC1 = (int)pRecTdCon->GetCollect(_T("C1")).iVal;
|
|
pIpsp3DTdRecord->m_iC2 = (int)pRecTdCon->GetCollect(_T("C2")).iVal;
|
|
pIpsp3DTdRecord->m_iP1 = (int)pRecTdCon->GetCollect(_T("P1")).iVal;
|
|
pIpsp3DTdRecord->m_iP2 = (int)pRecTdCon->GetCollect(_T("P2")).iVal;
|
|
pIpsp3DTdRecord->m_fK = (float)pRecTdCon->GetCollect(_T("K")).fltVal;
|
|
pIpsp3DTdRecord->m_iN = (int)pRecTdCon->GetCollect(_T("N")).iVal;
|
|
pIpsp3DTdRecord->m_fR0 = (float)pRecTdCon->GetCollect(_T("R0")).fltVal;
|
|
pIpsp3DTdRecord->m_fI = (float)pRecTdCon->GetCollect(_T("I")).fltVal;
|
|
pIpsp3DTdRecord->m_fV = (float)pRecTdCon->GetCollect(_T("V")).fltVal;
|
|
pIpsp3DTdRecord->m_fSP = (float)pRecTdCon->GetCollect(_T("SP")).fltVal;
|
|
|
|
pIpsp3DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pIpsp3DTdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pIpsp3DTdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pIpsp3DTdRecord->m_iC1, pIpsp3DTdRecord->m_iC2, pIpsp3DTdRecord->m_iP1, pIpsp3DTdRecord->m_iP2);
|
|
pIpsp3DTdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pIpsp3DTdRecord->m_iC1, pIpsp3DTdRecord->m_iC2, pIpsp3DTdRecord->m_iP1, pIpsp3DTdRecord->m_iP2);
|
|
|
|
this->m_tdRecArray.Add((void*)pIpsp3DTdRecord);
|
|
}
|
|
pRecTdCon->MoveNext();
|
|
}
|
|
pRecTdCon->Close();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadIpsp2DTdData()
|
|
{
|
|
CIpsp2DTdRecord* pIpsp2DTdRecord = NULL;
|
|
_RecordsetPtr pRecTdCon;
|
|
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
if ((int)VAL_ZERO == this->m_tdRecArray.GetSize())
|
|
{
|
|
pRecTdCon.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,C1,C2,P1,P2,N,K,I,V,R0,SP,bUse from td2dcon where TCHID = %u"), this->m_dwID);
|
|
pRecTdCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecTdCon->adoEOF)
|
|
{
|
|
if (pRecTdCon->GetCollect(_T("bUse")).boolVal != 0)//0为access数据库中的false
|
|
{
|
|
pIpsp2DTdRecord = new CIpsp2DTdRecord(this->m_dwID, this->m_pConnection);
|
|
pIpsp2DTdRecord->m_iTsn = (int)pRecTdCon->GetCollect(_T("TSN")).lVal;
|
|
pIpsp2DTdRecord->m_iC1 = (int)pRecTdCon->GetCollect(_T("C1")).iVal;
|
|
pIpsp2DTdRecord->m_iC2 = (int)pRecTdCon->GetCollect(_T("C2")).iVal;
|
|
pIpsp2DTdRecord->m_iP1 = (int)pRecTdCon->GetCollect(_T("P1")).iVal;
|
|
pIpsp2DTdRecord->m_iP2 = (int)pRecTdCon->GetCollect(_T("P2")).iVal;
|
|
pIpsp2DTdRecord->m_fK = (float)pRecTdCon->GetCollect(_T("K")).fltVal;
|
|
pIpsp2DTdRecord->m_iN = (int)pRecTdCon->GetCollect(_T("N")).iVal;
|
|
pIpsp2DTdRecord->m_fR0 = (float)pRecTdCon->GetCollect(_T("R0")).fltVal;
|
|
pIpsp2DTdRecord->m_fI = (float)pRecTdCon->GetCollect(_T("I")).fltVal;
|
|
pIpsp2DTdRecord->m_fV = (float)pRecTdCon->GetCollect(_T("V")).fltVal;
|
|
pIpsp2DTdRecord->m_fSP = (float)pRecTdCon->GetCollect(_T("SP")).fltVal;
|
|
|
|
pIpsp2DTdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pIpsp2DTdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pIpsp2DTdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pIpsp2DTdRecord->m_iC1, pIpsp2DTdRecord->m_iC2, pIpsp2DTdRecord->m_iP1, pIpsp2DTdRecord->m_iP2);
|
|
pIpsp2DTdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pIpsp2DTdRecord->m_iC1, pIpsp2DTdRecord->m_iC2, pIpsp2DTdRecord->m_iP1, pIpsp2DTdRecord->m_iP2);
|
|
|
|
this->m_tdRecArray.Add((void*)pIpsp2DTdRecord);
|
|
}
|
|
pRecTdCon->MoveNext();
|
|
}
|
|
pRecTdCon->Close();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadIpspCETdData()
|
|
{
|
|
CIpspCETdRecord* pIpspCETdRecord = NULL;
|
|
_RecordsetPtr pRecTdCon;
|
|
|
|
CString szSql = _T("");
|
|
int iTdRecIndex = (int)VAL_ZERO;
|
|
|
|
if ((int)VAL_ZERO == this->m_tdRecArray.GetSize())
|
|
{
|
|
pRecTdCon.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,a,b,x,y,N,K,I,V,R0,SP,bUse from td1dcon where TCHID = %u"), this->m_dwID);
|
|
pRecTdCon->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecTdCon->adoEOF)
|
|
{
|
|
if (pRecTdCon->GetCollect(_T("bUse")).boolVal != 0)//0为access数据库中的false
|
|
{
|
|
pIpspCETdRecord = new CIpspCETdRecord(this->m_dwID, this->m_pConnection);
|
|
pIpspCETdRecord->m_iTsn = (int)pRecTdCon->GetCollect(_T("TSN")).lVal;
|
|
pIpspCETdRecord->m_fA = (float)pRecTdCon->GetCollect(_T("a")).fltVal;
|
|
pIpspCETdRecord->m_fB = (float)pRecTdCon->GetCollect(_T("b")).fltVal;
|
|
pIpspCETdRecord->m_fX = (float)pRecTdCon->GetCollect(_T("x")).fltVal;
|
|
pIpspCETdRecord->m_fY = (float)pRecTdCon->GetCollect(_T("y")).fltVal;
|
|
pIpspCETdRecord->m_fK = (float)pRecTdCon->GetCollect(_T("K")).fltVal;
|
|
pIpspCETdRecord->m_iN = (int)pRecTdCon->GetCollect(_T("N")).iVal;
|
|
pIpspCETdRecord->m_fR0 = (float)pRecTdCon->GetCollect(_T("R0")).fltVal;
|
|
pIpspCETdRecord->m_fI = (float)pRecTdCon->GetCollect(_T("I")).fltVal;
|
|
pIpspCETdRecord->m_fV = (float)pRecTdCon->GetCollect(_T("V")).fltVal;
|
|
pIpspCETdRecord->m_fSP = (float)pRecTdCon->GetCollect(_T("SP")).fltVal;
|
|
|
|
pIpspCETdRecord->m_colorREF = RGB(0xFF,0xFF,0xFF);
|
|
pIpspCETdRecord->m_recPtArea.SetRectEmpty();
|
|
|
|
pIpspCETdRecord->m_fDepth = this->m_pMedium->CalculateDepth(pIpspCETdRecord->m_fA);
|
|
|
|
if ((((float)VAL_ZERO == this->m_fMaxR0) || (pIpspCETdRecord->m_fR0 > this->m_fMaxR0)) && ((float)VAL_ZERO != pIpspCETdRecord->m_fR0))
|
|
{
|
|
this->m_fMaxR0 = pIpspCETdRecord->m_fR0;
|
|
}
|
|
|
|
if ((((float)VAL_ZERO == this->m_fMinR0) || (pIpspCETdRecord->m_fR0 < this->m_fMinR0)) && ((float)VAL_ZERO != pIpspCETdRecord->m_fR0))
|
|
{
|
|
this->m_fMinR0 = pIpspCETdRecord->m_fR0;
|
|
}
|
|
|
|
if ((((float)VAL_ZERO == this->m_fMaxDepth) || (pIpspCETdRecord->m_fDepth > this->m_fMaxDepth)) && ((float)VAL_ZERO != pIpspCETdRecord->m_fDepth))
|
|
{
|
|
this->m_fMaxDepth = pIpspCETdRecord->m_fDepth;
|
|
}
|
|
|
|
// pRspCETdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
// pRspCETdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRsp2DTdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
|
|
this->m_tdRecArray.Add((void*)pIpspCETdRecord);
|
|
}
|
|
pRecTdCon->MoveNext();
|
|
}
|
|
pRecTdCon->Close();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
BOOL CTdChannel::LoadCEScriptFromDB()
|
|
{
|
|
_RecordsetPtr pRecCh = NULL;
|
|
_RecordsetPtr pRecSptCE = NULL;
|
|
|
|
CString szSql = _T("");
|
|
|
|
CRspCETdRecord* pRspCETdRecord = NULL;
|
|
|
|
DWORD dwChID = (DWORD)VAL_ZERO;
|
|
|
|
pRecCh.CreateInstance(_uuidof(Recordset));
|
|
|
|
szSql.Empty();
|
|
szSql.Format(_T("select ID from channel where SCID = %u and CHnumber = %d"), m_dwScID, m_iChNum);
|
|
pRecCh->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
if ((long)VAL_ZERO != pRecCh->GetRecordCount())
|
|
{
|
|
dwChID = (DWORD)pRecCh->GetCollect(_T("ID")).ulVal;
|
|
}
|
|
pRecCh->Close();
|
|
|
|
pRecSptCE.CreateInstance(_uuidof(Recordset));
|
|
szSql.Empty();
|
|
szSql.Format(_T("select TSN,a,b,x,y,K,N from Script1d where CHID = %u order by TSN"), dwChID);
|
|
|
|
pRecSptCE->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
|
|
|
|
this->m_tdRecArray.RemoveAll();
|
|
while ((short)VAL_ZERO == pRecSptCE->adoEOF)
|
|
{
|
|
pRspCETdRecord = new CRspCETdRecord(this->m_dwID, this->m_pConnection);
|
|
pRspCETdRecord->m_iTsn = (int)pRecSptCE->GetCollect(_T("TSN")).lVal;
|
|
pRspCETdRecord->m_fA = (float)pRecSptCE->GetCollect(_T("a")).fltVal;
|
|
pRspCETdRecord->m_fB = (float)pRecSptCE->GetCollect(_T("b")).fltVal;
|
|
pRspCETdRecord->m_fX = (float)pRecSptCE->GetCollect(_T("x")).fltVal;
|
|
pRspCETdRecord->m_fY = (float)pRecSptCE->GetCollect(_T("y")).fltVal;
|
|
pRspCETdRecord->m_fK = (float)pRecSptCE->GetCollect(_T("K")).fltVal;
|
|
pRspCETdRecord->m_iN = (int)pRecSptCE->GetCollect(_T("N")).iVal;
|
|
pRspCETdRecord->m_fR0 = (float)VAL_ZERO;
|
|
pRspCETdRecord->m_fI = (float)VAL_ZERO;
|
|
pRspCETdRecord->m_fV = (float)VAL_ZERO;
|
|
pRspCETdRecord->m_colorREF = RGB(0xFF, 0xFF, 0xFF);
|
|
pRspCETdRecord->m_recPtArea.SetRectEmpty();
|
|
pRspCETdRecord->m_fDepth = ((CMediumQ*)this->m_pMedium)->CalculateDepth(pRspCETdRecord->m_fA, this->m_fDepthFactor);
|
|
// pRspCETdRecord->m_fLevel
|
|
|
|
// pRspCETdRecord->m_iLevel = this->m_pMedium->GenSptRecLevel(pRspCETdRecord->m_iC1, pRspCETdRecord->m_iC2, pRspCETdRecord->m_iP1, pRspCETdRecord->m_iP2);
|
|
// pRspCETdRecord->m_iPosInLevel = this->m_pMedium->GenSptRecPosInLevel(pRspCETdRecord->m_iC1, pRsp2DTdRecord->m_iC2, pRsp2DTdRecord->m_iP1, pRsp2DTdRecord->m_iP2);
|
|
this->m_tdRecArray.Add((void*)pRspCETdRecord);
|
|
pRecSptCE->MoveNext();
|
|
}
|
|
pRecSptCE->Close();
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void CTdChannel::SetColorToTd()
|
|
{
|
|
int iIndex = (int)VAL_ZERO;
|
|
CRsp2DTdRecord* pRsp2DTdRecord = NULL;
|
|
|
|
// this->m_fMaxR0 = 0.0;
|
|
// this->m_fMinR0 = 0.0;
|
|
|
|
while (iIndex < m_tdRecArray.GetSize())
|
|
{
|
|
pRsp2DTdRecord = NULL;
|
|
pRsp2DTdRecord = (CRsp2DTdRecord*)m_tdRecArray.GetAt(iIndex);
|
|
|
|
SetColorToTdRec(pRsp2DTdRecord);
|
|
iIndex++;
|
|
}
|
|
}
|
|
|
|
CTdRecord* CTdChannel::GetTdRecord(int iTSN)
|
|
{
|
|
CTdRecord* pTdRecord = NULL;
|
|
int iIndex = (int)VAL_ZERO;
|
|
|
|
if ((int)VAL_ZERO != this->m_tdRecArray.GetSize())
|
|
{
|
|
do
|
|
{
|
|
pTdRecord = (CTdRecord*)this->m_tdRecArray.GetAt(iIndex);
|
|
|
|
if ((this->m_dwID == pTdRecord->m_dwChID) && (pTdRecord->m_iTsn == iTSN))
|
|
{
|
|
return pTdRecord;
|
|
}
|
|
|
|
iIndex++;
|
|
} while (iIndex <= this->m_tdRecArray.GetUpperBound());
|
|
}
|
|
return NULL;
|
|
}
|