📄 browsedlg.cpp
字号:
{
AfxMessageBox("没有该记录的管线");
return;
}
//pDoc->UpdateAllViews(p_View);
this->ShowWindow(SW_MINIMIZE);
p_View->Invalidate();
}
void CBrowseDlg::ShowData(CString sqlStr)
{
//清空列表中的数据
m_LineInfo.DeleteAllItems();
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
if(sqlStr!="")
pSet->Open(CRecordset::dynaset,_T(sqlStr));
else
{
switch(m_type)
{
case 1: pSet->Open(CRecordset::dynaset,_T("select * from UPWATER"));
break;
case 2: pSet->Open(CRecordset::dynaset,_T("select * from DOWNWATER"));
break;
case 3: pSet->Open(CRecordset::dynaset,_T("select * from POWER"));
default:
break;
}
}
//将记录显示到列表控件中
int i=0;
if(!pSet->IsBOF())
{
pSet->MoveFirst();
int nItem=0;
CString f;
CString & f1=f;
while(!pSet->IsEOF())
{
if(m_type==1)//给水
{
pSet->GetFieldValue(1,f1);
nItem = m_LineInfo.InsertItem(i,f);
for(int j=2 ;j<=14;j++)
{
pSet->GetFieldValue(j,f1);
if(j==3)//材料字段
switch(atoi(f))
{
case 0: f=""; break;
case 1: f="普通铸铁管";break;
case 2: f="球墨铸铁管";break;
case 3: f="镀锌管"; break;
case 4: f="其它"; break;
default: f=""; break;
}
if(j==13)//截取日期的年月日
f=f.Left(10);
//向单元格添加字段值
m_LineInfo.SetItemText(nItem, j-1,f);
}
}
else if(m_type==2)//排水
{
pSet->GetFieldValue(1,f1);
nItem = m_LineInfo.InsertItem(i,f);
for(int j=2 ;j<=14;j++)
{
pSet->GetFieldValue(j,f1);
if(j==3)
switch(atoi(f))
{
case 0: f=""; break;
case 1: f="砼管"; break;
case 2: f="砖砌"; break;
case 3: f="其它"; break;
default:f=""; break;
}
if(j==13)//截取日期的年月日
f=f.Left(10);
//向单元格添加字段值
m_LineInfo.SetItemText(nItem, j-1,f);
}
}
else if(m_type==3)
{
pSet->GetFieldValue(1,f1);
nItem = m_LineInfo.InsertItem(i,f);
for(int j=2 ;j<=11;j++)
{
pSet->GetFieldValue(j,f1);
if(j==11)//截取日期的年月日
f=f.Left(10);
//向单元格添加字段值
m_LineInfo.SetItemText(nItem, j-1,f);
}
}
pSet->MoveNext();
//nItem++;
i++;
}
pSet->Close();
delete pSet;
}
}
bool CBrowseDlg::SelectValid()
{
POSITION pos=m_LineInfo.GetFirstSelectedItemPosition();
if(pos==NULL)
{
AfxMessageBox("请先选中一条记录");
return false;
}
return true;
}
void CBrowseDlg::SetListTitle()
{
for(int i=0;i<20;i++)
m_LineInfo.DeleteColumn(0);
if(m_type==1 || m_type==2)//如果是给水或排水管理
{
m_LineInfo.InsertColumn(0, "管段号", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(1, "管径", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(2, "管材", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(3, "管道埋深", LVCFMT_LEFT, 110);
if(m_type==1)
m_LineInfo.InsertColumn(4, "管沟宽", LVCFMT_LEFT, 110);
else if(m_type==2)
m_LineInfo.InsertColumn(4, "坡度", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(5, "管长", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(6, "起点x", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(7, "起点y", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(8, "起点Z", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(9, "终点x", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(10, "终点y", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(11, "终点z", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(12, "布设时间", LVCFMT_LEFT, 110);
if(m_type==1)
m_LineInfo.InsertColumn(13, "阀门编号", LVCFMT_LEFT, 110);
else if(m_type==2)
m_LineInfo.InsertColumn(13, "检查井编号", LVCFMT_LEFT, 400);
}
else if(m_type==3)//如果是电力管线
{
m_LineInfo.InsertColumn(0, "管段号", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(1, "管道埋深", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(2, "管长", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(3, "沟宽", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(4, "起点x", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(5, "起点y", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(6, "起点Z", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(7, "终点x", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(8, "终点y", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(9, "终点z", LVCFMT_LEFT, 110);
m_LineInfo.InsertColumn(10, "布设时间", LVCFMT_LEFT, 110);
}
}
void CBrowseDlg::SetListStyle()
{
DWORD dwStyle;
dwStyle=::GetWindowLong(m_LineInfo.m_hWnd,GWL_STYLE);
dwStyle |=LVS_REPORT|LVS_SHOWSELALWAYS|LVS_EDITLABELS;
::SetWindowLong(m_LineInfo.m_hWnd,GWL_STYLE,dwStyle);
dwStyle=m_LineInfo.GetExtendedStyle();
dwStyle |=LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT;
m_LineInfo.SetExtendedStyle(dwStyle);
m_LineInfo.SetBkColor(RGB(0XFF,0XFF,0XE0));
m_LineInfo.SetTextBkColor(RGB(0XFF,0XFF,0XE0));
}
BOOL CBrowseDlg::IsVisible()
{
if(!IsOpen())
return FALSE;
WINDOWPLACEMENT scrn;
GetWindowPlacement(&scrn);
if(scrn.showCmd==SW_SHOW)
return TRUE;
else
return FALSE;
}
BOOL CBrowseDlg::IsOpen()
{
return((m_hWnd)?TRUE:FALSE);
}
BOOL CBrowseDlg::InitDialog()
{
return OnInitDialog();
}
void CBrowseDlg::ShowData(CString *SelID, int n_SelID)
{
m_LineInfo.DeleteAllItems();
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
switch(m_type)
{
case 1: pSet->Open(CRecordset::dynaset,_T("select * from UPWATER"));
break;
case 2: pSet->Open(CRecordset::dynaset,_T("select * from DOWNWATER"));
break;
case 3: pSet->Open(CRecordset::dynaset,_T("select * from POWER"));
default:
break;
}
//将记录显示到列表控件中
int i=0;
int j;//记录被选中记录的个数
if(!pSet->IsBOF())
{
pSet->MoveFirst();
int nItem=0;
CString f;
CString & f1=f;
while(!pSet->IsEOF())
{
pSet->GetFieldValue("ID",f1);
for(j=0;j<n_SelID;j++)
{
if(f.Compare(SelID[j])==0)
break;
}
if(j!=n_SelID)
if(m_type==1)//给水
{
pSet->GetFieldValue(1,f1);
nItem = m_LineInfo.InsertItem(i,f);
for(int j=2 ;j<=14;j++)
{
pSet->GetFieldValue(j,f1);
if(j==3)//材料字段
switch(atoi(f))
{
case 0: f=""; break;
case 1: f="普通铸铁管";break;
case 2: f="球墨铸铁管";break;
case 3: f="镀锌管"; break;
case 4: f="其它"; break;
default: f=""; break;
}
if(j==13)//截取日期的年月日
f=f.Left(10);
//向单元格添加字段值
m_LineInfo.SetItemText(nItem, j-1,f);
}
}
else if(m_type==2)//排水
{
pSet->GetFieldValue(1,f1);
nItem = m_LineInfo.InsertItem(i,f);
for(int j=2 ;j<=14;j++)
{
pSet->GetFieldValue(j,f1);
if(j==3)
switch(atoi(f))
{
case 0: f=""; break;
case 1: f="砼管"; break;
case 2: f="砖砌"; break;
case 3: f="其它"; break;
default:f=""; break;
}
if(j==13)//截取日期的年月日
f=f.Left(10);
//向单元格添加字段值
m_LineInfo.SetItemText(nItem, j-1,f);
}
}
else if(m_type==3)
{
pSet->GetFieldValue(1,f1);
nItem = m_LineInfo.InsertItem(i,f);
for(int j=2 ;j<=11;j++)
{
pSet->GetFieldValue(j,f1);
if(j==11)//截取日期的年月日
f=f.Left(10);
//向单元格添加字段值
m_LineInfo.SetItemText(nItem, j-1,f);
}
}
pSet->MoveNext();
//nItem++;
i++;
}
pSet->Close();
delete pSet;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -