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

📄 paraturn.cpp

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

#include "stdafx.h"
#include "knc_mis.h"
#include "PARATURN.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPARATURN dialog


CPARATURN::CPARATURN(CWnd* pParent /*=NULL*/)
	: CDialog(CPARATURN::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPARATURN)
	m_sID = _T("");
	m_sDia = _T("");
	m_sSpindlespeed = _T("");
	m_sCutdepth = _T("");
	m_sFeedrate = _T("");
	m_sRoughness = _T("");
	m_sPismaterial = _T("");
	m_sTool = _T("");
	m_sDianeed = _T("");
	m_sPismaterialneed = _T("");
	m_sToolneed = _T("");
	//}}AFX_DATA_INIT
}


void CPARATURN::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPARATURN)
	DDX_Control(pDX, IDC_LIST1, m_Pturnresultlist);
	DDX_Control(pDX, IDC_LIST2, m_Pturnlist);
	DDX_Text(pDX, IDC_EDIT23, m_sID);
	DDX_Text(pDX, IDC_EDIT1, m_sDia);
	DDX_Text(pDX, IDC_EDIT2, m_sSpindlespeed);
	DDX_Text(pDX, IDC_EDIT3, m_sCutdepth);
	DDX_Text(pDX, IDC_EDIT6, m_sFeedrate);
	DDX_Text(pDX, IDC_EDIT22, m_sRoughness);
	DDX_Text(pDX, IDC_EDIT20, m_sPismaterial);
	DDX_Text(pDX, IDC_EDIT18, m_sTool);
	DDX_Text(pDX, IDC_EDIT5, m_sDianeed);
	DDX_Text(pDX, IDC_EDIT12, m_sPismaterialneed);
	DDX_Text(pDX, IDC_EDIT15, m_sToolneed);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPARATURN, CDialog)
	//{{AFX_MSG_MAP(CPARATURN)
	ON_BN_CLICKED(IDC_PturnAdd, OnPturnAdd)
	ON_BN_CLICKED(IDC_PturnDelete, OnPturnDelete)
	ON_BN_CLICKED(IDC_PturnModify, OnPturnModify)
	ON_BN_CLICKED(IDC_PturnQuery, OnPturnQuery)
	ON_BN_CLICKED(IDC_PturnSave, OnPturnSave)
	ON_NOTIFY(NM_CLICK, IDC_LIST2, OnClickList2)
	ON_BN_CLICKED(IDC_PturnClear, OnPturnClear)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPARATURN message handlers

BOOL CPARATURN::OnInitDialog() 
{
	CDialog::OnInitDialog();
	_variant_t strQuery, Holder;
	CString str;
	DWORD style;
	style=m_Pturnlist.GetExStyle();
	style=(style|LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT)&(~LVS_EX_CHECKBOXES) ;
	m_Pturnlist.SetExtendedStyle(style);
	m_Pturnresultlist.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_Pturnlist.InsertColumn(0,"编号",LVCFMT_LEFT,100);
	m_Pturnlist.InsertColumn(1,"轴径大小",LVCFMT_LEFT,100);
	m_Pturnlist.InsertColumn(2,"主轴转速",LVCFMT_LEFT,100);
 	m_Pturnlist.InsertColumn(3,"切削深度",LVCFMT_LEFT,100);
    m_Pturnlist.InsertColumn(4,"进给速度",LVCFMT_LEFT,100);
	m_Pturnlist.InsertColumn(5,"表面精度",LVCFMT_LEFT,100);
	m_Pturnlist.InsertColumn(6,"工件材料",LVCFMT_LEFT,100);
	m_Pturnlist.InsertColumn(7,"刀具",LVCFMT_LEFT,100);

	m_Pturnresultlist.InsertColumn(0,"主轴转速",LVCFMT_LEFT,85);
	m_Pturnresultlist.InsertColumn(1,"切削深度",LVCFMT_LEFT,85);
 	m_Pturnresultlist.InsertColumn(2,"进给速度",LVCFMT_LEFT,85);
	flag=0;
	
	tx_Cutdepth=GetDlgItem(IDC_EDIT3);
	tx_Dia=GetDlgItem(IDC_EDIT1);
	tx_Feedrate=GetDlgItem(IDC_EDIT6);
    tx_Spindlespeed=GetDlgItem(IDC_EDIT2);
	tx_Pismaterial=GetDlgItem(IDC_EDIT20);
	tx_Roughness=GetDlgItem(IDC_EDIT22);
	tx_Tool=GetDlgItem(IDC_EDIT18);
	tx_ID=GetDlgItem(IDC_EDIT23);

	bt_add=GetDlgItem(IDC_PturnAdd);
	bt_save=GetDlgItem(IDC_PturnSave);
	bt_modify=GetDlgItem(IDC_PturnModify);
	bt_delete=GetDlgItem(IDC_PturnDelete);
    bt_query=GetDlgItem(IDC_PturnQuery);

    tx_Cutdepth->EnableWindow(false);
	tx_Dia->EnableWindow(false);
	tx_Feedrate->EnableWindow(false);
    tx_Spindlespeed->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 paraturn";
	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_Pturnlist.InsertItem(i, str);
		// Get shaftdia
		Holder = theApp.m_pADOSet->GetCollect("shaftdia");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 1, str);
	    // Get spindle
        Holder = theApp.m_pADOSet->GetCollect("spindle");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 2, str);
		// Get cutdepth
        Holder = theApp.m_pADOSet->GetCollect("cutdepth");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 3, str);
		// Get feedrate
        Holder = theApp.m_pADOSet->GetCollect("feedrate");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 4, str);
		// Get turnar
        Holder = theApp.m_pADOSet->GetCollect("turnar");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 5, str);
		// Get wpmaterial
        Holder = theApp.m_pADOSet->GetCollect("wpmaterial");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 6, str);
		// Get toolmaterial
        Holder = theApp.m_pADOSet->GetCollect("toolmaterial");
	   	str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnlist.SetItemText(i, 7, 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 CPARATURN::OnPturnAdd() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);
	m_sID="";
	m_sCutdepth="";
	m_sFeedrate="";
	m_sSpindlespeed="";
   	m_sPismaterial="";
	m_sPismaterialneed="";
	m_sRoughness="";
	m_sTool="";
	m_sToolneed="";
	m_sDia="";
	m_sDianeed="";

    tx_Cutdepth->EnableWindow(true);
	tx_Dia->EnableWindow(true);
	tx_Feedrate->EnableWindow(true);
    tx_Spindlespeed->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 CPARATURN::OnPturnDelete() 
{
	// TODO: Add your control notification handler code here
	// Del Records
    _variant_t  strQuery;
    strQuery = "select * from paraturn";
    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
 	POSITION pos = m_Pturnlist.GetFirstSelectedItemPosition();
    if ( pos == NULL ) 
 	{
 		AfxMessageBox(_T("没有选中的记录!"), MB_ICONEXCLAMATION);
		return;
 	}
     else
	{
 		int iItem;       
		CString sID;
		while (pos)
		{
            iItem = m_Pturnlist.GetNextSelectedItem(pos);
             sID= m_Pturnlist.GetItemText(iItem, 0);
		    strQuery = "delete from paraturn where id='"+sID+"'";
	        theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	    	m_Pturnlist.DeleteItem(iItem);
		}
 	}
    m_sID="";
	m_sCutdepth="";
	m_sFeedrate="";
	m_sSpindlespeed="";
   	m_sPismaterial="";
	m_sPismaterialneed="";
	m_sRoughness="";
	m_sTool="";
	m_sToolneed="";
	m_sDia="";
	m_sDianeed="";

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

void CPARATURN::OnPturnModify() 
{
	// TODO: Add your control notification handler code here
    tx_Cutdepth->EnableWindow(true);
	tx_Dia->EnableWindow(true);
	tx_Feedrate->EnableWindow(true);
    tx_Spindlespeed->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 CPARATURN::OnPturnQuery() 
{
	// TODO: Add your control notification handler code here
	UpdateData(true);	
	_variant_t  strQuery,Holder;
    strQuery = "select * from paraturn where shaftdia='"+m_sDianeed+"' and wpmaterial='"+m_sPismaterialneed+"' and toolmaterial='"+m_sToolneed+"' order by turnar 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("spindle");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnresultlist.InsertItem(k, str);
		// Get cutdepth
		Holder = theApp.m_pADOSet->GetCollect("cutdepth");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	    m_Pturnresultlist.SetItemText(k, 1, str);
	    // Get feedrate
        Holder = theApp.m_pADOSet->GetCollect("feedrate");
	    str = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
      	m_Pturnresultlist.SetItemText(k, 2, str);
		theApp.m_pADOSet->MoveNext();
	}
	UpdateData(false);	
}

void CPARATURN::OnPturnSave() 
{
	// 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_sSpindlespeed) sWarning=_T("电主轴转速");
	else if ( ""==m_sDia) sWarning=_T("轴径尺寸");


    if ( ""!=sWarning ) 
	{
	   sWarning += _T("不能为空");
	   AfxMessageBox(sWarning, MB_ICONEXCLAMATION);
	   return;
	}
	_variant_t strQuery;
	if(flag==1)  //添加记录
	{
		// Judge ID is unique
	    strQuery = "select * from paraturn 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 paraturn where id='"+m_sID+"'";
	    theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	}
	// Insert Record
	strQuery = "insert paraturn (id,shaftdia, spindle, cutdepth,feedrate,turnar,wpmaterial,toolmaterial) \
		        values ('"+m_sID+"', '"+m_sDia+"','"+m_sSpindlespeed+"', '"+m_sCutdepth+"','"+m_sFeedrate+"','"+m_sRoughness+"','"+m_sPismaterial+"','"+m_sTool+"')";
   int iItem;
  POSITION pos = m_Pturnlist.GetFirstSelectedItemPosition();
  iItem = m_Pturnlist.GetNextSelectedItem(pos);
	m_Pturnlist.DeleteItem(iItem); 
	//更新列表框数据
	int j;
	j=m_Pturnlist.GetItemCount();
	m_Pturnlist.InsertItem(j, m_sID);
	m_Pturnlist.SetItemText(j, 1 , m_sDia);
    m_Pturnlist.SetItemText(j, 2 , m_sSpindlespeed);
    m_Pturnlist.SetItemText(j, 3 , m_sCutdepth);
	m_Pturnlist.SetItemText(j, 4 , m_sFeedrate);
    m_Pturnlist.SetItemText(j, 5 , m_sRoughness);
    m_Pturnlist.SetItemText(j, 6 , m_sPismaterial);
	m_Pturnlist.SetItemText(j, 7 , m_sTool);


	if ( theApp.ADOExecute(theApp.m_pADOSet, strQuery) ) 
	{
	    if (flag==1) 
		{
			AfxMessageBox(_T("添加加工用量信息成功!"), MB_ICONINFORMATION);
	        // Clear all input
       m_sID=m_sDia=m_sSpindlespeed=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_Dia->EnableWindow(false);
	tx_Feedrate->EnableWindow(false);
    tx_Spindlespeed->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);
	
}

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

	UpdateData(false);
	
	*pResult = 0;
}

void CPARATURN::OnPturnClear() 
{
	// TODO: Add your control notification handler code here
	m_sDianeed="";
	m_sPismaterialneed="";
	m_sToolneed="";

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

⌨️ 快捷键说明

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