Files
coco df489d5640 a
2026-07-03 16:05:30 +08:00

664 lines
18 KiB
C++

// CombineDlg.cpp : implementation file
//
#include "stdafx.h"
#include "geomative.h"
#include "CombineDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern int g_iUILanguage;
extern void SplitterString(CStringArray &szArray,const CString& szSource, const CString& szSplitter);
/////////////////////////////////////////////////////////////////////////////
// CCombineDlg dialog
// CCombineDlg::CCombineDlg(CWnd* pParent /*=NULL*/)
// : CDialog(CCombineDlg::IDD, pParent)
// {
// //{{AFX_DATA_INIT(CCombineDlg)
// // NOTE: the ClassWizard will add member initialization here
// //}}AFX_DATA_INIT
// }
CCombineDlg::CCombineDlg(CNavDataView *pNavData,CHandleProcessor HandleProcessor,_ConnectionPtr connectPtr, CWnd* pParent /*=NULL*/)
: CDialog(CCombineDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCombineDlg)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
m_pNavData = pNavData;
m_handleProcessor = HandleProcessor;
m_connectPtr = connectPtr;
m_fCombiXDistance = 0;
m_fCombiYDistance = 0;
m_nCombiXGridSize = 0;
m_nCOmbiYGridSize = 0;
}
void CCombineDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCombineDlg)
DDX_Control(pDX, IDC_TASK_LIST, m_TaskList);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCombineDlg, CDialog)
//{{AFX_MSG_MAP(CCombineDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCombineDlg message handlers
void CCombineDlg::OnOK()
{
// TODO: Add extra validation here
//检索有几个测试任务被选中
m_nSum = m_nID = 0; //m_nSum:记录选中多少个任务 m_nID:记录_Task对象中当前存了多少个对象
for (int n = 0; n < m_TaskList.GetItemCount(); n++)
{
if (m_TaskList.GetCheck(n) == TRUE)
m_nSum++;
}
if (m_nSum < 2)//小于两个选中项无法合并
return;
//申请空间
m_pTask = NULL;
m_pTask = new _task[m_nSum];
if (!m_pTask)
return;
//判断选中项是否有效
if (!CheckTaskValid())
{
if (LANG_ZHCN == g_iUILanguage)
AfxMessageBox(_T("任务不能合并"));
else
MessageBoxEx(NULL, _T("Task can not combine"), STRING_MESSAGEBOXEX_TITLE, MB_OK, MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US));
goto _exit;
}
//将测试任务信息插入到数据库中
InsertTdInfoToDB();
//将数据主体插入数据库中
InsertDataToDB();
_exit:
delete []m_pTask;
m_pTask = NULL;
CDialog::OnOK();
}
BOOL CCombineDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
m_TaskList.SetExtendedStyle(m_TaskList.GetExtendedStyle()|LVS_EX_CHECKBOXES|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
int ColumnCount = m_TaskList.GetHeaderCtrl()->GetItemCount();
for (int n = 0; n < ColumnCount; n++)
{
m_TaskList.DeleteColumn(0);
}
m_TaskList.InsertColumn(0, "Name", 70,130);
m_TaskList.InsertColumn(1, "Test Type", 70,100);
m_TaskList.InsertColumn(2, "Rect(X0,Y0)", 70,100);
// m_TaskList.InsertColumn(3, "Rect(X1,Y1)", 70,100);
m_TaskList.InsertColumn(3, "Local(X0,Y0)", 70,100);
// m_TaskList.InsertColumn(5, "Local(X1,Y1)", 70,100);
m_TaskList.InsertColumn(4, "Distance(X,Y)", 70,130);
m_TaskList.InsertColumn(5, "Step(X,Y)", 70,100);
//从数据库里面取出数据初始化界面
InitListContent();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCombineDlg::InitListContent()
{
HTREEITEM hTzItem = NULL;
_RecordsetPtr pRecTzID = NULL;
DWORD dwHandle = (DWORD)VAL_ZERO;
DWORD dwID = (DWORD)VAL_ZERO;
DWORD dwTdID = (DWORD)VAL_ZERO;
CString szSql = _T("");
hTzItem = m_pNavData->m_dataTree.GetSelectedItem();
dwHandle = m_pNavData->m_dataTree.GetItemData(hTzItem);
m_TzID = m_handleProcessor.GetIDFromHandle(dwHandle);
pRecTzID.CreateInstance(_uuidof(Recordset));
try
{
//这里要判断3d任务才显示出来
szSql.Empty();
szSql.Format(_T("select ID,TDname,Ttype,rect,rect_loc,Edistance,Espace from td where TZID = %u"), m_TzID);
pRecTzID->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_connectPtr, true), adOpenStatic, adLockOptimistic, adCmdText);
int id = 0;
//need_repair,ERROR,取值错误的问题
while ((short)VAL_ZERO == pRecTzID->adoEOF)
{
//取出测试任务
m_TaskList.InsertItem(id,(LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("TDname")));
//判断测试任务类型(1d,2d,3d)
switch (pRecTzID->GetCollect(_T("Ttype")).iVal)
{
case 0:
m_TaskList.SetItemText(id, 1, "1D");
break;
case 1:
m_TaskList.SetItemText(id, 1, "2D");
break;
case 2:
m_TaskList.SetItemText(id, 1, "3D");
break;
default:
m_TaskList.SetItemText(id, 1, "unKnow");
break;
}
//取出矩阵大小
m_TaskList.SetItemText(id, 2, (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("rect")));
//取出矩阵坐标
m_TaskList.SetItemText(id, 3, (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("rect_loc")));
//取出电极间距
m_TaskList.SetItemText(id, 4, (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Edistance")));
//取出电极步长
m_TaskList.SetItemText(id, 5, (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Espace")));
//将测试任务ID和列表绑定
m_TaskList.SetItemData(id, pRecTzID->GetCollect(_T("ID")).iVal);
pRecTzID->MoveNext();
id++;
}
pRecTzID->Close();
}
catch (_com_error e)
{
AfxMessageBox(e.Description());
}
}
BOOL CCombineDlg::CheckTaskValid()
{
CString szFirstDistance = _T("");//第一个被选中记录的电极间距
CString szFirstStep = _T("");//第一个被选中记录的电极间隔
BOOL bSig = TRUE;//一个标记位,当szFirstDistance和szStep被赋值时,FALSE
CString szTmpOne = _T("");//临时保存数据的变量
CString szTmpTwo = _T("");//同上
CString szTestType = _T("");
int id = 0;
//判断选择测试任务合并的有效性
for (int i = 0; i < m_TaskList.GetItemCount(); i++)
{
if (m_TaskList.GetCheck(i) == TRUE)
{
//将数据放入到_task结构体中
InsertTask(m_TaskList.GetItemData(i));
if (bSig)//将第一条记录的信息保存起来
{
szFirstDistance = m_TaskList.GetItemText(i, 4);
szFirstStep = m_TaskList.GetItemText(i, 4);
bSig = FALSE;
continue;//继续查找下面被选中的记录
}
//将第一条被选中的记录,与后面被选中的记录作比较,不相当,则为不符合合并的条件
szTmpOne = m_TaskList.GetItemText(i, 4);
szTmpTwo = m_TaskList.GetItemText(i, 5);
szTestType = m_TaskList.GetItemText(i, 1);
//步长间距不相等则不符合合并要求,目前仅支持3D测试任务合并
// if (szFirstDistance != szTmpOne || szFirstStep != szTmpTwo || szTestType != "3D")
// return FALSE;
}
}
return TRUE;
}
BOOL CCombineDlg::InsertTdInfoToDB()
{
CString szCN = _T("");
CString szSql = _T("");
CString szCn = _T("");
int nTpAmount = 0;
_CommandPtr pCmdIns = NULL;
_RecordsetPtr pRecTdID = NULL;
pCmdIns.CreateInstance(_uuidof(Command));
pRecTdID.CreateInstance(_uuidof(Recordset));
pCmdIns->ActiveConnection = m_connectPtr;
szCN = this->m_guCodeCreator.GenerateGUIDCode();
m_szTaskName = GetTaskName();//取得任务名字
szCN = GetTdCN(m_pTask[0].m_szTdCN);//取得任务CN号
nTpAmount = GetTpAmount();//取得测点数
m_scriptType = m_pTask[0].m_iSType;
m_testType = m_pTask[0].m_iTType;
try
{
szSql.Empty();
szSql.Format(_T("insert into td(TDname,TDCN,Tlocation,DEID,DESN,TZID,SCID,SCCN,Sname,Stype,Ttype,Tmode,Eamount,TPamount,CHamount,N,TRwave,TRfrequency,Ifrequency,"
"SAfrequency,Clayout,Espace,Edistance,weather,WDIR,temperature,height,humidity,Cdate,Ctime,Tdate,Ttime,Rdirection,CRtime,PM,OP,QA,rect,rect_loc) "
"values('%s','%s','%s',%u,'%s',%u,%u,'%s','%s',%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,'%s','%s',%d,%d,%.2f,%.2f,%.2f,#%s#,#%s#,#%s#,#%s#,%d,%d,'%s','%s','%s','%s','%s')"),
m_szTaskName,//名字
szCN,
m_pTask[0].m_szTLocation, //矩形位置
m_pTask[0].m_deviceID,
m_pTask[0].m_SN,
m_TzID,
m_pTask[0].m_szSCID,
m_pTask[0].m_szSCCN,
m_pTask[0].m_szSName,
m_pTask[0].m_iSType,
m_pTask[0].m_iTType,
m_pTask[0].m_iTMode,
m_pTask[0].m_iEAmount,//可能需要修改
nTpAmount,//可能需要修改
m_pTask[0].m_ChNumber,
m_pTask[0].m_iN,
m_pTask[0].m_iTRWave,
m_pTask[0].m_iTRFrequency,
m_pTask[0].m_iIFrequency,
m_pTask[0].m_iSAFrequency,
m_pTask[0].m_iCLayout,
m_pTask[0].m_fESpace,
m_pTask[0].m_iEDistance,
m_pTask[0].m_iWeather,
m_pTask[0].m_iWDIR,
m_pTask[0].m_fTemperature,
m_pTask[0].m_fHeight,
m_pTask[0].m_fHumidity,
m_pTask[0].m_szCDate,
m_pTask[0].m_szCTime,
m_pTask[0].m_szTDate,
m_pTask[0].m_szTTime,
m_pTask[0].m_iRDirection,
m_pTask[0].m_CRtime,
" ",//PM
" ",//OP
" ",//QA
m_pTask[0].m_Rect,//可能需要修改
m_pTask[0].m_RectLocal);//可能需要修改
// AfxMessageBox(szSql);
// FILE *pFile = NULL;
// pFile = fopen("Log//lll.txt", "ab+");
// fwrite(szSql.GetBuffer(0), 1, szSql.GetLength(), pFile);
// fflush(pFile);
// fclose(pFile);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
//获取刚才插入任务的ID
pRecTdID->Open(_T("select max(ID) as ID from td"), _variant_t((IDispatch*)m_connectPtr, true), adOpenStatic, adLockOptimistic, adCmdText);
m_TdID = pRecTdID->GetCollect(_T("ID")).ulVal;
pRecTdID->Close();
//将记录插入到Tdchannel中
szSql.Empty();
szSql.Format("insert into tdchannel(TDID,CHnumber,AR) values(%u,%d,%d)", m_TdID, m_pTask[0].m_ChNumber, m_pTask[0].m_AR);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
//获取刚才插入任务的ID
pRecTdID->Open(_T("select max(ID) as ID from tdchannel"), _variant_t((IDispatch*)m_connectPtr, true), adOpenStatic, adLockOptimistic, adCmdText);
m_tchID = pRecTdID->GetCollect(_T("ID")).ulVal;
pRecTdID->Close();
}
catch(_com_error* e)
{
AfxMessageBox((LPCTSTR)e->Description());
}
return FALSE;
}
void CCombineDlg::InsertTask(DWORD dwID)
{
//函数将数据库中取出的数据全部保存到_Task结构体中
if (m_nID >= m_nSum)
{
return;//超出了申请内存的最大值
}
try
{
_RecordsetPtr pRecTzID = NULL;
CString szSql = _T("");
pRecTzID.CreateInstance(_uuidof(Recordset));
szSql.Empty();
szSql.Format(_T("select * from td where ID = %u"), dwID);
pRecTzID->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_connectPtr, true), adOpenStatic, adLockOptimistic, adCmdText);
m_pTask[m_nID].m_szTdName = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("TDname"));
m_pTask[m_nID].m_szTdCN = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("TDCN"));
m_pTask[m_nID].m_szTLocation = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Tlocation"));
m_pTask[m_nID].m_deviceID = pRecTzID->GetCollect(_T("DEID")).iVal;
m_pTask[m_nID].m_SN = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("DESN"));
m_pTask[m_nID].m_TzId = pRecTzID->GetCollect(_T("TZID")).iVal;
m_pTask[m_nID].m_szSCID = pRecTzID->GetCollect(_T("SCID")).iVal;
m_pTask[m_nID].m_szSCCN = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("SCCN"));
m_pTask[m_nID].m_szSName = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Sname"));
m_pTask[m_nID].m_iSType = pRecTzID->GetCollect(_T("Stype")).iVal;
m_pTask[m_nID].m_iTType = pRecTzID->GetCollect(_T("Ttype")).iVal;
m_pTask[m_nID].m_iTMode = pRecTzID->GetCollect(_T("Tmode")).iVal;
m_pTask[m_nID].m_iEAmount = pRecTzID->GetCollect(_T("Eamount")).iVal;
m_pTask[m_nID].m_iTPAmount = pRecTzID->GetCollect(_T("TPamount")).iVal;
m_pTask[m_nID].m_iCHAmount = pRecTzID->GetCollect(_T("CHamount")).iVal;
m_pTask[m_nID].m_iN = pRecTzID->GetCollect(_T("N")).iVal;
m_pTask[m_nID].m_iTRWave = pRecTzID->GetCollect(_T("TRwave")).iVal;
m_pTask[m_nID].m_iTRFrequency = pRecTzID->GetCollect(_T("TRfrequency")).iVal;
m_pTask[m_nID].m_iIFrequency = pRecTzID->GetCollect(_T("Ifrequency")).iVal;
m_pTask[m_nID].m_iSAFrequency = pRecTzID->GetCollect(_T("SAfrequency")).iVal;
m_pTask[m_nID].m_iCLayout = pRecTzID->GetCollect(_T("Clayout")).iVal;
m_pTask[m_nID].m_fESpace = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Espace"));
m_pTask[m_nID].m_iEDistance = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Edistance"));
m_pTask[m_nID].m_iWeather = pRecTzID->GetCollect(_T("weather")).iVal;
m_pTask[m_nID].m_iWDIR = pRecTzID->GetCollect(_T("WDIR")).iVal;
m_pTask[m_nID].m_fTemperature = pRecTzID->GetCollect(_T("temperature")).fltVal;
m_pTask[m_nID].m_fHeight = pRecTzID->GetCollect(_T("height")).fltVal;
m_pTask[m_nID].m_fHeight = pRecTzID->GetCollect(_T("humidity")).fltVal;
m_pTask[m_nID].m_szCDate = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Cdate"));
m_pTask[m_nID].m_szCTime = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Ctime"));
m_pTask[m_nID].m_szTDate = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Tdate"));
m_pTask[m_nID].m_szTTime = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("Ttime"));
m_pTask[m_nID].m_iRDirection = pRecTzID->GetCollect(_T("Rdirection")).iVal;
m_pTask[m_nID].m_CRtime = pRecTzID->GetCollect(_T("CRtime")).iVal;
// m_pTask[m_nID].m_szPM = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("PM"));
// m_pTask[m_nID].m_szOP = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("OP"));
// m_pTask[m_nID].m_szQA = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("QA"));
m_pTask[m_nID].m_Rect = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("rect"));
m_pTask[m_nID].m_RectLocal = (LPCTSTR)(_bstr_t)pRecTzID->GetCollect(_T("rect_loc"));
pRecTzID->Close();
//取通道信息
szSql.Empty();
szSql.Format(_T("select * from tdchannel where TDID = %u"), dwID);
pRecTzID->Open(szSql.AllocSysString(), _variant_t((IDispatch*)m_connectPtr, true), adOpenStatic, adLockOptimistic, adCmdText);
m_pTask[m_nID].m_TCHID = pRecTzID->GetCollect(_T("ID")).iVal;
m_pTask[m_nID].m_ChNumber = pRecTzID->GetCollect(_T("CHnumber")).iVal;
m_pTask[m_nID].m_AR = pRecTzID->GetCollect(_T("AR")).iVal;
pRecTzID->Close();
m_nID++;
}
catch(_com_error e)
{
AfxMessageBox((LPCTSTR)e.Description());
}
}
_task::_task()
{
m_szTdName = _T(""); //测试任务名字
m_szTdCN = _T(""); //测试任务唯一ID
m_szTLocation = _T(""); //任务位置
m_deviceID = 0; //设备ID
m_SN = _T(""); //设备序列号
m_iTType = 0; //测试类型 1d,2d,3d
m_iTMode = 0; //测试模式 RES,IP,SP
m_iEAmount = 0; //电极数量
m_iTPAmount = 0; //测点数量
m_iCHAmount = 0; //通道数量
m_iN = 0; //迭代次数
m_iTRWave = 0; //发射波形
m_iTRFrequency = 0; //发射频率
m_iIFrequency = 0; //工业披绿
m_iSAFrequency = 0; //采样频率
m_iCLayout = 0; //电缆布置方式
m_fESpace = _T(""); //电极间隔
m_iEDistance = _T("");//电极间距
m_iWeather = 0; //天气
m_iWDIR = 0; //风向
m_fTemperature = 0;//温度
m_fHeight = 0; //海拔
m_fHumidity = 0; //湿度
m_szCDate = _T(""); //建立日期
m_szCTime = _T(""); //建立时间
m_szTDate = _T(""); //测试日期
m_szTTime = _T(""); //测试时间
m_iRDirection = 0; //滚动方向
// m_szPM = _T(""); //项目经理
// m_szOP = _T(""); //操作员
// m_szQA = _T(""); //质检员
m_Rect = _T(""); //矩阵大小
m_RectLocal = _T("");//矩阵位置
}
_task::~_task()
{
}
BOOL CCombineDlg::InsertDataToDB()
{
CString szSql = _T("");
_CommandPtr pCmdIns;
pCmdIns.CreateInstance(_uuidof(Command));
pCmdIns->ActiveConnection = m_connectPtr;
for (int n = 0; n < m_nSum; n++)
{
try
{
szSql.Empty();
szSql.Format("insert into td3dcon(TCHID,TSN,C1,C2,P1,P2,N,K,I,V,R0,SP,bUse,Vrawdata,Irawdata) select %d,TSN,C1,C2,P1,P2,N,K,I,V,R0,SP,bUse,Vrawdata,Irawdata from td3dcon where TCHID = %d",m_tchID, m_pTask[n].m_TCHID);
pCmdIns->CommandText = szSql.AllocSysString();
pCmdIns->Execute(NULL, NULL, adCmdText);
}
catch(_com_error* e)
{
AfxMessageBox((LPCTSTR)e->Description());
}
}
return FALSE;
}
CString CCombineDlg::GetTaskName()
{
CString szName = _T("");
for (int n = 0; n < m_nSum; n++)
{
szName = szName + m_pTask[n].m_szTdName + "-";
}
szName = szName.Left(szName.GetLength() - 1);
return szName;
}
CString CCombineDlg::GetTdCN(CString f_CN)
{
CString szHeader = _T("");
szHeader = f_CN.Left(4);//取出测试任务头部的测试类型
CTime time;
time = CTime::GetCurrentTime();
szHeader = szHeader + time.FormatGmt(_T("%Y%m%d"))+time.FormatGmt(_T("%H%M%S"));
return szHeader;
}
int CCombineDlg::GetTpAmount()
{
int nCount = 0;//计算测点总数
for (int n = 0; n < m_nSum; n++)
{
nCount += m_pTask[n].m_iTPAmount;
}
return nCount;
}
BOOL CCombineDlg::CalcCombineRectAndEDistance()
{
if (NULL == m_pTask)
{
return FALSE;
}
std::vector<int> nXInfo;
std::vector<int> nYInfo;
float fMinXVal = 0, fMaxXVal = 0;
float fMinYVal = 0, fMaxYVal = 0;
int nTotalXGridCnt = 0, nTotalYGridCnt = 0;
CStringArray strArray;
CString strErr;
for (int i = 0; i < m_nSum; i++)
{
strArray.RemoveAll();
SplitterString(strArray, m_pTask[i].m_RectLocal, ",");
if (2 > strArray.GetSize())
{
return FALSE;
}
//获取最小的X,Y位置,将各个任务的起始点的X,Y来作为对比
float fXLoc = atof(strArray.GetAt(0));
float fYLoc = atof(strArray.GetAt(1));
if (fMinXVal > fXLoc)
{
fMinXVal = fXLoc;
}
if (fMinYVal > fYLoc)
{
fMinYVal = fYLoc;
}
float fXEDis = 0, fYEDis = 0;
strArray.RemoveAll();
//在这里,如果存在着 ",1" 这种字符串,则会将1赋给XEDistance
SplitterString(strArray, m_pTask[i].m_iEDistance, ",");
if (0 == strArray.GetSize())
{
return FALSE;
}
//获取X,Y轴的电极间距
if (strArray.GetSize() > 1)
{
fYEDis = atof(strArray.GetAt(1));
}
fXEDis = atof(strArray.GetAt(0));
//获取网格的大小
strArray.RemoveAll();
SplitterString(strArray, m_pTask[i].m_Rect, ",");
if (4 != strArray.GetSize())
{
return FALSE;
}
int nXGridSize = atoi(strArray[2]) - atoi(strArray[0]) + 1;
int nYGridSize = atoi(strArray[3]) - atoi(strArray[1]) + 1;
nTotalXGridCnt += nXGridSize;
nTotalYGridCnt += nYGridSize;
fXLoc += fXEDis*(nXGridSize - 1);
fYLoc += fYEDis*(nYGridSize - 1);
//获取最大的X,Y轴的位置
if (fXLoc > fMaxXVal)
{
fMaxXVal = fXLoc;
}
if (fYLoc > fMaxYVal)
{
fMaxYVal = fYLoc;
}
}
if (nTotalXGridCnt > 1)
{
m_fCombiXDistance = (fMaxXVal - fMinXVal)/(nTotalXGridCnt - 1);
}
else
{
}
if (nTotalYGridCnt > 1)
{
m_fCombiYDistance = (fMaxYVal - fMinYVal)/(nTotalYGridCnt - 1);
}
m_nCombiXGridSize = nTotalXGridCnt;
m_nCOmbiYGridSize = nTotalYGridCnt;
return TRUE;
}