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

📄 paraplane.cpp

📁 基于SQLSERVER2000的机械工艺数据库系统
💻 CPP
字号:
// PARAPLANE.cpp : implementation file
//

#include "stdafx.h"
#include "knc_mis.h"
#include "PARAPLANE.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPARAPLANE dialog


CPARAPLANE::CPARAPLANE(CWnd* pParent /*=NULL*/)
	: CDialog(CPARAPLANE::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPARAPLANE)
	m_sMotorspeed = _T("");
	m_sCutdepth = _T("");
	m_sFeedrate = _T("");
	m_sRoughness = _T("");
	m_sPismaterial = _T("");
	m_sTool = _T("");
	m_sPismaterialneed = _T("");
	m_sToolneed = _T("");
	m_sID = _T("");
	m_sRoughnessneed = _T("");
	//}}AFX_DATA_INIT
}


void CPARAPLANE::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPARAPLANE)
	DDX_Control(pDX, IDC_LIST3, m_Planeresultlist);
	DDX_Control(pDX, IDC_LIST2, m_Planelist);
	DDX_Text(pDX, IDC_EDIT5, m_sMotorspeed);
	DDX_Text(pDX, IDC_EDIT3, m_sCutdepth);
	DDX_Text(pDX, IDC_EDIT6, m_sFeedrate);
	DDX_Text(pDX, IDC_EDIT20, m_sRoughness);
	DDX_Text(pDX, IDC_EDIT18, m_sPismaterial);
	DDX_Text(pDX, IDC_EDIT21, m_sTool);
	DDX_Text(pDX, IDC_EDIT15, m_sPismaterialneed);
	DDX_Text(pDX, IDC_EDIT16, m_sToolneed);
	DDX_Text(pDX, IDC_EDIT1, m_sID);
	DDX_Text(pDX, IDC_EDIT2, m_sRoughnessneed);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPARAPLANE, CDialog)
	//{{AFX_MSG_MAP(CPARAPLANE)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	ON_BN_CLICKED(IDC_PlaneAdd, OnPlaneAdd)
	ON_BN_CLICKED(IDC_PlaneDelete, OnPlaneDelete)
	ON_BN_CLICKED(IDC_PlaneModify, OnPlaneModify)
	ON_BN_CLICKED(IDC_PlaneQuery, OnPlaneQuery)
	ON_BN_CLICKED(IDC_PlaneSave, OnPlaneSave)
	ON_BN_CLICKED(IDC_PlaneClear, OnPlaneClear)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPARAPLANE message handlers

void CPARAPLANE::OnClickList2(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here
		UpdateData(true);
	POSITION pos = m_Planelist.GetFirstSelectedItemPosition();
	if(pos)
	{
		int nFirstSelItem = m_Planelist.GetNextSelectedItem(pos);
		m_sID=m_Planelist.GetItemText(nFirstSelItem,0);
		m_sMotorspeed=m_Planelist.GetItemText(nFirstSelItem,1);
		m_sCutdepth=m_Planelist.GetItemText(nFirstSelItem,2);
		m_sFeedrate=m_Planelist.GetItemText(nFirstSelItem,3);
        m_sRoughness=m_Planelist.GetItemText(nFirstSelItem,4);
		m_sPismaterial=m_Planelist.GetItemText(nFirstSelItem,5);
		m_sTool=m_Planelist.GetItemText(nFirstSelItem,6);
		//还差一个图片的显示
	}
	//AfxMessageBox(str);
	bt_delete->EnableWindow(true);
	bt_modify->EnableWindow(true);

	UpdateData(false);
	
	*pResult = 0;
}

void CPARAPLANE::OnPlaneAdd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	m_sID="";
	m_sCutdepth="";
	m_sFeedrate="";
	m_sMotorspeed="";
   	m_sPismaterial="";
	m_sPismaterialneed="";
	m_sRoughness="";
	m_sRoughnessneed="";
	m_sTool="";
	m_sToolneed="";

    tx_Cutdepth->EnableWindow(true);
	tx_Feedrate->EnableWindow(true);
    tx_Motorspeed->EnableWindow(true);
	tx_Pismaterial->EnableWindow(true);
	tx_Roughness->EnableWindow(true);
	tx_Tool->EnableWindow(true);
    tx_ID->EnableWindow(true);
	
	flag=1;
	bt_save->EnableWindow(true);
	bt_add->EnableWindow(false);
	bt_modify->EnableWindow(false);
	bt_delete->EnableWindow(false);
	UpdateData(false);		
}

void CPARAPLANE::OnPlaneDelete() 
{
	// TODO: Add your control notification handler code here
	// Del Records
    _variant_t  strQuery;
    strQuery = "select * from paraplane";
    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
 	POSITION pos = m_Planelist.GetFirstSelectedItemPosition();
    if ( pos == NULL ) 
 	{
 		AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
		return;
 	}
     else
	{
 		int iItem;       
		CString sID;
		while (pos)
		{
            iItem = m_Planelist.GetNextSelectedItem(pos);
             sID= m_Planelist.GetItemText(iItem, 0);
		    strQuery = "delete from paraplane where id='"+sID+"'";
	        theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    	m_Planelist.DeleteItem(iItem);
		}
 	}
    m_sID="";
	m_sCutdepth="";
	m_sFeedrate="";
	m_sMotorspeed="";
   	m_sPismaterial="";
	m_sPismaterialneed="";
	m_sRoughness="";
	m_sRoughnessneed="";
	m_sTool="";
	m_sToolneed="";

	bt_delete->EnableWindow(false);
	bt_modify->EnableWindow(false);
 	UpdateData(false);	
	
}

void CPARAPLANE::OnPlaneModify() 
{
	// TODO: Add your control notification handler code here
	tx_Cutdepth->EnableWindow(true);
	tx_Feedrate->EnableWindow(true);
    tx_Motorspeed->EnableWindow(true);
	tx_Pismaterial->EnableWindow(true);
	tx_Roughness->EnableWindow(true);
	tx_Tool->EnableWindow(true);
	tx_ID->EnableWindow(true);
	flag=2;
	bt_save->EnableWindow(true);
	bt_delete->EnableWindow(false);
	bt_modify->EnableWindow(false);
	
}

void CPARAPLANE::OnPlaneQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);	
	_variant_t  strQuery,Holder;
    strQuery = "select * from paraplane where planear='"+m_sRoughnessneed+"' and wpmaterial='"+m_sPismaterialneed+"' and toolmaterial='"+m_sToolneed+"' order by planear asc";
    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    CString str;
	int iCounta = theApp.m_pADOSet->GetRecordCount();
	if (0==iCounta) 
	{   AfxMessageBox(_T("没有相关记录!"), MB_ICONEXCLAMATION);
		return;
	}
	theApp.m_pADOSet->MoveFirst();
	for (int k=0; k<iCounta; k++)
    {	// Get spindle
		Holder = theApp.m_pADOSet->GetCollect("motorspindle");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planeresultlist.InsertItem(k, str);
		// Get cutdepth
		Holder = theApp.m_pADOSet->GetCollect("cutdepth");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planeresultlist.SetItemText(k, 1, str);
	    // Get feedrate
        Holder = theApp.m_pADOSet->GetCollect("feedrate");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
      	m_Planeresultlist.SetItemText(k, 2, str);
		theApp.m_pADOSet->MoveNext();
	}
	UpdateData(false);
}

void CPARAPLANE::OnPlaneSave() 
{
	// TODO: Add your control notification handler code here
		UpdateData(true);
	// Make sure all needed info is available
	CString sWarning="";
	if ( ""==m_sID ) sWarning=_T("编号");
    else if ( ""==m_sCutdepth) sWarning=_T("切削深度");
	else if ( ""==m_sFeedrate) sWarning=_T("进给量");
	else if ( ""==m_sMotorspeed) sWarning=_T("电主轴转速");


    if ( ""!=sWarning ) 
	{
	   sWarning += _T("不能为空");
	   AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
	   return;
	}
	_variant_t strQuery;
	if(flag==1)  //添加记录
	{
		// Judge ID is unique
	    strQuery = "select * from paraplane where id='"+m_sID+"'";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    int iCount = theApp.m_pADOSet->GetRecordCount();
	    if ( 0!=iCount )
		{
	       AfxMessageBox(_T("已经存在此刀具记录!"), MB_ICONEXCLAMATION);
	       return;
		}
	}
else if(flag==2)//修改
	{  //删除旧记录
		strQuery = "delete from paraplane where id='"+m_sID+"'";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	}
	// Insert Record
	strQuery = "insert paraplane (id, motorspindle, cutdepth,feedrate,planear,wpmaterial,toolmaterial) \
		        values ('"+m_sID+"', '"+m_sMotorspeed+"', '"+m_sCutdepth+"','"+m_sFeedrate+"','"+m_sRoughness+"','"+m_sPismaterial+"','"+m_sTool+"')";
  int iItem;
  POSITION pos = m_Planelist.GetFirstSelectedItemPosition();
  iItem = m_Planelist.GetNextSelectedItem(pos);
	m_Planelist.DeleteItem(iItem);  
	//更新列表框数据
	int j;
	j=m_Planelist.GetItemCount();
	m_Planelist.InsertItem(j, m_sID);
    m_Planelist.SetItemText(j, 1 , m_sMotorspeed);
    m_Planelist.SetItemText(j, 2 , m_sCutdepth);
	m_Planelist.SetItemText(j, 3 , m_sFeedrate);
    m_Planelist.SetItemText(j, 4 , m_sRoughness);
    m_Planelist.SetItemText(j, 5 , m_sPismaterial);
	m_Planelist.SetItemText(j, 6 , m_sTool);


	if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) 
	{
	    if (flag==1) 
		{
			AfxMessageBox(_T("添加加工用量信息成功!"), MB_ICONINFORMATION);
	        // Clear all input
       m_sID=m_sMotorspeed=m_sCutdepth=m_sFeedrate=m_sRoughness=m_sPismaterial=m_sTool="";
            UpdateData(false);
		}
		else AfxMessageBox(_T("修改加工用量信息成功!"), MB_ICONINFORMATION);
	}
	else 
	{
		if (flag==1) AfxMessageBox(_T("添加加工用量信息失败!"), MB_ICONEXCLAMATION);
		else AfxMessageBox(_T("修改加工用量信息失败!"), MB_ICONEXCLAMATION);
	}
   	tx_Cutdepth->EnableWindow(false);
	tx_Feedrate->EnableWindow(false);
    tx_Motorspeed->EnableWindow(false);
	tx_Pismaterial->EnableWindow(false);
	tx_Roughness->EnableWindow(false);
	tx_Tool->EnableWindow(false);
	tx_ID->EnableWindow(false);
	
	bt_add->EnableWindow(true);
	bt_save->EnableWindow(false);
	bt_modify->EnableWindow(false);
	bt_delete->EnableWindow(false);
	
}

BOOL CPARAPLANE::OnInitDialog() 
{
	 CDialog::OnInitDialog();
	_variant_t strQuery, Holder;
	CString str;
	DWORD style;
	style=m_Planelist.GetExStyle();
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
	m_Planelist.SetExtendedStyle(style);
	m_Planeresultlist.SetExtendedStyle(style);
	m_sOldID = m_sID;
	// Set Color
	//m_Codelist.SetBkColor(RGB(177, 151, 240));
//	m_Codelist.SetTextColor(RGB(0,0,0));
//	m_Codelist.SetTextBkColor(RGB(177, 151, 240));
    // 设置表字段
	m_Planelist.InsertColumn(0,"编号",LVCFMT_LEFT,100);
	m_Planelist.InsertColumn(1,"电主轴转速",LVCFMT_LEFT,100);
	m_Planelist.InsertColumn(2,"切削深度",LVCFMT_LEFT,100);
 	m_Planelist.InsertColumn(3,"进给速度",LVCFMT_LEFT,100);
    m_Planelist.InsertColumn(4,"表面精度",LVCFMT_LEFT,100);
	m_Planelist.InsertColumn(5,"工件材料",LVCFMT_LEFT,100);
	m_Planelist.InsertColumn(6,"刀具",LVCFMT_LEFT,100);

	m_Planeresultlist.InsertColumn(0,"电主轴转速",LVCFMT_LEFT,85);
	m_Planeresultlist.InsertColumn(1,"切削深度",LVCFMT_LEFT,85);
 	m_Planeresultlist.InsertColumn(2,"进给速度",LVCFMT_LEFT,85);
	flag=0;
	
	tx_Cutdepth=GetDlgItem(IDC_EDIT3);
	tx_Feedrate=GetDlgItem(IDC_EDIT6);
    tx_Motorspeed=GetDlgItem(IDC_EDIT5);
	tx_Pismaterial=GetDlgItem(IDC_EDIT18);
	tx_Roughness=GetDlgItem(IDC_EDIT20);
	tx_Tool=GetDlgItem(IDC_EDIT21);
	tx_ID=GetDlgItem(IDC_EDIT1);

	bt_add=GetDlgItem(IDC_PlaneAdd);
	bt_save=GetDlgItem(IDC_PlaneSave);
	bt_modify=GetDlgItem(IDC_PlaneModify);
	bt_delete=GetDlgItem(IDC_PlaneDelete);
    bt_query=GetDlgItem(IDC_PlaneQuery);

    tx_Cutdepth->EnableWindow(false);
	tx_Feedrate->EnableWindow(false);
    tx_Motorspeed->EnableWindow(false);
	tx_Pismaterial->EnableWindow(false);
	tx_Roughness->EnableWindow(false);
	tx_Tool->EnableWindow(false);
	tx_ID->EnableWindow(false);
  	
	bt_add->EnableWindow(true);
	bt_save->EnableWindow(false);
	bt_modify->EnableWindow(false);
	bt_delete->EnableWindow(false);



//列表框数据初始化
	strQuery = "select * from paraplane";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
    int iCount = theApp.m_pADOSet->GetRecordCount();
	if (0==iCount) return 0;
	theApp.m_pADOSet->MoveFirst();
	for (int i=0; i<iCount; i++)
    {	// Get id
		Holder = theApp.m_pADOSet->GetCollect("id");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.InsertItem(i, str);
		// Get motorspindle
		Holder = theApp.m_pADOSet->GetCollect("motorspindle");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.SetItemText(i, 1, str);
	    // Get cutdepth
        Holder = theApp.m_pADOSet->GetCollect("cutdepth");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.SetItemText(i, 2, str);
		// Get feedrate
        Holder = theApp.m_pADOSet->GetCollect("feedrate");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.SetItemText(i, 3, str);
		// Get planea
        Holder = theApp.m_pADOSet->GetCollect("planear");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.SetItemText(i, 4, str);
		// Get wpmaterial
        Holder = theApp.m_pADOSet->GetCollect("wpmaterial");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.SetItemText(i, 5, str);
		// Get toolmaterial
        Holder = theApp.m_pADOSet->GetCollect("toolmaterial");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Planelist.SetItemText(i, 6, str);

		theApp.m_pADOSet->MoveNext();
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CPARAPLANE::OnPlaneClear() 
{
	// TODO: Add your control notification handler code here
	m_sRoughnessneed="";
	m_sPismaterialneed="";
	m_sToolneed="";

	while ( m_Planeresultlist.DeleteItem (0))
    UpdateData(false);
}

⌨️ 快捷键说明

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