⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 busdlg.cpp

📁 Vc++管理系统
💻 CPP
字号:
// BusDlg.cpp : implementation file
//

#include "stdafx.h"
#include "InPone.h"
#include "BusDlg.h"
#include "BusSet3.h"
#include "AdbusDlg.h"
#include "BusxgDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CBusDlg dialog


CBusDlg::CBusDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CBusDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CBusDlg)
	m_cp = _T("");
	m_fp = _T("");
	m_gl = _T("");
	m_jp = _T("");
	m_jsb = _T("");
	m_stw = _T("");
	m_sx = _T("");
	m_fj = _T("");
	m_yj = _T("");
	m_no = _T("");
	//}}AFX_DATA_INIT
}


void CBusDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CBusDlg)
	DDX_Control(pDX, IDC_LIST1, m_listBus);
	DDX_Text(pDX, IDC_CP, m_cp);
	DDX_Text(pDX, IDC_FP, m_fp);
	DDX_Text(pDX, IDC_GL, m_gl);
	DDX_Text(pDX, IDC_JP, m_jp);
	DDX_Text(pDX, IDC_JSB, m_jsb);
	DDX_Text(pDX, IDC_STW, m_stw);
	DDX_Text(pDX, IDC_SX, m_sx);
	DDX_Text(pDX, IDC_FJ, m_fj);
	DDX_Text(pDX, IDC_YJ, m_yj);
	DDX_Text(pDX, IDC_NO, m_no);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CBusDlg, CDialog)
	//{{AFX_MSG_MAP(CBusDlg)
	ON_BN_CLICKED(IDC_ADD, OnAdd)
	ON_BN_CLICKED(IDC_CHAXU, OnChaxu)
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
	ON_BN_CLICKED(IDC_XIUGAI, OnXiugai)
	ON_BN_CLICKED(IDC_SHACHU, OnShachu)
	ON_BN_CLICKED(IDC_SELECT, OnSelect)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CBusDlg message handlers

BOOL CBusDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_listBus.InsertColumn(0,"");
	m_listBus.InsertColumn(1,"序号");
	m_listBus.InsertColumn(2,"设台单位");
	m_listBus.InsertColumn(3,"车牌号码");
	m_listBus.InsertColumn(4,"发射频率");
	m_listBus.InsertColumn(5,"接收频率");
	m_listBus.InsertColumn(6,"设备型号");
	m_listBus.InsertColumn(7,"功率");
	m_listBus.InsertColumn(8,"机身码");
	m_listBus.InsertColumn(9,"出证日期");
	m_listBus.InsertColumn(10,"有效日期");


	RECT rect;
	m_listBus.GetWindowRect(&rect);

	int wid=rect.right-rect.left;

	m_listBus.SetColumnWidth(0,wid/1000);
	m_listBus.SetColumnWidth(1,wid*99/1000);
	m_listBus.SetColumnWidth(2,wid/10);
	m_listBus.SetColumnWidth(3,wid/10);
	m_listBus.SetColumnWidth(4,wid/10);
	m_listBus.SetColumnWidth(5,wid/10);
	m_listBus.SetColumnWidth(6,wid/10);
	m_listBus.SetColumnWidth(7,wid/10);
	m_listBus.SetColumnWidth(8,wid/10);
	m_listBus.SetColumnWidth(9,wid/10);
	m_listBus.SetColumnWidth(10,wid/10);

	m_listBus.SetExtendedStyle(LVS_EX_FULLROWSELECT);

	RefreshData();
	CFont *hOldFont,hFont;	
	hFont.CreateFont(100,100,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,"楷体_GB2312");   
	CWnd   *pWnd   =   GetDlgItem(IDC_BUSSTATIC);   
	pWnd->SetFont(&hFont);   

	GetDlgItem(IDC_BUSSTATIC)->SetWindowText("深圳市车载对讲机执照");
	/*
	CString strSQL;
		strSQL.Format("select top 1 num from BusMa order by num desc");
*/
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CBusDlg::RefreshData()
{
	
	//确保数据库被打开
	if(!m_database.IsOpen())
	{
		m_database.Open(_T("InPone"));
	}
    
	//对m_listgh控件内容的更新
	//清空原来已经显示的内容
	m_listBus.DeleteAllItems();
    //创建记录集
	CBusSet3	m_busset(&m_database);
	CString		strSQL;

	strSQL.Format("select * from BusMa");            
	m_busset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);

	CDBVariant varValue;

	if(m_busset.GetRecordCount()!=0)
		m_busset.MoveFirst();

	char	buf[20];
	int		i=0;

	while(!m_busset.IsEOF())
	{
		int temp=0;
		
		//对整型数的显示处理
		m_busset.GetFieldValue(temp,varValue);
		sprintf(buf,"%d",varValue.m_iVal);
		m_listBus.InsertItem(i,buf);
		
		/*m_busset.GetFieldValue(1,varValue);
		m_listBus.InsertItem(i,varValue.m_pstring->GetBuffer(1));
		*/
		//对字符串的显示处理
		m_busset.GetFieldValue(1,varValue);
		m_listBus.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(2,varValue);
		m_listBus.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(3,varValue);
		m_listBus.SetItemText(i,3,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(4,varValue);
		m_listBus.SetItemText(i,4,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(5,varValue);
		m_listBus.SetItemText(i,5,varValue.m_pstring->GetBuffer(1));
	
		m_busset.GetFieldValue(6,varValue);
		m_listBus.SetItemText(i,6,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(7,varValue);
		m_listBus.SetItemText(i,7,varValue.m_pstring->GetBuffer(1));
	
		m_busset.GetFieldValue(8,varValue);
		m_listBus.SetItemText(i,8,varValue.m_pstring->GetBuffer(1));
				
		m_busset.GetFieldValue(9,varValue);
		m_listBus.SetItemText(i,9,varValue.m_pstring->GetBuffer(1));
		m_busset.GetFieldValue(10,varValue);
		m_listBus.SetItemText(i,10,varValue.m_pstring->GetBuffer(1));
	//	m_devghset.GetFieldValue(7,varValue);
	//	m_listgh.SetItemText(i,7,varValue.m_pstring->GetBuffer(1));
		
		m_busset.MoveNext();
		
		i++;
	}


}

void CBusDlg::OnAdd() 
{
	// TODO: Add your control notification handler code here


	CTime t;
	CAdbusDlg m_dlg;

	if (m_dlg.DoModal()!=IDOK)
		return;
	t = CTime::GetCurrentTime();
	char dtstr[64];
	char dtstry[64];
	memset(dtstr,0,sizeof(dtstr));
	memset(dtstry,0,sizeof(dtstry));

	_snprintf(dtstr,sizeof(dtstr),"%d%02d%02d",t.GetYear(),t.GetMonth(),t.GetDay());

	_snprintf(dtstry,sizeof(dtstry),"%d%02d%02d",t.GetYear()+1,t.GetMonth(),t.GetDay());

    CBusSet3 m_set(&m_database);
	CString strSQL;
	CDBVariant	varValue;
	char		buf[20];
	int			i=0;
	int			temp=0;
	int			num;


		
	//对整型数的显示处理
	try
	{
		strSQL.Format("select top 1 * from BusMa order by num desc");
		
		m_set.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
		if(m_set.GetRecordCount()==0)
		{
			num = 1;
		}
		else
		{
			m_set.GetFieldValue(1,varValue);
			
			num = atoi(varValue.m_pstring->GetBuffer(1))+1;
		}
		/*
		m_set.GetFieldValue(1,varValue);
		AfxMessageBox(varValue.m_pstring->GetBuffer(1));
		num = atoi(varValue.m_pstring->GetBuffer(1))+1;
		
		  */char buf[32];
		CString buftemp;
		memset(buf,0x00,sizeof(buf));
		sprintf(buf,"%06d",num);
		buftemp.Format("%s",buf);
	
		if (m_set.IsOpen())
			m_set.Close();
		m_set.m_strFilter.Format("Place='%s'order by ID ASC",m_dlg.m_stw.operator LPCTSTR());
        m_set.Open(CRecordset::snapshot,NULL,CRecordset::none);
		m_set.AddNew();
		//sprintf(m_set.m_num,"%d",num);
		m_set.m_num = buftemp;
		m_set.m_Place = m_dlg.m_stw;
		m_set.m_Ran=m_dlg.m_cph;
		m_set.m_Fpl=m_dlg.m_fp;
		m_set.m_Jpl=m_dlg.m_jp;
		m_set.m_Sxh=m_dlg.m_shx;
		m_set.m_Gl=m_dlg.m_gl;
		m_set.m_Jsm=m_dlg.m_jsm;
		m_set.m_Fj.Format("%s",dtstr);
		m_set.m_Yj.Format("%s",dtstry);
		if(m_set.CanUpdate())
		{
			m_set.Update();
		}
		if(m_set.IsOpen())
			m_set.Close();
		RefreshData();
	}
	catch(CDBException *e)
	{
		e->ReportError();
		return;
	}

}

void CBusDlg::OnChaxu() 
{
	// TODO: Add your control notification handler code here
/*	
	
	*/
}

void CBusDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here

	memset(AddTemp,0x00,sizeof(AddTemp));
	int i=m_listBus.GetSelectionMark();
    //m_edit=m_listBus.GetItemText(i,1);
	//m_devname=m_list.GetItemText(i,2);
	//m_devinfo=m_list.GetItemText(i,3);
	//m_mark=m_list.GetItemText(i,4);
	m_no	= m_listBus.GetItemText(i,1);
	m_stw	= m_listBus.GetItemText(i,2);

	m_cp	= m_listBus.GetItemText(i,3);
	m_fp	= m_listBus.GetItemText(i,4);
	m_jp	= m_listBus.GetItemText(i,5);
	m_gl	= m_listBus.GetItemText(i,6);
	m_sx	= m_listBus.GetItemText(i,7);
	m_jsb	= m_listBus.GetItemText(i,8);
	m_fj	= m_listBus.GetItemText(i,9);
	m_yj	= m_listBus.GetItemText(i,10);
	for(int j =2;j<=8;j++)
	{	
		strcat(AddTemp,m_listBus.GetItemText(i,j));
		strcat(AddTemp,"|");


	}
/*
	strcat(temp,m_listBus.GetItemText(i,2));
	strcat(temp,"|");
		
	strcat(temp,m_listBus.GetItemText(i,3));
	strcat(temp,"|");

	strcat(temp,m_listBus.GetItemText(i,4));
	strcat(temp,"|");

	strcat(temp,m_listBus.GetItemText(i,5));
	strcat(temp,"|");

	strcat(temp,m_listBus.GetItemText(i,6));
	strcat(temp,"|");

	strcat(temp,m_listBus.GetItemText(i,7));
	strcat(temp,"|");
*/
    UpdateData(FALSE);
	
	*pResult = 0;
}

void CBusDlg::OnXiugai() 
{
	// TODO: Add your control notification handler code here
	
	UpdateData();

	CBusxgDlg	m_sbxgdlg;
	CTime		t;
	char		dtstr[64];
	char		dtstry[64];

	t = CTime::GetCurrentTime();

	memset(dtstr,0,sizeof(dtstr));
	memset(dtstry,0,sizeof(dtstry));

	_snprintf(dtstr,sizeof(dtstr),"%d%02d%02d",t.GetYear(),t.GetMonth(),t.GetDay());

	_snprintf(dtstry,sizeof(dtstry),"%d%02d%02d",t.GetYear()+1,t.GetMonth(),t.GetDay());

	int	   i=m_listBus.GetSelectionMark();
	if(i==-1)
	{
		MessageBox("请选择一条记录!");
	}
	else
	{
	m_sbxgdlg.m_no	= m_listBus.GetItemText(i,1);
	m_sbxgdlg.m_stw	= m_listBus.GetItemText(i,2);
	m_sbxgdlg.m_cph	= m_listBus.GetItemText(i,3);
	m_sbxgdlg.m_fp	= m_listBus.GetItemText(i,4);
	m_sbxgdlg.m_jp	= m_listBus.GetItemText(i,5);
	m_sbxgdlg.m_sx	= m_listBus.GetItemText(i,6);
	m_sbxgdlg.m_gl	= m_listBus.GetItemText(i,7);
	m_sbxgdlg.m_jsm	= m_listBus.GetItemText(i,8);
	//UpdateData(FALSE);

	if(m_sbxgdlg.DoModal()!=IDOK)
	{
		return;
	}

	int			keyid=atoi(m_listBus.GetItemText(i,0));
	CBusSet3	m_set;
	

	try
	{
		if(m_set.IsOpen())
			m_set.Close();
		
		m_set.m_strFilter.Format("num='%s' order by ID ASC",m_sbxgdlg.m_no.operator LPCTSTR());
		
	//	m_set.m_strFilter.Format("select * from BusMa where num like 'keyid'");
		m_set.Open(CRecordset::snapshot,NULL,CRecordset::none);
			
		if(m_set.IsOpen()&&!m_set.IsEOF())
		{
			m_set.Edit();
			m_set.m_Place	= m_sbxgdlg.m_stw;
			m_set.m_Ran		= m_sbxgdlg.m_cph;
			m_set.m_Fpl		= m_sbxgdlg.m_fp;
			m_set.m_Jpl		= m_sbxgdlg.m_jp;
			m_set.m_Sxh		= m_sbxgdlg.m_sx;
			m_set.m_Gl		= m_sbxgdlg.m_gl;
			m_set.m_Jsm		= m_sbxgdlg.m_jsm;
			m_set.m_Fj.Format("%s",dtstr);
			m_set.m_Yj.Format("%s",dtstry);
			//如果可以更新,则更新到数据库
			if(m_set.CanUpdate())
			{
				m_set.Update();
			}

			//更新完毕,关闭数据库
			if(m_set.IsOpen())
				m_set.Close();
			AfxMessageBox("修改成功!");
		}	
		else
			{
				
				if(m_set.IsOpen())
					m_set.Close();
				AfxMessageBox("该记录不存在,无法修改!");
				return;
			}	
		
		}
	
		catch(CDBException *e)
		{
			e->ReportError();
			return;
		}
	}
	RefreshData();

}

void CBusDlg::OnShachu() 
{
	// TODO: Add your control notification handler code here
	int		i=m_listBus.GetSelectionMark();
	CString strSQL;
	CString temp;


	if (i==-1)
	{
		MessageBox("请选择一条记录!");
	}

	else
	{
	
		if(MessageBox("请确定是否要删除","标题",MB_OKCANCEL)==IDCANCEL)
			return;
		int keyid=atoi(m_listBus.GetItemText(i,0));	
		strSQL.Format("delete from BusMa where ID=%d",keyid);
		//strSQL.Format("delete from BusMa where num=%s",m_listBus.GetItemText(i,0));
		m_database.ExecuteSQL(strSQL);
		m_database.Close();
		RefreshData();
	}

}

void CBusDlg::OnSelect() 
{
	// TODO: Add your control notification handler code here
	UpdateData(TRUE);
	m_stw.TrimRight("");
	
	if(m_stw.GetLength()<=0)
	{
		AfxMessageBox("请输入设台单位进行查询");
		return;
	}


/*	if(!m_database.IsOpen())
	{
		m_database.Open(_T("InPone"));
	}
	*/
	m_listBus.DeleteAllItems();
	CBusSet3 m_busset(&m_database);
	CString strSQL;
	strSQL.Format("select * from BusMa where Place like '"+m_stw+"'");
	//strSQL.Format("select * from BusMa" );//where Place like '"+m_stw+"'");
	m_busset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	CDBVariant varValue;
	if(m_busset.GetRecordCount()!=0)
		m_busset.MoveFirst();
	char buf[20];
	int i=0;
	while(!m_busset.IsEOF())
	{
		int temp=0;
		
		//对整型数的显示处理
		m_busset.GetFieldValue(temp,varValue);
		sprintf(buf,"%d",varValue.m_iVal);
		m_listBus.InsertItem(i,buf);
		
		/*m_busset.GetFieldValue(1,varValue);
		m_listBus.InsertItem(i,varValue.m_pstring->GetBuffer(1));
		*/
		//对字符串的显示处理
		m_busset.GetFieldValue(1,varValue);
		m_listBus.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(2,varValue);
		m_listBus.SetItemText(i,2,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(3,varValue);
		m_listBus.SetItemText(i,3,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(4,varValue);
		m_listBus.SetItemText(i,4,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(5,varValue);
		m_listBus.SetItemText(i,5,varValue.m_pstring->GetBuffer(1));
	
		m_busset.GetFieldValue(6,varValue);
		m_listBus.SetItemText(i,6,varValue.m_pstring->GetBuffer(1));
		
		m_busset.GetFieldValue(7,varValue);
		m_listBus.SetItemText(i,7,varValue.m_pstring->GetBuffer(1));
	
		m_busset.GetFieldValue(8,varValue);
		m_listBus.SetItemText(i,8,varValue.m_pstring->GetBuffer(1));
				
		m_busset.GetFieldValue(9,varValue);
		m_listBus.SetItemText(i,9,varValue.m_pstring->GetBuffer(1));
		m_busset.GetFieldValue(10,varValue);
		m_listBus.SetItemText(i,10,varValue.m_pstring->GetBuffer(1));
	//	m_devghset.GetFieldValue(7,varValue);
	//	m_listgh.SetItemText(i,7,varValue.m_pstring->GetBuffer(1));
		
		m_busset.MoveNext();
		
		i++;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -