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

📄 batchmodidlg.cpp

📁 一个串口通信的程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
			}
			this->m_iMaxRow=i;
		}
		break;
	case 2:			//现场监测点
		{
			filename=".\\misc\\CD.par";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("测点ID");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("测点名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("仪表ID");
			Col.SetVisible(TRUE);
			Col.SetLocked(TRUE);
			Col.SetVisible(FALSE);
			Col.SetWidth(0);

			Col=Cols.GetAdd(3);
			Col.SetCaption("仪表名称");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(4);
			Col.SetCaption("通道号");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			m_aData.SetSize(arrCD.GetSize());
			for(int i=0;i<arrCD.GetSize();i++)
			{
				CString str;
				NPCD npcd=arrCD.GetAt(i);
				CStringArray * elem;
				elem=new CStringArray();
				str.Format("%d",npcd->cdid);
				elem->Add(str);
				elem->Add(npcd->cdname);
				str.Format("%d",npcd->ybid);
				elem->Add(str);
				str="";
				for(int j=0;j<arrYB.GetSize();j++)
				{
					NPYB npyb;
					npyb=arrYB.GetAt(j);
					if(npyb->ybid==npcd->ybid)
					{
						str=npyb->ybname;
						break;
					}
				}
				elem->Add(str);
				str.Format("%d",npcd->chanal);
				elem->Add(str);
				m_aData.SetAt(i,elem);
			}
			this->m_iMaxRow=i;
		}
		break;
	case 3:			//仪表参数名称
		{			
			filename=".\\misc\\CS.PAR";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("参数ID");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("仪表类型");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("参数名称");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);
			
			Col=Cols.GetAdd(3);
			Col.SetCaption("参数地址(十六进制)");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(4);
			Col.SetCaption("参数类型");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetWidth(80);

//			Col=Cols.GetAdd(5);
//			Col.SetCaption("修改");
//			Col.SetVisible(TRUE);
//			Col.SetWidth(80);

			m_aData.SetSize(arrCS.GetSize());
			for(int i=0;i<arrCS.GetSize();i++)
			{
				CString str;
				NPCS npcs=arrCS.GetAt(i);
				CStringArray * elem;
				elem=new CStringArray();
				str.Format("%d",npcs->csid);
				elem->Add(str);
				elem->Add(npcs->ybtype);
				elem->Add(npcs->csname);
				elem->Add(npcs->csdz);
				elem->Add(npcs->cstype);
				m_aData.SetAt(i,elem);
			}
			this->m_iMaxRow=i;
		}
		break;

	case 4:			//实时数据采集参数维护
		{			
			filename=".\\misc\\REALTIME.PAR";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("信号ID");
			Col.SetVisible(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("测点ID");
			Col.SetVisible(FALSE);
			Col.SetLocked(TRUE);
			Col.SetWidth(0);

			Col=Cols.GetAdd(2);
			Col.SetCaption("测点名称");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(3);
			Col.SetCaption("参数ID");
			Col.SetVisible(FALSE);
			Col.SetLocked(TRUE);
			Col.SetWidth(0);

			Col=Cols.GetAdd(4);
			Col.SetCaption("参数(信号)名称");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(90);

			Col=Cols.GetAdd(5);
			Col.SetCaption("信号单位");
			Col.SetVisible(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(6);
			Col.SetCaption("启用");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(60);

			Col=Cols.GetAdd(7);
			Col.SetCaption("预警");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(40);

			Col=Cols.GetAdd(8);
			Col.SetCaption("预警下限");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(9);
			Col.SetCaption("预警上限");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(10);
			Col.SetCaption("量程下限");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(11);
			Col.SetCaption("量程上限");
			Col.SetVisible(TRUE);
			Col.SetWidth(50);

			Col=Cols.GetAdd(12);
			Col.SetCaption("数据保存周期");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(60);

			m_aData.SetSize(arrRT.GetSize());
			for(int i=0;i<arrRT.GetSize();i++)
			{
				CString str;
				NPRT nprt=arrRT.GetAt(i);
				CStringArray * elem;
				elem=new CStringArray();
				str.Format("%d",nprt->rtid);
				elem->Add(str);
				str.Format("%d",nprt->cdid);
				elem->Add(str);
				str="";
				for(int j=0;j<arrCD.GetSize();j++)
				{
					NPCD npcd;
					npcd=arrCD.GetAt(j);
					if(npcd->cdid==nprt->cdid)
					{
						str=npcd->cdname;
						break;
					}
				}
				elem->Add(str);
				str.Format("%d",nprt->csid);
				elem->Add(str);
				str="";
				for(j=0;j<arrCS.GetSize();j++)
				{
					NPCS npcs;
					npcs=arrCS.GetAt(j);
					if(npcs->csid==nprt->csid)
					{
						str=npcs->csname;
						break;
					}
				}
				elem->Add(str);

				elem->Add(nprt->dw);
				str=nprt->eanble?"启用":"";
				elem->Add(str);
				str=nprt->warn_enble?"启用":"";
				elem->Add(str);
				str.Format("%f",nprt->warn_low);
				elem->Add(str);
				str.Format("%f",nprt->warn_hi);
				elem->Add(str);
				str.Format("%f",nprt->range_low);
				elem->Add(str);
				str.Format("%f",nprt->range_hi);
				elem->Add(str);
				str.Format("%d",nprt->saving_cycle);
				elem->Add(str);
				m_aData.SetAt(i,elem);
			}
			this->m_iMaxRow=i;
		}
		break;
	case 5:			//仪表参数的读取与下装
		{			
			filename=".\\misc\\REALTIME.PAR";
			Column Col; //列对象
			Columns Cols;//Columns对象
			Cols=m_dbgrid.GetColumns();

			Col=Cols.GetItem(_variant_t((short)0));
			Col.SetCaption("参数ID");
			Col.SetVisible(FALSE);
			Col.SetWidth(0);

			Col=Cols.GetItem(_variant_t((short)1));
			Col.SetCaption("参数名称");
			Col.SetVisible(TRUE);
			Col.SetButton(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(2);
			Col.SetCaption("数据值");
			Col.SetVisible(TRUE);
//			Col.SetLocked(TRUE);
			Col.SetWidth(80);

			Col=Cols.GetAdd(3);
			Col.SetCaption("结果");
			Col.SetVisible(TRUE);
			Col.SetLocked(TRUE);
			Col.SetWidth(80);
			m_combox.ShowWindow(SW_SHOW);
			for(int j=0;j<arrCD.GetSize();j++)
			{
				NPCD npcd=arrCD.GetAt(j);
				int cur=m_combox.AddString(npcd->cdname);
				m_combox.SetItemData(cur,npcd->cdid);
			}
			CButton * pbtn;
			pbtn=(CButton * )this->GetDlgItem(IDC_DOWNLOAD);
			pbtn->ShowWindow(SW_SHOW);//>SetWindowText("参数读取");
			pbtn=(CButton * )this->GetDlgItem(IDC_LOAD);
			pbtn->ShowWindow(SW_SHOW);//pbtn->SetWindowText("参数下装");

		}
		break;
	}
	m_dbgrid.Refresh();
	return TRUE;
}

void CBatchModiDlg::OnSelchangeList1() 
{
	CString sText;
	int iOption = m_ListBox.GetCurSel();
	m_ListBox.GetText(iOption, sText);		//得到选中项的文本
	DWORD data;
	data=m_ListBox.GetItemData(iOption);

	m_ListBox.ResetContent();
	m_ListBox.ShowWindow(SW_HIDE);			//隐藏列表框


	int oldcol;
	oldcol=m_dbgrid.GetCol();
	
	switch(type)
	{
	case 1:
		{
			if(oldcol==0)
			{
			}
			else m_dbgrid.SetText(sText);
		}
		break;
	case 2:
		{
			if(oldcol==3)
			{
				m_dbgrid.SetCol(3);
				m_dbgrid.SetText(sText);
				m_dbgrid.SetCol(2);
				CString str;
				str.Format("%d",data);
				m_dbgrid.SetText(str);
			}
			else m_dbgrid.SetText(sText);
		}
		break;
	case 3:
		{
			m_dbgrid.SetText(sText);
		}
		break;
	case 4:
		{
			if(oldcol==2 || oldcol==4)
			{
				m_dbgrid.SetCol(oldcol);
				m_dbgrid.SetText(sText);
				m_dbgrid.SetCol(oldcol-1);
				CString str;
				str.Format("%d",data);
				m_dbgrid.SetText(str);
			}
			else if(oldcol==6 || oldcol==7)
			{
				m_dbgrid.SetCol(oldcol);
				if(sText=="启用")
					m_dbgrid.SetText(sText);
				else 
					m_dbgrid.SetText("");
			}
			else m_dbgrid.SetText(sText);
		}
		break;
	case 5:
		{
			if(oldcol==1 )
			{
				m_dbgrid.SetCol(oldcol);
				m_dbgrid.SetText(sText);
				m_dbgrid.SetCol(oldcol-1);
				CString str;
				str.Format("%d",data);
				m_dbgrid.SetText(str);
			}
			else m_dbgrid.SetText(sText);
		}
		break;
	default:
		break;
	}

	m_dbgrid.SetCol(oldcol);
	m_dbgrid.SetFocus();					//将焦点置回到grid控件
	
}

void CBatchModiDlg::OnKillfocusList1() 
{
	m_ListBox.ResetContent();
	m_ListBox.ShowWindow(SW_HIDE);
}

BOOL CBatchModiDlg::DestroyWindow() 
{
	if(m_dbgrid.GetDataChanged())
	{
		if(m_dbgrid.GetAddNewMode() == 0) // 0 - No AddNew 
		//触发UnboundWriteData事件记录之
		m_dbgrid.SetBookmark(m_dbgrid.GetBookmark());
		else // 1 - AddNew Current 2 - AddNew Pending 
		//触发UnboundAddData事件记录之
		m_dbgrid.SetRow(m_dbgrid.GetRow());
	}

	//释放资源
	for(int i=0;i<this->m_aData.GetSize();i++)
	{
		CStringArray *sa;
		sa=(CStringArray *)m_aData.GetAt(i);
		sa->RemoveAll();
		delete sa;
	}
	m_aData.RemoveAll();
	return CDialog::DestroyWindow();
}



void CBatchModiDlg::OnOK() 
{

⌨️ 快捷键说明

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