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

📄 feedformview.cpp

📁 开发环境为VC++ 的数据库管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	switch(condic_no)
	{
		case 1:
			{// chi cun
			cond_slab_h.Format("%d",m_sear_h);
			cond_slab_w.Format("%d",m_sear_w);
			cond_slab_l.Format("%d",m_sear_l);
			theApp.open_mes();	
//			resultset &rs_slab_s = *(theApp.cn).select ("select * from  CAST_INF where MATERIAL_THICK ="+cond_slab_h+"and MATERIAL_WIDE ="+cond_slab_w+"and MATERIAL_LENGTH ="+cond_slab_l+"order by STEEL_TYPE, INPUT_DATE DESC");
			resultset &rs_slab_s = *(theApp.cn).select ("select * from  CAST_INF where MATERIAL_THICK ="+cond_slab_h+"and MATERIAL_WIDE ="+cond_slab_w+"and MATERIAL_LENGTH ="+cond_slab_l+"and MATERIAL_AMOUNT_LEFT <>0 order by INPUT_DATE DESC,STEEL_TYPE");
//
			SlabInfo_List_Update(m_cast,rs_slab_s);
			theApp.cn.close();
			break;
			}
		case 0:
			{//steel code
			m_sear_steel.GetLBText(m_sear_steel.GetCurSel(),cond_steel_code);
			si.Format("'%s'",cond_steel_code);
			theApp.open_mes();	
//			resultset &rs_slab_s = *(theApp.cn).select ("select * from  CAST_INF where STEEL_TYPE="+si+"order by MATERIAL_THICK DESC,MATERIAL_WIDE DESC,MATERIAL_LENGTH DESC,INPUT_DATE DESC");
			resultset &rs_slab_s = *(theApp.cn).select ("select * from  CAST_INF where STEEL_TYPE="+si+"and MATERIAL_AMOUNT_LEFT <>0 order by INPUT_DATE DESC, MATERIAL_THICK DESC,MATERIAL_WIDE DESC,MATERIAL_LENGTH DESC");
			SlabInfo_List_Update(m_cast,rs_slab_s);
			theApp.cn.close();
			break;
			}
		case 2:
			{//furcode
			m_edit_cast_id.TrimRight();
			m_edit_cast_id.TrimLeft();
			si.Format("'%s'",m_edit_cast_id);
			theApp.open_mes();	
			resultset &rs_slab_s = *(theApp.cn).select ("select * from  CAST_INF where CAST_ID="+si+"order by INPUT_DATE DESC, STEEL_TYPE,MATERIAL_THICK DESC,MATERIAL_WIDE DESC,MATERIAL_LENGTH DESC");
			SlabInfo_List_Update(m_cast,rs_slab_s);
			theApp.cn.close();
			break;
			}
		default:
			{//all
			theApp.open_mes();	
			resultset &rs_slab_s = *(theApp.cn).select ("select * from  CAST_INF where MATERIAL_AMOUNT_LEFT <>0 order by INPUT_DATE DESC, STEEL_TYPE,MATERIAL_THICK DESC,MATERIAL_WIDE DESC,MATERIAL_LENGTH DESC");
			SlabInfo_List_Update(m_cast,rs_slab_s);
			theApp.cn.close();
			break;
			}
	}	
}
void CFeedFormView::OnSearchPlan()                               //按照时间和班次查询计划
{
	// TODO: Add your control notification handler code here
		m_plan.DeleteAllItems();		
		UpdateData(TRUE);		
		CString si,strTime,str_temp;
		strTime = m_produce_data.Format("'%Y-%m-%d'");           //CTime->CString	
		m_shift.GetLBText(m_shift.GetCurSel(),si);
		str_temp.Format("'%s'",si);

		theApp.open_mes();
		resultset &rs_plan = *(theApp.cn).select ("select * from  PRODUCE_PLAN_TEMP where SHIFT="+str_temp+" and to_char(MANUFACTURE_DATE,'YYYY-MM-DD')="+strTime+" order by SHIFT_ID desc");
		Planlist_Update(m_plan,rs_plan);
		theApp.cn.close();
}

void CFeedFormView::OnFeed()                                    //挂料操作
{
	CString ki;
    m_fur_no.GetLBText(m_fur_no.GetCurSel(),ki);
    int in_fur_num;
	if (ki!="2#")
	{
		in_fur_num=1;
	}
	else
		in_fur_num=2;
	UpdateData(TRUE);
	m_feed_furcode.TrimLeft();
	m_feed_furcode.TrimRight();
	if(m_feed_furcode=="")
	{
		MessageBox("请选择坯料!","系统提示",MB_ICONWARNING);
		return;
	}
	m_feed_plan_id.TrimLeft();
	m_feed_plan_id.TrimRight();
	if(m_feed_plan_id=="")
	{
		MessageBox("请选择计划!","系统提示",MB_ICONWARNING);
		return;
	}
	theApp.open_mes();
	statement &st = *(theApp.cn).prepare ("begin CELL_CREATE (:ca_id, :plan_id, :slab_amount, :furnace); end;");
	st.bind(":ca_id", DT_TEXT) = m_feed_furcode;
	st.bind (":plan_id", DT_TEXT) = m_feed_plan_id;
	st.bind(":slab_amount", DT_NUMBER) = (long)m_feed_number;
	st.bind (":furnace", DT_NUMBER) = (long)in_fur_num;	
	st.execute ();
	st.release (); 

   	m_feed.DeleteAllItems();
//	resultset &rs_feed = *(theApp.cn).select ("select * FROM TRK_WEIGHT_WAIT ORDER BY SLAB_ORDER");
	resultset &rs_feed = *(theApp.cn).select ("select * FROM TGZB.TRK_WEIGHT_WAIT@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");	
	OnFeed_List_Update(m_feed,rs_feed);
	theApp.cn.close();
}

void CFeedFormView::OnSearchFeed()                        //查询当前挂料情况,该按钮同时刷新炉前队列
{	
	m_feed.DeleteAllItems();
	m_after_weight.DeleteAllItems();
	theApp.open_mes();
	resultset &rs_feed = *(theApp.cn).select ("select * FROM TGZB.TRK_WEIGHT_WAIT@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
//	resultset &rs_feed = *(theApp.cn).select ("select * FROM TRK_WEIGHT_WAIT ORDER BY SLAB_ORDER");
	OnFeed_List_Update(m_feed,rs_feed);
	resultset &rs_before_furnace = *(theApp.cn).select ("select * FROM BEFORE_FURNACE@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
//	resultset &rs_before_furnace = *(theApp.cn).select ("select * FROM BEFORE_FURNACE ORDER BY SLAB_ORDER");
	Before_furnace_List_Update(m_after_weight,rs_before_furnace);
	theApp.cn.close(); 
}

void CFeedFormView::OnCancelFeed()                        //撤销挂料
{
	// TODO: Add your control notification handler code here
	CString m_feed_furcode_cancel;
	m_feed_furcode_cancel=this->m_feed.GetItemText(m_feed.GetSelectionMark(),0);
	UpdateData(TRUE);
	//////////////////////////////////////
	theApp.open_mes();
	statement &st = *(theApp.cn).prepare ("begin DELETE_SLAB_IN_WEIGHT (:v_id); end;");
	st.bind(":v_id", DT_TEXT) = m_feed_furcode_cancel;
	st.execute ();
	st.release (); 
	///////////////////////////////////////
   	m_feed.DeleteAllItems();
//	resultset &rs_feed = *(theApp.cn).select ("select * FROM TRK_WEIGHT_WAIT ORDER BY SLAB_ORDER");
	resultset &rs_feed = *(theApp.cn).select ("select * FROM TGZB.TRK_WEIGHT_WAIT@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
	OnFeed_List_Update(m_feed,rs_feed);
	theApp.cn.close();	
}

void CFeedFormView::OnWeightModeChange()                    //称重模式切换按钮执行时,切换为自动模式和手动确认模式,将如下标签置位
{
	CWnd* pWnd = GetDlgItem(IDC_WEIGHT_MODE_CHANGE);
	pWnd = GetDlgItem(IDC_WEIGHT_HAND);
	if(pWnd->IsWindowEnabled())
	{
		m_led_weight_mode.SetLedColor(1);
		pWnd->EnableWindow(FALSE);
	}
	else
	{
		m_led_weight_mode.SetLedColor(0);
		pWnd->EnableWindow(TRUE);  
	}
	pOPCMemory->m_L2ToHMIBitReset.MES_to_HMI_trigger = 1;
	pOPCMemory->m_L2ToHMIBitReset.W_state_tri = 1;
	pOPCMemory->m_L2ToHMIBitReset.W_conf_man_tri = 0;
	pOPCMemory->m_L2ToHMIBitReset.W_undo_man_tri = 0;
	UpdateData(false);
	HWND pHWnd=::FindWindow(NULL,strServerName);
	if(pHWnd)
		::SendMessage(pHWnd,WM_SEVER_CLIENT_OPC_MSG,0,0);	
}

void CFeedFormView::OnWeightHand()                              //手动确认按钮执行时,将如下标签置位
{
	// TODO: Add your control notification handler code here
	pOPCMemory->m_L2ToHMIBitReset.MES_to_HMI_trigger = 1;
	pOPCMemory->m_L2ToHMIBitReset.W_state_tri = 0;
	pOPCMemory->m_L2ToHMIBitReset.W_conf_man_tri = 1;
	pOPCMemory->m_L2ToHMIBitReset.W_undo_man_tri = 0;

	HWND pHWnd=::FindWindow(NULL,strServerName);
	if(pHWnd)
		::SendMessage(pHWnd,WM_SEVER_CLIENT_OPC_MSG,0,0);
	
}

void CFeedFormView::OnWeightHandCancel()                        //手动撤销按钮执行时,将如下标签置位
{
	// TODO: Add your control notification handler code here
	pOPCMemory->m_L2ToHMIBitReset.MES_to_HMI_trigger = 1;
	pOPCMemory->m_L2ToHMIBitReset.W_state_tri = 0;
	pOPCMemory->m_L2ToHMIBitReset.W_conf_man_tri = 0;
	pOPCMemory->m_L2ToHMIBitReset.W_undo_man_tri = 1;

	HWND pHWnd=::FindWindow(NULL,strServerName);
	if(pHWnd)
		::SendMessage(pHWnd,WM_SEVER_CLIENT_OPC_MSG,0,0);
		
}
void CFeedFormView::OnDestroy()                                  //关闭程序时,撤销内存所占空间
{
	CFormView::OnDestroy();
	
	// TODO: Add your message handler code here
	if (lpData != NULL)
	{
		UnmapViewOfFile(lpData);
		lpData = NULL;
	}
	if (hRecvMap!=NULL)
	{
		CloseHandle(hRecvMap);
		hRecvMap = NULL;
	}
	m_isMemoryMap=false;	
}

void CFeedFormView::ClientOPCEvent()
{
	if (pOPCMemory->m_HMIToL2VarHold.W_confirm_state)               //同步不同客户端的称重模式按钮和红绿灯的颜色
	{                                                               //标志位为1,是自动确认状态,显示为绿灯
		CWnd* pWnd ;	
		pWnd = GetDlgItem(IDC_WEIGHT_HAND);
		m_led_weight_mode.SetLedColor(1);
		pWnd->EnableWindow(FALSE);
		
	}
	else                                                            //标志位为0,是手动确认状态,显示为红灯
	{
		CWnd* pWnd ;	
		pWnd = GetDlgItem(IDC_WEIGHT_HAND);
		m_led_weight_mode.SetLedColor(0);
		pWnd->EnableWindow(TRUE);
	}
	if (pOPCMemory->m_HMIToL2BitReset.Weigth_confirm_tri_MES)       //收到称重确认完成的信号
	{
		float weight;
		weight = pOPCMemory->m_HMIToL2BitReset.W_slb_weight;		//收到实测重量,付给变量,显示到界面的LED框内		
		m_weight_data.Format("%.2f",weight);
		m_led_weight.SetText(m_weight_data);
		UpdateData(FALSE);	                                    	//更新界面,同时读取称重等待表和炉前等待队列表
		m_feed.DeleteAllItems();
		m_after_weight.DeleteAllItems();
		theApp.open_mes();
		resultset &rs_feed = *(theApp.cn).select ("select * FROM TGZB.TRK_WEIGHT_WAIT@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
//		resultset &rs_feed = *(theApp.cn).select ("select * FROM TRK_WEIGHT_WAIT ORDER BY SLAB_ORDER");
		OnFeed_List_Update(m_feed,rs_feed);
		resultset &rs_before_furnace = *(theApp.cn).select ("select * FROM BEFORE_FURNACE@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
//		resultset &rs_before_furnace = *(theApp.cn).select ("select * FROM BEFORE_FURNACE ORDER BY SLAB_ORDER");
		Before_furnace_List_Update(m_after_weight,rs_before_furnace);
		theApp.cn.close(); 
	}

	if(pOPCMemory->m_HMIToL2BitReset.W_undo_tri_MES)                 //收到手动撤销的信号,刷新称重等待队列和炉前队列
	{
		m_feed.DeleteAllItems();
		m_after_weight.DeleteAllItems();
		theApp.open_mes();
		resultset &rs_feed = *(theApp.cn).select ("select * FROM TGZB.TRK_WEIGHT_WAIT@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
//		resultset &rs_feed = *(theApp.cn).select ("select * FROM TRK_WEIGHT_WAIT ORDER BY SLAB_ORDER");
		OnFeed_List_Update(m_feed,rs_feed);
		resultset &rs_before_furnace = *(theApp.cn).select ("select * FROM BEFORE_FURNACE@MES_L2.US.ORACLE.COM ORDER BY SLAB_ORDER");
//		resultset &rs_before_furnace = *(theApp.cn).select ("select * FROM BEFORE_FURNACE ORDER BY SLAB_ORDER");
		Before_furnace_List_Update(m_after_weight,rs_before_furnace);
		theApp.cn.close();  
	}
    if (pOPCMemory->m_HMIToL2BitReset.BkFur_InIMS)                 //收到炉后返回的信号,调用炉后返回过程,并将标签置位,发消息给二级
	{
		theApp.open_mes();
		statement &st = *(theApp.cn).prepare ("begin RETURN_FURNACE_PROCEDURE (); end;");
		st.execute ();
		st.release (); 
		theApp.cn.close();	
		pOPCMemory->m_L2ToHMIBitReset.MES_to_HMI_trigger2 = 1;
		pOPCMemory->m_L2ToHMIBitReset.BkFur_InIMS_Ov = 1;
		HWND pHWnd=::FindWindow(NULL,strServerName);
		if(pHWnd)
			::SendMessage(pHWnd,WM_SEVER_CLIENT_OPC_MSG,0,0);
				
	}
}
///////////////////////////////////////////////////////////////////////


void CFeedFormView::OnClickListCast(NMHDR* pNMHDR, LRESULT* pResult) //单击板坯列表的某行信息,显示钢种相同的计划,条件是时间和班次
{
	// TODO: Add your control notification handler code here
    CString steel_grade_temp;
    m_feed_furcode=this->m_cast.GetItemText(m_cast.GetSelectionMark(),0);
    steel_grade_temp=this->m_cast.GetItemText(m_cast.GetSelectionMark(),5);
    UpdateData(FALSE);
		//读取计划信息
		m_plan.DeleteAllItems();		
		UpdateData(TRUE);		
		CString si_shift,si_steel,strTime,str_temp;
		strTime = m_produce_data.Format("'%Y-%m-%d'");   //CTime->CString	
		m_shift.GetLBText(m_shift.GetCurSel(),si_shift);
		str_temp.Format("'%s'",si_shift);
		si_steel.Format("'%s'",steel_grade_temp);
		theApp.open_mes();
		resultset &rs_plan = *(theApp.cn).select ("select * from  PRODUCE_PLAN_TEMP where SHIFT="+str_temp+" and to_char(MANUFACTURE_DATE,'YYYY-MM-DD')="+strTime+" and STEEL_TYPE="+si_steel+"");
		Planlist_Update(m_plan,rs_plan);
		theApp.cn.close();	
	*pResult = 0;
}

void CFeedFormView::OnClickListPlan(NMHDR* pNMHDR, LRESULT* pResult) //单击计划时,将计划号读取出来,付给挂料的计划号编辑框
{
	// TODO: Add your control notification handler code here
    //读取计划中的计划号,付给界面变量
	m_feed_plan_id=this->m_plan.GetItemText(m_plan.GetSelectionMark(),0);
	UpdateData(FALSE);	
	*pResult = 0;
}



⌨️ 快捷键说明

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