📄 page_standard_append.cpp
字号:
// Page_Standard_Append.cpp : implementation file
//
#include "stdafx.h"
#include "gear_cutter_database.h"
#include "Page_Standard_Append.h"
#include "math.h"
#define PI 3.1415926
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CPage_Standard_Append property page
IMPLEMENT_DYNCREATE(CPage_Standard_Append, CPropertyPage)
CPage_Standard_Append::CPage_Standard_Append() : CPropertyPage(CPage_Standard_Append::IDD)
{
//{{AFX_DATA_INIT(CPage_Standard_Append)
m_angle_gear_v = 0.0f;
m_bottom_dia_gear_v = 0.0f;
m_c_gear_v = 0.0f;
m_centerdist_gear1_v = 0.0f;
m_chao_angle_cutter_v = 0.0f;
m_dia_cutter_v = 0.0f;
m_helic_gear_v = 0.0f;
m_hole_dia_cutter_v = 0.0f;
m_hou_angle_cutter_v = 0.0f;
m_long_cutter_v = 0.0f;
m_margin_gear_v = 0.0f;
m_mn_gear_v = 0.0f;
m_nthick_gear_v = 0.0f;
m_num_cutter_v = _T("");
m_num_gear_v = _T("");
m_qian_angle_cutter_v = 0.0f;
m_thick_gear_v = 0.0f;
m_top_dia_gear_v = 0.0f;
m_top_dia_gear1_v = 0.0f;
m_tou_n_cutter_v = 0;
m_zn_cutter_v = 0;
m_zn_gear_v = 0;
m_zn_gear1_v = 0;
//}}AFX_DATA_INIT
}
CPage_Standard_Append::~CPage_Standard_Append()
{
}
void CPage_Standard_Append::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CPage_Standard_Append)
DDX_Control(pDX, IDC_LIST_result, m_list_result);
DDX_Control(pDX, IDC_LIST_data_gear, m_list_data_gear);
DDX_Control(pDX, IDC_EDIT_zn_gear2, m_zn_gear1);
DDX_Control(pDX, IDC_EDIT_zn_gear, m_zn_gear);
DDX_Control(pDX, IDC_EDIT_zn_cutter, m_zn_cutter);
DDX_Control(pDX, IDC_EDIT_tou_n_cutter, m_tou_n_cutter);
DDX_Control(pDX, IDC_EDIT_top_dia_gear2, m_top_dia_gear1);
DDX_Control(pDX, IDC_EDIT_top_dia_gear, m_top_dia_gear);
DDX_Control(pDX, IDC_EDIT_thick_gear, m_thick_gear);
DDX_Control(pDX, IDC_EDIT_qian_angle_cutter, m_qian_angle_cutter);
DDX_Control(pDX, IDC_EDIT_num_gear, m_num_gear);
DDX_Control(pDX, IDC_EDIT_num_cutter, m_num_cutter);
DDX_Control(pDX, IDC_EDIT_nthick_gear, m_nthick_gear);
DDX_Control(pDX, IDC_EDIT_mn_gear, m_mn_gear);
DDX_Control(pDX, IDC_EDIT_margin_gear, m_margin_gear);
DDX_Control(pDX, IDC_EDIT_long_cutter, m_long_cutter);
DDX_Control(pDX, IDC_EDIT_hou_angle_cutter, m_hou_angle_cutter);
DDX_Control(pDX, IDC_EDIT_hole_dia_cutter, m_hole_dia_cutter);
DDX_Control(pDX, IDC_EDIT_helic_gear, m_helic_gear);
DDX_Control(pDX, IDC_EDIT_dia_cutter, m_dia_cutter);
DDX_Control(pDX, IDC_EDIT_chao_angle_cutter, m_chao_angle_cutter);
DDX_Control(pDX, IDC_EDIT_centerdist_gear2, m_center_dist_gear1);
DDX_Control(pDX, IDC_EDIT_c_gear, m_c_gear);
DDX_Control(pDX, IDC_EDIT_bottom_dia_gear, m_bottom_dia_gear);
DDX_Control(pDX, IDC_EDIT_angle_gear, m_angle_gear);
DDX_Text(pDX, IDC_EDIT_num_gear, m_num_gear_v);
DDX_Text(pDX, IDC_EDIT_mn_gear, m_mn_gear_v);
DDX_Text(pDX, IDC_EDIT_zn_gear, m_zn_gear_v);
DDX_Text(pDX, IDC_EDIT_angle_gear, m_angle_gear_v);
DDX_Text(pDX, IDC_EDIT_helic_gear, m_helic_gear_v);
DDX_Text(pDX, IDC_EDIT_nthick_gear, m_nthick_gear_v);
DDX_Text(pDX, IDC_EDIT_top_dia_gear, m_top_dia_gear_v);
DDX_Text(pDX, IDC_EDIT_bottom_dia_gear, m_bottom_dia_gear_v);
DDX_Text(pDX, IDC_EDIT_thick_gear, m_thick_gear_v);
DDX_Text(pDX, IDC_EDIT_margin_gear, m_margin_gear_v);
DDX_Text(pDX, IDC_EDIT_c_gear, m_c_gear_v);
DDX_Text(pDX, IDC_EDIT_zn_gear2, m_zn_gear1_v);
DDX_Text(pDX, IDC_EDIT_top_dia_gear2, m_top_dia_gear1_v);
DDX_Text(pDX, IDC_EDIT_centerdist_gear2, m_centerdist_gear1_v);
DDX_Text(pDX, IDC_EDIT_num_cutter, m_num_cutter_v);
DDX_Text(pDX, IDC_EDIT_dia_cutter, m_dia_cutter_v);
DDX_Text(pDX, IDC_EDIT_hole_dia_cutter, m_hole_dia_cutter_v);
DDX_Text(pDX, IDC_EDIT_long_cutter, m_long_cutter_v);
DDX_Text(pDX, IDC_EDIT_zn_cutter, m_zn_cutter_v);
DDX_Text(pDX, IDC_EDIT_qian_angle_cutter, m_qian_angle_cutter_v);
DDX_Text(pDX, IDC_EDIT_hou_angle_cutter, m_hou_angle_cutter_v);
DDX_Text(pDX, IDC_EDIT_tou_n_cutter, m_tou_n_cutter_v);
DDX_Text(pDX, IDC_EDIT_chao_angle_cutter, m_chao_angle_cutter_v);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CPage_Standard_Append, CPropertyPage)
//{{AFX_MSG_MAP(CPage_Standard_Append)
ON_NOTIFY(NM_CLICK, IDC_LIST_data_gear, OnClicklistdatagear)
ON_BN_CLICKED(IDC_BUTTON_compute, OnBUTTONcompute)
ON_BN_CLICKED(IDC_BUTTON_to_file, OnBUTTONtofile)
ON_BN_CLICKED(IDC_BUTTON_to_database, OnBUTTONtodatabase)
ON_WM_DESTROY()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPage_Standard_Append message handlers
BOOL CPage_Standard_Append::OnInitDialog()
{
CPropertyPage::OnInitDialog();
try{
m_pdatabase=new CDatabase();
m_pset=new CRecordset();
m_pdatabase->Open(_T("gear_cutter_database"),FALSE,FALSE,_T("ODBC;DSN=gear_cutter_database"),FALSE);
m_pset->m_pDatabase=m_pdatabase;
}
catch(CDBException* e){
e->ReportError();
e->Delete();
delete m_pset;
delete m_pdatabase;
return TRUE;}
// TODO: Add extra initialization here
(CButton *)GetDlgItem(IDC_BUTTON_to_database)->EnableWindow(FALSE);
extern int symbol;
if(symbol==0)
{
IniListAppend();
init();
}
else
{
IniList();
init();
}
return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE
}
void CPage_Standard_Append::IniList()
{
extern CRecordset m_pset_gear;
if(!m_pset_gear.IsEOF())
{
m_pset_gear.MoveLast();
m_pset_gear.MoveFirst();
}
int nFieldCount=m_pset_gear.GetODBCFieldCount();
fields_count=nFieldCount;
CODBCFieldInfo fieldinfo;
for(int n=0;n<nFieldCount;n++)
{
m_pset_gear.GetODBCFieldInfo(n,fieldinfo);
int nWidth=m_list_data_gear.GetStringWidth(fieldinfo.m_strName)+35;
m_list_data_gear.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
}
CString strValue;
m_pset_gear.MoveFirst();
int nCount=0;
while(!m_pset_gear.IsEOF())
{
m_list_data_gear.InsertItem(nCount,strValue);
for(int j=0;j<nFieldCount;j++)
{
m_pset_gear.GetFieldValue(j,strValue);
m_list_data_gear.SetItemText(nCount,j,strValue);
}
m_pset_gear.MoveNext();
nCount++;
}
EndWaitCursor();
}
void CPage_Standard_Append::IniListAppend()
{
if(!m_pdatabase->IsOpen()) {MessageBox("数据获取失败!","提示",MB_ICONERROR+MB_OK);return;}
CString strSQL="select * from gear_table where 齿厚留剃余量=0 and 齿轮零件号 not in (select 齿轮零件号 from standard_hob_table) and 齿轮零件号 not in (select 齿轮零件号 from tiqian_tutai_hob_table) and 齿轮零件号 not in (select 齿轮零件号 from tiqian_no_tutai_hob_table)";
try
{
m_pset_list_append.m_pDatabase=m_pdatabase;
if(m_pset_list_append.IsOpen()) m_pset_list_append.Close();
m_pset_list_append.Open(CRecordset::dynaset,strSQL);
if(m_pset_list_append.GetRecordCount()==0)
{
return;
}
}
catch(CDBException* e)
{
e->Delete();
return;
}
if(!m_pset_list_append.IsEOF())
{
m_pset_list_append.MoveLast();
m_pset_list_append.MoveFirst();
}
int nFieldCount=m_pset_list_append.GetODBCFieldCount();
fields_count=nFieldCount;
CODBCFieldInfo fieldinfo;
for(int n=0;n<nFieldCount;n++)
{
m_pset_list_append.GetODBCFieldInfo(n,fieldinfo);
int nWidth=m_list_data_gear.GetStringWidth(fieldinfo.m_strName)+35;
m_list_data_gear.InsertColumn(n,fieldinfo.m_strName,LVCFMT_RIGHT,nWidth);
}
CString strValue;
m_pset_list_append.MoveFirst();
int nCount=0;
while(!m_pset_list_append.IsEOF())
{
m_list_data_gear.InsertItem(nCount,strValue);
for(int j=0;j<nFieldCount;j++)
{
m_pset_list_append.GetFieldValue(j,strValue);
m_list_data_gear.SetItemText(nCount,j,strValue);
}
m_pset_list_append.MoveNext();
nCount++;
}
EndWaitCursor();
}
void CPage_Standard_Append::OnClicklistdatagear(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
UINT uSelectedCount=m_list_data_gear.GetSelectedCount();
if(uSelectedCount>1||uSelectedCount==0)
{
if(uSelectedCount==0)
{
MessageBox("要选择一条记录!","提示",MB_ICONWARNING+MB_OK);
init();
clear_list();
return;
}
if(uSelectedCount>1)
{
MessageBox("只能选择一条记录!","提示",MB_ICONWARNING+MB_OK);
init();
clear_list();
return;
}
}
else
{
int nItemSel=0;
nItemSel=m_list_data_gear.GetNextItem(nItemSel-1,LVNI_SELECTED);
CString strID[20],strSQL;
for(int i=0;i<fields_count;i++)
strID[i]=m_list_data_gear.GetItemText(nItemSel,i);
m_num_gear.SetWindowText(strID[0]);
m_mn_gear.SetWindowText(strID[1]);
m_zn_gear.SetWindowText(strID[2]);
m_angle_gear.SetWindowText(strID[3]);
m_helic_gear.SetWindowText(strID[4]);
m_nthick_gear.SetWindowText(strID[5]);
m_top_dia_gear.SetWindowText(strID[6]);
m_bottom_dia_gear.SetWindowText(strID[7]);
m_thick_gear.SetWindowText(strID[8]);
m_margin_gear.SetWindowText(strID[9]);
m_c_gear.SetWindowText(strID[10]);
m_zn_gear1.SetWindowText("");
m_top_dia_gear1.SetWindowText("");
m_center_dist_gear1.SetWindowText("");
m_num_cutter.SetWindowText("");
m_dia_cutter.SetWindowText("");
m_hole_dia_cutter.SetWindowText("");
m_long_cutter.SetWindowText("");
m_zn_cutter.SetWindowText("");
m_qian_angle_cutter.SetWindowText("");
m_hou_angle_cutter.SetWindowText("");
m_tou_n_cutter.SetWindowText("");
m_chao_angle_cutter.SetWindowText("");
}
clear_list();
*pResult = 0;
}
void CPage_Standard_Append::setparazero()
{
c_pk_info="";
g_c=0.0f;
g_z=0,c_n,c_zk=0;
g_mn=0.0f,g_afn=0.0f,g_bf=0.0f,g_sfn=0.0f,g_de=0.0f,g_di=0.0f,g_ds=0.0f,g_c11=0.0f,g_x1=0.0f,g_z1=0.0f,g_de1=0.0f,g_a=0.0f,g_x2=0.0f;
gf_ms=0.0f,gf_afs=0.0f,gf_invafs=0.0f,gf_df=0.0f,gf_df1=0.0f,gf_db=0.0f,gf_db1=0.0f,gf_Bb=0.0f,gf_as=0.0f,gf_l=0.0f,gf_pmin=0.0f,gf_dl=0.0f;
c_deg=0.0f,c_di=0.0f,c_l=0.0f,c_rq=0.0f,c_e=0.0f,c_ae=0.0f,c_k=0.0f,c_ac=0.0f,c_k1=0.0f,c_heg=0.0f,c_hig=0.0f,c_hg=0.0f,c_h=0.0f,c_r=0.0f,c_o=0.0f,c_dfg=0.0f,c_helicf=0.0f,c_bk=0.0f,c_pk=0.0f,c_tng=0.0f,c_txg=0.0f,c_sng=0.0f,c_sxg=0.0f,c_axg=0.0f;
r1=0.0f;r2=0.0f;
}
void CPage_Standard_Append::check()
{
para_check_symbol=0;
int i;
CString str[13];
m_num_gear.GetWindowText(str[0]);
m_c_gear.GetWindowText(str[1]);
m_zn_gear1.GetWindowText(str[2]);
m_top_dia_gear1.GetWindowText(str[3]);
m_center_dist_gear1.GetWindowText(str[4]);
m_dia_cutter.GetWindowText(str[5]);
m_hole_dia_cutter.GetWindowText(str[6]);
m_long_cutter.GetWindowText(str[7]);
m_zn_cutter.GetWindowText(str[8]);
m_qian_angle_cutter.GetWindowText(str[9]);
m_hou_angle_cutter.GetWindowText(str[10]);
m_tou_n_cutter.GetWindowText(str[11]);
m_chao_angle_cutter.GetWindowText(str[12]);
for(i=0;i<13;i++)
{
if(str[i]=="")
{
para_check_symbol=1;
switch(i)
{
case 0:
strName="齿轮零件号"; m_num_gear.SetFocus();return;
case 1:
strName="滚刀齿根与齿轮齿顶的径向间隙系数";m_c_gear.SetFocus();return;
case 2:
strName="相配齿轮齿数";m_zn_gear1.SetFocus();return;
case 3:
strName="相配齿轮齿顶圆直径";m_top_dia_gear1.SetFocus();return;
case 4:
strName="中心距";m_center_dist_gear1.SetFocus();return;
case 5:
strName="滚刀外径";m_dia_cutter.SetFocus();return;
case 6:
strName="孔径";m_hole_dia_cutter.SetFocus();return;
case 7:
strName="全长";m_long_cutter.SetFocus();return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -