📄 ruledefineview.cpp
字号:
m_RecordSet.Close();
}
void CRuleDefineView::OnButtonSave()
{
//if(m_RecordSet.IsOpen()){
// AfxMessageBox("查看状态,不能插入数据!");
// return;
//}
CADORecordset recordset(&GlDataBase);
CString strQuery;
int nodenum = m_pNtView->GetNodeID();
if(nodenum == ERR_NOSELETED) return;
switch (nCurStyle){
case 1:{
CString strregordernum, strname,strrule,strresult,strdescribe;
m_cRegPage.GetDlgItemText(IDC_EDIT_REG_ORDERNUM,strregordernum);
m_cRegPage.GetDlgItemText(IDC_EDIT_REGRULENAME,strname);
m_cRegPage.GetDlgItemText(IDC_EDIT_REGRULE,strrule);
m_cRegPage.GetDlgItemText(IDC_COMBO_outnode,strresult);
m_cRegPage.GetDlgItemText(IDC_EDIT_DESCRIBE,strdescribe);
strregordernum.TrimRight(); strname.TrimRight();strrule.TrimRight();
strresult.TrimRight();
if(strregordernum.GetLength()==0||strrule.GetLength()==0||strresult.GetLength()==0){
AfxMessageBox("请完整输入规则信息");
return;
}
if(CheckRuleFormat(strrule) == false){
AfxMessageBox("此规则格式错误!!!");
return;
}
//判断是修改原有规则还是新增规则
strQuery.Format("select * from Rule_Table where RuleSN=%s and nodesn=%d",strregordernum,nodenum);
recordset.SetQuery(strQuery);
if(TRUE == recordset.Open()){
if(recordset.GetRecordCount()!=0){
int nregorder = 0;
recordset.GetFieldValue("RuleSN",nregorder);
CString str;
str.Format("确定修改规则%d为当前内容?",nregorder);
if(IDNO==AfxMessageBox(str,MB_YESNO)){
return;
}
else
recordset.Delete();
}
}
strQuery.Format("insert into Rule_Table (RuleSN,NodeSN,RName,RContent,OutNode,RMemo) values(%d,%d,'%s','%s',%d,'%s')",atoi(strregordernum.GetBuffer(0)),nodenum,strname,strrule,atoi(strresult.GetBuffer(0)),strdescribe);
recordset.SetQuery(strQuery);
if(recordset.Open() == TRUE){
AfxMessageBox("精确规则插入成功!!!");
}
break;
}
case 2:{
CString strblurorder,//模糊规则序号
strblurname,//模糊规则名
strrule,//模糊规则内容
stroutnode,//输出结点号
stryz;//阈值
m_cBlurPage.GetDlgItemText(IDC_EDIT_BLUR_ORDER,strblurorder);
m_cBlurPage.GetDlgItemText(IDC_EDIT_BLURNAME,strblurname);
m_cBlurPage.GetDlgItemText(IDC_EDIT_BLURDESCRIBE,strrule);
m_cBlurPage.GetDlgItemText(IDC_COMBO_outnode,stroutnode);
m_cBlurPage.GetDlgItemText(IDC_EDIT_yz,stryz);
strblurorder.TrimRight(),strblurname.TrimRight(),strrule.TrimRight();
if(strblurorder.GetLength()==0||strblurname.GetLength()==0||strrule.GetLength()==0){//||ndatatype==CB_ERR||nlshsType==CB_ERR){
AfxMessageBox("请输入完整信息!!!");
return;
}
strQuery.Format("select * from blur_rule_Table where brulesn=%s and nodesn=%d",strblurorder,nodenum);
recordset.SetQuery(strQuery);
//bool bEdit = false;
//判断是修改原有规则还是新增规则
if(TRUE == recordset.Open()){
if(recordset.GetRecordCount()!=0){
int nregorder = 0;
recordset.GetFieldValue("brulesn",nregorder);
CString str;
str.Format("确定修改规则%d为当前内容?",nregorder);
if(IDNO==AfxMessageBox(str,MB_YESNO)){
return;
}
else
// bEdit = true;
recordset.Delete();
}
}
else
return;//若无法打开数据集则返回
strQuery.Format("insert into blur_rule_table (brulesn,nodesn,BRname,BRContent,outnode,svalue) values(%d,%d,'%s','%s',%d,%f)",atoi(strblurorder.GetBuffer(0)),nodenum,strblurname,strrule,atoi(stroutnode.GetBuffer(0)),atof(stryz.GetBuffer(0)));
recordset.SetQuery(strQuery);
if(recordset.Open() == TRUE)
AfxMessageBox("模糊规则插入成功!!!");
break;
}
case 3:{
CString strFRsn,//融合规则序号
strFRname,//融合规则名
strFRContent,//融合规则内容
strFRType,//融合规则类型
strNodeC,//融合的结点数
strSensorC,//融合的传感器个数
strRevise,//融合修正系数K
strSvalue;//阈值
int intfrtype;
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_rhxh,strFRsn);
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_rhm,strFRname);
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_rhnr,strFRContent);
//
intfrtype=m_cBlurMergePage.GetFuseTypeCurSel();
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_jdgs,strNodeC);
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_cgqgs,strSensorC);
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_xzxs,strRevise);
m_cBlurMergePage.GetDlgItemText(IDC_EDIT_rhyz,strSvalue);
strFRsn.TrimRight(),strNodeC.TrimRight(),strSensorC.TrimRight();
if(strFRsn.GetLength()==0||strNodeC.GetLength()==0||strSensorC.GetLength()==0){//||ndatatype==CB_ERR||nlshsType==CB_ERR){
AfxMessageBox("请输入完整信息!!!");
return;
}
strQuery.Format("select * from Fuse_Rule_Table where FRsn=%s and nodesn=%d",
strFRsn,nodenum);
recordset.SetQuery(strQuery);
bool bEdit = false;
//判断是修改原有规则还是新增规则
if(TRUE == recordset.Open()){
if(recordset.GetRecordCount()!=0){
int nregorder = 0;
recordset.GetFieldValue("FRsn",nregorder);
CString str;
str.Format("确定修改规则%d为当前内容?",nregorder);
if(IDNO==AfxMessageBox(str,MB_YESNO)){
return;
}
else
// bEdit = true;
recordset.Delete();
}
}
else
return;//若无法打开数据集则返回
// if (bEdit)
//strQuery.Format("update Fuse_Rule_Table set FRname='%s',FRContent='%s',FRType=%d,NodeC=%d,SensorC=%d,Revise=%d,svalue=%d where FRsn=%d and nodesn=%d",strFRname,strFRContent,intfrtype,atoi(strNodeC.GetBuffer(0)),atoi(strSensorC.GetBuffer(0)),atof(strRevise.GetBuffer(0)),atof(strSvalue.GetBuffer(0)),atoi(strFRsn.GetBuffer(0)),nodenum);
//else
strQuery.Format("insert into Fuse_Rule_Table(FRsn,nodesn,FRname,FRContent,FRType,NodeC,SensorC,Revise,svalue)values(%d,%d,'%s','%s',%d,%d,%d,%f,%f)",atoi(strFRsn.GetBuffer(0)),nodenum,strFRname,strFRContent,intfrtype,atoi(strNodeC.GetBuffer(0)),atoi(strSensorC.GetBuffer(0)),atof(strRevise.GetBuffer(0)),atof(strSvalue.GetBuffer(0)));
recordset.SetQuery(strQuery);
if(recordset.Open() == TRUE)
AfxMessageBox("融合规则插入成功!!!");
break;
}
case 4:{
;
break;
}
} //end switch
if(m_RecordSet.IsOpen())//!=TRUE)
{
// OnButtonNew();
//else{//刷新当前数据集
long savepos = m_RecordSet.GetAbsolutePosition();
m_RecordSet.Open();
m_RecordSet.SetAbsolutePosition(savepos);
}
}
void CRuleDefineView::OnKillfocusEditRegrule()
{
AfxMessageBox("hello");
}
void CRuleDefineView::OnButtonLast()
{
if(m_RecordSet.IsOpen()&&!m_RecordSet.IsBof()){
m_RecordSet.MovePrevious();
if(!m_RecordSet.IsBof()){
if(nCurStyle == 1)
ShowRegRules();
else if(nCurStyle == 2)
{
ShowBlurRules();
GetCurBlurFun();
ShowBlurFun();
}
else if(nCurStyle==3)
ShowFuseRules();
}
else
//m_RecordSet.MoveLast();
m_RecordSet.MoveNext();
}
}
void CRuleDefineView::OnButtonNext()
{
if(m_RecordSet.IsOpen()&&!m_RecordSet.IsEof()){
m_RecordSet.MoveNext();
if(!m_RecordSet.IsEof()){
if(nCurStyle == 1)
ShowRegRules();
else if(nCurStyle == 2)
ShowBlurRules();
else if(nCurStyle==3)
ShowFuseRules();
}
else{
m_RecordSet.MovePrevious();
}
}
}
void CRuleDefineView::OnButtonDelete()
{
if(m_RecordSet.IsOpen()){
if (!m_RecordSet.IsEof()&&!m_RecordSet.IsBof()){
if(IDYES==AfxMessageBox("确定删除当前规则?",MB_YESNO)){
m_RecordSet.Delete();
m_RecordSet.MoveNext();
if(m_RecordSet.IsEof()&&m_RecordSet.GetRecordCount()!=0)
m_RecordSet.MoveFirst();
if(m_RecordSet.GetRecordCount()==0)
m_RecordSet.Close();
switch (nCurStyle){
case 1:
ShowRegRules();
break;
case 2:
ShowBlurRules();
break;
case 3:
ShowFuseRules();
break;
}
}
}
}
}
//
void CRuleDefineView::savefun()
{
int nlshsType;//隶属函数类型
CString strtezhengzhi,//特征值
strtjcs,//调节参数
strljxpc,//左极限偏差
strrjxpc,//右极限偏差
strlrc,//左容差
strrrc;//右容差
CADORecordset recordset(&GlDataBase);
CString strQuery;
int nodenum = m_pNtView->GetNodeID();
if(nodenum == ERR_NOSELETED) return;
nlshsType = m_cBlurPage.GetFuncTypeCurSel();
switch(nlshsType){
case 1:
case 4:
case 5:
m_cBlurPage.GetDlgItemText(IDC_EDIT_TEZHEZHI,strtezhengzhi);
m_cBlurPage.GetDlgItemText(IDC_EDIT1_TJPARA,strtjcs);
strtezhengzhi.TrimRight(),strtjcs.TrimRight();
if(strtezhengzhi.GetLength()==0||strtjcs.GetLength()==0){
AfxMessageBox("请输入完整信息!!!");
return;
}
strQuery.Format("insert into rule_unit_sub_table (nodesn,busfun,Para1,Para2) values(%d,%d,%f,%f)",nodenum,nlshsType,atof(strtezhengzhi.GetBuffer(0)),atof(strtjcs.GetBuffer(0)));
recordset.SetQuery(strQuery);
if(recordset.Open() == TRUE)
switch (nlshsType){
case 1:
AfxMessageBox("模糊函数(正态分布)插入成功!!!");
break;
case 4:
AfxMessageBox("模糊函数(升半正态)插入成功!!!");
break;
case 5:
AfxMessageBox("模糊函数(降半正态)插入成功!!!");
break;
}
break;
case 2:
m_cBlurPage.GetDlgItemText(IDC_EDIT_TEZHEZHI,strtezhengzhi);
m_cBlurPage.GetDlgItemText(IDC_EDIT1_LJXPC,strljxpc);
m_cBlurPage.GetDlgItemText(IDC_EDIT_RJXPC,strrjxpc);
strtezhengzhi.TrimRight(),strljxpc.TrimRight(),strrjxpc.TrimRight();
if(strtezhengzhi.GetLength()==0||strljxpc.GetLength()==0||strrjxpc.GetLength()==0){
AfxMessageBox("请输入完整信息!!!");
return;
}
strQuery.Format("insert into rule_unit_sub_table (nodesn,busfun,Para1,Para2,Para3) values(%d,%d,'%f',%f,%f)",nodenum,nlshsType,atof(strtezhengzhi.GetBuffer(0)),atof(strljxpc.GetBuffer(0)),atof(strrjxpc.GetBuffer(0)));
recordset.SetQuery(strQuery) ;
if(recordset.Open() == TRUE)
AfxMessageBox("模糊函数(三角分布)插入成功!!!");
break;
case 3:
m_cBlurPage.GetDlgItemText(IDC_EDIT_TEZHEZHI,strtezhengzhi);
m_cBlurPage.GetDlgItemText(IDC_EDIT1_LJXPC,strljxpc);
m_cBlurPage.GetDlgItemText(IDC_EDIT_RJXPC,strrjxpc);
m_cBlurPage.GetDlgItemText(IDC_EDIT_LRONGCHA,strlrc);
m_cBlurPage.GetDlgItemText(IDC_EDIT_RRONGCHA,strrrc);
strtezhengzhi.TrimRight(),strljxpc.TrimRight(),strrjxpc.TrimRight(),strlrc.TrimRight(),strrrc.TrimRight();
if(strtezhengzhi.GetLength()==0||strljxpc.GetLength()==0||strrjxpc.GetLength()==0||strlrc.GetLength()==0||strrrc.GetLength()==0){
AfxMessageBox("请输入完整信息!!!");
return;
}
strQuery.Format("insert into rule_unit_sub_table (nodesn,busfun,Para1,Para2,Para3,Para4,Para5) values(%d,%d,%f,%f,%f,%f,%f)",nodenum,nlshsType,atof(strtezhengzhi.GetBuffer(0)),atof(strljxpc.GetBuffer(0)),atof(strrjxpc.GetBuffer(0)),atof(strlrc.GetBuffer(0)),atof(strrrc.GetBuffer(0)));
recordset.SetQuery(strQuery) ;
if(recordset.Open() == TRUE)
AfxMessageBox("模糊函数(梯形分布)插入成功!!!");
break;
default:
AfxMessageBox("请选择模糊函数!!!");
break;
}
}
//子结点序号
void CRuleDefineView::setnodesn(){
int nodenum = m_pNtView->GetNodeID();
if(nodenum == ERR_NOSELETED) return;
CADORecordset recordset(&GlDataBase);
CString str;
str.Format("select 结点号 from 结点表 where 父结点号=%d",nodenum);
recordset.SetQuery(str);
recordset.Open();
CString strelement;
m_cBlurPage.m_combo_outnode.ResetContent();
while(recordset.IsEof()!=TRUE){
recordset.GetFieldValue("结点号",strelement);
m_cBlurPage.m_combo_outnode.AddString(strelement);
recordset.MoveNext();
}
recordset.Close();
}
//子结点序号
void CRuleDefineView::setoutnode(){
int nodenum = m_pNtView->GetNodeID();
if(nodenum == ERR_NOSELETED) return;
CADORecordset recordset(&GlDataBase);
CString str;
str.Format("select 结点号 from 结点表 where 父结点号=%d",nodenum);
recordset.SetQuery(str);
recordset.Open();
CString strelement;
m_cRegPage.m_combo_outnode.ResetContent();
while(recordset.IsEof()!=TRUE){
recordset.GetFieldValue("结点号",strelement);
m_cRegPage.m_combo_outnode.AddString(strelement);
recordset.MoveNext();
}
recordset.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -