📄 dianlandlg.cpp
字号:
// DianlanDlg.cpp : implementation file
//
#include "stdafx.h"
#include "draw.h"
#include "DianlanDlg.h"
#include "ModifyDlg3.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern void GetTimeFromStr(CString strTm, CTime &tm);
/////////////////////////////////////////////////////////////////////////////
// CDianlanDlg dialog
CDianlanDlg::CDianlanDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDianlanDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDianlanDlg)
m_Bianhao = CString(GetBianhao());
m_Bianyaqi = _T("");
m_Busheshijian = CTime::GetCurrentTime();
m_Yongtu = _T("");
m_Guige = _T("");
m_ID=_T("");
m_SelNo=_T("");
//}}AFX_DATA_INIT
}
CDianlanDlg::CDianlanDlg(CString LINENO,CWnd* pParent /*=NULL*/)
: CDialog(CDianlanDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CDianlanDlg)
m_ID.Format("%s",LINENO);
m_Bianhao = GetBianhao();
m_Bianyaqi = _T("");
m_Busheshijian = CTime::GetCurrentTime();
m_Yongtu = _T("");
m_Guige = _T("");
m_SelNo=_T("");
// AfxMessageBox(m_AutoBianhao);
//}}AFX_DATA_INIT
}
void CDianlanDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDianlanDlg)
DDX_Control(pDX, IDC_LIST, m_List);
DDX_Control(pDX, IDC_CAILIAO, m_Cailiao);
DDX_Control(pDX, IDC_LEIXING, m_Leixing);
DDX_Text(pDX, IDC_BIANHAO, m_Bianhao);
DDX_Text(pDX, IDC_BIANYAQI, m_Bianyaqi);
DDX_DateTimeCtrl(pDX, IDC_DATETIME, m_Busheshijian);
DDX_Text(pDX, IDC_YONGTU, m_Yongtu);
DDX_Text(pDX, IDC_GUIGE, m_Guige);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDianlanDlg, CDialog)
//{{AFX_MSG_MAP(CDianlanDlg)
// NOTE: the ClassWizard will add message map macros here
ON_NOTIFY(LVN_ITEMCHANGED, IDC_LIST, OnItemchangedList)
ON_BN_CLICKED(IDC_MODIFY,OnModify)
ON_BN_CLICKED(IDC_ADD,OnAdd)
ON_BN_CLICKED(IDC_DELETE,OnDel)
ON_BN_CLICKED(IDC_REFRESH,OnRefresh)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDianlanDlg message handlers
BOOL CDianlanDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//设置窗口标题
// SetWindowText(m_ID+"号电力管线的电缆信息");
//设置列表头
m_List.InsertColumn(0, "电缆编号", LVCFMT_LEFT, 80);
m_List.InsertColumn(1, "类型", LVCFMT_LEFT, 80);
m_List.InsertColumn(2, "规格", LVCFMT_LEFT, 110);
m_List.InsertColumn(3, "材料", LVCFMT_LEFT, 60);
m_List.InsertColumn(4, "所属变压器", LVCFMT_LEFT, 90);
m_List.InsertColumn(5, "布设时间", LVCFMT_LEFT, 100);
m_List.InsertColumn(6, "用途", LVCFMT_LEFT, 380);
// 设置列表控件扩展样式
DWORD dwStyle;
dwStyle=::GetWindowLong(m_List.m_hWnd,GWL_STYLE);
dwStyle |=LVS_REPORT|LVS_SHOWSELALWAYS|LVS_EDITLABELS;
::SetWindowLong(m_List.m_hWnd,GWL_STYLE,dwStyle);
dwStyle=m_List.GetExtendedStyle();
dwStyle |=LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT;
m_List.SetExtendedStyle(dwStyle);
m_List.SetBkColor(RGB(0XFF,0XFF,0XE0));
m_List.SetTextBkColor(RGB(0XFF,0XFF,0XE0));
//给下拉框输入初始字符串
m_Leixing.AddString("高压");
m_Leixing.AddString("低压");
m_Leixing.AddString("低压联络");
m_Leixing.AddString("");
m_Cailiao.AddString("VV");
m_Cailiao.AddString("VLV");
m_Cailiao.AddString("");
SetDlgItemText(IDC_BIANHAO,m_Bianhao);
//显示列表数据
ShowData();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDianlanDlg::OnItemchangedList(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
// TODO: Add your control notification handler code here
if(pNMListView->uNewState&LVIS_SELECTED)
{
char pContent[800] ;
CString str;
int iCurrent = pNMListView->iItem;
m_List.GetItemText(iCurrent,0,pContent,50);
m_Bianhao.Format("%s", pContent);
m_SelNo.Format("%s", pContent);
//设置类型下拉框的选项
m_List.GetItemText(iCurrent,1,pContent,50);
str.Format("%s",pContent);
if(str.Compare("高压")==0)
m_Leixing.SetCurSel(0);
else if(str.Compare("低压")==0)
m_Leixing.SetCurSel(1);
else if(str.Compare("低压联络")==0)
m_Leixing.SetCurSel(2);
else
m_Leixing.SetCurSel(3);
m_List.GetItemText(iCurrent,2,pContent,50);
m_Guige.Format("%s", pContent);
//设置材料下拉框的选项
m_List.GetItemText(iCurrent,3,pContent,50);
str.Format("%s",pContent);
if(str.Compare("VV")==0)
m_Cailiao.SetCurSel(0);
else if(str.Compare("VLV")==0)
m_Cailiao.SetCurSel(1);
else
m_Cailiao.SetCurSel(2);
m_List.GetItemText(iCurrent,4,pContent,50);
m_Bianyaqi = CString(pContent);
m_List.GetItemText(iCurrent,5,pContent,50);
GetTimeFromStr(pContent,m_Busheshijian);
m_List.GetItemText(iCurrent,6,pContent,200);
m_Yongtu = CString(pContent);
UpdateData(FALSE);
}
*pResult = 0;
}
void CDianlanDlg::OnModify()
{
if(SelectValid()==false)
return;
short Leixing;
short Cailiao;
UpdateData(TRUE);
if(m_Leixing.GetCurSel()!=CB_ERR)
{
switch(m_Leixing.GetCurSel())
{
case 0: Leixing=1;break;
case 1: Leixing=2;break;
case 2: Leixing=3;break;
case 3: Leixing=0;break;
default:break;
}
}
else
Leixing=0;
if(m_Cailiao.GetCurSel()!=CB_ERR)
{
switch(m_Cailiao.GetCurSel())
{
case 0: Cailiao=1;break;
case 1: Cailiao=2;break;
case 2: Leixing=0;break;
default:break;
}
}
else
Cailiao=0;
if(ModifyValid()==false)
return;
CString sqlStr;
sqlStr.Format("UPDATE DIANLAN SET BIANHAO='%s',LEIXING='%d',GUIGE='%s' ,CAILIAO='%d',BIANYAQI='%s',BUSHESHIJIAN='%s',YONGTU='%s' WHERE BIANHAO='%s'",m_Bianhao,Leixing,m_Guige,Cailiao,m_Bianyaqi,m_Busheshijian.Format("%y-%m-%d"),m_Yongtu,m_SelNo);
AfxMessageBox(sqlStr);
((CDrawApp*)AfxGetApp())->m_pdatabase.ExecuteSQL(sqlStr);
ShowData(); //显示列表数据
//ReSetSel();
//置表单为添加状态
m_Bianhao=GetBianhao();
m_Guige="";
m_Bianyaqi="";
m_Busheshijian=CTime::GetCurrentTime();
m_SelNo="";
m_Yongtu="";
m_Leixing.SetCurSel(3);
m_Cailiao.SetCurSel(2);
UpdateData(FALSE);
}
void CDianlanDlg::OnAdd()
{
UpdateData(TRUE);
//字段验证
short Leixing;
short Cailiao;
if(m_Leixing.GetCurSel()!=CB_ERR)
{
switch(m_Leixing.GetCurSel())
{
case 0: Leixing=1;break;
case 1: Leixing=2;break;
case 2: Leixing=3;break;
case 3: Leixing=0;break;
default:break;
}
}
else
Leixing=0;
if(m_Cailiao.GetCurSel()!=CB_ERR)
{
switch(m_Cailiao.GetCurSel())
{
case 0: Cailiao=1;break;
case 1: Cailiao=2;break;
case 2: Cailiao=0;break;
default:break;
}
}
else
Cailiao=0;
if(AddValid()==false)
return;
CString sqlStr;
sqlStr.Format("INSERT INTO DIANLAN (BIANHAO,LINE_ID,LEIXING,GUIGE,CAILIAO,BIANYAQI,BUSHESHIJIAN,YONGTU) VALUES ('%s','%s','%d','%s','%d','%s','%s','%s')",m_Bianhao,m_ID,Leixing,m_Guige,Cailiao,m_Bianyaqi,m_Busheshijian.Format("%y-%m-%d"),m_Yongtu);
((CDrawApp*)AfxGetApp())->m_pdatabase.ExecuteSQL(sqlStr);
ShowData();//显示列表数据
// ReSetSel();
//置表单为添加状态
m_Bianhao=GetBianhao();
m_Guige="";
m_Bianyaqi="";
m_Busheshijian=CTime::GetCurrentTime();
m_SelNo="";
m_Yongtu="";
m_Leixing.SetCurSel(3);
m_Cailiao.SetCurSel(2);
UpdateData(FALSE);
}
void CDianlanDlg::OnDel()
{
if(SelectValid()==false)
return;
if(MessageBox("你真的要删除这条记录吗?",
"民政校园管网管理系统",MB_YESNO)==IDNO)
return;
CString sqlStr;
sqlStr.Format("DELETE FROM DIANLAN WHERE BIANHAO='%s'",m_SelNo);
((CDrawApp*)AfxGetApp())->m_pdatabase.ExecuteSQL(sqlStr);
ShowData();//显示列表数据
m_Bianhao=GetBianhao();
m_Guige="";
m_Bianyaqi="";
m_Busheshijian=CTime::GetCurrentTime();
m_SelNo="";
m_Yongtu="";
m_Leixing.SetCurSel(3);
m_Cailiao.SetCurSel(2);
UpdateData(FALSE);
}
void CDianlanDlg::OnRefresh()
{
m_Bianhao=GetBianhao();
m_Guige="";
m_Bianyaqi="";
m_SelNo="";
m_Yongtu="";
m_Leixing.SetCurSel(3);
m_Cailiao.SetCurSel(2);
m_Busheshijian=CTime::GetCurrentTime();
UpdateData(FALSE);
ShowData();
}
bool CDianlanDlg::AddValid()//字段验证
{
//验证维修编号
m_Bianhao.TrimLeft();
m_Bianhao.TrimRight();
if(m_Bianhao=="")
{
AfxMessageBox("维修编号不能为空!");
GetDlgItem(IDC_BIANHAO)->SetFocus();
return false;
}
bool bTag=true;
for(int i=0;i<m_Bianhao.GetLength();i++)
{
char ch=m_Bianhao.GetAt(i);
if(i==0)
{
if(ch<'1' || ch>'9')
{
bTag=false;
break;
}
}
else
{
if(ch<'0' || ch>'9')
{
bTag=false;
break;
}
}
}
if(m_Bianhao.GetLength()!=8 || !bTag)
{
AfxMessageBox("请输入8位数字组成的编号 !");
GetDlgItem(IDC_BIANHAO)->SetFocus();
return false;
}
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
pSet->Open(CRecordset::dynaset,_T("select BIANHAO from DIANLAN"));
if(!pSet->IsBOF())
{
pSet->MoveFirst();
CString f;
CString & f1=f;
while(!pSet->IsEOF())
{
pSet->GetFieldValue("BIANHAO",f1);
if(f.Compare(m_Bianhao)==0)
{
AfxMessageBox("维护编号不能重复!");
m_Bianhao="";
UpdateData(FALSE);
GetDlgItem(IDC_BIANHAO)->SetFocus();
return false;
}
pSet->MoveNext();
}
}
m_Guige.TrimLeft();
m_Guige.TrimRight();
m_Bianyaqi.TrimLeft();
m_Bianyaqi.TrimRight();
m_Yongtu.TrimLeft();
m_Yongtu.TrimRight();
return true;
}
bool CDianlanDlg::ModifyValid()//字段验证
{
//验证维修编号
m_Bianhao.TrimLeft();
m_Bianhao.TrimRight();
if(m_Bianhao=="")
{
AfxMessageBox("维修编号不能为空!");
GetDlgItem(IDC_BIANHAO)->SetFocus();
return false;
}
bool bTag=true;
for(int i=0;i<m_Bianhao.GetLength();i++)
{
char ch=m_Bianhao.GetAt(i);
if(ch<'0' || ch>'9')
{
bTag=false;
break;
}
}
if(m_Bianhao.GetLength()!=8 || !bTag)
{
AfxMessageBox("请输入8位数字组成的编号 !");
GetDlgItem(IDC_BIANHAO)->SetFocus();
return false;
}
m_Guige.TrimLeft();
m_Guige.TrimRight();
m_Bianyaqi.TrimLeft();
m_Bianyaqi.TrimRight();
m_Yongtu.TrimLeft();
m_Yongtu.TrimRight();
return true;
}
void CDianlanDlg::ShowData()
{
m_List.DeleteAllItems();//删除以前列表数据
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
CString sqlstr="select * from DIANLAN where LINE_ID='"+m_ID+"' ORDER BY BIANHAO";
pSet->Open(CRecordset::dynaset,_T(sqlstr));
//充填列表
if(!pSet->IsBOF())
{
pSet->MoveFirst();
int i=0;
int nItem=0;
int nTemp=0;
CString f;
CString & f1=f;
while(!pSet->IsEOF())
{
pSet->GetFieldValue("BIANHAO",f1);
nItem = m_List.InsertItem(i,f);
pSet->GetFieldValue("LEIXING",f1);
nTemp=atoi(f);
switch(nTemp)
{
case 0: m_List.SetItemText(nItem,1,""); break;
case 1: m_List.SetItemText(nItem,1,"高压");break;
case 2: m_List.SetItemText(nItem,1,"低压");break;
case 3: m_List.SetItemText(nItem,1,"低压联络");break;
default: m_List.SetItemText(nItem,1,"");
}
pSet->GetFieldValue("GUIGE",f1);
m_List.SetItemText(nItem,2,f);
pSet->GetFieldValue("CAILIAO",f1);
nTemp=atoi(f);
switch(nTemp)
{
case 0: m_List.SetItemText(nItem,3,"");break;
case 1: m_List.SetItemText(nItem,3,"VV");break;
case 2: m_List.SetItemText(nItem,3,"VLV");break;
default: m_List.SetItemText(nItem,3,"");break;
}
pSet->GetFieldValue("BIANYAQI",f1);
m_List.SetItemText(nItem,4,f);
pSet->GetFieldValue("BUSHESHIJIAN",f1);
f=f.Left(10);//截取年月日
m_List.SetItemText(nItem, 5,f);
pSet->GetFieldValue("YONGTU",f1);
m_List.SetItemText(nItem,6,f);
pSet->MoveNext();
i++;
}
pSet->Close();
delete pSet;
m_SelNo="";
//重新设置选中项
}
}
bool CDianlanDlg::SelectValid()
{
POSITION pos=m_List.GetFirstSelectedItemPosition();
if(pos==NULL)
{
AfxMessageBox("请先选中一条记录");
return false;
}
return true;
}
void CDianlanDlg::ReSetSel()//重新显示选项
{
/*for(int i=0;i<m_MaintainInfo.GetItemCount();i++)
if (m_MaintainInfo.GetItemText(i,0).Compare(m_No)==0)
{
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)m_MaintainInfo.m_hWnd;
pNMListView->iItem=i;
break;
}*/
}
CString CDianlanDlg::GetBianhao()
{
CString sqlstr;
CString str ;
CString & str1=str ;
CRecordset * pSet=new CRecordset(&((CDrawApp*) AfxGetApp())->m_pdatabase);
sqlstr.Format("select BIANHAO from DIANLAN order by BIANHAO");
pSet->Open(CRecordset::dynaset,_T(sqlstr));
if(!pSet->IsBOF())
{
pSet->MoveFirst();
int temp=-1;
while(!pSet->IsEOF())
{
pSet->GetFieldValue("BIANHAO",str1);
if(atoi(str)>temp)
temp=atoi(str);
pSet->MoveNext();
}
temp++;
str.Format("%d",temp);
}
else
str="10000001";//如果表为空,ID值为100000O1
pSet->Close();
delete pSet;
return str;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -